Masukkan Password
12 Operator Increment & Decrement
Lecture ini membahas 3 kelompok operator penting:
- Increment
++dan Decrement-- - Comma operator
, typeofoperator
Bagian yang paling penting untuk benar-benar dipahami adalah perbedaan pre-increment dan post-increment, karena ini sering membingungkan pemula dan nanti sangat sering muncul di loop.
1. Increment Operator ++
Increment berarti menaikkan nilai sebanyak 1.
Misalnya:
let counter = 0;
Nilai awal:
counter → 0
Kalau kita ingin menambah 1, ada beberapa cara.
Cara pertama
counter = counter + 1;
Hasil:
counter → 1
Cara kedua: shorthand
counter += 1;
Hasilnya juga:
counter → 1
Cara ketiga: increment operator
counter++;
Hasilnya:
counter → 1
Jadi ketiga kode ini pada dasarnya sama-sama menaikkan counter sebanyak 1:
counter = counter + 1;
counter += 1;
counter++;
2. Apa itu ++?
Operator:
++
disebut increment operator.
Fungsinya:
Menaikkan nilai sebuah variable Number sebanyak 1.
Contoh:
let counter = 10;
counter++;
console.log(counter);
Output:
11
Karena:
10 + 1 = 11
3. Decrement Operator --
Kalau ++ menaikkan 1, maka -- menurunkan 1.
Operator:
--
disebut decrement operator.
Contoh:
let counter = 10;
counter--;
console.log(counter);
Hasil:
9
Karena:
10 - 1 = 9
Sama seperti increment, decrement juga bisa ditulis dengan cara yang lebih panjang:
counter = counter - 1;
atau:
counter -= 1;
atau:
counter--;
Ketiganya menurunkan nilai sebesar 1.
4. ++ dan -- hanya digunakan pada variable
Ini poin penting dari lecture.
Kita bisa melakukan:
let counter = 10;
counter++;
Karena counter adalah variable.
Tetapi kita tidak bisa melakukan:
100++;
Kenapa?
Karena 100 hanyalah sebuah value/literal, bukan variable yang bisa nilainya diubah.
Bayangkan seperti ini:
counter → [10]
Kita bisa mengambil kotaknya dan mengubah isinya:
counter → [11]
Tetapi 100 sendiri bukan kotak penyimpanan yang bisa kita ubah.
Jadi:
counter++; // ✅
counter--; // ✅
sedangkan:
100++; // ❌
100--; // ❌
5. ++counter vs counter++
Nah, ini bagian terpenting dari lecture.
Increment bisa ditulis dalam dua posisi:
Post-increment
counter++;
++ berada setelah variable.
Disebut:
Post-increment
Pre-increment
++counter;
++ berada sebelum variable.
Disebut:
Pre-increment
Keduanya sama-sama menaikkan nilai variable sebesar 1.
Tetapi perbedaannya adalah kapan nilai tersebut dikembalikan/digunakan oleh expression.
Ini yang perlu diperhatikan.
6. Pre-Increment ++counter
Pre-increment berarti:
Naikkan nilainya dulu, baru gunakan/kembalikan nilai barunya.
Misalnya:
let counter = 10;
console.log(++counter);
Mari kita proses:
Kondisi awal
counter → 10
Kemudian:
++counter
Karena ini pre-increment, JavaScript:
10 + 1
↓
11
Lalu 11 dikembalikan ke console.log().
Hasil:
11
Dan counter sekarang juga:
counter → 11
7. Post-Increment counter++
Sekarang:
let counter = 10;
console.log(counter++);
Ini adalah post-increment.
Aturannya:
Gunakan/kembalikan nilai sekarang dulu, baru naikkan nilainya.
Jadi prosesnya:
counter = 10
nilai 10 dikembalikan
↓
console.log(10)
baru kemudian counter dinaikkan
↓
counter = 11
Hasil:
10
Tetapi setelah baris tersebut selesai:
counter → 11
8. Ini yang sering membingungkan
Perhatikan:
let counter = 10;
console.log(++counter);
console.log(counter);
Output:
11
11
Karena ++counter:
naikkan dulu
↓
11
↓
gunakan 11
Sekarang:
let counter = 10;
console.log(counter++);
console.log(counter);
Output:
10
11
Kenapa?
Karena counter++:
gunakan nilai sekarang
↓
10
↓
baru naikkan counter
↓
11
9. Analogi sederhana
Bayangkan counter adalah saldo uang.
Saldo awal:
Rp10
Pre-increment
++counter;
Seperti mengatakan:
“Tambah Rp1 dulu, baru kasih tahu saya saldonya.”
10 → 11 → tampilkan 11
Post-increment
counter++;
Seperti:
“Kasih tahu saya saldo sekarang dulu, setelah itu baru tambah Rp1.”
10 → tampilkan 10 → kemudian menjadi 11
Inilah inti perbedaannya.
10. Decrement juga punya Pre dan Post
Hal yang sama berlaku untuk --.
Ada:
--counter;
→ pre-decrement
dan:
counter--;
→ post-decrement
11. Pre-Decrement --counter
Pre-decrement:
Kurangi dulu, kemudian gunakan nilai baru.
Contoh:
let counter = 10;
console.log(--counter);
Proses:
10
↓
10 - 1
↓
9
↓
console.log(9)
Output:
9
counter juga sekarang bernilai:
9
12. Post-Decrement counter--
Post-decrement:
Gunakan nilai sekarang dulu, kemudian kurangi 1.
Contoh:
let counter = 10;
console.log(counter--);
Proses:
counter = 10
gunakan 10
↓
console.log(10)
kemudian:
10 - 1
↓
counter = 9
Output:
10
Tetapi setelah baris itu:
counter → 9
13. Ringkasan Pre vs Post
Ini tabel yang sebaiknya kamu hafalkan:
| Operator | Nama | Urutan |
|---|---|---|
++counter | Pre-increment | Naikkan → gunakan |
counter++ | Post-increment | Gunakan → naikkan |
--counter | Pre-decrement | Kurangi → gunakan |
counter-- | Post-decrement | Gunakan → kurangi |
Atau dengan cara super sederhana:
PRE = perubahan dulu
POST = penggunaan dulu
14. Contoh lengkap
let counter = 10;
console.log(++counter);
console.log(counter);
Hasil:
11
11
Sedangkan:
let counter = 10;
console.log(counter++);
console.log(counter);
Hasil:
10
11
Untuk decrement:
let counter = 10;
console.log(--counter);
console.log(counter);
Hasil:
9
9
Sedangkan:
let counter = 10;
console.log(counter--);
console.log(counter);
Hasil:
10
9
15. Kenapa Increment/Decrement penting?
Karena operator ini sangat sering digunakan dalam loop/perulangan.
Misalnya nanti kita akan belajar:
for (let i = 0; i < 5; i++) {
console.log(i);
}
Perhatikan bagian:
i++
Itu berarti:
setiap kali perulangan selesai,
idinaikkan 1.
Sehingga:
i = 0
↓
i = 1
↓
i = 2
↓
i = 3
↓
i = 4
Jadi kalau sekarang kamu memahami ++, nanti ketika masuk ke loop, konsepnya akan jauh lebih mudah.
16. Comma Operator ,
Sekarang masuk ke operator kedua yang dibahas lecture.
JavaScript juga memiliki comma operator:
,
Operator ini memungkinkan kita mengevaluasi beberapa expression yang dipisahkan dengan koma.
Contoh:
let z = (1 + 2, 3 + 4);
Ada dua expression:
1 + 2
dan:
3 + 4
JavaScript akan mengevaluasi keduanya:
1 + 2 = 3
3 + 4 = 7
Tetapi:
Comma operator hanya mengembalikan hasil dari expression terakhir.
Jadi:
1 + 2, 3 + 4
↓
hasil terakhir = 7
Maka:
let z = (1 + 2, 3 + 4);
console.log(z);
hasilnya:
7
Bukan 3.
17. Analogi Comma Operator
Bayangkan kamu memberi tiga tugas:
Tugas 1 → hitung 1 + 2 → 3
Tugas 2 → hitung 3 + 4 → 7
Keduanya dikerjakan.
Tetapi yang kamu ambil sebagai hasil akhir hanya tugas terakhir:
7
Jadi:
let z = (expression1, expression2, expression3);
hasil akhirnya adalah:
hasil dari expression3
18. Apakah Comma Operator sering digunakan?
Tidak terlalu sering.
Lecture juga menekankan bahwa comma operator jarang digunakan dalam JavaScript sehari-hari.
Jadi untuk sekarang:
Cukup pahami bahwa operator
,ini ada dan tahu cara kerjanya.
Tidak perlu terlalu menghafalnya untuk saat ini.
19. Hati-hati: koma biasa tidak selalu berarti comma operator
Ini catatan penting.
Misalnya:
let a = 10, b = 20;
Koma di sini digunakan untuk memisahkan deklarasi variable. Ini bukan contoh yang biasanya dimaksud sebagai comma operator.
Comma operator lebih jelas terlihat ketika beberapa expression digabung:
let x = (10 + 20, 30 + 40);
Hasil:
70
20. typeof Operator
Sekarang kita masuk ke operator yang sangat penting:
typeof
typeof digunakan untuk mengetahui:
Tipe data dari sebuah value atau variable.
Contoh:
console.log(typeof 20);
Output:
number
Karena 20 adalah Number.
21. typeof adalah Unary Operator
Sebelumnya kita sudah belajar:
- Unary → 1 operand
- Binary → 2 operand
- Ternary → 3 operand
typeof termasuk unary operator karena bekerja pada satu operand.
Contoh:
typeof 20
Operand-nya hanya:
20
22. Contoh typeof berbagai tipe data
Number
console.log(typeof 20);
Hasil:
number
String
console.log(typeof "Hello");
Hasil:
string
Boolean
console.log(typeof true);
Hasil:
boolean
Undefined
console.log(typeof undefined);
Hasil:
undefined
23. typeof bisa digunakan pada variable
Tidak hanya value langsung.
Misalnya:
let counter = 10;
console.log(typeof counter);
Output:
number
Karena:
counter → 10
↓
Number
Kalau:
let name = "John";
console.log(typeof name);
hasil:
string
24. Kenapa typeof berguna?
Misalnya kita punya variable:
let value = 100;
Kita ingin memastikan tipe datanya:
console.log(typeof value);
Output:
number
Kemudian variable berubah:
value = "Hello";
Sekarang:
console.log(typeof value);
Output:
string
Ini sangat berguna ketika debugging.
Kalau program kita mendapatkan data dari user/API/UI dan kita tidak yakin tipe datanya apa, kita bisa mengeceknya dengan:
console.log(typeof value);
25. typeof null yang aneh
Ini salah satu keanehan JavaScript yang perlu kamu ingat.
Kita sudah belajar sebelumnya bahwa:
null
adalah primitive value yang menunjukkan tidak adanya nilai secara sengaja.
Secara konsep:
null → null
Tetapi kalau kita menjalankan:
console.log(typeof null);
hasilnya:
object
😵
Padahal kita mungkin mengharapkan:
null
Ini memang quirk/keanehan historis JavaScript.
Jadi untuk saat ini cukup hafalkan:
typeof null
menghasilkan:
"object"
Walaupun secara konsep null bukan object.
26. Jangan bingung dengan typeof dan value yang dihasilkan
Perhatikan:
typeof 20
menghasilkan:
"number"
Secara teknis hasil dari typeof adalah String.
Contohnya:
console.log(typeof 20);
yang ditampilkan adalah:
number
Kita bisa cek:
console.log(typeof (typeof 20));
Hasilnya:
string
Kenapa?
Karena:
typeof 20
↓
"number"
dan "number" adalah String.
Untuk sekarang, cukup pahami bahwa typeof mengembalikan nama tipe dalam bentuk string.
27. Tabel typeof yang penting
| Value | typeof |
|---|---|
20 | "number" |
3.14 | "number" |
"Hello" | "string" |
true | "boolean" |
false | "boolean" |
undefined | "undefined" |
null | "object" ⚠️ |
10n | "bigint" |
Symbol() | "symbol" |
Untuk materi yang sudah kamu pelajari sekarang, fokus terutama pada:
number
string
boolean
undefined
object (khusus null)
28. Hubungan dengan Dynamic Typing
Ini juga nyambung dengan lecture sebelumnya.
Misalnya:
let value = 100;
console.log(typeof value);
Hasil:
number
Kemudian:
value = "Hello";
console.log(typeof value);
Hasil:
string
Kemudian:
value = true;
console.log(typeof value);
Hasil:
boolean
Ini menunjukkan konsep dynamic typing yang sudah kita pelajari.
Variable yang sama bisa menyimpan value dengan tipe berbeda pada waktu berbeda.
29. Gabungkan typeof dengan if
Nanti ketika belajar conditional, kamu bisa melakukan sesuatu seperti:
let value = 100;
if (typeof value === "number") {
console.log("Ini adalah angka");
}
Karena:
typeof value
menghasilkan:
"number"
Maka kondisi tersebut benar.
Catatan: bagian if ini belum perlu kamu kuasai sekarang. Yang penting kamu tahu bahwa typeof nantinya sangat berguna untuk conditional.
30. Kesalahan yang sering dilakukan pemula
Kesalahan 1 — Mengira counter++ dan ++counter selalu berbeda hasil
Kalau berdiri sendiri:
counter++;
dan:
++counter;
keduanya sama-sama menaikkan counter sebesar 1.
Perbedaannya menjadi penting ketika hasil expression tersebut langsung digunakan.
Contoh:
console.log(counter++);
vs:
console.log(++counter);
Kesalahan 2 — Lupa bahwa post-increment tetap mengubah variable
Misalnya:
let x = 10;
console.log(x++);
console.log(x);
Hasil:
10
11
Jangan berpikir x++ hanya mengembalikan 10.
Dia juga tetap mengubah x menjadi 11.
Kesalahan 3 — Menggunakan ++ pada angka literal
100++;
❌ Tidak valid.
Gunakan variable:
let x = 100;
x++;
✅
31. Cara paling gampang menghafal Pre vs Post
Gunakan kalimat ini:
PRE = perubahan dulu. POST = penggunaan dulu.
Jadi:
++x
PRE
↓
ubah dulu
↓
gunakan nilai baru
Sedangkan:
x++
POST
↓
gunakan nilai lama
↓
baru ubah
Untuk decrement:
--x
PRE
↓
kurangi dulu
↓
gunakan nilai baru
x--
POST
↓
gunakan nilai lama
↓
baru kurangi
32. Cheat Sheet Lecture
Increment
x++;
Menambah x sebesar 1.
++x;
Juga menambah x sebesar 1.
Decrement
x--;
Mengurangi x sebesar 1.
--x;
Juga mengurangi x sebesar 1.
Pre vs Post
++x // increment dulu, lalu return/use
x++ // return/use dulu, lalu increment
--x // decrement dulu, lalu return/use
x-- // return/use dulu, lalu decrement
Comma
let x = (1 + 2, 3 + 4);
Semua expression dievaluasi, tetapi yang dikembalikan adalah expression terakhir:
x → 7
typeof
typeof 100 // "number"
typeof "Hello" // "string"
typeof true // "boolean"
typeof undefined // "undefined"
typeof null // "object" ⚠️
🧠 Inti yang Harus Kamu Ingat
Kalau dari seluruh lecture ini hanya ingin mengingat 5 hal, ingat ini:
1. ++ menambah 1
x++;
sama dengan:
x = x + 1;
2. -- mengurangi 1
x--;
sama dengan:
x = x - 1;
3. Pre vs Post
++x → ubah dulu → gunakan
x++ → gunakan dulu → ubah
--x → ubah dulu → gunakan
x-- → gunakan dulu → ubah
4. Comma operator mengambil hasil terakhir
(1 + 2, 3 + 4)
hasil akhirnya:
7
5. typeof digunakan untuk mengecek tipe data
typeof 100
// "number"
Dan ada satu keanehan yang wajib diingat:
typeof null
// "object"
Kalau kamu sudah benar-benar paham bagian ++x vs x++, kamu sudah menguasai bagian tersulit dari lecture ini. Ini akan sangat membantu ketika nanti masuk ke loop for dan while.