Operator dalam bahasa pemrograman berguna untuk memberi informasi kepada compiler atau intepreter untuk melakukan sebuah operasi matematika, kesamaan atau kelogisan yang akan menghasilkan sebuah keputusan.
Javascript sendiri memiliki banyak operator, mulai dari operator perbandingan, kelogisan, dan aritmatika.
Banyak jenis operasi perbandingan. Macam-macamnya yaitu:
==
(sama dengan)
Operator ini digunakan untuk mengecek apakah suatu nilai sama dengan nilai yang lain.
Contoh:
let x = 10;
console.log(x == "10"); // true
// Menghasilkan true karena x bernilai sama dengan "10"
===
(persis sama dengan)
Operator ini digunakan untuk mengecek apakah suatu nilai dan tipe datanya sama dengan nilai yang lain.
Contoh:
let x = 10;
console.log(x === "5"); // false
// Menghasilkan false karena x memiliki nilai yang berbeda
// dan x memiliki tipe data number sedangkan "5" memiliki tipe data string
console.log(x === "10"); // false
// Menghasilkan false karena x memiliki tipe data number
// sedangkan "10" memiliki tipe data string
!=
(tidak sama)
Operator ini digunakan untuk mengecek apakah suatu nilai tidak sama dengan nilai yang lain.
Contoh:
let x = 10;
console.log(x != 10); // false
// Menghasilkan false karena x sama dengan 10
console.log(x != 4); // true
// Menghasilkan true karena x tidak bernilai 4
!==
(persis tidak sama)
Operator ini digunakan untuk mengecek apakah suatu nilai dan tipe datanya tidak sama dengan nilai yang lain.
Contoh:
let x = 10;
console.log(x !== "5"); // true
// Menghasilkan true karena x memiliki nilai yang berbeda dengan "5"
// dan x memiliki tipe data yang berbeda dengan "5"
console.log(x !== "10"); // true
// Menghasilkan true karena x memiliki tipe data yang berbeda dengan "10"
>
(lebih besar dari)
Operator ini digunakan untuk membandingkan sebuah nilai apakah lebih besar daripada nilai yang lain.
Contoh:
let x = 10;
console.log(x > 7); // true
// Menghasilkan true karena nilai x lebih besar dibandingkan dengan 7
console.log(x > 15); // false
// Menghasilkan false karena nilai x lebih kecil dibandingkan dengan 15
<
(kurang dari)
Operator ini digunakan untuk membandingkan sebuah nilai apakah kurang daripada nilai yang lain.
Contoh:
let x = 10;
console.log(x < 15); // true
// Menghasilkan true karena nilai x lebih kecil dibandingkan dengan 15
console.log(x < 7); // false
// Menghasilkan false karena nilai x lebih besar dibandingkan dengan 7
>=
(lebih besar sama dengan)
Operator ini digunakan untuk membandingkan sebuah nilai apakah lebih besar daripada atau sama dengan nilai yang lain.
Contoh:
let x = 10;
console.log(x >= 3); // true
// Menghasilkan true karena nilai x lebih besar dibandingkan dengan 3
console.log(x >= 10); // true
// Menghasilkan true karena x senilai atau sama dengan 10
<=
(kurang dari sama dengan)
Operator ini digunakan untuk membandingkan sebuah nilai apakah kurang daripada atau sama dengan nilai yang lain.
Contoh:
let x = 10;
console.log(x <= 17); // true
// Menghasilkan true karena nilai x lebih kecil dibandingkan dengan 3
console.log(x <= 10); // true
// Menghasilkan true karena x senilai atau sama dengan 10
Logika secara harfiahnya adalah hasil pertimbangan dari akal dan pikiran seseorang, disampaikan dan diutarakan dengan bahasa.
Penggunaan logika di seluruh bahasa pemrograman itu selalu ada. Dalam Javascript ada 3 operator dalam urusan kelogisan suatu yang dapat menghasilkan keputusan pasti yang hasilnya berupa true atau false, yaitu:
&&
(AND operator, dan)
Operator yang digunakan untuk mengecek apakah nilai satu dan yang lain apakah keduanya true. Jika salah satunya false maka akan mereturn nilai false.
Contoh:
const beritaPertama = true;
const beritaKedua = true;
const beritaKetiga = false;
const beritaKeempat = false;
console.log(beritaPertama && beritaKedua); // true
// Menghasilkan true karena program mengecek
// apakah kedua kondisi bernilai true
console.log(beritaKedua && beritaKetiga); // false
// Menghasilkan false karena beritaKedua bernilai true
// sedangkan beritaKetiga bernilai false
||
(OR operator, atau)
Operator yang digunakan untuk mengecek apakah salah satu nilai dari dua nilai yang diuji hasilnya true. Jika dua nilai yang diuji hasilnya false maka yang direturn.
Contoh:
const beritaPertama = true;
const beritaKedua = true;
const beritaKetiga = false;
const beritaKeempat = false;
console.log(beritaPertama || beritaKeempat); // true
// Menghasilkan true karena program mendahulukan nilai true untuk dipilih
console.log(beritaKetiga || beritaKeempat); // false
// Menghasilkan false karena tidak ada pilihan yang bernilai true untuk dipilih
!
(NOT operator, bukan)
Operator yang digunakan untuk mengecek apakah nilai yang diuji bukanlah yang diinginkan maksudnya adalah apa benar pernyataan itu adalah kebalikannya.
Contoh:
const beritaPertama = true;
const beritaKedua = true;
const beritaKetiga = false;
const beritaKeempat = false;
console.log(!beritaPertama); // false
// Menghasilkan false karena nilai !beritaPertama adalah NOT true atau false
console.log(beritaPertama && !beritaKeempat); // true
// Menghasilkan true karena nilai beritaPertama dan !beritaKeempat bernilai true
// !beritaKeempat bernilai NOT false atau true
Nullish coalescing operator merupakan logical operator yang mengembalikan right-hand value jika left-hand bernilai null
atau undefined
.
Contoh:
const theme = null;
const color = theme ?? "dark";
console.log(color); // "dark"
// Menghasilkan "dark" karena variabel theme bernilai null
const user = "";
const username = user ?? "admin";
console.log(username); // ""
// Menghasilkan "" karena variabel user tidak bernilai null atau undefined
Ternary operator merupakan pengkondisian yang fungsinya sama seperti if else, namun penulisan syntaxnya lebih sederhana.
condition ? ifTruthy : ifFalsy
Contoh:
const discount = true;
console.log(discount ? "Rp. 100.000" : "Rp. 150.000"); // "Rp. 100.000"
// Menghasilkan "Rp. 100.000" karena varibel discount bernilai true
In operator adalah operator yang berfungsi untuk mengecek sebuah property dari object serta bisa juga untuk mengecek sebuah index di dalam array dan akan mengembalikan boolean.
Contoh:
const user = {
username: "John Doe",
email: "johndoe@domain.com",
profile: null
};
console.log("email" in user); // true
// Menghasilkan true karena object user memiliki key dengan nama "email"
console.log("phone" in user); // false
// Menghasilkan false karena object user tidak memiliki key dengan nama "phone"
console.log("profile" in user); // true
// Menghasilkan true karena object user memiliki key dengan nama "profile"
const colors = ["red", "green", "blue"];
console.log(0 in colors); // true
// Menghasilkan true karena array colors memiliki index ke 0
Optional chaining operator merupakan cara yang aman untuk mengambil nilai dari object, karena tidak menimbulkan error apabila kita mengakses property yang tidak tersedia di object tersebut dan akan mengembalikan nilai undefined.
Contoh:
const user = {
name: "John Doe",
address: {
street: "Mawar"
}
};
const street = user.address?.street;
const phone = user.contact?.phone;
// memanggil method dengan optional chaining
const getName = user.name?.getName?.();
console.log(street); // "Mawar"
// Menghasilkan "Mawar" karena nilai dari property street dari address adalah "Mawar"
console.log(phone); // undefined
// Menghasilkan undefined karena object user tidak memiliki property contact
console.log(getName); // undefined
// Menghasilkan undefined karena property name tidak memiliki method getName
Double Bang adalah operator yang mengkonversi suatu value menjadi tipe data boolean, pada dasarnya Double Bang meyakinkan kita untuk selalu mendapatkan value dengan tipe data boolean.
Contoh:
const object = {};
const array = [];
console.log(!!object); // true
console.log(!!array); // true
//== Contoh data yang akan dianggap true ==//
const object = {};
const array = [];
const bukanStringKosong = "string";
const angkaSelainNol = 2.125;
const date = new Date();
const truthy = true;
const stringKosong = "";
const angkaNol = 0;
console.log(!!stringKosong); // false
console.log(!!angkaNol); // false
//== Contoh data yang akan dianggap false ==//
const stringKosong = "";
const angkaNol = 0;
const nullish = null;
const notDefined = undefined;
const bukanAngka = NaN;
const falsy = false;