5. C O N T E N T S
Preface...........................................................................................vii
Pengenalan Android ........................................................................9
Kenalan dengan Android.............................................................9
Instalasi Android.......................................................................10
Project Android pertama...........................................................11
Pengenalan User Interface ............................................................19
Mengenal Layout......................................................................19
Mengenal View.........................................................................32
Android Database SQLITE.............................................................43
SQLITE......................................................................................43
Kamus Tiga Bahasa (CRUD)......................................................44
Android Google Map......................................................................81
Menampilkan Data GPS............................................................81
Menampilkan Map pada Android...............................................89
Menampilkan Direction pada Map ..........................................102
Android PHP MySQL.....................................................................115
CRUD Android PHP Mysql........................................................115
Penutup.......................................................................................141
Semangat...............................................................................141
Seminar Workshop Android.....................................................141
Referensi................................................................................142
v | Android Fast Track
6. P R E F A C E
Android begitu fenomenal diusianya masih muda sudah
mampu mendominasi pasar smartphone dunia. Bagi pengem
bang aplikasi itu adalah pasar yang besar untuk aplikasinya.
Untuk membuat aplikasi android tidaklah sesulit yang dibay
angkan. Syarat utamanya kita harus menguasai dasar java
dan konsep object orientedya (OOP). Pada buku Android Fast
Track ini akan membahas bagian-bagian penting dalam
pembuatan aplikasi Android meliputi Pengenalan dasar pem
buatan aplikasi android, pengenalan cara menggunakan data
base sqlite android, pengenalan cara menggunakan Map API 2
untuk mengembangkan aplikasi android yang menggunakan
peta. Pengenalan cara membuat aplikasi android yang datan
ya tersimpan di server
Buku ini tentunya masih jauh dari sempurna. Untuk itu
apabila ada masukkan langsung saja email ke
agus.superwriter@gmail.com. Untuk melihat tutorial android
lainnya dapat berkunjung ke situs http://agusharyanto.net
Untuk kampus atau sekolah yang berminat
mengadakan seminar atau workshop android atau lainnya
bisa hubungi saya di email agus.superwriter@gmail.com
,twitter @agus_inovator atau di 0855-1000-444. Khusus un
tuk luar kota biaya transportasi dan akomodasi ditanggung
penyelenggara acara.
vii
7. ANDROID
DATABASE
SQLITE
Sebelumnya kita sudah belajar membuat aplikasi sederhana
pada Android, nah sekarang mari kita buat aplikasi yang lebih keren,
aplikasi yang menggunakan database SQLite.
SQLITE
Seperti telah dijelaskan diatas database pada android menggun
akan 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 Manip
ulation Language (DML). Bagi yang pernah belajar database pasti
tidak asing dengan kedua istilah tersebut.
3
8. ANDROID FAST TRACK
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, menam
bah kamar, merubah bangunan rumah, makanya yang termasuk syn
tak-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, up
date, delete, select
Untuk mengetahui lebih lanjut tentang sqlite bisa kunjungi SQL
ite Home Page
KAMUS TIGA BAHASA (CRUD)
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 gun
akan untuk mencari terjemahan suatu kata dalam bahasa indonesia
ke bahasa inggris dan jerman. Sebetulnya diandroid juga sudah ada
yang buat. Tetapi tentunya akan lebih puas jika kita buat sendiri.
Goal dari Aplikasi ini adalah untuk memahami CRUD dbsqlite pada
Android.
Berikut langkah-langkahnya
10 | Android Database SQLITE
9. ANDROID FAST TRACK AGUS HARYANTO
1. Buat project baru android dengan nama Kamus
2. Buat Class baru dengan nama DatabaseHelper.java
package net.agusharyanto.kamus;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME =
"dbkamus";
public static final String INGGRIS= "inggris";
public static final String INDONESIA =
"indonesia";
public static final String JERMAN = "JERMAN";
//Constructor DataKamus untuk initiate database
public DatabaseHelper(Context context) {
11 | Android Database SQLITE
10. ANDROID FAST TRACK
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,
jerman 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");
cv.put(JERMAN, "laufen");
db.insert("kamus", INGGRIS, cv);
cv.put(INGGRIS, "walk");
cv.put(INDONESIA, "jalan");
cv.put(JERMAN, "gehen");
db.insert("kamus", INDONESIA, cv);
cv.put(INGGRIS, "read");
cv.put(INDONESIA, "membaca");
cv.put(JERMAN, "lesen");
db.insert("kamus", JERMAN, cv);
}
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
// TODO Auto-generated method stub
createTable(db);
generateData(db);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
//Toast.makeText(getBaseContext(),
"Oncreate", Toast.LENGTH_SHORT).show();
createTable(db);
generateData(db);
12 | Android Database SQLITE
11. ANDROID FAST TRACK AGUS HARYANTO
}
}
Pada class inilah database dibuat dengan nama dbkamus, disini
table juga dibuat dengan nama kamus dan diisikan dengan beberapa
data.
3. Edit file activity_main.xml pada direktori res/layout lalu ketikan
kode berikut
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Kamus Inggris Indonesia Jerman"
/>
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inggris :" >
</TextView>
<EditText
android:id="@+id/txtInggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
<requestFocus>
</requestFocus>
</EditText>
<Button
android:id="@+id/btnTerjemah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
13 | Android Database SQLITE
12. ANDROID FAST TRACK
android:onClick="getTerjemahan"
android:text="Terjemahkan" >
</Button>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indonesia :" >
</TextView>
<EditText
android:id="@+id/txtIndonesia"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:text="" >
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jerman" >
</TextView>
<EditText
android:id="@+id/txtJerman"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</EditText>
</LinearLayout>
Disini untuk user interface menggunakan linear layout yang did
alamnya ada tiga edit text dan satu button
4. Edit file MainActivity.java yang ada apada direktori src/ lalu
ketikan kode berikut
package net.agusharyanto.kamus;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
14 | Android Database SQLITE
13. ANDROID FAST TRACK AGUS HARYANTO
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private SQLiteDatabase db = null;
private Cursor kamusCursor = null;
private EditText txtInggris;
private EditText txtIndonesia;
private EditText txtJerman;
private DatabaseHelper 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 DatabaseHelper(this);
db = datakamus.getWritableDatabase();
setContentView(R.layout.activity_main);
txtInggris = (EditText)
findViewById(R.id.txtInggris);
txtIndonesia = (EditText)
findViewById(R.id.txtIndonesia);
txtJerman = (EditText)
findViewById(R.id.txtJerman);
}
public void getTerjemahan(View view) {
String bhsindonesia = "";
String bhsjerman="";
String englishword =
txtInggris.getText().toString();
kamusCursor = db.rawQuery("SELECT _ID,
INGGRIS, INDONESIA, JERMAN "
+ "FROM kamus where INGGRIS='"
+ englishword
+ "' ORDER BY INGGRIS", null);
if (kamusCursor.moveToFirst()) {
for (; !kamusCursor.isAfterLast();
15 | Android Database SQLITE
15. ANDROID FAST TRACK AGUS HARYANTO
5. Sekarang mari kita run projectnya
Pada isian Inggris ketikan run lalu klik button Terjemahkan.
Coba isi inggris diisi dengan sepatu lalu klik Terjemahkan
Coba inggris tidak diisi lalu klik Terjemahkan
6. Oke kita sudah berhasil membuat kamus, sekarang kita ingin
menampilkan kata-kata dalam database kedalam list.
7. Buat Layout baru dengan nama row.xml lalu ketikan kode
berikut
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
17 | Android Database SQLITE
16. ANDROID FAST TRACK
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:paddingBottom="5sp"
android:paddingTop="5sp" >
<TextView
android:id="@+id/inggris"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/indonesia"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/inggris" />
<TextView
android:id="@+id/jerman"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/indonesia" />
</RelativeLayout>
8. Buat Layout baru dengan nama daftarkata.xml lalu ketikan
kode berikut
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Inggris"
18 | Android Database SQLITE
17. ANDROID FAST TRACK AGUS HARYANTO
android:textSize="20sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView1"
android:text="Indonesia"
android:textSize="20sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView2"
android:text="Jerman"
android:textSize="20sp" />
<ListView android:id="@+id/list1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"/>
</RelativeLayout>
9. Buat Class baru dengan nama Daftarkata.java lalu ketikkan
kode berikut.
package net.agusharyanto.kamus;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
19 | Android Database SQLITE
18. ANDROID FAST TRACK
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class DaftarKata extends Activity {
private DatabaseHelper dbhelper;
private SQLiteDatabase db = null;
private ListView listContent = null;
private Cursor kamusCursor = null;
CustomCursorAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbhelper = new DatabaseHelper(this);
setContentView(R.layout.daftarkata);
listContent = (ListView)
findViewById(R.id.list1);
isDataListView();
}
private void isDataListView() {
try {
db = dbhelper.getWritableDatabase();
kamusCursor = db.query("kamus", new
String[] { "_id", "inggris",
"indonesia", "jerman" },
"_id>0", null, null, null, null);
// startManagingCursor( jasaCursor);
/*
* Create an array to specify the
fields we want to display in the
* list (only the
'inggris,indonesia,jerman' column in this case)
*/
String[] from = new String[] {
"inggris", "indonesia", "jerman" };
20 | Android Database SQLITE
19. ANDROID FAST TRACK AGUS HARYANTO
/*
* and an array of the fields we want
to bind those fieiplds to (in
* this case just the textView
'inggris,indonesia,jerman' from our new row.xml
* layout above)
*/
int[] to = new int[] { R.id.inggris,
R.id.indonesia, R.id.jerman };
/* Now create a simple cursor
adapter.. */
adapter = new
CustomCursorAdapter(this, R.layout.row, kamusCursor,
from, to);
// listView.setAdapter(adapter);
listContent.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (db != null && db.isOpen()) {
db.close();
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
try {
kamusCursor.close();
} catch (Exception e) {
}
}
protected class CustomCursorAdapter extends
SimpleCursorAdapter {
private int layout;
private LayoutInflater inflater;
21 | Android Database SQLITE
20. ANDROID FAST TRACK
private Context context;
public CustomCursorAdapter(Context context,
int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
this.layout = layout;
this.context = context;
inflater =
LayoutInflater.from(context);
}
@Override
public View newView(Context context, Cursor
cursor, ViewGroup parent) {
Log.d("NewView", "*****xxx");
View v =
inflater.inflate(R.layout.row, parent, false);
return v;
}
@Override
public void bindView(View v, Context
context, Cursor c) {
// 1 is the column where you're
getting your data from
String inggris = c.getString(1);
String jerman = c.getString(3);
String indonesia = c.getString(2);
/**
* Next set the name of the entry.
*/
TextView name_text = (TextView)
v.findViewById(R.id.inggris);
TextView des_text = (TextView)
v.findViewById(R.id.jerman);
TextView id_text = (TextView)
v.findViewById(R.id.indonesia);
des_text.setText(jerman);
id_text.setText(indonesia);
22 | Android Database SQLITE
21. ANDROID FAST TRACK AGUS HARYANTO
if (name_text != null) {
name_text.setText(inggris);
}
}
}
}
10. Rubah bagian yang bercetak tebal pada AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
package="net.agusharyanto.kamus"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.agusharyanto.kamus.DaftarKata"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
11. Sekarang mari kita Run projectnya.
23 | Android Database SQLITE
22. ANDROID FAST TRACK
12. Kita sudah sukses menampilkan daftar kata, selanjutnya kita
akan menyedian form untuk menambahkan kata.
13. Buat layout baru dengan nama tambahkata.xml selanjutnya
ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
24 | Android Database SQLITE
27. ANDROID FAST TRACK AGUS HARYANTO
16. Sekarang mari kita run projectnya.
17. Bagaimana melihat hasilnya ? apa harus rubah AndroidMani
fest.xml. Cara yang lebih baik adalah dengan membuat menu yang
dapat mengakses form Terjemahan , Daftar Kata dan Tambah Kata
18. Buat Class baru dengan nama MenuActivity.java lalu ketikkan
kode berikut
package net.agusharyanto.kamus;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
29 | Android Database SQLITE
28. ANDROID FAST TRACK
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MenuActivity extends ListActivity {
String[] menuutama = new String[] { "Terjemah
Kata", "Tambah Kata",
"Daftar Kata", "Keluar Aplikasi" };
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Menset nilai array ke dalam list
adapater sehingga data pada array
// akan dimunculkan dalam list
this.setListAdapter(new
ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, menuutama));
}
@Override
/**method ini akan mengoveride method
onListItemClick yang ada pada class List Activity
* method ini akan d1ipanggil apabilai ada salah
satu item dari list menu yang dipilih
*/
protected void onListItemClick(ListView l, View
v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Menangkap nilai text yang dklik
Object o =
this.getListAdapter().getItem(position);
String pilihan = o.toString();
// Menampilkan hasil pilihan menu dalam
bentuk Toast
tampilkanPilihan(pilihan);
}
protected void tampilkanPilihan(String pilihan) {
try {
//Intent digunakan untuk sebagai
pengenal suatu activity
Intent i = null;
30 | Android Database SQLITE
29. ANDROID FAST TRACK AGUS HARYANTO
if (pilihan.equals("Terjemah Kata"))
{
i = new
Intent(this,MainActivity.class);
} else if (pilihan.equals("Tambah
Kata")) {
i = new Intent(this,
TambahKata.class);
} else if (pilihan.equals("Daftar
Kata")) {
i = new Intent(this,
DaftarKata.class);
} else if (pilihan.equals("Keluar
Aplikasi")) {
finish();
} else {
Toast.makeText(this,"Anda
Memilih: " + pilihan + " , Actionnya belum dibuat",
Toast.LENGTH_LONG).show();
}
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}
19. Pada AndroidManifet.xml rubah dan tambahkan yang bercetak
tebal
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
package="net.agusharyanto.kamus"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
31 | Android Database SQLITE
31. ANDROID FAST TRACK AGUS HARYANTO
20. Sekarang mari kita run projectnya
Klik masing-masing menu.
21. Sekarang kita melangkah kebagian Rubah data dan Hapus data.
Pasti kita memikirkan bagaiman cara menempatkan Edit dan Hapus
ini. Aha kita letakan saja di DaftarKata. Jadi ketika satu baris kata di
klik lama (long click) akan memunculkan menu edit dan hapus.
22. Buka file String.xml pada direktori value ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Kamus</string>
33 | Android Database SQLITE
34. ANDROID FAST TRACK
private SQLiteDatabase db = null;
private ListView listContent = null;
private static final int EDIT_ID = Menu.FIRST +
1;
private static final int DELETE_ID = Menu.FIRST +
2;
private Cursor kamusCursor = null;
CustomCursorAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbhelper = new DatabaseHelper(this);
setContentView(R.layout.daftarkata);
listContent = (ListView)
findViewById(R.id.list1);
isDataListView();
registerForContextMenu(listContent);
}
private void isDataListView() {
try {
db = dbhelper.getWritableDatabase();
kamusCursor = db.query("kamus", new
String[] { "_id", "inggris",
"indonesia", "jerman" },
"_id>0", null, null, null, null);
/*
* Create an array to specify the
fields we want to display in the
* list (only the
'inggris,indonesia,jerman' column in this case)
*/
String[] from = new String[] {
"inggris", "indonesia", "jerman" };
/*
* and an array of the fields we want
to bind those fieiplds to (in
* this case just the textView
'inggris,indonesia,jerman' from our
36 | Android Database SQLITE
35. ANDROID FAST TRACK AGUS HARYANTO
* new row.xml layout above)
*/
int[] to = new int[] { R.id.inggris,
R.id.indonesia, R.id.jerman };
/* Now create a simple cursor
adapter.. */
adapter = new
CustomCursorAdapter(this, R.layout.row, kamusCursor,
from, to);
// listView.setAdapter(adapter);
listContent.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (db != null && db.isOpen()) {
// db.close();
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
try {
kamusCursor.close();
} catch (Exception e) {
}
}
@Override
public void onCreateContextMenu(ContextMenu menu,
View v,
ContextMenu.ContextMenuInfo menuInfo)
{
menu.add(Menu.NONE, DELETE_ID, Menu.NONE,
"`Hapus")
.setIcon(R.drawable.ic_launcher
).setAlphabeticShortcut('e');
37 | Android Database SQLITE
36. ANDROID FAST TRACK
menu.add(Menu.NONE, EDIT_ID, Menu.NONE,
"Edit")
.setIcon(R.drawable.ic_launcher
).setAlphabeticShortcut('d');
}
@Override
public boolean onContextItemSelected(MenuItem
item) {
switch (item.getItemId()) {
case DELETE_ID:
AdapterView.AdapterContextMenuInfo
info = (AdapterView.AdapterContextMenuInfo) item
.getMenuInfo();
delete(info.id);
return (true);
case EDIT_ID:
AdapterView.AdapterContextMenuInfo
infox = (AdapterView.AdapterContextMenuInfo) item
.getMenuInfo();
Cursor ckamusCursor = db.rawQuery(
"SELECT _ID, inggris,
indonesia, jerman "
+ "FROM kamus
where _ID=" + infox.id, null);
ckamusCursor.moveToFirst();
edit(infox.id,
ckamusCursor.getString(1),
ckamusCursor.getString(2),
ckamusCursor.getString(3));
return (true);
}
return (super.onOptionsItemSelected(item));
}
private void edit(long id, String pinggris,
String pindonesia,
String pjerman) {
38 | Android Database SQLITE
37. ANDROID FAST TRACK AGUS HARYANTO
LayoutInflater inflater =
LayoutInflater.from(this);
View addView =
inflater.inflate(R.layout.edit, null);
EditText edinggris = (EditText)
addView.findViewById(R.id.inggris);
EditText edindonesia = (EditText)
addView.findViewById(R.id.indonesia);
EditText edjerman = (EditText)
addView.findViewById(R.id.jerman);
edinggris.setText(pinggris);
edindonesia.setText(pindonesia);
edjerman.setText(pjerman);
final DialogWrapper wrapper = new
DialogWrapper(addView);
final long xid = id;
/*
* wrapper.inggrisField.setText(pinggris);
*
wrapper.indonesiaField.setTag(pindonesia)
*/
new AlertDialog.Builder(this)
.setTitle(R.string.add_title)
.setView(addView)
.setPositiveButton(R.string.sav
e,
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog,
int whichButton) {
processEdit(wrapper, xid);
}
})
.setNegativeButton(R.string.can
cel,
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog,
int whichButton) {
//
39 | Android Database SQLITE
38. ANDROID FAST TRACK
ignore, just dismiss
}
}).show();
}
private void delete(final long rowId) {
if (rowId > 0) {
new AlertDialog.Builder(this)
.setTitle(R.string.delete
_title)
.setPositiveButton(R.stri
ng.ok,
new
DialogInterface.OnClickListener() {
public
void onClick(DialogInterface dialog,
int whichButton) {
processDelete(rowId);
}
})
.setNegativeButton(R.stri
ng.cancel,
new
DialogInterface.OnClickListener() {
public
void onClick(DialogInterface dialog,
int whichButton) {
/
/ ignore, just dismiss
}
}).show();
}
}
private void processEdit(DialogWrapper wrapper,
long id) {
ContentValues values = new
ContentValues(2);
values.put("inggris",
wrapper.getinggris());
values.put("indonesia",
40 | Android Database SQLITE
41. ANDROID FAST TRACK AGUS HARYANTO
public View newView(Context context, Cursor
cursor, ViewGroup parent) {
View v =
inflater.inflate(R.layout.row, parent, false);
return v;
}
@Override
public void bindView(View v, Context
context, Cursor c) {
// 1 is the column where you're
getting your data from
String inggris = c.getString(1);
String jerman = c.getString(3);
String indonesia = c.getString(2);
/**
* Next set the name of the entry.
*/
TextView name_text = (TextView)
v.findViewById(R.id.inggris);
TextView des_text = (TextView)
v.findViewById(R.id.jerman);
TextView id_text = (TextView)
v.findViewById(R.id.indonesia);
des_text.setText(jerman);
id_text.setText(indonesia);
if (name_text != null) {
name_text.setText(inggris);
}
}
}
}
43 | Android Database SQLITE
42. ANDROID FAST TRACK
25. Sekarang mari kita run projectnya
Lakukan skenario seperti ini.
• Pilih salah satu data lalu tekan yang lama lalu Edit, akan muncul
jendela edit.
• Pilih salah satu data lalu tekan yang lama pada data tersebut akan
muncul context menu, pilihlah hapus
Hore, kita telah berhasil membuat aplikasi database sqlite pada an
droid yang didalamanya sudah mencakup fungsi Create Read Update
Delete (CRUD).
44 | Android Database SQLITE
44. PENUTUP
SEMANGAT
Setelah memnyelesaikan materi yang ada dibuku ini, berarti kita
sudah punya modal dasar untuk membuat aplikasi android sendiri.
Disini kita sudah mempelajari tentang
• Dasar pembuatan project android
• Dasar Layout dan viewnya
• Aplikasi Android CRUD SQLite (Kamus)
• Aplikasi Peta dengan Android Googlemaps API V2 (PetaLokasi)
• Aplikasi CRUD PHP MySQL (Smartphone Price)
Ilmu itu harus sering dilatih agar semakin mantap penguasaanya dan
kita semkin produktif. Tanpa sering latihan janganlah kita bermimpi
jadi programmer hebat dan produktif. Jadi harus semangat.
SEMINAR WORKSHOP ANDROID
Untuk kampus atau sekolah yang berminat mengadakan seminar
atau workshop android atau lainnya bisa hubungi saya di email
agus.superwriter@gmail.com ,twitter @agus_inovator atau di
08551000444 / 089617122766. Khusus untuk luar kota biaya
transportasi dan akomodasi ditanggung penyelenggara acara.
5
45. ANDROID FAST TRACK
REFERENSI
Untuk buku Android Fast Track ini, saya menggunakan referensi dari
– http://developerandroid.com
– http://stackoverflow.com
– http://vogella.com
– http://mobile.tutplus.com
– Beginning Android 4 Application Development – Wei Meng Lee
48 | Penutup