Variabel & Tipe Data
var, final, const, tipe dasar (int, double, String, bool), type inference, string interpolation, konversi tipe, dan konstanta.
Variabel: wadah bernama
Variabel adalah tempat menyimpan nilai. Di Dart kamu bisa menulis tipenya secara eksplisit, atau membiarkan Dart menebaknya (type inference) dengan var.
String nama = 'Budi'; // tipe ditulis jelas
int umur = 25;
var kota = 'Jakarta'; // Dart menebak: String
var tinggi = 170.5; // Dart menebak: double
Setelah ditebak, tipe tidak bisa berubah. kota = 5; adalah error karena kota sudah bertipe String.
Tipe data dasar
| Tipe | Isi | Contoh |
|---|---|---|
int | Bilangan bulat | 42, -7 |
double | Bilangan desimal | 3.14, 2.0 |
num | Induk dari int dan double | 5 atau 5.5 |
String | Teks | 'Halo' |
bool | Benar/salah | true, false |
List, Set, Map | Kumpulan data (bab 7) | [1, 2, 3] |
dynamic | Tipe apa saja, dicek saat jalan (hindari) |
final dan const: nilai yang tidak berubah
final namaToko = 'KelasIT'; // ditentukan saat program jalan, lalu terkunci
const pajak = 0.11; // sudah diketahui saat kompilasi
final sekarang = DateTime.now(); // OK: nilainya baru ada saat jalan
// const sekarang = DateTime.now(); // ERROR: bukan konstanta kompilasi
| Bisa diubah? | Nilai diketahui | |
|---|---|---|
var | Ya | Kapan saja |
final | Tidak (diisi sekali) | Saat program jalan |
const | Tidak | Saat kompilasi |
Kebiasaan baik: pakai final secara default; ubah ke var hanya jika nilainya memang harus berubah.
String interpolation
var nama = 'Budi';
var umur = 25;
print('Nama: $nama'); // variabel sederhana: $nama
print('Tahun depan: ${umur + 1}'); // ekspresi: ${...}
print('Panjang nama: ${nama.length}'); // pemanggilan property
String bisa memakai kutip tunggal atau ganda. Untuk teks beberapa baris pakai tiga kutip:
var puisi = '''
Baris satu
Baris dua
''';
var jalur = r'C:\data\baru'; // r = raw, tanda \ tidak diproses
Operasi angka dan konversi
int a = 7;
double b = a / 2; // 3.5 ( / selalu menghasilkan double )
int c = a ~/ 2; // 3 ( ~/ pembagian bulat )
int sisa = a % 2; // 1
int dariTeks = int.parse('42'); // teks -> int
double desimal = double.parse('3.14');
int? aman = int.tryParse('abc'); // null jika gagal (tidak error)
String teks = 42.toString(); // angka -> teks
String dua = 3.14159.toStringAsFixed(2); // '3.14'
int bulat = 3.7.round(); // 4
Dart tidak mengubah tipe diam-diam. '5' + 3 adalah error; ubah dulu dengan int.parse.
Mengecek tipe
var x = 10;
print(x.runtimeType); // int
print(x is int); // true
print(x is! String); // true
Error umum
A value of type 'String' can't be assigned to a variable of type 'int'.→ salah tipe; konversi denganint.parseatau perbaiki tipenya.Can't assign to the const variable 'x'.→ mencoba mengubahfinal/const.FormatException: Invalid number→int.parsepada teks bukan angka; gunakantryParse.