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 #

csharp
bool aktif = true;
bool sudahBayar = false;

Console.WriteLine(aktif);
Console.WriteLine(sudahBayar);

Output yang Dihasilkan:

text
True
False

Mari kita telaah:

  1. Baris 1-2 (bool aktif = true; ...): Literal boolean hanya dua: true dan false, keduanya ditulis dengan huruf kecil.
  2. Baris 4-5 (Console.WriteLine(...)): Saat dicetak, runtime memanggil ToString() milik bool, sehingga output tampil berawalan kapital: True dan False.

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:

csharp
int stok = 0;
bool tersedia = stok > 0;

Console.WriteLine(tersedia);

stok = 12;
tersedia = stok > 0;

Console.WriteLine(tersedia);

Output yang Dihasilkan:

text
False
True

Compiler 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:

csharp
bool punyaKupon = true;
bool akhirPekan = false;

Console.WriteLine(punyaKupon && akhirPekan);
Console.WriteLine(punyaKupon || akhirPekan);
Console.WriteLine(!punyaKupon);

Output yang Dihasilkan:

text
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:

csharp
bool aktif = 1;
Console.WriteLine(aktif);

Pesan compiler:

text
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.