Collections data adalah struktur yang digunakan untuk menyimpan dan megelola sekumpulan data. Jadi kita tidak perlu membuat satu persatu dalam menyimpan data, dengan collections data ini kita bisa menyimpan beberapa nilai atau objek bersama-sama dalam satu entitas.
Pada program dart terdapat beberapa collections data di antaranya List
, map
, dan set
. Yuk mari kita bahas agar lebih paham.
1. List
(Array)
List
adalah koleksi ordered (terurut) yang menyimpan elemen dengan indeks numerik (dimulai dari 0).
Contoh deklarasi
List<int> numbers = [1, 2, 3, 4]; // List dengan tipe int
var names = ['Alice', 'Bob', 'Charlie']; // List dengan tipe inferred (String)
List<dynamic> mixed = [1, 'Dart', true]; // List dengan berbagai tipe
Operasi Dasar pada List
-
Akses Elemen:
print(names[0]); // Output: Alice
-
Menambah Elemen:
names.add('Diana'); // Menambah di akhir
names.insert(1, 'Eve'); // Menyisipkan di indeks 1
-
Menghapus Elemen:
names.remove('Bob'); // Hapus berdasarkan nilai
names.removeAt(0); // Hapus berdasarkan indeks
-
Spread Operator (...
) untuk menggabungkan list:
var newList = [...numbers, 5, 6]; // [1, 2, 3, 4, 5, 6]
-
Collection if
dan for
untuk list dinamis:
bool isAdmin = true;
var menuItems = [
'Home',
'Profile',
if (isAdmin) 'Admin Panel', // Hanya ditambahkan jika isAdmin = true
];
var squares = [for (var n in numbers) n * n]; // [1, 4, 9, 16]
2. Map
(Key-Value Pair)
Map adalah koleksi unordered yang menyimpan data dalam bentuk pasangan key-value (mirip dictionary di Python atau objek di JavaScript).
Contoh Deklarasi Map
Map<String, int> ages = {
'Alice': 25,
'Bob': 30,
'Charlie': 22,
};
var person = {
'name': 'Diana',
'age': 28,
'isStudent': false,
};
Operasi Dasar pada Map
-
Akses Nilai:
print(ages['Alice']); // Output: 25
-
Menambah/Update Entri:
ages['Diana'] = 28; // Menambah key baru
ages['Bob'] = 31; // Update nilai Bob
-
Menghapus Entri:
ages.remove('Charlie');
-
Cek Key/Value:
print(ages.containsKey('Alice')); // true
print(ages.containsValue(30)); // true
3. Set
(Koleksi Unik)
Set
adalah koleksi unordered yang hanya menyimpan nilai unik (tidak ada duplikat).
Contoh Deklarasi Set
Set<String> fruits = {'Apple', 'Banana', 'Orange'};
var uniqueNumbers = {1, 2, 3, 3, 4}; // {1, 2, 3, 4} (duplikat dihapus)
Operasi Dasar pada Set
-
Menambah Elemen:
fruits.add('Mango');
-
Menghapus Elemen:
fruits.remove('Apple');
-
Operasi Himpunan (Union, Intersection, dll.):
var setA = {1, 2, 3};
var setB = {3, 4, 5};
print(setA.union(setB)); // {1, 2, 3, 4, 5}
print(setA.intersection(setB)); // {3}
Perbandingan List, Map, dan Set
Fitur |
List |
Map |
Set |
Order |
✔️ (Indeks) |
❌ (Key-based) |
❌ (Unordered) |
Duplikat |
✔️ Diizinkan |
❌ Key unik |
❌ Nilai unik |
Akses |
By index ([0] ) |
By key (['a'] ) |
Tidak langsung |
Use Case |
Data berurutan |
Data berpasangan |
Koleksi unik |
Kesimpulan
Ternyata tidak hanya menyimpan data satu saja seperti membuat varibel lalu di isi, dengan List
, map
dan set
kita bisa menyimpan data lebih dari satu.
Selanjutnya kita akan membahas Pemrograman Berorientasi Objek (OOP) dalam Dart.