Dart : Set Pemrograman Dart

Pengenalan

pada artikel kali ini kita akan membahas tentang set yang disediakan oleh bahasa pemrograman dart, bagaimana cara penerapannya lalu disertai dengan studi kasus sebagai pondasi pendalaman materi tentang set. Set adalah mewakili sekumpulan objek dimana setiap objek hanya dapat muncul sekali, jadi setelah kita pahami set juga salah satu dart collection item unik yang tidak berurutan. Ini berarti tidak memiliki posisi dalam satu set, oleh karena itu satu set tidak boleh memiliki duplikat dari item yang sama.

Cara Membuat Set

Ada beberapa cara untuk membuat sebuah set, cara yang lebih umumnya digunakan sebagai berikut :

Menggunakan Literals

Sama seperti halnya pada artikel sebelumnya tentang List, set juga dapat dibuat menggunakan himpunan literals. Sintaknya pun hampir sama tidak ada yang berbeda tetapi ada salah satu perbedaannya adalah pada literals List menggunakan tanda kurung siku ( [] ) sedangkan literals set menggunakan tanda kurung kurawal ( {} )

Gambaran sintaks umumnya sebagai berikut :

sintakumumset
format umumnya menggunakan literals

kita akan coba buat contoh dengan var setName setelah tanda ( = ), lalu kita menyisipkan pada kurung kurawal buka ( { ) diikuti dengan elemen yang kita inginkan di dalam set ini, dengan setiap elemen dipisahkan dengan tanda koma ( , ). Setelah kita selesai menyisipkan elemen yang ingin kita eksekusi di akhiri dengan tanda kurung kurawal tutup ( } ). Mari kita lihat contoh dibawah ini

contohset
ilustrasi

Baris ke 2 pada contoh diatas kita telah mendeklarasikan dan menginisialisasi sebuah Set dengan variabel contohSet dengan memiliki 3 elemen di dalamnya ketika kita menggunakan statement print maka set lengkap dengan tanda kurung kurawal ditampilkan.

Seperti yang dibahas sebelumnya set tidak memiliki duplikat. Namun kita masih dapat menyisipkan value yang duplikat saat membuat sebuah set akan tetapi dengan menambahkan item atau elemen yang duplikat tidak akan berpengaruh pada saat compile. contohnya sebagai berikut:

setDuplikat
ilustrasi

Dalam cuplikan source code diatas, kita menambahkan angka 2 sejumlah 2 angka dalam sebuah set. Jadi ketika kita print set, maka angka 2 yang terdapat 2 angka tersebut tidak akan ditampilkan. Karena Dart mengabaikan duplikat.

Jika kita ingin menentukan tipe data selama deklarasi, kita bisa menaruh tipe data tersebut sebelum tanda kurung kurawal buka ( { ) tetapi kita tambahkan diantara tanda <>. Perhatikan contoh berikut:

ilustrasi sintaks
Contoh code

Membuat Set Kosong Dengan Constructor

Kita juga bisa mendeklarasikan himpunan dengan menggunakan constructor di dalam set. Constructor set membuat sebuah objek menggunakan tanda kurung kurawal ( {} ).

perhatikan contoh sintaks umum yang biasa digunakan :

format umum

Disaat kita mendeklarasikan himpunan kosong, penting bagi kita untuk menyebutkan tipe datanya terlebih dahulu.

outputConstructor 1
ilustrasi

Ketika kita menampilkan data dengan statement print variabel setBuah dan buahLainnya dalam potongan kode di atas, kita mendapatkan set kosong (tanda kurung kurawal tanpa elemen).

Studi Kasus Menggunakan Set

Menambahkan Satu Item Ke Dalam Set

Kita dapat menambahkan satu elemen ke dalam sebuah set yang sudah ada dengan menggunakan metode add. Satu-satunya syarat adalah bahwa item yang kita tambahkan harus memiliki jenis yang sama dengan item yang lainnya dari set. Ketika kita memanggil pada sebuah set, metode add memiliki parameter yaitu item yang ingin kita tambahkan ke dalam sebuah set contohnya di bawah ini:

formatsetadd
format sintaks dengan add
void main(List<String> arguments) {
  var setBuah = <String>{};
  setBuah.add('apel');
  setBuah.add('rambutan');
  setBuah.add('pisang');
  print(setBuah);
}

//Output
{apel, rambutan, pisang}

Sekarang variabel setBuah telah memiliki atau mengandung tiga elemen.

Menambahkan Beberapa Item Ke Dalam Satu Set

Kita dapat menambahkan beberapa item ke set yang sudah tersedia dengan menggunakan metode addAll. Sebagai catatan untuk diingat satu satunya syarat adalah bahwa yang akan kita tambahkan semuanya harus memiliki tipe yang sama dengan item dari set.

Saat kita panggil ke dalam satu set,metode addAll juga memiliki satu parameter yang merupakan satu set. Set harus berisi item yang ingin kita tambahkan ke set yang sudah ada. Tipe parameternya adalah Set<dataType>, dimana tipe datanya bergantung pada set tempat kita memanggil metodenya. jadi dapat kita simpulkan addAll pada dasarnya menggabungkan elemen dari dua set menjadi satu set.

Sintaks Umum adalah sebagai berikut :

setAddAll

sebagai contoh kita akan membuat var setBuah dan var buahLain

void main(List<String> arguments) {
  var setBuah = {'apel', 'pisang', 'jeruk'};

  var buahLain = {'semangka', 'anggur'};
  setBuah.addAll(buahLain);

  print(setBuah);
}

//Output
{apel, pisang, jeruk, semangka, anggur}

Pada contoh di atas kita telah berhasil menambahkan elemen yang terdapat di variabel buahLain ke dalam variabel setBuah.

Menemukan Length Pada Set

Sama seperti halnya dengan List, set juga memiliki properti length yang dapat diakses dengan menggunakan operator titik ( . ) yang berfungsi untuk memberikan kita jumlah item yang terdapat di dalam satu set.

Sintaks umum yang digunakan :

setLength
void main(List<String> arguments) {
  var setBuah = {'apel', 'pisang', 'jeruk','melon','semangka','rambutan'};

  print(setBuah.length);
}

//Output
6

Saat kita menjalankan programnya maka yang akan tampil dari output source code yang diatas adalah 6, karena variabel setBuah memiliki 6 item. contoh lainnya kita akan menambahkan duplikat pada variabel setBuah apakah length pada variabel setBuah akan berubah,

void main(List<String> arguments) {
  var setBuah = {'apel', 'pisang', 'jeruk','melon','semangka','rambutan','pisang'};

  print(setBuah.length);
}

//Output
6

Ketika kita menjalankan potongan source code di atas output yang ditampilkan tetap menghasilkan 6, meskipun variabel setBuah memiliki 7 item. Ini memperkuat bahwa bahasa pemrograman dart sepenuhnya mengabaikan nilai duplikat.

Menghapus Item Dari Set

Untuk menghapus item dari satu set kita bisa menggunakan metode remove yang berfungsi untuk menghapus item tertentu. Metode remove ini memiliki satu parameter yaitu item yang ingin kita hapus. Jenis parameter bergantung pada set tempat methode dipanggil.

Sintaks umum yang digunakan :

sintaksetremove
sintaks umum set remove

Kita akan menghapus item dari contoh yang sudah ada :

void main(List<String> arguments) {
  var setBuah = {'apel', 'pisang', 'jeruk','melon','semangka','rambutan'};

  setBuah.remove('pisang');

  print(setBuah);
}

//Output
{apel, jeruk, melon, semangka, rambutan}

Hasil akhir dari potongan source code di atas adalah kita telah menghapus item pisang, menggunakan methode remove, sehingga item pisang tidak tampil.

Memerika Set

Pembahasan berikutnya yaitu kita dapat memeriksa apakah suatu set berisi item tertentu dengan menggunakan metode contains dan menggunakan method containsAll tergantung pada apakah kita ingin memeriksa satu item atau beberapa item di dalam satu set.

sebagai contoh :

kita membuat variabel A = {‘bakwan’,’tahu gejrot’,’cakwe’};

jadi ketika cek atau kita periksa variabel A dengan statement print menggunakan method contains,

print(A.contains(‘bakwan’)); maka yang ditampilkan bernilai true. Karena bakwan terdapat di variabel A.

Sintaks umum dengan menggunakan methode contains :

setContains
sintak umum menggunakan method contains

Dan, sintaks umum menggunakan methode containsAll :

setContainsAll
sintaks umum menggunakan containsAll

Mari kita terapakan pada studi kasus :

void main(List<String> arguments) {
  var setGorengan = {'cireng', 'ubi', 'bakwan', 'risol'};

  //Check whether a single item is in the set
  print(setGorengan.contains('bakwan'));

  //Check whether multiple items are in the set
  print(setGorengan.containsAll(['pisang', 'risol'])); //First Method

  var fruitsToCheck = {'bakwan', 'pisang'};
  print(setGorengan.containsAll(fruitsToCheck));
}

Output:

true
false
false

Jadi ketika kita jalankan dari source di atas menghasilkan output yang pertama adalah true, karena bakwan adalah bagian dari setGorengan, lalu output yang kedua dan ketiga adalah false. meskipun item yang ingin kita periksa terdapat di dalam variabel setGorengan lalu ada satu item yang tidak terdapat ( pisang ) di dalam variabel setGorengan maka akan false.

Persilangan Antara Dua Set

Perpotongan atau persilangan antara dua himpunan (set1, set2) maksudnya adalah himpunan yang berisi elemen yang terdapat di dalam set1 dan juga set2.

Sintaks umum yang digunakan :

setIntersection

Mari kita buat studi kasusnya :

void main(List<String> arguments) {
  var setGorengan = {'bakwan', 'cireng', 'ubi', 'risol'};
  var setGorenganDua = {'cireng', 'cilok', 'batagor'};

  var intersectionSet = setGorengan.intersection(setGorenganDua);
     
  print(intersectionSet);
}
//Output
{cireng}

Saat kita menjalankan program kita akan melihat satu set dengan satu item, ‘cireng’. Ini karena ‘cireng’ satu satunya item yang terdapat pada variabel setGorengan dan setGorenganDua.

Menyatukan Antara Dua Set

Menyatukan atau menggambungkan setiap elemen yang terdapat di dalam set1 dan set2 sehingga output yang dihasilkan adalah gabungan dari setiap elemen set1 dengan elemen set2.

Sintaks umum yang digunakan :

setUnion

contohnya sebagai berikut :

void main(List<String> arguments) {
  var setGorengan = {'bakwan', 'cireng', 'ubi', 'risol'};
  var setGorenganDua = {'cireng', 'cilok', 'batagor'};

  var intersectionSet = setGorengan.union(setGorenganDua);
     
  print(intersectionSet);
}
//output
{bakwan, cireng, ubi, risol, cilok, batagor}

Ketika kita menjalankan program di atas variabel setGorengan memiliki 4 item dan variabel setGorenganDua memiliki 3 item, di karenakan ada item yang sama cireng maka yang akan ditampilkan oleh program adalah {bakwan, cireng, ubi, risol, cilok, batagor}.

Sumber

https://dart.dev/samples

https://www.dicoding.com/academies/191

Default image
Herry Prasetyo
Today a reader Tomorrow a Leader
Articles: 17

Leave a Reply