🐍 📘 Bagian 1 (Fondasi & Kontrol Alur) • Modul 05 100% Standar Industri & Vokasi

Perulangan & Iterasi (For & While)

Iterasi urutan dengan for loop & range(), loop while berbasis kondisi, loop control statements (break, continue, pass), dan klausa else pada loop.

Target Pembelajaran:
  • Memahami perbedaan perulangan terhitung (Definite Loop - for) dan perulangan berkondisi (Indefinite Loop - while).
  • Menggunakan fungsi range(start, stop, step) untuk generate urutan angka.
  • Mengendalikan iterasi dengan break (menghentikan) dan continue (melompati).
  • Menghindari jebakan perulangan tanpa henti (Infinite Loop).

1. Perulangan `for` & Fungsi `range()`

Flowchart Siklus Perulangan For dengan Sequence Iterator dan range().
Gambar 5.1: Flowchart Siklus Perulangan For dengan Sequence Iterator dan range().

Perulangan for di Python digunakan untuk melakukan iterasi pada suatu urutan (seperti deret angka, teks string, list, atau tuple).

Fungsi range(start, stop, step)

  • range(5) → menghasilkan angka dari 0 sampai 4 (stop tidak termasuk).
  • range(2, 8) → menghasilkan angka 2, 3, 4, 5, 6, 7.
  • range(1, 10, 2) → menghasilkan bilangan ganjil 1, 3, 5, 7, 9 (step lompat 2).
python (contoh_for.py)
# 1. Iterasi angka dengan range
print("Deret angka genap:")
for i in range(2, 11, 2):
    print(f"Angka: {i}")

# 2. Iterasi karakter pada string
kata = "PYTHON"
for huruf in kata:
    print(f"Karakter: {huruf}")

2. Perulangan `while`

Perulangan while akan terus mengeksekusi blok kodenya selama kondisi yang diperiksa masih bernilai True.

python (hitung_mundur.py)
hitung = 5

while hitung > 0:
    print(f"Peluncuran dalam: {hitung}...")
    hitung -= 1  # Dekremen (mengurangi nilai agar tidak terjadi infinite loop)

print("🚀 Roket Berhasil Meluncur!")
Hati-Hati Infinite Loop: Selalu pastikan ada baris kode di dalam blok while yang mengubah kondisi (seperti hitung -= 1) agar kondisi pada akhirnya bernilai False dan perulangan dapat berhenti.

3. Perintah Kontrol: Break, Continue, & Pass

Perbandingan Efek Perintah Kontrol: break (keluar), continue (skip), pass (no-op).
Gambar 5.2: Perbandingan Efek Perintah Kontrol: break (keluar), continue (skip), pass (no-op).
  • break : Menghentikan paksa seluruh proses perulangan seketika.
  • continue : Menghentikan iterasi saat ini dan langsung melompat ke iterasi berikutnya.
  • pass : Statemen kosong yang tidak melakukan aksi apa pun (hanya sebagai placeholder sintaks).
python (kontrol_loop.py)
# Contoh Penggunaan Continue dan Break
print("Cari angka tertentu:")
for angka in range(1, 10):
    if angka == 3:
        print("-> Angka 3 dilewati (continue)")
        continue
    
    if angka == 7:
        print("-> Angka 7 ditemukan! Perulangan dihentikan (break)")
        break
        
    print(f"Memproses angka: {angka}")

4. Latihan Mandiri: Pola Segitiga Bintang

Tantangan 5: Generator Pola Bintang (Nested Loop)

Buat program pola_bintang.py yang meminta masukan jumlah baris n, lalu cetak pola segitiga siku-siku seperti berikut (misal n = 5):
*
**
***
****
*****

Tips Pythonic: Di Python, Anda bisa mengalikan string dengan angka, misalnya "*" * 3 akan menghasilkan "***"!
📋 Cheat Sheet: Perulangan (Loops & Iterasi)
Cheat Sheet
Sintaks / Perintah Keterangan Fungsi
for x in koleksi: Perulangan terarah melintasi seluruh elemen koleksi data
range(start, stop, step) Menghasilkan deret angka aritmatika sekuensial
while kondisi: Perulangan bersyarat selama kondisi bernilai True
enumerate(koleksi, start=1) Menghasilkan pasangan nomor indeks dan nilai elemen koleksi
break Menghentikan dan keluar dari siklus perulangan seketika
continue Melompati sisa instruksi iterasi saat ini dan lanjut ke iterasi berikutnya
🛠️ Praktikum Terkait

Jobsheet 02: Kontrol Alur, Percabangan & Perulangan

Asah logika algoritma perulangan bertingkat dengan membuat pola segitiga bintang, piramida angka, dan kalkulator faktorial.

⚠️ Perangkap Pemula: Infinite Loop pada While & Increment
Waspada Error

Lupa menambahkan pembaruan nilai variabel pencacah (counter) pada perulangan while sehingga program berjalan tanpa henti.

Kode Salah (Memicu Error)
# Infinite Loop (Program macet dan memori CPU membengkak):
i = 1
while i <= 5:
    print(f"Putaran ke-{i}")
    # LUPA: i += 1 (Nilai i selamanya bernilai 1)
Solusi Benar & Aman
# Solusi Benar:
i = 1
while i <= 5:
    print(f"Putaran ke-{i}")
    i += 1 # Wajib memperbarui nilai agar kondisi mencapai False
Penyebab & Solusi: Setiap blok perulangan while harus memastikan bahwa kondisi evaluasi akan berakhir (bernilai False) pada iterasi tertentu atau diputus dengan keyword break.
💡 Tips Pythonic: Iterasi Langsung & Fungsi enumerate()
Standar PEP 8

Hindari mengakses elemen koleksi menggunakan indeks manual range(len()) saat melakukan perulangan for.

Kurang Pythonic (Hindari)
# Kurang Pythonic (Manual indexing range(len()))
daftar_kursus = ["Python", "HTML/CSS", "JavaScript"]

for i in range(len(daftar_kursus)):
    nomor = i + 1
    kursus = daftar_kursus[i]
    print(str(nomor) + ". " + kursus)
Pythonic Way (Direkomendasikan)
# Pythonic (Gunakan enumerate() dengan start=1)
daftar_kursus = ["Python", "HTML/CSS", "JavaScript"]

for no, kursus in enumerate(daftar_kursus, start=1):
    print(f"{no}. {kursus}")
Mengapa enumerate()? enumerate() secara otomatis menghasilkan pasangan tuple (indeks, item) pada setiap putaran perulangan, bebas dari risiko IndexError.
🎯

Cek Pemahaman Mandiri

Uji pemahaman Anda terhadap konsep bab ini dengan feedback evaluasi instan.

2 Soal Pilihan Ganda
Q1

Apa perbedaan utama antara kata kunci continue dan break di dalam perulangan?

💡 Pembahasan: continue melompat langsung ke iterasi selanjutnya tanpa mengeksekusi kode di bawahnya pada putaran tersebut, sementara break langsung keluar dari blok loop sepenuhnya.

Q2

Berapa kali perulangan for i in range(1, 10, 2): akan berjalan?

💡 Pembahasan: range(start, stop, step) dimulai dari 1, bertambah 2 setiap putaran, dan berhenti sebelum 10. Nilai yang dievaluasi adalah 1, 3, 5, 7, 9 (total 5 kali).