python 12 July 2026

Bagian 5: Kalau Hidup Itu Berulang, Maka Kode Pun Harus Tahu Kapan Berhenti

Bagian 5: Kalau Hidup Itu Berulang, Maka Kode Pun Harus Tahu Kapan Berhenti

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:

JenisCocok Untuk
forTahu pasti jumlah pengulangan / iterasi over something
whileBelum 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 diganti angka, 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 nulis range(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 != rahasia bernilai True.
  • Variabel percobaan bertambah 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 logika while-nya.

⚠️ Peringatan Nyata:
Jika Anda lupa percobaan += 1 atau tebakan = 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: tekan Ctrl + C di 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 i genap (i % 2 == 0), Python loncat ke iterasi berikutnyaprint di bawahnya tidak dieksekusi untuk angka genap.

💡 Catatan Kelas:
Siswa sering tanya: “Pak, kalo break di dalam while, keluar dari mana?”
Jawabannya: Keluar dari loop terdalam (innermost) yang sedang berjalan. Kalau nested loop — break cuma keluar satu level. Ingat: break tidak 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 * sebanyak baris. 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 ubah tinggi = 5 jadi tinggi = 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.”