Mohon pencerahan ^^

Oleh rasmabayu 130 11 pada Sabtu, 28 Mei 2016, 09:39:09


Kembali ke forum soal ini

#python #kondisi-dan-alur-kendali #if-dan-else


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



def diskon(harga):
  if harga > 300:
    return float(harga/10)
  elif harga 100 .... 300:
    return float(harga/20)
  else:
    return float(0)

bagian elif, kalau saya mau yg dieksekusi hanya antara nilai 100 sampai 300 pakai fungsi apa ya?
0 jempol




ganis
198
839
· 7 tahun, 11 bulan yang lalu · 1 jempol

Hi @rasmabayu

Sebenarnya cukup harga > 100 saja karena jika harganya diatas 300 sudah "diambil" oleh if harga > 300 yg pertama.

Tapi jika tidak ada if harga > 300 seperti di soal, kita bisa gunakan

harga > 100 and harga < 300

Untuk mendapatkan harga di atas 100 dan (and) di bawah 300. ^^

Apakah sudah mengerti? Jika belum silahkan tanyakan lagi.

rasmabayu
130
11
penanya
· 7 tahun, 11 bulan yang lalu · 1 jempol

terima kasih tanggapanya agan Ganis, untuk bagian ini saya sudah mengerti. :))

yang saya mau tanyakan lagi untuk script dibawah:

def diskon(harga):
  if harga > 300:
    return float(harga/10)
  elif harga > 100:
    return float(harga/20)
  else:
    return float(0)

print diskon(333)

print diskon(111)

kenapa hasilnya
33.0 dan 5.0 ya?
bukanya harusnya 33.3 dan 5.55?

mohon pencerahan kembali gan. ^^

ganis
198
839
· 7 tahun, 11 bulan yang lalu · 1 jempol

pertanyaan yang bagus sekali! ^^

karena yang kita float adalah hasil dari harga dibagi 10. Karena harga dan 10 adalah int (bilangan bulat), hasilnya juga adalah int. Sehingga di situ anda mem-float hasil dari pembagiannya yang sudah merupakan sebuah bilangan bulat. Solusinya adalah kita buat salah satu bilangannya float sebelum dilakukan pembagian, seperti ini:

float(harga) / 10 atau harga / float(10) atau harga / 10.0

di sini salah satu bilangannya adalah bilangan float (desimal), sehingga pembagiannya menghasilkan float juga.

rasmabayu
130
11
penanya
· 7 tahun, 11 bulan yang lalu · 1 jempol

Wah benar, sudah bisa gan. Solved! ^.^

Terima kasih pencerahanya gan, hehe :))