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
Blok kode yang memenuhi syarat hanya dieksekusi 1 kali saja, kemudian program langsung melanjutkan ke baris di bawahnya.
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
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
# 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()
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.
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
| Kode | Jenis Potong | Harga Satuan |
|---|---|---|
| D | Dada | Rp 2.500 |
| P | Paha | Rp 2.000 |
| S | Sayap | Rp 1.500 |
Struk Rekapitulasi Pembelian
Rincian Pembelian Ayam Krispi Lezat
| No | Jenis | Harga | Banyak | Jumlah |
|---|
# 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.
Terminal Output:
Kuis Interaktif: Logika Perulangan (Looping)
Uji pemahaman mendalam Anda mengenai perulangan `for`, `while`, `range()`, dan `break`.
Loading pertanyaan kuis...
Rangkuman & Roadmap Pertemuan 6
Poin Penting Pertemuan 5
fordigunakan untuk iterasi berurut pada list, string, tuple, atau deret angkarange().range(start, stop, step)membuat deret aritmatika dengan batas akhir eksklusif.breakmenghentikan loop seketika, sedangkancontinuemelewati iterasi saat ini.- Blok
elsepada loop hanya dijalankan jika perulangan selesai tanpa terpicubreak. whilemengulang blok kode selama kondisi bernilaiTrue(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.