Minggu lalu kita belajar variabel dan tipe data. Kita sudah tahu cara menyimpan angka, teks, hingga boolean. Tapi program yang cuma nyimpan data tanpa bisa bereaksi? Itu bukan program — itu gudang.
Hari ini kita ajarin kode buat berpikir. Atau setidaknya, berpura-pura berpikir.
💡 Catatan dari meja guru:
Siswa sering tanya, “Pak, komputer bisa pikir nggak?”
Jawabanku: “Nggak. Tapi dia bisa ngecek kondisi. Dan kalau kondisi terpenuhi, dia lakukan A. Kalau nggak, dia lakukan B. Itu sudah cukup mirip mikir, kan?”
1. Anatomi if — Percabangan Paling Sederhana
Bayangin kamu ngelamar kerja. Syaratnya: umur minimal 18 tahun.
Kalau kamu 20 → lolos.
Kalau kamu 16 → pulang dulu, belajar lagi.
Di Python, cerita itu ditulis begini:
# percabangan_sederhana.py
umur = 20
if umur >= 18:
print("Selamat! Anda memenuhi syarat umur.")
print("Silakan lanjut ke tahap wawancara.")Penjelasan:
if umur >= 18:→ cek kondisi. BernilaiTrueatauFalse.- Baris di bawahnya harus di-indent (tekan
Tabatau 4 spasi). Itu yang disebut blok kode. - Kalau kondisi
False? Program lompat ke baris setelah blokif. Diam saja. Tidak ada keluh kesah.
⚠️ Peringatan klasik di kelas:
Lupa indent?IndentationError.
Campur tab dan spasi?TabError.
Python itu kaya guru disiplin — pelit soal rapih.
2. if-else — Dua Jalan, Pilih Satu
Kalo cuma if, jalan cuma satu. Kalo nggak terpenuhi? Program nge-blank.
Kita butuh else — jalan cadangan.
# if_else_kelulusan.py
nilai = 72
if nilai >= 75:
print("🎉 LULUS")
print("Selamat, Anda naik kelas!")
else:
print("❌ TIDAK LULUS")
print("Tetap semangat, coba lagi semester depan.")Penjelasan:
if→ jalan utama (kondisiTrue).else→ jalan tolak (kondisiFalse).- Hanya salah satu yang jalan. Tidak akan keduanya sekaligus.
💡 Tips dari pengalaman:
Siswa suka nuliselse:trus lupa indent baris berikutnya.
Atau nuliselse if(spasi) — salah. Di Python penulisannyaelif(gabungan).
Kalau kamu ever coding di Java/C, di sini nggak pakai kurung kurawal{}. Cuma titik dua:dan indent.
3. elif — Bukan Cuma Hitam Putih
Dunia ini nggak cuma “lulus/gagal”. Ada “perbaikan”, “kondisional”, “cumlaude”.elif (singkatan else if) buat nambah jalur di tengah-tengah.
# elif_nilai_huruf.py
nilai = 82
if nilai >= 90:
grade = "A"
predikat = "Cumlaude"
elif nilai >= 80:
grade = "B"
predikat = "Sangat Baik"
elif nilai >= 70:
grade = "C"
predikat = "Baik"
elif nilai >= 60:
grade = "D"
predikat = "Cukup"
else:
grade = "E"
predikat = "Kurang"
print(f"Nilai: {nilai}")
print(f"Grade: {grade} ({predikat})")Penjelasan:
- Python cek dari atas ke bawah.
- Ketemu yang
True? Jalanin itu saja, terus keluar. Sisaelif/elsediabaikan. - Urutan sangat penting. Kalau kamu taruh
elif nilai >= 60di atas>= 90, siAtidak akan pernah dapat giliran.
🧠 Metafora sebentar:
if-elif-elseitu kaya pintu-pintu berurutan. Kamu buka dari depan. Ke mana kamu cocok, di situ kamu masuk. Pintu lain? Tertutup.
Hidup juga gitu. Pilih satu jalan. Yang lain biarkan.
4. Nested If — Percabangan di Dalam Percabangan
Ada kalau logika butuh kedalaman.
Contoh: Hanya siswajurusan RPL yang nilai >= 75 boleh ikut lomba coding.
# nested_if_lomba.py
jurusan = "RPL"
nilai = 80
if jurusan == "RPL":
print("✅ Jurusan cocok.")
if nilai >= 75:
print("🏆 Selamat! Anda berhak mengikuti lomba coding.")
else:
print("📚 Nilai belum memenuhi. Tingkatkan dulu ya.")
else:
print("❌ Lomba ini khusus siswa RPL.")Penjelasan:
ifdi dalamif→ nested if.- Indent dua level (8 spasi / 2 tab).
- Bisa dibaca: “Kalau RPL, baru cek nilai. Kalau bukan RPL, langsung tolak.”
⚠️ Jangan terlalu dalam.
Nested 3 level ke atas bikin kode jadi “spaghetti” — sulit dibaca, sulit diperbaiki.
Kalau sudah terlalu dalam, pecah jadi fungsi (akan kita bahas di bagian depan).
Kode yang indah adalah kode yang bisa dibaca oleh manusia — bukan hanya mesin.
5. Studi Kasus Lengkap: Sistem Penentuan Kelulusan SMK
Gabungin semuanya. Buat program yang:
- Minta input nama, jurusan, nilai teori, nilai praktik
- Hitung rata-rata
- Tentukan status: Lulus Kompetensi / Remedial / Tidak Lulus
- Tampilkan dengan rapi
# sistem_kelulusan_smk.py
print("=" * 40)
print(" SISTEM PENENTUAN KELULUSAN SMK RPL ")
print("=" * 40)
# Input
nama = input("Nama siswa: ")
jurusan = input("Jurusan (RPL/TKJ/MM/BDP): ").upper()
nilai_teori = float(input("Nilai Teori: "))
nilai_praktik = float(input("Nilai Praktik: "))
# Proses
rata2 = (nilai_teori + nilai_praktik) / 2
# Logika kelulusan
if jurusan == "RPL":
if rata2 >= 85:
status = "LULUS KOMPETENSI (Cumlaude)"
saran = "Langsung apply magang ke startup impianmu."
elif rata2 >= 75:
status = "LULUS KOMPETENSI"
saran = "Siap kerja entry-level. Terus belajar ya."
elif rata2 >= 60:
status = "REMEDIAL"
saran = "Bisa daftar remedial. Jangan menyerah."
else:
status = "TIDAK LULUS"
saran = "Evaluasi ulang. Guru BK siap bantu."
else:
status = "JURUSAN TIDAK DIKENALI"
saran = "Hubungi wali kelas untuk validasi data."
# Output
print("\n" + "=" * 40)
print(f"Nama : {nama}")
print(f"Jurusan : {jurusan}")
print(f"Rata-rata : {rata2:.2f}")
print(f"Status : {status}")
print(f"Saran : {saran}")
print("=" * 40)Penjelasan Alur:
input()→ ambil data dari user (selalu string, jadifloat()buat angka)..upper()→ biar user ngetikrplatauRPLsama aja.- Hitung
rata2pake rumus biasa. if jurusan == "RPL":→ filter dulu. Kalau bukan RPL, lompat keelsepaling bawah.- Di dalam RPL, cek
rata2bertingkat (dari tertinggi ke terendah). f"{rata2:.2f}"→ format 2 angka di belakang koma. Rapikan output.
💡 Tips production-ready:
Di dunia nyata, validasi input wajib.
Contoh: apa kalo user ngetik “lima puluh” bukan “50”? → Program crash.
Kita bahastry-exceptnanti. Untuk sekarang, asumsikan user baik hati.
6. Ekspresi Ternary — If-Else dalam Satu Baris
Kalau cuma butuh nilai cepat (bukan blok aksi panjang), Python punya gaya pendek:
# ternary_operator.py
umur = 17
status = "Dewasa" if umur >= 18 else "Anak-anak"
print(status) # Anak-anakBaca: nilai_jika_true if kondisi else nilai_jika_false
Cocok buat assign variabel singkat. Jangan pakai buat logic kompleks — bikin orang pusing.
7. Kesalahan Umum Siswa (Checklist Mental)
| Kesalahan | Contoh Salah | Contoh Benar |
|---|---|---|
Lupa : | if umur > 17 | if umur > 17: |
else if tanpa spasi | else if nilai > 80: | elif nilai > 80: |
| Indent campak | if x: print(x) | if x:\n print(x) |
Typo = vs == | if nilai = 100: | if nilai == 100: |
| Logika terbalik | if nilai < 60: lulus | if nilai >= 60: lulus |
🧑🏫 Cerita dari kelas:
Ada siswa nulisif nilai = 100:— dia assign, bukan compare. Program jalan, tapinilaijadi 100. Semua orang jadi lulus.
Dia bilang, “Pak, program saya jalan, tapi kenapa semuanya lulus?”
Itu daya=vs==. Satu karakter, beda nasib.
Penutup
Kamu baru saja mengajar program buat memilih.if — pintu pertama.elif — pintu kedua, ketiga, keberapa pun.else — pintu terakhir, yang selalu terbuka kalau yang lain tertutup.
Programming itu soal memetakan kemungkinan. Hidup juga.
Kadang kita cuma butuh elif yang tepat di tengah hujan keputusan.
Kode yang bijak tidak selalu yang paling pintar.
Tapi yang tahu kapan harusif, kapanelif, dan kapan cukupelselalu melangkah.
Bagian selanjutnya: Perulangan (Loop) — Mengajar Komputer Menghitung Tanpa Lelah.
Kita akan bikin program yang bisa ngulang tugas ribuan kali tanpa ngeluh.
Siap? while True: belajar() — tapi jangan lupa break nya ya.
Lanjut ke Bagian 5 →
Ditulis sambil ngopi hitam, sesekali ngecek PR siswa yang lupa di-push* ke GitHub. Kalau tutorial ini bantu, share ke temen sebangkku. Kita belajar bareng, jadi enak. ☕