Program tidak hanya berisi perhitungan; program juga mengambil keputusan — pembeli lulus syarat diskon atau tidak, stok habis atau masih ada. Tipe bool menyimpan keputusan semacam itu dalam dua nilai saja: True dan False. Chapter ini memperkenalkan tipe boolean beserta fakta mengejutkan yang perlu dipegang sejak dini: bool sesungguhnya adalah bagian dari tipe int.
Nilai True dan False #
Tipe boolean hanya memiliki dua nilai literal, dan keduanya wajib diawali huruf kapital:
lulus = True
selesai = False
print(lulus)
print(selesai)Output yang Dihasilkan:
True
FalsePenulisan true dan false dengan huruf kecil merupakan galat — nama tersebut hanyalah identifier biasa yang belum diberi nilai. Nama tipenya adalah bool, dan True serta False adalah satu-satunya dua nilai yang dimiliki tipe tersebut.
Nilai boolean lahir dari operasi perbandingan seperti ==, !=, <, dan >; pembahasan lengkapnya akan kita dapati pada Section Operator dan Expression. Seberapa sering pun operasinya berubah, hasilnya pasti salah satu dari dua nilai ini.
Sebagai kebiasaan penamaan yang baik, variabel boolean diberi nama yang terdengar seperti pertanyaan ya/tidak: lulus, is_admin, has_permission, atau stok_habis. Nama semacam ini membuat kondisi terbaca alami ketika nanti dipakai pada pernyataan if di Section Control Flow.
bool adalah Subclass dari int #
Fakta yang jarang disadari pemula: bool merupakan subclass dari int. Nilai True terhitung sebagai 1 dan False sebagai 0 dalam konteks bilangan:
print(isinstance(True, int))
print(True + True)
print(True * 10)Output yang Dihasilkan:
True
2
10Mari kita bedah hasil di atas:
- Baris 1 (
print(isinstance(True, int))): menghasilkanTruekarenaboolmemang turunanint— pemeriksaanisinstance()akan kita bahas tuntas pada Chapter Memeriksa Tipe Data. - Baris 2 (
print(True + True)): menghasilkan2karenaTruediperlakukan sebagai1, sehingga1 + 1 = 2. - Baris 3 (
print(True * 10)): menghasilkan10karena operasi tersebut setara dengan1 * 10.
Warisan ini ada karena alasan sejarah: sebelum tipe bool resmi ada di Python 2.3, programmer memakai angka 1 dan 0 sebagai nilai kebenaran. Kehadiran True dan False harus tetap kompatibel dengan kode lama tersebut.
Meskipun bisa, menggabungkan True/False dalam aritmetika membuat niat kode kabur. Gunakan bool untuk logika dan int untuk hitungan.
Konsep Truthy dan Falsy #
Python memperluas gagasan benar-salah ke nilai non-boolean: setiap object bisa dievaluasi sebagai True atau False dalam konteks logika. Nilai yang dianggap False disebut falsy; sisanya dianggap True dan disebut truthy. Fungsi bool() memperlihatkan evaluasi tersebut secara langsung:
print(bool(0), bool(3))
print(bool(""), bool("Budi"))
print(bool(0.0), bool(-0.5))
print(bool(None))
print(bool([]), bool([1, 2]))Output yang Dihasilkan:
False True
False True
False True
False
False TrueNilai-nilai yang tergolong falsy dapat dirangkum dalam tabel berikut:
| Nilai | Kategori |
|---|---|
0, 0.0, 0j | angka nol |
"" (string kosong) | wadah kosong |
None | tanpa nilai |
[] (list kosong) | wadah kosong |
Seluruh nilai lainnya truthy — termasuk string "False" karena string tersebut tidak kosong, dan angka negatif seperti -0.5 karena nilainya bukan nol. Pengetahuan ini akan sangat terpakai ketika kita menulis kondisi if dan while pada Section Control Flow.