Learn
← Previous Next →

Hari 8: Class & Object

60 min Last updated 09 Apr 2026

Membuat Class

class Mahasiswa {
  // Properties
  String nama;
  int umur;
  String jurusan;
  double ipk;

  // Constructor
  Mahasiswa(this.nama, this.umur, this.jurusan, this.ipk);

  // Named constructor
  Mahasiswa.baru(this.nama) : umur = 18, jurusan = "Belum ditentukan", ipk = 0.0;

  // Method
  void perkenalan() {
    print("Nama: $nama, Jurusan: $jurusan, IPK: $ipk");
  }

  bool lulus() => ipk >= 2.0;
}

void main() {
  Mahasiswa m1 = Mahasiswa("Budi", 20, "Informatika", 3.5);
  m1.perkenalan();
  print("Lulus: ${m1.lulus()}");

  Mahasiswa m2 = Mahasiswa.baru("Sari");
  m2.perkenalan();
}

Getter & Setter

class Persegi {
  double _sisi;

  Persegi(this._sisi);

  // Getter
  double get luas => _sisi * _sisi;
  double get keliling => 4 * _sisi;

  // Setter dengan validasi
  set sisi(double nilai) {
    if (nilai <= 0) throw ArgumentError("Sisi harus positif");
    _sisi = nilai;
  }
}

void main() {
  Persegi p = Persegi(5.0);
  print("Luas: ${p.luas}");       // 25.0
  print("Keliling: ${p.keliling}"); // 20.0
  p.sisi = 7.0;
  print("Luas baru: ${p.luas}");  // 49.0
}

💡 Notice: this.property di constructor otomatis assign nilai ke property.

Assignment

Buat class Mobil dengan constructor, named constructor, method, dan getter.

Expected output:

Merk: Toyota, Tahun: 2022, Harga: Rp 300000000
Antik: false
Merk: Honda, Tahun: 2000, Harga: Rp 50000000
Antik: false
Dart main.dart
Solution
Output