unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Operator

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 nilai double.
  • ~/: Pembagian dua operan, menghasilkan nilai int (pembagian bilangan bulat).
  • %: Modulus, menghasilkan sisa pembagian dua operan.
  • ++: Increment, menambah nilai operan dengan 1 (prefix ++x dan postfix x++).
  • --: Decrement, mengurangi nilai operan dengan 1 (prefix --x dan postfix x--).

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, menghasilkan true jika kedua operan bernilai true.
  • ||: OR logika, menghasilkan true jika salah satu operan bernilai true.
  • !: NOT logika, membalik nilai boolean (dari true menjadi false 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 adalah null.

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: Mengevaluasi expr1 jika condition bernilai true, dan expr2 jika condition bernilai false.

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 adalah null.
  • ?.: Digunakan untuk mengakses anggota dari objek yang bisa null. Jika objek null, ekspresi akan mengembalikan null tanpa memicu kesalahan.
  • ??=: Menetapkan nilai di sebelah kanan jika variabel di sebelah kiri adalah null.

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, menghasilkan true atau false.
  • 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 seperti List atau Map.
  • []=: Digunakan untuk menetapkan nilai ke indeks tertentu dalam List atau Map.

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.

« Tipe Data
Seleksi Kondisi »