Penjelasan dan Macam-macam Operator Logika

Written by: Fajar   |   Updated on: 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 :   Penjelasan dan Kegunaan Final Specifier

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 :   Penjelasan dan Cara Input Output Berbentuk File

&& : 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;
}

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

  1. Heya i’m for the first timе here. I ccame acrooss tһis board and I find
    It really useful & it helped me out a ⅼot. I hope to gige something
    back and help ⲟthеrs like you aided me.

  2. Pretty portion of content. I just stumbled upon your site
    and in accession capital to say that I get in fact loved account your blog posts.
    Anyway, I’ll be subscribing for your augment and even I fulfillment you get admission to persistently quickly.

Tinggalkan Balasan

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