bila belum tau SQLite bisa baca artikel sebelum'nya di sini
sebelum memulai membuat aplikasi , ada 3 kelas yang harus di ketahui yaitu :
1. SQLiteDatabase
SQLiteDatabase merupakan sebeuah kelas yang mempunya method-method seperti :
Insert() = untuk menambahkan baris ke database Update () = untuk memperbarui baris pada database Delete () = untuk menghapus baris pada database execSQL () = untuk mengeksekusi sintak SQL
2. SQLiteOpenHelper
SQLiteOpenHelper adalah subclass yang memiliki beberapa method seperti :
onCreate() = di jalankan jika sebelum'nya belum ada database onUpgrade() = di jalankan jika sebelum'nya sudah di temukan database yang sama tapi beda versi, method ini bisa di manfaatkan untuk mengubah sekema database onOpen() = di jalankan jika database dalam keadaan open getWritableDatabase() = memanggil database agar bisa di masuki data getReadableDatabase() = memanggil database agar bisa dibaca data'nya
3. Cursor
Setiap Query yang di eksekusi pasti membawa nilai kembalian atau feedback. Feedbeck yang dihasilkan query ini,
jadi dengan kata lain cursor merepresentasikan hasil query yang di eksekusi pada baris dan kolom tertentu
beberapa ini method yang di gunakan untuk latihan ini :
moveToFirst() = untuk indah ke baris pertama isAfterLast () = akan mengirim pesan balik jika posisi cursor sudah berada di baris terakhir getLong() = untuk mengambil data pada kolom yang mempunyai tipe data Long getString() = untuk mengambil data pada kolom yang mempunyai tipe data String
Nah bila sudah tau , Langsung saja deh ,
saya sudah sediakan screenshoot tampilan'nya
screenshoot
- Buat Project baru dengan nama BelajarDB
- Buka activity_main.xml : buat 2 buah EditText + 1 Button + 1 TableLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" 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:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Masukkan nama dan sekolah" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/inama" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:hint="nama" /> <EditText android:id="@+id/isekolah" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:hint="sekolah" /> </LinearLayout> <Button android:id="@+id/btambah" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="150dp" android:text="tambah" /> <TableLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/tabel_data"> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_height="wrap_content" android:layout_width="50dip" android:text="no" android:id="@+id/no_id"></TextView> <TextView android:layout_height="wrap_content" android:layout_width="100dip" android:text="nama" android:id="@+id/nama_id"></TextView> <TextView android:id="@+id/hobi_id" android:layout_width="100dip" android:layout_height="wrap_content" android:text="sekolah" > </TextView> </TableRow> </TableLayout> </LinearLayout>
- membuat Class baru beri nama TempatDatabase.java : lalu beri code seperti di bawah ini , dan lihat pengertian" yang sudah saya buatkan
package com.example.belajardb; 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 TempatDatabase { //mendeklarasikan ROW private static final String ROW_ID = "_id"; private static final String ROW_NAMA = "nama"; private static final String ROW_SEKOLAH = "sekolah"; //mendeklarasikan NAMA_DB DAN TABLE DAN DATABASE VERSION private static final String NAMA_DB ="INIDB"; private static final String NAMA_TABEL="percobaan"; private static final int DB_VERSION=1; //mendeklarasikan CREATE_TABLE = MEMBUAT TABLE" private static final String CREATE_TABLE = "create table "+NAMA_TABEL+" ("+ROW_ID+" integer PRIMARY KEY autoincrement, "+ROW_NAMA+" text,"+ROW_SEKOLAH+" text)"; //membuat mendeklarasikan itu adalah context private final Context context; //membuat mendeklarasikan DatabaseOpenHelper itu adalah dbhelper private DatabaseOpenHelper dbhelper; //membuat mendeklarasikan SQLiteDatabase itu adalah db private SQLiteDatabase db; //mengambil context untuk mengakses system di android public TempatDatabase(Context ctx) { //mendeklarasikan ctx adalah context ( context context di ganti ctx ) this.context = ctx; // membuat DatabaseOpenHelper dbhelper = new DatabaseOpenHelper(context); //menuliskan DatabaseOpenHelper = SQLiteDatabase db = dbhelper.getWritableDatabase(); } private static class DatabaseOpenHelper extends SQLiteOpenHelper { //membuat database 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); } //memperbarui database bila sudah ada @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); } } //menutup DatabaseOpenHelper public void close() { dbhelper.close(); } //menambahkan pada row public void addRow(String nama, String sekolah) { ContentValues values = new ContentValues(); values.put(ROW_NAMA, nama); values.put(ROW_SEKOLAH, sekolah); try { //menambahkan nama tabel bila tidak akan error // db.delete(NAMA_TABEL, null, null); db.insert(NAMA_TABEL, null, values); } catch (Exception e) { Log.e("DB ERROR", e.toString()); e.printStackTrace(); } } //membuat array pada table layout public ArrayList<ArrayList<Object>> ambilSemuaBaris() { ArrayList<ArrayList<Object>> dataArray = new ArrayList<ArrayList<Object>>(); Cursor cur; try { cur = db.query(NAMA_TABEL, new String[] { ROW_ID, ROW_NAMA, ROW_SEKOLAH }, null, null, null, null, null); cur.moveToFirst(); if (!cur.isAfterLast()) { do { ArrayList<Object> dataList = new ArrayList<Object>(); 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; } }
- Lalu Buka MainActivity.java dan ketikan kode seperti dibawah ini :
package com.example.belajardb; import java.util.ArrayList; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { //mendeklarasikan TempatDatabase dm; EditText inama, isekolah; Button btambah; TableLayout tabel4data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //mengkaitkan TempatDatabase ke MainActivity dm = new TempatDatabase(this); tabel4data = (TableLayout) findViewById (R.id.tabel_data); inama = (EditText) findViewById(R.id.inama); isekolah = (EditText) findViewById(R.id.isekolah); btambah = (Button) findViewById(R.id.btambah); //membuat onclick pada tombol button btambah btambah.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //menjalankan simpandata(); yang nanti akan di buat simpanData(); } }); //mengupdate table bila data sudah di simpan updateTable(); } private void updateTable() { // TODO Auto-generated method stub // TODO Auto-generated method stub while (tabel4data.getChildCount() > 1) { tabel4data.removeViewAt(1); } double aa = tabel4data.getChildCount(); String a = String.valueOf(aa); Toast.makeText(getBaseContext(), "tabel data child : " + a, Toast.LENGTH_SHORT).show(); ArrayList<ArrayList<Object>> data = dm.ambilSemuaBaris();// for (int posisi = 0; posisi < data.size(); posisi++) { TableRow tabelBaris = new TableRow(this); ArrayList<Object> baris = data.get(posisi); TextView idTxt = new TextView(this); idTxt.setText(baris.get(0).toString()); tabelBaris.addView(idTxt); TextView namaTxt = new TextView(this); namaTxt.setText(baris.get(1).toString()); tabelBaris.addView(namaTxt); TextView hobiTxt = new TextView(this); hobiTxt.setText(baris.get(2).toString()); tabelBaris.addView(hobiTxt); tabel4data.addView(tabelBaris); } } @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; } //membuat simpan data bila tombol buton di jalankan private void simpanData() { // TODO Auto-generated method stub try { dm.addRow(inama.getText().toString(), isekolah.getText().toString()); Toast.makeText(getBaseContext(), inama.getText().toString() + ", berhasil disimpan", Toast.LENGTH_SHORT).show(); updateTable(); //mengkosongkan field yang akan di buat di bawah kosongkanField(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(getBaseContext(), "gagal simpan, " + e.toString(), Toast.LENGTH_LONG).show(); } } //membuat kosong pada text bila sudah di jalankan penyimpanan private void kosongkanField() { // TODO Auto-generated method stub inama.setText(""); isekolah.setText(""); } }
Nah setelah itu coba di jalankan bila mengikuti cara di atas akan Sukses :v hahaha
dan ini nih project jadi nya
20 comments
Om...cobain multiple table di SQLite...
ReplySiap om (o)
Replygan... kalau android conect ke mySQL bisa ga ya..?
Replybisa om , konek ke mySQL
Replygan.. itu nanti databasenya disimpen dmn? (path.nya)
Replythx om (y)
ReplyTerima kasih sob,
Replysaya pelajari dulu, ijin comot source codenya
langsung di simpen di hp'nya sqlite
Replyoke om (y)
Replymonggo sob ,
Replysering" mampir ya hehe
ka,, saya punya studi kasus memakai programnya kaka yg ini..
Replykalo misal nya saya nambain row 1 uang saku , dan nnti nya banyak inputan uang saku di jumlahin ka..
itu gmn ya ka ?
tq infonya.
Replyfolback http://perumnas3.blogspot.com/
kunjungan balik.
bagus sekali. saya juga punya artikel dan tutorial terkait dengan SQLite. semoga bisa menjadi bahan belajar juga untuk pemula
Replyhttp://udinulis.blogspot.com/2010/02/sqlite-si-simple-yang-bertenaga.html
Tutarni : Terima kasih atas tutorial yang sangat bermanfaat, saya akan mencoba semoga berhasil, mohon dibanyakin lagi tutorialnya ya...
Replymksh om, its work
ReplyPengertian dari Database Helper itu apa yah...?
ReplyTerima kasih. Ini sangat membantu
ReplyTerima kasih. Ini sangat membantu
ReplyPost a Comment