Pada tulisan sebelumnya, kita telah berhasil menginstal plugin Kotlin pada Android Studio 2.x, sehingga kita dapat menggunakan kotlin di sana.

Pemrograman Android dengan Kotlin memang masih baru.

Kemarin saya mencoba membuat kode untuk event listener onClick(), tapi malah error. Aplikasi tidak bisa dibuka dan langsung menutup dirinya.

Pesan error pun tidak ditapilkan di Android Studio.

Namun, masalah ini sudah terpecahkan oleh Kotlin Extension.

Apa itu Kotlin Extensions?

Pernah menggunakan fungsi findViewById()?

Fungsi ini tugasnya untuk memilih komponen yang ada di layout untuk dijadikan objek pada Java. Mirip seperti fungsi getElementById() pada Javascript.

Pada Kotlin, kita tidak lagi menggunakan fungsi findViewById()

Karena menurut mereka (Dok. Kotlin):

Fungsi tersebut berpotensi menimbulkan bugs dan membuat kode jadi susah dibaca

(Pantes saja aplikasi saya error dan tidak bisa dibuka 😄)

Kotlin memberikan terobosan dengan plugin Kotlin Extensions, sehingga programmer tidak lagi menghabiskan energi dan waktunya untuk mengetik fungsi findViewById().

Bagaimana cara menggunakan Kotlin Extensions?

Mari kita bahas dengan praktik…

Membuat Proyek Aplikasi Android

Kita gunakan saja proyek yang kemarin. Bila kamu sudah punya proyeknya, silahkan langsung lompat ke cara menambahkan kotlin extension di proyek android.

Tapi kalau belum, sialkan dibuat.

Buka Android Studio dan buat proyek baru.

Membuat proyek baru di android studio

Lalu tentukan minimum SDK-nya,

Memilih minimum SDK untuk aplikasi android

Kemudian pilih Activity yang ingin digunakan. Pilih saja Empty Activity.

Memilih jenis activity awal

Setelah itu, pada pemberian nama Activity, biarkan saja apa adanya.

Memberikan nama activity

Klik Finish, dan proyek baru kita akan langsung dibuat.

Konfigurasi Proyek Kotlin

Kita belum dapat menggunakan Kotlin pada proyek yang baru saja kita buat, karena masih menggunakan Java.

Oleh karena itu, Kita perlu melakukan sedikit konfigurasi untuk memberitahu Android Studio bahwa kita ingin pakai Kotlin pada proyek ini.

Silahkan buka menu Tools->Kotlin->Configure Kotlin in Project.

Menu konfigurasi proyek kotlin

Kemudian pilih versi kompilator Kotlin yang ingin digunakan.

Menentukan versi compiler kotlin

Setelah itu, akan muncul pesan notifikasi bila konfigurasi berhasil.

Pesan konfigurasi kotlin sukses

Konversi Kode Java Menjadi Kotlin

Silahkan buka kode MainActivity.java, Kemudian masuk ke menu Help->Find Actions atau tekan tombol Ctrl+Shift+A.

Fitur find actions android studio

Setelah itu, silahkan cari aksi dengan kata kunci “Convert Java to”.

konversi java ke kotlin

Pada hasil yang muncul, tekan Enter pada “Covert Java File to Kotlin File”.

Tunggu beberapa detik, dan file MainActivity.java akan segera berubah menjadi MainActivity.kt

Menambahkan Kotlin Ekstension pada Proyek Aplikasi

Silahkan buka file build.gradle (app), kemudian tambahkan kode berikut.

apply plugin: 'kotlin-android-extensions'

Tambahkan dibagian atas:

Menambahkan plugin android extensions pada proyek android

Setelah itu lakukan sync proyek agar tidak error. Buka menu Tools->Android->Sync Project with Gradle Files.

Menggunakan Kotlin Extension

Setelah proses sync selesai, sekarang kita bisa menggunakan Kotlin Extensions.

Silahkan buka file MainActivity.kt, tambahkan kode berikut untuk mengimpor libaray dari Kotlin Extensions.

import kotlinx.android.synthetic.main.activity_main.*

Artinya kita akan mengimpor semua komponen di activity_main.xml dan langsung dijadikan objek tanpa harus menggunakan fungsi findViewById().

Sebagai contoh, kita coba buat fungsi untuk meng-handle event onClick bernama ucapSalam().

package com.petanikode.cobakotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    // dieksekusi saat tombol welcome_msg diklik
    fun ucapSalam(v: View?): Unit {
        welcome_msg.setText("Selamat datang di Kotlin!")
    }

}

Setelah itu buka activity_main.xml kemudian tambahkan sebuah Button dan isi properti onClick dengan nama fungsinya, yaitu: ucapSalam.

Properti untuk event onClick Button

Lalu TextView di atasnya, kita ganti id-nya menjadi welcome_msg. Kode lengkap layout-nya seperti ini:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.petanikode.cobakotlin.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/welcome_msg" />

    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/welcome_msg"
        android:layout_alignParentStart="true"
        android:layout_marginTop="52dp"
        android:id="@+id/button"
        android:onClick="ucapSalam" />


</RelativeLayout>

Sekarang coba jalankan aplikasinya…

Aplikasi Android dengan Kotlin Extensions

Berhasil dan tidak ada error! 😄

Akhir Kata…

Kode Kotlin terlihat lebih sederhana dan mudah dipahami daripada Java.

Ditambah lagi dengan Kotlin Extensions yang membuat kita hemat waktu dan tenaga, sehingga dapat membuat aplikasi android dengan lebih cepat.

Terima kasih sudah mengikuti tutorial ini sampai akhir. Selamat bereksperimen dengan Kotlin dan Android.

Ada kesulitan?

Tanyakan di komentar!

📖 Referensi: - Dok. Kotlin --- [Kotlin Android Extensions](https://kotlinlang.org/docs/tutorials/android-plugin.html) - StackOverflow --- [Kotlin in xml onClick not work](https://stackoverflow.com/q/40885426/2658551)