Belajar Dasar Kotlin: Koleksi
Pada tutorial sebelumnya, kita telah mengenal tipe data dasar. Sekarang kita akan mengenal tipe data Koleksi dasar.
Array
Array merupakan tipe data koleksi paling sederhana. Kita telah mengenal Array pada artikel sebelumnya. Array mempunyai ukuran yang tetap, sehingga kita tidak bisa menambah dan menghapus item dari Array. Kita hanya bisa mengubah item dari Array.
val myArray = arrayOf("Kotlin", "Swift", "Dart")
Untuk mengetahui ukuran dari array kita bisa menggunakan properti size
.
println(myArray.size) // 3
List
List merupakan tipe data koleksi yang mirip dengan Array. Tipe data ini dapat menyimpan daftar.
List dapat dibuat dengan listOf
dan mutableListOf
.
val myList = listOf("Vue", "Angular")
val myMutableList = mutableListOf("Kotlin", "Java", "Scala")
Lalu apa perbedaan listOf
dengan mutableListOf
. Berikut adalah perbedaannya:
listOf
akan membuat List yang tidak dapat diubah (immutable list). Tipe data yang dikembalikan adalahList
.mutableListOf
akan membuat list yang dapat diubah (mutable list). Tipe data yang dikembalikan adalahMutableList
.
Untuk mendapatkan jumlah item dari List atau MutableList gunakan property size
.
println(myList.size) // 2
println(myMutableList.size) // 3
Perulangan for
dapat digunakan dengan List.
for (item in myList) {
println(item)
}
// Vue
// Angular
Untuk mengecek apakah suatu item berada pada List operator in
dan fungsi contains
dapat
digunakan.
println("Vue" in myList) // true
println(myList.contains("Angular")) // true
Untuk menambahkan item ke MutableList dapat menggunakan fungsi add
.
println(myMutableList) // [Kotlin, Java, Scala]
myMutableList.add("Rust")
println(myMutableList) // [Kotlin, Java, Scala, Rust]
Untuk membuang item dari MutableList gunakan fungsi remove
.
println(myMutableList) // [Kotlin, Java, Scala, Rust]
myMutableList.remove("Java")
println(myMutableList) // [Kotlin, Scala, Rust]
Untuk membuang semua item dari MutableList gunakan fungsi clear
.
println(myMutableList) // [Kotlin, Scala, Rust]
myMutableList.clear()
println(myMutableList) // []
Untuk mengakses item pada indeks tertentu dapat digunakan operator indexing atau fungsi get
.
println(myList[0]) // Vue
println(myList.get(0)) // Vue
Untuk mengubah item pada indeks tertentu dapat digunakan operator indexing atau fungsi set
.
val myMutableList = mutableListOf("Kotlin", "Java", "Scala")
println(myMutableList) // [Kotlin, Java, Scala]
myMutableList[0] = "Fotran"
println(myMutableList) // [Fotran, Java, Scala]
myMutableList.set(1, "Ruby")
println(myMutableList) // [Fotran, Ruby, Scala]
Set
Set hampir mirip dengan List, perbedaannya adalah dalam Set tidak diperbolehkan ada dua item yang sama. Jika ada 2 item yang sama, maka salah satu akan dihapus. Set bisa dianalogikan dengan Himpunan yang ada di Matematika.
Set dapat dibuat dengan setOf
. Tipe data kembalian fungsi ini adalah Set. Item dalam tipe data Set
tidak dapat diubah.
val mySet = setOf("Kotlin", "Java", "Scala", "Kotlin")
println(mySet) // [Kotlin, Java, Scala]
Perulangan for
dapat digunakan dengan Set.
for (item in mySet) {
println(item)
}
// Kotlin
// Java
// Scala
Untuk mengecek apakah suatu item ada dalam Set, operator in
bisa digunakan. Fungsi contains
juga
bisa digunakan.
println("Kotlin" in mySet) // true
println("Go" in mySet) // false
println(mySet.contains("Scala")) // true
Untuk membuat Set yang isinya dapat diubah dapat digunakan fungsi mutableSetOf
. Tipe data yang
dikembalikan adalah MutableSet.
val myMutableSet = mutableSetOf("Kotlin", "Java", "Scala", "Kotlin")
Fungsi add
dapat digunakan untuk menambahkan item ke Set.
println(myMutableSet) // [Kotlin, Java, Scala]
myMutableSet.add("Go")
println(myMutableSet) // [Kotlin, Java, Scala, Go]
myMutableSet.add("Kotlin")
println(myMutableSet) // [Kotlin, Java, Scala, Go]
Saat menambahkan item ke Set, jika item sudah ada di Set maka item tidak akan ditambahkan.
Fungsi remove
dapat digunakan untuk menghapus item pada Set.
println(myMutableSet) // [Kotlin, Java, Scala, Go]
myMutableSet.remove("Go")
println(myMutableSet) // [Kotlin, Java, Scala]
Map
Pada saat memprogram kalian pasti akan butuh tipe data yang memasangkan dua buah data. Contohnya seperti berikut:
Nama | Kelamin |
---|---|
Rudi | Laki |
Rina | Perempuan |
Tono | Laki |
Tabel tersebut dapat direpresentasikan sebagai sebuah Map. Map merupakan tipe data koleksi yang setiap itemnya merupakan sebuah pasangan kunci (key) dan nilai (value). Dengan begitu Map dapat digunakan untuk mengubungkan kunci dan nilai. Nama dalam tabel tersebut dapat digunakan sebagai kunci dan Kelamin adalah nilai.
Kunci | Nilai |
---|---|
Rudi | Laki |
Rina | Perempuan |
Tono | Laki |
Map dapat dibuat dengan fungsi mapOf
.
val kelaminMap = mapOf("Rudi" to "Laki", "Rina" to "Perempuan", "Tono" to "Laki")
Keyword to
digunakan untuk memasangkan kunci (sebelum to
) dan nilai (sesudah to
).
Untuk mengakses nilai yang dipasangkan dengan sebuah kunci, kita dapat menggunakan operator
indexing. Fungsi get
juga dapat digunakan.
println(kelaminMap["Rudi"]) // Laki
println(kelaminMap["Rina"]) // Perempuan
println(kelaminMap["Tono"]) // Laki
println(kelaminMap.get("Rudi")) // Laki
println(kelaminMap["Sindi"]) // null
Untuk mengecek apakah sebuah kunci berada dalam Map, kita dapat menggunakan operator in
. Fungsi
contains
dan containsKey
juga dapat digunakan.
println("Rudi" in kelaminMap) // true
println("Sargiyah" in kelaminMap) // false
println(kelaminMap.contains("Rudi")) // true
println(kelaminMap.containsKey("Rudi")) // true
Properti keys
berisi daftar dari semua kunci yang ada di Map. Properti values
berisi daftar dari
semua nilai yang ada di Map.
println(kelaminMap.keys) // [Rudi, Rina, Tono]
println(kelaminMap.values) // [Rudi, Rina, Tono]
Kita dapat menggunakan for
dengan Map;
for (entry in kelaminMap) {
println("Kunci: ${entry.key}, Nilai: ${entry.value}")
}
// Kunci: Rudi, Nilai: Laki
// Kunci: Rina, Nilai: Perempuan
// Kunci: Tono, Nilai: Laki
Tipe data yang dikembalikan mapOf
adalah Map. Isi dalam tipe data Map tidak dapat diubah. Untuk
membuat Map yang isinya dapat diubah kita bisa menggunakan fungsi mutableMapOf
. Fungsi ini
mengembalikan tipe data MutableList.
val mutableKelaminMap = mutableMapOf("Rudi" to "Laki", "Rina" to "Perempuan", "Tono" to "Laki")
Operator indexing digunakan untuk mengubah nilai. Fungsi set
juga dapat digunakan.
mutableKelaminMap["Rudi"] = "Perempuan"
println(mutableKelaminMap["Rudi"]) // Perempuan
println(mutableKelaminMap["Ratno"]) // null
mutableKelaminMap["Ratno"] = "Laki"
println(mutableKelaminMap["Ratno"]) // Laki
mutableKelaminMap.set("Sindi", "Perempuan")
println(mutableKelaminMap["Sindi"]) // Perempuan
Akhir Kata
Sebenarnya masih banyak lagi fungsi yang dapat digunakan dengan tipe data di atas. Kalian dapat melihat dokumentasi untuk melihat fungsi lain yang bisa digunakan.