Skip to main content

Logical Operators

Logical Operators atau operator logika digunakan untuk menggabungkan dan mengevaluasi kondisi dalam program.

Operator ini sangat penting dalam pembuatan conditional logic, karena memungkinkan program mengambil keputusan berdasarkan satu atau beberapa kondisi.

Dalam Python, hasil dari operasi perbandingan umumnya berupa nilai Boolean, yaitu True atau False.


Comparison Operators​

Sebelum memahami operator logika, kita perlu memahami comparison operators atau operator perbandingan.

Operator perbandingan digunakan untuk membandingkan dua nilai.

OperatorArtiContohHasil
>Lebih besar dari4 > 5False
<Lebih kecil dari4 < 5True
==Sama dengan4 == 5False
!=Tidak sama dengan4 != 5True
>=Lebih besar atau sama dengan5 >= 5True
<=Lebih kecil atau sama dengan4 <= 5True

Contoh​

age = 20

print(age > 18)
print(age < 18)
print(age == 20)
print(age != 20)

Output:

True
False
True
False

Perbedaan = dan ==​

Salah satu kesalahan yang sering dilakukan pemula adalah menganggap = dan == memiliki fungsi yang sama.

= Assignment Operator​

Tanda = digunakan untuk memberikan atau menetapkan nilai ke variabel.

age = 20

Artinya variabel age diberikan nilai 20.

== Comparison Operator​

Tanda == digunakan untuk membandingkan apakah dua nilai memiliki nilai yang sama.

age == 20

Hasilnya berupa Boolean:

True

Contoh dalam kondisi:

age = 20

if age == 20:
print("Umur adalah 20 tahun")

Operator and​

Operator and digunakan ketika semua kondisi harus terpenuhi.

Hasilnya hanya True jika seluruh kondisi bernilai True.

Kondisi AKondisi BA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Contoh​

age = 25
has_license = True

if age >= 18 and has_license:
print("Boleh mengemudi")

Pada contoh tersebut, terdapat dua kondisi:

  1. age >= 18
  2. has_license

Keduanya harus bernilai True agar program menjalankan blok if.


Operator or​

Operator or digunakan ketika setidaknya salah satu kondisi harus terpenuhi.

Hasilnya True jika salah satu atau kedua kondisi bernilai True.

Kondisi AKondisi BA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Contoh​

is_admin = False
is_editor = True

if is_admin or is_editor:
print("Boleh mengakses halaman")

Meskipun is_admin bernilai False, kondisi is_editor bernilai True.

Karena menggunakan or, hasil akhirnya adalah True.


Operator not​

Operator not digunakan untuk membalikkan nilai logika.

Jika nilai awal True, maka not menghasilkan False.

Jika nilai awal False, maka not menghasilkan True.

Contoh​

print(not True)
print(not False)

Output:

False
True

Operator not juga dapat digunakan pada ekspresi perbandingan.

print(not (1 == 1))

Ekspresi:

1 == 1

menghasilkan True.

Kemudian not membaliknya menjadi:

False

Menggabungkan Beberapa Operator​

Operator logika dapat digunakan bersama dengan operator perbandingan.

Contohnya:

age = 25
has_license = True
is_banned = False

if age >= 18 and has_license and not is_banned:
print("Boleh mengemudi")

Program akan memeriksa tiga kondisi:

  1. age >= 18
  2. has_license
  3. not is_banned

Jika semuanya bernilai True, program menjalankan perintah di dalam if.


Logical Operators dalam Conditional​

Operator logika sangat sering digunakan bersama if, elif, dan else.

Contoh:

username = "admin"
password = "12345"

if username == "admin" and password == "12345":
print("Login berhasil")
else:
print("Username atau password salah")

Pada contoh tersebut, login hanya berhasil jika:

username == "admin"

dan:

password == "12345"

keduanya benar.


Membandingkan String​

Operator perbandingan juga dapat digunakan untuk membandingkan string.

print("a" > "b")
print("a" < "b")

Output:

False
True

Python membandingkan karakter berdasarkan nilai numerik Unicode.

Contohnya:

print("a" > "A")

Hasilnya:

True

Hal ini terjadi karena huruf kecil dan huruf kapital memiliki nilai Unicode yang berbeda.


Perbandingan String Berdasarkan Urutan Karakter​

Python dapat membandingkan string berdasarkan urutan karakter.

print("apple" == "apple")
print("apple" == "Apple")

Output:

True
False

Perbandingan string bersifat case-sensitive.

Artinya:

"Python"

dan:

"python"

dianggap berbeda.


Menggunakan Kurung untuk Memperjelas Kondisi​

Ketika menggunakan beberapa operator logika sekaligus, tanda kurung dapat membantu memperjelas maksud kondisi.

age = 25
has_license = True
has_permission = False

if age >= 18 and (has_license or has_permission):
print("Akses diberikan")

Pada contoh tersebut:

has_license or has_permission

diperiksa sebagai satu kelompok kondisi.

Penggunaan tanda kurung dapat membuat ekspresi kompleks lebih mudah dibaca dan dipahami.


Hubungan dengan Short Circuiting​

Operator and dan or juga berkaitan dengan konsep Short Circuiting.

Pada and, Python dapat berhenti ketika menemukan kondisi yang bernilai False.

False and ...

Hasilnya sudah pasti False.

Pada or, Python dapat berhenti ketika menemukan kondisi yang bernilai True.

True or ...

Hasilnya sudah pasti True.

Dengan demikian, Python tidak selalu mengevaluasi seluruh kondisi dalam sebuah ekspresi logika.


Ringkasan​

Operator perbandingan digunakan untuk membandingkan nilai:

  • > lebih besar
  • < lebih kecil
  • == sama dengan
  • != tidak sama dengan
  • >= lebih besar atau sama dengan
  • <= lebih kecil atau sama dengan

Operator logika digunakan untuk menggabungkan atau membalikkan kondisi:

  • and → semua kondisi harus benar
  • or → setidaknya satu kondisi harus benar
  • not → membalik nilai logika

Contoh penggunaan:

age = 25
has_license = True

if age >= 18 and has_license:
print("Boleh mengemudi")

Pemahaman tentang operator perbandingan dan operator logika merupakan dasar penting sebelum mempelajari conditional, looping, dan berbagai bentuk control flow dalam Python.


Contoh Latihan: Logical Operators​

Latihan ini merupakan kelanjutan dari materi Logical Operators. Tujuannya adalah menerapkan operator and dan not dalam sebuah conditional logic menggunakan if, elif, dan else.

Latihan ini juga membantu memahami bagaimana menyusun kondisi agar kode tetap jelas, mudah dibaca, dan mudah dipahami.


Studi Kasus​

Misalkan kita memiliki dua informasi mengenai seorang pemain game:

is_magician = False
is_expert = True

Kedua variabel tersebut digunakan untuk menentukan kemampuan pemain.

Program harus menghasilkan pesan berdasarkan kondisi berikut:

  1. Jika pemain adalah magician dan expert, tampilkan:

    "You are a master magician"

  2. Jika pemain adalah magician tetapi bukan expert, tampilkan:

    "At least you're getting there"

  3. Jika pemain bukan magician, tampilkan:

    "You need magic powers"


Solusi​

is_magician = False
is_expert = True

if is_magician and is_expert:
print("You are a master magician")

elif is_magician and not is_expert:
print("At least you're getting there")

elif not is_magician:
print("You need magic powers")

Dengan nilai:

is_magician = False
is_expert = True

kondisi pertama:

is_magician and is_expert

menghasilkan False.

Kondisi kedua:

is_magician and not is_expert

juga menghasilkan False.

Kondisi ketiga:

not is_magician

menghasilkan True.

Sehingga output program adalah:

You need magic powers

Memahami and​

Kondisi:

is_magician and is_expert

berarti kedua kondisi harus benar.

Contohnya:

is_magician = True
is_expert = True

Maka:

True and True

menghasilkan:

True

Program akan menampilkan:

You are a master magician

Memahami and not​

Kondisi:

is_magician and not is_expert

berarti:

  • pemain adalah magician
  • pemain bukan expert

Contohnya:

is_magician = True
is_expert = False

Maka:

True and not False

menjadi:

True and True

Hasilnya adalah True.

Output:

At least you're getting there

Memahami not​

Operator not digunakan untuk membalik nilai Boolean.

Jika:

is_magician = False

maka:

not is_magician

menghasilkan:

True

Sebaliknya, jika:

is_magician = True

maka:

not is_magician

menghasilkan:

False

Mengapa Menggunakan not Secara Eksplisit?​

Perhatikan kondisi berikut:

elif is_magician and not is_expert:
print("At least you're getting there")

Penulisan tersebut secara eksplisit menjelaskan bahwa pemain:

  • harus seorang magician
  • dan tidak boleh seorang expert

Kode menjadi lebih mudah dipahami dibandingkan membuat logika yang terlalu bergantung pada kondisi sebelumnya.

Prinsip yang perlu diingat:

Kode yang mudah dibaca lebih penting daripada kode yang sekadar terlihat singkat.


Alternatif Menggunakan else​

Kondisi terakhir juga dapat menggunakan else.

is_magician = False
is_expert = True

if is_magician and is_expert:
print("You are a master magician")

elif is_magician and not is_expert:
print("At least you're getting there")

else:
print("You need magic powers")

Dalam kasus ini, else akan menangani semua kondisi yang tidak memenuhi dua kondisi sebelumnya.

Penggunaan else dapat menjadi pilihan yang baik ketika kondisi terakhir memang merupakan default condition.


Latihan Mandiri​

Coba ubah nilai kedua variabel berikut:

is_magician = True
is_expert = True

Prediksi output program sebelum menjalankannya.

Kemudian coba:

is_magician = True
is_expert = False

Terakhir, coba:

is_magician = False
is_expert = False

Perhatikan bagaimana perubahan nilai Boolean memengaruhi hasil conditional.


Kesimpulan​

Latihan ini memperkuat beberapa konsep yang sudah dipelajari:

  • and digunakan ketika semua kondisi harus terpenuhi.
  • not digunakan untuk membalik nilai Boolean.
  • if, elif, dan else digunakan untuk membuat keputusan berdasarkan kondisi.
  • Kondisi seperti is_magician and not is_expert dapat membuat maksud program lebih jelas.
  • Kode yang baik tidak hanya harus benar, tetapi juga mudah dibaca dan dipahami.