Belajar Python Percabangan If Elif Else

setelah paham tipe data dan variabel di Python, materi berikutnya yang bakal kalian pakai di hampir semua program adalah percabangan. simpelnya, percabangan itu cara program ngambil keputusan berdasarkan kondisi, persis logika “jika-maka” yang kita pakai sehari-hari. kalau lagi hujan, bawa payung, kalau tidak, ya berangkat aja. kalau penasaran bedanya sama bahasa lain, ada juga perbedaan if else dan switch case.
yang paling sering bikin pemula nyangkut di materi ini bukan logikanya, tapi indentasi. di python, spasi itu bagian dari sintaks, bukan sekadar kerapian. saya sendiri pernah ngabiskan waktu cukup lama nyari error yang ternyata cuma gara-gara satu tab yang tidak konsisten. semua kendala kayak gitu kita bahas tuntas di artikel ini.
0. Untuk Orang Awam: Percabangan Itu Seperti Lampu Lalu Lintas
jika kalian belum pernah ngoding sama sekali, bayangin percabangan kayak lampu lalu lintas di perempatan. kalau lampu hijau, kalian jalan. kalau merah, kalian berhenti. kalau kuning, kalian pelan-pelan siap berhenti. program juga begitu, dia lihat kondisi, lalu milih jalan.
contoh paling dekat: cek umur buat bikin KTP. kalau umur kalian 17 atau lebih, boleh bikin KTP. kalau belum, belum boleh. di python, logika itu ditulis persis seperti ngomong sehari-hari, cuma ganti kata jika jadi if dan maka jadi titik dua plus baris menjorok ke dalam. jangan khawatir kalau belum hafal kata kunci, yang penting paham dulu alurnya, sintaksnya bakal kebawa sambil ngetik.
menurut saya, cara paling enak buat orang awam itu coba tulis di kertas dulu: “jika hujan, bawa payung, kalau tidak, berangkat aja”. begitu sudah kebayang alurnya, baru pindah ke kode, dan kalian bakal kaget ternyata mirip banget.
1. Struktur Dasar If
struktur paling sederhananya begini:
if kondisi:
# blok kode yang dijalankan jika kondisi True
penting di python: blok kode ditentukan oleh indentasi (umumnya 4 spasi), bukan kurung kurawal kayak di PHP atau JavaScript.
konsistensi indentasi lebih penting daripada jumlah spasinya. jangan campur tab dan spasi dalam satu file. kebanyakan code editor, termasuk VS Code, bisa diatur buat konversi otomatis, jadi kalau kalian baru mulai, pakai editor yang mendukung ini dan tidak usah pusing mikirin hal teknisnya.
nilai = 80
if nilai >= 75:
print("Selamat, kalian lulus!")
print("Nilai kalian baik.")
print("Program selesai.") # ← ini di luar if, selalu dieksekusi
perhatikan dua print pertama menjorok ke dalam, artinya dia milik if. print terakhir menempel ke kiri, artinya di luar if, jadi dia selalu jalan apa pun hasil kondisinya.
2. If Else
tambahin else buat nangani kondisi ketika if tidak terpenuhi:
umur = 16
if umur >= 17:
print("kalian sudah dewasa.")
else:
print("kalian masih di bawah umur.")
logikanya gini: kalau umur >= 17 bernilai True, blok if jalan. kalau False, blok else yang jalan. dua-duanya tidak mungkin jalan bersamaan, selalu salah satu.
3. If Elif Else
buat kasus dengan lebih dari dua cabang, pakai elif (singkatan dari “else if”):
nilai = 85
if nilai >= 90:
print("Grade A")
elif nilai >= 80:
print("Grade B")
elif nilai >= 70:
print("Grade C")
elif nilai >= 60:
print("Grade D")
else:
print("Grade E")
python ngecek kondisi dari atas ke bawah. begitu satu kondisi terpenuhi, sisanya langsung dilewati. makanya urutan penulisan penting banget, kalau nilai >= 60 ditulis paling atas, hampir semua nilai bakal kebagian Grade D dan tidak pernah sampai ke A.
4. Operator Perbandingan
operator yang dipakai di dalam kondisi:
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
== | Sama dengan | 5 == 5 | True |
!= | Tidak sama | 5 != 3 | True |
> | Lebih besar | 10 > 5 | True |
< | Lebih kecil | 10 < 5 | False |
>= | Lebih besar sama dengan | 5 >= 5 | True |
<= | Lebih kecil sama dengan | 5 <= 4 | False |
x = 10
y = 20
if x == y:
print("x sama dengan y")
elif x < y:
print("x lebih kecil dari y")
else:
print("x lebih besar dari y")
hati-hati sama yang paling sering salah: = itu buat ngasih nilai, == itu buat membandingkan. nulis if x = 5 bakal langsung error SyntaxError, dan ini error yang hampir semua pemula pernah ketemu, termasuk saya.
5. Operator Logika
buat menggabungkan beberapa kondisi jadi satu:
| Operator | Arti | Contoh |
|---|---|---|
and | Kedua kondisi harus True | umur >= 17 and umur <= 60 |
or | Salah satu kondisi True | role == "admin" or role == "superadmin" |
not | Membalik nilai boolean | not is_active |
umur = 25
punya_ktp = True
if umur >= 17 and punya_ktp:
print("Bisa membuat SIM.")
else:
print("Belum bisa membuat SIM.")
role = "admin"
if role == "admin" or role == "superadmin":
print("Akses penuh.")
else:
print("Akses terbatas.")
cara baca and itu “dua-duanya harus bener”, or itu “salah satu bener sudah cukup”, dan not itu “kebalikannya”.
6. Nested If (If Bersarang)
kalian bisa naruh if di dalam if:
umur = 20
punya_ktp = True
if umur >= 17:
if punya_ktp:
print("Bisa membuat SIM.")
else:
print("Urus KTP dulu.")
else:
print("Belum cukup umur.")
tapi saran saya, hindari nested if terlalu dalam, makin dalem makin susah dibaca. kalau bisa, gabungin pakai operator logika. contoh di atas bisa disederhanakan jadi:
if umur >= 17 and punya_ktp:
print("Bisa membuat SIM.")
elif umur >= 17 and not punya_ktp:
print("Urus KTP dulu.")
else:
print("Belum cukup umur.")
hasilnya sama persis, tapi alurnya lurus dari atas ke bawah, tidak perlu bongkar pasang lapisan if di kepala.
7. Ternary Operator (One-Line If)
python punya cara nulis if else sederhana dalam satu baris:
# Bentuk umum
nilai_true if kondisi else nilai_false
# Contoh
umur = 20
status = "Dewasa" if umur >= 17 else "Anak-anak"
print(status) # Dewasa
ternary operator paling pas buat assignment bersyarat yang pendek. kalau kondisinya mulai panjang atau butuh lebih dari satu aksi, balik lagi ke if else biasa, kode yang kebaca lebih penting daripada yang pendek.
8. Match Case (Python 3.10+)
mulai python 3.10, ada struktur match case yang mirip switch case di bahasa lain:
hari = 3
match hari:
case 1:
print("Senin")
case 2:
print("Selasa")
case 3:
print("Rabu")
case 4:
print("Kamis")
case 5:
print("Jumat")
case _:
print("Akhir pekan")
karakter _ (underscore) berfungsi kayak default, buat nangani nilai yang tidak cocok. ini fitur favorit saya sejak python 3.10 rilis, buat logika menu atau kode status, match case jauh lebih rapi daripada rantai elif yang panjang.
match case juga dukung pattern matching yang lebih canggih:
def proses_perintah(perintah):
match perintah.split():
case ["keluar"]:
print("Keluar program...")
case ["sapa", nama]:
print(f"Halo {nama}!")
case ["hitung", a, b]:
print(int(a) + int(b))
case _:
print("Perintah tidak dikenal")
proses_perintah("sapa Andi") # Halo Andi!
proses_perintah("hitung 10 20") # 30
proses_perintah("keluar") # Keluar program...
di sini match tidak cuma nyamain nilai, tapi juga “membedah” strukturnya, "sapa Andi" dipecah jadi list ["sapa", "Andi"] lalu nyangkut ke pola kedua dengan nama = "Andi".
9. Studi Kasus: Kalkulator Nilai
biar semua nyambung, kita bikin program kalkulator nilai yang lengkap:
print("=== KALKULATOR NILAI ===\n")
# Input
nama = input("Nama siswa: ")
nilai = float(input("Nilai akhir: "))
# Tentukan grade
if nilai >= 90:
grade = "A"
predikat = "Luar Biasa"
elif nilai >= 80:
grade = "B"
predikat = "Baik"
elif nilai >= 70:
grade = "C"
predikat = "Cukup"
elif nilai >= 60:
grade = "D"
predikat = "Kurang"
else:
grade = "E"
predikat = "Gagal"
# Tentukan status lulus
lulus = "LULUS" if nilai >= 70 else "TIDAK LULUS"
# Output
print(f"\nNama : {nama}")
print(f"Nilai : {nilai}")
print(f"Grade : {grade}")
print(f"Predikat: {predikat}")
print(f"Status : {lulus}")
program ini ngumpulin semua konsep: if elif else buat nentuin grade, ternary operator buat status lulus, dan input() buat baca data dari user. coba jalanin, masukin nilai 85, nanti keluar Grade B dengan status LULUS. kalau udah lancar, coba tambahin sendiri, misal validasi kalau nilai di luar 0 sampai 100.
10. Checklist Praktik untuk Orang Awam (30 Menit Sehari)
biar tidak bingung mau mulai dari mana, ini checklist yang saya kasih ke teman yang baru pertama kali nyentuh koding. ikuti pelan-pelan, tidak usah buru-buru.
- bikin file baru
latihan.pyalakadarnya, isi 5 barisifbuat cek umur kalian sendiri, ganti angkanya, lihat hasilnya. tujuannya bukan bikin program keren, tapi bikin tangan terbiasa ngetik indentasi. - coba salah sengaja, tulis
if umur = 17pakai satu=, lihatSyntaxErrormuncul, lalu betulkan jadi==. begitu errornya pernah ketemu sendiri, nanti tidak kaget lagi. - mainkan
anddanorpakai contoh sehari-hari, misalpunya_ktp = Truedanumur = 16, gantiandjadior, tebak hasilnya dulu baru jalankan. kalau tebakan kalian bener 3 kali berturut-turut, berarti logikanya sudah nempel. - rekam jejak error, tiap kali kena
IndentationError, catat di notes hp: “tadi kecampur tab dan spasi di baris 12”. saya menyarankan ini karena 80% error pemula di materi ini cuma soal spasi, bukan logika.
jangan khawatir kalau hari pertama masih banyak salah, itu wajar. yang penting konsisten, besok ulangi lagi 30 menit, dan kalian bakal kaget ternyata minggu depan sudah bisa bikin kalkulator nilai sendiri tanpa lihat contekan 🙂
Kesimpulan
percabangan itu fondasi logika pemrograman, hampir tidak ada program serius yang tidak memakainya. intinya begini:
ifbuat satu kondisi,if elsebuat dua cabang,if elif elsebuat banyak cabang- blok kode ditandai indentasi, jangan campur tab dan spasi
==buat membandingkan,=buat ngasih nilai- operator logika
and,or,notbuat kondisi kompleks - hindari nested if terlalu dalam, gabungin pakai operator logika
- ternary operator buat if else sederhana satu baris
match case(python 3.10+) alternatif buat banyak cabang
Langkah selanjutnya: lanjut belajar perulangan for dan while di Python biar program kalian bisa ngulang eksekusi kode, atau ke struktur data list, tuple, set, dan dictionary buat ngelola koleksi data.
Baca Juga Mengenai :
- belajar python tipe data dan variabel
- belajar python perulangan for dan while
- belajar python list tuple set dictionary
- perbedaan if else dan switch case
Pertanyaan yang Sering Diajukan
Apa bedanya if dan elif di Python?
if itu kondisi pertama yang selalu dicek, sedangkan elif itu kondisi lanjutan yang cuma dicek kalau kondisi sebelumnya False. begitu satu kondisi True, sisanya dilewati.
Bagaimana cara menulis if else di Python?
tulis if kondisi: lalu blok kode dengan indentasi 4 spasi, lanjut else: untuk blok yang jalan kalau kondisi False. blok kode di python ditandai indentasi, bukan kurung kurawal.
Apa itu nested if di Python?
nested if itu if di dalam if, dipakai kalau ada syarat bertingkat. tapi kalau bisa, lebih baik digabung pakai operator logika and atau or biar kodenya tidak terlalu dalam dan gampang dibaca.
Kapan pakai match case dibanding if elif else?
pakai match case (python 3.10+) kalau mengecek satu variabel terhadap banyak nilai, misal menu atau kode status. kalau kondisinya berupa rentang atau perbandingan, tetap pakai if elif else.

