Operator Logika


Hallo sahabat blogger, setelah pada artikel2 sebelumnya, kita telah membahas beberapa Operator yang ada dalam Bahasa Pemrograman C, sekarang saya akan menulis artikel tentang Operator Logika yang ada dalam Bahasa Pemrograman C.

Operator Logika biasanya digunakan untuk membandingkan dua buah operasi dari Operator Hubungan. Untuk yang belum baca tentang Operator Hubungan, silahkan klik link berikut ini. Artinya, Operator Hubungan digunakan untuk membandingkan 2 buah operand, sedangkan Operator Logika digunakan untuk membandingkan Hasil dari Operator Hubungan. Cara membandingkan dan bentuk Hasil dari dua jenis Operator ini tentu juga sama, yakni menghasilkan nilai numerik 1 atau 0. Karena pada dasarnya nilai 1 atau 0 merupakan nilai logika dari operator hubungan.

Berikut ini Operator-operator Logika yang disediakan dalam bahasa Pemrograman C:

Operator        Jenjang                 Keterangan
&&                      11                Logika Dan (AND)
||                       12                 Logika Atau (OR)

Selain yang ada di atas, ada juga operator Logika NOT (!), namun Operator ‘!’ juga dapat dikategorikan sebagai Operator Unary seperti yang dikatakan pada pembahasan kita sebelumnya tentang operator Unary. Operator NOT ini hanya digunakan untuk sebuah operand saja. Operator ini akan membalikkan logika Benar menjadi Salah, dan Salah menjadi Benar, dengan kata lain, logika 1 menjadi 0 atau 0 menjadi 1. Di bawah ini akan saya berikan tabel kebenaran dari logika AND, OR dan NOT sebagai dasar pemahaman kita tentang operasi Logika ini.

X     Y     X && Y     X || Y   !X     !Y     !(X&&Y)    !(X||Y)

0     0          0              0        1      1           1                1
0     1          0              1        1      0           1                0
1     0          0              1        0      1           1                0
1     1          1              1        0      0           0                0

Seperti yang dilihat pada bagian atas ini, Logika AND (X && Y) akan menghasilkan nilai TRUE atau 1 jika kedua nilai Logika bernilai True atau 1, selain itu akan False atau 0. Logika OR (X || Y), akan bernilai FALSE jika kedua nilai logika yang dibandingkan adalah FALSE atau 0, selain itu akan bernilai TRUE atau 1. Logika NOT X (!X) akan membalikkan nilai logika dari X, jika 1 menjadi 0, 0 menjadi 1, begitupun yang ditemukan untuk Logika NOT Y (!Y). Logika NOT AND (!(X && Y)) akan menghasilkan nilai FALSE jika kedua nilai logika yang dibandingkan bernilai TRUE atau 1, selain dari itu akan bernilai TRUE. Logika NOT OR (!(X || Y)) aka menghasikan nilai TRUE jika kedua nilai logika yang dbandingkan bernilai FALSE atau 0, selain dari itu akan bernilai FALSE. Logika NOT AND dan NOT OR dalam logika matematika sering disebut sebagai Logika NAND dan NOR.

Jika X=10, Y=5, Z = ‘z’, maka cobalah kita Perhatikan bagan berikut!

bagan

Dari bagan ditunjukkan sebuah ungkapan X>Y || Y==5 && Z!=’z’ dan hasil logikanya adalah 1. Berikut ini step by step sehingga bisa di dapatkan nilai logika 1 tersebut.

  1. Seperti yang kita ketahui bahwa Operator Hubungan mempunyai jenjang lebih tinggi dari Operator Logika. Sehingga yang pertama dikerjakan adalah operator Hubungan yakni, X>Y akan bernilai 1. Karena nilai X=10 dan Y=5, sehingga 10 benar lebih besar dari 5. Selanjutnya ungkapan Y==5 akan bernilai logika 1 karena Y benar bernilai 5. Lalu Z != ‘z’ akan menghasilkan logika 0, karena Z bernilai ‘z’. Dari uraian ini didapatkan ungkapan baru dari ungkapan X>Y || Y==5 && Z==’z’, yakni 1 || 1 && 0.
  2. Langkah selanjutnya, jenjang dari Logika And lebih besar dari Logika OR, sehingga yang dikerjakan terlebih dahulu adalah Logika And, sehingga 1 && 0 akan menghasilkan logika 0 (lihat tabel kebenaran di atas).
  3. Selanjutnya tersisa ungkapan 1 || 0, yang menghasilkan nilai logika 1 (TRUE).

Dari Uraian di atas, dapat disimpulkan bahwa jenjang dari operator sangatlah penting untuk kita pahami, karena bagaimana pun jenjang ini akan dapat membedakan hasil dari apa yang kita harapkan. Sebagai contoh jika kita menggunakan operator ‘()’ pada ungkapan yang ada pada bagan di atas menjadi (X>Y || Y==5) && Z =’z’, tentulah hasil ini akan berbeda dari hasil sebelumnya, karena jenjang operator Logika OR menjadi lebih tinggi dengan logika And. Buktinya, (X>Y || Y==5) && Z=’z’  –> (1 || 1) && 0  –>  1 && 0  –> 0. Oleh karena itu perhatikan jenjang operator ini ketika membuat program yah… hehhehe… :)

OK, untuk membuktikan apa yang kita bahas di atas, silahkan tulis kode program di bawah ini menggunakan editor dari kompiler bahasa C masing-masing.

/*
NAMA : LOGIKA.c
FUNGSI: Menggunakan Operator Logika
*/

#include <stdio.h>

main()
{
int X, Y;
char Z;
char hasil1, hasil2;

X=10;
Y=5;
Z=’z';

hasil1 = X>Y || Y==5 && Z!=’z';
hasil2 = (X>Y || Y==5) && Z!=’z';

printf(“Nilai Logika dari X>Y || Y==5 && Z!=’z’ adalah %d\n”, hasil1);
printf(“Nilai Logika dari (X>Y || Y==5) && Z!=’z’ adalah %d\n”,hasil2);
}

Berikut Screen Kode Programnya pada terminal Linux.

Screen Kode Program Logika.c

Jika dikompile dan dijalankan , hasilnya sebagai berikut:

Nilai Logika dari X>Y || Y==5 && Z!=’z’ adalah 1
Nilai Logika dari (X>Y || Y==5) && Z!=’z’ adalah 0

Berikut Screen dari program ketika dijalankan di terminal linux.

Screen Hasil Logika

Selamat mencoba, semoga artikel ini bermanfaat, terima kasih :)

About these ads

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s