Logika IF Python

Membuat Keputusan Otomatis di Program

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 logika if sebagai "pengambil keputusan" dalam program
  • Membedakan dan menggunakan if, elif, dan else dengan tepat
  • Menggabungkan kondisi menggunakan operator and, or, dan not
  • Menerapkan logika if dalam program diagnosa kerusakan bodi kendaraan
  • Membuat program bertingkat (nested if) untuk keputusan yang lebih kompleks

Konsep Dasar Logika IF

Analogi untuk Siswa TBKR:

Logika IF seperti keputusan teknisi di bengkel. Ketika melihat kerusakan, teknisi berpikir: "Kalau penyoknya dalam โ€” ganti panel. Kalau hanya goresan โ€” amplas dan cat ulang. Kalau ada karat โ€” las dulu, baru cat." Python melakukan hal yang sama!

# Struktur dasar logika IF โ€” seperti checklist teknisi bengkel
if kondisi: # "kalau..."
    # lakukan ini
elif kondisi_lain: # "kalau bukan itu tapi ini..."
    # lakukan itu
else: # "kalau tidak ada yang cocok..."
    # lakukan sesuatu yang lain
Ingat! Kode di dalam blok if wajib diindentasi (tekan Tab 1ร—). Ini tanda bahwa kode tersebut "milik" si if.

Level 1 โ€” Satu Kondisi

๐ŸŸข MUDAH Menggunakan if dan else

Dua pilihan saja: "kalau ya, lakukan ini โ€” kalau tidak, lakukan itu." Seperti cek apakah penyok perlu ganti panel atau cukup ditarik.

Cek kedalaman penyok โ†’ kedalaman > 3 cm? โ†’ YA โ†’ Ganti panel ยท TIDAK โ†’ Tarik manual
# CEK KEDALAMAN PENYOK BODI
kedalaman = float(input("Kedalaman penyok (cm): "))

if kedalaman > 3:
    print("Kerusakan PARAH โ†’ Perlu penggantian panel")
else:
    print("Kerusakan RINGAN โ†’ Cukup ditarik dengan dent puller")
Contoh Output:
# Jika input: 5
Kerusakan PARAH โ†’ Perlu penggantian panel

# Jika input: 2
Kerusakan RINGAN โ†’ Cukup ditarik dengan dent puller
Cara Kerja Kode Ini:
1
Kondisi ditulis setelah if, diakhiri tanda titik dua :
2
Blok kode di bawah if wajib diindentasi (Tab 1ร—) โ€” ini tanda "kode ini milik if"
3
else dijalankan ketika kondisi if tidak terpenuhi โ€” tidak perlu menulis kondisi lagi
4
Operator yang bisa dipakai: > lebih dari ยท < kurang dari ยท == sama dengan ยท != tidak sama dengan ยท >= ยท <=

Level 2 โ€” Banyak Kondisi

๐ŸŸก SEDANG Menggunakan if / elif / else

Saat ada lebih dari dua kemungkinan โ€” seperti tiga jenis kerusakan bodi yang membutuhkan penanganan berbeda-beda.

jenis == "penyok"? โ†’ Dent puller ยท jenis == "gores"? โ†’ Amplas + cat ยท jenis == "karat"? โ†’ Las MIG ยท else โ†’ Tidak dikenal
# DIAGNOSA JENIS KERUSAKAN BODI
jenis = input("Jenis kerusakan (penyok/gores/karat): ").lower()

if jenis == "penyok":
    print("Alat : Dent puller & palu bodi")
    print("Estimasi: 1โ€“2 jam")
elif jenis == "gores":
    print("Alat : Amplas, dempul, spray gun")
    print("Estimasi: 3โ€“4 jam")
elif jenis == "karat":
    print("Alat : Gerinda, panel baru, las MIG")
    print("Estimasi: 1โ€“2 hari")
else:
    print("Jenis kerusakan tidak dikenali. Periksa ulang.")
Contoh Output:
# Jika input: karat
Alat : Gerinda, panel baru, las MIG
Estimasi: 1โ€“2 hari

# Jika input: PENYOK (huruf besar) โ†’ .lower() membuatnya tetap cocok
Alat : Dent puller & palu bodi
Estimasi: 1โ€“2 jam
Cara Kerja Kode Ini:
1
elif singkatan dari "else if" โ€” "kalau kondisi sebelumnya tidak cocok, coba kondisi ini"
2
Python memeriksa kondisi dari atas ke bawah dan berhenti di kondisi pertama yang terpenuhi
3
Kamu bisa menambah elif sebanyak yang dibutuhkan โ€” tidak ada batasnya
4
Fungsi .lower() mengubah huruf kapital menjadi kecil โ€” agar "KARAT" dan "karat" dianggap sama
5
else di akhir adalah jaring pengaman โ€” menangkap semua input yang tidak cocok dengan kondisi di atasnya

Level 3 โ€” Kondisi Gabungan & Bersarang

๐Ÿ”ด SULIT Menggunakan and / or / nested if

Membuat keputusan dari dua syarat sekaligus โ€” seperti sistem diagnosa otomatis di bengkel resmi yang mempertimbangkan jenis kerusakan, luas area, sekaligus usia kendaraan.

karat AND luas > 200? โ†’ KRITIS ยท penyok OR gores? โ†’ cek luas (nested) โ†’ Ringan / Sedang / Berat
# SISTEM DIAGNOSA BENGKEL BODI OTOMATIS
print("=== SISTEM DIAGNOSA BENGKEL BODI ===")
luas = float(input("Luas area rusak (cmยฒ): "))
jenis = input("Jenis kerusakan (penyok/gores/karat): ").lower()
usia = int(input("Usia kendaraan (tahun): "))

# Kondisi gabungan dengan AND
if jenis == "karat" and luas > 200:
    print("\nStatus: KRITIS โ€” Karat luas, panel wajib diganti")

# elif dengan OR
elif jenis == "penyok" or jenis == "gores":
     # if bersarang (nested) di dalam elif
     if luas <= 50:
        print("\nStatus: RINGAN โ€” Perbaikan mandiri cukup")
     elif luas <= 150:
        print("\nStatus: SEDANG โ€” Butuh teknisi, 1 hari kerja")
     else:
        print("\nStatus: BERAT โ€” Butuh teknisi senior & 2+ hari")
else:
    print("\nInput tidak valid. Periksa ulang data kendaraan.")

# Kondisi independen โ€” selalu dicek, tidak peduli hasil di atas
if usia > 10:
    print("โš  Peringatan: Kendaraan tua โ€” cek kondisi rangka juga!")
Contoh Output:
# Input: luas=250, jenis=karat, usia=12
Status: KRITIS โ€” Karat luas, panel wajib diganti
โš  Peringatan: Kendaraan tua โ€” cek kondisi rangka juga!

# Input: luas=80, jenis=penyok, usia=5
Status: SEDANG โ€” Butuh teknisi, 1 hari kerja
Cara Kerja Kode Ini:
1
and โ€” kedua kondisi harus benar sekaligus. Contoh: karat dan luas > 200 โ†’ baru dianggap kritis
2
or โ€” cukup salah satu kondisi yang benar. Contoh: penyok atau gores โ†’ keduanya masuk blok yang sama
3
Nested if (if bersarang) โ€” sebuah if di dalam elif. Indentasi bertambah satu level lagi untuk setiap lapisan baru
4
if usia > 10 di baris terakhir berdiri sendiri โ€” Python selalu memeriksanya, tidak peduli hasil diagnosa sebelumnya

Kamus Operator IF

Simbol / Kata Artinya Contoh di Bengkel TBKR Hasil
== Sama dengan (perbandingan) jenis == "karat" True jika benar-benar karat
!= Tidak sama dengan jenis != "penyok" True jika bukan penyok
> / < Lebih besar / lebih kecil luas > 100 True jika luas di atas 100
>= / <= Lebih besar/kecil atau sama kedalaman <= 3 True jika 3 atau kurang
and Kedua kondisi harus benar jenis == "karat" and luas > 200 True hanya jika keduanya benar
or Cukup satu kondisi benar jenis == "penyok" or jenis == "gores" True jika salah satu benar
not Membalik kondisi not jenis == "karat" True jika BUKAN karat

Latihan Mandiri

๐ŸŽฏ Latihan 1 (Mudah): Cek Ketebalan Cat

Standar ketebalan cat bodi yang baik adalah 0.2 โ€“ 0.5 mm. Buat program untuk mengecek apakah hasil pengecatan memenuhi standar.

# Template โ€” lengkapi bagian yang bertanda ______
ketebalan = float(input("Ketebalan cat hasil pengecatan (mm): "))

if ketebalan >= 0.2 and ketebalan <= 0.5:
    status = ______ # isi teks statusnya
else:
    status = ______ # isi teks statusnya

print(f"Kualitas pengecatan: {status}")
Petunjuk: Isi ______ dengan string seperti "Memenuhi Standar โœ“" atau "Tidak Memenuhi Standar โœ—".
๐ŸŽฏ Latihan 2 (Sedang): Rekomendasi Alat Bengkel

Tambahkan satu elif baru pada program berikut untuk jenis kerusakan "retak" โ€” tentukan sendiri alat dan estimasi waktunya.

jenis = input("Jenis kerusakan (penyok/gores/karat/retak): ").lower()

if jenis == "penyok":
    print("Alat: Dent puller | Estimasi: 1โ€“2 jam")
elif jenis == "gores":
    print("Alat: Amplas, spray gun | Estimasi: 3โ€“4 jam")
elif jenis == "karat":
    print("Alat: Las MIG, gerinda | Estimasi: 1โ€“2 hari")
elif jenis == "retak":
    print(______) # isi sendiri!
else:
    print("Jenis tidak dikenali.")
๐ŸŽฏ Latihan 3 (Sulit): Sistem Total Loss

Modifikasi program Level 3. Tambahkan kondisi baru: jika luas > 300 dan usia > 15, tampilkan pesan:

"Pertimbangkan total loss โ€” biaya perbaikan kemungkinan melebihi nilai kendaraan."
# Tambahkan blok if baru setelah program Level 3 selesai dijalankan
if ______ and ______:
    print(______)
Tantangan Ekstra: Tambahkan juga perhitungan estimasi total biaya menggunakan variabel luas ร— 1500 dan tampilkan hasilnya dengan format Rp{biaya:,.0f}

Tantangan Kreatif (Bonus)

๐Ÿ†

Proyek Mini: Sistem Diagnosa Lengkap

Gabungkan semua Level (1, 2, dan 3) menjadi satu program diagnosa bodi kendaraan yang lengkap โ€” mulai dari input data, diagnosa, rekomendasi alat, hingga estimasi total biaya.

========================================
SISTEM DIAGNOSA BODI KENDARAAN SMK
========================================
Jenis Kerusakan : penyok
Luas Area : 80.0 cmยฒ
Usia Kendaraan : 8 tahun
----------------------------------------
Status : SEDANG
Alat Dibutuhkan : Dent puller & palu bodi
Estimasi Biaya : Rp 120,000
Estimasi Waktu : 1โ€“2 jam
========================================

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 Logika IF 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 fungsi if, elif, dan else dengan bahasamu sendiri
  • Satu contoh penggunaan logika if 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 kerusakan bodi kendaraan
  • Pastikan postingan sudah dipublikasikan (bukan draft)
NILAI PRAKTEK AKAN DINILAI BERDASARKAN KELENGKAPAN DOKUMENTASI DI BLOGGER

Tips Belajar

Analogi Konkret

Bayangkan if sebagai keputusan teknisi di bengkel โ€” "kalau kondisi A, pakai cara ini; kalau kondisi B, pakai cara itu."

Error = Pelajaran

Sengaja buat kesalahan โ€” misal tulis if jenis = "karat" (satu =) lalu amati error-nya. Ini cara terbaik memahami perbedaan = dan ==.

Indentasi adalah Segalanya

Python membaca indentasi (Tab) untuk tahu kode mana yang "milik" si if. Kalau salah indentasi, program akan error atau hasilnya salah.

Pair Programming

Berpasangan dengan teman: satu siswa mengetik kode, satu lagi mengarahkan logikanya. Bergantian setiap 10 menit.

Cheat Sheet โ€” Logika IF

if / else
if kondisi:
    aksi_a
else:
    aksi_b
// Dua pilihan
if / elif / else
if A:
    aksi_a
elif B:
    aksi_b
else:
    aksi_c
// Banyak pilihan
Nested if
if A:
    if B:
        aksi
    else:
        aksi_2
// If di dalam if
and / or
if A and B:
    # keduanya benar

if A or B:
    # salah satu benar
// Gabungan kondisi
Satu baris (ternary)
x = "A" if kondisi else "B"
// If singkat satu baris โ€” berguna untuk mengisi variabel