Operator Aritmatika Biner Dasar
Digunakan untuk operasi dua bilangan, ada total 7 jenis, meliputi empat operasi hitung biasa, pembagian bulat, sisa bagi, operator negasi unary
| Operator | Keterangan Fungsi |
|---|---|
+ | Penjumlahan |
- | Pengurangan |
-ekspresi | Unary minus (membalik tanda bilangan) |
* | Perkalian |
/ | Pembagian biasa, hasil selalu tipe double bilangan pecahan |
~/ | Pembagian bulat, buang bagian pecahan, kembalikan tipe int |
% | Modulus (mengambil sisa hasil pembagian bulat) |
Pembagian memiliki ciri khas yang berbeda dari bahasa pemrograman lain: operator / selalu menghasilkan bilangan pecahan. Jika ingin hasil bilangan bulat pakai ~/, ini hal penting untuk pembaca yang sudah punya dasar pemrograman.
Contoh kode:
void main() {
// Uji penjumlahan, pengurangan, perkalian, pembagian, pembagian bulat dan modulus
print(2 + 3 == 5);
print(2 - 3 == -1);
print(2 * 3 == 6);
print(5 / 2 == 2.5); // Pembagian biasa menghasilkan double pecahan
print(5 ~/ 2 == 2); // Pembagian bulat hanya simpan bagian bilangan bulat int
print(5 % 2 == 1); // % ambil sisa dari pembagian bulat
// Contoh gabung string hasil bagi dan sisa
print('5/2 = ${5 ~/ 2} r ${5 % 2}' == '5/2 = 2 r 1');
}Code language: Dart (dart)
Hasil eksekusi kode

Operator Increment / Decrement
Dart mendukung dua bentuk prefix dan postfix untuk increment ++ dan decrement --. Perbedaan utama: apakah variabel diubah dulu atau nilainya diambil dulu
| Operator | Logika Kerja | Nilai yang dikembalikan ekspresi |
|---|---|---|
++var | Tambah variabel 1 terlebih dahulu, baru pakai untuk operasi | Nilai baru setelah increment |
var++ | Ambil nilai asli variabel untuk operasi, setelah selesai baru tambah variabel 1 | Nilai asli sebelum increment |
--var | Kurangi variabel 1 terlebih dahulu, baru pakai untuk operasi | Nilai baru setelah decrement |
var-- | Ambil nilai asli variabel untuk operasi, setelah selesai baru kurangi variabel 1 | Nilai asli sebelum decrement |
void main() {
int a;
int b;
// 1. Prefix increment ++a: ubah dulu, baru assign
a = 0;
b = ++a;
print(a == b); // a=1, b=1, bernilai true
// 2. Postfix increment a++: assign nilai lama dulu, baru ubah
a = 0;
b = a++;
print(a != b); // a=1, b=0, bernilai true
// 3. Prefix decrement --a: ubah dulu, baru assign
a = 0;
b = --a;
print(a == b); // a=-1, b=-1, bernilai true
// 4. Postfix decrement a--: assign nilai lama dulu, baru ubah
a = 0;
b = a--;
print(a != b); // a=-1, b=0, bernilai true
}
Code language: PHP (php)
Semua output contoh bernilai true
Penting: posisi ++ atau — di depan atau belakang variabel memberikan hasil berbeda jika ada dalam ekspresi.
Jika dipakai berdiri sendiri contohnya:
int a = 1;
++a;
int b = 1;
b++;
print(a);
print(b);Code language: PHP (php)
Kode di atas akhirnya output keduanya 2
D:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
2
2
Code language: CSS (css)
Sama halnya dengan –, variabel tetap akan bertambah atau berkurang satu.
Tapi jika ++ — ada di dalam ekspresi perhitungan contoh:
void main() {
int a = 5;
// Postfix: pakai nilai 5 dulu untuk hitung, setelah itu a jadi 6
int res1 = a++ * 2;
print(res1); // 10
print(a); // 6
int b= 5;
// Prefix: ubah b jadi 6 dulu, baru kalikan dua
int res2 = ++b * 2;
print(res2); // 12
print(b); // 6
}Code language: PHP (php)
Hasil akhir a dan b sama-sama 6, tapi res1 dan res2 berbeda hanya karena posisi ++ berbeda.
Penjelasan postfix a++: awalnya pakai nilai a=5 untuk a*2=10, simpan ke res1, baru kemudian a ditambah satu jadi 6.
Sedangkan prefix ++b: pertama b ditambah satu jadi 6, baru hitung 6*2=12 masuk ke res2.
Baris int res1 = a++ * 2; dipecah menjadi dua langkah:
int res1 = a * 2;
a = a +1;
Baris int res2 = ++b * 2; dipecah menjadi dua langkah:
b = b+1;
int res2 = b * 2;

Panduan mudah diingat:
Prefix ubah duluan, postfix pakai duluan;
Prefix kembalikan nilai baru, postfix kembalikan nilai asli.
Ringkasan
Prefix ++a / --a: ubah nilai variabel terlebih dahulu, baru pakai nilai yang sudah diubah untuk operasi atau penugasan
Postfix a++ / a--: pakai nilai asli variabel untuk operasi atau penugasan terlebih dahulu, setelah operasi selesai baru ubah variabel
Coba jalankan contoh berikut untuk latihan:
void main() {
int a = 0;
int b = ++a;
// Langkah1: a = a + 1 → a jadi 1
// Langkah2: assign nilai a yang baru (1) ke b
print(a); // 1
print(b); // 1
}
void main() {
int a = 0;
int b = a++;
// Langkah1: assign nilai lama a (0) ke b
// Langkah2: jalankan a = a + 1 → a jadi 1
print(a); // 1
print(b); // 0
}
void main() {
int a = 0;
int b = --a;
// Langkah1: a = a - 1 → a jadi -1
// Langkah2: assign nilai a yang baru (-1) ke b
print(a); // -1
print(b); // -1
}
void main() {
int a = 0;
int b = a--;
// Langkah1: assign nilai lama a (0) ke b
// Langkah2: jalankan a = a - 1 → a jadi -1
print(a); // -1
print(b); // 0
}
Di atas adalah contoh paling sederhana prefix dan postfix increment/decrement. Silakan kompilasi dan jalankan sendiri untuk merasakan perbedaannya.