Tutorial Belajar Python Part 25: Percabangan Kondisi If Else If Bahasa Python

Dalam tutorial sebelumnya kita telah membahas tentang perulangan If Else, yakni sebuah percabangan kode program dimana jika kondisi If bernilai True, maka jalankan perintah yang ada di dalam blok If tersebut. Namun jika kondisi bernilai False, maka jalankan kode program di dalam blok Else.

Kali ini kita akan lanjut membahas percabangan If Else If, yang boleh disamakan dengan "menyambung" beberapa kondisi If Else sekaligus.


Pengertian Kondisi If Else If Bahasa Python

Pada dasarnya, kondisi If Else If adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa kondisi If Else menjadi sebuah kesatuan.

Jika kondisi pertama tidak terpenuhi atau bernilai False, maka kode program akan lanjut ke kondisi If di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi If di bawahnya, dst hingga blok Else terakhir atau terdapat kondisi If yang bernilai True.

Berikut format dasar penulisan kondisi If Else If dalam bahasa Python:

if condition_1: 
  # Kode program yang dijalankan jika condition_1 bernilai True 
  # Kode program yang dijalankan jika condition_1 bernilai True
elif condition_2: 
  # Kode program yang dijalankan jika condition_2 bernilai True 
  # Kode program yang dijalankan jika condition_2 bernilai True
elif condition_3: 
  # Kode program yang dijalankan jika condition_3 bernilai True 
  # Kode program yang dijalankan jika condition_3 bernilai True
else:
  # Kode program yang dijalankan jika semua kondisi tidak terpenuhi
  # Kode program yang dijalankan jika semua kondisi tidak terpenuhi

Yang perlu menjadi perhatian, di dalam bahasa Python, perintahnya bukan else if, tapi elif. Ini cukup berbeda dengan kebanyakan bahasa pemrograman lain. Mari kita lihat contoh prakteknya.


Contoh Kode Program Percabangan If Else If Bahasa Python

Sebagai contoh pertama, saya ingin membuat sebuah kode program untuk menampilkan teks dari sebuah angka nilai. Variabel asal berisi sebuah huruf antara 'A' – 'E'. Kemudian kode program akan menampilkan hasil tampilan yang berbeda-beda untuk setiap huruf, termasuk jika huruf tersebut di luar 'A' – 'E'.

Berikut contoh kode programnya:

nilai = 'D'

if nilai == 'A':
  print('Pertahankan')
elif nilai == 'B':
  print('Harus lebih baik lagi')
elif nilai == 'C':
  print('Perbanyak belajar')
elif nilai == 'D':
  print('Jangan keseringan main')
elif nilai == 'E':
  print('Kebanyakan bolos...')
else:
  print('Maaf, format nilai tidak sesuai')

Hasil kode program:

Jangan keseringan main

Di baris 1 saya mendefinisikan sebuah variabel nilai dengan huruf 'D'.

Mulai dari baris 3 hingga 14, terdapat 5 buah pemeriksaan kondisi, yakni satu untuk setiap block elif. Dalam setiap kondisi, isi variabel nilai akan di diperiksa apakah itu berupa karakter 'A', 'B', hingga 'E'. Jika salah satu kondisi ini terpenuhi, maka block kode program yang sesuai akan di eksekusi.

Jika ternyata nilai inputan bukan salah satu dari karakter 'A' – 'E', maka block Else di baris 14 lah yang akan dijalankan.

Setiap kondisi dari block elif ini bisa diisi dengan perbandingan yang lebih kompleks, seperti contoh berikut:

nilai = 65
print('Nilai:',nilai)

if nilai >= 90:
  print('Pertahankan')
elif (nilai >= 80) and (nilai < 90):
  print('Harus lebih baik lagi')
elif (nilai >= 60) and (nilai < 80):
  print('Perbanyak belajar')
elif (nilai >= 40) and (nilai < 60):
  print('Jangan keseringan main')
elif nilai < 40:
  print('Kebanyakan bolos...')
else:
  print('Maaf, format nilai tidak sesuai')

Di sini saya memodifikasi sedikit kode program kita sebelumnya. Sekarang nilai inputan berupa angka antara 0 hingga 100. Angka inputan ini ditampung ke dalam variabel nilai.

Di baris 4, isi dari variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya, tampilkan teks "Pertahankan!".

Jika kondisi di baris 4 tidak terpenuhi (yang artinya isi variabel nilai kurang dari 90), maka kode program akan lanjut ke kondisi elif berikutnya di baris 6. Di sini saya menggabungkan dua buah kondisi menggunakan operator logika and. Kondisi elif (nilai >= 80) and (nilai < 90) hanya akan terpenuhi jika isi variabel nilai berada dalam rentang 80 sampai 89.

Ketika membuat kondisi perbandingan, kita harus hati-hati dengan penggunaan tanda, apakah ingin menggunakan tanda lebih besar saja (>) atau tanda lebih besar sama dengan (>=) karena bisa mempengaruhi hasil akhir.

Jika ternyata kondisi ini tidak dipenuhi juga (artinya isi variabel nilai kurang dari 80), program akan lanjut ke kondisi elif (nilai >= 60) and (nilai < 80) di baris 8, yakni apakah nilai berada dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir elif nilai < 40 di baris 12.

Jika semua kondisi tidak terpenuhi, jalankan block Else di baris 14.

Silahkan anda coba tukar isi variabel nilai, dan teks yang tampil juga akan berbeda-beda.

Nilai: 65
Perbanyak belajar

Nilai: 96
Pertahankan

Nilai: 36
Kebanyakan bolos...

Namun yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap ditangkap oleh kondisi if di baris 4 atau di baris 14:

Nilai: 199
Pertahankan!

Nilai: -1000
Kebanyakan bolos...

Ini terjadi karena nilai 200 tetap memenuhi syarat if nilai >= 90, dan nilai -1000 juga tetap memenuhi syarat elif nilai < 40. Silahkan anda modifikasi kode program di atas agar jika diinput angka di luar dari rentang 0 -100, akan tampil teks "Maaf, format nilai tidak sesuai". Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.

Sebagai tambahan penutup, dalam bahasa Python tidak tersedia struktur switch – case. Jadi untuk pemeriksaan kondisi yang cukup banyak, kita harus menggunakan struktur if elif. Atau bisa juga menggunakan beberapa trik alternatif yang melibatkan function sebagai pengganti switch – case.

Dalam tutorial kali ini kita telah membahas tentang konsep struktur logika if else if atau elif, yang tidak lain berupa kondisi if yang saling bersambung. Berikutnya kita akan masuk ke struktur perulangan while.

2 Comments

  1. alufeed
    03 Oct 22
    • Andre
      04 Oct 22

Add Comment

Leave a Reply to alufeed Cancel reply