Masukkan Password
06 1.5 Increment & Decrement Operators in Dart Programming Language | Learn Dart Language | Dart Course
Materi kali ini membahas Increment dan Decrement Operators dalam Dart, termasuk bagian yang sangat penting yaitu perbedaan pre-increment, post-increment, pre-decrement, dan post-decrement.
Bagian ini memang sering membuat pemula bingung, terutama karena ++a dan a++ terlihat hampir sama. Jadi kita akan pelajari pelan-pelan dengan contoh sederhana.
Catatan: caption beberapa kali menulis βdo programming languageβ. Yang dimaksud adalah Dart programming language.
1. Apa itu Increment dan Decrement?
Secara sederhana:
- Increment β menaikkan nilai sebesar 1
- Decrement β menurunkan nilai sebesar 1
Misalnya:
int number = 10;
Kalau kita melakukan increment:
number++;
Nilai number menjadi:
10 β 11
Kalau melakukan decrement:
number--;
Nilainya menjadi:
10 β 9
Jadi gampangnya:
++ β tambah 1
-- β kurang 1
2. Increment Operator ++
Increment digunakan untuk menambah nilai variabel sebanyak 1.
Misalnya:
int a = 10;
a++;
print(a);
Hasil:
11
Karena:
10 + 1 = 11
Bentuk lainnya
Increment bisa ditulis dalam dua posisi:
Sebelum variabel
++a
Disebut:
pre-increment
Setelah variabel
a++
Disebut:
post-increment
Keduanya sama-sama menaikkan nilai variabel sebesar 1.
Tetapi ada perbedaan penting ketika hasil ekspresinya digunakan.
3. Decrement Operator --
Decrement kebalikan dari increment.
Decrement digunakan untuk mengurangi nilai variabel sebanyak 1.
Contoh:
int a = 10;
a--;
print(a);
Hasil:
9
Karena:
10 - 1 = 9
Sama seperti increment, decrement juga mempunyai dua bentuk:
--a
dan:
a--
Yaitu:
--aβ pre-decrementa--β post-decrement
4. Sampai Sini Sebenarnya Mudah
Kalau hanya digunakan seperti ini:
int a = 10;
a++;
nilai a menjadi:
11
Dan:
int b = 10;
b--;
nilai b menjadi:
9
Tidak terlalu sulit.
Yang mulai membingungkan adalah ketika kita melakukan:
int a = 10;
int result = ++a;
dibandingkan dengan:
int b = 10;
int result = b++;
Nah, inilah inti materi dari video tersebut.
5. Apa Arti “Pre” dan “Post”?
Cara paling mudah mengingatnya:
Pre = sebelum
Pre-increment:
++a
Artinya:
Naikkan nilainya terlebih dahulu, kemudian gunakan nilainya.
Post = setelah
Post-increment:
a++
Artinya:
Gunakan nilainya terlebih dahulu, kemudian naikkan nilainya.
Ini adalah konsep yang sangat penting.
6. Pre-Increment ++a
Mari kita lihat contoh:
int a = 10;
int result = ++a;
print(result);
Apa yang terjadi?
Awalnya:
a = 10
Kita melakukan:
++a
Karena ini pre-increment, nilai a dinaikkan terlebih dahulu:
10 β 11
Baru kemudian nilai tersebut diberikan kepada result.
Jadi:
a = 11
result = 11
Output:
11
7. Urutan Pre-Increment
Anggap saja prosesnya:
a = 10
++a
β
a dinaikkan
β
a = 11
β
nilai 11 digunakan
β
result = 11
Jadi:
int result = ++a;
secara konsep bisa kamu bayangkan seperti:
a = a + 1;
int result = a;
Untuk memahami konsepnya, cara berpikir seperti ini sangat membantu.
8. Post-Increment a++
Sekarang:
int b = 10;
int result = b++;
print(result);
Awalnya:
b = 10
Karena b++ adalah post-increment, nilai b digunakan terlebih dahulu.
Jadi:
result = 10
Setelah itu barulah b dinaikkan:
b = 11
Hasil akhirnya:
result = 10
b = 11
Output:
10
9. Ini Perbedaan Utama Pre dan Post
Perhatikan baik-baik:
Pre-increment
int a = 10;
int result = ++a;
Hasil:
a = 11
result = 11
Urutannya:
naikkan β gunakan
Post-increment
int b = 10;
int result = b++;
Hasil:
b = 11
result = 10
Urutannya:
gunakan β naikkan
10. Kenapa di Awal Video Hasilnya Sama?
Caption menunjukkan contoh:
int a = 10;
int b = 10;
++a;
b++;
print(a);
print(b);
Hasilnya:
11
11
Kelihatannya:
“Bukankah pre dan post sama saja?”
Dalam kasus ini nilai akhir variabel memang sama.
Keduanya akhirnya menaikkan nilai sebesar 1.
a: 10 β 11
b: 10 β 11
Perbedaannya baru terlihat ketika nilai ekspresi ++a atau b++ dipakai dalam assignment atau ekspresi lain.
Contoh:
int a = 10;
int x = ++a;
dibanding:
int b = 10;
int y = b++;
Sekarang perbedaannya terlihat:
x = 11
y = 10
11. Visualisasi yang Sangat Mudah
Bayangkan ada sebuah kotak bernama a.
Awalnya:
a
ββββββ
β 10 β
ββββββ
Pre-increment
++a
Dart melakukan:
10 β 11
baru menggunakan nilainya.
Jadi:
a = 11
Post-increment
a++
Dart menggunakan:
10
terlebih dahulu.
Kemudian:
10 β 11
Jadi kalau nilainya dimasukkan ke variabel lain:
result = 10
a = 11
12. Decrement Juga Memiliki Konsep yang Sama
Sekarang kita masuk ke --.
Ada:
--a
dan:
a--
Prinsipnya sama persis dengan increment.
Bedanya hanya:
Increment menambah 1, decrement mengurangi 1.
13. Pre-Decrement --a
Contoh:
int a = 10;
int result = --a;
print(result);
Awalnya:
a = 10
Karena --a adalah pre-decrement, nilai dikurangi terlebih dahulu:
10 β 9
Baru digunakan.
Jadi:
a = 9
result = 9
Output:
9
14. Post-Decrement a--
Sekarang:
int b = 10;
int result = b--;
print(result);
Awalnya:
b = 10
Karena b-- adalah post-decrement, nilai digunakan terlebih dahulu:
result = 10
Setelah itu nilai b dikurangi:
b = 9
Jadi:
result = 10
b = 9
15. Perbandingan Keempat Operator
Ini bagian yang paling penting untuk diingat.
Misalnya semua dimulai dari 10.
Pre-increment
int a = 10;
int result = ++a;
Hasil:
a = 11
result = 11
Post-increment
int b = 10;
int result = b++;
Hasil:
b = 11
result = 10
Pre-decrement
int c = 10;
int result = --c;
Hasil:
c = 9
result = 9
Post-decrement
int d = 10;
int result = d--;
Hasil:
d = 9
result = 10
16. Tabel Hafalan
| Operator | Nama | Apa yang dilakukan? | Nilai yang digunakan |
|---|---|---|---|
++a | Pre-increment | Tambah 1 dulu | Nilai baru |
a++ | Post-increment | Gunakan dulu, tambah 1 | Nilai lama |
--a | Pre-decrement | Kurang 1 dulu | Nilai baru |
a-- | Post-decrement | Gunakan dulu, kurang 1 | Nilai lama |
Kalau mau dibuat super sederhana:
PRE β ubah dulu β gunakan
POST β gunakan dulu β ubah
Dan:
++ β +1
-- β -1
17. Rumus Mental yang Mudah
Kalau kamu melihat:
++a
langsung pikir:
“Tambah dulu.”
Kalau:
a++
pikir:
“Pakai dulu, tambah.”
Kalau:
--a
pikir:
“Kurang dulu.”
Kalau:
a--
pikir:
“Pakai dulu, kurang.”
Ini akan sangat membantu saat mengerjakan soal.
18. Contoh yang Sering Membingungkan
Perhatikan:
int a = 5;
print(a++);
print(a);
Apa hasilnya?
Mari kita ikuti.
Awalnya:
a = 5
Baris:
print(a++);
adalah post-increment.
Nilai yang digunakan untuk print adalah nilai lama:
5
Setelah itu a bertambah:
a = 6
Kemudian:
print(a);
menghasilkan:
6
Jadi output:
5
6
19. Bandingkan dengan ++a
Sekarang:
int a = 5;
print(++a);
print(a);
Awalnya:
a = 5
++a berarti tambah dulu:
5 β 6
Kemudian nilai 6 diberikan ke print.
Output pertama:
6
Dan a sekarang memang 6.
Output kedua:
6
Jadi:
6
6
20. Contoh Decrement
Sekarang:
int a = 5;
print(a--);
print(a);
Awalnya:
a = 5
a-- berarti gunakan dulu:
print β 5
kemudian kurangi:
a = 4
Output:
5
4
Sedangkan:
int a = 5;
print(--a);
print(a);
akan menghasilkan:
4
4
Karena nilai dikurangi terlebih dahulu.
21. Increment dan Decrement Sering Digunakan dalam Loop
Ini salah satu alasan mengapa operator ++ dan -- penting.
Misalnya nanti kita belajar perulangan:
for (int i = 0; i < 5; i++) {
print(i);
}
Di sini:
i++
berarti:
Setiap selesai satu putaran, naikkan
isebanyak 1.
Hasilnya:
0
1
2
3
4
Jadi operator increment sangat sering digunakan dalam loop/perulangan.
22. Contoh Penggunaan Decrement
Misalnya kita ingin menghitung mundur:
for (int i = 5; i > 0; i--) {
print(i);
}
Hasil:
5
4
3
2
1
Setiap putaran:
i--
mengurangi nilai i sebesar 1.
23. Apakah a++ Sama dengan a = a + 1?
Kalau tujuan kita hanya mengubah nilai variabel:
a++;
secara konsep berarti:
a = a + 1;
Begitu juga:
a--;
secara konsep berarti:
a = a - 1;
Namun ketika operator tersebut menjadi bagian dari ekspresi, perbedaan pre dan post menjadi penting.
Contohnya:
int a = 10;
int x = a++;
tidak sama perilakunya dengan:
int a = 10;
int x = ++a;
24. Cara Membaca Kode Pre/Post
Kalau kamu menemukan kode seperti:
int x = ++a;
jangan langsung melihat simbolnya sebagai sesuatu yang rumit.
Baca dari kata:
Pre β sebelum
Maka:
a dinaikkan dulu
β
baru nilainya diberikan ke x
Sedangkan:
int x = a++;
baca:
Post β setelah
Maka:
nilai a diberikan ke x dulu
β
baru a dinaikkan
25. Contoh Lengkap
Coba perhatikan program ini:
void main() {
int a = 10;
int b = 10;
int preIncrement = ++a;
int postIncrement = b++;
print(preIncrement);
print(postIncrement);
print(a);
print(b);
}
Mari kita telusuri.
a
Awalnya:
a = 10
Kemudian:
int preIncrement = ++a;
Tambah dulu:
a = 11
Kemudian:
preIncrement = 11
b
Awalnya:
b = 10
Kemudian:
int postIncrement = b++;
Gunakan dulu:
postIncrement = 10
Kemudian:
b = 11
Jadi hasil akhirnya:
preIncrement = 11
postIncrement = 10
a = 11
b = 11
26. Kesalahan yang Sering Dilakukan Pemula
Kesalahan 1: Mengira ++a dan a++ selalu menghasilkan nilai yang sama
Tidak selalu.
Kalau hanya:
a++;
dan:
++a;
nilai akhir a memang sama-sama bertambah 1.
Tetapi:
int x = ++a;
berbeda dengan:
int x = a++;
karena nilai yang digunakan berbeda.
Kesalahan 2: Lupa bahwa post tetap mengubah variabel
Misalnya:
int a = 10;
int x = a++;
print(x);
print(a);
Output:
10
11
Jangan mengira a++ tidak menambah nilai.
Tetap menambah.
Hanya saja penambahannya terjadi setelah nilai awal digunakan.
Kesalahan 3: Mengira -- berarti angka negatif
Misalnya:
a--;
Ini bukan berarti membuat a menjadi negatif.
-- berarti:
kurangi nilai sebesar 1.
Contoh:
10 β 9
5 β 4
1 β 0
Kalau:
-5 β -6
tetap berkurang 1.
27. Cara Paling Mudah Menghafalnya
Gunakan tabel kecil ini:
PRE POST
++ tambah dulu pakai dulu, tambah
-- kurang dulu pakai dulu, kurang
Atau:
PRE = sebelum digunakan
POST = setelah digunakan
Kemudian:
++ = naik 1
-- = turun 1
28. Latihan Mental
Coba jawab tanpa menjalankan program.
Soal 1
int a = 10;
int b = ++a;
Berapa nilai a dan b?
Jawaban:
a = 11
b = 11
Karena ++a β tambah dulu.
Soal 2
int a = 10;
int b = a++;
Jawaban:
a = 11
b = 10
Karena a++ β gunakan dulu, baru tambah.
Soal 3
int a = 10;
int b = --a;
Jawaban:
a = 9
b = 9
Soal 4
int a = 10;
int b = a--;
Jawaban:
a = 9
b = 10
29. Kesimpulan Besar
Jadi, seluruh materi video ini sebenarnya berputar pada dua konsep utama:
Increment
++
Menambah nilai sebanyak 1.
Contoh:
10 β 11
Decrement
--
Mengurangi nilai sebanyak 1.
Contoh:
10 β 9
Kemudian masing-masing memiliki dua bentuk:
PRE POST
++a a++
--a a--
Dan perbedaannya:
PRE β perubahan dilakukan sebelum nilai digunakan
POST β nilai digunakan sebelum perubahan dilakukan
π§ Cheat Sheet
Simpan pola ini di kepala:
++a
β
TAMBAH DULU
β
GUNAKAN
a++
β
GUNAKAN DULU
β
TAMBAH
--a
β
KURANG DULU
β
GUNAKAN
a--
β
GUNAKAN DULU
β
KURANG
Kalau kamu sudah benar-benar memahami “pre = ubah dulu” dan “post = gunakan dulu”, materi increment/decrement ini sebenarnya sudah kamu kuasai. Konsep ini nantinya akan sangat sering muncul ketika kita masuk ke perulangan (for, while) dan conditional logic.