Hampir setiap program mengambil keputusan: stok masih ada atau sudah habis, pembayaran lunas atau belum, kupon masih berlaku atau sudah kedaluwarsa. Jawaban dua-kemungkinan seperti itu ditampung tipe bool, tipe paling sederhana di C# karena hanya mengenal dua nilai. Bab ini membahas nilai boolean, cara perbandingan menghasilkan bool, dan cara menggabungkan beberapa nilai bool.
Dua Nilai: true dan false #
bool aktif = true;
bool sudahBayar = false;
Console.WriteLine(aktif);
Console.WriteLine(sudahBayar);Output yang Dihasilkan:
True
FalseMari kita telaah:
- Baris 1-2 (
bool aktif = true; ...): Literal boolean hanya dua:truedanfalse, keduanya ditulis dengan huruf kecil. - Baris 4-5 (
Console.WriteLine(...)): Saat dicetak, runtime memanggilToString()milikbool, sehingga output tampil berawalan kapital:TruedanFalse.
bool adalah alias dari struct System.Boolean dan menempati 1 byte memori. Secara konsep satu bit cukup untuk dua kemungkinan, tetapi ukuran terkecil yang dapat dialamatkan memori adalah 1 byte.
Perbandingan Menghasilkan bool #
Nilai bool paling sering muncul sebagai hasil perbandingan. Contoh berikut memakai operator > (lebih besar dari); seluruh operator perbandingan dibedah pada section Operator:
int stok = 0;
bool tersedia = stok > 0;
Console.WriteLine(tersedia);
stok = 12;
tersedia = stok > 0;
Console.WriteLine(tersedia);Output yang Dihasilkan:
False
TrueCompiler mengevaluasi stok > 0 menjadi nilai bool, lalu menyalin hasilnya ke tersedia. Ketika stok bernilai 0, perbandingan menghasilkan False. Setelah stok berubah menjadi 12, perbandingan yang sama menghasilkan True.
Menggabungkan Nilai bool #
Tiga operator logika menggabungkan nilai bool: && (AND), || (OR), dan ! (NOT). Detail lengkapnya ada pada section Operator; di sini kita amati perilaku dasarnya:
bool punyaKupon = true;
bool akhirPekan = false;
Console.WriteLine(punyaKupon && akhirPekan);
Console.WriteLine(punyaKupon || akhirPekan);
Console.WriteLine(!punyaKupon);Output yang Dihasilkan:
False
True
False&& menghasilkan true hanya bila kedua sisi bernilai true; || menghasilkan true bila minimal satu sisi bernilai true; ! membalik nilai di belakangnya. Dari contoh di atas: kupon tanpa akhir pekan gagal pada syarat AND, lolos pada syarat OR, dan pembalikan ! mengubah true menjadi False.
bool Tidak Menerima Angka #
C# tidak menganggap bilangan sebagai nilai boolean. Deklarasi berikut ditolak compiler:
bool aktif = 1;
Console.WriteLine(aktif);Pesan compiler:
Program.cs(1,14): error CS0029: Cannot implicitly convert type 'int' to 'bool'Salinan lengkap pesan memuat path project; bagian itu dipangkas agar ringkas. Berbeda dengan sebagian bahasa lain yang menerima nol dan bukan nol sebagai false dan true, C# menuntut nilai boolean murni. Pemisahan tegas ini mencegah kebingungan antara angka dan keputusan.