Loop & Perulangan Python

Otomasi Proses Berulang

Untuk Jurusan Teknik Bodi Kendaraan Ringan (TBKR)

Kelas X SMK

2 JP (90 Menit) Kelas X TBKR 3 Level Kesulitan

Tujuan Pembelajaran

Setelah mengikuti praktek ini, kamu akan mampu:

  • Memahami konsep perulangan dalam pemrograman
  • Membedakan penggunaan for dan while dengan tepat
  • Menggunakan break dan continue untuk kontrol perulangan
  • Membuat nested loops (perulangan bersarang) untuk proses kompleks
  • Menerapkan loop dalam sistem pengujian kualitas bodi kendaraan

Konsep Dasar Loop

Analogi untuk Siswa TBKR:

Loop seperti proses inspeksi berulang di bengkel. Saat menguji 50 panel bodi, teknisi tidak menguji satu per satu secara manual. Sebaliknya, dia menggunakan sistem otomatis yang "lakukan pengujian untuk panel 1, panel 2, panel 3... sampai selesai." Loop di Python bekerja sama!

# Struktur dasar loop — seperti sistem inspeksi otomatis
for i in range(10):
    # Lakukan sesuatu 10 kali (i = 0, 1, 2, ... 9)

while kondisi is True:
    # Ulangi selama kondisi masih benar
Ingat! Kode di dalam loop wajib diindentasi (tekan Tab 1×). Ini tanda bahwa kode tersebut bagian dari loop.

Level 1 — Loop Dasar (FOR)

🟢 MUDAH Menggunakan Loop for

Loop dengan jumlah iterasi yang sudah diketahui. Cocok untuk mengecek semua panel bodi satu per satu.

Contoh 1: Cek 10 Panel Bodi
# Cek hasil pengecatan 10 panel
for panel in range(1, 11):
    print(f"Mengecek panel bodi nomor {panel}...")
    print("✓ Panel OK")
Output:
Mengecek panel bodi nomor 1...
✓ Panel OK
Mengecek panel bodi nomor 2...
✓ Panel OK
... (dan seterusnya sampai panel 10)
Contoh 2: Total Biaya Pengecatan
# Hitung total biaya pengecatan untuk N panel
total_biaya = 0
biaya_per_panel = 50000 # Rp

for i in range(5):
    total_biaya = total_biaya + biaya_per_panel

print(f"Total: Rp{total_biaya:,.0f}")
Output:
Total: Rp250,000
Cara Kerja FOR Loop:
1
range(1, 11) menghasilkan angka 1 sampai 10. Angka akhir (11) tidak termasuk!
2
panel adalah variabel yang berubah setiap iterasi (putaran)
3
Kode di dalam loop dijalankan berkali-kali sesuai jumlah iterasi
4
range(jumlah) dimulai dari 0 secara default. Contoh: range(5) = 0,1,2,3,4

Level 2 — Loop Kondisional (WHILE)

🟡 SEDANG Menggunakan Loop while & break

Loop yang berjalan selama kondisi terpenuhi. Berguna saat kita tidak tahu berapa kali harus mengulang.

Contoh 1: Cek Sampai Menemukan Panel Cacat
# Cek panel sampai menemukan yang cacat
panel_no = 1
kondisi_panel = ["OK", "OK", "CACAT", "OK"]

while panel_no <= len(kondisi_panel):
    print(f"Mengecek panel {panel_no}: {kondisi_panel[panel_no-1]}")
    if kondisi_panel[panel_no-1] == "CACAT":
        print("⚠ Panel cacat ditemukan! Menghentikan...")
        break # Keluar dari loop
    panel_no = panel_no + 1
Output:
Mengecek panel 1: OK
Mengecek panel 2: OK
Mengecek panel 3: CACAT
⚠ Panel cacat ditemukan! Menghentikan...
Contoh 2: Tekan Tombol Sampai Benar
# User tekan tombol sampai input benar
password = "bengkel123"
attempt = 0

while attempt < 3:
    input_pwd = input("Masukkan password: ")
    if input_pwd == password:
        print("✓ Password benar!")
        break
    else:
        attempt = attempt + 1
        print(f"❌ Salah! Sisa coba: {3 - attempt}")
Cara Kerja WHILE Loop:
1
while kondisi: - loop berjalan selama kondisi bernilai True
2
break - keluar dari loop segera, abaikan sisa kode
3
continue - lewati ke iterasi berikutnya tanpa jalankan kode selebihnya
4
Baik lokal for maupun while bisa ada di dalamnya

Level 3 — Nested Loop

🔴 SULIT Perulangan Bersarang

Loop dalam loop. Cocok untuk proses kompleks seperti mengecek semua ukiran pada semua panel.

Contoh: Cek Semua Bagian Setiap Panel
# Cek semua panel & setiap bagiannya
panel_list = ["Panel Depan", "Panel Samping", "Panel Belakang"]
bagian_list = ["Cat", "Penyok", "Goresan"]

for panel in panel_list:
    print(f"Mengecek {panel}...")
    for bagian in bagian_list:
        print(f" - Cek {bagian}: OK")
Output:
Mengecek Panel Depan...
- Cek Cat: OK
- Cek Penyok: OK
- Cek Goresan: OK
Mengecek Panel Samping...
- Cek Cat: OK
(... dan seterusnya)
Contoh Lanjutan: Matrix Inspeksi
# Buat matrix hasil inspeksi 3 panel × 3 poin
print("LAPORAN INSPEKSI BODI KENDARAAN")
for panel in range(1, 4):
    for poin in range(1, 4):
        print(f"Panel {panel} - Poin {poin}: ✓", end=" ")
    print() # Baris baru
Output:
LAPORAN INSPEKSI BODI KENDARAAN
Panel 1 - Poin 1: ✓ Panel 1 - Poin 2: ✓ Panel 1 - Poin 3: ✓
Panel 2 - Poin 1: ✓ Panel 2 - Poin 2: ✓ Panel 2 - Poin 3: ✓
Panel 3 - Poin 1: ✓ Panel 3 - Poin 2: ✓ Panel 3 - Poin 3: ✓
Nested Loop Konsep:
1
Outer loop (luar) berjalan, untuk setiap putaran, inner loop (dalam) berjalan lengkap
2
Indentasi sangat penting! Inner loop diindentasi lebih dalam dari outer loop
3
print(..., end=" ") mencegah baris baru setelah print
4
Nested loop bisa ada lebih dari 2 lapisan, tapi lebih dari 3 biasanya kompleks dan sulit dibaca

Latihan Mandiri

🎯 Latihan 1 (Mudah): Cetak Angka

Buat program yang mencetak angka dari 1 sampai 5 menggunakan loop for.

# Template
for i in range(______):
    print(______)
Output yang diharapkan: 1 2 3 4 5 (masing-masing baris)
🎯 Latihan 2 (Sedang): Hitung Total Harga

Program menjumlahkan biaya pengecatan untuk N panel. Harga per panel Rp 75.000. Loop sampai user input 0.

total = 0
harga_panel = 75000

while ______:
    panel = int(input("Jumlah panel (0 untuk berhenti): "))
    if panel == 0:
        break
    total = ______

print(f"Total biaya: Rp{total:,.0f}")
🎯 Latihan 3 (Sulit): Nested Loop Inspeksi

Buat nested loop yang menciptakan tabel inspeksi: 3 panel × 4 poin inspeksi. Tampilkan "Panel X - Poin Y: OK"

for panel in range(______):
    for poin in range(______):
        print(f"Panel {______} - Poin {______}: OK")
Tantangan: Ubah output agar panel 1-3, poin 1-4 (bukan 0-2, 0-3)!