Definisi Kotlin Collections
Collection merupakan konsep umum dari kebanyakan bahasa pemrograman, hanya saja mungkin nama di masing-masing Bahasa pemrograman berbeda. Jadi apablia anda sudah pernah memepelajari bahasa pemrograman apa pun bahasa pemrograman nya itu, anda akan cepat paham dikarenakan secara konsep memang sama.
Kita mulai dari definisi, kotlin collection merupakan sebuah objek yang bisa menyimpan kumpulan objek lain. Collection bisa berisi data maupun kosong. Jadi dalam collection kita bisa menyimpan banyak data sekaligus dan dalam kumpulan tersebut kita bisa menyimpan tipe data String, Integer, bahkan dalam satu collection pun kita bisa menyimpan data dengan banyak tipe data. Kotlin Standart Library sudah menyediakan data collection dan kita bisa langsung gunakan tanpa tambahan library. Jadi kita tidak perlu menambahkan dan mendownload library dari luar.
Collection pada kotlin secara umum memiliki 2 jenis, yang pertama adalah Immutable dan yang kedua adalah Mutable. Immutable bersifat read-only . Dikarenakan memiliki sifat read-only maka collection dengan jenis immutable ini tidak mendukung operasi write (add,edit,dan remove) dan hanya mendukung akses element pada collection.Sedangkan untuk Mutable mendukung operasi write dan juga akses element pada collectionnya.Saat pendeklarasian collection mutable tidak harus menggunaan val keyword untuk memodifikasi collectionnya. Akan tetapi jika kita menggunakan var keyword, kita tidak bisa me-reassign collection dan akan terjadi error jika kita mencoba untuk me-reassign nya. Pada collections memiliki beberapa objek turunan,contohnya adalah List, Set dan Map.
1. LIST
digunakan untuk menyimpan elemen dalam urutan tertentu dan menyediakan akses indeks ke elemen tersebut.Disini kita bisa menyimpan data yang banyak menjadi satu objek. Dalam list pun kita bisa menyimpan data dengan bermacam tipe data seperti Integer,String, Boolean dan lainnya.
Kode diatas merupakan contoh dari objek list yang berisi kumpulan data String.Penulisan list ditandai dengan keyword listOf(). Best practice nya kita juga harus menulis secara eksplisit nilai kembalian list nya dengan List<String> walaupun compiler sebenarnya sudah tau.Ini menghindari kita dari kesalahan pada saat menulis/ mengoperasikan listnya.
Kode diatas merupakan contoh objek list yang menggunakan tipe kembalian List<Any> yang dimana datanya memiliki tipe data yang beragam.Akan tetapi jika kita membuat collection list menggunakan keyword listOf() hasilnya akan immutable.Apabila kita ingin membuat collection list yang mutable kita bisa menggunakan keyword mutableListOf().
Saat kita menggunakan mutable list,kita bisa melakukan operasi write (add,delete,remove,edit). Untuk menambah item pada akhir list kita menggunakan method add.
Jika kita tampilkan isi variable nameList nya maka nama Miko akan muncul diakhir list tersebut.Lalu bagaimana jika kita ingin menambahkan item pada indeks tertentu?
Kode diatas berfungsi untuk menambahkan nama Miko kedalam list nameList pada indeks ke 1.
Untuk mengedit/ mengganti item pada indeks tertentu kita bisa menggunakan cara diatas,yaitu melakukan indexing pada item yang akan diganti lalu me-assign value yang akan di assign.
Sedangkan untuk menghapus item pada collection list, kita menggunakan removeAt lalu memasukan parameter indeks nya yang akan dihapus.Lantas bagaimana caranya untuk megakses/ mengambial nilai item pada suatu list? Caranya adalah menggunakan metode indexing.
Metode indexing adalah metode untuk mengakses nilai pada suatu list dan dimulai dari angka nol (0). Metode indexing ini bis akita gunakan di collection list berjenis mutable dan immutable. Penggunaan methode indexing ditandai dengan tanda [ ].Kode diatas merupakan contoh penggunaan metode indexing.Index yang ingin kit acari seharusnya ada didalam collection tersebut.Jika tidak maka akan terjadi error.
2. SET
Set merupakan collection yang dapat menyimpan nilai yang unik.Contoh kasusnya adalah jika anda ingin membuat collection yang dimana itemnya tidak memiliki nilai yang duplikat.Apabila terdapat nilai yang duplikat,maka nilai yang duplikat tersebut akan menyisakan satu nilai dari nilai yang duplikat tersebut.
Collection Set ditandai dengan keyword setOf. Pada contoh diatas kita memiliki nilai duplikat yaitu angka 2. Apabila kita print collection nya,maka hasilnya angka 2 hanya muncul satu kali.Kita juga bisa melakukan pengecekan pada collection apakah sebuah nilai terdapat dalam collection tersebut dengan perintah in.
Jika hasilnya true, berarti nilai tersebut ada didalam collection tersebut.Untuk menggabungkan 2 collection set menjadi satu collection kita bisa menggunakan keyword union.
Dari penggabungan 2 collection set tersebut juga akan menghapus angka yang duplikat. Sedangkan untuk mengembalikan nilai yang sama saat proses penggabungan 2 set kita bisa gunankan keyword intersect.
Secara default collection set merupakan collection yang bersifat immutable. Jadi jika anda ingin collection set memiliki operasi write bisa menggunakan keyword mutableSet.
Namun sayangnya mutable set ini hanya bisa menambahkan dan menghapus nilai dari collection tersebut, sedangkan untuk megubah/ mengedit tidak bisa.
Untuk menambah item di akhir collection kita bisa menggunakan keyword add. Lalu untuk menghapus collection kita bisa menggunakan keyword remove lalu memasukan parameter nilai yang ingin dihapus.
3. Map
Map merupakan sebuah collection yang dapat menyimpan data dengan format key-value.Dalam penulisan collection map,key harus unik.Penggunaan collection map ditandai dengan keyword mapOf lalu diisi dengan data format key-value.
Perhatikan kode diatas. String yang berada disebelah kiri keyword to dinamakan key lalu string yang berada disebelah kanan keyword dinamakan value atau bisa disebut juga value dari key tersebut.Keyword to ini menghubungkan antara string key dan string value.Lalu bagaimana caranya kita untuk mengakses value dari sebuah key collection map?
Untuk mengakses value dari sebuah key, kita akan menggunakan indexing atau tanda kurung kotak ([ ]) lalu diikuti key yang ingin kita ambil valuenya. Contoh kode diatas kita akan mengambil value dari key username. Apabila program tersebut dijalankan maka hasilnya adalah value admin.
Kita juga bisa menggunakan keyword getValue( ) untuk mengambil valuenya. Hasilnya pun sama saja dengan cara diatas.Bedanya jika kita menggunakan getValue( ) pada saat kita akan menampilkan value yang tidak ada pada collection, getValue() akan menampilkan sebuah Exception sedangkan jika kita melakukan dengan cara indexing maka hasilnya adalah null.
Untuk mendapatkan list dari key apa saja yang ada didalam collection,kita bisa menggunakan fungsi keys.Hasilnya adalah berupa collection Set dikarenakan sebuah key didalam map haruslah unik.
Lantas bagaimana caranya untuk mendapatkan list dari value nya? Tentunya caranya sangat mudah.Kita bisa menggunakan fungsi values. Fungsi tersebut akan mengembalikan nilai berupa tipe data collection.
Namun sayangnya secara default, collection map bersifat Immutable.Untuk merubah collection map immutable menjadi mutable dapat menggunkan fungsi toMutableMap().
Apabila collection map tersebut sudah menjadi mutable,kita bisa menambahkan value baru menggunakan fungsi put() yang diisi parameter pertama dengan key nya lalu parameter kedua diisi dengan valuenya.Menambahkan value baru juga bisa menggunakan metode indexing.
Jadi kesimpulannya adalah collection merupakan sebuah objek yang bisa menyimpan kumpulan objek lain dan memiliki 2 jenis collection yaitu mutable dan imutable. Collection memiliki beberapa objek turunan salah satunya adalah List, Set, Map.
Untuk mempelajari lebih lanjut mengenai kotlin, di IDN sendiri tersedia training mobile apps Android Kotlin yang bisa teman-teman pelajari, hasilnya nanti temen2 bisa membuat aplikasi android sendiri menggunakan bahasa pemograman kotlin.
Penulis : Exfar Nanda Micola