Smart Phone Terbaru di Amazon

Database Android

Database Android


Pada kesempatan kali  ini kita akan membuat aplikasi database android dalam bentuk aplikasi inventaris barang sederhana, yang berfungsi untuk mencatat barang apa saja yang telah disimpan.

Pertama-tama kita buat sebuah project Android baru terlebih dahulu. Namapackage nya terserah, tapi pada program ini nama package-nya adalah databaseku. Silahkan disesuaikan dan configurasi icon projectnya. Klik next sampai finish.





Kemudian Tambahkan kelas baru beri nama saja DBHelper. Main class nya di hapus saja tidak apa-apa.




Setelah itu ketikan kode berikut :

package databaseku.example.databaseku;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBHelper extends SQLiteOpenHelper {

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;

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
}

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

}

}

Selanjutnya tambahkan kelas DBDataSource.


Ketikan Kode berikut :

package databaseku.example.databaseku;
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<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;
}

}

Tambahkan kelas lagi, beri nama saja CreateData.



Dan ketikan Kode berikut :

package databaseku.example.databaseku;
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);


dataSource = new DBDataSource(this);


dataSource.open();
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

String nama = null;
String merk = null;
String harga = null;
@SuppressWarnings("unused")

Barang barang = null;
if (edNama.getText() != null && edMerk.getText() != null
&& edHarga.getText() != null) {

nama = edNama.getText().toString();
merk = edMerk.getText().toString();
harga = edHarga.getText().toString();
}

switch (v.getId()) {
case R.id.buttom_submit:

barang = dataSource.createBarang(nama, merk, harga);


Toast.makeText(
this,
"masuk Barang\n" + "nama" + barang.getNama_barang()
+ "merk" + barang.getMerk_barang() + "harga"
+ barang.getHarga_barang(), Toast.LENGTH_LONG)
.show();
break;
}

}

}

Kalo masih ada tanda merah/error biarkan terlebih dahulu. Lalu kita bikin Activiti xml.nya beri nama createdata, seperti gambar berikut :



Setelah itu ketikan Kode 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:ems="10"
android:hint="Nama Barang"
android:inputType="text" >

<requestFocus />
</EditText>

<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="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="Harga Barang"
android:inputType="number" >

<requestFocus />
</EditText>

<Button
android:id="@+id/buttom_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Submit" />

</LinearLayout>

Disave saja
Selanjutnya tambahkan kelas lagi, dan beri nama Barang.



Ketikan kode berikut :

package databaseku.example.databaseku;

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

}

Save saja, kalo masih error biarkan dulu.  
Selanjutnya tambahkan kelas lagi, dan beri nama Menu.




Lalu ketikan kedo berikut :

package databaseku.example.databaseku;

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;

}
}
}

Kalo masih ada tanda merah/error biarkan terlebih dahulu. Lalu kita bikin Activiti xml.nya beri nama menu, seperti gambar berikut  :




Ketikan kode berikut :

<?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:text="@string/nama_app"
android:textSize="20sp" />

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

Save saja , dan tambahkan lagi satu kelas beri nama ViewData :



Ketikan kode berikut :

package databaseku.example.databaseku;

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

}

}

Kalo masih ada tanda merah/error biarkan terlebih dahulu. Lalu kita bikin Activiti xml.nya beri nama viewdata juga, seperti gambar berikut.




Selanjutnya,Ketikan kode 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:layout_gravity="center_horizontal"
android:background="#0000ff"
android:text="@string/title_view" />

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>

Save all saja.. pastikan tidak ada yang error.
Kemudian selanjutnya kita daftarkan kelas di Android Manifes :



Seperi berikut AndroidManifest.xml nya setelah di daftarkan :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="databaseku.example.databaseku"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="databaseku.example.databaseku.CreateData"
android:label="@string/app_name" >
</activity>
<activity
android:name="databaseku.example.databaseku.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="databaseku.example.databaseku.ViewData"
android:label="@string/app_name" >
</activity>
</application>

</manifest>


Setelah sudah semuanya, pastikan disave terlebih dahulu dan tidak ada yang error, lalu kita RUN projectnya. Maka hasilnya sprti berikut :

Tutorial Database Android

Database Android


Ketika kita pilih tombol tambah, maka akan muncul form berikut : 
Database Android


Di form ini terdapat 3 kolom untuk mengimputkan data, yaitu Nama Merk dan Harga barang. Seteleah kita sudah mengimputkan data, dan tombol Submit di klik  maka data akan tersimpan. Untuk melihat data yang tersimpan, kembali saja ke form sebelumnya dan klik saja di tombol_lihat. Seperti gambar berikut :

Database Android

 Gambar diatas adalah data yang berhasil di imputkan.
selanjutnya untuk menambahkan fungsi update dan delete, baca postingan Database Android II. semoga bermanfaat.
0 Komentar untuk " Database Android "

Back To Top