Program membuat keputusan setiap saat: sistem ujian menentukan siswa lulus atau tidak, toko online memberi gratis ongkir bila total belanja mencapai batas tertentu. Semua keputusan itu berawal dari pertanyaan benar atau salah, dan operator perbandingan adalah alat untuk mengajukan pertanyaan tersebut kepada data.
Enam Operator Perbandingan #
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
== | Sama dengan | 5 == 5 | true |
!= | Tidak sama dengan | 5 != 3 | true |
> | Lebih besar dari | 7 > 3 | true |
< | Lebih kecil dari | 7 < 3 | false |
>= | Lebih besar atau sama dengan | 7 >= 7 | true |
<= | Lebih kecil atau sama dengan | 7 <= 6 | false |
Bedakan == dengan =. Operator == membandingkan dua nilai tanpa mengubah keduanya, sedangkan = menyimpan nilai ke variabel. Menukar keduanya adalah salah satu kesalahan yang paling sering dialami pemula.
Hasil Selalu Bertipe bool #
Setiap expression perbandingan menghasilkan satu nilai bool: true atau false. Nilai itu bisa langsung dicetak, disimpan ke variabel, atau dipakai sebagai kondisi pada bagian control flow.
int nilaiA = 85;
int nilaiB = 70;
Console.WriteLine(nilaiA > nilaiB);
Console.WriteLine(nilaiA < nilaiB);
Console.WriteLine(nilaiA >= 85);
Console.WriteLine(nilaiA <= 84);
Console.WriteLine(nilaiA == 85);
Console.WriteLine(nilaiA != nilaiB);Output yang Dihasilkan:
True
False
True
False
True
TrueMari kita telaah baris demi baris:
- Baris 1-2 (
nilaiA,nilaiB): Dua variabel skor diisi85dan70sebagai data pembanding. - Baris 4 (
nilaiA > nilaiB): Nilai85lebih besar dari70, sehingga hasilnyaTrue. - Baris 5 (
nilaiA < nilaiB): Pernyataan85 < 70tidak benar, sehingga hasilnyaFalse. - Baris 6 (
nilaiA >= 85): Nilai85memenuhi syarat “lebih besar atau sama dengan 85”, hasilnyaTrue. - Baris 7 (
nilaiA <= 84): Nilai85tidak memenuhi “lebih kecil atau sama dengan 84”, hasilnyaFalse. - Baris 8-9 (
==dan!=): Nilai85sama dengan85sehingga menghasilkanTrue, dan85berbeda dari70sehingga!=juga menghasilkanTrue.
Membandingkan string #
Operator == juga berlaku untuk string. Perbandingan string di C# bersifat case-sensitive: perbedaan huruf besar dan huruf kecil membuat dua teks dianggap berbeda.
Console.WriteLine("Jakarta" == "jakarta");
Console.WriteLine("Budi" == "Budi");Output yang Dihasilkan:
False
TrueBaris pertama menghasilkan False karena huruf J besar berbeda dari j kecil. Bila perbandingan tanpa memedulikan besar-kecil huruf dibutuhkan, gunakan method string.Equals dengan opsi StringComparison.OrdinalIgnoreCase; perbandingan string dibahas lebih rinci pada bagian string.
Perbandingan Bilangan Real #
Operator == pada tipe double perlu dipakai dengan hati-hati. Bilangan real disimpan dalam format biner yang tidak selalu mampu merepresentasikan nilai desimal dengan tepat, sehingga dua nilai yang secara hitungan seharusnya sama bisa berbeda sedikit dari yang kita harapkan:
double hasil = 0.1 + 0.2;
Console.WriteLine(hasil);
Console.WriteLine(hasil == 0.3);Output yang Dihasilkan:
0.30000000000000004
FalseVariabel hasil tidak menyimpan 0.3 yang murni, melainkan nilai terdekat yang dapat ditampung format biner, yaitu 0.30000000000000004. Akibatnya perbandingan hasil == 0.3 menghasilkan False, meskipun hitungan di atas kertas menyatakan keduanya sama. Untuk membandingkan bilangan real, gunakan toleransi: periksa apakah selisih kedua nilai lebih kecil dari batas yang dapat diterima, misalnya Math.Abs(hasil - 0.3) < 0.0001.