Tutorial Belajar JavaScript Bagian 21 : Operator Logika di JavaScript

0
255

Pada tutorial sebelumnya, kita sudah mempelajari Tutorial Belajar JavaScript Bagian 20 : Operator Perbandingan di JavaScript. Dalam tutorial ini, kita akan mempelajari cara menggunakan operator logika JavaScript termasuk operator logika NOT ( !), operator logika AND ( &&) dan operator logika OR ( ||).

Operator logika penting dalam JavaScript karena memungkinkan Anda membandingkan variabel dan melakukan sesuatu berdasarkan hasil perbandingan itu.

Misalnya, jika hasil perbandingannya true, Anda dapat menjalankan blok kode; jika false, Anda dapat menjalankan blok kode lain.

JavaScript menyediakan tiga operator logika:

  • ! (Logical NOT)
  • || (Logical OR)
  • && (Logical AND)

1. Operator Logical NOT (!)

JavaScript menggunakan tanda seru! untuk mewakili operator NOT logika. ! operator dapat diterapkan ke nilai tunggal dari jenis apa pun, bukan hanya nilai Boolean.

Ketika Anda menerapkan ! operator ke nilai boolean, ! mengembalikan true jika nilainya false dan sebaliknya. Sebagai contoh :

let syarat = false,
     perlu = true;

console.log(!syarat);
console.log(!perlu);

Hasil :

true
false

Dalam contoh ini, yang memenuhi syarat adalah true jadi !syarat mengembalikan nilai false. Dan karena yang dibutuhkan adalah true, maka !perlu mengembalikan nilai false.

Ketika Anda menerapkan operator ! ke nilai non-Boolean. Operator ! pertama-tama mengubah nilai menjadi nilai boolean dan kemudian meniadakannya.

Contoh berikut menunjukkan cara menggunakan operator ! :

!a

Logika operator ! bekerja berdasarkan aturan berikut:

  • Jika a undefined, hasilnya true.
  • Jika a adalah null, hasilnya true.
  • Jika a adalah angka selain 0, hasilnya false.
  • Jika a adalah NaN, hasilnya true.
  • Jika a adalah object, hasilnya false.
  • Jika a adalah string kosong, hasilnya true. Dalam kasus a adalah string yang tidak kosong, hasilnya false

Berikut ini menunjukkan hasil dari logika operator ! saat menerapkan nilai non-boolean :

console.log(!undefined); //true
console.log(!null); //true
console.log(!20); //false
console.log(!0); //true
console.log(!NaN); //true
console.log(!{}); // false
console.log(!''); //true
console.log(!'OK'); //false
console.log(!false); //true
console.log(!true); //false

Negasi ganda (!!)

Terkadang, Anda mungkin melihat negasi ganda (!!) dalam beberapa kode. !! menggunakan operator NOT logika (!) dua kali untuk mengubah nilai menjadi nilai boolean aslinya.

Hasilnya sama dengan menggunakan fungsi Boolean(). Sebagai contoh :

let counter = 10;

console.log(!!counter); // true

Pertama, operator ! meniadakan nilai Boolean dari variabel counter. Jika counter bernilai true, maka operator ! membuatnya menjadi bernilai false dan sebaliknya.

Kedua, operator ! meniadakan hasil yang pertama operator ! dan mengembalikan nilai boolean sebenrnya dari variabel penghitung.

2. Operator Logical AND (&&)

JavaScript menggunakan ampersand ganda (&&) untuk mewakili operator AND logika. Ekspresi berikut menggunakan && operator :

let hasil = a && b;

Jika a dapat dikonversi menjadi true, operator && mengembalikan nilai b; jika tidak, ia mengembalikan nilai a. Faktanya, aturan ini berlaku untuk semua nilai boolean.

Tabel kebenaran berikut mengilustrasikan hasil dari operator && ketika diterapkan pada dua nilai Boolean :

aba && b
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

Hasil operator && bernilai true hanya jika kedua nilai true, jika tidak akan bernilai false. Sebagai contoh :

let eligible = false,
     required = true;

console.log(elgible && required); // false

Dalam contoh ini, yang memenuhi syarat adalah false, oleh karena itu, nilai ekspresi yang memenuhi syarat && diperlukan adalah false.

Lihat contoh berikut :

let elgible = true,
     required = true;

console.log(elgible && required); // true

Dalam contoh ini, yang memenuhi syarat dan yang dibutuhkan adalah true, oleh karena itu, nilai ekspresi yang memenuhi syarat && yang dibutuhkan adalah true.

Evaluasi Short-circuit

Operator && dihubung pendek. Ini berarti operator && mengevaluasi nilai kedua hanya jika yang pertama tidak cukup untuk menentukan nilai ekspresi. Sebagai contoh :

let b = true;
let hasil = b && (1 / 0);

console.log(hasil);

Hasil:

Infinity

Dalam contoh ini, b bernilai true sehingga operator && tidak dapat menentukan hasilnya tanpa mengevaluasi lebih lanjut ekspresi kedua (1/0).

Hasilnya adalah Infinity yang merupakan hasil dari ekspresi (1/0). Namun :

let b = false;
let hasil = b && (1 / 0);

console.log(hasil);

Hasil:

False

Dalam hal ini, b bernilai false, operator && tidak perlu mengevaluasi ekspresi kedua karena dapat menentukan hasil akhir karena nilai berbasis false dari nilai pertama.

Rantai operator &&

Ekspresi berikut menggunakan beberapa operator && :

let hasil = nilai1 && nilai2 && nilai3;

Operator && mengikuti hal berikut ini:

  • Mengevaluasi nilai dari kiri ke kanan.
  • Untuk setiap nilai, ubah menjadi boolean. Jika hasilnya false, hentikan dan kembalikan nilai aslinya.
  • Jika semua nilai adalah nilai kebenaran, kembalikan nilai terakhir.

Dengan kata lain, operator && mengembalikan nilai pertama yang false atau nilai terakhir jika tidak ada nilai yang ditemukan.

Jika suatu nilai dapat dikonversi menjadi true, itu disebut nilai kebenaran. Jika suatu nilai dapat diubah menjadi false, itu disebut nilai falsy (palsu).

3. Operator Logical OR (||)

JavaScript menggunakan garis ganda || untuk mewakili operator logika OR. Anda dapat menerapkan || operator ke dua nilai dari jenis apa pun :

let hasil = a || b;

Jika a dapat dikonversi menjadi true, kembalikan nilai a; lain dari itu, kembalikan nilai b. Aturan ini juga diterapkan pada nilai boolean.

Tabel kebenaran berikut mengilustrasikan hasil dari operator || berdasarkan nilai operan :

aba  ||  b
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

Operator ||  mengembalikan nilai false jika kedua nilai dievaluasi menjadi false. Jika false satu nilai true, operator || mengembalikan true. Sebagai contoh:

let syarat = true,
     perlu = false;

console.log(syarat || perlu); // true

Lihat contoh lain:

let syarat  = false,
     perlu = false;

console.log(syarat || perlu); // false

Dalam contoh ini, ekspresi memenuhi syarat || perlu mengembalikan nilai false karena kedua nilai adalah false.

Operator ||  juga dihubung singkat

Mirip dengan && operator, operator ||  dihubung singkat. Artinya, jika nilai pertama bernilai true, operator && tidak mengevaluasi nilai kedua.

Rantai operator ||

Contoh berikut menunjukkan cara menggunakan beberapa operator ||  dalam ekspresi:

let hasil = nilai1 || nilai2 || nilai3;

Operator || melakukan hal berikut:

  • Mengevaluasi nilai dari kiri ke kanan.
  • Untuk setiap nilai, konversikan ke nilai boolean. Jika hasil konversi true, hentikan dan kembalikan nilainya.
  • Jika semua nilai telah dievaluasi menjadi false, kembalikan nilai terakhir.

Dengan kata lain, rantai dari  operator || mengembalikan nilai kebenaran pertama atau yang terakhir jika tidak ada nilai kebenaran yang ditemukan.

Prioritas operator logika

Saat Anda menggabungkan beberapa operator logika dalam satu ekspresi, JavaScript mengevaluasi operator berdasarkan urutan yang ditentukan. Dan urutan ini disebut prioritas operator.

Dengan kata lain, prioritas operator adalah urutan evaluasi operator logika dalam sebuah ekspresi.

Diutamakan dari operator logika dalam urutan berikut dari yang tertinggi ke yang terendah:

  • Logika NOT (!)
  • Logika AND (&&)
  • Logika OR (||)

Kesimpulan

  • Operator NOT (!) meniadakan nilai boolean. (!!) mengubah nilai menjadi nilai boolean aslinya.
  • Operator AND (&&) diterapkan pada dua nilai Boolean dan mengembalikan true jika kedua nilai tersebut true.
  • Operator OR (||) diterapkan pada dua nilai Boolean dan mengembalikan nilai true jika false satu operan bernilai true.
  • Keduanya && dan || operator dihubung singkat. Mereka juga dapat diterapkan pada nilai non-Boolean.
  • Prioritas operator logika dari yang tertinggi ke yang terendah adalah !, && dan ||.

Itu dia penjelasan operator logika di JavaScript yang biasa digunakan untuk mencari nilai true atau false pada pemrograman JavaScript.

TINGGALKAN KOMENTAR

Silakan masukkan komentar anda!
Silakan masukkan nama Anda di sini

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.