If bersarang seperti pada artikel Perintah IF Bersarang pada Python bukanlah satu-satunya solusi untuk menyelesaikan program yang membutuhkan seleksi banyak kondisi. Cara yang lain adalah dengan menggunakan operator logika “AND”.

Operator dapat digunakan untuk mengevaluasi dua atau lebih kondisi sekaligus. Sama seperti sebuah kondisi, hasil dari operator AND juga berupa nilai benar atau salah. Akan menghasilkan benar jika kedua kondisi sama-sama bernilai benar, dan menghasilkan salah jika salah satu kondisi atau keduanya bernilai salah.

Sebagai contoh untuk menentukan grade dari angka menjadi huruf dengan ketentuan sebagai berikut:

  • 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
  • grade E didapat jika nilai 0..44,

Untuk kasus grade ‘B’ misalnya didapat ketika rentang nilai adalah 75..89. Dari rentang nilai tersebut, terdapat dua kondisi yang perlu diuji, yaitu:

  • Apakah nilai lebih besar atau sama dengan 75?
  • Apakah nilai kurang atau sama dengan 89?

Jika kedua syarat tersebut benar, maka perintah grade=’B’ boleh dieskekusi. Namun jika salah satu atau kedua kondisi tersebut bernilai salah, maka grade=’B’ tidak boleh dieksekusi. Sehingga, rumusan penulisan perintah if adalah sebagai berikut:

if nilai>=75 and nilai<=89:
print "Grade B"

Kode Python selengkapnya adalah sebagai berikut:

# Menentukan grade
nilai = input("Masukkan nilai: ")

if nilai >= 90:
  print "A"

if nilai>=75 and nilai<=89:
  print "B"

if nilai>=60 and nilai<=74:
  print "C"

if nilai>=45 and nilai<=59:
  print "D"

if nilai < 45:
  print "E"

Tampilan:

Pada kode di atas, semua kondisi rentang nilai diuji dengan menggunakan IF dan operator AND.

Karena semua kondisi telah diuji, maka tidak diperlukan perintah ELSE.

Selain operator logika “AND”, juga dikenal operator logika “OR”. Operator logika “OR” bernilai benar ketika salah satu atau kedua kondisi bernilai benar. Implikasinya, ketika diletakkan sebagai kondisi pada IF, maka perintah ELSE hanya dieksekusi ketika kedua kondisi bernilai salah. Operator “OR” tidak dapat digunakan untuk kasus seleksi berdasarkan rentang nilai tertentu.

Perhatikan penggalan pseudo-code berikut:

if nilai>=75 or nilai<=89:
print "B"

Perintah tersebut secara penulisan dapat dibenarkan, namun secara logika akan berakibat berapapun nilai akan selalu mengeksekusi perintah print “B”. Misalkan jika nilai sama dengan 40, maka kondisi “nilai<=89” akan bernilai benar sehingga perintah print “B” akan dijalankan. Begitu pula jika nilai sama dengan 95, kondisi nilai >=75 akan bernilai benar. Kesalahan semacam ini sering terjadi saat menggunakan operator di dalam perintah kondisional IF sehingga menyebabkanprogram seolah-olah benar, namun menghasilkan keluaran yang salah.

Tabel berikut dapat dijadikan acuan kapan harus menggunakan operator logika AND dan kapan harus menggunakan operator logika OR.

Tabel di atas dapat dibaca sebagai berikut. Untuk operator AND, jika kondisi I bernilai BENAR dan diikuti oleh kondisi II yang juga bernilai BENAR, maka perintah yang dijalankan adalah perintah sesudah IF dan sebelum ELSE. Namun jika salah satu atau kedua kondisi bernilai salah, maka perintah yang dijalankan adalah perintah yang terletak sesudah ELSE.

Demikian halnya untuk operator OR. Jika salah satu atau kedua kondisi bernilai benar, maka perintah yang dijalankan adalah perintah sesudah IF dan sebelum ELSE. Namun jika kedua kondisi bernilai salah, maka perintah yang dijalankan adalah perintah sesudah ELSE.