Saat itu saya duduk di bangku kosong lab komputer, menunggu jam pelajaran dimulai. Di layar monitor tetangga sebelah, cursor berkedip-kedip di baris ke-47 kode yang sama — copy-paste fungsi print() berulang kali hanya untuk menampilkan angka 1 sampai 20.
“Pak, ini capek ngetiknya,” bisik dia, jari-jari merah di ujungnya.
Saya tersenyum. Kadang kita terlalu sibuk mengetik hal yang sama, sampai lupa kalau komputer itu diciptakan untuk mengulang hal-hal membosankan atas nama kita.
Mari kita belajar menyerahkan urusan pengulangan kepada mesin. Anda — ya, Anda yang sekarang membaca ini sambil minum kopi dingin — sudah siap?
Kenapa Butuh Perulangan? (Recap Singkat)
Sebelumnya kita sudah main-main dengan kondisi (if, elif, else). Kode bisa memicu keputusan. Tapi bayangkan: Anda mau mencetak “Assalamualaikum” seratus kali. Atau menjumlahkan angka 1 sampai 10.000.
Tulis manual? Jangan.
Python punya dua cara utama mengulang:
| Jenis | Cocok Untuk |
|---|---|
for | Tahu pasti jumlah pengulangan / iterasi over something |
while | Belum tahu kapan berhenti, cuma tahu kondisi berhentinya |
1. for Loop + range() — Pasangan Serasi
range() itu seperti pengajar yang memegang absensi. Dia tidak menyimpan semua nama sekaligus — dia hanya menghasilkan nama berikutnya saat dipanggil.
# loop_for_range.py
# Mencetak angka 1 sampai 10
for i in range(1, 11): # range(start, stop) -> stop TIDAK termasuk
print(f"Perulangan ke-{i}")
print("Selesai!")Penjelasan:
range(1, 11)menghasilkan angka 1, 2, 3, …, 10. Angka 11 tidak masuk — ini yang sering bikin siswa bingung.- Variabel
i(bisa digantiangka,x,item) otomatis berganti nilai tiap iterasi. print(...)di dalam loop dieksekusi 10 kali. Yang di luar? Cuma sekali.
💡 Tips dari Meja Guru:
Di kelas, saya sering lihat siswa nulisrange(1, 10)tapi yakin hasilnya sampai 10. Coba jalankan sendiri. Kesalahan off-by-one ini klasik — bahkan programmer senior masih terkena.
2. while Loop — “Selama Masih Benar, Lanjutkan”
Kalau for itu “ulang 10 kali”, while itu “ulang selama syarat terpenuhi”.
Bayangkan Anda menunggu hujan berhenti. Anda tidak tahu pasti kapan — cuma tahu: selama hujan turun, saya diam di sini.
# loop_while.py
# Menebak angka rahasia (simulasi sederhana)
import random
rahasia = random.randint(1, 10)
tebakan = 0
percobaan = 0
print("=== TEBAK ANGKA 1-10 ===")
while tebakan != rahasia:
tebakan = int(input("Masukkan tebakan: "))
percobaan += 1
if tebakan < rahasia:
print("Terlalu kecil!")
elif tebakan > rahasia:
print("Terlalu besar!")
print(f"Benar! Angkanya {rahasia}. Anda berhasil dalam {percobaan} percobaan.")Penjelasan:
- Loop akan terus berjalan selama
tebakan != rahasiabernilaiTrue. - Variabel
percobaanbertambah di dalam loop — ini pola klasik: inisialisasi di luar, update di dalam. import random&random.randint(1, 10)cuma buat bikin angka acak. Fokus ke logikawhile-nya.
⚠️ Peringatan Nyata:
Jika Anda lupapercobaan += 1atautebakan = int(input(...))di dalam loop — program Anda akan berhenti di sana selamanya. Infinite loop. Saya pernah lihat laptop siswa hang gara-gara ini. Kalau terjadi: tekanCtrl + Cdi terminal.
3. break & continue — Remote Control Loop
Kadang loop harus dihentikan paksa (break) atau dilewati satu putaran (continue).
Metafora simpel:
break= menekan tombol stop lift — keluar total dari gedung.continue= melewati lantai 4 — lift tetap jalan, cuma tidak buka pintu di lantai itu.
# break_continue.py
# Demo break & continue
print("--- CONTOH BREAK ---")
for i in range(1, 11):
if i == 5:
print(f" -> Ketemu {i}, hentikan loop!")
break
print(f" Angka: {i}")
print("\n--- CONTOH CONTINUE ---")
for i in range(1, 11):
if i % 2 == 0: # genap? lewati
continue
print(f" Angka ganjil: {i}")Penjelasan:
- Break: Saat
i == 5, loop berhenti total. Angka 6-10 tidak pernah diproses. - Continue: Saat
igenap (i % 2 == 0), Python loncat ke iterasi berikutnya —printdi bawahnya tidak dieksekusi untuk angka genap.
💡 Catatan Kelas:
Siswa sering tanya: “Pak, kalobreakdi dalamwhile, keluar dari mana?”
Jawabannya: Keluar dari loop terdalam (innermost) yang sedang berjalan. Kalau nested loop —breakcuma keluar satu level. Ingat:breaktidak keluar dari fungsi, cuma keluar dari loop.
4. Pola Bintang — Latihan Logika + Estetika
Ini favorit siswa SMK. Bikin pola bintang pakai nested loop (loop di dalam loop). Sekalian latihan logika baris & kolom.
# pola_bintang.py
# Segitiga siku-siku & piramida
print("=== SEGITIGA SIKU-SIKU ===")
tinggi = 5
for baris in range(1, tinggi + 1):
# Cetak bintang sebanyak nomor baris
for _ in range(baris):
print("*", end=" ") # end=" " supaya tidak pindah baris
print() # pindah baris setelah selesai satu baris
print("\n=== PIRAMIDA ===")
for baris in range(1, tinggi + 1):
spasi = tinggi - baris
bintang = 2 * baris - 1
print(" " * spasi + "*" * bintang)Penjelasan:
- Segitiga: Loop luar = baris (1-5). Loop dalam = cetak
*sebanyakbaris. Variabel_dipakai kalau kita tidak butuh nilai loop dalam. - Piramida: Rumus
spasi = tinggi - baris&bintang = 2*baris - 1. Coba hitung manual baris 1, 2, 3 — pahami pola matematisnya.
🎨 Eksperimen Santai:
Coba ubahtinggi = 5jaditinggi = int(input("Tinggi: ")). Lalu coba buat belah ketupat (piramida + piramida terbalik). Ini latihan logika terbaik — bukan hafal kode, tapi melatih pola pikir.
Penutup: Loop Itu Seperti Hidup
Saat artikel ini selesai, saya ngopi di meja guru, melihat jam dinding menitikkan detik — loop yang tidak punya break, berjalan sampai baterai habis.
Tapi kode Anda? Anda yang punya kendali. Anda tentukan range-nya. Anda tentukan kapan while berhenti. Anda pasang break saat cukup. Anda continue saat halangan datang.
Perulangan bukan tentang pengulangan. Perulangan tentang keputusan yang diulang — sampai Anda memutuskan untuk berhenti.
Bagian 6 nanti kita bahas Fungsi (Function) — supaya kode Anda tidak cuma jalan, tapi rapi, reusable, dan profesional.
Sampai ketemu di baris kode berikutnya.
Tetap semangat, jangan lupa break saat istirahat. ☕
Rifqi Anshory
Guru SMK RPL | Penulis di rifqianshory.com
“Kode itu puisi yang dieksekusi mesin.”