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
·
7 tahun, 10 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
·
7 tahun, 10 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
·
7 tahun, 10 bulan yang lalu
·
1 jempol
Sama sama @ianfreecs, Tentu akan berbeda fungsinya ^_^
ayato
136
0
·
7 tahun, 10 bulan yang lalu
·
0 jempol
kenapa if putar: tidak ditulis if putar == 1: saja?
ZihxS
300
816
·
7 tahun, 10 bulan yang lalu
·
1 jempol
Hai coder ayato, Lebih cepat lebih baik :D
ayato
136
0
·
7 tahun, 7 bulan yang lalu
·
0 jempol
jadi kalo gak ada pembandingnya otomatis nilai pembandingnya itu = 1 atau True ya?. True dan 1 itu sama ya?