Lompat ke konten utama
←

Flutter Dasar: Dart, Widget, dan State

Pelajaran 1 dari 18

Dart, bahasa di balik Flutter

Variabel, tipe, dan null safety

Setelah pelajaran ini kamu bisa membaca deklarasi var, final, dan const, membedakan tipe nullable dari non-nullable, dan memprediksi hasil ??, ?., serta ! pada nilai null.

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

Pelajaran pertama bisa dicoba tanpa akun. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya dan membuka pelajaran berikutnya

Materi

Aplikasi Flutter ditulis dengan Dart. Program Dart dimulai dari fungsi main, dan print mencetak satu baris. Variabel dibuat dengan var bila tipenya cukup ditebak dari nilai awal, atau dengan menulis tipenya langsung: int untuk bilangan bulat, double untuk pecahan, String untuk teks, dan bool untuk benar atau salah. final berarti variabel hanya boleh diisi sekali, sedangkan const berarti nilainya sudah harus diketahui saat kompilasi. Di dalam teks, $nama dan ${ekspresi} menyisipkan nilai.

void main() {
  var kota = 'Makassar'; // tipe String ditebak dari nilainya
  int jumlah = 3;
  double berat = 1.5;
  String? catatan; // boleh null; tanpa nilai awal isinya null
  print('$kota ${jumlah * 2} ${berat * 2}'); // Makassar 6 3.0
  print(catatan ?? '-'); // -
  print(7 / 2); // 3.5
  print(7 ~/ 2); // 3
}

Sejak Dart 3, setiap tipe tidak boleh null kecuali diberi tanda tanya. String nama tidak pernah null; String? catatan boleh null. Analyzer Dart memeriksa ini saat kode ditulis, sebelum aplikasi berjalan, sehingga memanggil catatan.length pada String? langsung ditolak karena nilainya mungkin null. Ada tiga alat untuk nilai yang mungkin null. a ?? b memberi a bila a tidak null, selain itu b. a?.length memberi null bila a null, tanpa galat. a! menyuruh analyzer menganggap a tidak null; bila ternyata null, aplikasi berhenti saat berjalan. Setelah variabel lokal diisi nilai bukan null, Dart memperlakukannya sebagai tidak null sampai diubah lagi.

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?

void main() {
  final kotaCabang = {'C01': 'Bandung', 'C03': 'Kupang'};
  String? kota = kotaCabang['C02'];
  print(kota?.length);
  print(kota ?? 'Belum diisi');
  kota = 'Bandung';
  print(kota.length);
}
Pilih satu jawaban

Latihan 2 dari 3

Program ini ditolak sebelum berjalan. Apa sebabnya?

void main() {
  String nama = 'Dewi';
  String? panggilan;
  int panjang = panggilan.length;
  print('$nama $panjang');
}
Pilih satu jawaban

Latihan 3 dari 3

Program ini ditolak analyzer. Baris mana penyebabnya?

void main() {
  final dibuka = DateTime.now();
  const tarifParkir = 3000;
  const ditutup = DateTime.now();
  print('$dibuka $tarifParkir $ditutup');
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke