Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas percabangan if, elif, dan else. Sekarang kita jalankan kode yang sama berkali-kali.
Menulis baris print() sepuluh kali memang bisa, tapi melelahkan dan sulit diubah. Perulangan membuat komputer mengerjakan pengulangan itu untuk kita.
Apa itu Perulangan?
Perulangan atau loop adalah cara menjalankan blok kode berkali-kali tanpa menulisnya ulang. Python punya dua jenis perulangan: while dan for. Artikel ini fokus pada while.
Struktur while
while menjalankan blok kode selama kondisinya bernilai True:
hitungan = 1
while hitungan <= 5:
print(hitungan)
hitungan += 1
Output:
1
2
3
4
5
Alurnya seperti ini:
- Python mengecek kondisi
hitungan <= 5. - Kalau
True, blok di dalamnya dijalankan. - Setelah blok selesai, kondisi dicek lagi.
- Begitu kondisinya
False, perulangan berhenti.
Karena itu isi blok harus mengubah sesuatu yang memengaruhi kondisi. Di contoh di atas, hitungan += 1 membuat nilainya naik sampai akhirnya lebih dari 5.
Kondisi Berhenti
Setiap while butuh cara agar kondisinya berakhir. Tanpa itu, perulangan tidak akan pernah selesai.
Perhatikan perbedaan berikut:
# Benar: hitungan bertambah sampai kondisi False
hitungan = 1
while hitungan <= 5:
print(hitungan)
hitungan += 1
# Salah: hitungan tidak pernah berubah
hitungan = 1
while hitungan <= 5:
print(hitungan) # berjalan selamanya
Di contoh kedua, hitungan selalu bernilai 1 sehingga hitungan <= 5 selalu True. Inilah yang disebut infinite loop.
Infinite Loop dan Cara Menghindarinya
Infinite loop adalah perulangan yang tidak pernah berhenti. Program tampak menggantung, dan di terminal biasanya dihentikan dengan Ctrl + C.
Penyebab umum infinite loop:
- Nilai yang dicek tidak pernah berubah.
- Perubahan ditulis di luar blok
while. - Kondisi salah tulis, misalnya
<=menjadi>=.
hitungan = 1
while hitungan <= 5:
print(hitungan)
hitungan += 1 # salah: berada di luar blok while
Baris hitungan += 1 tidak menjorok, jadi bukan bagian dari blok. Akibatnya hitungan tetap 1 dan loop berjalan terus.
Infinite loop tidak selalu salah. Pada program yang menunggu perintah pengguna, loop memang dirancang berjalan sampai ada perintah keluar. Yang penting, ada jalan keluar yang jelas.
while dengan Input Pengguna
Pola yang sering dipakai adalah mengulang sampai pengguna memberi jawaban tertentu:
perintah = ""
while perintah != "keluar":
perintah = input("Ketik perintah (keluar untuk berhenti): ")
print(f"Kamu menulis: {perintah}")
print("Program berhenti")
Selama pengguna tidak mengetik keluar, perulangan terus berjalan. Perhatikan bahwa perintah diisi ulang di dalam loop, jadi kondisinya bisa berubah.
Contoh Program: Tebak Angka
Mari buat permainan tebak angka sederhana yang mengulang sampai tebakan benar:
# tebak_angka.py
import random
rahasia = random.randint(1, 10)
tebakan = 0
percobaan = 0
while tebakan != rahasia:
tebakan = int(input("Tebak angka 1-10: "))
percobaan += 1
if tebakan < rahasia:
print("Terlalu kecil")
elif tebakan > rahasia:
print("Terlalu besar")
print(f"Benar! Kamu menebak dalam {percobaan} percobaan")
Program ini menggabungkan while dengan percabangan. Loop berhenti saat tebakan sama dengan rahasia. Modul random akan dibahas di artikel tentang standard library.
Kesalahan Umum Pemula
- Lupa mengubah variabel kondisi — penyebab utama infinite loop.
- Menaruh perubahan di luar blok — perhatikan indentasi.
- Lupa titik dua
:setelah kondisi. - Salah operator —
while x = 5tidak valid, gunakan==atau!=. - Menghentikan paksa — saat loop menggantung, tekan
Ctrl + Cdi terminal.
Ringkasan
whilemenjalankan blok selama kondisinyaTrue- Kondisi dicek ulang setiap kali blok selesai
- Isi blok harus mengubah nilai yang dipakai di kondisi agar loop berakhir
- Infinite loop terjadi saat kondisi tidak pernah berubah
whilecocok saat jumlah pengulangan belum diketahui sejak awal
Langkah Selanjutnya
while cocok kalau kamu belum tahu berapa kali harus mengulang. Tapi kalau jumlahnya sudah pasti, misalnya mengulang 10 kali atau menelusuri setiap item, ada cara yang lebih ringkas.
Artikel selanjutnya membahas Perulangan for di Python, cara menelusuri urutan nilai satu per satu.
