List Dart

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.

NoProperti & Deskripsi
1first
Mengembalikan elemen pertama dalam List.
2isEmpty
Mengembalikan nilai true jika List tidak memiliki elemen.
3isNotEmpty
Mengembalikan nilai true jika List memiliki setidaknya satu elemen.
4length
Mengembalikan ukuran dari List.
5last
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 :

NoPengoperasian & Deskripsi Dasar
1Memasukkan 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.
2Memperbarui List
List di Dart dapat diperbarui dengan cara :

  • Memperbarui Indeks
  • Menggunakan fungsi List.replaceRange()
3Menghapus 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]

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0