Archive for the ‘ Android ’ Category

Belajar Database Android Sederhana

Bismillah,
udah lama banget nggak ngeblog habis bikin web sederhana jadi ingin ke blog ya udah postkan ada apa yang udah ada, udah dibuat tapi belum sempat disimpan di blog ini. catatan kali ini tentang android wah baru mau post android sekali ini padahal udah agak lama nih belajar androidnya, ya udah langsung ke android db aja lah…, pembahasannya seperti ini:

Main.xml:

(biarkan seperti kondisi awal)

Data barang.xml:

Daftar barang.xml:

Main.java:
package database.barang.com;

import android.app.ListActivity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class main extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
String[] barang = new String[] { “Data Barang”, “Daftar Barang”, “exit” };
this.setListAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1, barang));
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
String pilihan = o.toString();
tampilkanPilihan(pilihan);
}

protected void tampilkanPilihan(String pilihan) {
try {
Intent i = null;
if (pilihan.equals(“Data Barang”)) {
i = new Intent(this, DataBarang.class);
startActivity(i);
} else if (pilihan.equals(“Daftar Barang”)) {
i = new Intent(this, DaftarBarang.class);
startActivity(i);
} else {
finish();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

AksesDbBarang.java:
package database.barang.com;

import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class AksesDbBarang {

private static final String ROW_ID = “_id”;
private static final String ROW_NAMA = “nama”;
private static final String ROW_HARGA = “harga”;

private static final String NAMA_DB = “DatabaseAndroidSatu”;// nama database
private static final String NAMA_TABEL = “barang”;// nama tabel
private static final int DB_VERSION = 1;

private static final String CREATE_TABLE = “create table ” + NAMA_TABEL
+ ” (” + ROW_ID + ” integer PRIMARY KEY autoincrement, ” + ROW_NAMA
+ ” text,” + ROW_HARGA + ” text)”;

private final Context context;
private DatabaseOpenHelper dbHelper;
private SQLiteDatabase db;

public AksesDbBarang(Context ctx) {
this.context = ctx;
dbHelper = new DatabaseOpenHelper(context);
db = dbHelper.getWritableDatabase();
}

private static class DatabaseOpenHelper extends SQLiteOpenHelper {

public DatabaseOpenHelper(Context context) {
super(context, NAMA_DB, null, DB_VERSION);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(CREATE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) {
// TODO Auto-generated method stub
db.execSQL(“DROP TABLE IF EXISTS ” + NAMA_DB);
onCreate(db);

}
}

public void close() {
dbHelper.close();
}

public void addRow(String id, String nama, String harga) {

ContentValues values = new ContentValues();
values.put(ROW_ID, id);
values.put(ROW_NAMA, nama);
values.put(ROW_HARGA, harga);

try {

// db.delete(NAMA_TABEL, null, null);
db.insert(NAMA_TABEL, null, values);
} catch (Exception e) {
Log.e(“DB ERROR”, e.toString());
e.printStackTrace();
}
}

public ArrayList<ArrayList> ambilSemuaBaris() {
ArrayList<ArrayList> dataArray = new ArrayList<ArrayList>();
Cursor cur;
try {
cur = db.query(NAMA_TABEL, new String[] { ROW_ID, ROW_NAMA,
ROW_HARGA }, null, null, null, null, null);
cur.moveToFirst();
if (!cur.isAfterLast()) {
do {
ArrayList dataList = new ArrayList();
dataList.add(cur.getLong(0));
dataList.add(cur.getString(1));
dataList.add(cur.getString(2));

dataArray.add(dataList);

} while (cur.moveToNext());

}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e(“DEBE ERROR”, e.toString());
}
return dataArray;

}
}

DataBarang.java:
package database.barang.com;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class DataBarang extends Activity {
AksesDbBarang dbb;
EditText id, nama, harga;
Button simpan, daftar, kembali;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.databarang);

dbb = new AksesDbBarang(this);
id = (EditText) findViewById(R.id.idBarang);
nama = (EditText) findViewById(R.id.namaBarang);
harga = (EditText) findViewById(R.id.hargaBarang);
simpan=(Button)findViewById(R.id.btnSimpan);
simpan.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
simpan();

}
});
}

public void daftar(View v) {
/*ArrayList<ArrayList> data=dbb.ambilSemuaBaris();
for (ArrayList dt : data) {
Toast.makeText(this, dt.get(0)+”|”+dt.get(1)+”|”+dt.get(2),Toast.LENGTH_SHORT).show();
}*/
startActivity(new Intent(this, DaftarBarang.class));
}

public void kembali(View v) {
finish();
}

private void simpan() {
// TODO Auto-generated method stub

try {
dbb.addRow(id.getText().toString(), nama.getText().toString(),
harga.getText().toString());
Toast.makeText(getBaseContext(),
nama.getText().toString() + “, berhasil disimpan”,
Toast.LENGTH_SHORT).show();
kosongkanField();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(getBaseContext(), “gagal simpan, ” + e.toString(),
Toast.LENGTH_LONG).show();
}

}

protected void kosongkanField() {
id.setText(“”);
nama.setText(“”);
harga.setText(“”);
}

}

DaftarBarang.java:
package database.barang.com;

import java.util.ArrayList;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

public class DaftarBarang extends Activity {

private TableLayout tabel4data;
private AksesDbBarang barang;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.daftarbarang);
tabel4data=(TableLayout)findViewById(R.id.TableLayout01);
barang=new AksesDbBarang(this);
buatTabel();
}
private void buatTabel() {
while (tabel4data.getChildCount() > 1) {
tabel4data.removeViewAt(1);
}
ArrayList<ArrayList> data = barang.ambilSemuaBaris();
TableRow tabelHeader = new TableRow(this);

Toast.makeText(getBaseContext(), “Jumlah Data : “+data.size(),
Toast.LENGTH_LONG).show();

TextView hID = new TextView(this);
hID.setWidth(20);
hID.setBackgroundColor(Color.DKGRAY);
hID.setText(“ID”);
tabelHeader.addView(hID);

TextView hNama = new TextView(this);
hNama.setWidth(200);
hNama.setBackgroundColor(Color.DKGRAY);
hNama.setText(“| Nama”);
tabelHeader.addView(hNama);

TextView hHarga = new TextView(this);
hHarga.setWidth(100);
hHarga.setBackgroundColor(Color.DKGRAY);
hHarga.setText(“| Harga”);
tabelHeader.addView(hHarga);

tabel4data.addView(tabelHeader);
for (int posisi = 0; posisi < data.size(); posisi++) {
TableRow tabelBaris = new TableRow(this);
tabelBaris.setPadding(0,0,0,1);
ArrayList baris = data.get(posisi);

TextView idTxt = new TextView(this);
idTxt.setWidth(20);
idTxt.setBackgroundColor(Color.GRAY);
idTxt.setText(baris.get(0).toString());
tabelBaris.addView(idTxt);

TextView namaTxt = new TextView(this);
namaTxt.setWidth(200);
namaTxt.setBackgroundColor(Color.GRAY);
namaTxt.setText(“| “+baris.get(1).toString());
tabelBaris.addView(namaTxt);

TextView hargaTxt = new TextView(this);
hargaTxt.setWidth(100);
hargaTxt.setBackgroundColor(Color.GRAY);
hargaTxt.setText(“| “+baris.get(2).toString());
tabelBaris.addView(hargaTxt);

tabel4data.addView(tabelBaris);

}
}
}

lumayan banyak juga listingnya, dan hasilnya seperti terlihat pada gambar berikut: