Pernah nggak kamu bingung, "kok program gue error terus padahal logikanya bener?" — 90% kasusnya karena salah kelola variabel dan tipe data Dart. Ini bukan lebay; ini fakta yang dialami hampir semua pemula. Di artikel kedua seri Dart From Zero to Zorro ini, kita akan bedah tuntas cara Dart menyimpan data, jenis-jenis tipe data yang tersedia, cara deklarasi variabel yang benar, sampai operator yang wajib kamu kuasai. Siap? Kita mulai dari dasar — tapi dijamin nggak bakal membosankan.
📦 Variabel di Dart: Loker Penyimpanan Data Kamu
Bayangkan variabel seperti loker di gym. Kamu bisa menaruh barang (data) di dalam, memberi nama loker-nya, dan mengambilnya kapanpun kamu mau. Tanpa loker, kamu harus menggendong semua barang setiap saat — ribet banget, kan?
Di Dart, ada beberapa cara mendeklarasikan variabel. Masing-masing punya karakter dan kegunaannya sendiri.
⚙️ Sintaks Dasar Variabel
TipeDatanamaVariabel = nilai; varnamaVariabel = nilai; // tipe otomatis ditebak dynamicnamaVariabel = nilai; // bisa berubah tipe
🪜 4 Cara Deklarasi Variabel di Dart
1
Deklarasi dengan Tipe Eksplisit
Kamu menyebut sendiri tipe datanya. Paling aman dan mudah dibaca orang lain. Cocok untuk tim besar.
String nama = 'Saifi'; int umur = 25; double tinggi = 175.5;
2
Deklarasi dengan var
Dart akan menebak tipe datanya secara otomatis (type inference). Begitu diisi nilai, tipenya terkunci — tidak bisa diganti.
var kota = 'Surabaya'; // → String var tahun = 2026; // → int
3
Konstanta: final dan const
final = nilainya ditetapkan saat runtime, tidak bisa diubah lagi. const = nilainya sudah pasti sejak compile time — lebih ketat, lebih cepat.
final namaAplikasi = 'TodoApp'; const pi = 3.14159;
4
Tipe dynamic — Si Bunglon
Bisa menyimpan tipe apapun dan bisa berubah-ubah. Fleksibel, tapi hindari overuse karena bisa menyembunyikan bug yang susah dilacak.
dynamic data = 'teks dulu'; data = 42; // valid! data = true; // juga valid!
💡 Tips Pemula
Mulai dengan tipe eksplisit dulu. Setelah terbiasa, baru pakai var. Hindari dynamic sampai kamu benar-benar paham konsekuensinya.
🗂️ Tipe Data di Dart: Mengenal Jenis-Jenis Data yang Bisa Disimpan
Kalau variabel adalah lokernya, maka tipe data adalah ukuran dan jenis loker itu. Kamu nggak bisa naruh bola basket di loker sepatu — sama, kamu nggak bisa naruh teks di variabel bertipe int. Dart adalah bahasa yang strongly typed, artinya ia sangat peduli dengan tipe data ini.
Inilah tipe data bawaan Dart yang wajib kamu kuasai saat mempelajari variabel dan tipe data Dart:
Tipe Data
Fungsi
Contoh Nilai
Analogi
int
Bilangan bulat
42, -5, 0
Jumlah apel di keranjang
double
Bilangan desimal
3.14, -0.5
Berat badan di timbangan
String
Teks / kalimat
'Halo Dart'
Nama di kartu identitas
bool
Benar / salah
true, false
Saklar lampu (nyala/mati)
List
Daftar / array
[1, 2, 3]
Daftar belanja
Map
Pasangan kunci-nilai
{'nama': 'Saifi'}
Kamus (kata → arti)
Null
Tidak ada nilai
null
Loker kosong
🔥 Fakta Menarik
Di Dart, semua tipe data adalah object — termasuk angka dan boolean. Ini beda dari banyak bahasa lain yang punya "primitive types" terpisah. Jadi secara teknis, int di Dart pun bisa punya method!
contoh_tipe_data.dart
// ── Contoh Variabel dan Tipe Data Dart ──void main() {
// int — bilangan bulatint umur = 22;
// double — bilangan desimaldouble nilaiUjian = 87.5;
// String — teksString nama = 'Budi Santoso';
// bool — ya/tidakbool sudahLulus = true;
// List — daftar nilaiList<String> mataKuliah = ['Matematika', 'Fisika', 'Dart'];
// Map — pasangan kunci-nilaiMap<String, dynamic> mahasiswa = {
'nama': nama,
'umur': umur,
'nilaiUjian': nilaiUjian,
'lulus': sudahLulus,
};
print(mahasiswa);
// Output: {nama: Budi Santoso, umur: 22, nilaiUjian: 87.5, lulus: true}
}
⚡ Insight Penting: Null Safety
Dart 2.12+ punya fitur Sound Null Safety. Artinya, secara default variabel tidak boleh bernilai null. Kalau kamu mau variabel bisa null, tambahkan ? setelah tipe: String? alamat; — ini mencegah ribuan bug yang selama ini bikin developer nangis darah.
🔧 Operator di Dart: Alat Pengolah Data Kamu
Setelah punya variabel berisi data, kamu pasti ingin melakukan sesuatu dengan data itu — menghitung, membandingkan, atau menggabungkan. Di sinilah operator berperan. Operator adalah simbol khusus yang memerintahkan Dart untuk melakukan operasi tertentu.
Operator / di Dart selalu menghasilkan double, bahkan jika kamu membagi dua bilangan bulat. Gunakan ~/ (tilde-slash) untuk mendapat hasil pembagian dalam bentuk int.
💡 Tips: String Interpolation
Daripada nulis 'Halo ' + nama + '!', pakai string interpolation: 'Halo $nama!'. Jauh lebih bersih dan mudah dibaca. Kalau mau ekspresi kompleks, pakai '${a + b}'.
🚀 Praktik Langsung: Mini Program Kalkulator Sederhana
Teori tanpa praktik seperti resep masakan tanpa kompor — nggak akan kemana-mana. Yuk, coba buat program kecil yang menggabungkan semua yang sudah kita pelajari: variabel, tipe data, dan operator.
Di artikel ini, kamu sudah mempelajari konsep variabel dan tipe data Dart secara lengkap — mulai dari cara deklarasi variabel dengan berbagai keyword (var, final, const, dynamic), mengenal 7 tipe data utama Dart lengkap dengan analoginya, sampai menggunakan operator aritmatika, perbandingan, dan logika untuk mengolah data.
Yang paling penting: kamu sudah mempraktikkannya langsung lewat mini program kalkulator. Fondasi ini adalah tiket masuk ke semua konsep Dart berikutnya — percabangan, perulangan, fungsi, dan seterusnya.
✔ var / final / const✔ int, double, String, bool✔ List & Map✔ Operator Aritmatika✔ Null Safety✔ String Interpolation
💬 Bagikan Pengalaman Kamu!
Tipe data apa yang menurutmu paling membingungkan? Atau ada pertanyaan seputar variabel dan operator Dart? Tulis di kolom komentar — kita diskusi bareng! Kalau artikel ini membantu, share ke teman yang juga lagi belajar Dart. 🚀
16 artikel terstruktur dari nol sampai bisa bikin aplikasi Flutter. Setiap artikel dirancang untuk bisa langsung dipraktikkan — no fluff, all substance.
saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux
No comments:
Post a Comment