Nama : Ogy Chrisna W
Kelas : SI 12C
NIM : 12.12.0198
MEMBUAT DATABASE SQLite DALAM ANDROID
Membuat
Database dalam Android
Pertama kita buat project baru
terlebih dahulu dengan menggunakan cara file => new , pilih android aplication project dan
beri nama project :
Pada configuration launcher icon kita bisa pilih icon untuk
aplikasi yang kita buat, lalu next
Setelah
dinext sampai pada konfigurasi activity untuk aplikasi kita, lalu klik finish
lalu pada tampilan awal akan muncul layout default apliaksi
dengan layout default seperti dibawah
Setelah itu kita buat class baru dengan nama DBHelper dengan
cara memilih package dari aplikasi kita lalu klik kanan => new pilih
class lalu beri nama class tersebut dengan nama DBHelper
Lalu ketikan koding berikut :
package
example.androidrindi;
import
android.content.Context;
import
android.database.sqlite.SQLiteDatabase;
import
android.database.sqlite.SQLiteOpenHelper;
import
android.util.Log;
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);
}
}
Lalu kita buat class baru lagi dengan cara seperti diatas
dan beri nama class tersebut dengan nama Barang
package
example.androidrindi;
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
getMerk_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;
}
}
Lalu buat class lagi dengan nama DBDataSource dengan sintak
berikut :
package
example.androidrindi;
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 {
//inisialiasi
SQLite Database
private SQLiteDatabase database;
//inisialisasi
kelas DBHelper
private DBHelper dbHelper;
//ambil
semua nama kolom
private String[] allColumns = { 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 = insertID
Cursor cursor = database.query(DBHelper.TABLE_NAME,
allColumns, DBHelper.COLUMN_ID + " =
" + insertId, null,
null, null, null);
// pindah
ke data paling pertama
cursor.moveToFirst();
// mengubah
objek 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 diambil 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,
allColumns, 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;
}
}
Setelah itu kita buat file xml baru dengan cara klik pada
prroject kita, lalu klik kanan => new
pilih android xml file lalu beri nama create data lalu ketikan koding
berikut :
<?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>
Setelah itu kita buat class baru lagi dengan nama CreateData
dengan sintak berikut :
package
example.androidrindi;
import
android.app.Activity;
import
android.content.DialogInterface;
import
android.content.DialogInterface.OnClickListener;
import
android.os.Bundle;
import
android.view.View;
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((android.view.View.OnClickListener)
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();
}
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\n" + barang.getNama_barang()
+
"merk\n" +
barang.getMerk_barang() + "harga\n"
+
barang.getHarga_barang(), Toast.LENGTH_LONG)
.show();
break;
}
}
@Override
public void
onClick(DialogInterface arg0, int arg1) {
// TODO
Auto-generated method stub
}
}
Etelah itu kita buat xml baru dengan nama viewdata lalu
ketkan koding berikut :
<?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="@string/title_view"
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>
Setelah itu kita buat class lagi dengan nama ViewData dengan sintak berikut :
package
example.androidrindi;
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);
}
}
Lalu kita buat class baru dengan nama ViewData lalu ketikan koding
berikut :
package
example.androidrindi;
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);
}
}
Lalu kita buat class dan xl dengan nama Menu lalu ketikan
kodingnya :
Xml Menu :
<?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="@string/nama_app"
/>
<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="@string/tombol_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="@string/tombol_lihat"
/>
</RelativeLayout>
Class Menu :
package
example.androidrindi;
import
android.app.Activity;
import
android.content.DialogInterface;
import
android.content.DialogInterface.OnClickListener;
import
android.content.Intent;
import
android.os.Bundle;
import
android.view.View;
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((android.view.View.OnClickListener)
this);
bLihat = (Button) findViewById(R.id.button_view);
bLihat.setOnClickListener((android.view.View.OnClickListener)
this);
}
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;
}
}
@Override
public void
onClick(DialogInterface arg0, int arg1) {
// TODO
Auto-generated method stub
}
}
Pada saat kita menekan tombol tambah maka akan muncul tampilan untuk menambahkan data barang seperti berikut :