Operator logika
operator logika mirip dengan operator pembanding, hanya perbedaanya adalah jika operator pembanding yang di bandingkan adalah 2 buah data yang tipe datanya terserah (bisa int, double, float, dll), namun hasilnya berupa boolean. Jika operator Logika adalah operator yang membandingkan beberapa data (bisa lebih dari 2 atau lebih pembandingnya), dan yang dibandingkan harus berupa tipe data boolean.
Jadi intinya operator logika yang dibandingkan adalah beberapa data yang menggunakan tipe data boolean, jadi data yang dibandingkan hanya berupa true atau false
Macam-macam operator logika
Tabel operator logika
Operator | Keterangan |
&& | dan |
|| | atau |
Tabel pembanding dengan operator logika && atau dan
Nilai 1 | Operator | Nilai 2 | Hasil |
true | && | true | true |
true | && | false | false |
false | && | true | false |
false | && | false | false |
INGAT !! Untuk perator logika ' && ' (dan). Data yang di bandingkan akan bernilai true jika hanya kedua pembanding bernilai true , jika salah satu saja bernilai false , maka hasilnya akan false
Biar kita gak bingung mastah perlu mempraktekanya dan meng compile hasilnya langsung, berikut saya akan contohkan dan bahas pelan-pelan.
public class belajarOperatorLogika{
public static void main(String[]args){
int nilaiMatematika = 70;
int nilaiFisika = 80;
int nilaiKimia = 90;
boolean a = nilaiMatematika > nilaiFisika && nilaiFisika < nilaiKimia;
boolean b = nilaiMatematika < nilaiFisika && nilaiFisika < nilaiKimia;
//Jika di jalankan/ di compile maka
System.out.println(a); //hasilnya false
System.out.println(b); //hasilnya true
}
}
boolean a = 70 lebih besar 80 dan 80 lebih kecil dari 90a = false && truea = false
kenapa hasilnya false ? karena untuk berdasarkan tabel pembanding di atas jika menggunakan pembanding && (dan) , hasilnya akan true jika kedua pembanding bernilai true , jika salah satu saja bernilai false maka hasil dengan operator && adalah selalu false
variabel b = 70 lebih kecil 80 dan 80 lebih kecil 90;b = true && trueb = true
Hasil dari nilai variabel b adalah true , karena kedua pembanding bernilai sama-sama true , jadi jasilnya juga trueSudah jelas dan ada bayangan kan? kalo mastah mempraktekanya dan mencoba-coba mengubah nilainya pasti akan jelas n lebih paham. Sabar jangan berhenti dulu, karena masih ada operator logika lagi yang belom saya bahas :D
Hasil operator logika || (atau)
Tabel hasil operator ||
Nilai 1 Operator Nilai 2 Hasil true || true true true
||
false true
false
||
true
true
false
||
false
false
INGAT !! Dari tabel di atas bisa di ambil kesimpulan bahwa apabila dengan menggunakan operator logika || ( atau ), akan selalu bernilai true jika salah satu pembanding saja bernilai true , namun akan bernilai false jika kedua pembanding bernilai falsecontoh? gak usahlah ya sama persis kok ama dengan yang operator pembanding dan di atas, bedanya di hasil dan penggunaan operatornya saja, hasil sesuai dengan tabel.
Namun, disini saya akan memberikan contoh bila ada kasus campuran antara operator pembanding logika && dengan operator logika || . So jangan ngantuk dan perhatikan baik-baik yang saya contohkan berikut ini:public class belajarOperatorLogika{ public static void main(String [] args){ int nilaiA = 70; int nilaiB = 80; int nilaiC = 90 boolean a = nilaiA > nilaiB && nilaiB < nilaiC || nilaiC < nilaiB; boolean b = nilaiA < nilaiB || nilaiB < nilaiC && nilaiC < nilaiB; //Jika dijalankan System.out.println(a); //hasilnya: false System.out.println(b); //hasilnya: true } }
Keterangan:1. Variabel b, bila diterjemahkan pembandinya maka:boolean b = 70 lebih besar 80 dan 80 lebih kecil dari 90 atau 90 lebih kecil 80a = (false && true) || falsea = false || falsea = false
INGAT !! Perhitungan logika dimulai dari arah paling kiri ke - kanan ya, jadi dihitung pembanding logika dari paling kiri menuju yang sebelah kanan nya
2. Variabel b, bila diterjemahkan pembandinya maka:
boolean b = 70 lebih kecil 80 atau 80 lebih kecil dari 90 dan 90 lebih kecil 80b = true || (true && false)b = true || falseb = trueCATATAN !!!
Perlu di Ingat, aturan standart sesuai yang saya tulis d contoh 1 adalah d tulis dari arah kiri - ke kanan, Namun BERBEDA dengan aturan jika di salah satu pembanding ada yang menggunakan operator dan (&&). Jika ada operator && maka yang d dahulukan perhitunganya adalah yang menggunakan operator &&, baru setelahnya dihitung dari kiri - kanan, jadi intinya kedudukan operator && harus lebih didahulukan daripada peraturan dari kiri - ke kanan.
Jadi ibarat di matemarika, antara perkalian vs penjumlahan, maka yang didahulukan adalah perkalianya, nah begitu juga di operator &&, yang d hitung terlebih dahulu adalah pembandingan yang menggunakan operator &&Pesan saya untuk selalu mempraktekan langsung dan mengubah-ubah nilainya, dan jika mastah punya pengetahuan lain apapun itu di dunia pemrograman jangan pelit untuk berbagi ilmu mastah ke sesama, mastah bisa mulai menulis mastahcode untuk mulai berkontribusi di dunia pemrograman XD)