python 12 July 2026

Bagian 4: Kode Pun Punya Perasaan — Belajar If-Else Agar Program Bisa “Memutuskan”

Bagian 4: Kode Pun Punya Perasaan — Belajar If-Else Agar Program Bisa “Memutuskan”

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. Bernilai True atau False.
  • Baris di bawahnya harus di-indent (tekan Tab atau 4 spasi). Itu yang disebut blok kode.
  • Kalau kondisi False? Program lompat ke baris setelah blok if. 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 (kondisi True).
  • else → jalan tolak (kondisi False).
  • Hanya salah satu yang jalan. Tidak akan keduanya sekaligus.

💡 Tips dari pengalaman:
Siswa suka nulis else: trus lupa indent baris berikutnya.
Atau nulis else if (spasi) — salah. Di Python penulisannya elif (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. Sisa elif/else diabaikan.
  • Urutan sangat penting. Kalau kamu taruh elif nilai >= 60 di atas >= 90, si A tidak akan pernah dapat giliran.

🧠 Metafora sebentar:
if-elif-else itu 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:

  • if di dalam ifnested 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:

  1. Minta input nama, jurusan, nilai teori, nilai praktik
  2. Hitung rata-rata
  3. Tentukan status: Lulus Kompetensi / Remedial / Tidak Lulus
  4. 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:

  1. input() → ambil data dari user (selalu string, jadi float() buat angka).
  2. .upper() → biar user ngetik rpl atau RPL sama aja.
  3. Hitung rata2 pake rumus biasa.
  4. if jurusan == "RPL":filter dulu. Kalau bukan RPL, lompat ke else paling bawah.
  5. Di dalam RPL, cek rata2 bertingkat (dari tertinggi ke terendah).
  6. 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 bahas try-except nanti. 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-anak

Baca: 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)

KesalahanContoh SalahContoh Benar
Lupa :if umur > 17if umur > 17:
else if tanpa spasielse if nilai > 80:elif nilai > 80:
Indent campakif x: print(x)if x:\n print(x)
Typo = vs ==if nilai = 100:if nilai == 100:
Logika terbalikif nilai < 60: lulusif nilai >= 60: lulus

🧑‍🏫 Cerita dari kelas:
Ada siswa nulis if nilai = 100: — dia assign, bukan compare. Program jalan, tapi nilai jadi 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 harus if, kapan elif, dan kapan cukup else lalu 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.