Kenapa Kotlin?
Kotlin adalah bahasa pemrograman modern untuk mengembangkan aplikasi jadi lebih mudah dan lebih produktif. Bahasa kotlin dirancang agar lebih ringkas, efisien, mudah dibaca, dan membantu mengurangi kesalahan yang sering terjadi saat menulis kode.
Pada tahun 2017, Google secara resmi mengumumkan kotlin sebagai bahasa resmi dalam pengembangan Android. Sejak saat itu, kotlin mendapat dukungan dari Google dan semakin banyak digunakan oleh developer di seluruh dunia.
Keunggulan Kotlin
Berikut ini adalah beberapa keunggulan kotlin :
1. Sintaks Lebih Ringkas
Penulisan kode lebih singkat dibanding Java dan minim kode berulang (boilerplate).
2. Null Safety
Fitur null safety membantu mencegah kesalahan akibat null, penyebab paling umum terjadi crash pada aplikasi android.
3. Interoperabilitas dengan Java
Kotlin dapat digunakan bersama Java dalam satu project termasuk memanfaatkan library Java yang sudah ada.
4. Resmi Didukung untuk Android
Kotlin merupakan bahasa yang direkomendasikan oleh Google untuk pengembangan aplikasi Android
5. Coroutines
Kotlin menyediakan fitur Coroutines untuk menjalankan proses asinkron dengan lebih mudah dan efisien.
6. Multiplatform
Selain Android, Kotlin juga dapat digunakan untuk membangun aplikasi backend, web, ios dan desktop dalam Kotlin Multiplatform.
7. Dukungan Komunitas dan Ekosistem yang Berkembangan
Dukungan dan popularitas kotlin terus meningkat sehingga dokumentasi, library, serta komunitas developer-nya semakin lengkap.
Kotlin Data Types, Variables and Operators
Data Type di kotlin terdiri dari :
Int, Double, Long, Float, Boolean, Char, String
Contohnya :
val age: Int = 30
val price: Double = 99.99
val isActive: Boolean = true
val grade: Char = 'A'
val name: String = "Wim"
Conditions and Booleans
Kotlin memiliki Boolean dan Operator Boolean seperti :
<, ==, >, !=, <=, >=
Contohnya :
val isLoggedIn = true
val age = 25
println(age >= 18)
println(age < 18)
Untuk Condition sendiri terdiri dari : - If Expression
val age = 25
if (age >= 18) {
println("You are an adult")
}
- If Else Expression
val age = 15
if (age >= 18) {
println("You are an adult")
} else {
println("You are underage")
}
- Else If Expression
val score = 85
if (score >= 90) {
println("Grade A")
} else if (score >= 80) {
println("Grade B")
} else if (score >= 70) {
println("Grade C")
} else {
println("Grade D")
}
- If as an ExpressionSalah satu keunikan di kotlin adalah if di kotlin dapat digunakan sebagai sebuah expression yang langsung mengembalikan sebuah nilai.
val age = 20
val status = if (age >= 18) {
"Adult"
} else {
"Underage"
}
println(status)
Fitur lainnya dari kotlin adalah membuat pengecekan rentang nilai menjadi lebih sederhana dalam Range operator (...). Kita akan coba menggunakan range dalam statement If.
val score = 85
if (score in 75..100) {
println("Passed")
}
- When StatementSecara definisi hampir sama dengan switch, tetapi jauh lebih fleksibel. Berikut contohnya :
val day = 1
when (day) {
1 -> println("Monday")
2 -> println("Tuesday")
3 -> println("Wednesday")
4 -> println("Thursday")
5 -> println("Friday")
else -> println("Weekend")
}
Arrays and Lists
- Array adalah kumpulan data yang bersifat fixed size. Artinya tidak dapat ditambah atau dikurangi elemennya, kecuali di copy ke array baru.
val fruits = arrayOf("Apple", "Strawberry", "Watermelon")
Yang unik di kotlin adalah array tidak terikat pada tipe data element. Artinya kita bisa menggabungkan beberapa tipe data yang berbeda.
val mix = arrayOf("Apple", 20)
- List adalah kumpulan data yang lebih fleksibel dibandingkan array. List merupakan bagian dari Kotlin Collections yang mana kita bisa memanfaatkan fitur-fitur di dalamnya untuk mengolah data seperti filter(), map(), sorted(), dan find().Ada dua jenis List di kotlin :
- List (Immutable)
- MutableList (Mutable)
Immutable List
Karena bersifat immutable, data hanya dapat dibaca dan tidak dapat diubah setelah dibuat.
val fruits = listOf("Apple", "Strawberry", "Watermelon")
println(fruits)
MutableList ListKebalikannya dari Immutable List, data dapat ditambah, dihapus dan diubah.
val fruits = mutableListOf("Apple", "Strawberry", "Watermelon")
fruits.add("Orange")
fruits.remove("Watermelon")
fruits[0] = "Mango"
println(fruits)
Loops
Looping atau perulangan dapat dilakukan di Array maupun di List
val fruits = listOf("Apple", "Strawberry", "Watermelon")
for (fruit in fruits) {
println(fruit)
}
Output:
Apple
Strawberry
Watermelon
Jika ingin mengakses index dan value
val fruits = listOf("Apple", "Strawberry", "Watermelon")
for ((index, fruit) in fruits.withIndex()) {
println("Item at $index is $fruit\n")
}
Output:
Item at 0 is Apple
Item at 1 is Strawberry
Item at 2 is Watermelon
Selain perulangan maju, di kotlin juga bisa looping mundur, step dan alphabet.
for (i in 1..5) print(i)
Output : 12345
for (i in 5 downTo 1) print(i)
Output : 54321
for (i in 3..6 step 2) print(i)
Output : 35
for (i in 'a'..'f') print (i)
Output : abcdef
Nullable and non-nullable variables
Di kotlin ada fitur Null Safety yang dirancang untuk mencegah kesalahan oleh nilai null, yang sering menyebabkan aplikasi crash terutama NullPointerException. Secara default, semua variabel di Kotlin bersifat non-nullable, artinya variabel tersebut tidak boleh menyimpan nilai null kecuali harus dideklarasikan secara eksplisit sebagai nullable.
Non-Nullable Variables
Variabel non-nullable hanya dapat menyimpan nilai sesuai dengan tipe datanya.
val name: String = "Wim"
Nullable VariablesUntuk mendeklarasikan sebuah variabel menyimpan nilai null, tambahkan tanda (?) setelah tipe data.
var name: String? = null
Safe Call OperatorDi nullable variable, kita tidak dapat langsung mengakses properti atau fungsi miliknya karena nilai bisa saja null. Maka dari itu gunakan safe call operator (?.) untuk mengaksesnya.
var name: String? = null
println(name?.length)
Elvis OperatorOperator ini berfungsi memberikan nilai default apabila sebuah variabel bernilai null dengan oerator (?:).
var name: String? = null
val displayName = name ?: "No Name"
println(displayName)
Not-Null AssertionOperator Not-Null Assertion (!!) berfungsi untuk mengubah nullable menjadi non-nullable.
val name: String? = "Wim"
println(name!!.length)
Apabila ternyata nilainya null, maka akan mengalami error NullPointerException. Oleh karena itu, penggunaan (!!) sebaiknya dihindari kecuali jika kita benar-benar yakin bahwa nilainya tidak mungkin null.
Type Checks and Casts
Kotlin menyediakan fitur Type Checks dan Type Casts yang berfungsi untuk mengetahui tipe data suatu objek saat aplikasi sedang berjalan atau mengubah suatu objek menjadi tipe data tertentu.
Fitur ini banyak digunakan ketika menemukan objek yang memiliki tipe umum seperti Any atau struktur data yang dapat menyimpan berbagai jenis tipe data.
- Type Checks dengan is atau !is
Operator is digunakan untuk memeriksa apakah sebuah objek merupakan tipe data tertentu, sedangkan !is sebaliknya.
val name: Any = "Wim"
if (name is String) {
println("Length: ${name.length}")
}
- Unsafe Cast dan Safe CastUnsafe Cast (as) digunakan untuk mengubah suatu objek menjadi tipe tertentu. Gunakan (as) hanya jika Anda yakin tipe datanya benar, karena kalau gagal akan menyebabkan error ClassCastException.
val name: Any = "Wim"
if (name is String) {
println("Length: ${name.length}")
}
Sedangkan Safe Cast (as?) digunakan untuk menghandle terjadinya error ClassCastException dengan mengembalikan nilai null.
val data: Any = 100
val text = data as? String
println(text)
Output:
null
Jadi kesimpulannya Type Checks dan Type Casts menangani objek dengan tipe data yang berbeda secara aman.
Oke mungkin sekian dulu pembahasan kali ini, next kita akan membuat aplikasi android dengan kotlin. Semoga bermanfaat dan stay tuned untuk materi berikutnya.
Terima kasih. ^^

0 Komentar
Penulisan markup di komentar