variabelfinalconstPemula5 mnt baca

Variabel, final, dan const

Menyimpan data dengan var, final, dan const: kapan pakai yang mana dan apa bedanya.

Menyimpan data dengan variabel

Variabel adalah kotak bernama untuk menyimpan data. Di Dart, cara paling umum mendeklarasikannya:

dart
void main() {
  var nama = 'Rizky';
  var umur = 17;
  print(nama);
  print(umur);
}

Kata kunci var membuat Dart menebak tipe data dari nilai awalnya. Karena 'Rizky' adalah teks, variabel nama bertipe String selamanya. Coba ubah nama = 123; dan Dart akan protes: tipe tidak cocok.

Kamu juga bisa menulis tipenya secara eksplisit:

dart
String nama = 'Rizky';
int umur = 17;
double tinggi = 170.5;
bool lulus = true;

Penulisan eksplisit lebih jelas dibaca orang lain. Untuk seri ini kita sering pakai var supaya ringkas, tapi di proyek nyata tipe eksplisit lebih disukai.

final: sekali isi, tidak bisa diubah

final dipakai untuk nilai yang hanya diisi sekali lalu tidak berubah lagi:

dart
void main() {
  final kota = 'Bandung';
  // kota = 'Jakarta'; // ERROR: tidak bisa diubah
  print(kota);
}

Bedanya dengan var: variabel var boleh di-assign ulang, final tidak boleh.

const: nilai tetap sejak ditulis

const mirip final, tapi nilainya harus sudah diketahui saat kode ditulis (compile-time constant):

dart
void main() {
  const pi = 3.14159;
  const namaApp = 'KalkulatorKu';
  print(pi);
}

Contoh yang tidak bisa pakai const:

dart
void main() {
  // const waktu = DateTime.now(); // ERROR: nilainya baru tahu saat program jalan
  final waktu = DateTime.now(); // ini boleh, karena final diisi saat runtime
  print(waktu);
}

Aturan praktisnya: kalau nilainya literal yang kamu ketik langsung (angka, teks), pakai const. Kalau nilainya hasil perhitungan saat program jalan tapi tidak akan berubah lagi, pakai final.

Kapan pakai yang mana?

Kata kunciBisa diubah?Nilai diketahui kapan?Contoh
varYaSaat program jalancounter, input user
finalTidakSaat program jalanwaktu sekarang, hasil API
constTidakSaat kode ditulispi, nama aplikasi

Catatan teknis: Pemula sering bingung final vs const. Ingat kalimat ini: semua const itu final, tapi tidak semua final itu const. Kalau ragu, pakai final dulu, karena final tidak pernah salah untuk nilai yang tidak berubah. const hanya untuk nilai yang benar-benar tetap seperti angka dan teks literal.

Latihan cepat

Tebak output kode ini sebelum dijalankan:

dart
void main() {
  var skor = 10;
  skor = skor + 5;
  final nama = 'Skor akhir';
  print('$nama: $skor');
}

Jawabannya: Skor akhir: 15. Tanda $ di dalam string dipakai untuk menyisipkan nilai variabel, ini disebut string interpolation dan akan sering kita pakai.