Jumpa lagi dengan Agus Haryanto, dalam seri belajar android, kali ini kita akan membahas penggunaan fitur database android.
Kalau kita baca spesifikasi OS android ini, maka salah satu fitur yang ditawarkan adalah kita dapat membuat database di android yaitu dengan menggunakan SQLite. Jadi kita bisa membuat aplikasi seperti yang ada di computer walaupun tidak persis sama karena computer memiliki resource yang lebih besar.
Dulu waktu belajar J2ME kita jika ingin menyimpan data diaplikasi kita, kita menggunakan Recors Store (RMS). Dimana dalam inserting data dan query data membutuhkan effort coding yang lumayan
Agar semangat belajarnya, dalam mempelajari sesuatu hendaknya kita selalu bertanya dalam diri, kalau dalam hal ini pertanyaan yang harus diajukan adalah :
1. Untuk apasih belajar penggunaan database di android?
Kalau yang ini simple jawabnya, yah supaya bisa membuat aplikasi yang memnafaatkan fungsi database diandroid
2. Kalau sudah menguasai, apa manfaatnya buat saya ?
Dengan database kita bisa membuat banyak aplikasi yang bermanfaat. Seperti.
– Point Of Sales (POS) bahasa indonesianya aplikasi penjualan.
Kita bisa menyimpan data product yang kita jual dan transaksi penjualannya. Dengan adanya data kita bisa membuat report penjualannya bisa dalam bentuk table, list, bisa graphic (chart) juga lho.
– Aplikasi buat pendukung bisnis Cuci Mobil / Motor
Pernah cuci motor atau mobilkan, nah lihat pas kita bayar, kasirnya nyatatnya pakai buku atau pakai computer kalau pakai computer lihat masih pakai excel atau sudah aplikasi. Nah kalau masih pakai buku atau excel ada peuang tuh, kita tawarkan aplikasi android untuk mencatat pendapatan.
– Kalau 2 contoh diatas kurang keren, berarti anda butuh tantangan lebih, buatlah apalikasi mobile yang merupakan client dari sebuah server. Kalau jaringan internet ada dan lancar tentu ini mudah saja, nah sekarang kita dituntut untuk develop aplikasi yang mampu mengatasi hal ini, artinya dalam kondisi internet matipun aplikasi masih dapat digunakan dan nanti setelah internetnya hidup data transaksi offline tadi akan dikirim ke server. Nah untuk mewujudkan itu kita perlu database diaplikasi mobile kita untuk menyimpan data transaksi yang terjadi pada waktu offline.
– Untuk yang pernah main Game pasti pernah merasa bangga kalau namanya masuk dalam daftar highest score. Nah database dapat kita manfaatkan untuk menyimpan daftar tersebut.
Banyakkan manfaatnya, kalau gitu sekarang semangatnya tambah 10 kali lipat hehehe 🙂
Bahan bakar semangat telah ditambah sekarang waktunya action.
SQLite
Seperti telah dijelaskan diatas database pada android menggunakan SQLite. Dengan SQLite untuk insert, update dan query data dapat dilakukan dengan syntak SQL.
Untuk itu sebelum melangkah pembuatan aplikasi Android yang memanfatkan firtur SQlite databasenya, kita harus menguasai cara menggunakan SQLite.
Sama seperti database lainnya syntak SQLnya terbagi 2 kategori yaitu syntak untuk Data Definition Language (DDL) dan Data Manipulation Language (DML). Bagi yang pernah belajar database pasti tidak asing dengan kedua istilah tersebut.
Sekarang ada pertanyaan nih apa beda DDL dan DML ?
Biar mudah dipahami, kalau database itu kita ibaratkan sebuah rumah, maka DDL itu adalah syntax untuk membuat rumah, menambah kamar, merubah bangunan rumah, makanya yang termasuk syntak-syantak DDL adalah create table, alter table, drop table.
sedangkan DML adalah syntax untuk mengetahui isi rumah, siapa saja penghuninya, berapa jumlahnya, ada berapa yang pria dan yang wanita, adakah anak-anak dirumah itu.
Makanya yang termasuk syntak-syntak DML adalah insert, update, delete, select
Untuk mengetahui lebih lanjut tentang sqlite bisa kunjungi SQLite Home Page
Sekarang mari kita buat project yang menggunakan database sqlite di android. Dulu sebelum pakai android dihandphone yang dulu pasati pernah install kamus inggris Indonesia, yang kita gunakan untuk mencari terjemahan suatu kata dalam bahasa inggris ke bahasa Indonesia. Sebetulnya diandroid juga sudah ada yang buat. Tetapi tentunya akan lebih puas jika kita buat sendiri.
Mari kita mulai langkah-langkahnya
1. Buat New Project dengan nama Kamus, lengkapi seperti gambar dibawah
2. Setelah project tercreate maka secara otomatis android membentuk 3 file yaitu :
· main.xml
· string.xml
· showKamus.java
3. untuk membuat user interfacenya, bukafile main.xml lalu ketikkan kode berikut
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Kamus Inggris Indonesia" /> <TextView android:text="Inggris :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <EditText android:text="" android:id="@+id/txtInggris" android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText> <Button android:text="Terjemahkan" android:id="@+id/btnTerjemah" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="getTerjemahan"></Button> <TextView android:text="Indonesia :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <EditText android:text="" android:id="@+id/txtIndonesia" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText> </LinearLayout>
Kode diatas akan menghasilkan user interface kamus bahasa inggris Indonesia yang terdiri dari inputan untuk memasukkan kata bahasa inggris, tombol yang apabila dilik nantinya akan mencari terjemahan dari kata bahasa inggris tersebut ke bahasa Indonesia dane menampilkannya.
4. Untuk pembuatan databasenya kita buat class baru yang mengeksten class SQLiteOpenHelper dengan
nama DataKamus.java, kemudian ketikkan kode berikut
package com.agus; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DataKamus extends SQLiteOpenHelper { private static final String DATABASE_NAME = "dbkamus"; public static final String INGGRIS= "inggris"; public static final String INDONESIA = "indonesia"; //Constructor DataKamus untuk initiate database public DataKamus(Context context) { super(context, DATABASE_NAME, null, 1); } //method createTable untuk membuat table kamus public void createTable(SQLiteDatabase db){ db.execSQL("DROP TABLE IF EXISTS kamus"); db.execSQL("CREATE TABLE if not exists kamus (id INTEGER PRIMARY KEY AUTOINCREMENT, inggris TEXT, indonesia TEXT);"); } //method generateData untuk mengisikan data ke kamus. public void generateData(SQLiteDatabase db){ ContentValues cv=new ContentValues(); cv.put(INGGRIS, "run"); cv.put(INDONESIA, "lari"); db.insert("kamus", INGGRIS, cv); cv.put(INGGRIS, "walk"); cv.put(INDONESIA, "jalan"); db.insert("kamus", INGGRIS, cv); cv.put(INGGRIS, "read"); cv.put(INDONESIA, "membaca"); db.insert("kamus", INGGRIS, cv); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } }
Pada class DataKamus, disinilah kita membuat databasenya, membuat table dan mengisikan data pada table
(kode diatas akan menginsertkan 3 record data) tersebut.
5. sekarang mari kita kerjakan otak dari aplikasi kamus ini, buka file showKamus.java,
kemudian ketikkan kode berikut
package com.agus; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class showKamus extends Activity { private SQLiteDatabase db = null; private Cursor kamusCursor = null; private EditText txtInggris; private EditText txtIndonesia; private DataKamus datakamus = null; public static final String INGGRIS = "inggris"; public static final String INDONESIA = "indonesia"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); datakamus = new DataKamus(this); db = datakamus.getWritableDatabase(); datakamus.createTable(db); datakamus.generateData(db); setContentView(R.layout.main); txtInggris = (EditText) findViewById(R.id.txtInggris); txtIndonesia = (EditText) findViewById(R.id.txtIndonesia); } public void getTerjemahan(View view) { String result = ""; String englishword = txtInggris.getText().toString(); kamusCursor = db.rawQuery("SELECT ID, INGGRIS, INDONESIA " + "FROM kamus where INGGRIS='" + englishword + "' ORDER BY INGGRIS", null); if (kamusCursor.moveToFirst()) { result = kamusCursor.getString(2); for (; !kamusCursor.isAfterLast(); kamusCursor.moveToNext()) { result = kamusCursor.getString(2); } } if (result.equals("")) { result = "Terjemahan Not Found"; } txtIndonesia.setText(result); } @Override public void onDestroy() { super.onDestroy(); kamusCursor.close(); db.close(); } }
pada method onCreate, disini kita membuat object datakamus dari class DataKamus dari object
tersebut kita call method datakamus.createTable(db); dan datakamus.generateData(db);
setelah kita call kedua method diatas maka table dan datanya sudah siap
Method getTerjemahan akan dipanggil pada saat kita mengklik tombol Terjemahkan.
Pada Method ini kita tangkap inputan kata bahasa inggrisnya dari object txtInggris
kemudian kita lakukan query ke table kamus dan menampilkan hasilnya pada object txtIndonesia.
6. Mari kita run projectnya, pada inputan Inggris, kita isi dengan run
kemudian klik tombol Terjemahkan
Wow, keren dengan koding yang singkat kita bisa membuat aplikasi kamus inggris Indonesia,
yang mungkin dulu kita hanya bisa bertanya bagaimmana cara membuatnya dan hanya bisa bermimpi
dapat mebuatnya. Sekarang kita bisa buat sendiri dengan android. My Dream Come True
Jika baru mulai belajar android dianjurkan untuk membaca tutorial Aplikasi Android Sederhana - Menghitung Luas Persegi Panjang
referensi:
http://developer.andorid.com
Beginning Android 2
Semoga Bermanfaat
Salam Hangat
Agus Haryanto
Kode diatas akan menghasilkan user interface kamus bahasa inggris Indonesia yang terdiri dari inputan untuk memasukkan kata bahasa inggris, tombol yang apabila dilik nantinya akan mencari terjemahan darai kata bahasa inggris tersebut ke bahasa Indonesia dane menampilkannya.
bang mau tanya
pada method onCreate, disini kita membuat object datakamus dari class DataKamus dari object
tersebut kita call method datakamus.createTable(db); dan datakamus.generateData(db);
bagian ini maksudnya apa ya bang… tolong dijawab bang
@dian perdana. Sebaiknya pelajari basic java dan oopnya. insya Allah setelah itu akan dapat menjawab pertanyannya.
mas, saya izin copy tutorialnya yaa untuk bantuan saya menerangkan cara membuat aplikasi android di kampus..
thx
regard
kiki
mas, saya mau tanya bagaimana ya caranya file suara disimpan dalam database?
saya minta contoh programnya dong di android..terimakasih..
mohon bantuannya ya…^^
@dhaniar, simpan pathnya saja.
mas kalo recordnya banyak gimana?? harus tulis satu2 berurutan gitu? yg inputan aja ngga ada ya mas?? jd kata nya ngga di dalam program gt..
mas, itu membuka new android, dari hp atau komputer? alau dari komputr di mana, kalau dari hp di mana?
pak agus,, boleh minta tolong, kalau pake checkbox gimana buat databasenya???
soalnya saya buat sistem pakar, yang gejalanya ada didalam database, buat koneksiin ke javanya kodingannya gimana yaa..???
apalagi klo saya buat tabelnya menggunakan sqliteman,, itu gimana caranya yaa buat jalanin database ke javanya..???
makasih sebelumnya…
Mas, misal kita punya data karyawan dalam bentuk excel sebanyak 1000 data, apakah kita bisa mengkonversinya ke SQLite secara langsung atau tetap harus input satu-satu data karyawannya?
gan punya database/ sql unutuk kamus b indonesia – inggris? kalo punya minta share nya yah,.,
mas ini dah berhasil dibuat cuma klo hp saya putar jadi force close knapa ya?saya coba” tambahin android:orientation=”vertical”, tetap gagal..terus binun dech….cause msi awam nih…di bantu ya.thx
Gan, saya mau bertanya. caranya menampilkan data dari SQLite yg sudah di insert ke PHP di komputer bagaimana ya ?
Mohon pencerahannya. 🙂
@ahmad, Kalau sudah diinsert melalui php biasanya itu disimpannya di databases MySQL. sudah ada kok tutorial diblog ini yang membahas tentang android php dan mysql
Maksudnya begini mas. saya kan sudah membuat program aplikasi pemesanan makanan dan minuman, saya databasenya memakai SQLite. di situ setelah melakukan pemesanan, daftar pemesanan tersebut akan saya kirim ke komputer untuk di proses. itu caranya bagaimana mas? saya bingung caranya bagaimana cara menampilkan daftar pesanan tersebut di PHP yg ada di komputer. sedangkan saya databasenya memakai SQLite, bukan MySQL seperti biasanya. Mohon pencerahannya mas. 🙂
Ass.mas kalo bisa buat video tutorial dgn contoh aplikasi android dgn koneksi database dan contoh kasus…trus dikomersilkan mas pasti laris kaya tutorial maxicom…thanks buat pencerahannya master java coding…
@chris mike, Wah boleh juga idenya tuh mas.
Assalamu ‘alaikum Pak Agus,
Terima kasih atas materi yang berharga ini. Saya sudah melakukan semua tahapan yang disajikan dalam artikel ini. Tapi pada saat saya mau “run” aplikasi ini, tertulis di layar emulator: “Unfortunately, Kamus has stopped”
Menurut Pak Agus, kira-kira dimana letak kesalahannya, ya?
Terima kasih sebelumnya, Pak.
Mas minta bantuannya dong, saya input data di android, kalau datanya pake spasi pasti ga bisa malah error
gan minta tolong dong, saya buat aplikasi android tapi saat mau input datanya ada spasinya itu ga mau input, malah error aplikasinya itu solusinya gimana yaah
om kalo database yang kita buat diimport bukan di input seperti itu bagaimana, kasih pencerahan
Mas saya numpang tanya nih saya ngutip codingan ini buat skripsi saya codingan ini masuknya algoritma apa ya mas ?
makasih
mas codingan ini masuknya pake algoritma apa ya ?
Salam kenal pak agus,
Pak sy sedang buat database untuk crud dgn 2 tabel. Tapi tdk bs terbaca hny di table anggota. Berikut codingnya:
package salila.wk.skripsifix;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DatabaseBook extends SQLiteOpenHelper {
private static final String DATABASE_NAME = “dbuyah.db”;
private static final int DATABASE_VERSION = 1;
public DatabaseBook(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = “create table buku(kode varchar primary key, judul text null, pengarang text null, penerbit text null, thn_terbit text null);”;
Log.d(“Data”, “onCreate: ” + sql);
db.execSQL(sql);
sql = “INSERT INTO buku (kode, judul, pengarang, penerbit, thn_terbit) VALUES (‘FA SUM i’, ‘Tomi Menjadi Teman’, ‘Sumadia’, ‘Tira Pustaka’,’1999′);”;
db.execSQL(sql);
sql = “INSERT INTO buku (kode, judul, pengarang, penerbit, thn_terbit) VALUES (‘FA SUM u’, ‘Tomi Menjadi Teman’, ‘Sumadia’, ‘Tira Pustaka’,’1999′);”;
db.execSQL(sql);
sql = “INSERT INTO buku (kode, judul, pengarang, penerbit, thn_terbit) VALUES (‘FA SUM o’, ‘Tomi Menjadi Teman’, ‘Sumadia’, ‘Tira Pustaka’,’1999′);”;
db.execSQL(sql);
sql = “INSERT INTO buku (kode, judul, pengarang, penerbit, thn_terbit) VALUES (‘FA SUM a’, ‘Tomi Menjadi Teman’, ‘Sumadia’, ‘Tira Pustaka’,’1999′);”;
db.execSQL(sql);
String sql1 = “create table anggota(id varchar primary key, nama text null, alamat text null, tlp text null, masa_berlaku text null);”;
Log.d(“Data”, “onCreate: ” + sql1);
db.execSQL(sql1);
sql1 = “INSERT INTO anggota (id, nama, alamat, tlp, masa_berlaku) VALUES (‘A-XIII-008’, ‘Ani’, ‘Kp.Rawa Sawah’, ‘0987899999’,’23 Maret 2013′);”;
db.execSQL(sql1);
sql1 = “INSERT INTO anggota (id, nama, alamat, tlp, masa_berlaku) VALUES (‘A-XI-012’, ‘Putri’, ‘Kp.Rawa Sawah’, ‘0987899999’,’23 Maret 2013′);”;
db.execSQL(sql1);
sql1 = “INSERT INTO anggota (id, nama, alamat, tlp, masa_berlaku) VALUES (‘A-XII-030’, ‘Amelia’, ‘Kp.Rawa Sawah’, ‘0987899999’,’23 Maret 2013′);”;
db.execSQL(sql1);
sql1 = “INSERT INTO anggota (id, nama, alamat, tlp, masa_berlaku) VALUES (‘A-XIV-070’, ‘Yuli’, ‘Kp.Rawa Sawah’, ‘0987899999’,’23 Maret 2013′);”;
db.execSQL(sql1);}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}}
Mohon bantuannya pak, dimana letak salahnya. Terimakasih.
@kae, mungkin script untuk table anggotanya ini ditambahkan belakangan setalahapliaksi dirun, sehingga pada saat dirun lagi tidak akan tereksekusi. cara paling mudah coba unsintall aplikasinya lalu install lagi.
Terimakasih pak untuk jawabannya.
Tapi pak tetap tdk bs jalan untuk tabel anggotanya.
Saya itu mau buat CRUD, apa CRUD itu hny bs untuk 1 db dengan 1 tabel? Codingan yg benar untuk buat CRUD dengan 1 db dan 2 tabel itu spt apa pak? Mohon bantuannya lg pak.
Terimakasih pak.
mau tanya ni pak, kalo misalkan databasenya itu udah dibuat di sqlitenya trus kalo hanya mau manggil dan nampilin aja gimana caranya
Maaf pak saya mau tanya.
Kalo misalnya kosa kata untuk kamus udah ada dlm bentuk sql itu gmn ya cara koneksinya?
terima kasih,
mas kalo merubah font nya jadi tulisan arab gmana ya mas jadi yang teks insonesia nya di ubah menjadi tulisan arab mas.. apa yang harus di tambahin mas? terima kasih
min agus terima jasa pembuatan aplikasi android gak?
agar database android bisa terintegrasi ke internet bisa gak ya??
permisi mas, ini metode pencarianny pakai apa?
Pak, kalau di SQLite bisa berelasi antar tabelnya tidak? Seperti di MySQL
Mas saya mau tax, afa gak tutorial untuk buat data base gejala d sistempakar?
Saya boleh gak ambil pin bb, spya bisa tax” kalau ada kesulitan
Makasih 🙂
Mas.. untuk ketik scriptnya pakai aplikasi atau program apa,,,
pak selamat malam maa mengganggu saya ada project pak ,suru masukan video ke database pada aplikasi android saya bagaimana cara nya pak..?terimakasi bnyak pak sebelumnya
Mas.. Saya bikin aplikasi kamus dan menampilkan daftar katanya.. Tapi kosa katanya blm tersusun dengan abjad A-Z. Coding apa ta mas agar tampilan kosa kata saya bisa tersusun abjad A-Z secara otomatis..??
Mas saya bikin aplikasi yang meneriman inputan dan kemudian inputannya di simpan di database sqlite setelah itu di convert lagi ke .csv , bisa bantu saya mas ? Terimakash
mas, kalau fiturnya ditambah indonesia-inggris menggunakan database yang sama bagian mananya yang dirubah ?