Operator perbandingan atau comparison operators membandingkan dua buah operand. Apabila pernyataan perbandingan tersebut benar akan menghasilkan nilai `true`, sebaliknya `false`.
Daftar Operator Perbandingan
Berikut daftar operator perbandingan dalam JavaScript
Operator | Deskripsi | Contoh Penggunaan |
---|---|---|
== | Sama dengan (Equal to) | 5 == 5 => true |
!= | Tidak sama dengan (Not equal to) | 5 != 7 => true |
=== | Kesamaan nilai dan tipe data. (Strict Equal) | 5 === '5' => false |
!== | Ketidaksamaan nilai dan tipe data. (Strict Inequal) | 5 !== '5' => true |
> | Lebih besar dari (Greater than) | 7 > 5 => true |
< | Lebih kecil dari (Less than) | 5 < 7 => true |
>= | Lebih besar dari atau sama dengan (Greater than or equal to) | 5 >= 5 => true |
<= | Lebih kecil dari atau sama dengan (Less than or equal to) | 5 <= 5 => true |
Dalam JavaScript, pengecekan `sama dengan` menggunakan dua tanda sama dengan(`==`), karena tanda sama dengan `=` digunakan sebagai assignment operator.
Kemudian simbol tidak sama dengan dalam matematika ( `≠` ) digantikan dengan `!=` di JavaScript.
Perbandingan Menghasilkan Boolean (true/false)
Setiap perbandingan akan menghasilkan data Boolean.
- `True` - Berarti perbandingan benar
- `False` - Berarti perbandingan tidak benar
Contoh:
Hasil perbandingan dapat disimpan di variabel.
Kesamaan Nilai (Equality)
Operator `==` hanya membandingkan dua buah nilai tanpa memastikan apakah tipe datanya sama. Membandingkan number dengan string, Boolean dengan number dapat bernilai true karena JavaScript akan mengonversi menjadi tipe data yang sama.
Membandingkan `number` dengan `string`:
Dari dua contoh di atas, JavaScript mengubah string ke number. Pada contoh yang kedua, konversi `'satu'` ke number menghasilkan `NaN`. Sehingga hasil perbandingannya menjadi `false`.
`NaN` dengan `NaN` tidak akan pernah sama:
Membandingkan `number` dengan `bigint` akan bernilai true jika memiliki nilai numerik yang sama:
Begitu juga membandingkan `string` dengan `bigint`, string akan diubah ke bigint:
Membandingkan `number` dengan `Boolean`:
Boolean `true` diwakili oleh angka `1`, sedangkan `false` diwakili `0`.
Pada perbandingan number dengan Boolean, JavaScript mengubah Boolean menjadi number. Karena inilah kedua perbandingan number-boolean di atas menghasilkan true
Membandingkan dua buah objek bernilai `true` jika merujuk pada objek yang sama:
Meskipun kedua objek di atas sama-sama kosong, membandingkan dua objek yang berbeda tetap menghasilkan `false`.
Membandingkan dua `Symbol` yang berbeda akan bernilai `false` karena setiap `Symbol` bernilai unik.
Membandingkan `null` dengan `undefined`:
Kesamaan Nilai dan Tipe (Strict Equality)
Operator `===` membandingkan kedua tipe operand, jika tipenya sama akan dilanjut membandingkan nilainya. Namun jika tipenya berbeda, akan langsung menghasilkan `false`.
Dengan operator ini, JavaScript tidak akan mengkonversi tipe data.
String tidak lagi dikonversi ke number
Boolean tidak lagi dikonversi ke number.
`number` ke `bigint` tidak lagi sama, meskipun nilainya sama:
`null` dan `undefined` adalah tipe data yang berbeda.
Ketidaksamaan Nilai (Inequality)
Operator `!=` akan menghasilkan `true` bila kedua operand berbeda nilai. Opetor ini adalah kebalikan atau negasi atau ingkaran dari equality (==).
Karena kedua operand bernilai sama, maka menghasilkan `false`.
Operator ini akan bernilai sama dengan:
Tanda Seru `!` adalah sebuah operator logika (NOT) yang membalikkan keadaan. Bilamana keadaan bernilai `true`, maka menjadi `false`. Dan sebaliknya.
Kamu akan mempelajari operator logika atau Logical Operator di artikel lain.
Operator `!=` akan menghasilkan `true` bila kedua operand berbeda nilai. Opetor ini adalah kebalikan atau negasi atau ingkaran dari equality (==).
Karena kedua operand bernilai sama, maka menghasilkan `false`.
Operator ini akan bernilai sama dengan:
Tanda Seru `!` adalah sebuah operator logika (NOT) yang membalikkan keadaan. Bilamana keadaan bernilai `true`, maka menjadi `false`. Dan sebaliknya.
Kamu akan mempelajari operator logika atau Logical Operator di artikel lain.
Ketidaksamaan Nilai dan Tipe data (Strict Inequality)
Operator `!==` akan menghasilkan `true` bila kedua operand berbeda tipe. Opetor ini adalah kebalikan atau negasi atau ingkaran dari strict equality (===).
Pertama, operator ini akan mengecek kesamaan tipe data, lalu membalikkan nilainya. Jika tipe datanya sama, yang seharusnya bernilai `true` operator ini membalikkan nilainya menjadi `false`.
Operator ini akan bernilai sama dengan:
Membandingkan String
Operator sama dengan `==` dapat digunakan untuk mengecek kesamaan dari dua buah string.
Bisa juga menggunakan operator greater than `>` atau less than `<` untuk membandingkan dua buah string.
Kedua string di atas dibandingkan berdasarkan urutan abjad. JavaScript membandingkan karakter demi karakter.
Di contoh di atas, karena posisi `A` di abjad lebih kecil daripada posisi `B`, maka perbandingan `str1 > str2` bernilai `false`, karena posisi `B` lebih besar.
Meskipun operator perbandingan dapat melakukan perbandingan dua buah string, direkomendasikan untuk menggunakan metode `localCompare()`. Kamu akan mempelajarinya di artikel lain.
Penggunaan Operator Perbandingan
Kapan ini digunakan?
Operator perbandingan ini digunakan dalam pernyataan kondisional (conditional statement) seperti pada percabangan `if...else`. Hasil dari perbandingan (true/false) akan menentukan jalannya program.
Pada contoh di atas, jika nilai `x` sama dengan nilai `y`, maka pesan "Nilai x sama dengan y" akan dicetak. Jika tidak, maka pesan "Nilai x tidak sama dengan y" akan dicetak.
Juga dalam perulangan untuk membatasi perulangan.
Pada contoh di atas, kita memeriksa apakah nilai `i` kurang dari atau sama dengan 5. Jika kondisi tersebut terpenuhi, maka nilai `i` akan dicetak dan kemudian nilai `i` akan ditambah 1 dengan increment (++).
Proses ini akan terus berulang hingga nilai `i` mencapai 6, di mana kondisi `i <= 5` tidak lagi terpenuhi, dan perulangan berhenti.