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.
mas kalo bikin biar jadi 3 bahasa gimana..?
saya buat gak bisa-bisa..
bisa tolong mminta kodingnya..
Kalo tabel nya banyak gmn?
OpenHelper nya juga harus banyak?
mas kalo mo bikin databasenya di server gmn caranya ya???
Mas, database class baru yang mengeksten class SQLiteOpenHelper dengan
nama DataKamus.java itu dibuat dimana? Di folder apa? Mohon pencerahannya. Terima kasih.
wahhhhh,,,,, makasih banget mas atas tutorialnya….!!!!
Mudah-mudahan selalu bermanfaat.
Pak,sebelum buat aplikasi ini apa harus install SQLLite dulu??
Truz file databasenya disimpan dimana? yang saya tahu kalo aplikasi yg pake database kan file databasenya disimpan sendiri,misal kalo pake access disimpan dlm format .mdb
Maklum masih newbie,hehe
Mas, mau tanya satu pertanyaan………apakah dengan IDE Eclipse kita bisa debugging source code baris per baris. Kalau bisa gimana caranya?
Kamusnya cuma pake database ja atau pake link ke google untuk mencari terjemahanya?
Terima kasih Pak atas Tutorialnya,
Saya lagi ingin belajar bagaimana membuku ebook yang berextension apk di Android.
Tapi saya sudah lama mencari di Internet, tetapi sama sekali belum ketemu.
Saya berharap bapak bisa mengajari kami bagaimana membuatnya.
Terima Kasih,
Budi Hartono
Terima kasih, Mas. Tutorial Anda sangat bermanfaat sekali. Wah, orang2 seperti Anda ini yang membuat programer2 Android awam jadi cepet pinter. Heheheheh…..
Terima kasih banyak mas ,,, sangat membantu nih tutorialnya 🙂
salam mas, saya mau buat aplikasi android yang datanya dapat di ambil dari database server. jadi yang saya mau tanya cara memasukan data ke database local dari server gmana ya?
makasi mas tas bantuannya , , ,
mas saya mau tanya,,saya sudah mencoba membuat aplikasi kamus seperti yang anda contohkan..pada saat di run sukses dan layoutnya berhasil ditampilkan,,tetapi pada saat akan memasukkan kata yg diinginkan..misalnya ketik kata “run” tetapi begitu press button “terjemahkan”,,kok malah ada tulisan:
Sorry
the application Kamus Inggris Indonesia(process,com…)has stopped unexpectedly. please try again..
itu artinya apa ya?
terima kasih sebelumnya
terima kasih tutorialnya,,
tapi kok setelah saya coba masih ada yang error y codingnya,,
boleh minta coding yg sdh fix ga?
kirim ke email aja
terima kasih
sangat membantu sekali mas ini.. tpi ad yg kurng jels,, maklum pemula..
missalY it mw membuat database, kita mengesave file tersebut lokasiY dman..
mhon jawbnY.. kalw bisa gambr2 tutorialY jga di tampilin mas,, heheh… maju terus..
bisa ndak ditambahi kata baru
di update
dan d delete kata2x
klo bisa d tmbhi apa yah ??
itu kan untuk menampilkan data yang berada di database, untuk menambahkan data di database melalui UI gimana caranya yah mas
Terima Kasih
Mas. agus, saya buat applikasi serupa pake sqlite. Tapi kalau di jalanin di actual device, database nya nggak ke baca, berbeda dengan ketika di jalanin di emulator. Bagaimana caranya untuk menaruh database nya supaya langsung dapat di akses pas apk di install di handphone. Trims
@faris, generate databasenya didalam aplikasi atau diluar aplikasi ?
mas,program ini sensitive case y???
karena waktu saya jalankan tz ketikkan kata “LARI” malah jawabnya terjmahan not foud.
tp ktika sy ktikkan kata “lari”, bru dia kluarkan terjmahannya….
mas tw g’ gmn crnya spy tdk sensitive case…..
wlaupun ktikkan kta “LARI” ttp bisa dibaca….
generate databasenya didalam aplikasi atau diluar aplikasi ?
maksudnya apa mas?
mau tanya nih,klo mau buat database angkutan kota itu gimana?yang nantinya saya gabung dengan google map di android ponsel….terima kasih
mas mau tanya untuk buat 2 tabel diandroid gimana carax
keren mas agus ,
mas agus mau nanya , misalnya saya mau tambahin textfield yg bahasa inggrisnya jadi ada 2, kan itu punya mas agus cuman 1 run inputan text inggrisnya, aja coding databasenya gimana .
Makasih banyak mas atas tulisannya. mau nanya nih, database saya kan banyak barisnya.. kalau aplikasinya dibuka, ada delay sekitar 8 detik. Nah, saya mau tampilin animasi loading atau pesan loading selama kita nunggu dalam selang waktu tersebut. Itu gimana caranya yah.. makasih..
very nice,
mas cara membuat banyak tabel pada 1 db gemna cranya mas? dan cara menampilkan data pada salah satu tabel tersebut menggunakan textview gemna crnya mas
kalo mau ngeliat isi dari SQLite yang sudah kita input gmna caranya pak???
mas bro,makasih sebelumnya…
tapi ane ko pas dijalanin di emulator force close..kenapa ya??
padahal coding ga ada yg error
terimakasih.. sangat membantu 🙂
@lutfie, coba bisa dilihat dilogcat, untuk mengetahui kesalahannya dimana.
method terjemahkannya ga bisa bro,jadi pas diterjemahkan force close..
udah sama padahal 🙁
klo boleh minta kirim email bro codingnya..
hhe makasih sebelumnya
tolong ya bro ane penasaran banget soalnye hha
Saya selalu saja dapat pesan error kalo aplikasi nya di run, padahal coding-an nya udah gak ada yang error.
Pakai sqlite atau pun mysql hasil nya sama. Selalu:
“The application has stopped unexpectedly….”
Itu kenapa yah Pak Agus ??
makasih nih mas agus sebelumnya.. saya udah jadi aplikasinya dan sukses bisa jalan,, tapi kok berat skali ya aplikasi ini pas saya coba di HP.. HPnya LG Optimus 2x.. kalo di simulator hanya sedikit berat( size di AVD sd card saya kasih 100MiB) apa ngaruh di spek HP nya atau apa karena kebanyakan data nya mas.. saya masukan hampir 1000 kata.. gimana ya mas byar gak berat aplikasinya. terima kasih mas sebelumnya.. semoga ada solusinya,, #maapkepanjangan 😀
@yudha, untuk script insert datanya, langsung dijavanya yah ?. kalau datanya banyak sebaiknya langsung insert di sqlite dulu, nah nanti progran javanya yang baca sqlite tersebut
masih error mas admin
showkamus.java DataKamus cannot be resolved to a type
mas, cara mengatasi pesan “the process.android.acore has stopped unexpectedly” pada android gimana??
mas saya mau tanya..
klo menyatukan string didalam suatu terjemahan gimana yah..
kaya misalkan insert kata run dan car.
diketikan dalam text view bersamaan.
dan hasilnya adalah runcar.
jadi string yang ada disatukan satu persatu.
gmna ya mas codingnya?
ehh mksd saya hasilnya
mobil lari.
itu gmna mas caranya nyatuinnya
master bisa minta tutor buat bikin soal di android gak
sama cara masukin animasi gif ke android
makasih sebelumnya
mas agus mau tanya,,aplikasinya sudah muncul diemulator tp kok blm sempat aplikasi terbuka langsung force close..
mohon pencerahan cara mengatasinya..
thx .
makasih mas tutorialnya sangat membantu…mau nanya nih mas..kalo cara masukin file suara untuk tiap kata nya itu gimana ya??mohon pencerahannya..terimakasih… 🙂
maaf mas saya mohon pencerahan lg??
kamus ini kok case sensitif ya??
contohnya input “run” outputnya “lari” tp waktu saya input “Run”(atau dengan awalan huruf besar/R) kenapa output not found??
bagaimana cara mengatasinya..
terimakasih..
tutor yang mas buat sangat membantu sekali…
Mas saya mao tanya nih,mas ada ngga tutor aplikasi yang database n coding androidnya terpisah,jadi si aplikasi bisa load database dari SDCARD…
tolong ya mas kalo ada…
terima kasih banyak sebelumnya
kk. saya mau buat BUTTUN seperti MENU LUAS LINGKARANG.
TAPI DI JADIIN KAMUS..
thanks KK
mau buat PI ne..
caranya gimana kk? thanks
gimana caranya insert di javanya mas..?
ada yg tau ga kalo mu pake 2 input bagaimana?
saya mau pakai 2 input dan menghasilkan 1 output
mas, program ini kan insert datanya langsung dijavanya jadi aplikasinya jd agak berat. bagaimana kalo insert datanya disqlite? mohon bantuannya. Thx