Loop & Perulangan

Otomasi Pengujian Kualitas Bodi Kendaraan

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 (loop) sebagai "robot yang bekerja berulang" tanpa lelah
  • Membedakan dan menggunakan for dan while sesuai kebutuhan program
  • Menggunakan range() untuk mengontrol jumlah pengulangan secara presisi
  • Menghentikan atau melompati perulangan dengan break dan continue
  • Menerapkan perulangan untuk otomasi inspeksi & pengujian kualitas bodi kendaraan

Konsep Dasar Perulangan

Analogi untuk Siswa TBKR:

Loop seperti robot inspeksi di lini produksi. Bayangkan teknisi yang harus memeriksa 10 pintu mobil satu per satu: cek penyok, cek cat, catat hasilnya. Tanpa loop, kamu harus menulis kode 10 kali. Dengan loop, cukup tulis sekali โ€” Python yang mengulanginya otomatis!

for Loop

Dipakai saat kamu sudah tahu berapa kali mau mengulang. Misal: cek 10 unit mobil, atau proses daftar 5 komponen.

while Loop

Dipakai saat kamu mengulang selama kondisi tertentu terpenuhi. Misal: terus cek hingga tidak ada cacat ditemukan.

Ingat! Kode di dalam blok for/while wajib diindentasi (tekan Tab 1ร—) โ€” sama seperti aturan pada if.

Level 1 โ€” For Loop Dasar

๐ŸŸข MUDAH Menggunakan for dengan range() dan List

Memeriksa sejumlah unit kendaraan secara otomatis โ€” seperti teknisi yang berkeliling memeriksa setiap mobil di lini produksi.

Mulai (unit = 1) โ†’ unit โ‰ค 5? โ†’ YA โ†’ Cetak laporan โ†บ unit += 1 ยท TIDAK โ†’ Selesai
Contoh A โ€” For dengan range()
# INSPEKSI 5 UNIT KENDARAAN SECARA OTOMATIS
print("=== LAPORAN INSPEKSI HARIAN ===")

for unit in range(1, 6): # angka 1 sampai 5
    print(f"Unit ke-{unit}: Inspeksi selesai โœ“")

print("Semua unit sudah diinspeksi!")
Output:
=== LAPORAN INSPEKSI HARIAN ===
Unit ke-1: Inspeksi selesai โœ“
Unit ke-2: Inspeksi selesai โœ“
Unit ke-3: Inspeksi selesai โœ“
Unit ke-4: Inspeksi selesai โœ“
Unit ke-5: Inspeksi selesai โœ“
Semua unit sudah diinspeksi!
// Cara Python memproses range(1, 6):
Iterasi 1โ†’unit = 1
Iterasi 2โ†’unit = 2
Iterasi 3โ†’unit = 3
Iterasi 4โ†’unit = 4
Iterasi 5โ†’unit = 5
Berhentiโ†’unit = 6 (sudah melebihi batas)
Contoh B โ€” For dengan List Komponen
# CEK KONDISI KOMPONEN BODI KENDARAAN
komponen = ["Pintu Kiri", "Pintu Kanan", "Kap Mesin", "Bagasi", "Bumper Depan"]

for bagian in komponen:
    print(f"Memeriksa {bagian}... OK")
Output:
Memeriksa Pintu Kiri... OK
Memeriksa Pintu Kanan... OK
Memeriksa Kap Mesin... OK
Memeriksa Bagasi... OK
Memeriksa Bumper Depan... OK
Cara Kerja Kode Ini:
1
for unit in range(1, 6) โ€” Python mengulang dari angka 1 hingga 5 (angka akhir di range tidak termasuk)
2
Setiap putaran, nilai unit otomatis bertambah (1, 2, 3, 4, 5) tanpa perlu kamu tulis manual
3
for bagian in komponen โ€” Python membaca isi list satu per satu, dari elemen pertama sampai terakhir
4
range(awal, akhir, langkah) โ€” parameter ketiga (langkah) opsional. range(0, 10, 2) menghasilkan 0, 2, 4, 6, 8

Level 2 โ€” While Loop & Break/Continue

๐ŸŸก SEDANG Menggunakan while, break, dan continue

Melakukan pengujian berulang sampai menemukan kondisi tertentu โ€” seperti pengujian ketebalan cat yang terus berjalan hingga ditemukan unit yang tidak lolos standar.

Mulai pengujian โ†’ lulus == False? โ†’ Cek unit berikutnya โ†บ ulangi ยท break โ†’ Hentikan
Contoh A โ€” While Loop dasar
# PENGUJIAN UNIT SAMPAI TARGET TERPENUHI
unit = 1
target = 5

while unit <= target:
    print(f"Menguji unit ke-{unit}...")
    unit += 1 # WAJIB! supaya tidak infinite loop

print("Semua pengujian selesai.")
BAHAYA Infinite Loop! Kalau lupa menulis unit += 1, program akan berjalan selamanya! Tekan Ctrl+C untuk menghentikannya.
Contoh B โ€” Break: Hentikan saat ditemukan cacat
# INSPEKSI BERHENTI SAAT ADA CACAT DITEMUKAN
hasil_inspeksi = ["OK", "OK", "CACAT", "OK", "OK"]

for i, hasil in enumerate(hasil_inspeksi, 1):
    print(f"Unit ke-{i}: {hasil}")
    if hasil == "CACAT":
        print("โ›” Lini produksi DIHENTIKAN โ€” cacat ditemukan!")
        break # langsung keluar dari loop
Output:
Unit ke-1: OK
Unit ke-2: OK
Unit ke-3: CACAT
โ›” Lini produksi DIHENTIKAN โ€” cacat ditemukan!
Contoh C โ€” Continue: Lewati unit yang sudah diperbaiki
# HITUNG BIAYA HANYA UNIT YANG PERLU PERBAIKAN
status_unit = ["perbaiki", "lulus", "perbaiki", "lulus", "perbaiki"]
total_biaya = 0

for i, status in enumerate(status_unit, 1):
    if status == "lulus":
        continue # lewati, langsung ke unit berikutnya
    total_biaya += 250000
    print(f"Unit ke-{i} perlu perbaikan โ€” Rp 250.000")

print(f"\nTotal biaya perbaikan: Rp {total_biaya:,}")
Output:
Unit ke-1 perlu perbaikan โ€” Rp 250.000
Unit ke-3 perlu perbaikan โ€” Rp 250.000
Unit ke-5 perlu perbaikan โ€” Rp 250.000

Total biaya perbaikan: Rp 750,000
Cara Kerja Kode Ini:
1
while kondisi: โ€” terus mengulang selama kondisi bernilai True. Kondisi dicek setiap awal putaran
2
break โ€” keluar paksa dari loop seketika. Sisa iterasi ditinggalkan, program lanjut ke baris setelah loop
3
continue โ€” lewati sisa kode di iterasi ini, langsung lompat ke iterasi berikutnya tanpa keluar dari loop
4
enumerate(list, 1) โ€” memberikan nomor urut pada setiap elemen. Angka 1 artinya hitungan mulai dari 1 (bukan 0)
5
total += 250000 โ€” singkatan dari total = total + 250000. Digunakan untuk akumulasi/penjumlahan bertahap

Level 3 โ€” Loop Bersarang & Input Berulang

๐Ÿ”ด SULIT Nested Loop & Sistem Input Berulang dengan Validasi

Mensimulasikan sistem kontrol kualitas yang memeriksa beberapa titik pada setiap unit kendaraan โ€” seperti robot inspeksi industri yang memeriksa panel kiri, panel kanan, kap, dan bagasi untuk setiap mobil.

Unit = 1..3 โ†’ Loop Luar โ†’ Titik = A..D โ†’ Loop Dalam โ†’ Cek tiap titik โ†บ semua selesai?
Contoh A โ€” Nested Loop: Inspeksi Multi-Titik
# SISTEM INSPEKSI KUALITAS MULTI-TITIK
jumlah_unit = 3
titik_inspeksi = ["Panel Kiri", "Panel Kanan", "Kap Mesin", "Bagasi"]

for unit in range(1, jumlah_unit + 1): # loop luar
    print(f"\n--- Unit ke-{unit} ---")
    cacat_unit = 0

    for titik in titik_inspeksi: # loop dalam
        nilai = float(input(f" Skor {titik} (0โ€“10): "))
        if nilai < 7:
            cacat_unit += 1
            print(f" โš  {titik} tidak lolos standar!")

    # Ringkasan per unit โ€” ini ada di dalam loop luar
    if cacat_unit == 0:
        print(" โœ… Unit LULUS semua titik inspeksi")
    else:
        print(f" โŒ Unit GAGAL โ€” {cacat_unit} titik bermasalah")
Contoh Output:
# Input: unit 1 semua skor 8; unit 2 skor Panel Kiri = 5
--- Unit ke-1 ---
โœ… Unit LULUS semua titik inspeksi

--- Unit ke-2 ---
โš  Panel Kiri tidak lolos standar!
โŒ Unit GAGAL โ€” 1 titik bermasalah
Contoh B โ€” While untuk Validasi Input
# INPUT TERUS DIULANG SAMPAI DATA VALID
while True:
    ketebalan = float(input("Masukkan ketebalan cat (mm, 0.1โ€“1.5): "))
    if 0.1 <= ketebalan <= 1.5:
        break # input valid โ€” keluar dari loop
    print("โŒ Input tidak valid! Masukkan nilai 0.1โ€“1.5")

print(f"โœ… Ketebalan {ketebalan} mm diterima.")
Contoh Output:
# Jika masukkan 5 (tidak valid), lalu 0.35 (valid)
Masukkan ketebalan cat (mm, 0.1โ€“1.5): 5
โŒ Input tidak valid! Masukkan nilai 0.1โ€“1.5
Masukkan ketebalan cat (mm, 0.1โ€“1.5): 0.35
โœ… Ketebalan 0.35 mm diterima.
Cara Kerja Kode Ini:
1
Nested Loop โ€” loop di dalam loop. Loop luar mengulang tiap unit, loop dalam mengulang tiap titik inspeksi. Total iterasi = jumlah_unit ร— jumlah_titik
2
Variabel cacat_unit = 0 direset di setiap putaran loop luar โ€” agar hitungan cacat masing-masing unit tidak bercampur
3
while True: โ€” loop yang tidak ada kondisi berhentinya. Satu-satunya cara keluar adalah lewat break. Berguna untuk validasi input
4
Indentasi menentukan "level" loop: 4 spasi = dalam loop luar ยท 8 spasi = dalam loop dalam ยท 12 spasi = dalam kondisi di dalam loop dalam

Kamus Perulangan Python

Perintah Fungsi Contoh di Bengkel TBKR Kapan Dipakai
for x in range(n) Ulang sebanyak n kali for unit in range(10) Jumlah pengulangan sudah pasti
for x in list Proses setiap elemen list for bagian in komponen Iterasi isi daftar/list
while kondisi Ulang selama kondisi True while cacat_ditemukan Jumlah pengulangan belum pasti
while True Loop tanpa batas (pakai break) while True: input() Validasi input pengguna
break Hentikan loop seketika Hentikan saat cacat fatal Kondisi darurat ditemukan
continue Lewati iterasi ini, lanjut Lewati unit yang sudah lulus Ada item yang perlu dilewati
enumerate(list, 1) Tambahkan nomor urut enumerate(komponen, 1) Butuh indeks + nilai sekaligus
range(a, b, step) Urutan angka dengan langkah range(0, 100, 10) Urutan non-standar (loncat-loncat)

Latihan Mandiri

๐ŸŽฏ Latihan 1 (Mudah): Cetak Label Nomor Seri

Bengkel harus mencetak label nomor seri untuk 8 unit kendaraan yang baru selesai diperbaiki, dalam format "KDR-001", "KDR-002", dst.

# Template โ€” lengkapi bagian yang bertanda ______
for nomor in range(______, ______): # isi batas awal dan akhir
    print(f"KDR-{nomor:03d}") # :03d = format 3 digit dengan nol di depan
Petunjuk: f"KDR-{nomor:03d}" menghasilkan "KDR-001". Format :03d artinya tampilkan angka minimal 3 digit, isi nol di depan jika kurang.
๐ŸŽฏ Latihan 2 (Sedang): Akumulasi Biaya Perbaikan

Teknisi memasukkan biaya perbaikan satu per satu untuk beberapa kendaraan. Program terus menerima input hingga pengguna mengetik "selesai", lalu tampilkan total biaya.

total = 0
jumlah_unit = 0

while True:
    masukan = input("Biaya perbaikan (atau 'selesai'): ")
    if masukan == ______: # isi kondisi untuk berhenti
        ______ # isi perintah untuk keluar loop
    total += int(masukan)
    jumlah_unit += 1

print(f"Total {jumlah_unit} unit โ€” Total biaya: Rp {total:,}")
๐ŸŽฏ Latihan 3 (Sulit): Laporan Kualitas Produksi

Buat program laporan produksi untuk 5 unit kendaraan. Setiap unit dicek 3 komponen (cat, las, penyok). Input skor 1โ€“10. Hitung rata-rata per unit dan tentukan statusnya (โ‰ฅ7 = LULUS, <7 = GAGAL). Di akhir, tampilkan berapa unit yang lulus dan berapa yang gagal.

komponen = ["Cat", "Las", "Penyok"]
lulus = 0
gagal = 0

for unit in range(1, 6):
    total_skor = 0
    for k in komponen:
        skor = float(input(f" Skor {k} unit-{unit}: "))
        total_skor += ______ # tambahkan skor
    rata = ______ # hitung rata-rata
    if ______: # kondisi lulus
        lulus += 1
        print(f"Unit {unit}: Rata-rata {rata:.1f} โ†’ โœ… LULUS")
    else:
        gagal += 1
        print(f"Unit {unit}: Rata-rata {rata:.1f} โ†’ โŒ GAGAL")

print(f"\nRingkasan: {lulus} lulus | {gagal} gagal")
Tantangan Ekstra: Gunakan continue untuk melewati skor yang di bawah 0 atau di atas 10 (input tidak valid). Tampilkan pesan peringatan sebelum melanjutkan ke komponen berikutnya.

Tantangan Kreatif (Bonus)

๐Ÿญ

Proyek Mini: Simulator Lini Produksi Bengkel

Buat program simulator lini produksi yang dapat menerima data N unit kendaraan, memeriksa beberapa komponen per unit, menghitung total biaya perbaikan, dan mencetak laporan akhir produksi.

============================================
SIMULATOR LINI PRODUKSI BENGKEL TBKR
============================================
Jumlah unit hari ini: 3
Komponen dicek : Cat, Las, Penyok
--------------------------------------------
Unit 1 โ†’ Rata-rata: 8.3 โ†’ โœ… LULUS
Unit 2 โ†’ Rata-rata: 5.7 โ†’ โŒ GAGAL (biaya: Rp 450,000)
Unit 3 โ†’ Rata-rata: 9.0 โ†’ โœ… LULUS
--------------------------------------------
Lulus : 2 unit (66.7%)
Gagal : 1 unit (33.3%)
Total Biaya Perbaikan: Rp 450,000
============================================

Dokumentasi & Pengumpulan

WAJIB DIDOKUMENTASIKAN!

Perhatikan Instruksi Berikut:

Setiap latihan yang telah kamu kerjakan WAJIB didokumentasikan dalam satu postingan di Blogger sebagai bukti pembelajaran.

1
Buat Postingan di Blogger

Dokumentasikan semua hasil latihan (kode program, screenshot output, dan penjelasan) dalam satu postingan Blogger yang rapi dan menarik.

2
Gunakan Judul yang Ditentukan

Pastikan postingan menggunakan judul persis seperti berikut:

Memahami Loop dan Perulangan dalam Python
Judul harus persis sama termasuk huruf kapital dan spasi untuk memudahkan penilaian.
3
Isi Minimal Postinganmu:
  • Screenshot kode + output Latihan 1, 2, dan 3
  • Penjelasan singkat perbedaan for dan while dengan bahasamu sendiri
  • Penjelasan singkat fungsi break dan continue
  • Satu contoh penggunaan loop yang kamu buat sendiri (bebas, tapi tetap konteks bengkel TBKR)
4
Kirim Link ke Google Form

Setelah postingan dipublikasikan, kirim link lengkap postinganmu melalui Google Form berikut:

Link form hanya bisa diakses oleh siswa terdaftar
Batas Waktu Pengumpulan: 3 hari setelah praktek ini selesai
Tips Dokumentasi yang Baik:
  • Sertakan screenshot kode program dan hasil output di HP
  • Tambahkan penjelasan singkat untuk setiap latihan
  • Gunakan gambar ilustrasi proses inspeksi kendaraan
  • Pastikan postingan sudah dipublikasikan (bukan draft)
NILAI PRAKTEK AKAN DINILAI BERDASARKAN KELENGKAPAN DOKUMENTASI DI BLOGGER

Tips Belajar

Bayangkan Loop sebagai Robot

Loop adalah robot tireless di bengkel โ€” ia mengulang tugas yang sama berulang kali tanpa lelah dan tanpa keluhan. Kamu yang menentukan kapan ia mulai dan berhenti.

Waspadai Infinite Loop

Jika program terasa "diam" atau tidak berhenti, kemungkinan kamu terjebak infinite loop. Tekan Ctrl+C untuk menghentikan. Periksa kembali kondisi while dan apakah ada variabel += 1 di dalamnya.

For atau While?

Tanya diri sendiri: "Aku tahu berapa kali mau mengulang?" Kalau YA โ†’ pakai for. Kalau jawabannya "tergantung kondisi" โ†’ pakai while.

Cetak untuk Debug

Tambahkan print(variabel) di awal loop untuk melihat nilainya berubah setiap iterasi. Ini cara paling mudah memahami cara kerja loop dan menemukan kesalahan logika.

Cheat Sheet โ€” Loop Python

for + range
for i in range(1, 6):
    print(i)
# Hasil: 1 2 3 4 5
// Ulang sejumlah tertentu
for + list
for item in daftar:
    print(item)
# Tiap elemen list
// Iterasi isi list
while
x = 0
while x < 5:
    print(x)
    x += 1
// Kondisi belum pasti
break
for x in range(10):
    if x == 5:
        break
# Berhenti di 5
// Keluar dari loop
continue
for x in range(5):
    if x == 2:
        continue
    print(x)
# Hasil: 0 1 3 4
// Lewati iterasi ini
Nested Loop
for unit in range(3):
    for titik in list:
        print(titik)
// Loop di dalam loop