- Logika and (&&) : Dua kondisi harus benar
- Logika or (||) : Salah satu kondisi harus benar.
- Logika not (!) : Membalikkan nilai dari kondisi benar menjadi salah, atau sebaliknya.
Operator and (&&) dan or (||) bisa diletakkan di antara 2 kondisi. Berbeda dengan 2 operator lainnya, operator not (!) hanya memerlukan satu kondisi. Jika terdapat beberapa kondisi, kalian bisa menyatukannya di dalam tanda kurung.
Operator-operator tersebut bisa digunakan di dalam percabangan maupun perulangan. Tapi, sebagai bagian dari penjelasannya, saya hanya akan memberikan contoh kodenya untuk percabangan saja.
And (&&)
#include <iostream>
using namespace std;
int main(){
int angka=0;
cout << "angka : ";cin >> angka;
if((angka%2==0) && (angka >0))
cout <<"angka genap dan positif";
else cout <<"angka lainnya";
return 0;
}
angka : 24 angka genap dan positif
Contoh di atas mengharuskan variabel bernilai genap dan lebih dari 0. Kalau kalian memasukkan nilai yang hanya memenuhi salah satu kondisi, maka outputnya akan berbeda.
angka : -24 angka lainnya
Kalian bisa mencoba memasukkan angka lain untuk melihat hasil yang berbeda.
Operator Or
Operator logika Or hanya mengharuskan salah satu kondisinya saja yang terpenuhi. Jika salah satu kondisi salah, maka statement tetap akan dieksekusi. Jika kedua kondisi salah, maka statement tidak akan dieksekusi.
#include <iostream>
using namespace std;
int main(){
int angka=0;
cout << "angka : ";cin >> angka;
if((angka%2==0) || (angka >0))
cout <<"angka genap atau mungkin angka positif";
else cout <<"angka lainnya";
return 0;
}
angka : 5 angka genap atau mungkin positif
Angka lima (5) hanya memenuhi salah satu syarat dalam kondisi if. Walaupun angkanya bukan genap, output milik if tetap dicetak. Jika kalian memasukkan angka negatif yang tidak memenuhi semua kondisi, maka outputnya adalah output yang dimiliki statement else.
angka : -5 angka lainnya
Operator Not
Seperti artinya, operator not digunakan untuk membalikkan nilai dari kondisi yang dibutuhkan. Kalian perlu mengapit kondisi yang akan diberi operator not dengan tanda kurung. Supaya lebih mudah, saya copas saja contoh yang menggunakan operator logika and.
#include <iostream>
using namespace std;
int main(){
int angka=0;
cout << "angka : ";cin >> angka;
if(!(angka%2==0) && !(angka >0))
cout <<"bukan angka genap dan bukan angka positif";
else cout <<"angka lainnya";
return 0;
}
angka : 5 bukan angka genap dan bukan angka positif
Contoh di atas hanya diberi tambahan dua operator not setelah saya copas dari contoh operator &&(and).
Tipe Boolean
Selain menggunakannya operator relasional dan operator logika dalam perulangan kalian juga bisa menyimpan hasil dari perbandingan ke dalam variabel bertipe boolean. Nilai variabel bertipe boolean menyimpan hasil perbandingan sebagai angka 0 jika salah, dan 1 jika benar. Walaupun ditampilkan sebagai angka, kalian bisa memberikan nilai true dan false pada variabel bertipe boolean.
#include <iostream>
using namespace std;
int main(){
int angka=5;
bool benar = true;
bool salah = false;
bool perbandingan=angka%2==0 && angka > 0;
cout << "angka : " << angka << endl;
cout << "benar : " << benar << endl;
cout << "salah : " << salah << endl;
cout << "angka % 2 == 0 && angka > 0 hasilnya adalah " << perbandingan << endl;
}
angka : 5 benar : 1 salah : 0 angka % 2 == 0 && angka > 0 hasilnya adalah 0
Btw, kalian bisa menggunakan variabel bertipe data boolean sebagai kondisi di dalam perulangan. Kalau kalian penasaran, kalian bisa coba mengganti kondisi di dalam perulangan dengan satu variabel bertipe boolean.