Langsung ke konten

Operator Perbandingan dan Logika di Python

Operator perbandingan dan logika menentukan benar atau salahnya suatu kondisi di Python. Artikel ini membahas ==, !=, and, or, not, serta truthy dan falsy.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas operator aritmatika. Sekarang kita masuk ke operator yang menghasilkan nilai benar atau salah.

Setiap program perlu mengambil keputusan: apakah saldo cukup, apakah umur sudah memenuhi syarat, apakah password cocok. Keputusan itu dibuat dengan operator perbandingan dan operator logika.

Operator Perbandingan

Operator perbandingan membandingkan dua nilai dan mengembalikan True atau False. Ada enam operator yang perlu kamu kenal:

OperatorArtiContohHasil
==Sama dengan5 == 5True
!=Tidak sama dengan5 != 3True
>Lebih besar5 > 3True
<Lebih kecil5 < 3False
>=Lebih besar atau sama5 >= 5True
<=Lebih kecil atau sama5 <= 3False

Perhatikan bahwa sama dengan ditulis dengan dua tanda sama (==), bukan satu. Ini beda penting dari = yang dipakai untuk menyimpan nilai ke variabel.

print(5 == 5)     # True
print(5 == 3)     # False
print(10 != 7)    # True
print(10 > 7)     # True
print(10 < 7)     # False

Hasil Perbandingan Selalu Boolean

Semua operator di atas menghasilkan bool, yaitu True atau False. Hasilnya bisa disimpan ke variabel seperti nilai lain:

umur = 20
batas = 17

sudah_cukup = umur >= batas
print(sudah_cukup)        # True
print(type(sudah_cukup))  # <class 'bool'>

Variabel boolean seperti ini nanti dipakai untuk percabangan dan perulangan.

Perbedaan = dan ==

Kesalahan yang paling sering terjadi pada pemula adalah tertukar antara = dan ==:

# Menyimpan nilai
x = 5

# Membandingkan nilai
x == 5    # True
  • = untuk menugaskan nilai ke variabel.
  • == untuk membandingkan dua nilai.

Menulis if x = 5 akan menghasilkan SyntaxError. Biasakan membaca == sebagai “sama dengan”.

Membandingkan String

Perbandingan tidak hanya untuk angka. String juga bisa dibandingkan:

print("apel" == "apel")     # True
print("apel" == "Apel")     # False
print("apel" != "jeruk")    # True

Perbandingan string bersifat case-sensitive, artinya huruf besar dan kecil dianggap berbeda. "apel" tidak sama dengan "Apel".

String juga bisa diurutkan dengan > dan <, mengikuti urutan alfabet:

print("b" > "a")    # True
print("apel" < "jeruk")   # True

Untuk mengabaikan besar-kecil huruf, samakan dulu dengan lower():

jawaban = "YA"
print(jawaban.lower() == "ya")   # True

Operator Logika

Operator logika menggabungkan beberapa kondisi menjadi satu. Python punya tiga:

OperatorArtiContohHasil
andBenar jika keduanya benarTrue and FalseFalse
orBenar jika salah satu benarTrue or FalseTrue
notMembalik nilainot TrueFalse

and

and menghasilkan True hanya kalau semua kondisinya benar:

umur = 20
punya_ktp = True

print(umur >= 17 and punya_ktp)   # True

Kalau salah satu saja salah, hasilnya False:

umur = 15
punya_ktp = True

print(umur >= 17 and punya_ktp)   # False

or

or menghasilkan True kalau salah satu kondisinya benar:

punya_ktp = False
punya_sim = True

print(punya_ktp or punya_sim)   # True

or hanya False kalau semua kondisinya False:

print(False or False)   # False

not

not membalik nilai boolean:

print(not True)     # False
print(not False)    # True

not berguna untuk memeriksa kondisi yang sebaliknya:

hujan = False

if not hujan:
    print("Ayo jalan-jalan")

Menggabungkan Beberapa Kondisi

Operator logika bisa dirangkai untuk kondisi yang lebih rumit:

umur = 25
punya_ktp = True
sudah_vaksin = True

boleh_masuk = (umur >= 17) and punya_ktp and sudah_vaksin
print(boleh_masuk)   # True

Tanda kurung di atas hanya untuk memperjelas. Tanpa kurung pun hasilnya sama, karena and diproses sebelum or.

Truthy dan Falsy

Di Python, nilai apa pun bisa dianggap benar atau salah dalam konteks logika. Nilai yang dianggap salah (falsy) adalah:

  • 0 dan 0.0
  • "" (string kosong)
  • None
  • List, tuple, dictionary, dan set kosong

Semua nilai lain dianggap benar (truthy). Konsep ini membuat kode lebih ringkas:

nama = ""

if nama:
    print(f"Halo, {nama}")
else:
    print("Nama masih kosong")

Karena nama berisi string kosong, if nama dianggap False dan bagian else yang dijalankan.

Contoh lain, mengecek list kosong:

keranjang = []

if not keranjang:
    print("Keranjang kosong")

Contoh Program: Cek Kelulusan

Mari gabungkan perbandingan dan logika untuk mengecek kelulusan:

# cek_kelulusan.py

nilai = float(input("Nilai kamu: "))
kehadiran = int(input("Persentase kehadiran: "))

lulus_nilai = nilai >= 75
lulus_hadir = kehadiran >= 80

if lulus_nilai and lulus_hadir:
    print("Selamat, kamu lulus!")
elif lulus_nilai or lulus_hadir:
    print("Kamu lulus bersyarat")
else:
    print("Maaf, kamu belum lulus")

Program ini memakai perbandingan untuk mengubah angka menjadi kondisi, lalu logika untuk menggabungkannya. Bagian if dan elif akan kita bahas lebih dalam di artikel berikutnya.

Kesalahan Umum Pemula

  • Tertukar = dan === untuk menyimpan, == untuk membandingkan.
  • Mengira = di dalam if validif x = 5 menghasilkan SyntaxError.
  • Lupa besar-kecil huruf pada string"Budi" == "budi" bernilai False.
  • Salah pilih and dan orand butuh semua benar, or cukup salah satu.
  • Membandingkan tipe berbeda tanpa sadar5 == "5" bernilai False karena int dan str berbeda.

Ringkasan

  • Operator perbandingan: ==, !=, >, <, >=, <=
  • Semua perbandingan menghasilkan bool, yaitu True atau False
  • = untuk menyimpan nilai, == untuk membandingkan
  • Perbandingan string bersifat case-sensitive
  • Operator logika: and, or, not
  • Nilai kosong seperti 0, "", dan None dianggap falsy, sisanya truthy

Langkah Selanjutnya

Kamu sekarang bisa membuat kondisi yang menghasilkan True atau False. Kondisi ini jadi bekal penting untuk mengambil keputusan di dalam program.

Artikel selanjutnya membahas Operator Assignment di Python, cara menyimpan nilai dengan lebih ringkas memakai +=, -=, dan operator sejenis.