SQLite Database Using Anko Kotlin

Hanif Abdullah
SANDEC
Published in
5 min readJul 28, 2019

Pada pemrograman android terdapat banyak cara dalam menyimpan data aplikasi dalam file lokal, contohnya adalah Shared Preference, File dan SQLite. Namun terlalu ribetnya dalam menggunakan SQLite banyak developer yang akhirnya menggunakan database lain seperti Realm yang lebih mudah digunakan.

Pada tahun 2017, Google memperkenalkan bahasa baru yang dapat digunakan untuk pemrograman aplikasi Android. Bahasa tersebut bernama Kotlin. Dan sekarang berdasarkan AppBrain , 30,66% aplikasi top yang ada di google play sudah menggunakan Kotlin.

Semakin berkembangnya penggunaan bahasa Kotlin, sudah banyak library yang sudah mengimplementasikan bahasa Kotlin itu sendiri. Salah satu library yang paling terkenal dalam pengimplementasian bahasa Kotlin adalah Anko. Anko adalah suatu library yang membantu developer dalam mengembangkan aplikasi akan lebih mudah dan cepat. Salah satu bagian anko library yang memudahkan dalam pengembangan aplikasi android adalah Anko SQLite.

Sekarang pertanyaannya adalah bagaimana jika SQLite diterapkan dengan bahasa Kotlin dan menggunakan library Anko SQLite apakah benar-benar akan terasa mudah?

Jawabannya adalah, ayo praktek, agar teman-teman yang menilai sendiri apakah lebih mudah atau sama saja ribetnya. kuy kita mulai !!

Membuat Aplikasi Sederhana menggunakan SQLite Database dan Anko Library

  1. Buat sebuah projek Android Studio dengan minimum SDK adalah 16 (Jelly Bean)

2. Tambahkan library RecyclerView, CardView dan Anko pada build.gradle(Module: app).

Untuk library Anko sebenarnya ada 4 bagian : Anko Commons, Anko Layout, Anko SQLite dan Anko Courotine.

Kamu dapat menambahkan dengan cara menambahkan 1 dependency maka keempat bagian tersebut akan ditambahkan atau dengan cara hanya menambahkan bagian-bagian yang akan dipakai saja.

Dependency anko All in One
Dependency Anko per bagian

Karena pada library Anko masih terdapat beberapa komponen yang masih dalam pengembangan (masih belum stabil), maka perlu ditambahkan kode berikut pada file build.gradle(Module: app)

3. Kita memerlukan beberapa activity lainnya, karenanya tambahkan 3 activity dengan nama AddStudentActivity, DetailStudentActivity dan UpdateStudentActivity.

Persiapan Pembuatan SQLite

Sebelum kita membuat fungsi Create, Read, Update Delete. Kita diharuskan untuk membuat beberapa kelas tambahan. Kelas pertama akan kita fungsikan sebagai kelas model dimana kelas tersebut akan berisi nama kolom pada tabel database. Dan kelas lainnya akan digunakan sebagai inti dari SQLite dimana kelas tersebut yang akan membuat tabel dan urusan akses-mengakses pada tabel-tabel yang telah dibuat nantinya.

4. Buat sebuah kelas model dengan nama StudentContract.kt

5. Buat sebuah kelas dengan nama MyDatabaseHelper.kt dimana pada kelas ini akan terdapat sebuah fungsi bantuan utama untuk membuat sebuah database SQLite.

Sebuah kelas model telah selesai dibuat dan sebuah kelas pembantu utama dalam pembuatan database SQLite telah berhasil dibuat juga. Selanjutnya kita akan membuat fungsi insert.

Create / Insert Data

Pada langkah sebelumnya kita telah membuat activity AddStudentActivity. Activity ini akan kita isi untuk pembuatan / proses memasukan data baru ke dalam database SQLite yang telah dibuat.

6. Atur tampilan activity_add_student.xml

Tampilannya akan menjadi seperti ini :

7. Mengatur kelas AddStudentActivity.kt

Pada kelas tersebut untuk menambahkan data baru terdapat pada blok method insertDatabase(). Pada blok method tersebut untuk menambahkan data dengan menuliskan insert diikuti dengan nama tabel, kemudian diikuti lagi dengan isi setiap kolom. Jangan lupa untuk menuliskan syntax tersebut di dalam blok database.use{}.

READ DATA

Setelah membuat insert data, langkah selanjutnya ini nanti kita akan membuat untuk membaca isi dari database. Setelah nanti data dibaca maka kita akan menampilkan ke dalam recyclerview. Maka dari itu kita siapkan dulu komponen untuk menampilkan ke dalam recyclerview.

8. Buat item layout dengan nama item_student.xml. Layout ini nanti akan difungsikan sebagai item layout / komponen yang akan diulang di dalam recyclerview.

Tampilannya nanti akan terlihat seperti ini :

Tampilan layout item_student.xml

9. Setelah membuat item layout kita akan membuat adapter untuk menghubungkan antara kelas dengan item layout. Buat sebuah kelas baru dengan nama StudentAdapter.kt .

10. Recyclerview akan kita tampilkan pada activity MainActivity, selanjutnya kita akan mengatur tampilan layout activity_main.xml

Tampilan yang kita buat akan berbentuk seperti ini :

activity_main.xml

11. Setelah menyiapkan seluruh komponen yang diperlukan, langkah selanjutnya adalah kita mengatur kelas MainActivity untuk membaca data dari database kemudian akan ditampilkan ke dalam recyclerview.

Pada kelas tersebut syntax atau penulisan kode untuk mendapatkan data dari database SQLite terdapat pada bagian

read database

Fungsi select diisi dengan parameter nama tabel untuk yang akan dibaca/diambil datanya. Fungsi tersebut akan mengembalikan nilai SelectQueryBuilder.

Untuk mendapatkan nilai datanya, Anko menyediakan 3 parser utama yaitu :

Karena kasus kita adalah kita akan mengambil data dari seluruh tabel maka kita akan menggunakan methode parseList untuk menguraikan hasil query.

classParser pada kode diatas digunakan untuk menguraikan sesuai dengan data model yang sudah kita buat.

DELETE DATA

Fungsi delete data akan kita taruh pada DetailStudentActivity.

12. Mengatur tampilan layout activity_detail_student.xml

13. Mengatur kelas DetailStudentActivity.kt dan membuat fungsi delete

Fungsi delete pada barisan kode diatas ada pada bagian :

Pada kode tersebut jika kita terjemahkan dalam bahasa manusia dapat berkata sebagai berikut :

“Hapus data dari tabel StudentContract.TABLE_STUDENT dengan StudentContract.ID (Nama kolom) samadengan id.toInt() (Nilai dari ID)”

UPDATE DATA

Will be updtate Soon.

Silahkan teman-teman praktekan sendiri yaa. Jika ada kesulitan atau pertanyaan silahkan bisa kontak-kontak saya disini. Untuk melihat kode lengkapnya, teman-teman bisa intip di github saya :

Semoga tutorial kali ini bermanfaat. See you next article.

Reference :

--

--

Hanif Abdullah
SANDEC
Editor for

Part of Semarang Android Developer Center (SANDEC)