Pada artikel Perintah Kondisional, hanya ada 2 kondisi, yaitu jika a bernilai genap atau ganjil. Kenyataannya akan sering ditemui program yang memerlukan seleksi lebih dari 2
kondisi. Contoh kasus yang membutuhkan seleksi lebih dari 2 kondisi:

  • Menentukan kategori beasiswa berdasarkan nilai tes masuk (kategori beasiswa penuh jika nilai tes antara 90-100, kategori I jika nilai tes antara 80-89, kategori II jika nilai beasiswa antara 70-79 dan tidak mendapatkan beasiswa jika nilainya di bawah 70)
  • Menentukan grade dari angka menjadi huruf (grade A didapat jika nilai 90..100, grade B didapat jika nilai 75..89, grade C didapat jika nilai 60..74, grade D didapat 
jika nilai 45..59, dan grade E didapat jika nilai 0..44),
  • Menentukan besarnya discount yang diberikan berdasarkan total pembelian (pembelian di atas 1.000.000 mendapatkan discount 10%, pembelian antara 500.000..1.000.000 mendapatkan discount 5% dan pembelian di bawah 500.000 tidak mendapatkan discount), dan sebagainya.

Untuk kasus dengan banyak kondisi, if tetap dapat digunakan dengan menggunakan if bersarang (nested if). Sebagai contoh untuk melakukan seleksi kategori beasiswa, maka if bersarang yang digunakan adalah:

# Program if-3

nilai = input("Masukkan nilai: ")
if nilai>=90:
  print "Kategori beasiswa penuh"
elif nilai>=80:
  print "kategori beasiswa I"
elif nilai>=70:
  print "kategori beasiswa II"
else:
  print "Tidak mendapatkan beasiswa"

Tampilan:

Contoh berikut adalah bagaimana menentukan bilangan terbesar dari 3 buah variabel yang diinputkan.

# Program cari bilangan terbesar

a, b, c = input()
if a > b:
  if b > c:
    maks = a
  else:
  if c > a:
    maks = c
  elif a > c:
    maks = b
  elif c > b:
    maks = c

print maks

Untuk mencari bilangan terbesar dari 3 buah bilangan, algoritma di atas membandingkan terlebih dulu apakah a > b.

  • Jika a > b, maka ada 2 kandidat bilangan terbesar, yaitu a dan c sehingga perlu dilakukan pengujian yang manakah dari a dan c yang lebih besar dengan melakukan membandingkan nilai b dan c. Jika nilai b ternyata lebih besar dari c, maka bilangan terbesar adalah a. Nilai terbesar adalah c jika ternyata c lebih besar dari a.
  • Jika kondisi a > b tidak terpenuhi (atau b <= a), maka 2 kandidat bilangan terbesar adalah b dan c. Jika nilai c ternyata lebih kecil dari a, maka b adalah nilai terbesar, sedangkan jika c yang lebih besar dari b, maka yang terbesar adalah c.

Cara di atas bukanlah satu-satunya cara untuk menentukan bilangan terbesar dari 3 bilangan. Cara lain yang bisa digunakan adalah:

# Program cari bilangan terbesar 2

a, b, c = input()
if a > b:
  maks = a
else: 
  maks = b

if maks < c:
  maks = c
print maks

Cara di atas lebih sederhana dibandingkan dengan cara sebelumnya. Algoritma akan membandingkan 2 buah variabel terlebih dulu, yaitu a dan b. Nilai terbesar dari a dan b akan disimpan dalam variabel maks. Berikutnya variabel maks akan dibandingkan dengan c. Jika nilai maks lebih kecil dari c, maka nilai maks diubah menjadi c. Dengan demikian, nilai variabel maks adalah nilai yang terbesar dari a, b dan c.

Tampilan: