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
841
·
8 tahun, 7 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
·
8 tahun, 7 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
841
·
8 tahun, 7 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
·
8 tahun, 7 bulan yang lalu
·
1 jempol
Wah benar, sudah bisa gan. Solved! ^.^ Terima kasih pencerahanya gan, hehe :))