Anda di halaman 1dari 20

1 SQLite Android

1.1. Pengenalan SQLite Android


SQLite itu merupakan sebuah Database yang bersifat ACIDcompliant dan memiliki ukuran pustaka kode yang relatif kecil,
ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat
public domain yang dikerjakan oleh D. Richard Hipp. SQLite
adalah sebuah open source database yang telah ada cukup lama,
cukup stabil, dan sangat terkenal pada perangkat kecil, termasuk
Android. Android menyediakan database relasional yang ringan
untuk setiap aplikasi menggunakan SQLite. Aplikasi dapat
mengambil keuntungan dari itu untuk mengatur relational
database engine untuk menyimpan data secara aman dan
efisien.
1.1.1.
Teknik Penyimpanan pada Android
Dalam sistem android memiliki beberapa teknik untuk melakukan
penyimpanan data. Teknik yang umum di gunakan adalah
sebagai berikut :
- Shared Preferences, yaitu menyimpan data beberapa
nilai (value) dalam bentuk groups key yang dikenal dengan
preferences.
- Files, yaitu menyimpan data dalam bentuk file, dapat
berupa menulis ke file atau membaca dari file.
- SQLite Database, yaitu menyimpan data dalam bentuk
Databases.
- Content Providers, yaitu menyimpan data dalam bentuk
content providers service.
Pada bagian ini kita akan fokus membahas bagian databases.
Tidak ada database yang otomatis disediakan oleh android, jika
kita menggunakn SQLite kita harus meng-create database
sendiri, mendefinisikan tabelnya, serta index dan datanya. Untuk
membuat dan membuka database yang paling baik adalah
menggunakan libraries.
Importantandroid.database.sqlite.SQLiteOpenHelper
yang menyediakan 3 (tiga) metode yaitu :
1. Constructor, menyediakan representasi versi dari
database dan skema database yang kita gunakan.
2. onCreate(), menyediakan SQLiteDatabase object yang
kita gunakan dakan definisi tabel dan inisialisasi data.
3. onUpgrade(), menyediakan fasilitas konversi database
dari database versi yang lama ke database.

1.1.2.
Relasi antara database SQLite dengan Android
Untuk Android, SQLite dijadikan satu di dalam Android runtime,
sehingga setiap aplikasi Android dapat membuat basis data
SQLite. Karena SQLite menggunakan antarmuka SQL, cukup
mudah untuk digunakan orang orang dengan pengalaman lain
yang berbasis databases. Terdapat beberapa alasan mengapa
SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu
:
- Database dengan konfigurasi nol. Artinya tidak ada
konfigurasi
database
untuk
para
developer.
Ini
membuatnya relatif mudah digunakan.
- Tidak memiliki server.
- Tidak ada proses database SQLite yang berjalan. Pada
dasarnya satu set libraries menyediakan fungsionalitas
database.
- Single-file database. Ini membuat keamanan database
secara langsung. Open source. Hal ini membuat developer
mudah dalam pengembangan aplikasi.

1.2. CRUD SQLite Android


CRUD adalah singkatan dari Create Read Update Delete, yang
sering digunakan pada aplikasi-aplikasi pengolahan data seperti,
Sistem Informasi, SIAKAD, Website, dll. yang kebanyakan
menggunakan fungsi CRUD didalamnya. Fungsi ini digunakan
untuk menambahkan data, menghapus data, serta mengupdate
data. Dan semua fungsi tersebut harus dihubungankan dengan
sebuah server database.
1.2.1.
Create (Tambah Data)
Untuk membuat sebuah aplikasi dengan menggunakan fungsi
CRUD, pertama kali yang harus dibuat adalah fungsi Create
(Tambah Data). Tetapi sebelum itu kita buat terlebih dahulu
project
di Android Studio dengan nama DatabaseSQLite.
package baru
sqlite.modul.yufri.databasesqlite;
/**
Selanjutnya, karena dalam project kali ini kita menggunakan
* Created by Yufri on 30/04/2015.
paradigma
OOP, maka kita buat dahulu sebuah kelas controller
*/
public
class
Barang
{
dengan nama Barang.java.
Berikut adalah source code nya.
private
private
private
private

long id;
String namaBarang;
String merkBarang;
String hargaBarang;

public Barang() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNamaBarang() {
return namaBarang;
}

public void setNamaBarang(String namaBarang) {


this.namaBarang = namaBarang;
}
public String getMerkBarang() {
return merkBarang;
}
public void setMerkBarang(String merkBarang) {
this.merkBarang = merkBarang;
}
public String getHargaBarang() {
return hargaBarang;
}
public void setHargaBarang(String hargaBarang) {
this.hargaBarang = hargaBarang;
}

Fungsi dari kelas Barang.java tersebut adalah sebagai controller


yang akan digunakan dalam membangun sebuah aplikasi, karena
semua variable dan atribut utama dari sebuah objek bernama
Barang dideklarasikan pada kelas tersebut. Selanjutnya adalah
membuat sebuah kelas bernama DBHelper.java. Dimana kelas
tersebut berfungsi untuk membuat sebuah database baru,
membuat tabel baru, mendeklarasikan tipe variable dari masing
masing field yang ada dalam tabel, dan mengupgrade versi
database.
Berikut
adalah
langkah

langkah
untuk
mengimplementasikan fungsi fungsi tersebut di dalam kelas
DBHelper.java (untuk nama variable dansegala macam atribut
apabila ingin berbeda dapat disesuaikan sendiri).
- Pendeklarasian package yang akan digunakan di dalam
kelas DBHelper.java. Berikut adalah source code setelah
package di deklarasikan.
package sqlite.modul.yufri.databasesqlite;
//deklarasi import package
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by Yufri on 30/04/2015.
*/
public class DBHelper {
}

Setelah
itu
kelas
DBHelper.java
diextends
ke
SQLiteOpenHelper, apabila nanti ada keterangan error
klik saja error tersebut. Nanti akan meminta untuk
mengimplementasikan methods, klik saja maka nanti akan
muncul beberapa method tambahan yaitu method
onCreate() dan onUpgrade(). Source code kelas
DBHelper.java akan menjadi seperti berikut.
package sqlite.modul.yufri.databasesqlite;
//deklarasi import package
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by Yufri on 30/04/2015.
*/
public class DBHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {

Apabila masih terjadi error pada kelas DBHelper.java klik


}
lagi
error tersebut maka akan meminta untuk
}
mengimplementasikan
kelas super. Ketika di klik maka
package sqlite.modul.yufri.databasesqlite;
akan muncul dua pilihan, pilih yang pertama maka akan
//deklarasi import package
terbentuk
kelas super. Dan source code nya akan menjadi
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
seperti
ini.
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

/**
* Created by Yufri on 30/04/2015.
*/
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {
}
}

Kemudian deklarasian variable variable yang digunakan


dalam database, seperti nama tabel, nama kolom, nama
database, dan versi database. Setelah pendeklerasian
variable selesai, pada method kelas super hapus sebagian
source code menjadi source code yang diperlukan saja dan
ubah varible nama database dan versi database. Source
code nya akan menjadi seperti ini. Perlu dicatat nama
database = db_barang.db, nama tabel = barang, field =
barang_id,
barang_nama,
barang_merk,
barang_harga.
package sqlite.modul.yufri.databasesqlite;
//deklarasi import package
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by Yufri on 30/04/2015.
*/
public class DBHelper extends SQLiteOpenHelper {
/** deklarasi konstanta-konstanta yang digunakan pada database,
seperti nama tabel,
nama-nama kolom, nama database, dan versi dari database **/
public static final String TABLE_NAME = "barang";
public static final String COLUMN_ID = "barang_id";
public static final String COLUMN_NAME = "barang_nama";
public static final String COLUMN_MERK = "barang_merk";
public static final String COLUMN_HARGA = "barang_harga";
private static final String db_name = "db_barang.db";
private static final int db_version = 1;
// Perintah SQL untuk membuat tabel database baru
private static final String db_create = "CREATE TABLE "
+ TABLE_NAME + "("
+ COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_NAME + " varchar(50) not null, "
+ COLUMN_MERK + " varchar(50) not null, "
+ COLUMN_HARGA + " varchar(50) not null);";
public DBHelper(Context context) {
super(context, db_name, null, db_version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {
}
}

Selanjutnya pada method onCreate() tambahkan perintah


untuk mengeksekusi perintah sql membuat tabel baru
dengan memanggil variable yang sudah di deklarasikan.
Berikut adalah source code setelah ditambahkan perintah
pada method onCreate().
package sqlite.modul.yufri.databasesqlite;
//deklarasi import package
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by Yufri on 30/04/2015.
*/
public class DBHelper extends SQLiteOpenHelper {
/** deklarasi konstanta-konstanta yang digunakan pada database,
seperti nama tabel,
nama-nama kolom, nama database, dan versi dari database **/
public static final String TABLE_NAME = "barang";
public static final String COLUMN_ID = "barang_id";
public static final String COLUMN_NAME = "barang_nama";
public static final String COLUMN_MERK = "barang_merk";
public static final String COLUMN_HARGA = "barang_harga";
private static final String db_name = "db_barang.db";
private static final int db_version = 1;
// Perintah SQL untuk membuat tabel database baru
private static final String db_create = "CREATE TABLE "
+ TABLE_NAME + "("
+ COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_NAME + " varchar(50) not null, "
+ COLUMN_MERK + " varchar(50) not null, "
+ COLUMN_HARGA + " varchar(50) not null);";
public DBHelper(Context context) {
super(context, db_name, null, db_version);
}
//mengeksekusi perintah SQL di atas untuk membuat tabel database
baru
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(db_create);
}

Dan@Override
yang terakhir adalah menambahkan perintah pada
method
onUpgrade(),
yaitu perintah
yang
public void
onUpgrade(SQLiteDatabase
sqLiteDatabase,
int i, digunakan
int i2) {
untuk
mengupgrade versi database. Tetapi untuk perintah
}
}
pada
method onUpgrade() dijalankan apabila ingin
mengupgrade versi database saja. Baik, setelah semua
fungsi sudah diimplementasikan pada masing masing
method, maka berikut adalah source code lengkap dari
kelas DBHelper.java.

package sqlite.modul.yufri.databasesqlite;
//deklarasi import package
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by Yufri on 30/04/2015.
*/
public class DBHelper extends SQLiteOpenHelper {
/** deklarasi konstanta-konstanta yang digunakan pada database,
seperti nama tabel,
nama-nama kolom, nama database, dan versi dari database **/
public static final String TABLE_NAME = "barang";
public static final String COLUMN_ID = "barang_id";
public static final String COLUMN_NAME = "barang_nama";
public static final String COLUMN_MERK = "barang_merk";
public static final String COLUMN_HARGA = "barang_harga";
private static final String db_name = "db_barang.db";
private static final int db_version = 1;
// Perintah SQL untuk membuat tabel database baru
private static final String db_create = "CREATE TABLE "
+ TABLE_NAME + "("
+ COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_NAME + " varchar(50) not null, "
+ COLUMN_MERK + " varchar(50) not null, "
+ COLUMN_HARGA + " varchar(50) not null);";
public DBHelper(Context context) {
super(context, db_name, null, db_version);
}
//mengeksekusi perintah SQL di atas untuk membuat tabel database
baru
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(db_create);
}
// dijalankan apabila ingin mengupgrade database
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {
Log.w(DBHelper.class.getName(), "Upgrading database from version "
+ i + " to "
+ i2 + ", which will destroy all old data");
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(sqLiteDatabase);
}
Setelah} selesai membuat kelas DBHelper.java, sekarang kita

lanjutkan membuat kelas DBDataSource.java. Kelas tersebut


berfungsi sebagai controller untuk menginisialisasi database
yang sudah dibuat, membuat method perintah tambah data,
lihat data, ubah data, dan hapus data. Sehingga nantinya ketika
akan membuat kelas kelas untuk tambah data, lihat data, ubah

data, dan hapus data tinggal memanggil saja method perintah


yang sudah dibuat di dalam kelas tersebut. Berikut adalah
langkah langkah untuk mengimplementasikan fungsi fungsi
tersebut di dalam kelas DBDataSource.java (untuk nama
variable dan segala macam atribut apabila ingin berbeda dapat
disesuaikan sendiri).
- Pendeklarasian package yang akan digunakan di dalam
kelas DBDataSource.java. Berikut adalah source code
setelah package di deklarasikan.
package sqlite.modul.yufri.databasesqlite;
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

/**
* Created by Yufri on 30/04/2015.
*/
public class DBDataSource {

Kemudian deklarasian variable variable yang digunakan


}
dalam
database, variabel tersebut nantinya akan berfungsi
untuk menginisialisasi SQLite Database, kelas DBHelper
yang sudah dibuat, dan juga variable untuk memanggil
semua nama kolom yang ada dalam database. Berikut
adalah source code nya setelah adanya deklarasi variable
tersebut.
package sqlite.modul.yufri.databasesqlite;
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
/**
* Created by Yufri on 30/04/2015.
*/
public class DBDataSource {
//inisialiasi SQLite Database
private SQLiteDatabase database;

//inisialisasi
kelas
DBHelper
//ambil semua
nama
kolom
private
DBHelper
dbHelper;
private String[] allColumns = { DBHelper.COLUMN_ID,
DBHelper.COLUMN_NAME,
DBHelper.COLUMN_MERK,DBHelper.COLUMN_HARGA };
}

Selanjutnya buat kelas constructor dan instansiasi kelas


DBHelper.java pada constructor tersebut, sekaligus buat

method untuk membuka / membuat koneksi dengan


database dan juga method untuk menutup koneksi. Buat
source codenya menjadi seperti ini.
package sqlite.modul.yufri.databasesqlite;
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
/**
* Created
by Yufri on 30/04/2015.
package
sqlite.modul.yufri.databasesqlite;
*/
public
DBDataSource {
importclass
java.util.ArrayList;
import android.content.ContentValues;
//inisialiasi
SQLite Database
import
android.content.Context;
private
SQLiteDatabase database;
import
android.database.Cursor;
import android.database.SQLException;
//inisialisasi
kelas DBHelper
import
android.database.sqlite.SQLiteDatabase;
private
DBHelper dbHelper;
import
android.util.Log;
/**//ambil semua nama kolom
private String[]
= { DBHelper.COLUMN_ID,
* Created
by Yufri allColumns
on 30/04/2015.
DBHelper.COLUMN_NAME,
*/
DBHelper.COLUMN_MERK,DBHelper.COLUMN_HARGA
};
public class
DBDataSource {

//DBHelper
diinstantiasi
pada constructor
//inisialiasi SQLite
Database
public
context) {
privateDBDataSource(Context
SQLiteDatabase database;
dbHelper = new DBHelper(context);
}
//inisialisasi kelas DBHelper
private DBHelper dbHelper;
//membuka/membuat sambungan baru ke database
public
open()
throws
SQLException {
//ambilvoid
semua
nama
kolom
database
= dbHelper.getWritableDatabase();
private
String[]
allColumns = { DBHelper.COLUMN_ID,
}
DBHelper.COLUMN_NAME,
};
ApabilaDBHelper.COLUMN_MERK,DBHelper.COLUMN_HARGA
sudah sekarang lanjut membuat method
untuk
//menutup sambungan ke database
mengcreate
data
menginsertkan data ke dalam
public
void close()
{ atau
//DBHelper
diinstantiasi
pada constructor
dbHelper.close();
public DBDataSource(Context
context)
{
database.
Di dalam method
tersebut
nantinya akan berisi
} dbHelper = new DBHelper(context);
beberapa
perintah seperti memasangkan data dengan
} }

nama kolom, mengeksekusi perintah sql insert data,


//membuka/membuat sambungan baru ke database
melakukan
pengecekan
apakah{ data yang di insertkan
public void open()
throws SQLException
= dbHelper.getWritableDatabase();
sudahdatabase
masuk,
memindahkan data baru ke yang paling atas
}
dengan cara memanggil fungsi method lain, serta
//menutup sambungan
database dengan database. Berikut
membuka
menutupkekoneksi
public void close() {
adalah
source
code
lengkap
dari
kelas
dbHelper.close();
}
DBDatasSource.java setelah ditambahkan method untuk
menginsertkan
data dan barang
method
untuk memindahkan data
//method untuk create/insert
ke database
public Barang createBarang(String nama, String merk, String harga) {
yang baru masuk ke dalam database di list yang paling
atas. // membuat sebuah ContentValues, yang berfungsi
// untuk memasangkan data dengan nama-nama
// kolom pada database
ContentValues values = new ContentValues();
values.put(DBHelper.COLUMN_NAME, nama);
values.put(DBHelper.COLUMN_MERK, merk);
values.put(DBHelper.COLUMN_HARGA, harga);

// mengeksekusi perintah SQL insert data


// yang akan mengembalikan sebuah insert ID
long insertId = database.insert(DBHelper.TABLE_NAME, null,
values);
// setelah data dimasukkan, memanggil
// perintah SQL Select menggunakan Cursor untuk
// melihat apakah data tadi benar2 sudah masuk
// dengan menyesuaikan ID = insertID
Cursor cursor = database.query(DBHelper.TABLE_NAME,
allColumns, DBHelper.COLUMN_ID + " = " + insertId, null,
null, null, null);
// pindah ke data paling pertama
cursor.moveToFirst();
// mengubah objek pada kursor pertama tadi
// ke dalam objek barang
Barang newBarang = cursorToBarang(cursor);
// close cursor
cursor.close();
// mengembalikan barang baru
return newBarang;
}
private Barang cursorToBarang(Cursor cursor) {
// buat objek barang baru
Barang barang = new Barang();
// debug LOGCAT
Log.v("info", "The getLONG "+cursor.getLong(0));
Log.v("info", "The setLatLng
"+cursor.getString(1)+","+cursor.getString(2));
/* Set atribut pada objek barang dengan
* data kursor yang diambil dari database*/
barang.setId(cursor.getLong(0));
barang.setNamaBarang(cursor.getString(1));
barang.setMerkBarang(cursor.getString(2));
barang.setHargaBarang(cursor.getString(3));
//kembalikan sebagai objek barang
return barang;
}
}

Selanjutnya
apabila
sudah
selesai
membuat
kelas
DBHelper.java dan DBDataSource.java, sekarang kita
deklarasikan terlebih dahulu beberapa string yang akan kita
gunakan pada aplikasi di dalam file String.xml, karena di dalam
membuat sebuah aplikasi Android yang profesional semua string
sebaiknya jangan di tulis sendiri tetapi dijadikan satu dalam file
String.xml sehingga apabila kita akan melakukan akses menjadi
lebih mudah. Berikut adalah source code lengkap dari file
String.xml (untuk penamaan string apabila ingin berbeda dapat
disesuaikan sendiri).
<resources>
<string name="app_name">Database SQLite</string>
<string name="activity_tambah_data">Tambah Data</string>
<string name="activity_data_barang">Data Barang</string>
<string name="activity_ubah_data">Ubah Data</string>
<string name="tombol_tambah_data">Tambah Data</string>
<string name="tombol_data">Data Barang</string>
<string name="tombol_tambah">Tambah</string>
<string name="tombol_ubah">Ubah</string>
<string name="tombol_batal">Batal</string>
<string name="tombol_dialog_ubah">Ubah</string>
<string name="tombol_dialog_hapus">Hapus</string>
<string name="hint_nama">Nama Barang</string>
<string name="hint_merk">Merk Barang</string>
<string name="hint_harga">Harga Barang</string>
<string name="judul_data">Data Barang</string>
<string name="judul_ubah_data">Ubah Data | ID :</string>
</resources>

Baik setelah selesai mendeklarasikan string, sekarang kita buat


untuk layout nya. Pertama yang harus dibuat yaitu layout untuk
menu nya sendiri, pada tampilan menu awal akan dibuat
sederhana saja yaitu ada dua buah menu, yang pertama menu
Tambah Data dan menu Lihat Data. Sekarang buat file pada
folder layout dengan nama activity_menu.xml. Berikut adalah
source code lengkap activity_menu.xml (untuk nama button
atau segala macam atribut apabila ingin berbeda dapat
disesuaikan sendiri).
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonTambahData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/tombol_tambah_data" />
<Button
android:id="@+id/buttonDataBarang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/buttonTambahData"
android:text="@string/tombol_data" />
</RelativeLayout>

Selanjutnya apabila layout untuk menu sudah terbuat, sekarang


buat kelas activity untuk memanggil layout activity_menu.xml
yang sudah dibuat sehingga dapat tampil di interface Android.
Beri
nama
kelas
tersebut
dengan
nama
kelas
MenuActivity.java. Berikut adalah langkah langkah untuk
membuat kelas MenuActivity.java (untuk nama variable dan
segala macam atribut apabila ingin berbeda dapat disesuaikan
sendiri).
- Pertama
deklarasikan
package
di
dalam
kelas
MenuActivity.java
dan
extends
kan
kelas
MenuActivty.java ke Activity dan implements kan ke
OnClickListener. Apabila ada error ketika implements
pada OnClickListener klik saja errornya maka nanti akan
meminta untuk mengimplementasikan method onClick
setelah method tersebut di implementasikan maka error

akan hilang. Berikut adalah source code dari kelas


MenuActivity.java
setelah dideklarasikan package,
extends Activity, dan implements ke OnClickListener.
package sqlite.modul.yufri.databasesqlite;
import
import
import
import
import
import

android.app.Activity;
android.content.Intent;
android.os.Bundle;
android.view.View;
android.view.View.OnClickListener;
android.widget.Button;

/**
* Created by Yufri on 30/04/2015.
*/
public class MenuActivity extends Activity implements OnClickListener {
@Override
public void onClick(View view) {

}
Selanjutnya
deklarasikan variable button dan intent,
}
varible button fungsinya untuk memanggil button yang
sudah dibuat di layout dan intent fungsinya untuk
memanggil kelas lain. Dan apabila pada saat awal
pembuatan kelas tidak ada method onCreate() maka buat
sendiri method tersebut. Dan di dalam method onCreate()
panggil varible yang sudah dideklarasikan sebelumnya,
serta panggil aksi button yang sudah dibuat. Berikut
adalah source code dari kelas MenuActivity.java setelah
ditambahkan
beberapa method.
/**
* Created by Yufri on 30/04/2015.
package sqlite.modul.yufri.databasesqlite;
*/
public class MenuActivity extends Activity implements OnClickListener {
import android.app.Activity;
import android.content.Intent;
//Pendeklarasian variabel button dan intent. Intent fungsinya untuk
import android.os.Bundle;
memanggil kelas lain.
import android.view.View;
private Intent intent;
import android.view.View.OnClickListener;
private Button buttonTambahData;
import android.widget.Button;
private Button buttonDataBarang;
/** Method onCreate berfungsi untuk memanggil variable yang sudah
dideklarasikan
dan juga mengeset aksi dari button **/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
buttonTambahData = (Button) findViewById(R.id.buttonTambahData);
buttonDataBarang = (Button) findViewById(R.id.buttonDataBarang);
buttonTambahData.setOnClickListener(this);
buttonDataBarang.setOnClickListener(this);
}
@Override
public void onClick(View view) {
}
}

Selanjutnya buat fungsi untuk memanggil kelas Tambah


Data dan juga kelas Lihat Data di dalam method onClick
dengan menggunakan perintah kondisi switch case.
Apabila pada saat pemanggilan kelas nantinya error di
comment saja, karena ketika sudah membuat kelas
Tambah Data dan Lihat Data maka error tersebut akan
hilang. Berikut adalah source code lengkap dari kelas
MenuActivity.java.
/**
* Created by Yufri on 30/04/2015.
*/
public class MenuActivity extends Activity implements OnClickListener {
//Pendeklarasian variabel button dan intent. Intent fungsinya untuk
@Override
memanggil
kelas lain.
public void
onCreate(Bundle
savedInstanceState) {
private
Intent
intent;
super.onCreate(savedInstanceState);
private
Button buttonTambahData;
setContentView(R.layout.activity_menu);
private
Button buttonDataBarang;
= (Button)
findViewById(R.id.buttonTambahData);
/**buttonTambahData
Method onCreate berfungsi
untuk
memanggil variable yang sudah
buttonDataBarang = (Button) findViewById(R.id.buttonDataBarang);
dideklarasikan
dan juga mengeset aksi dari button **/
buttonTambahData.setOnClickListener(this);
buttonDataBarang.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch(view.getId()) {
// Perintah untuk memanggil kelas TambahActivity (Tambah Data)
case R.id.buttonTambahData:
intent = new Intent(MenuActivity.this, TambahActivity.class);
startActivity(intent);
break;
// Perintah untuk memanggil kelas DataActivity (Lihat Data)
case R.id.buttonDataBarang:
intent = new Intent(MenuActivity.this, DataActivity.class);
startActivity(intent);
break;
}
}
}

Setelah kelas MenuActivity.java sudah terbuat, sekarang buat


terlebih dahulu layout untuk form menambahkan data. Dalam
layout tersebut dibuat dengan menggunakan tiga buah edittext
dan satu buah button. Berikut adalah source code dari layout
activity_tambah_data.xml (untuk nama button atau segala
macam atribut apabila ingin berbeda dapat disesuaikan sendiri).
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editTextNama"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:inputType="text"
android:hint="@string/hint_nama"
android:ems="10" >
<requestFocus />
</EditText>

<EditText
android:id="@+id/editTextMerk"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:inputType="text"
android:hint="@string/hint_merk"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextHarga"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:inputType="number"
android:hint="@string/hint_harga"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/buttonTambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tombol_tambah" />
</LinearLayout>

Selanjutnya apabila layout untuk tambah data sudah terbuat,


sekarang buat kelas activity untuk memanggil layout
activity_tambah_data.xml yang sudah dibuat sehingga dapat
tampil di interface Android dan difungsikan untuk proses tambah
data. Beri nama kelas tersebut dengan nama kelas
TambahActivity.java. Berikut adalah langkah langkah untuk
membuat kelas TambahActivity.java (untuk nama variable dan
segala macam atribut apabila ingin berbeda dapat disesuaikan
sendiri).
- Untuk membuat kelas TambahActivity.java kurang
lebihnya sama dengan membuat kelas MenuActivity.
Yaitu nanti kelasnya extend ke activity dan implements ke
OnClickListener dan deklarasi variable seperti edittext
dan button, namun yang membedakan adalah pada
perintah di method onClick. Berikut adalah source code
dari kelas TambahActivity.java sebelum nanti ditambah
perintah pada method onClick.
package
sqlite.modul.yufri.databasesqlite;
public class
TambahActivity extends Activity implements OnClickListener {
import android.os.Bundle;
import
android.app.Activity;
//inisilisasi
elemen-elemen pada layout
import
android.view.View;
private
Button buttonTambah;
import
android.view.View.OnClickListener;
private
EditText editTextNama;
import
android.widget.Button;
private
EditText editTextMerk;
import
android.widget.EditText;
private
EditText editTextHarga;
import android.widget.Toast;
/**//inisialisasi kontroller/Data Source
* Created
by Yufri on 30/04/2015.
private DBDataSource
dataSource;
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tambah_data);
buttonTambah = (Button) findViewById(R.id.buttonTambah);
editTextNama = (EditText) findViewById(R.id.editTextNama);
editTextMerk = (EditText) findViewById(R.id.editTextMerk);
editTextHarga = (EditText) findViewById(R.id.editTextHarga);
// instanstiasi kelas DBDataSource
dataSource = new DBDataSource(this);
//membuat sambungan baru ke database
dataSource.open();
buttonTambah.setOnClickListener(this);
}
//KETIKA Tombol Submit Diklik
@Override
public void onClick(View view) {
}
}

public class TambahActivity extends Activity implements OnClickListener {

//inisilisasi elemen-elemen pada layout


private Button buttonTambah;
private EditText editTextNama;
Selanjutnya
buat
perintah di method
private EditText
editTextMerk;
private EditText editTextHarga;

onClick() dengan
menginisialisasi data barang yang akan dimasukkan
dengan
memanggil
//inisialisasi
kontroller/Datagetter
Source yang sudah dibuat pada
private DBDataSource dataSource;
controller Barang.java. Berikut adalah source code
@Override dari
lengkap
kelas
TambahActivity.java
setelah
public void onCreate(Bundle savedInstanceState) {
ditambahkan
perintah pada method onClick.
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tambah_data);
package
sqlite.modul.yufri.databasesqlite;
buttonTambah
= (Button) findViewById(R.id.buttonTambah);
import
android.os.Bundle;
editTextNama
= (EditText) findViewById(R.id.editTextNama);
import
android.app.Activity;
editTextMerk
= (EditText) findViewById(R.id.editTextMerk);
import
android.view.View;
editTextHarga
= (EditText) findViewById(R.id.editTextHarga);
import
android.view.View.OnClickListener;
import android.widget.Button;
// instanstiasi
kelas DBDataSource
import
android.widget.EditText;
dataSource
= new DBDataSource(this);
import
android.widget.Toast;
/** //membuat sambungan baru ke database
dataSource.open();
* Created
by Yufri on 30/04/2015.
*/
buttonTambah.setOnClickListener(this);
}
//KETIKA Tombol Submit Diklik
@Override
public void onClick(View view) {
// Inisialisasi data barang
String nama = null;
String merk = null;
String harga = null;
@SuppressWarnings("unused")
//inisialisasi barang baru (masih kosong)
Barang barang = null;
if(editTextNama.getText()!=null && editTextMerk.getText()!=null &&
editTextHarga.getText()!=null) {
/* jika field nama, merk, dan harga tidak kosong
* maka masukkan ke dalam data barang*/
nama = editTextNama.getText().toString();
merk = editTextMerk.getText().toString();
harga = editTextHarga.getText().toString();
}
switch (view.getId()) {
case R.id.buttonTambah:
// insert data barang baru
barang = dataSource.createBarang(nama, merk, harga);
//konfirmasi kesuksesan
Toast.makeText(this, "Masuk Barang\n" +
"Nama : " + barang.getNamaBarang() + "\n" +
"Merk : " + barang.getMerkBarang() + "\n" +

"Harga : Rp. " + barang.getHargaBarang(),


Toast.LENGTH_LONG).show();
break;
}
}
}

Setelah semua langkah sudah dijalankan, sekarang kita ubah


beberapa konfigurasi yang ada di file AndroidManifest.xml
menjadi seperti di bawah ini. Tujuannya untuk mendaftarkan
kelas yang sudah dibuat yaitu kelas MenuActivity.java dan
TambahActivity.java
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sqlite.modul.yufri.databasesqlite">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MenuActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TambahActivity"
android:label="@string/activity_tambah_data" >
</activity>
</application>
</manifest>

Apabila pada AndroidManifest.xml sudah selesai dibuat seperti


diatas, sekarang kita lakukan demo aplikasi untuk tampilan menu
dan proses tambah data.

Tampilan Menu

Tampilan Menu Tambah Data

Anda mungkin juga menyukai