Array dan List pada Kotlin

Eric Wijaya
4 min readJan 9, 2019

--

Array

Array adalah data struktur yang dapat menyimpan koleksi elemen yang berurut dengan tipe yang sama.

  • Elemen pada array dimulai dari index 0, jadi elemen pertama pada array mempunyai index 0.
  • Elemen terakhir pada array mempunyai index sebesar jumlah elemen array dikurangi 1.
  • Nilai yang sama bisa disimpan pada array.
  • Ukuran array adalah tetap.
Array yang mempunyai 5 elemen, dimulai dari index 0–4

Kapan array berguna

Array berguna ketika kita ingin menyimpan elemen dengan urutan tertentu. Ketika ingin memakai elemen tertentu kita bisa mengaksesnya melalui index-nya.

Deklarasi array pada kotlin

val numbers = arrayOf(1, 2, 3, 4, 5)

Pada contoh di atas merupakan array Int. Array<Int>, tipe array ada di antara kurung.

List

List mempunyai konsep yang mirip dengan array. Perbedaannya adalah array punyai ukuran yang tetap sedangkan list ukurannya bisa bertambah atau berkurang — mutable list

val players = listOf("Peter", "Gary", "Rio", "Nemanja", "Patrice")

Pada contoh di atas adalah list string, List<String>

List ada immutable list dan mutable list.

  • Immutable list : read only list, jadi tidak bisa melakukan sesuatu yang akan mengubah list, seperti add, remove
  • Mutable list : bisa melakukan perubahan pada list.
val manUtdPlayers = mutableListOf("Peter", "Gary", "Rio", "Nemanja", "Patrice")

Menggunakan elemen list

Memakai method

Beberapa method yang untuk mengakses elemen list :

var player = manUtdPlayers.first() // "Peter"
player = manUtdPlayers.last() // "Patrice"
player = manUtdPlayers.min() // "Gary"
player = manUtdPlayers.max() // "Rio"

first() : elemen pertama pada list

last() : elemen terakhir pada list

min() : elemen dengan nilai terendah pada list, pada list string adalah berdasarkan urutan alphabet.

max() : elemen yang mempunyai nilai tertinggi.

Ketika mengakses elemen dengan menggunakan method kita perlu memastikan bahwa list tidak kosong, supaya tidak terjadi exception.

Memakai index

val firstPlayer = manUtdPlayers[0]

List juga dimulai dari index 0.

Bisa juga dengan memakai get()

val secondPlayer = manUtdPlayers.get(1)

Ketika memakai index yang di luar ukuran list akan menyebabkan IndexOutOfBoundException.

val player = manUtdPlayers[5] // IndexOutOfBoundException

Memakai slice

Dengan slice() kita bisa mengambil lebih dari satu nilai dari list.

Return value dari slice adalah list yang berbeda / terpisah dari list asalnya.

val defender = manUtdPlayers.slice(1..4)

Cek elemen

Untuk mengecek apakah suatu elemen terdapat pada list bisa memakai operator in atau contains() method.

fun isManUtdPlayer(player: String): Boolean {
return player in manUtdPlayers
}

slice() dan contains() dapat digunakan bersama

fun isManUtdDefender(player: String): Boolean {
return manUtdPlayers.slice(1..4).contains(player)
}

Modifikasi List

Kita dapat melakukan modifikasi pada mutable list, seperti menambah, mengurangi elemen mengganti nilai elemen, memindahkan urutan elemen.

Menambahkan elemen

manUtdPlayers.add("Cristiano")

atau bisa dengan operator +=

manUtdPlayers =+ "Roy"

Di sini elemen baru akan ditambahkan pada akhir list manUtdPlayers.

println(manUtdPlayers.joinToString())// "Peter", "Gary", "Rio", "Nemanja", "Patrice", "Cristiano", "Roy"

Menyisipkan elemen

manUtdPlayers.add(6, "Paul")

Akan menyisipkan elemen baru di index 6.

println(manUtdPlayers.joinToString())// "Peter", "Gary", "Rio", "Nemanja", "Patrice", "Cristiano", "Paul", "Roy"

Menghapus elemen

Menggunakan method remove()

val wasRemoved = manUtdPlayers.remove("Peter")println(manUtdPlayers.joinToString())// "Gary", "Rio", "Nemanja", "Patrice", "Cristiano", "Paul", "Roy"

remove() akan menghapus elemen dan mengembalikan return value boolean yang menandakan apakah penghapusan elemen berhasil.

Bisa juga menggunakan method removeAt()

val removedPlayer = manUtdPlayers.removeAt(6)
println("$removedPlayer was removed")
// Roy was removedprintln(manUtdPlayers.joinToString())// "Gary", "Rio", "Nemanja", "Patrice", "Cristiano", "Paul"

removeAt() memerlukan index elemen yang akan dihapus dan akan mengembalikan return value elemen yang dihapus tadi.

Untuk mencari index suatu elemen dapat menggunakan method indexOf()

val patriceIndex = manUtdPlayers.indexOf("Patrice")
// 3

indexOf() akan mengembalikan index pertama dari elemen, misal jika ada beberapa elemen yang mempunyai nilai yang sama maka index yang dikembalikan adalah index pertama.

Sedangkan jika elemen tidak ditemukan maka akan mengembalikan -1.

Mengubah elemen

Untuk mengubah elemen bisa menggunakan index-nya.

manUtdPlayers[3] = "Patrice Eva"println(manUtdPlayers.joinToString())// "Gary", "Rio", "Nemanja", "Patrice Eva", "Cristiano", "Paul"

Bisa juga dengan menggunakan method set() untuk mengubah elemen.

manUtdPlayers.set(2, "Nemanja Vidic")
println(manUtdPlayers.joinToString())
// "Gary", "Rio", "Nemanja Vidic", "Patrice Eva", "Cristiano", "Paul"

Iterasi elemen list

for (player in manUtdPlayers) {
println(player)
}
// Gary
// Rio
// Nemanja Vidic
// Patrice Eva
// Cristiano
// Paul

Jika memerlukan index dari tiap elemen bisa menggunakan method withIndex().

for ((index, player) in manUtdPlayers.withIndex()) {
println("${index + 1} $player")
}
// 1 Gary
// 2 Rio
// 3 Nemanja Vidic
// 4 Patrice Eva
// 5 Cristiano
// 6 Paul

Nullability pada list

Ketika menggunakan list ataupun array kita perlu mempertimbangkan apakah perlu nullability. Apakah elemennya bisa null atau list nya sendiri bisa null?

Contoh nullable list:

val nullableList: List<Int>? = listOf(1, 2, 3)// nullableList can null
nullableList = null

Kalau elemennya sendiri bisa null :

var listOfNullablesElement: List<Int?> = listOf(1, null, 3)
listOfNullablesElement = null // Error

Kalau list dan elemennya bisa null :

var listBothNullable: List<Int?>? = listOf(1, 2, null)
listBothNullable = null

Kesimpulan

Pada tulisan ini kita belajar mengenai array dan list pada kotlin.

  • Array adalah koleksi elemen yang berurut yang mempunyai tipe yang sama. Ukuran tetap.
  • List mirip dengan array tapi bedanya ukuran nya bisa berubah (bertambah / berkurang)
  • Untuk mengakses elemen dapat menggunakan index-nya.
  • Pada mutable list kita bisa melakukan modifikasi, seperti menambah, menyisipkan, menghapus, mengubah elemen.
  • Hati — hati menggunakan index supaya tidak out of bound.
  • Iterasi elemen — elemen dalam list dengan menggunakan for loop.
  • Nullability pada list.

--

--

No responses yet