← Semua pembelajaran / Python Dasar
Fase 2 · Percabangan

Operator Perbandingan

Kondisi di dalam if selalu berujung pada satu jawaban: benar atau salah. Ini alat untuk menghasilkannya.

Sumber asli docs.python.org Resmi Rangkuman ~4 menit baca

Intisari

  • == sama dengan · != tidak sama · > < >= <=.
  • Satu = menyimpan, dua == membandingkan. Ini kesalahan paling umum sedunia.
  • Perbandingan boleh dirangkai: 0 <= nilai <= 100 — sah dan enak dibaca di Python.
  • in mengecek keanggotaan: "a" in "apel", 3 in [1, 2, 3].
  • Angka dan teks tidak bisa dibandingkan besar-kecil: 5 > "3" menghasilkan TypeError.

Enam operator

OperatorArtiContohHasil
==sama dengan5 == 5True
!=tidak sama dengan5 != 3True
>lebih besar5 > 3True
<lebih kecil5 < 3False
>=lebih besar atau sama5 >= 5True
<=lebih kecil atau sama3 <= 5True

Setiap perbandingan menghasilkan True atau False — nilai yang bisa disimpan seperti nilai lain:

lulus = nilai >= 70
print(lulus)             # True atau False
print(type(lulus))       # <class 'bool'>

if lulus:
    print("Selamat!")

Satu = versus dua ==

x = 5        # SIMPAN 5 ke dalam x
x == 5       # TANYA: apakah x sama dengan 5? → True

Kalau tertukar, Python menolak menjalankan kodenya:

if nilai = 70:
    print("pas")
# SyntaxError: invalid syntax. Maybe you meant '==' instead of '='?

Python bahkan menebak maksudmu di pesan errornya. Baca pesan error sampai habis — sering kali jawabannya sudah ada di sana.

Membandingkan teks

"budi" == "budi"      # True
"Budi" == "budi"      # False  ← huruf besar/kecil dibedakan!
"apel" < "jeruk"      # True   ← urutan abjad

Perbandingan huruf besar/kecil ini sering merepotkan saat memproses input pengguna. Solusi standarnya: samakan dulu.

jawab = input("Lanjut? (ya/tidak) ")

if jawab.lower() == "ya":       # menerima "Ya", "YA", "yA"
    print("Oke, lanjut")

Merangkai perbandingan

Python mengizinkan penulisan seperti di buku matematika — tidak semua bahasa bisa begini:

nilai = 85

if 0 <= nilai <= 100:
    print("Nilai valid")

# Di bahasa lain harus ditulis panjang seperti ini,
# dan di Python pun tetap sah:
if nilai >= 0 and nilai <= 100:
    print("Nilai valid")

in — apakah ada di dalamnya?

"a" in "apel"                    # True
"xyz" in "apel"                  # False
3 in [1, 2, 3]                   # True
"budi" in ["ani", "budi"]        # True

if "@" not in email:
    print("Email tidak valid")

Operator in ini akan jadi salah satu yang paling sering kamu pakai — untuk teks, list, maupun dictionary.

Yang tidak bisa dibandingkan

5 == "5"        # False — beda tipe, jadi tidak sama. Ini aman.
5 > "3"         # TypeError: '>' not supported between 'int' and 'str'

Menanyakan “sama atau tidak” pada tipe berbeda selalu boleh, jawabannya False. Tapi menanyakan “lebih besar mana” antara angka dan teks tidak punya arti, jadi Python menolaknya. Kalau ini terjadi pada data dari input(), penyebabnya hampir pasti lupa int().

Latihan: buat program login sederhana. Simpan satu username dan password di variabel, minta pengguna memasukkannya, lalu balas “berhasil” atau “gagal”. Buat username tidak sensitif huruf besar/kecil, tapi password sensitif.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.