Belajar Android Pengenalan Database Android

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.

188 comments to Belajar Android Pengenalan Database Android

  • agung

    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?

  • lizie

    mas kalo mo bikin databasenya di server gmn caranya ya???

  • Agung

    Mas, database class baru yang mengeksten class SQLiteOpenHelper dengan
    nama DataKamus.java itu dibuat dimana? Di folder apa? Mohon pencerahannya. Terima kasih.

  • Irawan

    wahhhhh,,,,, makasih banget mas atas tutorialnya….!!!!
    Mudah-mudahan selalu bermanfaat.

  • NewbieDroid

    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

  • bernard

    Mas, mau tanya satu pertanyaan………apakah dengan IDE Eclipse kita bisa debugging source code baris per baris. Kalau bisa gimana caranya?

  • Fhera

    Kamusnya cuma pake database ja atau pake link ke google untuk mencari terjemahanya?

  • Budi Hartono

    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

  • Haryo Bergas

    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 🙂

  • kalek

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

  • endah

    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

  • wika

    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

  • sofyan

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

  • rafa

    bisa ndak ditambahi kata baru
    di update
    dan d delete kata2x
    klo bisa d tmbhi apa yah ??

  • Kemal

    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

  • Agus Haryanto

    @faris, generate databasenya didalam aplikasi atau diluar aplikasi ?

  • Zahdan

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

  • sulai

    generate databasenya didalam aplikasi atau diluar aplikasi ?
    maksudnya apa mas?

  • ika

    mau tanya nih,klo mau buat database angkutan kota itu gimana?yang nantinya saya gabung dengan google map di android ponsel….terima kasih

  • ajir

    mas mau tanya untuk buat 2 tabel diandroid gimana carax

  • kucay

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

  • veny

    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

  • rayi

    kalo mau ngeliat isi dari SQLite yang sudah kita input gmna caranya pak???

  • lutfie

    mas bro,makasih sebelumnya…
    tapi ane ko pas dijalanin di emulator force close..kenapa ya??
    padahal coding ga ada yg error

  • aiu

    terimakasih.. sangat membantu 🙂

  • Agus Haryanto

    @lutfie, coba bisa dilihat dilogcat, untuk mengetahui kesalahannya dimana.

  • lutfie

    method terjemahkannya ga bisa bro,jadi pas diterjemahkan force close..
    udah sama padahal 🙁
    klo boleh minta kirim email bro codingnya..
    hhe makasih sebelumnya

  • lutfie

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

  • yudha

    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 😀

  • Agus Haryanto

    @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

  • Gus

    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

  • Alfian

    master bisa minta tutor buat bikin soal di android gak
    sama cara masukin animasi gif ke android
    makasih sebelumnya

  • Meidi

    mas agus mau tanya,,aplikasinya sudah muncul diemulator tp kok blm sempat aplikasi terbuka langsung force close..
    mohon pencerahan cara mengatasinya..
    thx .

  • Linda

    makasih mas tutorialnya sangat membantu…mau nanya nih mas..kalo cara masukin file suara untuk tiap kata nya itu gimana ya??mohon pencerahannya..terimakasih… 🙂

  • Meidi

    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…

  • lutfie

    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

  • darwin

    kk. saya mau buat BUTTUN seperti MENU LUAS LINGKARANG.
    TAPI DI JADIIN KAMUS..
    thanks KK
    mau buat PI ne..

  • darwin

    caranya gimana kk? thanks

  • Ancha

    gimana caranya insert di javanya mas..?

  • firman

    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

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>