• Tidak ada hasil yang ditemukan

BAB 8 – SQLite DatabasePemrograman Perangkat MobileTeknik Informatika-Program Teknologi Informasi dan Ilmu KomputerUniversitas Brawijaya

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB 8 – SQLite DatabasePemrograman Perangkat MobileTeknik Informatika-Program Teknologi Informasi dan Ilmu KomputerUniversitas Brawijaya"

Copied!
7
0
0

Teks penuh

(1)

Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer

BAB 8 – SQLite Database

Pemrograman Perangkat Mobile Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer Universitas Brawijaya

Pemrograman Perangkat Mobile

Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom

(2)

1. Pendahuluan

SQLite menyediakan fasilitas relational DBMS dengan perintah SQL. Referensi lengkap SQL yang digunakan dapat dilihat di http://www.sqlite.org/lang.html

Tujuan Instruksional Khusus

Penguasaan materi dalam modul ini, akan dapat

1. Membuat aplikasi dengan menggunakan database pada perangkat Android menggunakan SQLite

Daftar Materi

1. PENDAHULUAN

1.1 SQLite

2. MENGAKSES DAN MENGOLAH DATABASE 2.1 Class DB Adaptor

2.2 Fungsi-fungsi untuk mengolah database 3. LATIHAN / SOAL / KUIS / PROJEK

(3)

1.1 SQLite

SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant 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.

Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai

2. Mengakses dan Mengolah Database 2.1 DB Adaptor

Untuk membuat database dengan aplikasi Android, dapat digunakan library SQLite yang sudah ada dalam Android Run Time. Tidak ada database yang secara langsung disediakan oleh android, maka harus dibuat dulu database dan tabel-tabelnya. Untuk membuat dan membuka database dengan SQLite, digunakan library yang diimport dari android.database.sqlite.SQLiteOpenHelper

Untuk itu, dibuat kelas DB Adaptor yang digunakan untuk membuat koneksi dengan database, dan untuk mengolah database.

Berikut ini adalah sintaks kelas DB Adaptor.

DBAdaptor.java

package ub.itcc.database1;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

public class DBAdaptor {

public static final String KEY_ROWID = "_id";

public static final String KEY_ISBN = "isbn";

public static final String KEY_TITLE = "title";

public static final String KEY_PUBLISHER = "publisher";

private static final String TAG = "DBAdaptor";

private static final String DATABASE_NAME = "books";

private static final String DATABASE_TABLE = "titles";

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE =

Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer

(4)

"create table titles (_id integer primary key autoincrement, "

+ "isbn text not null, title text not null, "

+ "publisher text not null);";

private final Context context;

private DatabaseHelper DBHelper;

private SQLiteDatabase db;

public DBAdaptor(Context ctx) {

this.context = ctx;

DBHelper = new DatabaseHelper(context);

}

private static class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(DATABASE_CREATE);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

{

Log.w(TAG, "Upgrading database from version " + oldVersion + " to "

+ newVersion + ", which will destroy all old data");

db.execSQL("DROP TABLE IF EXISTS titles");

onCreate(db);

} }

//---opens the database---

public DBAdaptor open() throws SQLException {

db = DBHelper.getWritableDatabase();

return this;

}

//---closes the database--- public void close()

{

DBHelper.close();

}

//---insert a title into the database---

public long insertTitle(String isbn, String title, String publisher) {

ContentValues initialValues = new ContentValues();

initialValues.put(KEY_ISBN, isbn);

initialValues.put(KEY_TITLE, title);

initialValues.put(KEY_PUBLISHER, publisher);

return db.insert(DATABASE_TABLE, null, initialValues);

(5)

}

//---deletes a particular title--- public boolean deleteTitle(long rowId) {

return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;

}

//---retrieves all the titles--- public Cursor getAllTitles() {

return db.query(DATABASE_TABLE, new String[] { KEY_ROWID,

KEY_ISBN, KEY_TITLE, KEY_PUBLISHER}, null,

null, null, null, null);

}

//---retrieves a particular title---

public Cursor getTitle(long rowId) throws SQLException {

Cursor mCursor =

db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID,

KEY_ISBN, KEY_TITLE, KEY_PUBLISHER },

KEY_ROWID + "=" + rowId, null,

null, null, null, null);

if (mCursor != null) { mCursor.moveToFirst();

}

return mCursor;

}

//---updates a title---

public boolean updateTitle(long rowId, String isbn, String title, String publisher)

{

ContentValues args = new ContentValues();

args.put(KEY_ISBN, isbn);

args.put(KEY_TITLE, title);

args.put(KEY_PUBLISHER, publisher);

return db.update(DATABASE_TABLE, args,

KEY_ROWID + "=" + rowId, null) > 0;

} }

Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer

(6)

2.2

Fungsi untuk Pengolahan Database

Untuk membuat aplikasi dengan SQLite dibutuhkan libraries yg berhubungan dengan SQLite:

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

Nama database, version dan konfigurasinya didefinisikan dalam coding sebagai berikut : public static final String KEY_ROWID = "_id";

public static final String KEY_ISBN = "isbn";

public static final String KEY_TITLE = "title";

public static final String KEY_PUBLISHER = "publisher";

private static final String TAG = "DBAdaptor";

private static final String DATABASE_NAME = "books";

private static final String DATABASE_TABLE = "titles";

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE =

"create table titles (_id integer primary key autoincrement, "

+ "isbn text not null, title text not null, "

+ "publisher text not null);";

Untuk create database dilakukan dalam coding berikut : public void onCreate(SQLiteDatabase db) {

db.execSQL(DATABASE_CREATE);

}

Fungsi untuk open database dalam coding berikut : //---opens the database---

public DBAdaptor open() throws SQLException {

db = DBHelper.getWritableDatabase();

return this;

}

Fungsi untuk insert dalam database (contoh berikut untuk menambahkan judul buku) : //---insert a title into the database---

public long insertTitle(String isbn, String title, String publisher) {

ContentValues initialValues = new ContentValues();

initialValues.put(KEY_ISBN, isbn);

initialValues.put(KEY_TITLE, title);

initialValues.put(KEY_PUBLISHER, publisher);

return db.insert(DATABASE_TABLE, null, initialValues);

}

Fungsi untuk delete record dalam coding berikut ini : //---deletes a particular title--- public boolean deleteTitle(long rowId) {

return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;

}

(7)

Fungsi untuk menampilkan semua record : //---retrieves all the titles--- public Cursor getAllTitles() {

return db.query(DATABASE_TABLE, new String[] { KEY_ROWID,

KEY_ISBN, KEY_TITLE, KEY_PUBLISHER}, null,

null, null, null, null);

}

Fungsi untuk mengupdate record : //---updates a title---

public boolean updateTitle(long rowId, String isbn, String title, String publisher)

{

ContentValues args = new ContentValues();

args.put(KEY_ISBN, isbn);

args.put(KEY_TITLE, title);

args.put(KEY_PUBLISHER, publisher);

return db.update(DATABASE_TABLE, args,

KEY_ROWID + "=" + rowId, null) > 0;

}

3. SOAL DAN PROJECT

Soal

1. Apakah yang dimaksud dengan Class DB Adaptor?

2. Bagaimana setting database SQLite?

Project

Buat aplikasi menggunakan SQLite untuk insert data mahasiswa dan menampilkannya.

REFERENSI

Yudhi , Wibisono .2011. Pengantar Mobile Programming dengan Android, UPI.

Safaat, H. Nazruddin. 2011. ANDROID Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android, Penerbit Informatika.

Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer

Referensi

Dokumen terkait

Hasil penelitian 90,8 % ibu nifas melakukan inisiasi menyusu dini terhadap Proses laktasi/ lancarnya proses laktasi pada 3 hari pertama setelah melahirkan pada ibu yang melakukan

Hubungan ketiga adalah “ structural capital coefficient ” (VASC), yang menunjukkan kontribusi structural capital (SC) dalam penciptaan nilai. VASC mengukur jumlah SC

Untuk membuat aplikasi mobile ini ada beberapa tools yang bisa digunakan dan salah satunya adalah dengan menggunakan Xamarin..

Dengan mengatur resolusi dari gambar yang ditangkap melalui kamera mempengaruhi kualitas gambar yang ditangkap, jarak pandang robot terhadap objek serta kecepatan dalam

Berdasarkan hasil penelitian yang telah dilakukan dapat disimpulkan bahwa tata cara pemungutan BPHTB yang dalam hal ini dikelola oleh Dinas Pendapatan Daerah kota

Untuk itu data tampang lin- tang di ruas kanan persamaan (3) harus terse- dia dalam bentuk tabulasi sebagai fungsi energi, yang dapat diinterpolasikan secara linier. Kare- na

64 Pembatasan ini sangat mempengaruhi para pengusaha industri ukir Jepara karena para pengusaha industri ukir juga bergantung pada modal untuk bisa membeli bahan

Hadi, dalam pelaksanaan akad murabahah tanpa wakalah hendaknya melalui tahapan-tahapan berikut ini: (1) Nasabah mengajukan permohonan untuk melakukan pembelian suatu barang