Page 1
Sekolah : SMK PGRI 2 Ponorogo
Bid.Studi Keah : T. Informasi &
Komnksi
Prg. StudiKeah : T. Komp & Informatika
Kmp. StudiKeah : RPL
Kode : 070
Hari/Tgl : / 201
Kompetensi :
Pemrograman Perangkat
Bergerak
Sub Kompetensi :
Android SQLite - create, read,
update, delete (CRUD)
Jobsheet : CRUD
Nama Peserta Didik :
Kelas : XII RPL ….
No. Absen : ( )
Instruktur : .....
Nilai :
I. Tujuan
1) Peserta didik akan mampu melakukan tugas/pekerjaan upload file dengan database
2) Peserta didik akan mampu melakukan konfigurasi database
II. Alat Dan Bahan
Untuk menunjang kelancaran tugas yang akan dilakukan, maka persiapkanlah seluruh perlengkapan
yang diperlukan sesuai dengan jenis tugas pada masing-masing kegiatan pemelajaran, diantaranya :
1) PC / Laptop
2) Eclips / Netbeans
3) SQLite / MySQL
III. Materi
Berikut merupakan kelebihan dan kekurangan yang dapat disimpulkan menggunakan SQLite
atau menggunakan MySQL.
Kelebihan SQLite :
Tidak mememerlukan pihak ketiga untuk mengakses data
Karena database ini bersifat portabel, maka aplikasi ini bisa langsung disatukan dengan
aplikasi yang sering disebut dengan embed
Sangat cocok digunakan pada aplikasi yang tidak terhubung dengan Internet, baik aplikasi
dekstop atau aplikasi mobile
Kekurangan SQLite :
Karena aplikasi ini langsung terhubung pada aplikasi tanpa menggunakan perantara,
sehingga SQLite ini biasa digunakan untuk menyimpan data yang sedikit atau data
temporary, misalnya game yang hanya menyimpan informasi skor pemenang.
SQLite tidak menggunakan User Management, yang artinya jika mendapatkan file database,
bisa saja langsung dibuka tanpa menggunakan username atau password
Tidak semua perintah query bisa dilakukan pada SQLite ini
Dimisalkan programmer ingin membuat aplikasi sebuah game yang sama tetapi pada beda
platform, misalnya android, iphone dan blackberry. Maka programmer harus membuat
database pada masing-masing platform tersebut
Page 2
Kelebihan MySql :
Database ini memiliki keamanan yang lebih baik, karena saat mengakses harus
menggunakan username dan password
Memiliki perintah query yang lengkap
Jika membuat banyak aplikasi dengan berbagai platform, cukup mengakses satu database
saja
Bisa menyimpan data yang sangat banyak dan diakses dengan cepat (tergantung dari query
yang digunakan)
Kekurangan Mysql :
Installasi yang lebih rumit dari SQLite
Harus memiliki Server yang menghubungkan database dengan aplikasi
Jika menggunakan Android, maka android harus tekoneksi ke server (biasanya
menggunakan internet). Karena untuk mengakses dari Android ke MySql harus melalui PHP
IV. Langkah Kerja
Untuk memudahkan melihat hasil dari pekerjaan selanjutnya, saya sarankan menginstall
sqlite manager pada eclipse :
Download SQLite Manager_1.0.0.jar
Letakkan SQLite Manager pada folder dopins (lokasi eclipse / dropin /
sqlitemanager_1.0.0.jar)
Pada Eclipse, buka Windows -> Show View -> Other -> File Explorer
Page 3
Jika emalator belum dijalankan, pada File Explorer akan kosong, pastikan emulator sudah
dijalankan jika ingin melihat tampilan seperti di atas.
Membuat Project CRUD_SQLITE
Buka Eclipse, lalu klik file->New->Other->Android->Android Application Project
Isikan pada masing-masing Field (untuk bagian field lain boleh dibuat sesuai keinginan
masing-masing) :
Application Name :CRUD_SQLITE
Package Name : jhointegrity.com
Activity : MainActivity
Membuat database_pemain.db, tabel_biodata dan uji coba memasukkan Data
Untuk melakukan pengujian ini, data yang digunakan belum menggunakan user interface,
sehingga data yang dimasukkan masih menggunakan data yang dimasukkan manual.
Buat sebuah file beri dengan nama SQLiteHelper.java
Pada SQLiteHelper.java, masukkan source code berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
package jhointegrity.com;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLiteHelper extends SQLiteOpenHelper {
private static final String nama_database = "database_pemain.db";
private static final int versi_database = 1;
private static final String query_buat_tabel_biodata_pemain = "CREATE
TABLE IF NOT EXISTS tabel_biodata(id_biodata INTEGER PRIMARY KEY
AUTOINCREMENT, nama TEXT,alamat TEXT)";
Page 4
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private static final String query_hapus_tabel_biodata_pemain = "DROP
TABLE IF EXISTS query_buat_tabel_biodata_pemain";
public SQLiteHelper(Context context) {
super(context, nama_database, null, versi_database);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(query_buat_tabel_biodata_pemain);
System.out.println("tabel_biodata sudah dibuat");
}
@Override
public void onUpgrade(SQLiteDatabase database, int versi_lama,
int versi_baru) {
database.execSQL(query_hapus_tabel_biodata_pemain);
onCreate(database);
}
public void tambah_biodata(String nama, String alamat) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("nama", nama);
values.put("alamat", alamat);
database.insert("tabel_biodata", null, values);
database.close();
}
Page 5
}
Pada MainActivity.java :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package jhointegrity.com;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// tambah_biodata(nama, alamat)
sqLiteHelper.tambah_biodata("jho", "Medan");
sqLiteHelper.tambah_biodata("jhohannes", "Kabanjahe");
sqLiteHelper.tambah_biodata("purba", "Padang Bulan");
}
}
Jika dijalankan, Hasilnya bisa dilihat pada File Explorer->data->data->jhointegrity.com-
>databases->database_pemain.db
Page 6
Arahkan kursor pada database_pemain.db, lalu klik SQLite Manager.
Perhatikan pada source code, saya hanya memasukkan nama dan alamat saja, tetapi pada
tabel otomatis memiliki nomor pada id_biodata, ini terjadi karena saat membuat tabel saya
membuat field id_biodata AUTOINCREMENT, Sehingga SQLite otomatis membuat nomor.
Jika baru memasukkan data, tetapi tidak ada perubahan, coba close Questiod SQLite
Manager, dan buka kembali dari File Explorer
Uji Coba Menampilkan Data
Untuk menampilkan data silahkan tambahkan method tampil_semua_biodata pada file
SQLiteHelper.java
public ArrayList<HashMap<String, String>> tampil_semua_biodata() {
// deklarasikan sebuah arraylist yang bisa menampung hashmap
ArrayList<HashMap<String, String>> arrayListBiodata = new
ArrayList<HashMap<String, String>>();
SQLiteDatabase database = this.getWritableDatabase();
Page 7
Cursor cursor = database.rawQuery("SELECT * FROM tabel_biodata", null);
// kursor langsung diarkan ke posisi paling awal data pada tabel_biodata
if (cursor.moveToFirst()) {
do {
// deklarasikan sebuah hashmap, yang bisa menamp
HashMap<String, String> hashMapBiodata = new HashMap<String,
String>();
// masukkan masing-masing field dari tabel_biodata ke dalam
hashMapBiodata
//pastikan id_biodata, nama dan alamat sama persis dengan field
yang ada pada tabel_biodata
hashMapBiodata.put("id_biodata", cursor.getString(0));
hashMapBiodata.put("nama", cursor.getString(1));
hashMapBiodata.put("alamat", cursor.getString(2));
// masukkan hashMapBiodata ke dalam arrayListBiodata
arrayListBiodata.add(hashMapBiodata);
} while (cursor.moveToNext());
}
return arrayListBiodata;
}
Pada MainActivity.java
1
2
package jhointegrity.com;
Page 8
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// tambah_biodata(nama, alamat)
// sqLiteHelper.tambah_biodata("jho", "Medan");
// sqLiteHelper.tambah_biodata("jhohannes", "Kabanjahe");
// sqLiteHelper.tambah_biodata("purba", "Padang Bulan");
// menampilkan biodata
ArrayList<HashMap<String, String>> arrayListBiodata = sqLiteHelper
.tampil_semua_biodata();
if (arrayListBiodata.size() > 0) {
for (int i = 0; i < arrayListBiodata.size(); i++) {
//ambil masing-masing hasmap dari arrayListBiodata
Page 9
32
33
34
35
36
37
38
39
40
41
42
43
HashMap<String, String> hashMapRecordBiodata =
arrayListBiodata.get(i);
System.out.println(
"ID Biodata : " +
hashMapRecordBiodata.get("id_biodata") +
" Nama : " +
hashMapRecordBiodata.get("nama") +
" Alamat : " +
hashMapRecordBiodata.get("alamat"));
}
}
}
}
Untuk Hasilnya dapat dilihat pada logcat (Window -> Show View -> Other -> Android -
LogCat)
Uji Coba Update Data
Tambahkan method berikut pada file SQLiteHelper.java
public int update_biodata(int id, String nama, String alamat) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues recordBiodata = new ContentValues();
recordBiodata.put("nama", nama);
recordBiodata.put("alamat", alamat);
Page 10
return database.update("tabel_biodata", recordBiodata, "id_biodata=" + id,
null);
}
Pada MainActivity.java ganti menjadi :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package jhointegrity.com;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// update_biodata(id_biodata, nama, alamat)
int status_update = sqLiteHelper.update_biodata(1, "Jhohannes H
Purba", "Medan");
if (status_update == 1) {
System.out.println("Update Berhasil");
} else {
System.out.println("Update Gagal");
}
}
Page 11
24 }
Hasilnya bisa dilihat pada tabel_biodata
Uji Coba Hapus Data
Tambahkan method hapus_biodata pada file SQLiteHelper.java
public void hapus_biodata(int id) {
SQLiteDatabase database = this.getWritableDatabase();
database.execSQL("DELETE FROM tabel_biodata WHERE id_biodata='" + id+ "'");
database.close();
}
Pada MainActivity.java ganti menjadi :
1
2
3
4
5
6
7
package jhointegrity.com;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
Page 12
8
9
10
11
12
13
14
15
16
17
18
SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// hapus_biodata(id_biodata)
sqLiteHelper.hapus_biodata(1);
}
}
Hasilnya akan kelihatan seperti berikut :
Ambil data berdasarkan ID
Untuk mengambil data berdasarkan id ini tidak saya lakukan uji coba, karena prinsip
menampilkannya sama saja seperti menampilkan semua biodata. untuk methodnya silahkan
isi seperti berikut :
public HashMap<String, String> tampil_biodata_berdasarkan_id(int id) {
SQLiteDatabase database = this.getReadableDatabase();
HashMap<String, String> hashMapBiodata = new HashMap<String, String>();
Page 13
Cursor cursor = database.rawQuery("SELECT * FROM tabel_biodata WHERE
id_biodata=" + id + "", null);
if (cursor.moveToFirst()) {
do {
hashMapBiodata.put("id_biodata", cursor.getString(0));
hashMapBiodata.put("nama", cursor.getString(1));
hashMapBiodata.put("alamat", cursor.getString(2));
} while (cursor.moveToNext());
}
return hashMapBiodata;
}
SQLiteHelper.java
Isi keseluruhan file SQLiteHelper.java akan menadi seprti berikut :
1
2
3
4
5
6
7
8
9
10
11
12
package jhointegrity.com;
import java.util.ArrayList;
import java.util.HashMap;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLiteHelper extends SQLiteOpenHelper {
Page 14
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private static final String nama_database = "database_pemain.db";
private static final int versi_database = 1;
private static final String query_buat_tabel_biodata_pemain = "CREATE TABLE
IF NOT EXISTS tabel_biodata(id_biodata INTEGER PRIMARY KEY AUTOINCREMENT,
nama TEXT,alamat TEXT)";
private static final String query_hapus_tabel_biodata_pemain = "DROP TABLE
IF EXISTS query_buat_tabel_biodata_pemain";
public SQLiteHelper(Context context) {
super(context, nama_database, null, versi_database);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(query_buat_tabel_biodata_pemain);
System.out.println("tabel_biodata sudah dibuat");
}
@Override
public void onUpgrade(SQLiteDatabase database, int versi_lama, int versi_baru)
{
database.execSQL(query_hapus_tabel_biodata_pemain);
onCreate(database);
}
public void tambah_biodata(String nama, String alamat) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
Page 15
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
values.put("nama", nama);
values.put("alamat", alamat);
database.insert("tabel_biodata", null, values);
database.close();
}
public ArrayList<HashMap<String, String>> tampil_semua_biodata() {
SQLiteDatabase database = this.getWritableDatabase();
// deklarasikan sebuah arraylist yang bisa menampung hashmap
ArrayList<HashMap<String, String>> arrayListBiodata = new
ArrayList<HashMap<String, String>>();
Cursor cursor = database.rawQuery("SELECT * FROM tabel_biodata",
null);
// kursor langsung diarkan ke posisi paling awal data pada tabel_biodata
if (cursor.moveToFirst()) {
do {
// deklarasikan sebuah hashmap, yang bisa menamp
HashMap<String, String> hashMapBiodata = new
HashMap<String, String>();
// masukkan masing-masing field dari tabel_biodata ke
dalamhashMapBiodata
// pastikan id_biodata, nama dan alamat sama persis
dengan field yang ada pada tabel_biodata
hashMapBiodata.put("id_biodata", cursor.getString(0));
hashMapBiodata.put("nama", cursor.getString(1));
hashMapBiodata.put("alamat", cursor.getString(2));
Page 16
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// masukkan hashMapBiodata ke dalam arrayListBiodata
arrayListBiodata.add(hashMapBiodata);
} while (cursor.moveToNext());
}
return arrayListBiodata;
}
public int update_biodata(int id, String nama, String alamat) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues recordBiodata = new ContentValues();
recordBiodata.put("nama", nama);
recordBiodata.put("alamat", alamat);
return database.update("tabel_biodata", recordBiodata, "id_biodata="
+ id, null);
}
public void hapus_biodata(int id) {
SQLiteDatabase database = this.getWritableDatabase();
database.execSQL("DELETE FROM tabel_biodata WHERE id_biodata='"
+ id+ "'");
database.close();
}
public HashMap<String, String> tampil_biodata_berdasarkan_id(int id) {
SQLiteDatabase database = this.getReadableDatabase();
Page 17
100
101
102
103
104
105
HashMap<String, String> hashMapBiodata = new HashMap<String,
String>();
Cursor cursor = database.rawQuery("SELECT * FROM tabel_biodata
WHERE id_biodata=" + id + "", null);
if (cursor.moveToFirst()) {
do {
hashMapBiodata.put("id_biodata", cursor.getString(0));
hashMapBiodata.put("nama", cursor.getString(1));
hashMapBiodata.put("alamat", cursor.getString(2));
} while (cursor.moveToNext());
}
return hashMapBiodata;
}
}
CRUD dengan User Interface
main.xml
1
2
3
4
5
6
7
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical"
Page 18
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
tools:context=".MainActivity" >
<Button
android:id="@+id/buttonTambahBiodata"
android:layout_width="186dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Tambah Biodata" />
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ScrollView
android:id="@+id/verticalScrollView"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<TableLayout
android:id="@+id/tableBiodata"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TableLayout>
</ScrollView>
</HorizontalScrollView>
</LinearLayout>
Page 19
MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package jhointegrity.com;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.ViewPager.LayoutParams;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
TableLayout tabelBiodata;
Button buttonTambahBiodata;
Page 20
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ArrayList<Button> buttonEdit = new ArrayList<Button>();
ArrayList<Button> buttonDelete = new ArrayList<Button>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabelBiodata = (TableLayout) findViewById(R.id.tableBiodata);
buttonTambahBiodata = (Button)
findViewById(R.id.buttonTambahBiodata);
buttonTambahBiodata.setOnClickListener(this);
TableRow barisTabel = new TableRow(this);
barisTabel.setBackgroundColor(Color.RED);
TextView viewHeaderId = new TextView(this);
TextView viewHeaderNama = new TextView(this);
TextView viewHeaderAlamat = new TextView(this);
TextView viewHeaderAction = new TextView(this);
viewHeaderId.setText("ID");
viewHeaderNama.setText("Nama");
viewHeaderAlamat.setText("Alamat");
viewHeaderAction.setText("Action");
viewHeaderId.setPadding(5, 1, 5, 1);
viewHeaderNama.setPadding(5, 1, 5, 1);
viewHeaderAlamat.setPadding(5, 1, 5, 1);
Page 21
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
viewHeaderAction.setPadding(5, 1, 5, 1);
barisTabel.addView(viewHeaderId);
barisTabel.addView(viewHeaderNama);
barisTabel.addView(viewHeaderAlamat);
barisTabel.addView(viewHeaderAction);
tabelBiodata.addView(barisTabel, new TableLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
ArrayList<HashMap<String, String>> arrayListBiodata = sqLiteHelper
.tampil_semua_biodata();
if (arrayListBiodata.size() > 0) {
for (int i = 0; i < arrayListBiodata.size(); i++) {
// ambil masing-masing hasmap dari arrayListBiodata
HashMap<String, String> hashMapRecordBiodata =
arrayListBiodata
.get(i);
// JSONObject jsonChildNode =
arrayBiodata.getJSONObject(i);
String name = hashMapRecordBiodata.get("nama");
String alamat = hashMapRecordBiodata.get("alamat");
String id = hashMapRecordBiodata.get("id_biodata");
System.out.println("Nama :" + name);
Page 22
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
System.out.println("Alamat :" + alamat);
System.out.println("ID :" + id);
barisTabel = new TableRow(this);
if (i % 2 == 0) {
barisTabel.setBackgroundColor(Color.LTGRAY);
}
TextView viewId = new TextView(this);
viewId.setText(id);
viewId.setPadding(5, 1, 5, 1);
barisTabel.addView(viewId);
TextView viewNama = new TextView(this);
viewNama.setText(name);
viewNama.setPadding(5, 1, 5, 1);
barisTabel.addView(viewNama);
TextView viewAlamat = new TextView(this);
viewAlamat.setText(alamat);
viewAlamat.setPadding(5, 1, 5, 1);
barisTabel.addView(viewAlamat);
buttonEdit.add(i, new Button(this));
buttonEdit.get(i).setId(Integer.parseInt(id));
buttonEdit.get(i).setTag("Edit");
buttonEdit.get(i).setText("Edit");
buttonEdit.get(i).setOnClickListener(this);
Page 23
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
barisTabel.addView(buttonEdit.get(i));
buttonDelete.add(i, new Button(this));
buttonDelete.get(i).setId(Integer.parseInt(id));
buttonDelete.get(i).setTag("Delete");
buttonDelete.get(i).setText("Delete");
buttonDelete.get(i).setOnClickListener(this);
barisTabel.addView(buttonDelete.get(i));
tabelBiodata.addView(barisTabel, new
TableLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
}
}
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.buttonTambahBiodata) {
// Toast.makeText(MainActivity.this, "Button Tambah Data",
// Toast.LENGTH_SHORT).show();
tambahBiodata();
} else {
Page 24
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/*
* Melakukan pengecekan pada data array, agar sesuai dengan
index
* masing-masing button
*/
for (int i = 0; i < buttonEdit.size(); i++) {
/* jika yang diklik adalah button edit */
if (view.getId() == buttonEdit.get(i).getId()
&&
view.getTag().toString().trim().equals("Edit")) {
// Toast.makeText(MainActivity.this, "Edit : " +
// buttonEdit.get(i).getId(),
Toast.LENGTH_SHORT).show();
int id = buttonEdit.get(i).getId();
getDataByID(id);
} /* jika yang diklik adalah button delete */
else if (view.getId() == buttonDelete.get(i).getId()
&&
view.getTag().toString().trim().equals("Delete")) {
// Toast.makeText(MainActivity.this, "Delete : " +
// buttonDelete.get(i).getId(),
Toast.LENGTH_SHORT).show();
int id = buttonDelete.get(i).getId();
deleteBiodata(id);
}
}
}
Page 25
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
}
public void deleteBiodata(int id) {
sqLiteHelper.hapus_biodata(id);
/* restart acrtivity */
finish();
startActivity(getIntent());
}
public void getDataByID(int id) {
String namaEdit = null, alamatEdit = null;
HashMap<String, String> hashMapBiodata = sqLiteHelper
.tampil_biodata_berdasarkan_id(id);
for (int i = 0; i < hashMapBiodata.size(); i++) {
namaEdit = hashMapBiodata.get("nama");
alamatEdit = hashMapBiodata.get("alamat");
}
LinearLayout layoutInput = new LinearLayout(this);
layoutInput.setOrientation(LinearLayout.VERTICAL);
// buat id tersembunyi di alertbuilder
final TextView viewId = new TextView(this);
Page 26
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
viewId.setText(String.valueOf(id));
viewId.setTextColor(Color.TRANSPARENT);
layoutInput.addView(viewId);
final EditText editNama = new EditText(this);
editNama.setText(namaEdit);
layoutInput.addView(editNama);
final EditText editAlamat = new EditText(this);
editAlamat.setText(alamatEdit);
layoutInput.addView(editAlamat);
AlertDialog.Builder builderEditBiodata = new AlertDialog.Builder(this);
builderEditBiodata.setTitle("Update Biodata");
builderEditBiodata.setView(layoutInput);
builderEditBiodata.setPositiveButton("Update",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
String nama =
editNama.getText().toString();
String alamat =
editAlamat.getText().toString();
System.out.println("Nama : " + nama + "
Alamat : "
+ alamat);
Page 27
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
sqLiteHelper.update_biodata(Integer.parseInt(viewId
.getText().toString()),
editNama.getText()
.toString(),
editAlamat.getText().toString());
/* restart acrtivity */
finish();
startActivity(getIntent());
}
});
builderEditBiodata.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
dialog.cancel();
}
});
builderEditBiodata.show();
}
public void tambahBiodata() {
/* layout akan ditampilkan pada AlertDialog */
LinearLayout layoutInput = new LinearLayout(this);
layoutInput.setOrientation(LinearLayout.VERTICAL);
Page 28
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
final EditText editNama = new EditText(this);
editNama.setHint("Nama");
layoutInput.addView(editNama);
final EditText editAlamat = new EditText(this);
editAlamat.setHint("Alamat");
layoutInput.addView(editAlamat);
AlertDialog.Builder builderInsertBiodata = new AlertDialog.Builder(this);
builderInsertBiodata.setTitle("Insert Biodata");
builderInsertBiodata.setView(layoutInput);
builderInsertBiodata.setPositiveButton("Insert",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
String nama =
editNama.getText().toString();
String alamat =
editAlamat.getText().toString();
System.out.println("Nama : " + nama + "
Alamat : "
+ alamat);
sqLiteHelper.tambah_biodata(nama,
alamat);
/* restart acrtivity */
finish();
Page 29
startActivity(getIntent());
}
});
builderInsertBiodata.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
dialog.cancel();
}
});
builderInsertBiodata.show();
}
}