Modul Pembelajaran Interaktif • Pertemuan 05

Perulangan (Looping) di Python
For, While, Range & Studi Kasus Kasir Ayam

Otomatisasi eksekusi kode berulang secara efisien! Pelajari struktur perulangan for pada sequence, fungsi range() dan enumerate(), perulangan while, kontrol break & continue, konstruksi unik for-else, serta sistem kasir legendaris Gerobak Fried Chicken.

Apa Itu Perulangan (*Looping / Iterasi*)?

Kondisi algoritma yang mengulang serangkaian instruksi sampai batas atau syarat tertentu terpenuhi.

Perbedaan Percabangan vs Perulangan

Percabangan (Branching):

Blok kode yang memenuhi syarat hanya dieksekusi 1 kali saja, kemudian program langsung melanjutkan ke baris di bawahnya.

Perulangan (Looping):

Blok kode akan dieksekusi berulang-ulang sebanyak jumlah data dalam sequence atau selama kondisi logika bernilai True.

Perulangan for pada Sequence

Mengiterasi setiap elemen dalam tipe data berurut (*String, List, Tuple, Dictionary*).

Sintaks & Cara Kerja

sintaks_for.py
for var in sequence:
    # Blok perintah dijalankan per elemen
    print(var)

var adalah variabel penampung sementara nilai elemen saat iterasi berjalan. Perulangan otomatis selesai saat elemen terakhir telah diproses.

Contoh Iterasi List & String

contoh_for.py
# 1. Iterasi String per karakter
teks = "Python"
for char in teks:
    print(char)

# 2. Iterasi List Kota dengan nomor indeks (enumerate)
list_kota = ["Bandung", "Jakarta", "Surabaya"]
for i, kota in enumerate(list_kota):
    print(f"Indeks {i}: {kota}")

Eksplorasi Sakti: Fungsi range(start, stop, step)

Fungsi bawaan Python untuk menghasilkan deret bilangan aritmatika secara dinamis.

Simulator Interaktif Fungsi range()

Perintah: range(2, 12, 2)

Catatan: Nilai stop tidak pernah dimasukkan ke dalam hasil iterasi (*eksklusif*).

Kontrol Alur Iterasi: break & continue

Interupsi paksa atau lewati langkah tertentu di tengah perulangan.

Pernyataan break

Memberhentikan paksa seluruh proses perulangan seketika dan langsung keluar dari blok loop.

for i in range(10, 20):
    if i == 15:
        break # Berhenti di angka 15!
    print(i)
# Output: 10, 11, 12, 13, 14

Pernyataan continue

Melewati (skip) sisa kode di iterasi saat ini, lalu langsung melompat ke iterasi berikutnya.

for i in range(10, 20):
    if i == 15:
        continue # Angka 15 di-skip!
    print(i)
# Output: 10, 11, 12, 13, 14, 16, 17, 18, 19

Konstruksi for ... else & Algoritma Pencarian

Menjalankan blok khusus ketika perulangan selesai tuntas tanpa terkena interupsi `break`.

Di Python, kita bisa menyertakan blok else pada loop. Blok else HANYA akan dieksekusi jika perulangan selesai secara normal (tanpa terpicu perintah break). Pola ini sangat elegan untuk fitur pencarian item pada list/database.

cari_kota_for_else.py
list_kota = ["Jakarta", "Surabaya", "Bandung", "Yogyakarta", "Semarang"]
cari = "Bandung"

for i, kota in enumerate(list_kota):
    if kota.lower() == cari.lower():
        print(f"Kota {kota} ditemukan pada indeks ke-{i}!")
        break # Keluar dari loop, blok else TIDAK akan jalan
else:
    # Dijalankan hanya jika seluruh list sudah diperiksa dan tidak ada yang cocok
    print("Maaf, kota yang kamu cari tidak ditemukan dalam daftar.")

Perulangan while (Berdasarkan Kondisi Boolean)

Mengeksekusi blok kode secara terus menerus selama kondisi logika bernilai True.

Sintaks & 3 Syarat Utama While

  • Inisialisasi Counter: Menentukan titik awal (misal: angka = 1).
  • Kondisi Uji: Syarat loop tetap berputar (misal: while angka <= 5:).
  • Update Counter: Mengubah nilai agar loop mendekati kondisi berhenti (misal: angka += 1).

Waspada: Infinite Loop!

Jika Anda lupa menuliskan kode pengubah nilai counter (angka += 1), maka kondisi akan selalu bernilai True dan program akan berputar selamanya tanpa henti!

angka = 1
while angka <= 5:
    print("Angka ke:", angka)
    angka = angka + 1 # WAJIB ADA!

Studi Kasus: Sistem Kasir "GEROBAK FRIED CHICKEN"

Implementasi perulangan input N jenis potongan ayam, pengelompokan list, dan rekapitulasi tabel struk + Pajak 10%.

Daftar Menu & Form Pesanan

Struk Rekapitulasi Pembelian

GEROBAK FRIED CHICKEN
Rincian Pembelian Ayam Krispi Lezat
No Jenis Harga Banyak Jumlah
Jumlah Bayar: Rp 0
Pajak 10%: Rp 0
TOTAL BAYAR: Rp 0
gerobak_fried_chicken.py
# PROGRAM GEROBAK FRIED CHICKEN
print("GEROBAK FRIED CHICKEN")
print("Kode D = Dada (Rp 2.500) | P = Paha (Rp 2.000) | S = Sayap (Rp 1.500)")

banyak_jenis = int(input("Banyak Jenis : "))
jenis_potong = []
harga_satuan = []
banyak_beli = []
jumlah_harga = []

# Perulangan Input Data Berdasarkan Banyak Jenis
for i in range(banyak_jenis):
    print(f"Jenis Ke - {i + 1}")
    kode = input("Kode Potong [D/P/S] : ").upper()
    qty = int(input("Banyak Potong : "))
    
    if kode == "D":
        jenis = "Dada"
        harga = 2500
    elif kode == "P":
        jenis = "Paha"
        harga = 2000
    else:
        jenis = "Sayap"
        harga = 1500
        
    subtotal = harga * qty
    jenis_potong.append(jenis)
    harga_satuan.append(harga)
    banyak_beli.append(qty)
    jumlah_harga.append(subtotal)

# Cetak Tabel Rekapitulasi Pembelian
print("\n" + "=" * 55)
print("No.  Jenis Potong   Harga Satuan  Banyak Beli  Jumlah Harga")
print("-" * 55)

jumlah_bayar = 0
for i in range(banyak_jenis):
    print(f"{i+1:<4} {jenis_potong[i]:<14} Rp {harga_satuan[i]:<10} {banyak_beli[i]:<12} Rp {jumlah_harga[i]}")
    jumlah_bayar += jumlah_harga[i]

pajak = jumlah_bayar * 0.1
total_bayar = jumlah_bayar + pajak

print("=" * 55)
print(f"Jumlah Bayar : Rp {jumlah_bayar}")
print(f"Pajak 10%    : Rp {pajak:.0f}")
print(f"Total Bayar  : Rp {total_bayar:.0f}")

Live Python Runner & Code Playground

Uji coba dan eksekusi berbagai variasi perulangan secara langsung di browser.

perulangan_demo.py

Terminal Output:

Klik 'Jalankan Program' untuk melihat hasil eksekusi kode di atas...

Kuis Interaktif: Logika Perulangan (Looping)

Uji pemahaman mendalam Anda mengenai perulangan `for`, `while`, `range()`, dan `break`.

Pertanyaan 1 dari 5 Skor Anda: 0/5

Loading pertanyaan kuis...

Progress Kuis

Rangkuman & Roadmap Pertemuan 6

Poin Penting Pertemuan 5

  • for digunakan untuk iterasi berurut pada list, string, tuple, atau deret angka range().
  • range(start, stop, step) membuat deret aritmatika dengan batas akhir eksklusif.
  • break menghentikan loop seketika, sedangkan continue melewati iterasi saat ini.
  • Blok else pada loop hanya dijalankan jika perulangan selesai tanpa terpicu break.
  • while mengulang blok kode selama kondisi bernilai True (ingat update counter!).

Materi Pertemuan 6: List & Tuple

Pada pertemuan berikutnya, kita akan mempelajari struktur data koleksi secara mendalam:

  • List: Struktur data dinamis, indexing, slicing, dan manipulasi elemen (append, extend, pop).
  • Tuple: Koleksi data permanen (*immutable*) yang aman dan cepat.
  • List Comprehension: Sintaks singkat elegan untuk membuat list dalam 1 baris.
  • Matriks & Nested List: Pengolahan data multi-dimensi.
Lanjut ke Pertemuan 6 Buka Colab