Langsung ke konten

Percabangan if, elif, dan else di Python

Percabangan membuat program menjalankan kode yang berbeda sesuai kondisi. Artikel ini membahas if, elif, else, nested if, dan ternary expression di Python.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas operator assignment. Sekarang kita pakai kondisi yang sudah bisa dihitung untuk mengambil keputusan.

Program yang berguna tidak selalu berjalan lurus. Kadang ia harus memilih: kalau saldo cukup, lanjutkan transaksi; kalau tidak, tampilkan pesan. Di Python, pilihan seperti ini dibuat dengan percabangan.

Apa itu Percabangan?

Percabangan adalah cara membuat program menjalankan bagian kode tertentu hanya jika sebuah kondisi terpenuhi. Kondisinya berupa ekspresi yang bernilai True atau False, sama seperti hasil perbandingan dan logika yang sudah kamu pelajari.

Struktur paling dasarnya adalah if.

Struktur if

if menjalankan blok kode kalau kondisinya bernilai True:

umur = 20

if umur >= 17:
    print("Kamu sudah boleh membuat KTP")

Ada tiga hal yang perlu diperhatikan:

  • Baris if diakhiri tanda titik dua (:).
  • Blok di dalamnya ditulis menjorok ke dalam (indentasi), umumnya 4 spasi.
  • Blok hanya dijalankan kalau kondisinya True.

Kalau kondisinya False, blok itu dilewati dan program lanjut ke baris berikutnya:

umur = 15

if umur >= 17:
    print("Kamu sudah boleh membuat KTP")

print("Program selesai")

Output:

Program selesai

Baris print("Kamu sudah boleh membuat KTP") tidak dijalankan karena kondisinya salah.

Indentasi Bukan Sekadar Gaya

Di banyak bahasa lain, indentasi hanya soal kerapian. Di Python, indentasi adalah bagian dari sintaks. Salah indentasi membuat program error atau berjalan tidak sesuai keinginan.

skor = 90

if skor >= 75:
    print("Lulus")
    print("Selamat!")     # masih di dalam blok if

print("Selesai")          # di luar blok if

Dua baris pertama menjorok, jadi keduanya bagian dari blok if. Baris terakhir tidak menjorok, jadi selalu dijalankan.

Mencampur tab dan spasi bisa memicu TabError. Biasakan memakai 4 spasi dan biarkan editor seperti VS Code mengurusnya otomatis.

else

else menjalankan blok alternatif saat kondisi if bernilai False:

umur = 15

if umur >= 17:
    print("Boleh membuat KTP")
else:
    print("Belum cukup umur")

Output: Belum cukup umur.

Hanya ada satu else dalam satu percabangan, dan ia selalu diletakkan paling akhir.

elif

Kalau kemungkinannya lebih dari dua, gunakan elif (singkatan dari else if). Python memeriksa kondisi satu per satu dari atas ke bawah, lalu menjalankan blok pertama yang bernilai True:

nilai = 85

if nilai >= 90:
    print("Nilai A")
elif nilai >= 80:
    print("Nilai B")
elif nilai >= 70:
    print("Nilai C")
else:
    print("Nilai D")

Output: Nilai B.

Begitu satu kondisi terpenuhi, sisa kondisi di bawahnya tidak diperiksa lagi. Karena itu urutan kondisi penting. Kalau nilai >= 70 diletakkan paling atas, semua nilai di atas 70 akan masuk ke sana.

elif bisa dipakai berapa kali pun, tapi hanya boleh ada satu else di bagian akhir. else sendiri bersifat opsional.

Nested if

Percabangan bisa diletakkan di dalam percabangan lain. Namanya nested if:

umur = 20
punya_ktp = False

if umur >= 17:
    if punya_ktp:
        print("Boleh masuk")
    else:
        print("Buat KTP dulu ya")
else:
    print("Belum cukup umur")

Nested if berguna, tapi jangan terlalu dalam. Kalau sudah tiga tingkat atau lebih, biasanya kondisinya bisa digabung memakai operator logika:

umur = 20
punya_ktp = True

if umur >= 17 and punya_ktp:
    print("Boleh masuk")

Versi ini lebih mudah dibaca dan lebih sedikit baris.

Ternary Expression

Kalau percabangannya hanya memilih satu dari dua nilai, Python punya bentuk singkat bernama ternary expression:

umur = 20
status = "Dewasa" if umur >= 17 else "Anak-anak"
print(status)   # Dewasa

Bentuk umumnya:

nilai_jika_benar if kondisi else nilai_jika_salah

Bandingkan dengan versi biasa:

umur = 20

if umur >= 17:
    status = "Dewasa"
else:
    status = "Anak-anak"

Ternary cocok untuk pilihan sederhana dalam satu baris. Kalau logikanya mulai rumit, kembali ke if biasa supaya tetap terbaca.

Contoh Program: Kategori Indeks Massa Tubuh

Mari gabungkan semuanya untuk mengelompokkan indeks massa tubuh (IMT):

# kategori_imt.py

berat = float(input("Berat (kg): "))
tinggi = float(input("Tinggi (m): "))

imt = berat / (tinggi ** 2)

if imt < 18.5:
    kategori = "Kurus"
elif imt < 25:
    kategori = "Normal"
elif imt < 30:
    kategori = "Gemuk"
else:
    kategori = "Obesitas"

print(f"IMT kamu {imt:.1f}, kategori {kategori}")

Kalau pengguna mengetik berat 60 dan tinggi 1.7:

Berat (kg): 60
Tinggi (m): 1.7
IMT kamu 20.8, kategori Normal

Perhatikan {imt:.1f} yang membulatkan hasil menjadi satu angka di belakang koma. Format seperti ini akan dibahas di artikel tentang f-string nanti.

Kesalahan Umum Pemula

  • Lupa titik dua :if x > 5 tanpa : menghasilkan SyntaxError.
  • Salah indentasi — blok if harus menjorok konsisten; campur tab dan spasi memicu TabError.
  • Tertukar = dan == — di dalam kondisi gunakan ==, bukan =.
  • Urutan elif tidak tepat — kondisi yang lebih khusus harus ditulis lebih dulu.
  • Menaruh else di tengahelse selalu paling akhir, setelah semua elif.

Ringkasan

  • if menjalankan blok kode kalau kondisinya True
  • else menangani kasus saat kondisi if bernilai False
  • elif dipakai untuk lebih dari dua kemungkinan, diperiksa dari atas ke bawah
  • Indentasi adalah bagian dari sintaks Python, bukan sekadar gaya
  • Nested if bisa dipakai, tapi sering lebih rapi diganti operator logika
  • Ternary expression mempersingkat pilihan sederhana jadi satu baris

Langkah Selanjutnya

Sekarang programmu sudah bisa memilih. Tapi keputusan kadang perlu diulang berkali-kali, misalnya selama saldo masih ada atau selama pengguna belum mengetik perintah keluar.

Artikel selanjutnya membahas Perulangan while di Python, cara menjalankan kode berulang selama kondisi masih terpenuhi.