Dart
Dart Basics Tutorial: Variables, Collections, and Control Flow
February 10, 2024
Updated: February 10, 2024
Dart adalah bahasa pemrograman yang dioptimalkan untuk pengembangan aplikasi cepat di berbagai platform. Mari kita eksplorasi konsep-konsep fundamental dalam pemrograman Dart secara mendalam.
Variabel dalam Dart
Dart mendukung type inference dengan var
atau penulisan tipe eksplisit:
// Contoh type inference
var nama = 'Budi';
var usia = 25;
// Penulisan tipe eksplisit
String namaLengkap = 'Budi Santoso';
int umur = 25;
double tinggi = 1.75;
bool aktif = true;
// Contoh const dan final
const pi = 3.14159;
final DateTime hariIni = DateTime.now();
Tipe Data Dasar
Dart memiliki beberapa tipe data dasar yang sering digunakan:
// Tipe numerik
int angkaInt = 42;
double angkaDouble = 42.42;
num angkaFleksibel = 42;
// String dan operasinya
String namaDepan = 'Budi';
String namaBelakang = 'Santoso';
String namaLengkap = '$namaDepan $namaBelakang';
String paragraf = '''Ini adalah
teks multi-baris
dengan triple quotes''';
// Boolean dan operasi logika
bool sudahMakan = true;
bool sudahMandi = false;
bool siapBerangkat = sudahMakan && sudahMandi;
List (Array)
List digunakan untuk menyimpan kumpulan data terurut:
// Membuat list sederhana
var angka = [1, 2, 3, 4, 5];
List buah = ['apel', 'jeruk', 'mangga'];
// List dengan tipe data campuran
var campuran = [1, 'dua', true, 4.5];
// Operasi pada list
buah.add('durian'); // Menambah item
buah.remove('apel'); // Menghapus item
buah.insert(0, 'anggur'); // Menyisipkan item
// List methods yang berguna
var angkaUrut = [3, 1, 4, 1, 5, 9];
print(angkaUrut.reversed); // Membalik urutan
angkaUrut.sort(); // Mengurutkan
// List comprehension
var lipatDua = [for(var i in angka) i * 2];
Map
Map menyimpan data dalam bentuk pasangan key-value:
// Membuat map sederhana
var siswa = {
'nama': 'Budi',
'umur': 15,
'nilai': [85, 90, 95],
'aktif': true
};
// Map dengan tipe data eksplisit
Map produk = {
'id': 'P001',
'nama': 'Laptop Gaming',
'harga': 15000000,
'stok': 10,
'spesifikasi': {
'processor': 'Intel i7',
'ram': '16GB',
'storage': '512GB SSD'
}
};
// Operasi pada map
siswa['kelas'] = 'IX-A'; // Menambah entry
siswa.remove('aktif'); // Menghapus entry
// Mengakses nested map
print(produk['spesifikasi']['processor']);
Struktur Kontrol
Dart menyediakan berbagai cara untuk mengontrol alur program:
// If-else dengan kondisi kompleks
var nilai = 85;
if (nilai >= 90) {
print('Nilai A');
} else if (nilai >= 80) {
print('Nilai B');
} else if (nilai >= 70) {
print('Nilai C');
} else {
print('Tidak Lulus');
}
// Switch case
var hari = 'Senin';
switch (hari) {
case 'Senin':
print('Hari kerja');
break;
case 'Sabtu':
case 'Minggu':
print('Akhir pekan');
break;
default:
print('Hari kerja biasa');
}
// Operator ternary dan null-aware
String? namaPengguna;
String tampilNama = namaPengguna ?? 'Tamu';
String status = nilai >= 75 ? 'Lulus' : 'Gagal';
Perulangan
Berbagai cara melakukan iterasi dalam Dart:
// For loop dasar
for (int i = 0; i < 5; i++) {
print('Iterasi ke-${i + 1}');
}
// For-in untuk koleksi
var hobi = ['Membaca', 'Menulis', 'Coding'];
for (var aktivitas in hobi) {
print('Saya suka $aktivitas');
}
// While dan do-while
int hitungan = 0;
while (hitungan < 3) {
print('Hitungan: $hitungan');
hitungan++;
}
do {
print('Dieksekusi minimal sekali');
} while (false);
// forEach dengan arrow function
hobi.forEach((h) => print('Hobi: $h'));
// forEach dengan function block
hobi.forEach((h) {
var hurufKapital = h.toUpperCase();
print('Hobi: $hurufKapital');
});