Operator Logika dan Perbandingan

Dalam perulangan dan Percabangan, ada beberapa operator yang bisa kita gunakan dalam kondisinya. Operator-operator tersebut adalah operator perbandingan dan Operator logika. Berikut ini adalah beberapa operator perbandingan yang bisa kita gunakan.
  1. < (kurang dari)
  2. > (lebih dari)
  3. == (sama dengan)
  4. <= (kurang dari sama dengan)
  5. >= (lebih dari sama dengan)
  6. !=  (tidak sama dengan)
Operator logika digunakan untuk membandingkan dua nilai, baik itu dari variabel maupun bilangan yang ditulis langsung. Kalian bisa menggunakan operator perbandingan sebagai bagian dari kondisi untuk perulangan atau percabangan.

Oh ya, jangan sampai salah tulis "==" menjadi "="!
Kegunaannya dedua operator tersebut berbeda. Operator "==" digunakan untuk perbandingan, sedangkan "=" digunakan untuk memberi nilai pada variabel.

Berikut ini adalah operator logika yang bisa kita gunakan.
  1. && (And)
  2. || (Or)
  3. ! (not)
AND
A && B Hasil
TRUE && TRUE TRUE
FALSE && TRUE FALSE
FALSE && FALSE FALSE
TRUE && FALSE FALSE

OR
A || B Hasil
TRUE || TRUE TRUE
FALSE || TRUE TRUE
FALSE ||FALSE FALSE
TRUE || FALSE TRUE

Operator || dan && bisa kita gunakan untuk menghubungkan dua kondisi atau lebih. && mengharuskan semua kondisi terpenuhi atau bernilai benar. Contohnya adalah seperti di bawah ini.
#include <stdio.h>

int main(){
int x=2, y=3;
    printf("Jika 2 >= 3 dan 3 >= 3 \nHasil : ");
    if(x>=3 && y>=3){
        printf("Benar");
    }else{
        printf("Salah");
    }

    return 0;
}

Pada contoh di atas, kita menggunakan operator && (and / dan). && mengharuskan semua perbandingan dalam kondisi untuk bernilai benar. Perbandingan "x>=3" bernilai salah karena variabel x bernilai 2, .Karena salah satu perbandingan dalam kondisi bernilai salah, maka kondisi dalam if tidak terpenuhi walaupun perbandingan lainnya bernilai benar. Bandingkan dengan kode program di bawah ini yang menggunakan || (or / atau) !
#include <stdio.h>

int main(){
int x=2, y=3;
    printf("Jika 2 >= 3 atau 3 >= 3 \nHasil : ");
    if(x>=3 || y>=3){
        printf("Benar");
    }else{
        printf("Salah");
    }

    return 0;
}

Hasil yang ditampilkan adalah "Benar" karena || hanya mengharuskan salah satu perbandingan saja yang bernilai benar. Dalam contoh di atas "y>=3" bernilai benar karena nilai variabel y adalah 3.

Seperti halnya operator perbandingan, operator logika bisa digunakan dalam percabangan maupun perulangan. Kalau perlu, kalian juga bisa menggunakan lebih dari satu operator logika di dalam kondisi percabangan atau perulangan.
#include <stdio.h>

int main(){
int x=0, y=5;
    while(x<5 && y>0){
        printf("Jika (%d != 3 atau %d != 3) dan %d < %d \nHasil : ", x, y, x, y);
        if((x!=3 || y!=3) && x<y){
            printf("Benar\n\n");
        }else{
            printf("Salah\n\n");
        }
        x++;
        y--;
    }
    return 0;
}

Btw, kalau kalian mencoba hilangkan tanda kurung yang mengapit dua kondisi pertama dalam percabangan dari kode program di atas, mungkin kalian akan menemukan hal menarik terkait urutan pengerjaan dan hirarki operator.