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";
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.
[AdSense-A]
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.
Unknown
Wednesday, September 6, 2017
Related Posts