if, elif, else
Sampai sini programmu berjalan lurus dari atas ke bawah. Dengan if, ia mulai bisa memilih jalan.
Intisari
- Pola dasarnya:
if kondisi:lalu baris-baris di bawahnya menjorok ke dalam. - Titik dua
:di akhir barisifitu wajib. Lupa titik dua =SyntaxError. - Python memakai indentasi (spasi di awal baris), bukan kurung kurawal, untuk menandai isi blok. Pakai 4 spasi.
elif= βkalau tidak, coba yang iniβ.else= βkalau semuanya tidakβ. Keduanya opsional.- Urutan pemeriksaan penting: yang pertama cocok yang menang, sisanya dilewati.
Bentuk paling sederhana
umur = 20
if umur >= 17:
print("Boleh punya SIM")
Dibaca: kalau umur lebih dari atau sama dengan 17, cetak kalimat itu.
Kalau tidak, baris itu dilewati begitu saja dan program lanjut.
Indentasi: aturan yang tidak ada di bahasa lain
Bahasa lain menandai isi blok dengan kurung kurawal. Python memakai spasi di awal baris.
Baris yang menjorok ke dalam adalah isi dari if; baris yang kembali ke tepi kiri sudah di luarnya.
if umur >= 17:
print("Boleh punya SIM") # β menjorok: hanya jalan kalau kondisi benar
print("Selamat!") # β masih di dalam
print("Program selesai") # β di tepi kiri: SELALU jalan
Pakai 4 spasi, dan jangan mencampur spasi dengan Tab. Keduanya terlihat sama di layar
tapi berbeda bagi Python, dan hasilnya IndentationError atau
TabError yang membingungkan. VS Code mengubah Tab jadi spasi secara otomatis β
biarkan saja begitu. Menyalakan Render Whitespace (Fase 0) membuat masalah ini kelihatan.
else β jalan cadangan
nilai = 65
if nilai >= 70:
print("Lulus")
else:
print("Tidak lulus")
else tidak punya kondisi β ia dijalankan kalau if-nya tidak terpenuhi. Titik.
elif β lebih dari dua kemungkinan
nilai = 82
if nilai >= 90:
grade = "A"
elif nilai >= 80:
grade = "B"
elif nilai >= 70:
grade = "C"
else:
grade = "D"
print(f"Nilai {nilai} dapat grade {grade}") # Nilai 82 dapat grade B
Python memeriksa dari atas. Begitu ada yang cocok, blok itu dijalankan dan
semua sisanya dilewati β meskipun juga cocok. Itu sebabnya 82 tidak jatuh ke C.
Urutannya menentukan hasil. Kalau tabel di atas dibalik β if nilai >= 70 ditaruh
paling atas β maka nilai 95 pun akan mendapat grade C, karena 95 memang lebih dari 70 dan
pemeriksaan berhenti di situ. Susun dari syarat yang paling ketat ke yang paling longgar.
Contoh utuh
suhu = float(input("Suhu badan (Β°C)? "))
if suhu >= 38:
print("Demam. Istirahat dan minum air.")
elif suhu >= 37.5:
print("Sedikit hangat. Pantau lagi nanti.")
elif suhu >= 36:
print("Normal.")
else:
print("Di bawah normal. Periksa lagi pengukurannya.")
if di dalam if
Blok boleh bersarang β cukup tambahkan satu tingkat indentasi lagi:
punya_tiket = True
umur = 12
if punya_tiket:
if umur < 13:
print("Masuk lewat pintu anak")
else:
print("Masuk lewat pintu umum")
else:
print("Beli tiket dulu")
Tapi jangan berlebihan. Tiga tingkat sudah tanda kode perlu dirapikan β biasanya bisa digabung:
# Bersarang
if punya_tiket:
if umur < 13:
print("Pintu anak")
# Lebih enak dibaca β digabung dengan `and` (dibahas di materi berikutnya)
if punya_tiket and umur < 13:
print("Pintu anak")
Tiga error yang pasti kamu temui
| Pesan error | Artinya |
|---|---|
SyntaxError: expected ':' | Titik dua di akhir baris if terlupa |
IndentationError: expected an indented block | Baris setelah if: tidak menjorok ke dalam |
SyntaxError: invalid syntax di baris if x = 5: | Pakai = padahal maksudnya membandingkan β harusnya == |
Latihan: buat program yang meminta angka dari pengguna lalu memberi tahu apakah angka itu
positif, negatif, atau nol. Setelah jalan, tambahkan pemeriksaan ganjil/genap dengan % 2.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.