Lompat ke konten utama
←

Flutter Dasar: Dart, Widget, dan State

Pelajaran 3 dari 18

Dart, bahasa di balik Flutter

Kelas, konstruktor, dan objek

Setelah pelajaran ini kamu bisa membaca kelas Dart dengan field final, konstruktor berparameter this, konstruktor bernama, getter, dan method, lalu memprediksi nilai dan galatnya.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Kelas mengelompokkan data (field) dan perilaku (method). Konstruktor dengan parameter this.tujuan langsung mengisi field tujuan, jadi badan konstruktor tidak perlu ditulis. Pola { required this.tujuan, this.kursi = 1 } membuat konstruktor berparameter bernama, persis seperti konstruktor widget. Field final hanya diisi sekali, saat objek dibuat; mengubahnya kemudian ditolak analyzer. Bila semua field final, konstruktor boleh diberi const, dan objek yang dibuat dengan const dibangun saat kompilasi.

class Tiket {
  final String tujuan;
  final int harga;
  final int kursi;

  const Tiket({required this.tujuan, required this.harga, this.kursi = 1});

  // Konstruktor bernama: tiket rombongan berisi 10 kursi.
  const Tiket.rombongan(String tujuan, int harga)
      : this(tujuan: tujuan, harga: harga, kursi: 10);

  bool get perorangan => kursi == 1;
  int total() => harga * kursi;

  @override
  String toString() => 'Tiket ke $tujuan untuk $kursi kursi';
}

void main() {
  const a = Tiket(tujuan: 'Semarang', harga: 120000);
  const b = Tiket.rombongan('Solo', 95000);
  print(a.perorangan); // true
  print(b.total()); // 950000
  print(b); // Tiket ke Solo untuk 10 kursi
}

Getter ditulis dengan get dan dibaca tanpa kurung seperti field: a.perorangan. Getter cocok untuk nilai turunan dari field lain, seperti perorangan yang dihitung dari kursi. Method dipanggil dengan kurung: b.total(). Konstruktor bernama seperti Tiket.rombongan memberi cara lain membuat objek; di modul 4 bentuk serupa dipakai sebagai factory Produk.fromJson untuk membuat objek dari JSON. print(objek) memanggil toString(), dan kelas yang tidak menimpanya hanya mencetak Instance of diikuti nama kelasnya.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Apa yang dicetak program ini?

class Produk {
  final String nama;
  final int harga;
  final int stok;

  const Produk({required this.nama, required this.harga, this.stok = 0});

  bool get habis => stok == 0;
  int nilai() => harga * stok;
}

void main() {
  const a = Produk(nama: 'Kopi', harga: 15000, stok: 4);
  const b = Produk(nama: 'Roti', harga: 9000);
  print('${a.nilai()} ${b.habis}');
}
Pilih satu jawaban

Latihan 2 dari 3

Apa yang terjadi saat program ini dijalankan?

class Produk {
  final String nama;
  final int harga;

  const Produk({required this.nama, required this.harga});
}

void main() {
  var kopi = Produk(nama: 'Kopi', harga: 15000);
  kopi.harga = 16000;
  print(kopi.harga);
}
Pilih satu jawaban

Latihan 3 dari 3

Apa yang dicetak program ini?

class Pelanggan {
  final String nama;
  final String kota;

  Pelanggan(this.nama, this.kota);
}

void main() {
  final p = Pelanggan('Yusuf', 'Pontianak');
  print(p);
  print('${p.nama} (${p.kota})');
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke