Pendamping Bab 9: Perulangan dengan for dan while. Gunakan nomor contoh dan latihan yang sama dengan buku.
Tujuan Belajar
- Memilih for atau while sesuai kebutuhan.
- Mengatur range(), break, continue, dan else.
- Membuat perulangan bersarang.
Persiapan
Gunakan Python 3 atau IDE browser. Contoh bab ini berjalan tanpa paket tambahan.
Program dengan tombol Coba di IDE dapat dijalankan di browser. Untuk program lokal, unduh sumber, ekstrak ZIP, lalu ikuti README.txt.
Pembahasan
09-01 – Mengulang Sapaan
range(5) menyediakan nilai 0 sampai 4. Untuk setiap nilai, Python mengisi variabel i, lalu menjalankan print() yang menjorok ke dalam. Ada lima nilai, jadi sapaan muncul lima kali. Pada contoh ini, nilai i belum dipakai di dalam print().
Coba di IDE Unduh Sumberfor i in range(5):
print("Halo!")
Hasil yang diharapkan:
Halo!
Halo!
Halo!
Halo!
Halo!Coba ubah: Ganti range(5) menjadi range(3). Berapa kali sapaan muncul?
09-02 – Mengatur Urutan dengan range()
Batas akhir range tidak disertakan. Loop pertama mencetak 0 sampai 2; loop kedua mencetak 1 sampai 5; loop ketiga mencetak 2, 4, 6, dan 8. Setelah satu loop selesai, program melanjutkan ke loop berikutnya.
Coba di IDE Unduh Sumberfor i in range(3):
print(i) # 0, 1, 2
for i in range(1, 6):
print(i) # 1, 2, 3, 4, 5
for i in range(2, 10, 2):
print(i) # 2, 4, 6, 8
Hasil yang diharapkan:
0
1
2
1
2
3
4
5
2
4
6
8Coba ubah: Ganti range(2, 10, 2) menjadi range(10, 0, -2). Prediksi urutan yang muncul sebelum menekan Run.
09-03 – Menelusuri String
Pada setiap putaran, huruf berisi satu karakter dari kata. Urutannya mengikuti posisi karakter dalam string. for tidak selalu membutuhkan penghitung angka; ia juga dapat menelusuri isi sebuah urutan.
Coba di IDE Unduh Sumberkata = "Python"
for huruf in kata:
print(huruf)
Hasil yang diharapkan:
P
y
t
h
o
nCoba ubah: Ganti Python menjadi nama panggilanmu. Cocokkan jumlah baris hasil dengan jumlah karakternya.
09-04 – Menghitung dengan while
Kondisi diperiksa sebelum print() dijalankan. Setelah mencetak 5, angka bertambah menjadi 6. Kondisi 6 <= 5 bernilai False, sehingga loop berhenti. Jika kondisi sudah False sejak awal, isi while tidak dijalankan sama sekali.
Coba di IDE Unduh Sumberangka = 1
while angka <= 5:
print(angka)
angka += 1
Hasil yang diharapkan:
1
2
3
4
5Coba ubah: Ganti kondisi menjadi angka <= 3. Pastikan angka += 1 tetap berada di dalam loop.
09-05 – Menghentikan Pencarian
Ketika angka bernilai 4, pesan ditampilkan lalu break mengakhiri loop. print(angka) di bawah if tidak dijalankan pada putaran itu, dan nilai 5 serta 6 tidak lagi diproses. Jika ada code sesudah loop, program akan melanjutkan ke sana.
Coba di IDE Unduh Sumberfor angka in range(1, 7):
if angka == 4:
print("Berhenti di", angka)
break
print(angka)
Hasil yang diharapkan:
1
2
3
Berhenti di 4Coba ubah: Ganti angka == 4 menjadi angka == 2. Perhatikan baris mana yang tidak lagi tercetak.
09-06 – Melewati Satu Putaran
Saat angka bernilai 3, continue melewati print(angka) untuk putaran tersebut. Loop tetap berlanjut ke 4 dan 5. Jadi, continue tidak mengakhiri keseluruhan loop.
Coba di IDE Unduh Sumberfor angka in range(1, 6):
if angka == 3:
continue
print(angka)
Hasil yang diharapkan:
1
2
4
5Coba ubah: Ganti angka == 3 menjadi angka % 2 == 0. Angka apa saja yang masih ditampilkan?
09-07 – Mencari Karakter dengan for-else
Karakter z tidak ada dalam Python. Pencarian selesai tanpa break sehingga else dijalankan. Perhatikan bahwa else sejajar dengan for, bukan dengan if di dalamnya.
Coba di IDE Unduh Sumberkata = "Python"
karakter_dicari = "z"
for huruf in kata:
if huruf == karakter_dicari:
print("Karakter ditemukan:", huruf)
break
else:
print("Karakter tidak ditemukan.")
Hasil yang diharapkan:
Karakter tidak ditemukan.Coba ubah: Ganti karakter_dicari menjadi "h". Perhatikan apakah pesan dari else masih muncul.
09-08 – Mengakhiri while dengan else
Nilai hitungan berkurang dari 3 menjadi 0. Ketika kondisi menjadi False, while selesai secara normal dan menjalankan else. Jika loop dihentikan dengan break, bagian else dilewati.
Coba di IDE Unduh Sumberhitungan = 3
while hitungan > 0:
print(hitungan)
hitungan -= 1
else:
print("Hitung mundur selesai.")
Hasil yang diharapkan:
3
2
1
Hitung mundur selesai.Coba ubah: Ganti nilai awal hitungan menjadi 0. Mengapa pesan selesai tetap muncul meskipun tidak ada angka yang dicetak?
09-09 – Membuat Pola Bintang
Loop luar menentukan nomor baris. Pada baris ke-3, misalnya, loop dalam berjalan tiga kali. end="" membuat bintang berikutnya tetap berada di baris yang sama. print() setelah loop dalam memindahkan posisi cetak ke baris berikutnya.
Coba di IDE Unduh Sumberfor baris in range(1, 5):
for kolom in range(baris):
print("*", end="")
print()
Hasil yang diharapkan:
*
**
***
****Coba ubah: Ganti batas akhir loop luar dari 5 menjadi 6. Berapa baris dan bintang pada baris terakhir?
Studi Kasus
09-10 – Menghitung Tabungan
Tabungan dimulai dari 0 dan diperbarui pada setiap putaran. Karena ada lima setoran sebesar Rp 10000, hasil akhirnya Rp 50000. print terakhir berada di luar loop sehingga total hanya dicetak satu kali.
Coba di IDE Unduh Sumbersetoran_harian = 10000
jumlah_hari = 5
tabungan = 0
for hari in range(1, jumlah_hari + 1):
tabungan += setoran_harian
print(f"Hari {hari}: Rp {tabungan}")
print(f"Total tabungan: Rp {tabungan}")
Hasil yang diharapkan:
Hari 1: Rp 10000
Hari 2: Rp 20000
Hari 3: Rp 30000
Hari 4: Rp 40000
Hari 5: Rp 50000
Total tabungan: Rp 50000Coba ubah: Ganti setoran_harian menjadi 15000 dan jumlah_hari menjadi 7. Periksa apakah totalnya Rp 105000.
Rangkuman
for menelusuri urutan; while memeriksa kondisi. break mengakhiri loop, continue melewati sisa putaran, dan else berjalan jika loop selesai tanpa break.
Cek Pemahaman
Lima pertanyaan ini sama dengan pertanyaan di buku. Periksa jawaban di kuis untuk melihat skor dan pembahasan.
- Nilai apa yang dihasilkan range(2, 8, 2)?
- Kapan isi while dijalankan?
- Apa perbedaan break dan continue?
- Pada contoh pencarian for-else, kapan else dijalankan?
- Loop luar berjalan 3 kali. Setiap kali itu, loop dalam mencetak 2 bintang. Berapa bintang yang tercetak?
Latihan Mandiri
Latihan 09-L01 – Kelipatan Tiga
Dasar. Tampilkan kelipatan tiga dari 3 sampai 30. Setiap angka ditulis pada baris baru.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
3
6
9
12
15
18
21
24
27
30
Lihat Petunjuk
Gunakan range dengan nilai awal 3 dan langkah 3. Ingat bahwa batas akhir tidak ikut ditampilkan.
Lihat Solusi
batas = 30
for angka in range(3, batas + 1, 3):
print(angka)Langkah 3 menghasilkan 3, 6, 9, dan seterusnya. Batas 31 membuat angka 30 tetap termasuk.
Coba Solusi di IDEUnduh SolusiLatihan 09-L02 – Hitung Mundur
Penerapan. Gunakan while untuk mencetak 5 sampai 1, lalu tampilkan Mulai! satu kali setelah perulangan selesai.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
5
4
3
2
1
Mulai!
Lihat Petunjuk
Mulai dari 5, ulangi selama nilai lebih besar dari 0, lalu kurangi nilainya di dalam loop.
Lihat Solusi
hitungan = 5
while hitungan > 0:
print(hitungan)
hitungan -= 1
print("Mulai!")Pengurangan membuat kondisi akhirnya False. print terakhir berada di luar loop sehingga hanya berjalan sekali.
Coba Solusi di IDEUnduh SolusiLatihan 09-L03 – Segitiga Angka
Pengembangan. Gunakan dua for bersarang untuk mencetak empat baris: 1, 12, 123, dan 1234.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
1
12
123
1234
Lihat Petunjuk
Loop luar menentukan baris. Loop dalam mencetak angka 1 sampai nomor baris dengan end="".
Lihat Solusi
tinggi = 4
for baris in range(1, tinggi + 1):
for angka in range(1, baris + 1):
print(angka, end="")
print()Pada baris ke-n, loop dalam mencetak n angka. print tanpa argumen memulai baris berikutnya.
Coba Solusi di IDEUnduh SolusiReferensi dan Materi Pendamping
- for: menelusuri urutan
- range(): awal, batas, dan langkah
- while: perulangan berdasarkan kondisi
- break dan continue: mengendalikan loop
- Perulangan for
- Perulangan while
Langkah Selanjutnya
Bab 10 membahas input pengguna dan validasi dasar.
Edisi September 2026. Nomor contoh, pertanyaan, dan latihan digunakan bersama pada buku dan halaman ini.
