Logika · Pelajaran 5 dari 9
Logika AND, OR, dan NOT
8 menit baca · BelajarCode
Dalam logika, pernyataan adalah kalimat yang bisa dinilai benar atau salah. "Jakarta adalah ibu kota Indonesia" adalah pernyataan. "Tutup pintunya!" bukan pernyataan, karena tidak bisa dinilai benar atau salah.
Komputer mengambil keputusan dengan menggabungkan pernyataan memakai tiga operator dasar:
| Operator | Di Python | Benar jika | Contoh sehari-hari |
|---|---|---|---|
| AND (dan) | and | Kedua pernyataan benar | Boleh masuk jika punya tiket dan membawa kartu pelajar |
| OR (atau) | or | Minimal satu pernyataan benar | Libur jika hari Minggu atau tanggal merah |
| NOT (bukan) | not | Pernyataannya salah | Bawa payung jika tidak cerah |
1punya_tiket = True2bawa_kartu = False3print("Boleh masuk:", punya_tiket and bawa_kartu)45hari_minggu = False6tanggal_merah = True7print("Libur:", hari_minggu or tanggal_merah)89cerah = False10print("Bawa payung:", not cerah)Boleh masuk: False Libur: True Bawa payung: True
Urutan pengerjaan
Seperti perkalian sebelum penjumlahan, not dikerjakan lebih dulu, lalu and, terakhir or. Pakai tanda kurung supaya maksudnya jelas.
1a = True2b = False3c = True4print(a or b and not c)5print((a or b) and not c)True False
Baris pertama dibaca a or (b and (not c)), sedangkan baris kedua memaksa or dikerjakan lebih dulu.
Logika dalam percabangan
1nilai = 822hadir = 923if nilai >= 80 and hadir >= 90:4 print("Berhak ikut lomba")5else:6 print("Belum memenuhi syarat")Berhak ikut lomba
Cek pemahaman
Jika x = 5, apa hasil dari x > 3 and x < 4?
Latihan
Syarat beasiswa
Sebuah beasiswa diberikan jika rata-rata nilai minimal 85 dan siswa aktif berorganisasi, atau jika siswa memenangkan lomba tingkat provinsi. Tulis ekspresi Python-nya, lalu uji dengan tiga siswa berikut: (90, aktif, belum juara), (80, aktif, juara provinsi), (88, tidak aktif, belum juara).
Pembahasan
1def dapat_beasiswa(rata, aktif, juara_provinsi):2 return (rata >= 85 and aktif) or juara_provinsi34print(dapat_beasiswa(90, True, False))5print(dapat_beasiswa(80, True, True))6print(dapat_beasiswa(88, False, False))True True False
Siswa ketiga nilainya tinggi, tetapi tidak aktif berorganisasi dan belum juara, sehingga tidak memenuhi kedua jalur.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.