Operasi Boolean
Penggunaan 'bool' dalam pengambilan keputusan
Masih ingat kan tipe data bool? Bool dapat menyimpan nilai true dan false saja, ya sama seperti operator relasional, kita juga bisa menggunakan bool sebagai kondisi. Coba perhatikan kode berikut, yang menentukan jika pemain punya poin yang cukup untuk memenangkan suatu level dalam game:
int skor = 45; // Idealnya, nilai ini akan selalu berubah sepanjang permainan
int poinYangDibutuhkanUntukMenang = 100;
bool levelSelesai;
if (skor >= poinYangDibutuhkanUntukMenang)
levelSelesai = true;
else
levelSelesai = false;
if (levelSelesai)
{
Console.WriteLine("Kamu telah memenangkan level ini!");
}Masih ingat juga kan bahwa operator relasional menghasilkan nilai true atau false, atau bisa disebut nilai bool— yang berarti bahwa kalian dapat menggunakan operator relasional seperti == atau > untuk mengisi sebuah variabel bool:
int skor = 45; // Idealnya, nilai ini akan selalu berubah sepanjang permainan
int poinYangDibutuhkanUntukMenang = 100;
bool levelSelesai = (skor >= poinYangDibutuhkanUntukMenang);
if (levelSelesai)
{
Console.WriteLine("Kamu telah memenangkan level ini!");
}Operator Relasional
Mari kita membahas cara lain untuk menentukan kondisi. Sejauh ini kita hanya menggunakan operator == untuk mengecek apakah dua hal benar-benar setara, tetapi sebenarnya masih ada yang lain.
Operator == yang sudah kita tahu sebenarnya hanyalah salah satu dari beberapa operator relasional, yang hanya merupakan istilah keren dari “operator yang membandingkan dua hal”. Jadi masih ada yang lainnya lagi.
Contohnya operator !=, untuk mengecek apakah dua hal tidak setara/sama satu sama lain. Kalian menggunakan ini sama seperti kalian menggunakan operator ==, tetapi hasilnya akan menjadi kebalikannya:
if (nilai != 100)
{
// Kode yang ditulis disini hanya akan dijalankan ketika nilai tidak sama dengan 100
}Lalu ada lagi operator > dan <, yang akan menentukan bahwa sesuatu lebih besar atau lebih kecil dari lainnya. Sama seperti di matematika:
if (nilai > 90)
{
// Kode ini hanya akan dijalankan ketika nilai lebih dari 90
Console.WriteLine("Selamat kamu mendapat nilai A!");
}
else if (nilai < 60)
{
// Kode ini hanya akan dijalankan ketika nilai kurang dari 60
Console.WriteLine("Maaf kamu dapat nilai D");
}Ketika kalian menggunakan kode di atas mungkin kalian sadar, ketika nilainya 90, maka tidak ada pesan, itu karena 90 itu masih tidak lebih dari 90.
Yang mana membawa kita pada operator berikutnya, yaitu >= dan <=. Kedua operator ini masing-masing berarti “lebih dari sama dengan” dan “kurang dari sama dengan”.
if (nilai >= 90)
{
// Kode ini akan dijalankan ketika nilai adalah 90 atau lebih
// Terlihat mirip dengan contoh sebelumnya karena bedanya hanya disini 90 juga termasuk
Console.WriteLine("Selamat kamu mendapat nilai A!");
}Di matematika mungkin kalian pernah menggunakan simbol ≤ dan ≥, tetapi karena simbolsimbol ini tidak ada di keyboard, C# menggunakan <= dan >=.
Operator '!' (NOT)
Operator ‘!’ merupakan operator logika NOT, yang akan membalikkan nilai boolean apa pun, jadi jika suatu boolean bernilai true jika menggunakan operator ini maka nilainya menjadi false, begitu juga sebaliknya. Untuk mengilustrasikan:
if (!(nilai > 90))
{ }
// Kode diatas sama saja seperti:
if (nilai <= 90)
{ }Operator '&&' dan '||' (AND dan OR)
Ada banyak hal yang dapat membuat kondisi kalian menjadi rumit. Contohnya, bayangkan kalian sedang membuat game, di mana pemainnya mengendalikan pesawat luar angkasa yang memiliki perisai dan armor, pemainnya hanya akan mati jika keduanya, yaitu perisai dan armornya hancur. Di sini berarti kalian harus mengecek dua hal, bukan hanya satu.
Di sinilah conditional operator akan membantu. C# memiliki sebuah operator AND, yang ditulis seperti ini: &&, dan operator OR yang ditulis seperti ini: || (simbol ‘|’ yang di beberapa keyboard ada di atas tombol enter, dan perlu menekan shift dulu) Kalian dapat mengecek beberapa hal sekaligus menggunakan operator ini:
int perisai = 50;
int armor = 20;
if (perisai <= 0 && armor <= 0)
Console.WriteLine("Kau kalah");Ada satu hal lagi yang perlu disebutkan, yaitu di kedua contoh ini, komputer akan melakukan lazy evaluation. Jadi ini berarti komputer tidak akan mengecek bagian kedua kecuali dibutuhkan. Jadi di contoh di atas, komputer akan selalu mengecek apakah perisai lebih dari 0, tetapi komputer hanya akan mengecek apakah armor lebih dari 0 hanya jika perisai kurang atau sama dengan 0
Jika kalian menggabung gabungkan ini dengan banyak, keterbacaan kodenya akan semakin menurun, jadi kodenya akan semakin susah dibaca. Yang membawa kita pada bagian selanjutnya, yang dapat memberi alternatif yang mungkin dapat menjadikan kode lebih mudah dibaca.
Last updated