Pada bagian ini kita akan membahas tentang database, Android juga memiliki fasilitas untuk membuat database yang dikenal dengan SQLite, SQLite adalah salah satu software yang embedded yang sangat populer, kombinasi SQL interface dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat. SQLite di android termasuk dalam Android runtime, sehingga setiap versi dari android dapat membuat database dengan SQLite.
Dalam sistem android memiliki beberapa teknik untuk melakukan penyimpanan data. Teknik yang umum digunakan adalah sebagai berikut :
- Shared Prefences yaitu menyimpan data beberapa nilai(value) dalam bentuk groups key yang dikenal dengan prefences.
- Files yaitu menyimpan data dalam file, dapat berupa menulis ke file atau membaca dari file.
- SQLite Databases, yaitu menyimpan data dalam bentuk Databases.
- Content Providers, yaitu menyimpan data dalam bentuk content providers service.
Dan pada bagian ini kita akan fokus membahas bagian databases. Tidak ada database yang otomatis disediakan oleh android, jika kita menggunakan SQLite, kita harus mengcreate database sendiri, mendefenisikan tabelnya, index serta datanya. Untuk membuat dan membuka database yang paling baik adalah menggunakan libraries import android.database.sqlite.SQLiteOpenHelper
Aplikasi database1
Pada aplikasi database1 ini, akan kita coba membuat database,tabel serta menyimpan data ke dalam database. Buatlah project baru seperti ketentuan berikut :
Project Name : database1
Buitl Target : Android 2.3
Application name : database1
Package name : com.wilis.database1
Activity : database1
Min SDK : 9
Terdiri dari dua buah file java yaitu DBAdapter.java yang menghandle masalah SQLite beserta fungsi-fungsi yang dibutuhkan seperti struktur dan sekema database dan database1.java yang digunakan untuk melakukan pengiriman data yang akan ditambahkan ke database, membuka, mengedit, memanipulasi database.
DBAdapter.java
package com.wilis.database1; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DBAdapter { public static final String KEY_ROWID = "_id"; public static final String KEY_ISBN = "isbn"; public static final String KEY_TITLE = "title"; public static final String KEY_PUBLISHER = "publisher"; private static final String TAG = "DBAdapter"; private static final String DATABASE_NAME = "books"; private static final String DATABASE_TABLE = "titles"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE = "create table titles (_id integer primary key autoincrement, " + "isbn text not null, title text not null, " + "publisher text not null);"; private final Context context; private DatabaseHelper DBHelper; private SQLiteDatabase db; public DBAdapter(Context ctx) { this.context = ctx; DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS titles"); onCreate(db); } } //---opens the database--- public DBAdapter open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } //---closes the database--- public void close() { DBHelper.close(); } //---insert a title into the database--- public long insertTitle(String isbn, String title, String publisher) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_ISBN, isbn); initialValues.put(KEY_TITLE, title); initialValues.put(KEY_PUBLISHER, publisher); return db.insert(DATABASE_TABLE, null, initialValues); } //---deletes a particular title--- public boolean deleteTitle(long rowId) { return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; } //---retrieves all the titles--- public Cursor getAllTitles() { return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER}, null, null, null, null, null); } //---retrieves a particular title--- public Cursor getTitle(long rowId) throws SQLException { Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER }, KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } //---updates a title--- public boolean updateTitle(long rowId, String isbn, String title, String publisher) { ContentValues args = new ContentValues(); args.put(KEY_ISBN, isbn); args.put(KEY_TITLE, title); args.put(KEY_PUBLISHER, publisher); return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0; } }
sementara Database1.java berisi data yang akan kita coba test input ke database.
Database1.java
package com.wilis.database1; import android.app.Activity; import android.os.Bundle; public class database1 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DBAdapter db = new DBAdapter(this); //---add 3 titles--- db.open(); long id; id = db.insertTitle( "1234512345", "Android Programmer's Reference", "Washington Press"); id = db.insertTitle( "5432112345", "Linux Programming", "Bandung Press"); id = db.insertTitle( "0987654321", "Android Devlopment Life Cycle", "Hongkong Press"); db.close(); } }
Jalankan aplikasi dan coba buka database yang di insertkan dengan tools misalnya SQLite managers dari add-ons nya mozilla sehingga anda dapat melihat datanya seperti berikut :
Selanjutnya kita akan coba buat input form untuk memasukkan data ke dalam database,
persiapkan form seperti berikut :
customerjava.com
package com.wilis.databaseapp; public class Customer { long id; String name; String address; String phone; boolean complete; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public boolean isComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } // ------------------------------------------- public void toggleComplete() { complete = !complete; } }
kemudian file CustomerSQLHelper untuk handle SQLite seperti contoh diatas,
karena masih banyak file javanya sebaiknya anda donwload sourcode nya aja langsung
Download Full Sourcode DatabaseApps
Jalankan aplikasi setelah melakukan input akan ditampilkan seperti gambar berikut :
Demikian,
ini adalah contoh aplikasi simple mengenai SQLite, walaupun ini cerita jadul, tapi tetap menarik untuk dipahami oleh developer android.
uxc.wilis
š
sulai said:
saya juga buat aplikasi yang mirip seperti itu.
tapi saat d instal di hp android…fungsi menampilkan dan menambahkan jd tidak bisa,,force close.
bagaimana itu?
Fredy said:
pak tolong posting TUTORIAL MENAMPILKAN DATA MYSQL DARI ANDROID yang paling sederhana pak…. tolong ya pak… di tunggu..
Nazruddin Safaat H said:
lihat di postingan lama…sudah ada tuh gan..
vxlienz said:
patut di coba trims pak guru…
vxlienz said:
haduh bingung downloadnya pak.. kok banyak y?
oman kopyor said:
cara downloadnya gampang kog…
klik ajja file > download
atau
ctr+s
ok…
Candy said:
wah, nggak nyangka saya bisa bertanya langsung dari si empunya buku android yg saya beli..
mau bertanya. bgmna caranya saya mau menyimpan gambar di db sqlite, smcam upload gmbar bgtu, pas disimpan gmbarnya secara otomatis gmbar yg kita pilih tercopy pda folder drawable di project kita..
mohon bimbingannya.. ^_^
Icha Chidot said:
Saya sudah download tapi kok ada beberapa file yang error yaa? gimana mas?
dzeeg said:
kalau ingin membuat database seperti diatas tapi dengan tiga tabel, bagaimana caranya ya….. bisa dicontohkan?? thanks
mochiafandi said:
mantap bang
Fajar said:
aku download yang full source code nya . tapi ada eror banyak di utils.java .
kenapa ya?
Angga Praditya said:
mau tanya untuk import program file rar tersebut.
gimana caranya
Abib Mustova said:
pak saya telah membeli buku tulisan anda. Buku Android : Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android + DVD (Revisi 2). buku yang sangat menarik. saya telah mempelajari membuat aplikasi sms. saya masih belum faham bagaimana membaca nomor hp tujuan dengan file txt. saya mengkombinasikan project sms dengan projecy file1 yg ada di dalam DVD nya.. mohon pencerahannya. ini project yg saya buat. https://www.mediafire.com/?5ky8uyo15498f38 tidak ada kode yg error tetapi ketika di jalankan force close. tolong di fix ya pak. terimakasih.