Study
Dart

Constructor di Dart (Named & Factory)

Penjelasan

Dart punya fitur khas: named constructor — sebuah class bisa punya LEBIH DARI SATU constructor dengan nama berbeda (mis. Titik.origin()), berguna untuk menyediakan beberapa cara membuat object yang masuk akal. factory constructor dipakai kalau logika pembuatan object lebih rumit (mis. tidak selalu membuat instance baru, atau perlu validasi sebelum instance dibuat).

Contoh Konsep

class Titik {
  double x, y;

  Titik(this.x, this.y);

  Titik.origin() : x = 0, y = 0; // named constructor

  factory Titik.dariString(String data) { // factory constructor
    var bagian = data.split(",");
    return Titik(double.parse(bagian[0]), double.parse(bagian[1]));
  }
}

void main() {
  var p1 = Titik.origin();
  var p2 = Titik.dariString("3,4");
  print("${p1.x}, ${p1.y}"); // 0.0, 0.0
  print("${p2.x}, ${p2.y}"); // 3.0, 4.0
}

Praktikum

Buat class Siswa dengan constructor biasa Siswa(this.nama), dan named constructor Siswa.tanpaNama() yang mengisi nama dengan "Anonim". Buat dua object memakai keduanya, lalu tampilkan nama masing-masing.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

factory constructor TIDAK otomatis membuat instance baru (beda dari constructor biasa) — kamu wajib menulis logikanya sendiri dan mengembalikan object secara eksplisit lewat return, memberi fleksibilitas penuh kapan/bagaimana object dibuat.