Soal 1Apa yang dicetak kode ini?n = 3
while n > 0:
print(n)
n -= 1
Loop while dan Menghindari Loop Tak Terbatas
Pelajari loop while di Python untuk mengulang selama kondisi terpenuhi tanpa terjebak loop tak hingga.
Bab for sebelumnya berfokus pada loop di mana hitungan atau target diketahui di awal.
Pernyataan while yang dibahas di sini adalah loop yang berulang "selama kondisi terpenuhi", dan dipakai ketika jumlah iterasi tidak diketahui sebelumnya. Penanganan retry, mengosongkan antrean, loop game — ia muncul di mana-mana dalam kode nyata.
Dasar while — ulangi selama kondisi True
while kondisi: menjalankan blok berulang kali selama kondisinya True. Setiap kali loop berputar, kondisi dievaluasi ulang, dan saat menjadi False, loop keluar.
Bentuknya mirip for, tapi alih-alih mengambil dari target, ia me-loop pada kondisi itu sendiri.
Kondisi → jika True, jalankan badan → cek kondisi lagi → keluar ketika False. Aturan utama while: dorong kondisi menuju False di dalam badan.
# Bentuk dasar — cetak 0 sampai 4
count = 0
while count < 5:
print(count)
count += 1
# 0 / 1 / 2 / 3 / 4
# Mengosongkan tugas yang tersisa dari sebuah antrean
tasks = ["send mail", "backup", "deploy"]
while tasks:
task = tasks.pop(0) # ambil dari depan
print(f"memproses: {task}")
# memproses: send mail / memproses: backup / memproses: deploy
Contoh kedua mengandalkan fakta bahwa while tasks: berbalik ke False saat list kosong, memakai aturan truthiness dari sebelumnya (list kosong adalah False).
Menghindari loop tak terbatas — selalu sediakan kondisi terminasi
Jebakan terbesar dengan while adalah loop tak terbatas. Jika kamu lupa update yang membalik kondisi ke False, program tidak pernah berhenti. Bahkan di console dalam-browser ini, itu membekukan halaman sampai timeout beberapa detik (atau puluhan detik) kemudian.
# Buruk: n tidak pernah berubah di dalam badan, jadi tidak pernah berakhir
# n = 10
# while n > 0:
# print(n)
# (Jangan jalankan ini — membekukan browser / timeout)
# Baik: kurangi n setiap kali sehingga kondisi akhirnya menjadi False
n = 10
while n > 0:
print(n)
n -= 1
Setiap kali kamu menulis while, cek bahwa kamu bisa menjawab "bagaimana kondisi menjadi False?"
Sebelum kamu menjalankannya, tunjuk ke kode dan konfirmasi bahwa setiap variabel di kondisi diperbarui di suatu tempat di badan loop.
Menggunakan break dan continue di dalam while
break / continue yang kamu lihat di for bekerja sama di dalam while.
Walaupun kondisi True, break dengan tegas keluar dari loop dan continue mengulang iterasi saat ini — ini adalah pola umum.
# Simulasi retry: sampai 5 percobaan, break ketika ditemukan
responses = [None, None, "OK", "OK", "OK"] # respons API eksternal mock
attempt = 0
found = False
while attempt < 5:
attempt += 1
response = responses[attempt - 1]
if response is None:
print(f"percobaan {attempt}: tidak ada respons, mencoba lagi")
continue # lewati sisa iterasi ini
print(f"percobaan {attempt}: dapat respons {response}, selesai")
found = True
break # sukses, keluar dari loop
if not found:
print("mencapai jumlah percobaan maksimum")
Meletakkan attempt += 1 di puncak loop adalah kuncinya. Dengan tata letak ini, bahkan jika continue atau break keluar lebih dini, counter tidak pernah dilewati, jadi jaminan "sampai 5 percobaan" tetap berlaku.
Memilih antara for dan while
for dan while keduanya loop, tapi mereka cocok untuk situasi berbeda. Ketika kamu tidak bisa memutuskan, ingat tabel ini.
| Ketika kamu ingin… | Pilihan terbaik | Mengapa |
|---|---|---|
| Memproses setiap elemen list, dict, dll. | for | Iterasi atas-ke-akhir terbaca alami |
| Mengulang persis N kali dari 0 sampai N-1 | for + range(N) | Hitungannya dinyatakan eksplisit sebagai angka |
| Berakhir pada kondisi kompleks di mana hitungan tidak diketahui | while | Kondisi itu sendiri yang menggerakkan loop |
| Coba ulang sampai respons eksternal sukses | while + break | Kamu bisa keluar segera saat sukses |
| Memproses input pengguna atau antrean sampai kosong | while | Ia berakhir alami saat kosong |
Di artikel ini, kita membahas dasar-dasar while, kondisi terminasi yang mencegah loop tak terbatas, mengontrol alur dengan break / continue, dan cara memilih antara for dan while.
Dengan if / for / while terbahas, kamu sudah belajar kontrol alur fundamental.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Hal paling penting yang perlu dilakukan untuk menghindari loop tak terbatas di while adalah?
Soal 3Mana cara paling tepat untuk memilih antara for dan while?