Pengertian collection
Sebelumnya kita sudah belajar mengenal collection, jenis-jenis collections dan beberapa objek turunan nya seperti List,Set, dan Map. Saya akan membahas secara singkat materi diatas karena materi ini berkaitan dengan materi sebelumnnya.
Dalam kotlin, collection merupakan sebuah objek yang dapat menyimpan kumpulan objek lain. Objek collection tersebut dapat berisi data ataupun kosong. Objek collection juga dapat berisi data dengan tipe data yang berbeda.
Collection kotlin mempunyai dua jenis yaitu Immutable dan Mutable. Kotlin collection yang Immutable hanya memiliki akses read-only yang dimana artinya kita hanya bisa mengakses dan tidak bisa merubah isi dari collection tersebut. Sedangkan kotlin collection yang bersifat mutable memiliki akses read dan write dimana kita bisa mengubah isi dari collection tersebut.
List merupakan objek turunan dari collection yang digunakan untuk menyimpan elemen dalam urutan tertentu dan menyediakan akses indeks ke elemen tersebut. Kita juga bisa menyimpan data dengan tipe data berbeda dialam list. Menggunakan keyword listOf() dalam penggunaannya. Jika ingin membuat collection List dengan jenis mutable bisa mengggunakan keyword mutableListOf().
Selanjutnya adalah Set. Set merupakan kotlin collection yang menyimpan data yang unik, dimana jika ada data data duplikat dalam collection set maka akan menyisakan satu nilai dari nilai yang duplikat tersebut. Ditandai dengan keyword setOf, secara default setOf merupakan collection berjenis imutable. Apabila anda ingin membuat collection set dengan jenis mutable bisa menggunakan mutableSetOf(). Kita juga bisa menggabungkan 2 collection set dengan fungsi union dan fungsi intersect.
Kemudian ada objek turunan Map, yang dimana map ini memiliki konsep key to value. Jadi dalam collection map memiliki key dan value dan besifat Immutable. Lalu untuk merubah collection map dari immutable ke mutable bisa menggunakan toMutableMap().
Untuk lebih jelasnya, anda bisa megnakses artikel sebelumnya yang berjudul Kotlin Collection. Selanjutnya kita akan melanjutkan ke operasi pada kotlin collections. Dalam collection kita bisa menggunakan fungsi-fungsi dalam collection diantaranya adalah filter, map, sum, dan lain-lainya. Fungsi ini membantu kita dalam mengolah data atau item pada kotlin collection.
- Filter
Filter merupakan fungsi yang dimana akan menghasilkan list baru berdasarkan kondisi yang diberikan. Misalkan kita memiliki sebuah kasus yang dimana kita akan memfilter list bilangan yang memiliki angka ganjil.
Kode diatas merupakan sebuah program untuk memfilter bilangan ganjil. Penulisan fungsi filternya ditulis sesudah variable yang ingin kita filter yang dimana disini adalah variable listNum lalu diikuti dengan penulisan lambda nya. Lambda merupakan fungsi tanpa nama dan digunakan untuk argument fungsi. Didalam lambda tesbut memiliki value parameter nya yaitu number. Value parameter number dilambda tersebut mewakili setiap item atau elemen pada list tersebut. Proses filter tersebut kita tamping kedalam variable baru karena fungsi filternya menghasilkan list baru berupa bilangan ganjil yang sudah difilter dari variable listNum.
2. FilterNot
Fungsi filterNot merupakan kebalikan dari fungsi filter. Penulisannya pun sama seperti fungsi filter hanya keyword filter nya diganti menjadi filterNot.
Kode diatas merupakan program untuk memfilter bilangan genap. Jika kita lihat secara seksama, sebenarnya kita bisa menggunakan fungsi filter tetapi kondisinya kita balik.
Selanjuntnya adalah fungsi filterNotNull. Fungsi filterNotNull mempunyai kesamaan dengan fungsi filter. Akan tetapi fungsi ini akan menghasilkan list baru yang dimana elementnya tidak memiliki nilai null dan tidak memiliki fungsi lambdanya.
3. Bold
Fungsi map akan membuat collection baru dengan menerapkan fungsi atau lambdanya pada tiap elemen tiap elemen. Jadi nanti collection akan di diambil tiap elemen nya, lalu elemen tersebut akan diolah dengan fungsi lambdanya dan akan memasukan hasinya ke collection baru.
Keyword it mewakili tiap elemen yang ada didalam collection. Kode diata akan.mengkalikan tiap elemen dengan 10 lalu hasilnya akan dimasukan kedalam collection baru. Lantas bagaimana jika kita ingin mengakses indeks pada tiap elemenya. Maka kita gunakan fungsi mapIndexed.
Dalam fungsi mapIndexed memiliki dua value parameter, yang pertama adalah index dari tiap elemenya dan kedua adalah variable tiap elemennya dan penamaannya bisa bebas.
4. Count
Fungsi count digunakan apabila anda ingin menghitung jumlah item pada collection dan mengembalikan nilai dengan tipe data Integer. Fungsi ini juga dapat ditambahkan dengan sebuah lambda yang dimana nanti lambda ini sebagai akan dijadikan sebagi sebuah kondisi.
5. Find
Fungsi find digunakan untuk mencari elemen pada sebuah collection. Kondisi nya ditulis dengan lambda. Fungsi ini akan mengembalikan nilai ketika kondisi terepenuhi. Artinya jika kondisi menghasilkan nilai true, proses find nya akan berhenti dan tidak akan melanjutkan validasi kondisi pada item selanjutnya. Apabila nilai yang kita cari tidak memenuhi kriteria lambdanya maka akan mengenbalikan nilai null.
Fungsi find memiliki kesamaan secara proses dengan fungsi first() dan last(). Berbeda dengan fungsi find, kedua fungsi diatas akan menghasilkan error apabila nilai yang dicari tidak ada dalam collection. Sedangkan perbedaan antara first() dan last() adalah jika fungsi first akan memvalidasi kondisi dari indeks atau dari awal collection dan untuk fungsi last akan memvalidasi kondisi dari akhir atau indeks terakhir dari collection.
6. Sum
Fungsi sum ini hanya tersedia untuk collection bertipe data angka. Fungsi sum digunakan untuk menjumlahkan tiap elemen pada collection dan memiliki nilai kembalian bertipe data integer.
7. Sorted
Fungsi sorted digunakan untuk mengurutkan item atau elemen pada collection. Secara default apabila menggunakan keyword sorted() akan mengurutkan secara ascending atau naik. Jika anda ingin mengurutkan data collection secara descending atau bisa menggunakan keyword sortedDescending().
Fungsi ini hanya bisa berjalan apabila collection memiliki tipe data yang sama, entah tipe data integer atau string. Apabila anda memaksa mengurutkan collection dengan tipe data yang berbeda maka akan terjadi error Unresolved Referrence.
8. Drop
Fungsi drop digunakan untuk memangkas elemen atau item yang ada didalam objek collection berdasarkan jumlah yang ditentukan. Pemangkasan dimulai dari posisi indeks pertama. Jika kita ingin memangkas tetapi dimulai dari posisi indeks terakhir bisa menggunakan fungsi dropLast(). Fungsi ini akan menghasilkan list baru.
9. Take
Fungsi take digunakan untuk menyaring item atau elemen yang berada didalam collection. Kita juga perlu mengisi jumlah item yang ingin kita ambil. Secara default fungsi take akan mengambil item dari posisi awal atau indeks awal. Untuk mengambil item dari posisi akhir tau indeks terakhir bisa menggunakan fungsi takeLast().
10. Slice
Fungsi slice digunakan untuk menyaring item pada posisi tertentu. Pada fungsi slice, kita perlu menambahkan argument yang berupa range. Range ini digunakan untuk menentukan indeks dari posisi pertama dan terkahir item yang akan disaring.
Karena argumentnya menggunakan range, kita bisa menggunakan step pada range tersebut. Step merupakan jarak antara dua nilai yang dicakup.
Sebenarnya masih banyak operasi yang digunakan pada collection kotlin. Semua yang sudah kita bahas diatas merupakan operation yang akan sering kita jumpai dalam pengoprasian kotlin collection. Untuk mengetahui lebih detail dari kotlin collection operation bisa mengunjungi dokumentasi dari kotlin dengan Bahasa inggris. Disitu akan dijelaskan lebih detail dengan satu persatu.
Tertarik untuk memahami IT lebih jauh lagi? Kami menyediakan berbagai pilihan training klik disini.
Penulis : Exfar Nanda Micola