Struktur perulangan (looping) adalah fondasi penting dalam pemrograman. Salah satu struktur perulangan yang paling mendasar dan fleksibel dalam Python adalah pernyataan while. Berbeda dengan perulangan for yang biasanya beriterasi berdasarkan urutan (seperti elemen dalam list), perulangan while akan terus berjalan selama kondisi yang diberikan bernilai True.
Memahami cara kerja while sangat krusial bagi pengembang, terutama ketika kita perlu mengulang sebuah blok kode sampai kriteria tertentu terpenuhi, tanpa mengetahui secara pasti berapa banyak iterasi yang akan terjadi.
Ilustrasi Alur Kerja Perulangan While
Sintaks paling sederhana melibatkan kata kunci while diikuti oleh sebuah ekspresi boolean (kondisi), dan diakhiri dengan titik dua. Blok kode yang akan diulang harus diindentasi.
# Inisialisasi variabel kontrol
hitungan = 0
while hitungan < 5:
print(f"Iterasi saat ini: {hitungan}")
# Penting: Perbarui variabel kontrol agar loop berhenti
hitungan = hitungan + 1
print("Loop selesai.")
Contoh ini menunjukkan bagaimana menggunakan while untuk membuat hitungan mundur. Ini adalah kasus klasik di mana kita tahu titik awal (misalnya 10) dan titik akhir (0).
angka_awal = 10
print("Memulai Hitung Mundur...")
while angka_awal > 0:
print(angka_awal)
angka_awal -= 1 # Sama dengan angka_awal = angka_awal - 1
print("Luncurkan!")
while (seperti hitungan atau angka_awal di atas), maka kondisi tersebut akan selalu bernilai True, menyebabkan apa yang disebut sebagai "Infinite Loop" (Perulangan Tak Terbatas), yang dapat membuat program Anda macet.
Salah satu kegunaan paling umum dari while adalah untuk memvalidasi atau menunggu input spesifik dari pengguna. Loop akan terus berjalan hingga pengguna memasukkan data yang diinginkan.
kata_kunci = ""
batas_kata = "keluar"
while kata_kunci != batas_kata:
kata_kunci = input("Ketik 'keluar' untuk menghentikan program: ").lower()
if kata_kunci != batas_kata:
print(f"Anda mengetik: {kata_kunci}. Silakan coba lagi.")
print("Terima kasih telah menggunakan program!")
Dua kata kunci tambahan sangat berguna di dalam loop: break dan continue.
break: Menghentikan eksekusi loop secara total, dan program akan melanjutkan ke baris kode setelah blok loop.continue: Menghentikan iterasi saat ini, dan langsung melompat ke awal loop untuk mengevaluasi kondisi lagi.Berikut adalah contoh di mana kita ingin memproses angka dari 1 hingga 10, tetapi kita ingin melewatkan angka 5 (continue) dan berhenti total jika mencapai 8 (break).
i = 0
while i < 10:
i += 1
if i == 5:
print("Melewati angka 5.")
continue # Langsung ke iterasi berikutnya
if i == 8:
print("Mencapai batas berhenti.")
break # Keluar dari loop
print(f"Memproses angka: {i}")
Seringkali, programmer menggunakan while True: untuk membuat loop yang secara inheren tidak terbatas, namun logika penghentiannya (menggunakan break) ditempatkan di dalam blok kode. Ini sering lebih bersih untuk logika kompleks yang melibatkan banyak kondisi keluar.
while True:
user_input = input("Masukkan angka (atau 'stop'): ")
if user_input == 'stop':
print("Menghentikan loop dengan break.")
break
try:
angka = int(user_input)
print(f"Anda memasukkan angka kuadrat: {angka ** 2}")
except ValueError:
print("Input tidak valid. Harap masukkan angka atau 'stop'.")
# Kita tidak menggunakan 'continue' di sini, jadi loop akan berlanjut meskipun ada error, sampai 'stop' dimasukkan.
Secara keseluruhan, perulangan while adalah alat yang ampuh untuk kontrol iterasi berbasis kondisi. Penguasaan kapan harus menggunakan while dibandingkan for, serta kehati-hatian dalam mengelola variabel kontrol, adalah kunci untuk menulis kode Python yang efisien dan bebas bug.