Tutorial Pemrograman dan Source Code, Android, Web, Mobile, Desktop, Database dan Software. Tutorial Pemrograman Android, Web, PHP, Javascript, VB.NET, C#, ASP.NET dan Java
Minggu, 06 Januari 2013
Aplikasi Android Menampilkan Data, View Database SQLite
Setelah berhasil Membuat Aplikasi Android untuk Mengakses Data dalam Bentuk JSON dari Web PHP dengan Database MySQL. Kali ini kita coba Membuat Aplikasi Android dengan Database SQLite.
Karena aplikasi ini cukup panjang. Penulis membagi menjadi 4 bagian :
1. Menampilkan Data dari Database SQLite di Android
2. Menambahkan Data ke Database SQLite di Android.
3. Mengedit / Update Data ke Database SQLite di Android.
4. Menghapus Data di ke Database SQLite di Android.
Sedangkan source code program yang penulis sharing dan bisa didownload di bawah sudah lengkap keempat bagian tersebut. Silakan didownload pada link di bawah.
Pada artikel ini kita bahas bagian pertama yaitu Membuat Aplikasi Android untuk Menampilkan Data dari Database SQLite.
Pertama kita buat dahulu sebuah Class bernama SQLHelper yang bertugas untuk Membuat Database SQLite ketika pertama kali Aplikasi dijalankan, dan bertanggunjawab untuk memanggil database tersebut dalam mode Read maupun Write ketika dibutuhkan.
SQLHelper.java
package com.amijaya.databasesqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
//http://cariprogram.blogspot.com
//nuramijaya@gmail.com
public class SQLHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "db.db";
private static final int DATABASE_VERSION = 1;
public SQLHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table kota( id integer primary key autoincrement, nama text null, " +
"latitude text null, longitude text null);";
Log.d("Data", "onCreate: " + sql);
db.execSQL(sql);
sql = "INSERT INTO kota (id, nama, latitude, longitude) VALUES (1, 'Yogyakarta', '111', '222');";
db.execSQL(sql);
sql = "INSERT INTO kota (id, nama, latitude, longitude) VALUES (2, 'Surakarta', '333', '444');";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
Program utama kita letakkan di MainActivity
MainActivity.java
package com.amijaya.databasesqlite;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
// http://cariprogram.blogspot.com
// nuramijaya@gmail.com
public class MainActivity extends Activity {
String[] daftar; // = {"Wisata Candi", "Wisata Pantai", "Wisata Alam"};
ListView ListView01;
Menu menu;
protected Cursor cursor;
SQLHelper dbHelper;
public static MainActivity ma;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ma = this;
dbHelper = new SQLHelper(this);
RefreshList();
}
public void RefreshList()
{
SQLiteDatabase db = dbHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM kota",null);
daftar = new String[cursor.getCount()];
cursor.moveToFirst();
for (int cc=0; cc < cursor.getCount(); cc++)
{
cursor.moveToPosition(cc);
daftar[cc] = cursor.getString(1).toString();
}
ListView01 = (ListView)findViewById(R.id.ListView01);
ListView01.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, daftar));
ListView01.setSelected(true);
ListView01.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
final String selection = daftar[arg2]; //.getItemAtPosition(arg2).toString();
final CharSequence[] dialogitem = {"Edit", "Delete"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pilih ?");
builder.setItems(dialogitem, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch(item){
case 0 :
Intent i = new Intent(getApplicationContext(), EditActivity.class);
i.putExtra("nama", selection);
startActivity(i);
break;
case 1 :
/*SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("delete from kota where nama = '"+selection+"'");
RefreshList();*/
break;
}
}
});
builder.create().show();
}});
((ArrayAdapter)ListView01.getAdapter()).notifyDataSetInvalidated();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
menu.add(0, 1, 0, "Tambah").setIcon(android.R.drawable.btn_plus);
menu.add(0, 2, 0, "Refresh").setIcon(android.R.drawable.ic_menu_rotate);
menu.add(0, 3, 0, "Exit").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
/*Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivity(i);*/
return true;
case 2:
RefreshList();
return true;
case 3:
finish();
return true;
}
return false;
}
}
Kemudian tampilannya kita pakai saja tampilan default kemudian ditambah satu buah ListView dengan nama ListView01 :
main.xml
<?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="Database SQLite"
/>
<ListView android:id="@+id/ListView01" android:layout_width="match_parent" android:layout_height="wrap_content"></ListView>
</LinearLayout>
Pada AndroidManifest.xml tidak perlu diubah :
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amijaya.databasesqlite"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--activity android:name=".AddActivity"
android:label="@string/app_name">
</activity>
<activity android:name=".EditActivity"
android:label="@string/app_name">
</activity-->
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
Hasilnya
Project selengkapnya silakan didownload disini :
https://docs.google.com/open?id=0B4i1FYc_4RXzRk04d0NhQlE4OGs
Semoga bermanfaat, Selamat Coding.
Artikel Selanjutnya Aplikasi Android untuk Menambahkan Data ke Database SQLite