Map #
Dalam Kotlin, Map
adalah sebuah koleksi yang menyimpan pasangan kunci-nilai (key-value pairs), di mana setiap kunci unik dan terhubung dengan satu nilai. Map digunakan untuk menyimpan data di mana ada asosiasi yang jelas antara elemen-elemen yang berbeda, seperti kamus (dictionary) atau direktori.
Kotlin menyediakan dua jenis Map
:
- Immutable Map (
Map
): Map yang nilainya tidak dapat diubah setelah dibuat. - Mutable Map (
MutableMap
): Map yang nilainya dapat diubah, elemen dapat ditambah, dihapus, atau dimodifikasi.
Membuat Map #
Immutable Map #
Immutable Map adalah Map
yang tidak bisa diubah setelah dibuat. Anda dapat membuatnya menggunakan fungsi mapOf
.
val immutableMap = mapOf("Apple" to 1, "Banana" to 2, "Cherry" to 3)
Mutable Map #
Mutable Map adalah Map
yang bisa diubah setelah dibuat. Anda dapat membuatnya menggunakan fungsi mutableMapOf
.
val mutableMap = mutableMapOf("Apple" to 1, "Banana" to 2)
mutableMap["Cherry"] = 3 // Menambahkan elemen baru
Operasi pada Map #
Mengakses Elemen dalam Map #
-
Menggunakan Kunci (Key): Anda dapat mengakses nilai yang terhubung dengan kunci tertentu menggunakan operator indeks (
[]
).val appleCount = immutableMap["Apple"] println(appleCount) // Output: 1
-
Menggunakan Fungsi
get
: Alternatif lain untuk mengakses elemen.val bananaCount = immutableMap.get("Banana") println(bananaCount) // Output: 2
-
Menggunakan
getOrElse
: Mengembalikan nilai default jika kunci tidak ditemukan.val orangeCount = immutableMap.getOrElse("Orange") { 0 } println(orangeCount) // Output: 0
-
Menggunakan
getValue
: MelemparkanNoSuchElementException
jika kunci tidak ditemukan.val cherryCount = immutableMap.getValue("Cherry") println(cherryCount) // Output: 3
Menambah dan Menghapus Elemen (Hanya untuk MutableMap
)
#
-
Menambah Elemen: Anda dapat menambah elemen baru ke dalam
MutableMap
dengan memberikan pasangan kunci-nilai baru.mutableMap["Durian"] = 4 // Menambah elemen baru
-
Menggunakan
put
: Alternatif untuk menambah atau mengganti elemen.mutableMap.put("Elderberry", 5)
-
Menghapus Elemen: Menghapus elemen berdasarkan kunci menggunakan
remove
.mutableMap.remove("Banana")
Iterasi pada Map #
Anda dapat mengiterasi melalui pasangan kunci-nilai dalam Map
menggunakan loop for
.
for ((key, value) in immutableMap) {
println("$key -> $value")
}
Output:
Apple -> 1
Banana -> 2
Cherry -> 3
Mengecek Keberadaan Kunci atau Nilai #
-
Menggunakan
containsKey
: Mengecek apakah sebuah kunci tertentu ada dalamMap
.val hasApple = immutableMap.containsKey("Apple") println(hasApple) // Output: true
-
Menggunakan
containsValue
: Mengecek apakah sebuah nilai tertentu ada dalamMap
.val hasValue3 = immutableMap.containsValue(3) println(hasValue3) // Output: true
Mengambil Kumpulan Kunci atau Nilai #
-
keys
: Mengambil semua kunci dalamMap
.val keys = immutableMap.keys println(keys) // Output: [Apple, Banana, Cherry]
-
values
: Mengambil semua nilai dalamMap
.val values = immutableMap.values println(values) // Output: [1, 2, 3]
Transformasi dan Filter pada Map #
-
filterKeys
: MemfilterMap
berdasarkan kunci.val filteredByKey = immutableMap.filterKeys { it.startsWith("A") } println(filteredByKey) // Output: {Apple=1}
-
filterValues
: MemfilterMap
berdasarkan nilai.val filteredByValue = immutableMap.filterValues { it > 1 } println(filteredByValue) // Output: {Banana=2, Cherry=3}
-
mapKeys
: Mentransformasi kunciMap
.val mappedKeys = immutableMap.mapKeys { it.key.uppercase() } println(mappedKeys) // Output: {APPLE=1, BANANA=2, CHERRY=3}
-
mapValues
: Mentransformasi nilaiMap
.val mappedValues = immutableMap.mapValues { it.value * 2 } println(mappedValues) // Output: {Apple=2, Banana=4, Cherry=6}
Kesimpulan #
Map
di Kotlin adalah struktur data yang sangat berguna untuk menyimpan data dalam bentuk pasangan kunci-nilai. Anda dapat melakukan berbagai operasi pada Map
, seperti menambah, menghapus, dan mengubah elemen (pada MutableMap
), mengakses elemen berdasarkan kunci, memfilter, dan melakukan transformasi. Dengan memahami berbagai operasi ini, Anda dapat menggunakan Map
secara efektif dalam pengembangan aplikasi Kotlin Anda.