Monday, January 6, 2014




Membuat Database pada Android Bagian 1

Langsung saja berikut merupakan langkah-langkah pembuatan aplikasi sederhana dengan database pada android.

1. Buka eclipse.

2. Pada eclips klik menu file > New > pilih Android Application Project

3. Kemudian pada jendela New Android Project isikan application name, project name, dan

package namenya, contohnya seperti berikut :

Application name : DataBaseAndroid
Project name : DataBaseAndroid

Package name : bungsu.example.databaseandroid

4. Setelah di next hingga memilih symbol untuk aplikasi yang kita buat klik finish. Maka akan
muncul lembar kerja baru dengan project nama yang sudah kita buat sebelumnya.

5. Tambahkan class java dengan nama : DBHelper, DBDatasource, CreateData, Barang, Menu,
kemudian ViewData.

6. Tambahkan juga file xml dengan nama : createdata, menu, viewdata.



Ø Ketikkan coding di bawah ini pada class DBHelper.java.



package bungsu.example.databaseandroid;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

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);



}



}
Ø Ketikkan coding di bawah ini pada class DBDatasource.java.

package bungsu.example.databaseandroid;



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;

import java.util.ArrayList;





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 getAllBarang() {

ArrayList daftarBarang = new ArrayList();



// 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;

}



public Barang getBarang(long id)

{

Barang barang = new Barang(); //inisialisasi barang

//select query

Cursor cursor = database.query(DBHelper.TABLE_NAME, allColumns, "_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;

}

}



Ø Ketikkan coding di bawah ini pada class CreateData.java



package bungsu.example.databaseandroid;



import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.os.Bundle;

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.getMerk_barang() +

"harga" + barang.getHarga_barang(), Toast.LENGTH_LONG).show();

break;

}





}



}

Ø Ketikkan coding di bawah ini pada class Barang.java



package bungsu.example.databaseandroid;



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;

}



}


Ø Ketikkan coding di bawah ini pada class Menu.java



package bungsu.example.databaseandroid;



import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.content.Intent;

import android.os.Bundle;

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;

}

}

}



Ø Ketikkan coding di bawah ini pada class ViewData.java


package bungsu.example.databaseandroid;

import java.util.ArrayList;

import android.app.Dialog;

import android.app.ListActivity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;



public class ViewData extends ListActivity implements OnClickListener {



//inisialisasi kontroller

private DBDatasource dataSource;



//inisialisasi arraylist

private ArrayList 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 adapter = new ArrayAdapter(this,

android.R.layout.simple_list_item_1, values);



// set adapter pada list

setListAdapter(adapter);



ListView lv = (ListView) findViewById(R.id.data_view);

lv.setOnClickListener(this);

}


public void onItemClick(final AdapterView adapter, View v, int pos, final long id ) {

// TODO Auto-generated method stub

final Dialog dialog = new Dialog(this);

dialog.setContentView(R.layout.dialogview);

dialog.setTitle("Pilih Aksi");

dialog.show();



final Barang b = (Barang) getListAdapter().getItem(pos);

Button editButton = (Button) dialog.findViewById(R.id.button_edit_data);

Button delButton = (Button) dialog.findViewById(R.id.button_delete_data);



}

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

}

}



Ø Coding untuk createdata.xml:









android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >






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" >








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" >








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" >
















Ø Coding untuk menu.xml:









android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

>




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_app"

/>










Ø Coding untuk viewdata.xml:






android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >




android:id="@+id/data_view"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Lihat Data"

android:layout_gravity="center_horizontal"

android:background="#0000ff"

/>


android:id="@android:id/list"

android:layout_width="match_parent"

android:layout_height="wrap_content"



/>






Ø Coding untuk AndroidManifest.xml:






package="bungsu.example.databaseandroid"

android:versionCode="1"

android:versionName="1.0" >




android:minSdkVersion="8"

android:targetSdkVersion="17" />




android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >


android:name="bungsu.example.databaseandroid.MainActivity"

android:label="@string/app_name" >




















Setelah coding selesai di ketikkan dengan benar tanpa kesalahan jalankan programnya, maka akan tampak beberapa menu seperti gambar di bawah ini.

Klik aplikasi yang kita buat barusan ( DataBaseAndroid )



Klik button tambah data



Ketikan Nama barang, merk barang, harga barang kemudian klik submit










Setelah itu kita dapat melihat semua data yang tadi kita masukan berikut outputnya..





Membuat Database pada Android Bagian 2

Sama seperti diatas hanya kita tambahkan coding dan membuat class baru

Ø Tambahkan method di class DBDatasource.java, berikut tambahan codingnya:

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.getMerk_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 deleteBarang1(long id)

{

String strFilter = "_id=" + id;

database.delete(DBHelper.TABLE_NAME, strFilter, null);

}


public void updatebarang(Barang b) {

String strFilter = "_id=" + b.getId();

ContentValues sic = new ContentValues();

sic.put(DBHelper.COLUMN_NAME, b.getNama_barang());

sic.put(DBHelper.COLUMN_MERK, b.getMerk_barang());

sic.put(DBHelper.COLUMN_HARGA, b.getHarga_barang());

database.update(DBHelper.TABLE_NAME, sic, strFilter, null);

}


public void deleteBarang(long id) {

String strFilter = "_id=" + id;

database.delete(DBHelper.TABLE_NAME, strFilter, null);

}

}

Ø Buat file xml baru di layout dan beri nama dialogview.xml, kemudian isikan program 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"




android:gravity="center" >








android:id="@+id/button_edit_data"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="tombol_dialog_edit"

/>


android:id="@+id/button_delete_data"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="tombol_dialog_delete"

/>

</LinearLayout>

Ø Buat class baru beri nama EditData, lalu isikan coding berikut:


package bungsu.example.databaseandroid;

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 dari 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;

}

}

}

Ø Selanjutnya buat fila xml dengan nama editdata, dan ketikan progam berikut :




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="title_edit"




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"




>





android:id="@+id/button_save_update"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="tombol_edit"

/>




android:id="@+id/button_cancel_update"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="tombol_cancel"

/>

</LinearLayout> </RelativeLayout>


Ø Terakhir kita tambahkan class EditData di AndroidManifest, kita tambahkan saja codingnya:




android:name="bungsu.example.dbandroid.ViewData"

android:label="@string/app_name" >




android:name="bungsu.example.dbandroid.EditData"

android:label="@string/app_name" >









Setelah itu tinggal kita run programnya, selamat mencoba .

semoga berhasil !!


2 komentar:

  1. sangat bermanfaat, makasih tutornya, untuk tutor lainnya bisa mampir kewebsite saya zamanology

    ReplyDelete