Operator adalah simbol yang digunakan untuk melakukan operasi terhadap satu atau lebih nilai (operan). Dart menyediakan berbagai jenis operator yang powerful, termasuk beberapa operator khusus yang tidak ada di bahasa lain.
int a = 10;
int b = 3;
print(a + b); // 13 — penjumlahan
print(a - b); // 7 — pengurangan
print(a * b); // 30 — perkalian
print(a / b); // 3.333... — pembagian (hasilnya double)
print(a ~/ b); // 3 — pembagian bulat (integer division)
print(a % b); // 1 — modulo (sisa bagi)
print(-a); // -10 — negasi
Selalu menghasilkan nilai bool:
int x = 10;
int y = 20;
print(x == y); // false — sama dengan
print(x != y); // true — tidak sama dengan
print(x < y); // true — kurang dari
print(x > y); // false — lebih dari
print(x <= y); // true — kurang dari atau sama dengan
print(x >= y); // false — lebih dari atau sama dengan
bool p = true;
bool q = false;
print(p && q); // false — AND (keduanya harus true)
print(p || q); // true — OR (salah satu cukup true)
print(!p); // false — NOT (membalik nilai)
Contoh penggunaan nyata:
int umur = 20;
bool punyaSIM = true;
if (umur >= 17 && punyaSIM) {
print('Boleh mengemudi');
}
bool libur = true;
bool hujan = false;
if (libur || !hujan) {
print('Bisa jalan-jalan!');
}
int nilai = 10;
nilai += 5; // sama dengan: nilai = nilai + 5 → 15
nilai -= 3; // sama dengan: nilai = nilai - 3 → 12
nilai *= 2; // sama dengan: nilai = nilai * 2 → 24
nilai ~/= 5; // sama dengan: nilai = nilai ~/ 5 → 4
nilai %= 3; // sama dengan: nilai = nilai % 3 → 1
int i = 5;
i++; // i = 6 (post-increment)
++i; // i = 7 (pre-increment)
i--; // i = 6 (post-decrement)
--i; // i = 5 (pre-decrement)
// Perbedaan pre vs post:
int a = 5;
print(a++); // tampilkan 5 DULU, lalu tambah → a = 6
print(++a); // tambah DULU menjadi 7, lalu tampilkan → 7
Dart memiliki operator khusus yang sangat berguna untuk menangani nilai null:
?? — Null Coalescing:
String? nama;
print(nama ?? 'Anonim'); // 'Anonim' — gunakan kanan jika kiri null
String? kota;
String tempat = kota ?? 'Jakarta'; // 'Jakarta'
?. — Null-Safe Access:
String? teks;
print(teks?.length); // null — tidak error meski teks null
print(teks?.toUpperCase()); // null
String? nama = 'Budi';
print(nama?.length); // 4
??= — Null Assignment:
String? nama;
nama ??= 'Anonim'; // hanya assign jika masih null
print(nama); // 'Anonim'
nama ??= 'Budi'; // tidak mengubah karena sudah ada nilainya
print(nama); // tetap 'Anonim'
Versi singkat dari if-else dalam satu baris:
// kondisi ? nilai_jika_true : nilai_jika_false
int nilai = 75;
String hasil = nilai >= 60 ? 'Lulus' : 'Tidak Lulus';
print(hasil); // 'Lulus'
bool gelap = true;
String tema = gelap ? 'dark' : 'light';
print(tema); // 'dark'
| Kategori | Operator |
|---|---|
| Aritmatika | +, -, *, /, ~/, % |
| Perbandingan | ==, !=, <, >, <=, >= |
| Logika | &&, ` |
| Penugasan | =, +=, -=, *=, ~/=, %= |
| Increment/Decrement | ++, -- |
| Null-Aware | ??, ?., ??= |
| Ternary | ? : |
💡 Tips: Pelajari operator null-aware Dart (
??,?.,??=) dengan baik — ini adalah fitur yang sangat berguna dan sering digunakan dalam kode Flutter sehari-hari. Operator ini membuat kode lebih aman dan lebih ringkas dibandingkan menulisif (x != null) { ... }secara manual. 🎯
Kursus
Dart Dasar
Kategori
Tipe Data & Operator
Durasi Pelajaran
20 menit