← Kembali ke kursus
Pelajaran kursus · Dart
Pelajaran 03

Variabel dan konstanta

var, final, const, type inference, dynamic.

Pahami konsepnya

Dart punya tiga kata kunci deklarasi: var (tipe disimpulkan, bisa re-assign), final (diisi sekali, runtime), const (compile-time constant). var nama = "Ari" menghasilkan String yang tidak bisa diubah tipenya tapi bisa re-assign. final berhenti setelah diisi. const harus bisa dihitung saat kompilasi.

Tipe eksplisit: String nama = "Ari"; int umur = 17; — selalu opsional karena var menebak. dynamic adalah tipe yang BISA berubah tipe — hindari kecuali benar-benar perlu (JSON decode).

Perbedaan final vs const: final DateTime now = DateTime.now() sah (runtime); const DateTime now = DateTime.now() ERROR (bukan compile-time). const untuk nilai literal: const pi = 3.14.

Coba contoh kode

void main() {
  var nama = "Ari";       // String, bisa re-assign
  final umur = 17;         // int, tidak bisa re-assign
  const pi = 3.14159;      // compile-time constant

  nama = "Budi";           // OK — var re-assignable
  // umur = 18;            // ERROR — final

  final sekarang = DateTime.now();  // OK — runtime
  // const sekarang2 = DateTime.now(); // ERROR — bukan compile-time

  print("$nama $umur $pi");
  print(sekarang);
}

var untuk nilai yang berubah, final untuk nilai sekali isi, const untuk literal compile-time. DateTime.now() hanya final karena nilainya baru diketahui saat runtime.

Latihan singkat

Uji: final nama = "Ari"; int umur = 17; cetak `Ari berumur 18 tahun depan` (umur+1).