Salah satu koleksi data yang sangat umum digunakan dalam pemrograman adalah array. Dart merepresentasikan array dalam bentuk object List. List adalah sekumpulan object yang diatur secara terurut. Library dart:core menyediakan class List yang memungkinkan pembuatan dan manipulasi daftar atau kumpulan Object.
Representasi logika dari List dalam Dart diberikan di bawah ini :
- test_list − adalah suatu Object List.
- List tersebut berisi nilai 12, 13, dan 14. Blok memori yang menyimpan nilai-nilai tersebut dikenal sebagai element.
- Setiap elemen dalam List diidentifikasi oleh nomor unik yang disebut index. Index dimulai dari nol dan berlanjut hingga n-1, di mana n adalah jumlah total elemen dalam List. Index juga disebut sebagai subscript.
List dapat diklasifikasikan sebagai berikut :
- Fixed Length List
- Growable List
Mari kita sekarang membahas kedua jenis List ini secara detail.
Fixed Length List
Sebuah fixed length list adalah List yang ukurannya tidak dapat diubah saat runtime. Cara membuat fixed length list adalah sebagai berikut :
Langkah 1 − Mendeklarasikan sebuah List
Berikut ini adalah cara penulisan untuk mendeklarasikan sebuah fixed length list :
var namaList = List(initial_size)
Cara penulisan di atas membuat list dengan ukuran yang telah ditentukan yang diberikan pada parameter initial_size. Ukuran List ini tidak dapat bertambah atau berkurang saat program dijalankan. Setiap upaya untuk mengubah ukuran list akan menyebabkan terjadinya exception.
Langkah 2 − Menginisialisasi List
Cara penulisan untuk melakukan inisialisasi List adalah sebagai berikut :
namaList[index] = value;
Contoh
void main() {
var lst = new List(3);
lst[0] = 12;
lst[1] = 13;
lst[2] = 11;
print(lst);
}
Kode di atas akan menghasilkan output berikut :
[12, 13, 11]
Growable List
Growable list adalah List yang dapat diubah ukurannya saat runtime. Cara penulisan untuk mendeklarasikan dan menginisialisasi List jenis ini adalah sebagai berikut :
Langkah 1 − Mendeklarasikan sebuah List
var namaList = [val1,val2,val3]
--- membuat growable list dengan nilai-nilai yang telah ditentukan
ATAU
var namaList = List()
--- membuat growable list tanpa nilai yang telah ditentukan
Langkah 2 − Menginisialisasi List
Cara penulisan untuk menginisialisasi sebuah growable list adalah seperti yang tertera di bawah ini :
namaList[index] = value;
Index digunakan untuk merujuk pada urutan elemen yang harus diisi dengan nilai.
Contoh
Contoh berikut menunjukkan cara membuat growable List yang memiliki 3 elemen :
void main() {
var num_list = [1,2,3];
print(num_list);
}
Kode di atas akan menghasilkan output berikut :
[1, 2, 3]
Contoh
Contoh di bawah ini juga menunjukkan cara membuat sebuah List kosong dengan menggunakan constructor List(). List kosong tanpa ukuran ini juga akan berfungsi sebagai growable list. Fungsi add() dalam class List digunakan untuk menambahkan elemen ke dalam List secara dinamis.
void main() {
List lst = new List();
lst.add(12);
lst.add(13);
print(lst);
}
Kode di atas akan menghasilkan output berikut :
[12, 13]
Properti List
Tabel di bawah ini memuat beberapa properti umum yang digunakan pada class List di library dart:core.
No | Properti & Deskripsi |
---|---|
1 | first Mengembalikan elemen pertama dalam List. |
2 | isEmpty Mengembalikan nilai true jika List tidak memiliki elemen. |
3 | isNotEmpty Mengembalikan nilai true jika List memiliki setidaknya satu elemen. |
4 | length Mengembalikan ukuran dari List. |
5 | last Mengembalikan elemen terakhir dalam List. |
Properti first
Properti ini mengembalikan elemen pertama dalam List.
Cara Penulisan
List.first
Contoh
void main() {
List lst = [];
lst.add(12);
lst.add(13);
print("Elemen pertama pada list adalah: ${lst.first}");
}
Kode diatas akan menghasilkan output berikut :
Elemen pertama pada list adalah: 12
Properti isEmpty
Properti ini mengembalikan nilai true jika List tidak memiliki elemen.
Cara Penulisan
List.isEmpty
Contoh
void main() {
List lst = [];
lst.add(12);
lst.add(13);
print(lst.isEmpty);
}
Kode diatas akan menghasilkan output berikut :
false
Properti isNotEmpty
Properti ini mengembalikan nilai true jika List memiliki elemen.
Cara Penulisan
List.isNotEmpty
Contoh
void main() {
List lst = [];
lst.add(12);
lst.add(13);
print(lst.isNotEmpty);
}
Kode diatas akan menghasilkan output berikut :
true
Properti length
Properti ini mengembalikan ukuran dari suatu List.
Cara Penulisan
List.length
Contoh
void main() {
List lst = [];
lst.add(12);
lst.add(13);
print("Panjang dari list adalah: ${lst.length}");
}
Kode diatas akan menghasilkan output berikut :
Panjang dari list adalah: 2
Properti last
Properti ini mengembalikan elemen terakhir dalam suatu List.
Cara Penulisan
List.last
Contoh
void main() {
List lst = [];
lst.add(12);
lst.add(13);
print("Elemen terakhir pada list adalah: ${lst.last}");
}
Kode diatas akan menghasilkan output berikut :
Elemen terakhir pada list adalah: 13
Properti reversed
Properti ini mengembalikan Object iterable yang berisi nilai List dalam urutan element terbalik.
Cara Penulisan
List.reversed
Contoh
void main() {
List lst = [];
lst.add(12);
lst.add(13);
print("List nilai dalam urutan terbalik: ${lst.reversed}");
}
Kode diatas akan menghasilkan output berikut :
List nilai dalam urutan terbalik: (13, 12)
Properti single
Properti ini memeriksa apakah List hanya memiliki satu elemen dan mengembalikan nilai elemen tersebut.
Cara Penulisan
List.single
Contoh
void main() {
List lst = [];
lst.add(12);
print("List hanya memiliki satu elemen: ${lst.single}");
}
Kode diatas akan menghasilkan output berikut :
List hanya memiliki satu elemen: 12
Properti ini mengeluarkan exception jika List memiliki lebih dari satu elemen. Contoh berikut mengilustrasikan hal tersebut.
void main() {
List lst = [];
lst.add(12);
lst.add(10);
print(lst.single);
}
Jika List memiliki lebih dari satu elemen, maka kode di atas akan memunculkan exception berikut :
Unhandled exception:
Bad state: Too many elements
#0 List.single (dart:core-patch/growable_array.dart:234)
#1 main (file:///D:/Demos/Boolean.dart:6:13)
#2 _startIsolate.<anonymous closure> (dart:isolatepatch/isolate_patch.dart:261)
#3 _RawReceivePortImpl._handleMessage (dart:isolatepatch/isolate_patch.dart:148)
Fungsi pada List
Dalam bagian ini akan membahas cara melakukan beberapa operasi dasar pada List dengan memakai fungsi-fungsi yang sudah tersedia, seperti tercantum di bawah ini :
No | Pengoperasian & Deskripsi Dasar |
---|---|
1 | Memasukkan Eleman ke dalam List List dapat diubah dan dapat tumbuh secara dinamis saat runtime. Fungsi List.add() berfungsi untuk menambahkan suatu nilai ke dalam suatu List dan mengembalikan object List yang dimodifikasi. |
2 | Memperbarui List List di Dart dapat diperbarui dengan cara :
|
3 | Menghapus elemen pada List Beberapa fungsi didukung oleh class List di library dart:core dan dapat digunakan untuk menghapus elemen dalam suatu List. |
Memasukkan Elemen ke dalam List
List dapat diubah dan dapat tumbuh secara dinamis saat runtime. Fungsi List.add() digunakan untuk menambahkan nilai tertentu ke akhir List dan mengembalikan objek List yang telah dimodifikasi. Berikut contoh pemakaian fungsi add pada class List :
void main() {
List l = [1,2,3];
l.add(12);
print(l);
}
Kode di atas akan menghasilkan output berikut :
[1, 2, 3, 12]
Fungsi List.addAll() dipakai untuk menerima banyak nilai yang akan ditambahkan, nilai-nilai tersebut dipisahkan dengan koma dan semua nilai akan ditambahkan ke dalam List.
void main() {
List l = [1,2,3];
l.addAll([12,13]);
print(l);
}
Kode di atas akan menghasilkan output berikut :
[1, 2, 3, 12, 13]
Dart mendukung penambahan elemen pada posisi tertentu dalam List dengan menggunakan fungsi insert(). Fungsi ini menerima nilai dan menyisipkannya pada indeks yang ditentukan. Selain itu, fungsi insertAll() juga dapat digunakan untuk menyisipkan banyak nilai yang diberikan, dimulai dari indeks yang ditentukan. Berikut adalah cara penulisan dari fungsi insert dan insertAll:
List.insert(index,value)
List.insertAll(index, iterable_list_of _values)
Contoh berikut mengilustrasikan penggunaan fungsi insert() dan insertAll() secara berurutan.
Contoh : List.insert()
void main() {
List l = [1,2,3];
l.insert(0,4);
print(l);
}
Kode di atas akan menghasilkan output berikut :
[4, 1, 2, 3]
Contoh : List.insertAll()
void main() {
List l = [1,2,3];
l.insertAll(0,[120,130]);
print(l);
}
Kode di atas akan menghasilkan output berikut:
[120, 130, 1, 2, 3]
Memperbarui atau Update List
Memperbarui indeks
Dart memungkinkan untuk memodifikasi nilai element dalam List. Dengan kata lain, seseorang dapat menimpa nilai elemen pada suatu List dengan nilai yang baru. Contohnya seperti berikut ini:
void main() {
List l = [1, 2, 3,];
l[0] = 123;
print (l);
}
Contoh di atas memperbarui nilai elemen List dengan indeks 0. Output dari kodenya adalah :
[123, 2, 3]
Menggunakan fungsi List.replaceRange()
Class List dari library dart:core menyediakan fungsi replaceRange() untuk mengubah elemen dalam List. Fungsi ini menggantikan nilai elemen dalam rentang yang ditentukan.
Cara penulisan fungsi List.replaceRange() adalah sebagai berikut :
List.replaceRange(int start_index,int end_index,Iterable <items>)
Di mana,
- Start_index − bilangan bulat yang mewakili posisi indeks untuk memulai penggantian.
- End_index − bilangan bulat yang mewakili posisi indeks untuk berhenti mengganti.
- <items> − Object iterable yang mewakili nilai-nilai baru.
Contoh
void main() {
List l = [1, 2, 3,4,5,6,7,8,9];
print('Nilai list sebelum diganti ${l}');
l.replaceRange(0,3,[11,23,24]);
print('Nilai list setelah mengganti item di antara rentang [0-3] adalah ${l}');
}
Kode di atas akan mengembalikan output :
Nilai list sebelum diganti [1, 2, 3, 4, 5, 6, 7, 8, 9]
Nilai list setelah mengganti item di antara rentang [0-3] adalah [11, 23, 24, 4, 5, 6, 7, 8, 9]
Menghapus Elemen pada List
Fungsi-fungsi berikut didukung oleh class List di library dart:core dan dapat digunakan untuk menghapus elemen dalam List.
Menggunakan list.remove()
Fungsi List.remove() menghapus suatu elemen Object yang pertama ditemukan dari suatu List. Fungsi ini mengembalikan nilai true jika nilai yang ditentukan berhasil dihapus dari List.
Cara Penulisan
List.remove(Object value)
Di mana,
- value − mewakili nilai Object yang harus dihapus dari daftar.
Contoh
void main() {
List l = [1, 2, 3,4,5,6,7,8,9];
print('Nilai list sebelum menghapus elemen dalam list ${l}');
bool res = l.remove(1);
print('Nilai list setelah menghapus elemen dalam list ${l}');
}
Kode di atas akan menghasilkan output berikut :
Nilai list sebelum menghapus elemen dalam list [1, 2, 3, 4, 5, 6, 7, 8, 9]
Nilai list setelah menghapus elemen dalam list [2, 3, 4, 5, 6, 7, 8, 9]
Menggunakan list.removeAt()
Fungsi List.removeAt menghapus elemen pada indeks yang ditentukan dan mengembalikan elemen tersebut.
Cara Penulisan
List.removeAt(int index)
Di mana,
- index − mewakili indeks elemen yang harus dihapus dari daftar.
Contoh
void main() {
List l = [1, 2, 3,4,5,6,7,8,9];
print('Nilai list sebelum menghapus elemen dalam list ${l}');
dynamic res = l.removeAt(1);
print('Nilai elemen ${res}');
print('Nilai list setelah menghapus elemen dalam list ${l}');
}
Kode diatas akan menghasilkan output berikut :
Nilai list sebelum menghapus elemen dalam list [1, 2, 3, 4, 5, 6, 7, 8, 9]
Nilai elemen 2
Nilai list setelah menghapus elemen dalam list [1, 3, 4, 5, 6, 7, 8, 9]
Menggunakan list.removeLast()
Fungsi List.remove() menghapus elemen terakhir pada suatu List.
List.removeLast()
Contoh
void main() {
List l = [1, 2, 3,4,5,6,7,8,9];
print('Nilai list sebelum menghapus elemen dalam list ${l}');
dynamic res = l.removeLast();
print('Nilai item yang muncul ${res}');
print('Nilai list setelah menghapus elemen dalam list ${l}');
}
Kode di atas akan menghasilkan output berikut :
Nilai list sebelum menghapus elemen dalam list [1, 2, 3, 4, 5, 6, 7, 8, 9]
Nilai item yang muncul 9
Nilai list setelah menghapus elemen dalam list [1, 2, 3, 4, 5, 6, 7, 8]
Menggunakan list.removeRange()
Fungsi List.removeRange() digunakan untuk menghapus elemen dalam rentang yang ditentukan.
List.removeRange(int start, int end)
Di mana,
- start– mewakili posisi awal untuk menghapus item.
- end– mewakili posisi dalam daftar untuk berhenti menghapus item.
Contoh
void main() {
List l = [1, 2, 3,4,5,6,7,8,9];
print('Nilai list sebelum menghapus elemen dalam list ${l}');
l.removeRange(0,3);
print('Nilai list setelah menghapus elemen pada list di antara rentang 0-3 ${l}');
}
Kode di atas akan menghasilkan output berikut :
Nilai list sebelum menghapus elemen dalam list [1, 2, 3, 4, 5, 6, 7, 8, 9]
Nilai list setelah menghapus elemen pada list di antara rentang 0-3 [4, 5, 6, 7, 8, 9]
Tutorial sebelumnya : Tipe Data Boolean Dengan Dart
Tutorial setelahnya : Map Dart
Semua Tutorial Dart : Tutorial Dart