BAB 5 — Operator dalam JavaScript: Alat Logika, Perhitungan, dan Manipulasi Data

BAB 5 — Operator dalam JavaScript: Alat Logika, Perhitungan, dan Manipulasi Data

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.


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