Operator dalam Dart

Operator dalam Dart ⚙️

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.


Operator Aritmatika

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

Operator Perbandingan

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

Operator Logika

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!');
}

Operator Penugasan

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

Operator Increment & Decrement

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

Operator Null-Aware (Khusus Dart)

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'

Operator Ternary

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'

Ringkasan Operator

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 menulis if (x != null) { ... } secara manual. 🎯

Sebelumnya

Informasi Kursus

Kursus

Dart Dasar

Kategori

Tipe Data & Operator

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini