List dalam Dart

List dalam Dart 📋

List adalah koleksi terurut yang menyimpan beberapa nilai dalam satu variabel. Di Dart, List mirip dengan array di bahasa lain, namun lebih fleksibel dan kaya fitur.


Membuat List

// List dengan nilai awal
List<String> buah = ['apel', 'mangga', 'jeruk'];
List<int> angka = [10, 20, 30, 40, 50];
List<double> harga = [15000.0, 25000.5, 30000.0];

// List kosong
List<String> kosong = [];
var daftar = <String>[];

// Menggunakan var (tipe diinfer)
var nama = ['Budi', 'Ani', 'Citra'];

Mengakses Elemen

Indeks dimulai dari 0:

List<String> buah = ['apel', 'mangga', 'jeruk', 'pisang'];

print(buah[0]);      // apel
print(buah[2]);      // jeruk
print(buah.first);   // apel (elemen pertama)
print(buah.last);    // pisang (elemen terakhir)
print(buah.length);  // 4

Menambah & Menghapus Elemen

List<String> buah = ['apel', 'mangga'];

// Tambah di akhir
buah.add('jeruk');
print(buah); // [apel, mangga, jeruk]

// Tambah banyak sekaligus
buah.addAll(['pisang', 'durian']);
print(buah); // [apel, mangga, jeruk, pisang, durian]

// Sisipkan di posisi tertentu
buah.insert(1, 'stroberi');
print(buah); // [apel, stroberi, mangga, jeruk, pisang, durian]

// Hapus berdasarkan nilai
buah.remove('mangga');

// Hapus berdasarkan indeks
buah.removeAt(0);

// Hapus semua
buah.clear();
print(buah); // []

Iterasi List

List<String> buah = ['apel', 'mangga', 'jeruk'];

// for-in (paling sederhana)
for (String item in buah) {
  print(item);
}

// forEach dengan anonymous function
buah.forEach((item) => print(item));

// for biasa dengan indeks
for (int i = 0; i < buah.length; i++) {
  print('${i + 1}. ${buah[i]}');
}

Mengecek dan Mencari

List<int> angka = [3, 1, 4, 1, 5, 9, 2, 6];

// Cek apakah elemen ada
print(angka.contains(5)); // true
print(angka.contains(7)); // false

// Cari indeks elemen
print(angka.indexOf(4)); // 2

// Urutkan (ascending, mengubah list asli)
angka.sort();
print(angka); // [1, 1, 2, 3, 4, 5, 6, 9]

// Ambil sebagian elemen
List<int> sebagian = angka.sublist(2, 5);
print(sebagian); // [2, 3, 4]

Transformasi List

List<int> angka = [1, 2, 3, 4, 5];

// Kalikan setiap elemen dengan 2
List<int> dikali2 = angka.map((x) => x * 2).toList();
print(dikali2); // [2, 4, 6, 8, 10]

// Saring hanya angka genap
List<int> genap = angka.where((x) => x % 2 == 0).toList();
print(genap); // [2, 4]

// Hitung total dengan reduce
int total = angka.reduce((a, b) => a + b);
print(total); // 15

// Periksa kondisi
print(angka.any((x) => x > 4));   // true
print(angka.every((x) => x > 0)); // true

List const dan final

// final: referensi tidak bisa diubah, isi bisa
final List<String> daftar = ['a', 'b', 'c'];
daftar.add('d'); // OK
// daftar = ['x']; // ERROR! referensi tidak bisa diganti

// const: list tidak bisa diubah sama sekali
const List<String> tetap = ['a', 'b', 'c'];
// tetap.add('d'); // ERROR! tidak bisa dimodifikasi

💡 Tips: Gunakan final saat mendeklarasikan List yang tidak perlu diganti referensinya. Untuk List yang benar-benar tidak boleh diubah, gunakan const. Metode functional seperti .map(), .where(), .reduce() jauh lebih efisien dan elegan daripada loop manual untuk transformasi data. 📊

Selanjutnya

Informasi Kursus

Kursus

Dart Dasar

Kategori

Koleksi

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini