Dengan semakin beragamnya pengembangan berbagai
aplikasi di platform Android dewasa ini, beberapa aplikasi mulai berkembang
semakin kompleks dan membutuhkan media penyimpanan informasi dalam bentuk
database terstruktur. Para programmer Android sangat beruntung karena Android
menyediakan sebuah database yang secara default sudah ada di dalam library Android,
yaitu SQLite. Untuk keperluan operasi database pada smartphone atau tablet
Android, SQLite sangat memadai karena ukurannya yang kecil, cepat dan ringan
dalam hal sumber daya. Karena sifatnya sebagai embedded database, SQLite tidak memiliki
server namun bentuknya adalah library yang akan dipanggil saat program
dijalankan.Seperti halnya database pada umumnya, SQLite memiliki objek-objek
seperti table, view dan index. Perintah-perintah SQL-nya pun sangat mirip
seperti yang biasa digunakan yaitu SELECT, INSERT, UPDATE, DELETE dan sebagainya.
SQLite Manager adalah sebuah program yang sangat
membantu programmer dalam mengelola database SQLite seperti membuat table,
index dan menjalankan perintah-perintah SQL.
Dan di bawah ini merupakan contoh project pembuatan
database pada android.
Ø Buat
project baru dengan nama DBandro. Kemudian buat bebrapa class dan beberapa
layout baru .xml seperti di bawah ini dan ketikkan coding di bawah ini dengan
benar.
Class Barang.java
package com.example.dbandro;
public class Barang {
private long id;
private String nama_barang;
private String merk_barang;
private String harga_barang;
public Barang()
{
}
public long getId() {
return id;
}
public void setId(long id){
this.id=id;
}
public String
getNama_barang() {
return nama_barang;
}
public void
setNama_barang(String nama_barang){
this.nama_barang = nama_barang;
}
public String
getNerk_barang() {
return merk_barang;
}
public void
setMerk_barang(String merk_barang) {
this.merk_barang = merk_barang;
}
public String
getHarga_barang() {
return harga_barang;
}
public void
setHarga_barang(String harga_barang){
this.harga_barang = harga_barang;
}
@Override
public String toString()
{
return "Barang"+nama_barang +""+merk_barang+""+harga_barang;
}
}
Class CreateData.java
package com.example.dbandro;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class CreateData extends Activity implements OnClickListener {
//inisilisasi
elemen-elemen pada layout
private Button buttonSubmit;
private EditText edNama;
private EditText edMerk;
private EditText edHarga;
//inisialisasi kontroller/Data Source
private DBDataSource dataSource;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.createdata);
buttonSubmit = (Button) findViewById(R.id.buttom_submit);
buttonSubmit.setOnClickListener(this);
edNama = (EditText) findViewById(R.id.nama_barang);
edHarga = (EditText) findViewById(R.id.harga_barang);
edMerk = (EditText) findViewById(R.id.merk_barang);
// instanstiasi kelas DBDataSource
dataSource = new DBDataSource(this);
//membuat sambungan baru ke database
dataSource.open();
}
@Override
public void onClick(View v) {
// TODO Auto-generated
method stub
// Inisialisasi
data barang
String nama = null;
String merk = null;
String harga = null;
@SuppressWarnings("unused")
//inisialisasi barang baru (masih kosong)
Barang barang = null;
if(edNama.getText()!=null && edMerk.getText()!=null && edHarga.getText()!=null)
{
/* jika field nama, merk, dan harga
tidak kosong
* maka masukkan
ke dalam data barang*/
nama = edNama.getText().toString();
merk = edMerk.getText().toString();
harga = edHarga.getText().toString();
}
switch(v.getId())
{
case R.id.buttom_submit:
// insert data barang
baru
barang = dataSource.createBarang(nama,
merk, harga);
//konfirmasi
kesuksesan
Toast.makeText(this, "masuk
Barang\n" +
"nama" +
barang.getNama_barang() +
"merk" +
barang.getNerk_barang() +
"harga" + barang.getHarga_barang(),
Toast.LENGTH_LONG).show();
break;
}
}
}
Class DBDataSource
package com.example.dbandro;
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;
public class DBDataSource {
//inisialisasi
SQLite Database
private SQLiteDatabase database;
//inisialisasi
kelas DBHelper
private DBHelper dbhelper;
//ambil semua
nama kolom
private String[] allComuns = {DBHelper.COLUMN_ID,
DBHelper.COLUMN_NAME,
DBHelper.COLUMN_MERK,DBHelper.COLUMN_HARGA
};
//DBHelper diinstantiasi
pada constructor
public DBDataSource(Context
context)
{
dbhelper = new DBHelper(context);
}
//membuka/membuat
sambungan baru ke database
public void open() throws SQLException {
database = dbhelper.getWritableDatabase();
}
//menutup sambungan
ke database
public void close() {
dbhelper.close();
}
//method untuk
create/insert barang ke database
public Barang
createBarang(String nama, String merk, String harga){
//membuat sebuah
ContentValues, yang berfungsi
//untuk memasangkan
data dengan nama-nama
//kolom pada
database
ContentValues values = new ContentValues();
values.put(DBHelper.COLUMN_NAME,nama);
values.put(DBHelper.COLUMN_MERK, merk);
values.put(DBHelper.COLUMN_HARGA,harga);
//mengeksekusi
perintah SQL insert data
//yang akan
mengembalikan sebuah insert ID
long insertId = database.insert(DBHelper.TABLE_NAME, null, values);
//setelah
data dimasukkan, memanggil
//perintah
SQL Select menggunakan Cursor untuk
//melihat apakah
data tadi benar2 sudah masuk
//dengan menyesuaikan
ID = inserID
Cursor cursor =
database.query(DBHelper.TABLE_NAME,
allComuns, DBHelper.COLUMN_ID+"="+insertId,null,null,null,null);
//pindah ke
data paling pertama
cursor.moveToFirst();
//mengubah obej
pada kursor pertama tadi
//ke dalam
objek barang
Barang
newBarang = cursorToBarang(cursor);
//close cursor
cursor.close();
//mengembalikan
barang baru
return newBarang;
}
private Barang
cursorToBarang(Cursor cursor)
{
//buat objek
barang baru
Barang barang =
new Barang();
//debug LOGCAT
Log.v("info","The
getLONG"+cursor.getLong(0));
Log.v("info","The
setLatLng"+cursor.getString(1)+","+cursor.getString(2));
/*Set atribut
pada objek barang dengan
* data kursor yang di ambil
dari database*/
barang.setId(cursor.getLong(0));
barang.setNama_barang(cursor.getString(1));
barang.setMerk_barang(cursor.getString(2));
barang.setHarga_barang(cursor.getString(3));
//kembalikan
sebagai objek barang
return barang;
}
//mengambil semua
data barang
public ArrayList<Barang>getAllBarang(){
ArrayList<Barang>
daftarBarang = new ArrayList<Barang>();
// select all SQL
query
Cursor cursor = database.query(DBHelper.TABLE_NAME,
allComuns, null, null, null, null, null);
// pindah ke
data paling pertama
cursor.moveToFirst();
// jika masih
ada data, masukkan data barang ke
// daftar barang
while
(!cursor.isAfterLast()) {
Barang barang =
cursorToBarang(cursor);
daftarBarang.add(barang);
cursor.moveToNext();
}
// Make sure to
close the cursor
cursor.close();
return daftarBarang;
}
public Barang getBarang(long id)
{
Barang barang = new Barang(); //inisialisasi
barang
//select query
Cursor cursor = database.query(DBHelper.TABLE_NAME, allComuns, "_id ="+id, null, null, null, null);
//ambil data yang
pertama
cursor.moveToFirst();
//masukkan data
cursor ke objek barang
barang =
cursorToBarang(cursor);
//tutup sambungan
cursor.close();
//return barang
return barang;
}
//update barang yang diedit
public void updateBarang(Barang b)
{
//ambil id barang
String strFilter = "_id=" + b.getId();
//memasukkan ke
content values
ContentValues args = new ContentValues();
//masukkan data
sesuai dengan kolom pada database
args.put(DBHelper.COLUMN_NAME,
b.getNama_barang());
args.put(DBHelper.COLUMN_MERK,
b.getNerk_barang());
args.put(DBHelper.COLUMN_HARGA, b.getHarga_barang()
);
//update query
database.update(DBHelper.TABLE_NAME, args, strFilter, null);
}
// delete barang sesuai ID
public void deleteBarang(long id)
{
String strFilter = "_id=" + id;
database.delete(DBHelper.TABLE_NAME, strFilter, null);
}
}
Class DBHelper.java
package com.example.dbandro;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
//deklarasi import package
public class DBHelper extends SQLiteOpenHelper {
/** deklarasi konstanta-konstanta yang digunakan
pada database, seperti nama tabel,
nama-nama kolom, nama
database, dan versi dari database **/
public static final String TABLE_NAME = "data_inventori";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_NAME = "nama_barang";
public static final String COLUMN_MERK = "merk_barang";
public static final String COLUMN_HARGA = "harga_barang";
private static final String db_name ="inventori.db";
private static final int db_version=1;
//Perintah SQL untuk membuat tabel
database baru
private static final String db_create = "create table
"
+ TABLE_NAME + "("
+ COLUMN_ID +" integer
primary key autoincrement, "
+ COLUMN_NAME+ " varchar(50)
not null, "
+ COLUMN_MERK+ " varchar(50)
not null, "
+ COLUMN_HARGA+ " varchar(50)
not null);";
public DBHelper(Context
context) {
super(context, db_name, null, db_version);
// TODO Auto-generated
constructor stub
}
//mengeksekusi
perintah SQL di atas untuk membuat tabel
database baru
@Override
public void
onCreate(SQLiteDatabase db) {
// TODO Auto-generated
method stub
db.execSQL(db_create);
}
@Override
public void
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated
method stub
Log.w(DBHelper.class.getName(),"Upgrading
database from version " + oldVersion + " to "
+ newVersion
+ ",
which will destroy all old data");
db.execSQL("DROP TABLE IF
EXISTS " + TABLE_NAME);
onCreate(db);
}
}
Class EditData.java
package com.example.dbandro;
import android.app.Activity;
import android.content.Intent;
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;
public class EditData extends Activity implements OnClickListener {
private DBDataSource dataSource;
private long id;
private String harga;
private String merk;
private String nama;
private EditText edNama;
private EditText edHarga;
private EditText edMerk;
private TextView txId;
private Button btnSave;
private Button btnCancel;
private Barang barang;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.editdata);
//inisialisasi
variabel
edNama = (EditText)
findViewById(R.id.editText_nama);
edHarga = (EditText)
findViewById(R.id.editText_harga);
edMerk = (EditText)
findViewById(R.id.editText_merk);
txId = (TextView)
findViewById(R.id.text_id_barang);
//buat sambungan
baru ke database
dataSource = new DBDataSource(this);
dataSource.open();
//ambil data
barang dara extras
Bundle bun = this.getIntent().getExtras();
id = bun.getLong("id");
harga = bun.getString("harga");
merk = bun.getString("merk");
nama = bun.getString("nama");
//masukkan
data-data barang tersebut ke field editor
txId.append(String.valueOf(id));
edNama.setText(nama);
edHarga.setText(harga);
edMerk.setText(merk);
//set listener pada
tombol
btnSave = (Button)
findViewById(R.id.button_save_update);
btnSave.setOnClickListener(this);
btnCancel = (Button)
findViewById(R.id.button_cancel_update);
btnCancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//TODO Auto-generated
method stub
switch(v.getId())
{
//apabila tombol
save diklik (update barang)
case R.id.button_save_update:
barang = new Barang();
barang.setHarga_barang(edHarga.getText().toString());
barang.setNama_barang(edNama.getText().toString());
barang.setMerk_barang(edMerk.getText().toString());
barang.setId(id);
dataSource.updateBarang(barang);
Intent i = new Intent(this, ViewData.class);
startActivity(i);
EditData.this.finish();
dataSource.close();
break;
// apabila tombol
cancel diklik, finish activity
case R.id.button_cancel_update:
finish();
dataSource.close();
break;
}
}
}
Class MainActivity.java
package com.example.dbandro;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu
menu) {
// Inflate the
menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Class Menu.java
package com.example.dbandro;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Menu extends Activity implements OnClickListener {
private Button bTambah;
private Button bLihat;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
bTambah = (Button)
findViewById(R.id.button_tambah);
bTambah.setOnClickListener(this);
bLihat = (Button)
findViewById(R.id.button_view);
bLihat.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//
TODO Auto-generated
method stub
switch(v.getId())
{
case R.id.button_tambah :
Intent i = new Intent(this, CreateData.class);
startActivity(i);
break;
case R.id.button_view :
Intent i2 = new Intent(this, ViewData.class);
startActivity(i2);
break;
}
}
}
Class ViewData.java
package com.example.dbandro;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class ViewData extends ListActivity {
//inisialisasi
kontroller
private DBDataSource dataSource;
//inisialisasi
arraylist
private ArrayList<Barang>
values;
//menampilkan
data
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewdata);
dataSource = new DBDataSource(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);
}
}
Layout:
Activity_main.xml
<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: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"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
</RelativeLayout>
Createdata.xml
<?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:inputType="text"
android:hint="Nama
Barang"
android:ems="10"
>
<requestFocus />
</EditText>
<EditText
android:id="@+id/merk_barang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:inputType="text"
android:hint="Merk
Barang"
android:ems="10"
>
<requestFocus />
</EditText>
<EditText
android:id="@+id/harga_barang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:inputType="number"
android:hint="Harga
Barang"
android:ems="10"
>
<requestFocus />
</EditText>
<Button
android:id="@+id/buttom_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
/>
</LinearLayout>
Dialogview.xml
<?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"
android:gravity="center">
<Button
android:id="@+id/button_edit_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Edit"
/>
<Button
android:id="@+id/button_delete_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete"
/>
</LinearLayout>
Editdata.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/text_id_barang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Judul"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="#0000ff"
/>
<EditText
android:id="@+id/editText_nama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_marginTop="15dp"
android:background="#afffffff"
android:layout_below="@id/text_id_barang"
>
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText_merk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_marginTop="15dp"
android:background="#afffffff"
android:layout_below="@id/editText_nama"
/>
<EditText
android:id="@+id/editText_harga"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:layout_marginTop="15dp"
android:background="#afffffff"
android:layout_below="@id/editText_merk"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_below="@id/editText_harga"
>
<Button
android:id="@+id/button_save_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
/>
<Button
android:id="@+id/button_cancel_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
/>
</LinearLayout>
</RelativeLayout>
Menu.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/nama_app"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textSize="20sp"
android:text="Nama
Barang"
/>
<Button
android:id="@+id/button_tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/nama_app"
android:layout_centerHorizontal="true"
android:text="Tambah"
/>
<Button
android:id="@+id/button_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button_tambah"
android:layout_centerHorizontal="true"
android:text="Lihat"
/>
</RelativeLayout>
Viewdata.xml
<?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="wrap_content"
android:layout_height="wrap_content"
android:text="Lihat"
android:layout_gravity="center_horizontal"
android:background="#0000ff"
/>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dbandro"
android:versionCode="1"
android:versionName="1.0"
>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18"
/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name="dbandro.Menu"
android:label="@string/app_name">
</activity>
<activity
android:name="com.example.dbandro.CreateData"
android:label="@string/app_name">
</activity>
<activity
android:name="com.example.dbandro.Menu"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.example.dbandro.ViewData"
android:label="@string/app_name">
</activity>
<activity
android:name="com.example.dbandro.EditData"
android:label="@string/app_name">
</activity>
</application>
</manifest>
OUTPUT
Ø Membuka
project yang telah kita buat yaitu “DBandro”
Ø Tampilannya
akan seperti di bawah ini, tambahkan data barang dengan cara klik button
tambah.
0 komentar:
Posting Komentar