SQLite adalah embedded database karena hanya menggunakan memori sekitar 250KB
tetapi bisa menyediakan fasilitas relational DBMS termasuk perintah SQL. Referensi
lengkap SQLite dapat dilihat di http://www.sqlite.org , SQLite tidak hanya digunakan di
Android tetapi di aplikasi lainya. Setiap Aplikasi memiliki instance database tersendiri dan
berbeda dengan shared preference, tidak disediakan fasilitas agar aplikasi dapat membaca
database aplikasi lain.
Untuk menggunakan SQLite kita harus menggunakan Class Helper untuk membuka,
menutup database, menginisiasi tabel dan lainya. Class Helper ini digunakan dalam
melakukan upgrade struktur database pada saat aplikasi di-update. Class Helper ini
diturunkan dari class SQLiteOpenHelper.
Untuk lebih jelasnya pembahasan Pembuatan Database SQLite, maka Kita Langsung buat
saja sebuah Aplikasi sebagai contoh kita berinama “contohentridatabase”.
Adapun langkah-langkahnya sebagai berikut :
1. Jalankan Enclipse-Juno Pilih menu, File > New > Application Android Project
2. Isikan Nama Project pada isian berikut ini :
Application Name : contohentridatabase {nama aplikasi yang dibuat)
Project Name : contohentridatabase {nama proyek}
PackageName : com.example.contohentridatabase {nama paket]
Minimum Required SDK : (tidak usah dirubah) {minimum versi android
Bisa menggunakan }
Target SDK : (tidak usah dirubah) {versi android yang diset}
Compile with : (tidak usah dirubah) {versi android yang meng-kompilasi}
Theme : (tidak usah dirubah) {set tampilan layar}
5. Kemudian akan terbuka aplikasi yang akan kita dibuat bersamaan dengan dua file Java
dan xml.
6. Contoh Aplikasi Entridatabase ini kita akan Belajar Bagaimana membuat Fungsi Create/Insert data, untuk
memasukan data baru ke Database SQLite dalam pembuatan Create/Insert data ke Database SQLite ini ada
beberapa Class java yang harus dipersiapkan yaitu :
a. Barang.java
Kelas Barang berfungsi untuk mendefinisikan objek barang beserta fungsi-fungsi dan atribut-atributnya. Dan seperti barang pada
umumnya barang mempunyai nama, ID, merk dan sebagainya. Lihat Code : disini...
package com.example.contohentridatabase;
//Author : midasoft.blogspot.com
public class Barang {
private long id;
private String nama_barang;
private String merk_barang;
private String harga_barang;
/**
* @return the id
*/
public long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(long id) {
this.id = id;
}
/**
* @return the nama_barang
*/
public String getNama_barang() {
return nama_barang;
}
/**
* @param nama_barang the nama_barang to set
*/
public void setNama_barang(String nama_barang) {
this.nama_barang = nama_barang;
}
/**
* @return the merk_barang
*/
public String getMerk_barang() {
return merk_barang;
}
/**
* @param merk_barang the merk_barang to set
*/
public void setMerk_barang(String merk_barang) {
this.merk_barang = merk_barang;
}
/**
* @return the harga_barang
*/
public String getHarga_barang() {
return harga_barang;
}
/**
* @param harga_barang the harga_barang to set
*/
public void setHarga_barang(String harga_barang) {
this.harga_barang = harga_barang;
}
@Override
public String toString()
{
return "Barang "+ nama_barang +" "+ merk_barang + " "+ harga_barang;
}
}
b. DBHelper.java
Database Helper berfungsi untuk memudahkan kita dalam membuat dan mengakses database SQLite yang akan dipakai oleh
aplikasi. Kelas ini berisi method-method berkaitan dengan manajemen database, seperti onUpgrade() dan onCreate().
Database Helper sebenarnya sudah ada kelasnya pada Android, yaitu
bernama SQLiteOpenHelper. Sehingga kita tinggal meng-extends kelas ini dari
kelas SQLiteOpenHelper atau dengan kata lain melakukan pewarisan.
Kelas DBHelper.java kebanyakan berisi konstanta-konstanta seperti nama tabel, nama database, nama kolom, dan sebagainya.
Hal ini untuk memudahkan kita nantinya. Dimana ketika ingin menggunakan konstanta tersebut, kita tidak usah lagi menulis nama
tabel berulang kali, namun cukup dengan mengaksesnya dari kelas DBHelper. Lihat code: disini...
package com.example.contohentridatabase;
//Author :midasoft.blogspot.com
import java.util.List;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
}
}
c. DBDataSource.java
Kelas ini adalah sebuah Controller yang akan menyambungkan interface tersebut dengan database yang kita buat. Penjelasan
rincinya yaitu :
cara kerjanya sebagai berikut pertama kita jelaskan kelas CreateData.java. yang akan kita buat nanti, Apabila kita telah mengisi
data barang dan mengklik tombol submit, data barang tersebut akan dikirim ke Controller. Kemudian Controller akan menerima
inputan data barang tersebut dan memasangkannya sesuai dengan nama kolom pada database
menggunakan ContentValues. Untuk selanjutnya dimasukkan ke database.
Setelah dimasukkan datanya akan dicek kembali menggunakan SQL select yang mengembalikan data
berupa Cursor. Data Cursor tersebut kemudian akan diubah menjadi objek barang, dan dilemparkan lagi ke
kelas CreateData untuk kemudian mengkonfirmasikan data apa saja yang kita masukkan.
Lihat Code : disini..
package com.example.contohentridatabase;
//Author :midasoft.blogspot.com
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
// close cursor
cursor.close();
d. CreateData.java
Kelas CreateData berfungsi berfungsi untuk insert data atau create data. Kelas ini berfungsi untuk menambahkan data barang
baru ke database. Berikut ini daftar file-file yang akan kita buat untuk menangani Createdata adalah sebagai berikut :
MainActivity.xml : berfungsi untuk membuat sebuah layout main menu
Pertama kita akan membuat kelas MainActivity terlebih dahulu, karena itu kita butuh file layout-nya. Buka folder res/layout,
dengan cara klik Kanan dan Pilih New-> Android Xml File, dan buat sebuah file xml baru dengan
nama MainActivity.xml
Lihat code : disini...
//Author: midasoft.blogspot.com
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button2"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dp"
android:onClick="exit"
android:text="@string/ex" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button3"
android:layout_below="@+id/textView1"
android:onClick="Create"
android:text="@string/create_data" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="24dp"
android:onClick="View"
android:text="@string/view_data" />
</RelativeLayout>
Data_create.xml : berfungsi sebagail layout untuk tampilan input data
Kelas ini berfungsi untuk menampilkan tombol “Create Data”, yang apabila kita klik akan berpindah
ke Activity Create Data. Namun kita akan membuat file xml layout-nya. Caranya
Klik folder res/layout klik Kanan dan Pilih New-> Android Xml File , kemudian
berinama data_create.xml :
Layout di atas berisi EditText yang berfungsi sebagai wadah inputan tiga buah informasi dasar, yaitu nama barang, merk
barang dan harga barang, dan sebuah tombol submit di bawahnya. Setelah itu, kita akan buat Activity CreateData. Aktivitas ini
berfungsi sebagai View dalam paradigma Model-View-Controller yang kita gunakan. Atau dengan kata lain kelas ini menyediakan
sebuah interface untuk menambahkan barang. Langsung saja kita buat kelas baru bernama
Lihat code : disini...
//Author: midasoft.blogspot.com
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/nama_barang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:ems="10"
android:hint="@string/nama_barang"
android:inputType="text" />
<EditText
android:id="@+id/merk_barang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:ems="10"
android:hint="@string/merk_barang"
android:inputType="text" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/harga_barang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:ems="10"
android:hint="@string/harga_barang"
android:inputType="number" >
<requestFocus />
</EditText>
<Button
android:id="@+id/buttom_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/buttom_submit"
android:onClick="submit"
android:text="Submit" />
</LinearLayout>
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.data_create);
switch(v.getId())
{
case R.id.buttom_submit:
// insert data barang baru
barang = dataSource.createBarang(nama, merk, harga);
//konfirmasi
Toast.makeText(this, "Data Tersimpan\n" +
"nama" + barang.getNama_barang() +
"merk" + barang.getMerk_barang() +
"harga" + barang.getHarga_barang(), Toast.LENGTH_LONG).show();
break;
}
}
}
View Data.xml : berfungsi sebagai Layout untuk menampilkan data dari database Sqlite , Lihat
Code: disini...
//Author: midasoft.blogspot.com
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/data_view"
android:layout_width="118dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/title_view" />
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="0.71" >
</ListView>
</LinearLayout>
Email ThisBlogThis!Share to TwitterShare to Facebook
View Data.java berfungsi sebagai view atau interface untuk menampilkan data dari database
Sqlite , lihat code : disini..
package com.example.contohentridatabase;
//Author: midasoft.blogspot.com
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
public class ViewData extends ListActivity {
//inisialisasi kontroller
private DBDataSourceMob dataSource;
//inisialisasi arraylist
private ArrayList<Barang> values;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewdata);
dataSource = new DBDataSourceMob(this);
// buka kontroller
dataSource.open();
// ambil semua data barang
values = dataSource.getAllBarang();
// masukkan data barang ke array adapter
ArrayAdapter<Barang> adapter = new ArrayAdapter<Barang>(this,
android.R.layout.simple_list_item_1, values);
// set adapter pada list
setListAdapter(adapter);
}
}
7. Android Manifest
Yang terakhir dalam pembuatan aplikasi android ini adalah memodifikasi Android Manifest. Kita pindahkan intent filter
launcher nya ke Activity Main supaya aktivitas tersebut yang dijalankan pertama kali apabila aplikasi dibuka.
Lihat code : disini..
//*Author : midasoft.blogspot.com
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.contohentridatabase"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MainActivity" />
<activity
android:name=".ViewData"
android:label="@string/title_activity_main" >
</activity>
</application>
</manifest>
8. String.Value
String ini adalah resource/sumber daya yang digunakan dalam class Java atau class xml, yang menghubungkan class java atau
class xml dengan layout.
Lihat code : disini..
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ContohEntriDatabase</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">Contoh Entri Database</string>
<string name="barang_hint">Nama Barang</string>
<string name="harga_barang">Harga Barang</string>
<string name="merk_barang">Merk Barang</string>
<string name="buttom_submit">buttom submit</string>
<string name="tombol_tambah">Tambah Data</string>
<string name="tombol_lihat">Lihat Data</string>
<string name="tombol_setting">Setting</string>
<string name="title_view">Data Barang</string>
<string name="ex">Exit</string>
<string name="create_data">Create Data</string>
<string name="view_data">View</string>
<string name="unused">unused</string>
<string name="title_activity_setting">Setting</string>
<string name="nama_barang">Nama Barang</string>
</resources>
Email ThisBlogThis!Share to TwitterShare to Facebook
9. Lakukan Run dengan shortcut CTRL+F11 atau klik kanan package > run as > android
Application.
10. Lihat hasilnya :
Layout ”Menu Utama” atau MainActivity pada saat Aplikasi tampil
Jika user meng-klik “Create Data “ maka akan dibawa ke Layout Crate Data
Jika user meng-klik “View Data “ maka akan dibawa ke Layout View Data