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.
Intisari
and= kedua syarat harus benar ·or= salah satu saja cukup ·not= kebalikannya.- Python menganggap kosong itu salah:
0,"",[],{},Nonesemuanya bernilaiFalse. - Karena itu
if nama:sudah berarti “kalau nama tidak kosong” — tidak perluif nama != "". - Python berhenti mengevaluasi begitu jawabannya pasti (short-circuit) — berguna untuk mencegah error.
- Gabungan
anddanordalam 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")
| Ekspresi | Hasil |
|---|---|
True and True | True |
True and False | False |
True or False | True |
False or False | False |
not True | False |
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 False | Dianggap True |
|---|---|
False | True |
0 dan 0.0 | angka 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.