Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 1
Praktikum XIV
Aplikasi dengan Database SQLite
Pokok bahasan:
• Database SQLite
• Proses CrUD (Create, Update, Delete)
Tujuan Belajar:
Setelah mempelajari modul ini mahasiswa diharapkan mengetahui:
• Proses penyimpanan pada sqlite
• Membuat aplikasi menggunakan sqlite secara sederhana
Teori Dasar
SQLite database
Android telah menyediakan suatu database yang disebut SQLite untuk menyimpan data dengan
model basis data relasional. Aplikasi-aplikasi tertentu yang membutuhkan data secara
terstruktur tentu akan sangat terbantu dengan adanya SQLite ini. Aplikasi yang biasanya
menggunakan data yang terstruktur misalnya aplikasi kamus, buku telepon dan sebagainya.
Sqlite merupakan lighweight database application yang cukup ideal untuk aplikasi mobile.
Kelas-kelas yang terdapat di aplikasi yang menggunakan SQLite
a. SQLite Database
Merupakan kelas yang mempunyai metode seperti:
• Insert(), meambahkan baris ke database
• Update(), memperbarui baris pada database
• Delete(), menghapus baris pada database
• execSQL(), untuk mengeksekusi sintak SQL
b. SQLiteOpenHelper
Merupakan sub kelas yang memiliki beberapa metode seperti:
• onCreate(), dijalankan jika sebelumnya belum tersedia database
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 2
• onUpgrade(), dijalankan jika sebelumnya sudah ditemukan database yang sama
namun beda versi. Metode ini bisa digunakan untuk mengubah skema database.
• onOpen(), dijalankan jika database sudah dalam keadaan terbuka
• getWriteDatabase(), berfungsi untuk memanggil database agar bisa dimasuki
data.
• getReadableDatabase(), berfungsi untuk memanggil database agar bisa
membaca datanya.
Cursor
Cursor mempresentasikan hasil query yang dieksekusi pada baris dan kolom tertentu. Contoh di
bawah merupakan ilustrasi mengenai kursor
[Melly, Bekasi] �
Nama Kota
jarwo Bekasi
Tusam Jakarta
Fitri Jogjakarta
Metode yang digunakan pada praktikum ini antara lain:
• moveToFirst(), pindah ke baris pertama
• isAfterLast(), mengirim pesan balik jika posisi kursor sudah berada di baris terakhir.
• getLong(), untuk mengambil data pada kolom yang mempunyai tipe data long
• getString(), untuk mengambil data pada kolom yang mempunyai tipe data string.
Project pada modul ini adalah membuat aplikasi Android untuk memasukkan nama dan hobi ke
dalam form android yang akan diisikan ke database.
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 3
mainActivity.java
package com.datahobi; import java.util.ArrayList;
import com.db.satu.R;
import android.app.Activity; import android.os.Bundle; import android.view.View;
import android.widget.Button; import android.widget.EditText; import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView; import android.widget.Toast;
public class MainActivity extends Activity { DatabaseManager dm;
EditText nama, hobi; Button addBtn;
TableLayout tabel4data;// tabel for data
/** Called when the activity is first created. */ @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
dm = new DatabaseManager(this); tabel4data = (TableLayout) findViewById(R.id.tabel_data);
nama = (EditText) findViewById(R.id.inNama); hobi = (EditText) findViewById(R.id.inHobi); addBtn = (Button) findViewById(R.id.btnAdd);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// TODO Auto-generated method stub simpanData(); }
}); updateTable(); }
protected void simpanData() { // TODO Auto-generated method stub
try {
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 4
dm.TambahRow(nama.getText().toString(), hobi.getText().toString());
Toast.makeText(getBaseContext(), nama.getText().toString() + ", berhasil disimpan", Toast.LENGTH_SHORT).show();
updateTable();
kosongkanField(); } catch (Exception e) {
// TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(getBaseContext(), "gagal simpan, " +
e.toString(), Toast.LENGTH_LONG).show();
}
}
protected void kosongkanField() { nama.setText(""); hobi.setText("");
} protected void updateTable() {
// TODO Auto-generated method stub while (tabel4data.getChildCount() > 1) { tabel4data.removeViewAt(1);
}
double aa = tabel4data.getChildCount(); String a = String.valueOf(aa);
Toast.makeText(getBaseContext(), "tabel data child : " + a, Toast.LENGTH_SHORT).show();
ArrayList<ArrayList<Object>> data = dm.ambilSemuaBaris();// for (int posisi = 0; posisi < data.size(); posisi++) {
TableRow tabelBaris = new TableRow(this); ArrayList<Object> baris = data.get(posisi);
TextView idTxt = new TextView(this); idTxt.setText(baris.get(0).toString()); tabelBaris.addView(idTxt);
TextView namaTxt = new TextView(this); namaTxt.setText(baris.get(1).toString());
tabelBaris.addView(namaTxt); TextView hobiTxt = new TextView(this);
hobiTxt.setText(baris.get(2).toString()); tabelBaris.addView(hobiTxt);
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 5
tabel4data.addView(tabelBaris);
} } }
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 6
DatabaseManager,java
package com.datahobi;
import java.util.ArrayList;
import android.content.ContentValues; import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log;
public class DatabaseManager {
private static final String ROW_ID = "_id";
private static final String ROW_NAMA = "nama"; private static final String ROW_HOBI = "hobi";
private static final String NAMA_DB = "Databasehobi";// nama database private static final String NAMA_TABEL = "hobiku"; // nama tabel
private static final int DB_VERSION =1; //CREATE TABLE hobiku (_id integer PRIMARY KEY autoincrement, nama text,hobi text)
private static final String CREATE_TABLE = "create table "+NAMA_TABEL+" ("+ROW_ID+" integer PRIMARY KEY autoincrement, "+ROW_NAMA+" text,"+ROW_HOBI+"
text)";
private final Context context;
private DatabaseOpenHelper dbHelper; private SQLiteDatabase db;
public DatabaseManager(Context ctx) { this.context = ctx; dbHelper = new DatabaseOpenHelper(context);
db = dbHelper.getWritableDatabase();
}
private static class DatabaseOpenHelper extends SQLiteOpenHelper { public DatabaseOpenHelper(Context context) {
super(context, NAMA_DB, null, DB_VERSION); // TODO Auto-generated constructor stub
}
@Override public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub db.execSQL(CREATE_TABLE); }
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 7
@Override
public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) { // TODO Auto-generated method stub"DROP TABLE IF EXISTS
titles"
db.execSQL("DROP TABLE IF EXISTS "+NAMA_DB); onCreate(db);
} }
public void close() { dbHelper.close(); }
public void TambahRow(String nama, String hobi) {
ContentValues values = new ContentValues(); values.put(ROW_NAMA, nama); values.put(ROW_HOBI, hobi);
try {
// db.delete(NAMA_TABEL, null, null); db.insert(NAMA_TABEL, null, values);
} catch (Exception e) { Log.e("DB ERROR", e.toString()); e.printStackTrace();
} }
public ArrayList<ArrayList<Object>> ambilSemuaBaris() { ArrayList<ArrayList<Object>> dataArray = new ArrayList<ArrayList<Object>>();
Cursor cur; try { cur = db.query(NAMA_TABEL,
new String[] { ROW_ID, ROW_NAMA, ROW_HOBI },
null, null, null, null, null);
cur.moveToFirst(); if (!cur.isAfterLast()) { do {
ArrayList<Object> dataList = new ArrayList<Object>();
dataList.add(cur.getLong(0));
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 8
dataList.add(cur.getString(1)); dataList.add(cur.getString(2));
dataArray.add(dataList);
} while (cur.moveToNext());
}
} catch (Exception e) { // TODO Auto-generated catch block
e.printStackTrace(); Log.e("DEBE ERROR", e.toString());
}
return dataArray; }
}
Tambahkan script pada string.xml menjadi seperti di bawah ini
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="hello">Masukkan nama dan hobi</string> <string name="app_name">Database nama dan hobby</string>
<string name="btnAddtxt">Tambah Data</string> <string name="namaLabel">Nama</string> <string name="hobiLabel">hobi</string>
<string name="nomorLabel">No.</string>
</resources>
Modul Praktikum Pemrograman IV -adam_ab-2014 Hal 9
Tambahkan script mainactivity layout menjadi seperti di bawah ini
<?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="@string/hello" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
android:id="@+id/linearLayout1"> <EditText android:id="@+id/inNama" android:layout_height="wrap_content"
android:layout_width="100dip"></EditText>
<EditText android:id="@+id/inHobi" android:layout_height="wrap_content"
android:layout_width="100dip"></EditText> <Button android:layout_width="wrap_content" android:id="@+id/btnAdd"
android:layout_height="wrap_content" android:text="@string/btnAddtxt"></Button>
</LinearLayout>
<TableLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/tabel_data"> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content"
android:layout_height="wrap_content"> <TextView android:layout_height="wrap_content" android:layout_width="50dip"
android:text="@string/nomorLabel" android:id="@+id/no_id"></TextView> <TextView android:layout_height="wrap_content"
android:layout_width="100dip" android:text="@string/namaLabel"
android:id="@+id/nama_id"></TextView>
<TextView android:layout_width="100dip" android:layout_height="wrap_content" android:text="@string/hobiLabel"
android:id="@+id/hobi_id"></TextView> </TableRow> </TableLayout>
</LinearLayout>
Modul Praktikum Pemrograman IV
Jalankan aplikasi tersebut
Pemrograman IV -adam_ab-2014
Data ditambah anto
Hal 10
Modul Praktikum Pemrograman IV
Database dibuka dengan SQLite database Browser
Pemrograman IV -adam_ab-2014
SQLite database Browser
Hal 11
Top Related