Program yang bisa milih jalan — True lewat sini, False belok sana. Mesin keputusan pertamamu.
if/elif/else — titik dua & indentasi yang benarnested if untuk kasus nyataif/elif/else lengkap: titik dua + blok menjorokand/or dari Sesi 06* cabang = satu jalan keputusan · nested = bersarang, ada di dalam · error senyap = jalan tanpa error tapi hasil salah.
Game bilang "kamu menang", ATM keluar uang, rapor jadi A — semuanya karena program memilih jalan.
if = petugas gerbang — cek syarat satu per satu berurutan, cabang pertama yang cocok itulah yang dipakai.
Sisanya tidak dilihat lagi — makanya urutan segalanya.
+ - * / // % **True/Falseand/or/not — merangkai pertanyaanMinggu lalu programmu menghasilkan True dan False — tapi belum memakainya. Hari ini jawaban itu akhirnya dipakai: True jalur A, False jalur B.
17 % 2 == 0?= dan ==?Peta perjalanan: kamu di barisan ke-7 dari 17 — sudah 41% perjalanan!
if — gerbang pertamamuhujan = True
if hujan:
print("Bawa payung!")
print("Langkah berikutnya jalan terus.")
Kenapa baris terakhir selalu tercetak? Karena dia tidak menjorok — di luar keputusan, kembali jalan terus.
Indentasi di Python bukan kerapian — itu sintaks. Dibongkar habis di slide 08.
if/else — True jalur A, False jalur Bumur = int(input("Umur: "))
if umur >= 17:
print("Sudah boleh membuat KTP")
else:
print("Belum cukup umur")
umur >= 17 adalah pertanyaan yang hasilnya boolean — minggu lalu cuma dicetak, hari ini dipakai untuk memilih jalan.
if = syaratnya cocok → blok atas jalan · else = "kalau semua gagal, lewat sini" — tanpa syarat, tanpa kondisi.
Tapi hidup sering tiga pilihan, empat, lima — predikat rapor aja ada 5. Butuh senjata berikutnya: elif.
elif — banyak pintu, urutan menentukanskor = 85
if skor >= 90:
grade = "A (Sangat Baik)"
elif skor >= 75:
grade = "B (Baik)"
elif skor >= 60:
grade = "C (Cukup)"
elif skor >= 40:
grade = "D (Kurang)"
else:
grade = "E (Tidak Lulus)"
print("Skor:", skor, "- Predikat:", grade)
85 >= 90? False — lewat85 >= 75? True — grade = "B (Baik)"Uji 4 kasus: 95 → A · 85 → B · 60 → C (tepat di batas!) · 30 → E.
Perhatikan urutan syaratnya: tinggi ke rendah — sempit ke longgar. Kenapa harus begitu? Slide berikutnya jawab dengan drama.
skor = 95
if skor >= 60: # ini kena duluan!
grade = "C (Cukup)"
elif skor >= 90:
grade = "A (Sangat Baik)"
print(grade)
Nilai 95 dapat C. Tidak ada error apa pun — programnya "sukses".
95 >= 60 itu True — cabang pertama langsung menang, sisanya tak dilihat. Ini error senyap: program jalan, keputusannya salah.
Aturan emas: tulis syarat dari paling sempit (tinggi) ke paling longgar (rendah), else jadi bantalan terakhir. Dan uji beberapa kasus, bukan satu.
hujan = True
if hujan:
print("Bawa payung!") # di dalam if
print("Keluar rumah.") # DI LUAR if
Indentasi itu paragraf — satu paragraf satu ide, dan Python membacanya secara harfiah. Baris yang balik ke kiri berarti "keluar dari keputusan".
if → IndentationErrorVS Code bisa bantu: View → Indent Guides — garis bantu biar blok kelihatan.
Versi liciknya menyusul di slide jebakan: baris yang salah menjorok tidak error — cuma diam-diam keluar dari keputusan.
skor (int), keluarkan predikat A/B/C/D/E pakai if/elif/else urutan tinggi → rendah95, 85, 60 (tepat di batas!), 30. Semuanya harus jawab benar95, saksikan error senyapnyaRumuskan dulu sebagai kalimat: "jika minimal 90 tulis A; tidak, tapi minimal 75 tulis B; ..." — lalu terjemahkan baris demi baris.
Waktu: 15 menit. Level 3 itu eksperimen resmi — error senyap harus kamu alami, bukan cuma diceritakan.
nilai_ujian = 82
kehadiran = 85
if nilai_ujian >= 75 and kehadiran >= 80:
print("Lulus Semester")
else:
print("Belum Lulus")
Pertanyaan digabung jadi satu — dua-duanya wajib benar (and dari Sesi 06).
if nilai_ujian >= 75:
print("Kamu Lulus!")
if nilai_ujian >= 90:
print("Predikat Pujian!")
else:
print("Pertahankan prestasimu.")
else:
print("Ikuti remedial.")
Baca indentasinya: if dalam milik blok if luar — dua tingkat menjorok, dua tingkat keputusan.
Hasilnya mirip, kepribadiannya beda: gabungan = ringkas, satu pertanyaan besar · nested = bisa kasih pesan berbeda untuk tiap tingkat. Pilih sesuai kebutuhan pesanmu.
>= 10 diskon 50% · >= 5 diskon 20% · selain itu tanpa diskon. Hitung total, potongan, total_bayar, kembalian12 buah (diskon 50%), 7 buah (20%), 3 buah (tanpa diskon)Waktu: 15 menit. Ini studi kasus kumulatif: input (Sesi 05) + operator (06) + keputusan (07) — program kecil yang sudah lengkap.
Aturannya: habis dibagi 4, kecuali habis dibagi 100 — kecuali juga habis dibagi 400. Satu kondisi gabungan: tahun % 4 == 0 and (tahun % 100 != 0 or tahun % 400 == 0)
Lulus = nilai >= 75 and kehadiran >= 80. Tapi tiap kegagalan dapat pesan berbeda — nilai kurang, kehadiran kurang, atau dua-duanya. Itu kerja elif bertingkat atau nested if.
tahun = 2024
kabisat = (tahun % 4 == 0
and (tahun % 100 != 0
or tahun % 400 == 0))
if kabisat:
print(tahun, "kabisat")
else:
print(tahun, "bukan kabisat")
Kurung di dalam penting — or dievaluasi setelah and. Tanpa kurung, logikanya berubah total. Ragu = kurung.
nilai, hadir = 60, 90
if nilai >= 75 and hadir >= 80:
print("LULUS, kerja bagus!")
elif nilai < 75 and hadir < 80:
print("Dua-duanya belum cukup")
elif nilai < 75:
print("Nilaimu belum cukup")
else:
print("Kehadiranmu kurang")
Urutannya tetap sempit → longgar: kasus paling spesifik (dua-duanya gagal) dicek sebelum kasus tunggal.
Metode yang sama dipakai semua keputusan: rumuskan sebagai kalimat dulu → urutkan sempit ke longgar → uji beberapa kasus. Kamu bukan menghafal cabang — kamu memiliki mesin keputusan.
if skor >= 90 # ← titik dua hilang
print("A")
Kalimat kondisi Python selalu ditutup :. Scan semua baris if milikmu sendiri sebelum panggil guru.
if hujan:
print("A") # 4 spasi
print("B") # 6 spasi — error!
Satu blok = satu kedalaman. 4 spasi konsisten, jangan campur tab & spasi — kelihatan sama, dibaca beda.
if skor >= 60: # kena duluan!
grade = "C"
elif skor >= 90: # tak pernah dicapai
grade = "A"
Error senyap — nilai 95 dapat C, tanpa pesan error apa pun. Urutan wajib sempit → longgar.
if nilai >= 75:
print("Masuk blok")
print("LULUS") # DI LUAR if — selalu jalan!
Jalan tanpa error, tapi LULUS tercetak untuk semua nilai. Deteksinya satu: uji dengan 2 input berbeda.
Bonus: semua nilai dapat E atau semua A? Kemungkinan kondisinya skor = 90 (mengisi) bukan skor >= 90 (bertanya). Cetak print(skor >= 90) untuk melihat jawaban boolean-nya langsung.
if/elif/else — petugas gerbang cek berurutan; cabang pertama yang True menangelse bantalan terakhir; terbalik = error senyapand gabung dua syarat · nested if untuk pesan bertingkat — pilih sesuai kebutuhanTidak ada materi baru — empat bekal 4 minggu terakhir digabung jadi satu program pengambil keputusan utuh.
Variabel & input + operator + percabangan — dirancang flowchart dulu, baru coding, diuji beberapa skenario, lalu demo. Ini proyek pertamamu.
75 masuk predikat apa? jawab dulu, baru Run