Membuat Database SQLite di Aplikasi Android
Langkah-langkah Membuat Database SQLite
1. Definisikan skema (Define Schema).Definisikan nama database, versi, nama tabel, dan nama kolom.
2. Membuat database (Create Database).
Tulis query untuk membuat/modifikasi database.
3. Eksekusi Query (Execute Queries)
Eksekusi query seperti insert, update, delete dan lainnya.
1.Definisikan skema (Define Schema).
Gambar di atas adalah contoh database yang akan digunakan dalam tutorial ini. Untuk mendefinisikan skema pelajari kode berikut ini.
String DATABASE_NAME="teknorialdatabase.db"; //bisa juga tanpa tulis ekstensi .db
String TABLE_NAME="teknorialtable";
String UID ="_id";
String NAME ="Nama";
Int DATABASE_VERSION=1;
2. Membuat database (Create Database) dengan menggunakan SQLiteOpenHelper.
Buat subclass dari SQLiteOpenHelper implementasikan onCreate(SQLiteOpenHelper), dan onUpgrade(SQLiteDatabase,int,int). Class ini akan membuka database jika ada, membuat database jika tidak ada dan meng-upgade jika diperlukan.class RezaHelper extends SQLiteOpenHelper
{
private static final String DATABASE_NAME="teknorialdatabase.db";
private static final String TABLE_NAME ="teknorialtable";
private static final String UID="_id";
private static final String NAME="Nama";
private static final int DATABASE_VERSION=1;
RezaHelper(Context context)
{
super(context, DATABASE_NAME, null,DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db)
{
}
public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion)
{
}
}
- onCreate(): Dipanggil ketika database dapat diakses namum belum
dibuat. Pembuatan tabel dan data awal dalam tabel harus diletakkan di
sini.- onUpdate(): Dipanggil ketika database butuh diupgrade. Gunakan method ini untuk drop tabel ,tambah tabel, atau hal lainnya yang perlu diupgrade versi skema baru.
Jika kamu ingin menambahkan kolom gunakan ALTER TABLE untuk menambahkan colom baru ke dalam tabel dan jika kamu ingin rename atau remove kolom dapat juga menggunakan ALTER TABLE.
3. Eksekusi Query (Execute Queries) dengan SQLiteDatabase
SQLiteDatabase memiliki method untuk create , delete ,eksekusi perintah SQL dan melakukan tugas-tugas manajemen database umum lainnya. Nama database harus unik dalam suatu aplikasi, tidak sama pada semua aplikasi. Untuk mengeksekusi perintah SQL gunakan public method dari class SQLiteDatabase berikut ini:public void execSQL(String sql)
Method ini hanya bisa mengesekusi statement SQL tunggal tapi tidak untuk
SELECT atau SQL statement lainnya yang mereturn data. Multiple Statment
dengan memisahkan oleh semicolon(titik koma) tidak didukung oleh method
ini. Jika string SQL tidak valid gunakan throws SQLException untuk
penanganan error.Implementasi onCreate
class RezaHelper extends SQLiteOpenHelper
{
private static final String DATABASE_NAME="teknorialdatabase.db";
private static final String TABLE_NAME ="teknorialtable";
private static final String UID="_id";
private static final String NAME="Nama";
private static final int DATABASE_VERSION=1;
RezaHelper(Context context)
{
super(context, DATABASE_NAME, null,DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE teknorialtable (_id INTEGER PRIMARY KEY
AUTOINCREMENT,Nama VARCHAR(255));");
}catch(SQLException e){
e.printStackTrace();
}
public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion)
{
}
}
Implementasi onUpdateclass RezaHelper extends SQLiteOpenHelper
{
private static final String DATABASE_NAME="teknorialdatabase.db";
private static final String TABLE_NAME ="teknorialtable";
private static final String UID="_id";
private static final String NAME="Nama";
private static final int DATABASE_VERSION=1;
RezaHelper(Context context)
{
super(context, DATABASE_NAME, null,DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db)
{
...
}
public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS teknorialtable");
onCreate(db);
}
}
Tutorial membuat aplikasi database SQLite dengan Android Studio
1. Buat class baru dengan nama message.java dan ikuti kode berikut. class ini berguna untuk mendapatkan pesan yang bisa digunakan untuk melihat error pada statment SQL atau bisa juga melihat proses create dan upgrade database.package com.teknorial.belajardatabase;
/**
* Created by Teknorial on 22-Nov-15.
*/
import android.content.Context;
import android.widget.Toast;
public class Message {
public static void message (Context context, String message)
{
Toast.makeText(context,message,Toast.LENGTH_LONG).show();
}
}
2. Buat class baru yang menjadi subclass dari class SQLiteOpenHelper dengan nama RezaHelper.java.package com.teknorial.belajardatabase;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by Teknorial on 22-Nov-15.
*/
public class RezaHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME="teknorialdatabase";
private static final String TABLE_NAME="teknorialtable";
private static final String UID="_id";
private static final String NAME="Nama";
private static final int DATABASE_VERSION= 1;
private static final String CREATE_TABLE="CREATE TABLE "+TABLE_NAME+"("+UID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+NAME+" VARCHAR(255));";
private static final String DROP_TABLE="DROP TABLE IF EXISTS "+TABLE_NAME;
private Context context;
public RezaHelper (Context context) {
super(context,DATABASE_NAME,null,DATABASE_VERSION);
this.context=context;
Message.message(context,"Constructor dipanggil");
}
@Override
public void onCreate (SQLiteDatabase db) {
try {
db.execSQL(CREATE_TABLE);
Message.message(context,"onCreate dipanggil");
} catch (SQLiteException e){
Message.message(context,""+e);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion){
try{
Message.message(context,"onUpgrade dipanggil");
db.execSQL(DROP_TABLE);
onCreate(db);
}catch (SQLiteException e){
Message.message(context,""+e);
}
}
}
3. Modifikasi class MainActivity seperti berikut.package com.teknorial.belajardatabase;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class MainActivity extends Activity{
RezaHelper rezaHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rezaHelper=new RezaHelper(this);
SQLiteDatabase sqLiteDatabase = rezaHelper.getWritableDatabase();
}
}
Jika aplikasi kita berhasil akan terlihat seperti screenshot dibawah.Pada saat pertama aplikasi diinstall akan muncul pesan onCreate dipanggil berarti database belum ada dan akan dibuat.
Untuk mencoba melihat proses upgrade database, ubahlah DATABASE_VERSION=1 menjadi DATABASE_VERSION=2, dan akan mencul pesan onUpgrade dipanggil dan disusul pesan onCreate dipanggil. Untuk pembahasan query SQLite lainnya seperti SELECT, INSERT dan lainnya akan menyusul. Demikian artikel Membuat Database SQLite di Aplikasi Android. Ikuti terus teknorial.com untuk mengetahui banyak hal tentang pemrograman android. Jangan lupa untuk Like Fanspage Teknorial di Facebook dan Google Plus untuk mendapatkan update terbaru dari teknorial.com . Jika ada pertanyaan jangan ragu untuk bertanya dikotak komentar. Terima Kasih
Source Code : SQLiteDatabaseApp
Referensi:
SQLiteDatabase
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
Storage Options - SQLite Databases
http://developer.android.com/guide/topics/data/data-storage.html#db
Saving Data in SQL Databases
http://developer.android.com/training/basics/data-storage/databases.html
kalau membuat 2 table dalam 1 database gimana bang?
BalasHapus