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
ifdiakhiri 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 > 5tanpa:menghasilkanSyntaxError. - Salah indentasi — blok
ifharus menjorok konsisten; campur tab dan spasi memicuTabError. - Tertukar
=dan==— di dalam kondisi gunakan==, bukan=. - Urutan
eliftidak tepat — kondisi yang lebih khusus harus ditulis lebih dulu. - Menaruh
elsedi tengah —elseselalu paling akhir, setelah semuaelif.
Ringkasan
ifmenjalankan blok kode kalau kondisinyaTrueelsemenangani kasus saat kondisiifbernilaiFalseelifdipakai 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.
