Inisialisasi View Dengan Kotlin di Android

Last Updated on 7 years by Mas Herdi

Hi semuanya! Kali ini kita meneruskan tutorial tentang belajar membuat aplikasi Android menggunakan Kotlin di Android Studio. Kotlin sekarang sudah sangat popular dan semakin menggantikan Java sebagai bahasa pemrograman alternatif yang bisa digunakan untuk membuat aplikasi Android. Oke, sekarang di tutorial ini kita akan belajar untuk menginisialisasi View menggunakan Kotlin.

Inisialisasi View di Kotlin Android

View adalah salah satu element penting pada sebuah aplikasi Android. Contoh dari View adalah Button, TextView, ImageView dan widget-widget yang lain. Bisa dibilang hampir semua UI layout Android terdiri dari View.

Bagi yang sudah pernah membuat aplikasi Android menggunakan Java dan Android Studio, kalian pasti sudah biasa menginisialisasi View dengan menggunakan findViewById(). Sebenarnya di Kotlin juga sama caranya, hanya berbeda di bagian inisialisasi variable View-nya.

Oke sebelum meneruskan, saya sarankan kalian untuk melakukan tutorial sebelumnya, tentang cara membuat aplikasi Android Hello World menggunakan Kotlin.

Setelah itu, kita akan menggunakan XML layout seperti di sini (berisi dua Button). Kita akan menginisialisasi Button yang ada di layout tersebut. Codingannya seperti di bawah :

package co.twoh.kotlin.twohkotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast

class MainActivity : AppCompatActivity() {

    /**
     * inisialisasi null
     */
    var button1: Button? = null

    /**
     * inisialisasi dengan lazy init
     */
    private lateinit var button2: Button



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

        /**
         * Find view menggunakan as Button
         */
        button1 = findViewById(R.id.bt_1) as Button

        /**
         * Find view secara langsung
         */
        button2 = findViewById(R.id.bt_2)

        /**
         * setOnClickListener kemungkinan variable null
         */
        button1?.setOnClickListener {
            Toast.makeText(this, "Clicked "+button1?.text, Toast.LENGTH_LONG).show()
        }

        /**
         * setOnClickListener variable tidak mungkin null
         */
        button2.setOnClickListener{
            Toast.makeText(this, "Clicked "+button2.text, Toast.LENGTH_LONG).show()
        }
    }
}

Bisa dilihat pada codingan di atas, ada dua cara inisialisasi View di Android menggunakan Kotlin. Yang pertama adalah cara inisialisasi biasa dengan kemungkinan variable null, yang kedua adalah dengan menggunakan keyword lateinit, keyword ini berguna untuk memberitahu bahwa variable ini nantinya akan diinisialisasi sehingga variabel tersebut tidak akan null. Perlu diperhatikan Kotlin adalah bahasa pemrograman yang membedakan status variable, apakah variable itu bisa null atau tidak. Hal ini sangat berguna untuk mencegah terjadinya nullPointerException yang bisa membuat app crash/force close.

Setelah kita inisialisasi variable, kita lanjut dengan melakukan pemanggilan findViewById() seperti biasa, hanya bedanya dengan Kotlin kita bisa menggunakan dua cara untuk memanggil findViewById()  seperti diatas.

Kemudian untuk mengeset listenernya, bisa dilihat pada codingan di atas caranya lebih simpel dan praktis dibandingkan menggunakan Java. Dan jika diperhatikan akan ada tanda ? pada button1 sedangkan pada button2 tidak ada. Hal itu disebabkan karena yang sudah saya jelaskan di atas bahwa Kotlin membedakan variable yang bisa null dan yang tidak bisa null. Untuk variable yang bisa null maka akan ada keyword ? yang mengikuti, fungsinya adalah jika ada tanda ? tersebut Kotlin akan secara otomatis melakukan pengecekan apakah variable itu null atau tidak.

So that’s all ! Source code-nya bisa langsung download source code project Kotlin nya di GitHub saya. Semoga membantu. 🙂





Download aplikasi kami di Google Play Store


Tutorial Menarik Lainnya :

Leave a Reply

Your email address will not be published. Required fields are marked *

TWOH&Co.