Operator #
Operator adalah simbol atau kata kunci yang digunakan untuk melakukan operasi pada satu atau lebih operan (variabel atau nilai). Dart, seperti banyak bahasa pemrograman lainnya, memiliki berbagai jenis operator yang digunakan untuk melakukan operasi matematika, logika, perbandingan, dan lain-lain. Memahami operator yang tersedia dalam Dart adalah kunci untuk menulis kode yang efektif dan efisien.
Operator Aritmatika #
Operator aritmatika digunakan untuk melakukan operasi matematika dasar seperti penjumlahan, pengurangan, perkalian, pembagian, dan lainnya.
+
: Penjumlahan dua operan.-
: Pengurangan dua operan.*
: Perkalian dua operan./
: Pembagian dua operan, menghasilkan nilaidouble
.~/
: Pembagian dua operan, menghasilkan nilaiint
(pembagian bilangan bulat).%
: Modulus, menghasilkan sisa pembagian dua operan.++
: Increment, menambah nilai operan dengan 1 (prefix++x
dan postfixx++
).--
: Decrement, mengurangi nilai operan dengan 1 (prefix--x
dan postfixx--
).
Contoh:
void main() {
int a = 10;
int b = 3;
print(a + b); // Output: 13
print(a - b); // Output: 7
print(a * b); // Output: 30
print(a / b); // Output: 3.3333333333333335
print(a ~/ b); // Output: 3
print(a % b); // Output: 1
int c = 5;
print(++c); // Output: 6 (prefix increment)
print(c++); // Output: 6 (postfix increment, nilai c akan menjadi 7 setelah baris ini)
}
Operator Perbandingan #
Operator perbandingan digunakan untuk membandingkan dua operan dan menghasilkan nilai boolean (true
atau false
).
==
: Sama dengan.!=
: Tidak sama dengan.>
: Lebih besar dari.<
: Lebih kecil dari.>=
: Lebih besar dari atau sama dengan.<=
: Lebih kecil dari atau sama dengan.
Contoh:
void main() {
int a = 10;
int b = 20;
print(a == b); // Output: false
print(a != b); // Output: true
print(a > b); // Output: false
print(a < b); // Output: true
print(a >= b); // Output: false
print(a <= b); // Output: true
}
Operator Logika #
Operator logika digunakan untuk melakukan operasi logika pada nilai boolean.
&&
: AND logika, menghasilkantrue
jika kedua operan bernilaitrue
.||
: OR logika, menghasilkantrue
jika salah satu operan bernilaitrue
.!
: NOT logika, membalik nilai boolean (daritrue
menjadifalse
atau sebaliknya).
Contoh:
void main() {
bool x = true;
bool y = false;
print(x && y); // Output: false
print(x || y); // Output: true
print(!x); // Output: false
}
Operator Penugasan #
Operator penugasan digunakan untuk menetapkan nilai ke variabel.
=
: Menetapkan nilai di sebelah kanan ke variabel di sebelah kiri.+=
: Menambah nilai di sebelah kanan ke variabel di sebelah kiri.-=
: Mengurangi nilai di sebelah kanan dari variabel di sebelah kiri.*=
: Mengalikan nilai di sebelah kanan dengan variabel di sebelah kiri./=
: Membagi variabel di sebelah kiri dengan nilai di sebelah kanan.~/=
: Membagi bilangan bulat variabel di sebelah kiri dengan nilai di sebelah kanan.%=
: Menetapkan sisa pembagian variabel di sebelah kiri dengan nilai di sebelah kanan.??=
: Menetapkan nilai di sebelah kanan ke variabel di sebelah kiri jika variabel di sebelah kiri adalahnull
.
Contoh:
void main() {
int a = 10;
a += 5; // Sama dengan a = a + 5
print(a); // Output: 15
a -= 2; // Sama dengan a = a - 2
print(a); // Output: 13
a *= 2; // Sama dengan a = a * 2
print(a); // Output: 26
a /= 2; // Sama dengan a = a / 2
print(a); // Output: 13.0
int? b;
b ??= 10; // Menetapkan b ke 10 karena b adalah null
print(b); // Output: 10
}
Operator Bitwise #
Operator bitwise digunakan untuk melakukan operasi pada level bit.
&
: AND bitwise.|
: OR bitwise.^
: XOR bitwise.~
: NOT bitwise (menghasilkan komplemen bit).<<
: Shift kiri, menggeser bit ke kiri.>>
: Shift kanan, menggeser bit ke kanan.
Contoh:
void main() {
int a = 5; // 0101 dalam biner
int b = 3; // 0011 dalam biner
print(a & b); // Output: 1 (0001 dalam biner)
print(a | b); // Output: 7 (0111 dalam biner)
print(a ^ b); // Output: 6 (0110 dalam biner)
print(~a); // Output: -6 (komplemen dari 0101 adalah 1010, yang berarti -6 dalam biner)
print(a << 1); // Output: 10 (0101 menjadi 1010)
print(a >> 1); // Output: 2 (0101 menjadi 0010)
}
Operator Kondisional (Ternary Operator) #
Operator kondisional (ternary operator) digunakan untuk menulis pernyataan if-else
dalam bentuk yang lebih singkat.
condition ? expr1 : expr2
: Mengevaluasiexpr1
jikacondition
bernilaitrue
, danexpr2
jikacondition
bernilaifalse
.
Contoh:
void main() {
int angka = 10;
String hasil = angka > 5 ? 'Lebih besar dari 5' : '5 atau lebih kecil';
print(hasil); // Output: Lebih besar dari 5
}
Operator Null-aware #
Dart memiliki beberapa operator khusus yang digunakan untuk menangani nilai null
.
??
: Mengembalikan nilai sebelah kanan jika sebelah kiri adalahnull
.?.
: Digunakan untuk mengakses anggota dari objek yang bisanull
. Jika objeknull
, ekspresi akan mengembalikannull
tanpa memicu kesalahan.??=
: Menetapkan nilai di sebelah kanan jika variabel di sebelah kiri adalahnull
.
Contoh:
void main() {
String? nama;
String hasil = nama ?? 'Nama tidak diketahui';
print(hasil); // Output: Nama tidak diketahui
nama = 'Alice';
print(nama?.toUpperCase()); // Output: ALICE
int? angka;
angka ??= 5;
print(angka); // Output: 5
}
Operator Type Test #
Operator ini digunakan untuk memeriksa tipe objek atau untuk melakukan casting.
is
: Mengecek apakah objek adalah tipe tertentu, menghasilkantrue
ataufalse
.is!
: Mengecek apakah objek bukan tipe tertentu.as
: Meng-cast objek ke tipe tertentu.
Contoh:
void main() {
var x = 10;
if (x is int) {
print('x adalah int'); // Output: x adalah int
}
if (x is! String) {
print('x bukan String'); // Output: x bukan String
}
var y = 'Hello' as String;
print(y.toUpperCase()); // Output: HELLO
}
Operator Lainnya #
..
: Cascading operator, digunakan untuk mengalirkan hasil dari satu metode ke metode lainnya pada objek yang sama.[]
: Digunakan untuk mengakses elemen dalam koleksi sepertiList
atauMap
.[]=
: Digunakan untuk menetapkan nilai ke indeks tertentu dalamList
atauMap
.
Contoh:
class Poin {
int x, y;
Poin(this.x, this.y);
void setX(int x) => this.x = x;
void setY(int y) => this.y = y;
}
void main() {
Poin p = Poin(0, 0)
..setX(10)
..setY(20);
print('Poin: (${p.x}, ${p.y})'); // Output: Poin: (10, 20)
}
Kesimpulan #
Operator dalam Dart adalah alat penting yang memungkinkan Anda menulis ekspresi dan kontrol alur dengan cara yang efisien dan fleksibel. Dari operator aritmatika, perbandingan, logika, hingga operator khusus seperti null-aware dan cascading, Dart menyediakan beragam operator yang bisa Anda gunakan untuk mengimplementasikan berbagai logika dalam program Anda. Memahami berbagai operator dan cara kerjanya adalah langkah penting untuk menjadi pengembang Dart yang lebih produktif.