from random import randint hitung_kepala = 0 hitung_total = 0 while True: # angka integer acak: 0 atau 1 putar = randint(0,1) if putar: hitung_kepala = hitung_kepala + 1 print str(hitung_total) + " kepala " + str(hitung_kepala) else: hitung_kepala = 0 print str(hitung_total) + " buntut" hitung_total = hitung_total + 1 if not (hitung_kepala < 3 and hitung_total < 100): break print "Muncul kepala " + str(hitung_kepala) + " kali berturut-turut." """ selesai """ Saya kesulitan memahami bagian ini. Saya belum yakin bagaimana While akan berhenti. Sejauh yang saya tau, loop while akan berakhir jika nilai false dengan syarat Kepala keluar 3 kali berturut-turut nilai false ini ditentukan dari baris: if not (hitung_kepala < 3 and hitung_total < 100): break Bagiamana baris tsb bekerja? Saya berterimakasih jika ada yg berkenan membantu menjelaskan :)
0 jempol
ZihxS
300
816
·
6 tahun, 11 bulan yang lalu
·
2 jempol
Hai coder ianfreecs, from random import randint 1) hitung_kepala = 0 2) hitung_total = 0 3) while True: # angka integer acak: 0 atau 1 4) putar = randint(0,1) 5) if putar: 6) hitung_kepala = hitung_kepala + 1 7) print str(hitung_total) + " kepala " + str(hitung_kepala) 8) else: 9) hitung_kepala = 0 10) print str(hitung_total) + " buntut" 11) hitung_total = hitung_total + 1 12) if not (hitung_kepala < 3 and hitung_total < 100): 13) break 14) print "Muncul kepala " + str(hitung_kepala) + " kali berturut-turut." Penjelasan : Di bagian 1,2 : Mendeklarasikan variabel hitung_kepala dan hitung_total dimana masing masing isinya berupa integer yang bernilai 0 Di bagian 3: While akan otomatis berjalan karena belum anda kondisi false pada programnya pada saat di run. Di bagian 4: Mendeklarasikan variabel putar yang mana isinya akan di acak selama perulangan berlangsung yang akan menghasilkan hanya dua isi yaitu 0 atau 1. Di bagian 5: Jika variabel putar itu isinya 1 maka perintah yang di dalamnya akan di jalankan (di bagian 6,7 akan di jalankan di bagian 9,10 tidak akan di jalankan). Di bagian 6: Variabel hitung_kepala isi sebelumnya akan di tambahkan 1. Misal isi sebelumnya 2 maka nantinya akan di tambahkan 1 yang menghasilkan angka 3. Di bagian 7: Akan mengeluarkan output jumlah hitung_total dan mengeluarkan string " kepala " juga mengeluarkan isi baru dari variabel hitung_kepala. Di bagian 8: Jika variabel putar isinya 0 maka perintah atau pernyataan ini akan di jalankan dan bagian 5,6,7 akan diabaikan. Di bagian 9: Variabel hitung_kepala akan di ubah lagi menjadi 0. Di bagian 10: Akan mengeluarkan output jumlah variabel hitung_total dan string " buntut" Di bagian 11: Mendeklarasikan variabel hitung_total pada awal perulangan dimulai, dan selama proses perulangan berjalan variabel hitung_total akan di tambah 1 setiap 1 perulangan berjalan. Di bagian 12: Jika variabel hitung_kepala isinya tidak lebih kecil daripada 3 dan variabel_total tidak lebih kecil daripada 100 maka output akan menghasilkan boolean True dan bagian 13 tidak akan di eksekusi maka perulangan akan terus berjalan. Dan jika variabel hitung_kepala isinya sudah sampai 3 dan variabel isi hitung_totalnya masih dibawah 100, bagian ke 13 akan dijalankan maka output akan mencetak (Muncul kepala 3 kali berturut-turut.) Tetapi jika hitung_kepala isinya sudah sampai 3 dan variabel isi hitung_totalnya diatas 100, bagian ke 13 akan dijalankan tetapi output akan mencetak (Muncul kepala (1 atau 2) kali berturut-turut.) karena jumlah totalnya sudah sampai 100. Semoga membantu ^_^
ianfreecs
272
10
penanya
·
6 tahun, 11 bulan yang lalu
·
0 jempol
Terimakasih coder ZihxS atas penjelasannya. berarti kalau saya ubah baris: 12) if not (hitung_kepala < 3 and hitung_total < 100): 13) break menjadi: 12) if hitung_kepala >= 3 or hitung_total >= 100: 13) break Akan sama kah fungsinya? Terimakasih =)
ZihxS
300
816
·
6 tahun, 11 bulan yang lalu
·
1 jempol
Sama sama @ianfreecs, Tentu akan berbeda fungsinya ^_^
ayato
136
0
·
6 tahun, 10 bulan yang lalu
·
0 jempol
kenapa if putar: tidak ditulis if putar == 1: saja?
ZihxS
300
816
·
6 tahun, 10 bulan yang lalu
·
1 jempol
Hai coder ayato, Lebih cepat lebih baik :D
ayato
136
0
·
6 tahun, 8 bulan yang lalu
·
0 jempol
jadi kalo gak ada pembandingnya otomatis nilai pembandingnya itu = 1 atau True ya?. True dan 1 itu sama ya?