Membuat To Do List menggunakan SQLite pada Android Studio
SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. Gampangnya, SQLite itu jenis database yang ringan dan tersedia dalam OS Android. Ada beberapa jenis database lainnya yang juga sering digunakan oleh para developer seperti salah satu contohnya ialah Realm.
Menggunakan database adalah cara yang tepat untuk menyimpan data terstruktur atau data berulang, seperti informasi kontak. Halaman ini berasumsi bahwa Anda sudah familier dengan database SQL secara umum dan akan membantu Anda memulai database SQLite di Android. API yang nanti Anda perlukan untuk menggunakan database di Android tersedia dalam paket android.database.sqlite.
Salah satu prinsip utama database SQL adalah skemanya: deklarasi formal tentang cara database diatur. Skema ini tercermin dalam Pernyataan SQL yang Anda gunakan untuk membuat database. Ada baiknya Anda membuat kelas pendamping yang disebut dengan kelas kontrak, yang secara eksplisit menetapkan tata letak skema Anda dalam cara yang sistematis dan terdokumentasi sendiri.
Kelas kontrak adalah penampung untuk konstanta yang menentukan nama URI, tabel, dan kolom. Kelas kontrak memungkinkan Anda menggunakan konstanta yang sama pada semua kelas lain dalam paket yang sama. Hal ini memungkinkan Anda mengubah nama kolom di satu tempat, kemudian mengatur agar perubahan tersebut disebarkan ke seluruh kode.
Cara yang tepat untuk mengatur kelas kontrak adalah dengan memberikan definisi yang bersifat global pada seluruh database Anda di tingkat root kelas tersebut. Kemudian, buat kelas dalam untuk setiap tabel. Setiap kelas dalam akan menghitung kolom tabel yang terkait.
Catatan: Dengan menerapkan antarmuka BaseColumns kelas dalam Anda dapat mewarisi kolom kunci utama yang disebut _ID yang diharapkan untuk dimiliki oleh beberapa kelas Android seperti CursorAdapter. Hal ini tidak wajib, tetapi dapat membantu database Anda bekerja secara harmonis dengan framework Android.
Membuat Database Menggunakan SQL Helper
Setelah menentukan tampilan database, Anda harus menerapkan metode yang akan membuat serta mengelola database dan tabel. Contohnya, kontrak berikut menentukan nama tabel dan nama kolom untuk satu tabel yang merepresentasikan feed RSS:
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + FeedEntry.TABLE_NAME + " (" +
FeedEntry._ID + " INTEGER PRIMARY KEY," +
FeedEntry.COLUMN_NAME_TITLE + " TEXT," +
FeedEntry.COLUMN_NAME_SUBTITLE + " TEXT)";
private static final String SQL_DELETE_ENTRIES =
"DROP TABLE IF EXISTS " + FeedEntry.TABLE_NAME;
Sama seperti file yang disimpan di penyimpanan internal perangkat, Android menyimpan database Anda dalam folder pribadi aplikasi. Data Anda akan selalu aman karena secara default area ini tidak dapat diakses oleh aplikasi lain atau oleh pengguna.
Kelas SQLiteOpenHelper berisi kumpulan API yang berguna untuk mengelola database Anda. Saat kelas ini digunakan untuk memperoleh referensi ke database, sistem hanya akan melakukan operasi pembuatan dan update database, yang mungkin memerlukan banyak waktu, hanya ketika diperlukan; bukan pada saat aplikasi dimulai. Yang perlu Anda lakukan hanyalah memanggil getWritableDatabase() atau getReadableDatabase().
Catatan: Karena operasi dapat berjalan lama, pastikan Anda memanggil getWritableDatabase() atau getReadableDatabase() di thread latar belakang. Lihat Menggunakan thread di Android untuk informasi selengkapnya.
Untuk menggunakan SQLiteOpenHelper, buat subclass yang mengganti metode callback onCreate() dan onUpgrade(). Anda mungkin juga perlu menerapkan metode onDowngrade() atau onOpen(), tetapi keduanya tidak diperlukan.
Misalnya, berikut adalah penerapan SQLiteOpenHelper yang menggunakan beberapa perintah yang ditampilkan di atas:
public class FeedReaderDbHelper extends SQLiteOpenHelper {
// If you change the database schema, you must increment the database version.
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "FeedReader.db";
public FeedReaderDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// This database is only a cache for online data, so its upgrade policy is
// to simply to discard the data and start over
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
}
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
Untuk mengakses database, buat instance subclass SQLiteOpenHelper Anda:
FeedReaderDbHelper dbHelper = new FeedReaderDbHelper(getContext());
Untuk lebih terangnya, kali ini kita akan membuat aplikasi to do list sederhana menggunakan SQLite sebagai penyimpanannya. Cobalah untuk perhatikan dan ikuti beberpa langkah berikut :
1. Buka aplikasi Android Studio, buat project baru dengan nama ToDoListSQLite dan konfigurasikan projectnya seperti ini (Misal) :
2. Pada activity_main.xml ketikan script dengan menggunakan RelativeLayout seperti berikut :
3. Buat sebuah file Layout baru dengan nama row.xml File ini nantinya akan digunakan untuk menampilkan list kegiatan yang akan dilakukan dan disampingnya akan diberikan tombol hapus.
4. Kemudian, dalam file row.xml tersebut, ketikan script kode seperti berikut :
5. Setelah itu, kita akan membuat Directory Menu, Caranya Klik kanan pada folder res>New>Directory lalu beri nama Menu
6. Setelah itu buat layout baru pada folder Menu tadi dengan nama layout menu.xml dengan cara klik kanan pada folder Menu>New>Layout Resource File, beri nama menu.xml lalu ketik kode program seperti berikut :
7. Selanjutnya kita akan membuat class SQLiteOpenHelper dengan nama file DbHelper.java. SQLiteOpenHelper sendiri adalah sebuah subclass yang digunakan untuk menentukan nama database dan versi database yang sedang dipakai. Kita bisa menerapkan method di class ini seperti : OnCreate (SqliteDatabase), OnUpgrade (SqliteDatabase int int) dan OnOpen(SqliteDatabase).
8. Kemudian implementasikan script berikut pada DbHelper.java tersebut :
9. Pada MainActivity.java, ketikan script kode seperti berikut :
10. Terakhir, ubah nama aplikasi sesuai keinginan dengan cara merubah file string.xml yang ada dalam foler res/values seperti berikut :
Jika sudah, saat aplikasi di running pada emulator atau langsung ke device android yang anda punya, hasilnya kurang lebih akan tampak seperti yang ada dalam video berikut
Baiklah, cukup sekian ilmu yang bisa saya bagikan. Mohon maaf apabila masih ditemukan banyak kesalahan atau kekeliruan dalam menyampaikan materi. Semoga bermanfaat dan teruslah belajar :)
Comments
Post a Comment