kali ini kita akan mencoba operasi CRUD SQLite pada android. pasti udah pada tau kan apa itu SQLite, kalo belum bisa dilihat disini
untuk referensi dan dokumentasi nya bisa dilihat di sini :
http://www.sqlite.org/
http://www.sqlite.org/docs.html
http://sqlitebrowser.sourceforge.net/
pada sample kali ini kita akan melukakan operasi CRUD pada entitas mahasiswa yang beratribut nim, dan nama.
pertama kita buat project android. setelah memebuat project, kita mendesain UInya menggunakan xml yang ada di main.xml, berikut kodenya :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<TextView android:text="nim : " android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:id="@+id/editText1" android:layout_width="match_parent"
android:layout_height="wrap_content">
<requestFocus></requestFocus>
</EditText>
<TextView android:text="nama : " android:id="@+id/textView2"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:id="@+id/editText2" android:layout_width="match_parent"
android:layout_height="wrap_content"></EditText>
<LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="match_parent">
<Button android:id="@+id/btnSave" android:text="simpan"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:layout_width="wrap_content" android:text="ubah" android:layout_height="wrap_content" android:id="@+id/btnEdit"></Button>
<Button android:text="hapus" android:id="@+id/btnDelete" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<Button android:text="refresh" android:id="@+id/btnRefresh" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView android:layout_marginTop="20px"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" android:text="nim" android:gravity="center"></TextView>
<TextView android:layout_marginTop="20px"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" android:text="nama" android:gravity="center"></TextView>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:id="@+id/tNim" android:layout_marginTop="5px"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" android:gravity="center"></TextView>
<TextView android:id="@+id/tNama" android:layout_marginTop="5px"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" android:gravity="center"></TextView>
</LinearLayout>
</LinearLayout>
</ScrollView>
setelah mendesain UInya, selanjutnya kita membuat suatu kelas helper yang menghandle setiap request ke database, misal DBHelper.java
package com.ulhack.sqlite;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "basisdata";
private static final int DATABASE_VERSION = 1;
private final static String TABLES []={"Nim","Nama"};
public DBHelper (Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
public void createTableMahasiswa(SQLiteDatabase db){
db.execSQL("CREATE TABLE if not exists Mahasiswa (Nim TEXT PRIMARY KEY, Nama TEXT);");
}
public void addDataMahasiswa(SQLiteDatabase databasis, String nim, String nama){
ContentValues NilaiBaru = new ContentValues();
NilaiBaru.put("Nim", nim);
NilaiBaru.put("Nama", nama);
databasis.insert("Mahasiswa", null, NilaiBaru);
}
public void editDataMahasiswa(SQLiteDatabase databasis, String nim, String nama){
ContentValues UbahNilai = new ContentValues();
UbahNilai.put("Nama", nama);
databasis.update("Mahasiswa", UbahNilai, "Nim ="+nim, null);
}
public void deleteDataMahasiswa(SQLiteDatabase databasis, String nim){
databasis.delete("Mahasiswa", "Nim ="+nim, null);
}
public Cursor getAll(SQLiteDatabase db){
return db.query("Mahasiswa", TABLES, null, null, null, null, null);
}
}
terlihat setiap operasi untuk proses CRUD di handle di kelas ini. selanjutnya kita mengubah kelas activity nya(di src/nama_package). berikut kode lengkapnya :
</pre>
package com.ulhack.sqlite;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class SikiliteActivity extends Activity {
private SQLiteDatabase db;
private DBHelper pustakaDB;
private EditText nim, nama;
private Button btnAdd, btnEdit, btnDelete, btnRefresh;
private TextView tNim,tNama;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pustakaDB = new DBHelper(this);
db = pustakaDB.getWritableDatabase();
pustakaDB.createTableMahasiswa(db);
nim = (EditText)findViewById(R.id.editText1);
nama = (EditText)findViewById(R.id.editText2);
tNama = (TextView)findViewById(R.id.tNama);
tNim = (TextView)findViewById(R.id.tNim);
btnDelete = (Button)findViewById(R.id.btnDelete);
btnRefresh = (Button)findViewById(R.id.btnRefresh);
btnEdit = (Button)findViewById(R.id.btnEdit);
btnAdd = (Button)findViewById(R.id.btnSave);
getAll();
buttonEvenListener();
}
private void getAll(){
String fnim="", fnama="";
Cursor cursor = pustakaDB.getAll(db);
while(cursor.moveToNext()){
String nims = cursor.getString(0);
String namas = cursor.getString(1);
fnim +=nims+"\n";
fnama +=namas+"\n";
}
tNim.setText(fnim);
tNama.setText(fnama);
}
private void buttonEvenListener(){
btnRefresh.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
getAll();
}
});
btnDelete.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
String isiNim = nim.getText().toString().trim();
pustakaDB.deleteDataMahasiswa(db, isiNim);
Toast.makeText(SikiliteActivity.this, "data berhasil dihapus", Toast.LENGTH_SHORT).show();
getAll();
}
});
btnEdit.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
String isiNim = nim.getText().toString().trim();
String isiNama = nama.getText().toString();
pustakaDB.editDataMahasiswa(db, isiNim, isiNama);
Toast.makeText(SikiliteActivity.this, "data berhasil dirubah", Toast.LENGTH_SHORT).show();
getAll();
}
});
btnAdd.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String isiNim = nim.getText().toString().trim();
String isiNama = nama.getText().toString();
pustakaDB.addDataMahasiswa(db, isiNim, isiNama);
Toast.makeText(SikiliteActivity.this, "data berhasil disimpan", Toast.LENGTH_SHORT).show();
getAll();
}
});
}
}
<pre>
oke deh tinggal dijalan kan…
. oh iya berikut tampilan screenshot hasilnya :


