Belajar Dasar JavaScript: Operasi dan Operator Dasar

Operator merupakan suatu simbol yang mewakili sebuah operasi. Operator digunakan untuk melakukan suatu operasi.

Operator Aritmetika

Operator aritmetika yang didukung JavaScript adalah +, -, * (kali), / (bagi), dan % (modulus/sisa bagi).

Operasi ini dapat digunakan untuk tipe data Number. Contohnya:

console.log(10 + 5); // 15

const angka1 = 10;
const angka2 = 20;

console.log(angka1 + angka2); // 30
console.log(angka1 - angka2); // -10
console.log(angka1 * angka2); // 200
console.log(angka1 / angka2); // 0.5
console.log(angka1 % angka2); // 10

Operator + juga bisa digunakan pada String untuk menggabungkan String. Contohnya seperti berikut:

console.log("Selamat datang di " + "DaunKoder"); // Selamat datang di DaunKoder
console.log("Sekarang jam " + 12); // Sekarang jam 12

Operator -, *, / dan % jika digunakan dengan String akan mengubah String menjadi angka kemudian baru melakukan operasi. Contohnya:

console.log("1" - 2); // -1
console.log("5" - "7"); // -2
console.log("2" * "7"); // 14
console.log("9" / "2"); // 4.5
console.log("9" % "2"); // 1

Operator ini juga dapat digabungkan dengan assignment operator (=) membentuk operator +=, -=, *=, /= dan %=.

let angka = 1;
console.log(angka); // 1
angka += 2;
console.log(angka); // 2
angka -= 100;
console.log(angka); // -97
angka *= 2;
console.log(angka); // -194
angka /= 2;
console.log(angka); // -97
angka %= 2;
console.log(angka); // -1

let text = "Halo ";
text += "Hay";
console.log(text); // Halo Hay

Increment dan Decrement Operator

Increment Operator (++) digunakan untuk menaikkan nilai suatu variabel sebanyak satu. Decrement Operator (--) digunakan untuk menurunkan nilai suatu variabel sebanyak satu. Contohnya:

let angka = 1;
angka++;
console.log(angka); // 2
angka++;
console.log(angka); // 3
angka--;
console.log(angka); // 2

Saat digunakan pada String, operator ini akan mengubah String menjadi angka dan melakukan peningkatan dan penurunan. Contohnya:

let angka = "23";
angka++;
console.log(angka); // 24
angka++;
console.log(angka); // 25
angka--;
console.log(angka); // 24

Equality Operator

Equality Operator merupakan operator yang mengecek apakah dua nilai sama. Dalam JavaScript ada 2 jenis Equality operator yang mempunyai perbedaan cukup kecil, namun jika salah digunakan akan berbahaya.

Loose equality operator (==) digunakan untuk mengecek nilai dari kedua operand-nya. Jika kedua operand-nya bertipe data berbeda, maka tipe data kedua operand disamakan. Contohnya seperti berikut.

console.log(50 == 50); // true
console.log(1 == 3); // false
console.log(false == true); // false
console.log("Abc" == "abc"); // false
console.log("Daun" == "Buah"); // false
console.log(2 == "0"); // false

// Aneh
console.log(1 == "1"); // true
console.log("50" == 50); // true
console.log(false == 0); // true
console.log(0 == false); // true
console.log(0 == null); // true
console.log(0 == undefined); // true
console.log(null == undefined); // true

Dari contoh di atas operator ini sedikit aneh.

Strict equality operator (===) digunakan untuk mengecek nilai dan tipe data dari kedua operand-nya. Operator ini jelas akan menghasilkan false jika kedua operand-nya bertipe data berbeda.

console.log(50 == 50); // true
console.log(1 === 3); // false
console.log(false === true); // false
console.log("Abc" === "abc"); // false
console.log("Daun" === "Buah"); // false
console.log(2 === "0"); // false

console.log(1 === "1"); // false
console.log("50" === 50); // false
console.log(false === 0); // false
console.log(0 === false); // false
console.log(0 === null); // false
console.log(0 === undefined); // false
console.log(null === undefined); // false

Kedua operator tersebut juga mempunyai kebalikannya masing-masing yaitu Loose inequality operator (!=) dan Strict inequality operator (!==). Contoh penggunaannya:

console.log(1 != 3); // true
console.log(1 != "1"); // false
console.log(1 !== 3); // true
console.log(1 !== "1"); // true

Comparison Operator

Comparison operator digunakan untuk membandingkan dua buah angka. Operatornya adalah <, <= , > dan >=. Contoh penggunaannya:

console.log(1 > 2); // false
console.log(2 < 2); // false
console.log(25 > 25); // false
console.log(25 >= 25); // true
console.log(15 < 15); // false
console.log(15 <= 15); // true

Operator ini bisa digunakan pada String, namun sangat tidak disarankan.

console.log(20 < "100"); // true
console.log("20" < 100); // true
console.log("20" < "100"); // false

Kenapa "20" < "100"?. Karena saat kedua operand-nya sama-sama String, maka operator ini hanya akan membandingkan karakter/angka pertama (2 tidak lebih dari 1). Pada saat salah satu operand-nya merupakan angka, maka operand-lain diubah menjadi angka sebelum dibandingkan.

Logical Operator

Logical operator adalah operator yang berhubungan dengan logika.

Operator And (&) merupakan operator yang menghasilkan nilai true jika kedua operand-nya bernilai true. Contoh penggunaannya:

console.log(true && true); // true
console.log(false && true); // false
console.log(true && false); // false
console.log(false && false); // false

Operator Or (||) merupakan operator yang menghasilkan nilai true jika salah satu operand-nya bernilai true. Contoh penggunaannya:

console.log(true || true); // true
console.log(false || true); // true
console.log(true || false); // true
console.log(false || false); // false

Operator Not (!) merupakan operator yang membalik nilai Boolean (true menjadi false dan sebaliknya).

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

Indexing Operator

Operator ini bisa digunakan dengan String dan akan memberikan karakter yang berada pada posisi/index tertentu. Posisi paling pertama bernilai 0. Contoh:

const teks = "Aku mencintaimu";
console.log(teks[0]); // A
console.log(teks[1]); // k
console.log(teks[2]); // u
console.log(teks[3]); //
console.log(teks[4]); // m