Penjelasan dan Macam-macam Operator Logika

Posted on   Januari 23, 2018   |   Last Modified   Oktober 9, 2018
Operator Logika

Operator logika digunakan untuk melakukan operasi logika yang akan menghasilkan nilai bertipe Boolean yaitu true dan false. Operator pada operator logika dapat digunakan untuk membandingkan dari dua operand dan ada juga yang dapat membalikan nilai dari sebuah operand.

Tabel Operator Logika :

Operator Keterangan
&& Operasi Logika AND
|| Operasi Logika OR
! Operasi Logika NOT

Operator logika digunakan untuk mengoprasikan operand yang bertipe Boolean dan akan menghasilkan Boolean. Jika operand yang dinyatakan tidak bertipe boolean, misalnya operand memiliki nilai integer 76.

Maka operator akan memperlakukan operand tersebut sebagai Boolean, Dengan ketentuan Jika nilai operand adalah 0 maka akan di anggap sebagai 0 (false) dan jika nilai bukan 0 maka akan dianggap 1 (true) meskipun nilai tersebut bilangan negatif.

Macam-macam Operator Logika

&& Operator Logika AND

Operator logika AND digunakan untuk mengevaluasi dua ekspresi relasi sebagai operand untuk mendapatkan rasional tunggal. Operasi akan menghasilkan nilai 1 (true) jika kedua operand bernilai 1 (true) tapi jika salah satu atau keduanya bernilai (false) maka akan menghasilkan nilai (false).

Di bawah ini adalah tabel dari perbandingan Operator logika AND.

Table Logika AND :

X Y X && Y
True True True
True False False
False True False
False False False

Contoh program :

#include <iostream>
using namespace std;

int main ()
{
    bool a = 1, b = 0;

    cout<< (a && b) <<endl;
    return 0;
}

Contoh Kasus :

Ekspresi Relasi 1 : 4 < 10

Ekspresi Relasi 2 : 7 == 6

Ekspresi Relasi 3 : 9 >= 4

Penggabungan ketiga ekspresi relasi diatas menjadi :

4 < 10 && 7==6 && 9 >= 4

Maka ketiga ekspresi tersebut mempunyai nilai :

Ekspresi Relasi-1 : 4 < 10 (BENAR/1)

Ekspresi Relasi-2 : 7 == 6 (SALAH/0)

Ekspresi Relasi-3 : 9 >= 4 (BENAR/1)

Dari ekspresi relasi tersebut mempunyai 2 nilai BENAR dan 1 nilai SALAH, maka akan menghasilkan:

4 < 10 && 7==6 && 9 >= 4 //(SALAH = 0)

Contoh Program :

#include <iostream>
using namespace std;

int main( ){
   int a, b, c, hasil1, hasil2, hasil3, hasilAkhir;

   cout<<"Masukan Nilai A = ";cin>>a;
   cout<<"Masukan Nilai B = ";cin>>b;
   cout<<"Masukan Nilai C = ";cin>>c;

   hasil1 = a + 4 < 10;
   hasil2 = b > a + 5;
   hasil3 = c - 3 >= 4;
   hasilAkhir = hasil1 && hasil2 && hasil3;

   cout<<"=  Program Ekspresi AND  ="<<endl;
   cout<<"=========================="<<endl;
   cout<<"Hasil dari Hasil1 = a + 4 < 10 adalah "<<hasil1<<endl;
   cout<<"Hasil dari Hasil2 = b > a + 5 adalah "<<hasil2<<endl;
   cout<<"Hasil dari Hasil3 = c - 3 >= 4 adalah "<<hasil3<<endl;
   cout<<"Hasil dari Hasil Akhir = d && e && f adalah "<<hasilAkhir<<endl;

   return 0;
}
Operator Logika OR

Operator logika OR digunakan untuk menghubungkan dua atau lebih ekspresi relasi untuk mendapatkan hasil rasional tunggal, Operator || dibaca sebagai OR, akan dianggap 1 (true), bila salah satu ekspresi relasi yang dibandingkan bernilai 1 (true) dan bila semua ekspresi relasi yang dibandingkan bernilai 0 (false), maka akan bernilai 0 (false).

Baca :   Pernyataan if

Tabel Perbandingan Operator Logika OR

X Y X || Y
True True True
True False True
False True True
False False False

Contoh Program :

#include <iostream>
using namespace std;

int main ()
{
    bool a = 1, b = 0;

    cout<< (a || b) <<endl;
    return 0;
}

Contoh Kasus :

Ekspresi Relasi 1 : 4<10

Ekspresi Relasi 2 : 7==6

Ekspresi Relasi 3 : 9 >= 4

Penggabungan ketiga ekspresi relasi di atas menjadi :

4 < 10 && 7==6 && 9 >= 4

Maka ketiga ekspresi tersebut mempunyai nilai :

Ekspresi Relasi-1 : 4 < 10 (BENAR/1)

Ekspresi Relasi-2 : 7 == 6 (SALAH/0)

Ekspresi Relasi-3 : 9 >= 4 (BENAR/1)

Dari ekspresi relasi tersebut mempunyai 2 nilai BENAR dan 1 nilai SALAH, maka akan menghasilkan :

4 < 10 || 7==6 || 9 >= 4 //(BENAR/1)

Contoh Program :

#include <iostream>
using namespace std;

int main( ){
   int a, b, c, hasil1, hasil2, hasil3, hasilAkhir;

   cout<<"Masukan Nilai A = ";cin>>a;
   cout<<"Masukan Nilai B = ";cin>>b;
   cout<<"Masukan Nilai C = ";cin>>c;

   hasil1 = a + 4 < 10;
   hasil2 = b > a + 5;
   hasil3 = c - 3 >= 4;
   hasilAkhir = hasil1 || hasil2 || hasil3;

   cout<<"=  Program Ekspresi OR  ="<<endl;
   cout<<"=========================="<<endl;
   cout<<"Hasil dari Hasil1 = a + 4 < 10 adalah "<<hasil1<<endl;
   cout<<"Hasil dari Hasil2 = b > a + 5 adalah "<<hasil2<<endl;
   cout<<"Hasil dari Hasil3 = c - 3 >= 4 adalah "<<hasil3<<endl;
   cout<<"Hasil dari Hasil Akhir = d || e || f adalah "<<hasilAkhir<<endl;

   return 0;
}

Cara Kerja operator AND dan OR pada Compiler :

Berdasarkan pernyataan-pernyataan di atas, C++ dalam mengevaluasi hal ini akan menggunakan cara Arus pendek (Short-circuit) yang berarti hanya akan mengevaluasi apa yang diperlukan dari kiri ke kanan. Mendapatkan tujuanya dan mengabaikan sisanya.

Contoh (5==6 && 4>3). C++ akan memproses dan mengevaluasi dari kiri ke kanan apakah 5==6 adalah 0 (false) atau 1 (true) dan jika mempunyai nilai 1 (true) maka akan melanjutkan pemeriksaan ke ekspresi selanjutnya.

Tapi kenyataanya adalah 0 (false) maka pemeriksaan akan berhenti di situ dan mengabaikan sisanya. karena sifat operator AND && yaitu, untuk mendapatkan nilai 1 (true) dibutuhkan semua operand bernilai 1 (true). Sifat tersebut juga akan berlaku ke semua operator logika.

Baca :   Aritmetika pada Pointer

&& : Jika mendapatkan nilai 0 (false) maka langsung menghasikan nilai 0 (False).

|| : Jika mendapatkan nilai 1 (true) maka langsung menghasikan nilai 1 (True).

Contoh Program :

#include <iostream>
using namespace std;

int main( ){
   int a, b, c, hasil1, hasil2, hasil3, hasilAkhir;

   cout<<"Masukan Nilai A = ";cin>>a;
   cout<<"Masukan Nilai B = ";cin>>b;
   cout<<"Masukan Nilai C = ";cin>>c;

   hasil1 = a + 4 < 10;
   hasil2 = b > a + 5;
   hasil3 = c - 3 >= 4;
   hasilAkhir = hasil1 && hasil2 || hasil3;

   cout<<"= Program Ekspresi AND OR ="<<endl;
   cout<<"==========================="<<endl;
   cout<<"Hasil dari Hasil1 = a + 4 < 10 adalah "<<hasil1<<endl;
   cout<<"Hasil dari Hasil2 = b > a + 5 adalah "<<hasil2<<endl;
   cout<<"Hasil dari Hasil3 = c - 3 >= 4 adalah "<<hasil3<<endl;
   cout<<"Hasil dari Hasil Akhir = d && e || f adalah "<<hasilAkhir<<endl;

   return 0;
}
Operator Logika NOT

Operator logika NOT berfungsi membalikan nilai sebenarnya. Jika nilai yang disebutkan bernilai 1 (true) maka akan menghasilkan nilai 0 (false), begitu pula sebaliknya.

Contoh :

!true // Pernyataan bernilai 1 (true) dibalikan dengan operator NOT ‘!’ dan menjadi 0 (false)
!false // Pernyataan bernilai 0 (false) dibalikan dengan operator NOT ‘!’ dan menjadi 1 (true)
!(7==7) // Pernyataan bernilai 1 (true) dibalikan dengan operator NOT ‘!’ dan menjadi 0 (false)
!(9<=2) // Pernyataan bernilai 0 (false) dibalikan dengan operator NOT ‘!’ dan menjadi 1 (true)

Contoh kasus :

Ekspresi Relasi : 4 < 10

Penggunaan umum Operator Logika NOT diatas menjadi;

!( 4 < 10) = 0 //(false)

Ekspresi di atas mempunyai nilai 1 (true) dan jika mengunakan operator logika NOT, maka ekspresi tersebut akan bernilai 0 (false)

Contoh Program :

#include <iostream>
using namespace std;

int main(){
   int A, hasilSebenarnya, hasilNOT;
   cout<<"Masukan Nilai A = "; cin>>a;

    hasilSebenarnya = (a + 5 < 15);
    hasilNOT = !(a + 5 < 15);

   cout<<"= Program Ekspresi NOT ="<<endl;
   cout<<"========================"<<endl;
   cout<<"Nilai A               = "<<a<<endl
   cout<<"Nilai hasilSebenarnya = (a + 4 < 10) = "<<hasilSebenarnya<<endl;
   cout<<"Nilai hasilNOT        = !(hasilSebenarnya) atau !(a + 5 < 15) = "<<hasilNOT;
   return 0;
}


2 Replies to “Penjelasan dan Macam-macam Operator Logika”

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *