Logo Python

Belajar Python 10
Percabangan dengan if, elif, dan else

oleh: Suryo Adhy Chandra, ST

Sampai bab sebelumnya, program yang kita tulis selalu berjalan lurus dari baris pertama sampai baris terakhir. Padahal program yang berguna hampir selalu perlu mengambil keputusan: menampilkan pesan berbeda kalau nilai siswa di bawah KKM, menolak masukan yang kosong, atau memberi potongan harga kalau belanjaan melebihi jumlah tertentu. Kemampuan mengambil keputusan itulah yang disebut percabangan.

1. Bentuk paling sederhana: if

Perintah if menjalankan sekelompok baris hanya jika syaratnya bernilai benar. Kalau syaratnya salah, kelompok baris itu dilewati begitu saja.

nilai = 85 if nilai >= 75: print("Selamat, kamu lulus")
Perhatikan dua hal yang wajib ada: tanda titik dua di akhir baris if, dan spasi menjorok ke dalam pada baris di bawahnya. Python memakai jorokan itu untuk menentukan baris mana yang termasuk dalam if. Standarnya empat spasi.

2. Menyediakan jalan lain: else

Bagian else dijalankan ketika syarat pada if ternyata tidak terpenuhi. Dengan begitu program selalu punya jawaban, apa pun kondisinya.

nilai = 60 if nilai >= 75: print("Selamat, kamu lulus") else: print("Belum lulus, silakan ikut remedial")

3. Lebih dari dua kemungkinan: elif

Kalau kemungkinannya lebih dari dua, gunakan elif yang merupakan singkatan dari else if. Python memeriksa syarat dari atas ke bawah, dan berhenti pada syarat pertama yang bernilai benar. Sisanya tidak diperiksa lagi.

nilai = 82 if nilai >= 90: print("Nilai A") elif nilai >= 80: print("Nilai B") elif nilai >= 70: print("Nilai C") else: print("Perlu perbaikan")
Urutannya menentukan hasil. Kalau baris elif nilai >= 70 ditaruh paling atas, maka nilai 82 akan langsung dicetak sebagai "Nilai C", karena 82 memang lebih besar dari 70 dan Python berhenti di syarat pertama yang benar. Untuk percabangan bertingkat seperti ini, susun syaratnya dari yang paling ketat ke yang paling longgar.

4. Operator pembanding yang sering dipakai

== sama dengan != tidak sama dengan > lebih besar < lebih kecil >= lebih besar atau sama dengan <= lebih kecil atau sama dengan
Kesalahan paling sering bagi pemula adalah memakai satu tanda sama dengan untuk membandingkan. Satu tanda = berarti memberi nilai, sedangkan dua tanda == berarti membandingkan. Menulis if nilai = 75: akan langsung menghasilkan pesan kesalahan.

5. Menggabungkan beberapa syarat

Gunakan and bila semua syarat harus terpenuhi, dan or bila cukup salah satu saja. Kata not membalikkan nilai kebenaran suatu syarat.

umur = 15 punya_izin = True if umur >= 13 and punya_izin: print("Boleh mengikuti kegiatan") else: print("Belum memenuhi syarat")

Contoh dengan or, misalnya libur terjadi kalau harinya Sabtu atau Minggu:

hari = "Minggu" if hari == "Sabtu" or hari == "Minggu": print("Hari libur") else: print("Hari sekolah")

6. Percabangan di dalam percabangan

Sebuah if boleh berada di dalam if lain. Ini berguna kalau ada syarat yang baru relevan setelah syarat pertama terpenuhi.

nilai = 88 kehadiran = 70 if nilai >= 75: if kehadiran >= 80: print("Lulus dengan predikat baik") else: print("Nilai cukup, tetapi kehadiran kurang") else: print("Belum lulus")
Kalau jorokan bertingkat mulai lebih dari dua atau tiga lapis, kode menjadi sulit dibaca. Dalam keadaan itu, biasanya lebih baik menggabungkan syaratnya dengan and, atau memecahnya menjadi fungsi tersendiri yang akan dibahas pada bab berikutnya.

7. Menggabungkan dengan masukan pengguna

Perlu diingat, hasil dari input() selalu berupa teks. Kalau ingin dibandingkan sebagai angka, ubah dulu dengan int() atau float().

nilai = int(input("Masukkan nilai: ")) if nilai >= 75: print("Lulus") else: print("Belum lulus")
Tanpa int(), Python akan membandingkan teks dengan angka dan memunculkan kesalahan TypeError. Kesalahan ini sangat sering dialami pemula, dan sekarang kamu sudah tahu penyebabnya.

8. Contoh utuh: menentukan potongan harga

total = int(input("Total belanja: ")) if total >= 500000: potongan = total * 20 // 100 elif total >= 200000: potongan = total * 10 // 100 elif total >= 100000: potongan = total * 5 // 100 else: potongan = 0 bayar = total - potongan print("Potongan:", potongan) print("Total bayar:", bayar)

Cobalah jalankan dengan beberapa masukan berbeda, misalnya 90.000, 150.000, 300.000, dan 600.000. Perhatikan bahwa hanya satu cabang yang pernah dijalankan untuk setiap masukan.

9. Latihan

Petunjuk untuk latihan pertama: bilangan genap selalu bersisa nol ketika dibagi dua, sehingga syaratnya dapat ditulis if bilangan % 2 == 0:.
← Kembali Ke Daftar Materi Python