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.
- 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) dancontinue(melompati). - Menghindari jebakan perulangan tanpa henti (Infinite Loop).
1. Perulangan `for` & Fungsi `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).
# 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.
hitung = 5
while hitung > 0:
print(f"Peluncuran dalam: {hitung}...")
hitung -= 1 # Dekremen (mengurangi nilai agar tidak terjadi infinite loop)
print("🚀 Roket Berhasil Meluncur!")
while yang mengubah kondisi (seperti hitung -= 1) agar kondisi pada akhirnya bernilai False dan perulangan dapat berhenti.
3. Perintah Kontrol: Break, Continue, & Pass
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).
# 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):
*
**
***
****
*****
"*" * 3 akan menghasilkan "***"!
| 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 |
Jobsheet 02: Kontrol Alur, Percabangan & Perulangan
Asah logika algoritma perulangan bertingkat dengan membuat pola segitiga bintang, piramida angka, dan kalkulator faktorial.
Lupa menambahkan pembaruan nilai variabel pencacah (counter) pada perulangan while sehingga program berjalan tanpa henti.
# 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:
i = 1
while i <= 5:
print(f"Putaran ke-{i}")
i += 1 # Wajib memperbarui nilai agar kondisi mencapai False
while harus memastikan bahwa kondisi evaluasi akan berakhir (bernilai False) pada iterasi tertentu atau diputus dengan keyword break.
Hindari mengakses elemen koleksi menggunakan indeks manual range(len()) saat melakukan perulangan for.
# 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 (Gunakan enumerate() dengan start=1)
daftar_kursus = ["Python", "HTML/CSS", "JavaScript"]
for no, kursus in enumerate(daftar_kursus, start=1):
print(f"{no}. {kursus}")
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.
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.
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).