Operator adalah simbol atau kata kunci yang memberi instruksi kepada JavaScript untuk melakukan tindakan tertentu: menghitung, membandingkan, menetapkan nilai, hingga menggabungkan data. Memahami operator adalah fondasi penting untuk menulis kode yang jelas dan efektif.
Bab ini membahas berbagai jenis operator yang paling sering digunakan dalam JavaScript—mulai dari dasar hingga fitur modern ES6.
Contents
1. Operator Aritmatika
Digunakan untuk perhitungan matematika.
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
+ |
Penjumlahan | 5 + 2 |
7 |
- |
Pengurangan | 5 - 2 |
3 |
* |
Perkalian | 5 * 2 |
10 |
/ |
Pembagian | 5 / 2 |
2.5 |
% |
Modulus | 5 % 2 |
1 |
** |
Pangkat | 5 ** 2 |
25 |
Masalah umum: + bisa menjumlahkan atau menggabungkan string
"5" + 5; // "55"
5 + "5"; // "55"
Karena + juga berfungsi sebagai string concatenation.
Increment dan Decrement
| Operator | Nama | Contoh |
|---|---|---|
++ |
Tambah 1 | x++ atau ++x |
-- |
Kurang 1 | x-- atau --x |
Perbedaan postfix vs prefix:
let x = 5;
console.log(x++); // 5 (nilai lama dikembalikan)
console.log(x); // 6
let y = 5;
console.log(++y); // 6 (nilai baru langsung dikembalikan)
2. Operator Penugasan (Assignment Operator)
Digunakan untuk memberikan atau memperbarui nilai.
| Operator | Contoh | Arti |
|---|---|---|
= |
x = 10 |
menetapkan nilai |
+= |
x += 5 |
x = x + 5 |
-= |
x -= 5 |
x = x - 5 |
*= |
x *= 5 |
x = x * 5 |
/= |
x /= 2 |
x = x / 2 |
%= |
x %= 3 |
x = x % 3 |
**= |
x **= 2 |
x = x ** 2 |
Contoh:
let total = 10;
total += 5; // 15
total *= 2; // 30
3. Operator Perbandingan
Menghasilkan nilai boolean (true atau false).
Perbandingan dasar
| Operator | Contoh | Hasil |
|---|---|---|
== |
"5" == 5 |
true (loose equality) |
!= |
"5" != 5 |
false |
< |
3 < 5 |
true |
> |
3 > 5 |
false |
<= |
5 <= 5 |
true |
>= |
5 >= 6 |
false |
Strict Comparison
| Operator | Contoh | Hasil |
|---|---|---|
=== |
"5" === 5 |
false |
!== |
"5" !== 5 |
true |
Gunakan === dan !== sebagai best practice modern untuk menghindari type coercion yang tidak diinginkan.
4. Operator Logika
Digunakan dalam kondisi dan ekspresi boolean.
AND (&&)
true && true // true
true && false // false
OR (||)
true || false // true
false || false // false
NOT (!)
!true // false
!false // true
Short-circuit behavior
AND (&&)
Berhenti di nilai falsy pertama:
console.log(0 && "Hello"); // 0
OR (||)
Berhenti di nilai truthy pertama:
console.log("" || "Default"); // "Default"
Kedua operator dapat digunakan untuk default value atau conditional expression.
5. Ternary Operator
Bentuk ringkas dari if...else.
Sintaks:
kondisi ? nilaiJikaTrue : nilaiJikaFalse
Contoh:
let age = 18;
let status = age >= 18 ? "Dewasa" : "Anak-anak";
Ternary sangat berguna untuk kondisi pendek.
6. Spread dan Rest Operator (ES6)
Keduanya menggunakan tiga titik (...), tetapi tujuannya berbeda.
A. Spread Operator (...)
Digunakan untuk menyebarkan elemen array atau properti objek.
Contoh array:
let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5];
// [1, 2, 3, 4, 5]
Contoh objek:
let user = { name: "Eka" };
let updated = { ...user, age: 20 };
Contoh copy array
let copy = [...arr1];
Spread membuat manipulasi data lebih mudah dan aman (tidak mengubah referensi lama).
B. Rest Operator (...)
Rest mengumpulkan sisa elemen menjadi satu variabel.
Contoh pada function:
function sum(...numbers) {
return numbers.reduce((total, n) => total + n);
}
sum(1, 2, 3); // 6
Contoh pada destructuring:
let [first, ...others] = [10, 20, 30];
console.log(first); // 10
console.log(others); // [20, 30]
Rest operator memudahkan pembuatan fungsi fleksibel dan destrukturisasi data.
Ringkasan Singkat
| Operator | Fungsi |
|---|---|
| Aritmatika | perhitungan matematika |
| Penugasan | menetapkan/memperbarui nilai |
| Perbandingan | menghasilkan boolean |
| Logika | operasi AND, OR, NOT |
| Ternary | kondisi singkat |
| Spread | memperluas array/objek |
| Rest | mengumpulkan sisa elemen |