Mengapa harus mencoba Kotlin untuk Android Development?

Ramadhan Purbo Sejati
SkyshiDigital
Published in
3 min readFeb 23, 2017

Kotlin?Apa itu dan mengapa harus mencobanya?itu pertanyaan yang awalnya saya tanyakan.

  • Concise: Mengurangi secara dratis jumlah kode boilerplate yang perlu ditulis.
  • Safe: Terhindar dari error classes seperti null pointer exceptions.
  • Versatile: Membangun aplikasi server-side, aplikasi Android atau kode front-end yang berjalan di browser.
  • Interoperable dengan Java: Interoperable berarti Anda dapat menggunakan kembali setiap class Java yang pernah Anda tulis, semua kode Java dapat bekerja dengan baik menggunakan Kotlin dan sebaliknya. Semua yang dapat Anda lakukan dengan Java, dapat Anda lakukan di Kotlin. Jika Anda tidak tahu bagaimana melakukannya di Kotlin, maka lakukan saja di Java dan biarkan plugin Kotlin mengubahnya menjadi Kotlin. Pastikan bahwa Anda melihat apa yang terjadi pada kode Anda, sehingga berikutnya Anda dapat melakukannya sendiri.

Salah satu perangkap yang paling umum dalam banyak bahasa pemrograman adalah null reference exceptions, di Java dikenal dengan NullPointerException (NPE). Di dalam Kotlin dibedakan menjadi dua yaitu references yang dapat null (nullable references) dan yang tidak bisa null (non-null references). Sebagai contoh, sebuah variabel biasa tipe String tidak bisa null:

var a: String = “abc”
a = null // compilation error

Untuk memungkinkan agar dapat null, Anda dapat mendeklarasikan variabel sebagai string nullable, ditulis sebagai berikut:

var b: String? = “abc”
b = null // ok

Dengan demikian dapat dijamin Anda tidak akan mengalami NPE. Sehingga Anda dapat memanggil demikian:

val l = a.length

Tetapi Anda tidak dapat melakukannya untuk variabel b, karena pada variabel b dapat bernilai null.

val l = b.length // error: variable ‘b’ can be null

Pengecekan untuk variabel bernilai null:

  • Pertama, Anda dapat membuat pengecekan apakah variabel tersebut bernilai null atau tidak:
val l = if (b != null) b.length else 0
  • Kedua, dengan menggunakan safe call operator (?.):
val l = b?.length

Dengan menggunakan safe call operator seperti diatas maka akan memperoleh hasil panjang dari variabel b jika variabel b tidak null, dan akan memperoleh null jika sebaliknya.

Bagaimana?mulai tertarik dengan Kotlin belum?mari kita pelajari lebih lanjut dengan kelebihan yang dimiliki Kotlin :D

  • Smart Casting:
// Java
if (node instanceOf Leaf) {
return ((Leaf) node).symbol;
}
// Kotlin
if (node is Leaf) {
return node.symbol; // Smart casting
}
if (document is Payable && document.pay()) { // Smart casting
println(“${document.title} is paid.”)
}

Kotlin menggunakan lazy evaluation sama seperti di Java, jadi jika document bukan termasuk Payable maka document.pay() tidak akan di evaluasi. Jika terevaluasi maka Kotlin tahu jika dokumen adalah Payable menggunakan smart cast.

  • Default Arguments: adalah fitur yang ada pada Kotlin sehingga membuat code Anda menjadi lebih ringkas, lebih mudah dibaca dan mudah untuk diubah sesuai kebutuhan.
class Product(
val id: BigInteger,
val title: String,
val color: String = "",
val condition: String = ") {
}
val bag = Product(123456, "Balenciaga", "Black", “New”)
val shoes = Product(123457, "Nike", "Yellow")
val tshirt = Product(123458, "Polo")
  • Functional Programming : Sementara Java berevolusi untuk menggabungkan beberapa konsep functional programming sejak Java 8. Sedangkan Kotlin telah terdapat functional programming di dalamnya, ini sudah termasuk higher-order functions, lambda expressions, operator overloading, lazy evaluation dan banyak method yang berguna untuk bekerja dengan collections. Kombinasi dari lambda expressions and the Kotlin library akan membuat coding Anda menjadi lebih mudah.
val numbers = arrayListOf(-42, 17, 13, -9, 12)
val nonNegative = numbers.filter { it >= 0 }
println(nonNegative)
listOf(1, 2, 3, 4) // list of 1, 2, 3, 4
.map { it * 10 } // maps to to 10, 20, 30, 40
.filter { it > 20 } // filters out 30, 40
.forEach { print(it) } // prints 30, 40
  • Concise Code: Bila Anda menggunakan Koltin dalam mendevelop pekerjaan Anda, maka Anda akan melihat pengurangan jumlah garis kode dengan drastis di projek Anda.

Contoh :

// Java
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/* your code */
}
});
// Kotlin
val button = findViewById(R.id.fab) as Button
button.setOnClickListener { view -> /* your code */}

Terima kasih telah membaca artikel ini. Pastikan untuk klik ❤ di bawah untuk merekomendasikan artikel ini jika menurut Anda artikel ini bermanfaat. Ini berarti banyak bagi saya.

--

--