While Loop — Python

While Loop di Python While loop menjalankan blok kode selama kondisi bernilai True. Sintaks Dasar count = 0 while count < 5: print(count) count += 1 break &…

While loop mengulang satu blok kode selama sebuah kondisi bernilai True. Kondisinya dicek sebelum tiap putaran. Begitu jadi False, loop berhenti. Bayangin Pak Darto jualan kopi di Warung Kopi: sebelum melayani pembeli berikutnya, dia melirik toples kopi dulu. Masih ada? Layani. Sudah kosong? Berhenti jualan. Yang dicek tiap kali itu kondisinya, dan yang membuat toples akhirnya kosong adalah stok yang berkurang tiap putaran.

🧪 Tebakan cepat: di program jualan kopi di bawah, baris stok -= 1 dihapus. Programnya berhenti setelah berapa putaran? Tebak dulu, jawabannya ada di bagian "Infinite loop: lupa mengubah kondisinya".

Cara kerja while

stok = 3
while stok > 0:
    stok -= 1
    print(f"Jual 1 kopi, sisa {stok}")
print("Warung tutup")
Jual 1 kopi, sisa 2
Jual 1 kopi, sisa 1
Jual 1 kopi, sisa 0
Warung tutup
Cek ke stok stok > 0 Yang terjadi
1 3 True stok jadi 2, cetak sisa 2
2 2 True stok jadi 1, cetak sisa 1
3 1 True stok jadi 0, cetak sisa 0
4 0 False loop selesai, lanjut ke Warung tutup

for atau while? Pakai for kalau kamu sudah tahu apa yang mau diulang: tiap isi list, atau range(5). Pakai while kalau kamu mengulang sampai sesuatu berubah: stok habis, uang mencapai target, input yang benar.

Infinite loop: lupa mengubah kondisinya

Hapus stok -= 1, dan stok tetap 3 selamanya. 3 > 0 selalu True, jadi loop gak pernah berhenti. Ini disebut infinite loop. Itu jawaban tebakannya: gak pernah berhenti sendiri. Terminal dibanjiri baris yang sama sampai kamu menekan Ctrl+C:

Jual 1 kopi, sisa 3
Jual 1 kopi, sisa 3
^CTraceback (most recent call last):
  File "/home/darto/warung.py", line 3, in <module>
    print(f"Jual 1 kopi, sisa {stok}")
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

break: keluar di tengah jalan

break menghentikan loop saat itu juga, tanpa menunggu kondisinya jadi False. Misalnya gelas terakhir disisihkan untuk Pak Darto sendiri:

stok = 3
while stok > 0:
    stok -= 1
    if stok == 1:
        break
    print(f"Jual 1 kopi, sisa {stok}")
print("Warung tutup")
Jual 1 kopi, sisa 2
Warung tutup

Di putaran kedua stok jadi 1, break jalan, dan Python langsung loncat ke baris setelah loop. print di bawah break gak sempat jalan.

Pola yang sering dipakai: while True: yang sengaja gak pernah False, dengan break di dalamnya. Pak Darto menabung Rp150.000 per hari sampai minimal Rp500.000:

uang = 0
hari = 0
while True:
    hari += 1
    uang += 150000
    if uang >= 500000:
        break
print(hari, uang)   # 4 600000

continue: lompat ke putaran berikutnya

continue melewati sisa badan loop di putaran itu saja, lalu kembali mengecek kondisi. Loop-nya tetap jalan.

stok = 3
while stok > 0:
    stok -= 1
    if stok == 1:
        continue
    print(f"Jual 1 kopi, sisa {stok}")
print("Warung tutup")
Jual 1 kopi, sisa 2
Jual 1 kopi, sisa 0
Warung tutup

Saat stok 1, print dilewati, tapi putaran berikutnya tetap jalan sampai stok 0. Bedanya dengan break: break mengakhiri loop, continue cuma mengakhiri putaran itu.

else di loop

Python punya fitur yang jarang ada di bahasa lain: else setelah loop. Blok else jalan kalau loop selesai normal, yaitu karena kondisinya jadi False. Kalau loop dihentikan break, else dilewati.

stok = 3
while stok > 0:
    stok -= 1
    print(f"Jual 1 kopi, sisa {stok}")
else:
    print("Kopi habis")
print("Warung tutup")

⚠️ Jebakan yang sering ketemu

TL;DR: while kondisi: mengecek kondisinya sebelum tiap putaran dan mengulang selama True. Badan loop harus mengubah sesuatu (stok -= 1) supaya kondisinya suatu saat False. Kalau gak, terjadi infinite loop yang cuma berhenti dengan Ctrl+C (KeyboardInterrupt). break mengakhiri loop saat itu juga, continue cuma melewati sisa putaran itu. else setelah loop jalan kalau loop selesai normal (kondisinya False), dan dilewati kalau berhenti karena break. Pakai for untuk deret yang sudah jelas, while untuk mengulang sampai sesuatu berubah.

Yang akan kamu pelajari