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 Sumber
for 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 Sumber
for 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
8

Coba 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 Sumber
kata = "Python"
for huruf in kata:
    print(huruf)

Hasil yang diharapkan:

P
y
t
h
o
n

Coba 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 Sumber
angka = 1
while angka <= 5:
    print(angka)
    angka += 1

Hasil yang diharapkan:

1
2
3
4
5

Coba 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 Sumber
for angka in range(1, 7):
    if angka == 4:
        print("Berhenti di", angka)
        break
    print(angka)

Hasil yang diharapkan:

1
2
3
Berhenti di 4

Coba 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 Sumber
for angka in range(1, 6):
    if angka == 3:
        continue
    print(angka)

Hasil yang diharapkan:

1
2
4
5

Coba 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 Sumber
kata = "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 Sumber
hitungan = 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 Sumber
for 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 Sumber
setoran_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 50000

Coba 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.

  1. Nilai apa yang dihasilkan range(2, 8, 2)?
  2. Kapan isi while dijalankan?
  3. Apa perbedaan break dan continue?
  4. Pada contoh pencarian for-else, kapan else dijalankan?
  5. Loop luar berjalan 3 kali. Setiap kali itu, loop dalam mencetak 2 bintang. Berapa bintang yang tercetak?
Kerjakan Kuis

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 Latihan

Hasil 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 Solusi

Latihan 09-L02 – Hitung Mundur

Penerapan. Gunakan while untuk mencetak 5 sampai 1, lalu tampilkan Mulai! satu kali setelah perulangan selesai.

Kerjakan di IDE Unduh Latihan

Hasil 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 Solusi

Latihan 09-L03 – Segitiga Angka

Pengembangan. Gunakan dua for bersarang untuk mencetak empat baris: 1, 12, 123, dan 1234.

Kerjakan di IDE Unduh Latihan

Hasil 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 Solusi

Referensi dan Materi Pendamping

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.

Bab 8 | Bab 10