Dart

Dart Basics Tutorial: Variables, Collections, and Control Flow

February 10, 2024 Updated: February 10, 2024
Dart Basics Tutorial: Variables, Collections, and Control Flow

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');
});
Back to Blogs