← Semua pembelajaran / Python Dasar
Fase 2 · Percabangan

and, or, not — dan Nilai yang Dianggap Salah

Satu syarat jarang cukup. Ini cara menggabungkannya — dan satu aturan Python yang membuat kode jadi jauh lebih pendek.

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

Intisari

  • and = kedua syarat harus benar · or = salah satu saja cukup · not = kebalikannya.
  • Python menganggap kosong itu salah: 0, "", [], {}, None semuanya bernilai False.
  • Karena itu if nama: sudah berarti “kalau nama tidak kosong” — tidak perlu if nama != "".
  • Python berhenti mengevaluasi begitu jawabannya pasti (short-circuit) — berguna untuk mencegah error.
  • Gabungan and dan or dalam satu baris: beri kurung supaya maksudnya jelas.

Tiga operator logika

umur = 25
punya_ktp = True

if umur >= 17 and punya_ktp:          # DUA-DUANYA harus benar
    print("Boleh mendaftar")

if umur < 17 or not punya_ktp:        # SALAH SATU cukup
    print("Belum bisa mendaftar")
EkspresiHasil
True and TrueTrue
True and FalseFalse
True or FalseTrue
False or FalseFalse
not TrueFalse

Python memakai kata, bukan simbol. Kalau kamu datang dari bahasa lain, ganti kebiasaanmu: && → and, || → or, ! → not.

Contoh sehari-hari

hari = input("Hari apa? ").lower()
jam = int(input("Jam berapa? "))

buka = hari != "minggu" and 9 <= jam < 17

if buka:
    print("Toko buka")
else:
    print("Toko tutup")

Beri kurung saat mencampur and dan or

# Ambigu bagi pembaca — and dievaluasi lebih dulu daripada or
if umur > 60 or umur < 12 and punya_pendamping:
    ...

# Maksudmu yang mana? Tulis dengan kurung supaya tidak ada tebak-tebakan.
if umur > 60 or (umur < 12 and punya_pendamping):
    ...

Aturan “kosong itu salah”

Ini bagian yang membuat kode Python jadi ringkas. Nilai-nilai berikut dianggap False saat dipakai sebagai kondisi, tanpa perlu dibandingkan dengan apa pun:

Dianggap FalseDianggap True
FalseTrue
0 dan 0.0angka lain, termasuk negatif
"" (teks kosong)teks apa pun yang ada isinya
[] {} () (kosong)yang ada isinya
None—

Akibatnya, dua kode ini punya arti sama — dan yang bawah adalah cara Python:

nama = input("Nama: ")

if nama != "":                 # panjang
    print(f"Halo {nama}")

if nama:                       # cara Python — "kalau nama ada isinya"
    print(f"Halo {nama}")

if not nama:                   # "kalau nama kosong"
    print("Nama wajib diisi")

Hati-hati dengan angka nol. if jumlah: akan bernilai salah ketika jumlah adalah 0 — dan kadang nol itu justru nilai yang sah. Kalau yang kamu maksud adalah “variabelnya belum diisi”, tulis eksplisit: if jumlah is None:.

Short-circuit: berhenti kalau sudah pasti

Pada a and b, kalau a sudah salah, b tidak akan diperiksa sama sekali — jawabannya sudah pasti salah. Ini bukan sekadar hemat waktu, tapi cara mencegah error:

teks = ""

# Aman: kalau `teks` kosong, bagian kanan tidak pernah dijalankan
if teks and teks[0] == "A":
    print("Diawali huruf A")

# Berbahaya: teks[0] pada teks kosong → IndexError
if teks[0] == "A":
    print("Diawali huruf A")

Pola yang sama berlaku untuk or: kalau bagian kiri sudah benar, bagian kanan dilewati.

Latihan: buat validasi pendaftaran. Minta nama, umur, dan email. Tolak kalau nama kosong, umur di luar 5–100, atau email tidak mengandung @. Tampilkan pesan yang menyebutkan bagian mana yang salah, bukan sekadar “data tidak valid”.

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