Android Dasar — Data Binding dengan Kotlin

Tri Firdyanto
4 min readOct 27, 2020

--

Source: https://unsplash.com/photos/_YzGQvASeMk

Hallo semuanya, ini adalah tulisan pertama saya di Medium. Kali ini saya ingin membagikan tutorial untuk mengimplementasikan Data Binding pada Android menggunakan Kotlin.

Sebelumnya, apa sih Data Binding itu? Sesuai dengan artinya, Data Binding merupakan teknik untuk mengikat sebuah data ke dalam tampilan atau UI pada aplikasi itu sendiri.

Langsung saja kita ke tutorialnya, seperti biasa, buatlah empty project pada Android Studio anda, jika sudah, masuklah ke dalam bagian build gradle dan pada block Android, masukan kode kurang lebih menjadi seperti ini:

android {
...
dataBinding{
enabled = true
}
...
}

Kode di atas jika anda menggunakan Android Studio di bawah versi 4.1, jika anda sudah meng-update versi Android Studio anda menjadi di atas versi 4.1, maka anda bisa menggunakan kode seperti di bawah ini:

android {
...
buildFeatures{
dataBinding = true
}
...
}

Kalau sudah, jangan lupa untuk di-sync-kan. Kemudian pada layout activity_main.xml, buatlah 1 buah TextView, 1 buah EditText, dan 1 buah Button. Maka tampilannya kurang lebih akan menjadi seperti ini:

Beri ID pada tiap tiap atribut layoutnya, misalkan dari gambar di atas, saya memberikan ID TextView saya menjadi txt_show_name, dan EditText saya menjadi txt_name, dan terahir Button saya menjadi btn_submit.

Penulisan kode seperti itu juga biasa kita sebut dengan snake case, hal ini diperlukan agar kode menjadi rapih dan konsisten, karna jika menggunakan data binding, ID pada layout akan berubah menjadi camel case saat digunakan di dalam kode programnya, nanti akan saya tunjukan contohnya.

Hal selanjutnya adalah, menambahkan tag layout pada activity_main.xml untuk membungkus seluruh kodenya dan memindahkan deklarasi namespace ke tag tesebut (pindahkan semua kode yang di awali xmlns ke dalam tag <layout>).

Membungkus seluruh kode activity_main.xml dengan tag <layout></layout>

Jika sudah, maka selanjutnya kita buka file MainActivity.kt, kemudian kita deklarasikan variable binding yang mereferensikan Object pada Binding Main Activity.

private lateinit var binding: ActivityMainBinding

Maka hasilnya kurang lebih akan seperti ini:

Mendeklarasikan variable binding untuk mereferensikan Object Binding Main Activity

ActivityMainBinding Merupakan generated object dari tag layout yang sebelumnya kita tulis di layout activity_main.xml, object tersebut memiliki penamaan dengan format yang kosisten, apabila kamu menggunakan tag layout pada file layout lain selain activity_main.xml seperti misalkan activity_search.xml, maka generated object-nya akan bernama ActivitySearchBinding.

Setelah itu, kita tidak lagi menggunakan fungsi setContentView() lagi, namun kita menggunakan binding object dan menjadi seperti ini:

binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

Maka kurang lebih hasilnya akan seperti ini:

Kalau sudah, kemudian kita membuat listener untuk button-nya saat diklik.

binding.btnSubmit.setOnClickListener {
displayGreeting()
}

btnSubmit merupakan ID dari btn_submit yang ada di activity_main.xml, hal itu terjadi karna data binding library merubah ID tersebut menjadi demikian, yang sebelumnya snake case menjadi camel case. Dan ini diterapkan pada setiap pemanggilan ID pada layout ke kode Kotlin kita. sehingga kita tidak perlu menggunakan fungsi findViewById.

displayGreeting() merupakan fungsi yang akan kita buat di bawahnya, isi dari fungsi tersebut ialah seperti ini:

private fun displayGreeting() {
binding.apply {
txtShowName.text = "Hello, ${txtName.text}"
}
}
Perbedaan menggunakan Data Binding dan tidak

Pada screenshot di atas, saya memberikan gambaran bagaimana perbedaan dalam penggunaan Data Binding dan tidak, sangat terlihat jelas pada penulisan kode tersebut.

Jika sudah, maka anda hanya perlu menjalankan kode tersebut, dan melakukan testing.

Review dari aplikasi yang sudah dijalankan.

Selamat, Anda telah mengimplementasikan Data Binding pada aplikasi android Anda. Untuk mendapatkan source code ini, anda bisa berkunjung ke Github saya: Github

Semoga tulisan ini bermanfaat, apabila ada kesalahan dalam penulisan kata mohon untuk dimaafkan. Terima kasih telah membaca.

--

--