Top Banner
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
30

JOB Android SQLite 1

Dec 07, 2015

Download

Documents

Yusy Dwi

Eclips
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JOB Android SQLite 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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

}

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

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: JOB Android SQLite 1

startActivity(getIntent());

}

});

builderInsertBiodata.setNegativeButton("Cancel",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int

which) {

dialog.cancel();

}

});

builderInsertBiodata.show();

}

}