Anda di halaman 1dari 15

MODUL PERKULIAHAN

MOBILE
PROGRAMMING
ANDROID (LAB)

Database di Android

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

2020 MOBILE PROGRAMMING ANDROID (LAB)

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
11
Fakultas Ilmu Sistem Informasi F061700010 Suhendra, S.Kom., M.Kom
Komputer

Abstract Kompetensi
Pada bab ini kita akan mempelajari Mahasiswa mengenal, memahami
mengenai database yang ada di dan mampu membuat aplikasi android
Android dengan menggunakan dengan menggunakan SQLite
SQLite

1. SQLite Database
Android memiliki fasilitas untuk membuat database yang dikenal dengan SQLite.
SQLite adalah salah satu perangkat lunak yang embedded yang banyak digunakan.
Kombinasi SQL interface dan penggunaan memory yang sedikit dengan kecepatan
yang sangat cepat. SQLite di android termasuk dalam Android runtime, sehingga setiap
versi dari android dapat membuat database dengan SQLite.
Dalam sistem android memiliki beberapa teknik untuk melakukan penyimpanan
data. Teknik yang umum digunakan adalah sebagai berikut:
● Shared Prefences yaitu menyimpan data beberapa nilai (value) dalam bentuk
group key yang dikenal dengan prefences.
● Files yaitu menyimpan data dalam file, dapat berupa menulis ke file atau
membaca dari file.

2020 MOBILE PROGRAMMING ANDROID (LAB)

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
● SQLite Databases yaitu menyimpan data dalam bentuk database.
● Content Provider yaitu menyimpan data dalam bentuk content provider service.
Pada bagian ini kita akan fokus membahas bagian databases. Tidak ada
database yang otomatis disediakan oleh android. Jika kita menggunakan SQLite, kita
harus membuat database sendiri, mendefinisikan tabelnya, indeksnya serta datanya.
Untuk membuat dan membuka database yang paling baik adalah menggunakan
libraries android.database.sqlite.SQLiteOpenHelper yang menyediakan tiga metode, yaitu:
● Constructor, menyediakan representasi versi dari database dan skema database
yang kita gunakan.
● onCreate(), menyediakan SQLiteDatabase object yang kita gunakan dalam
definisi tabel dan inisialisasi data.
● onUpgrade(), menyediakan fasilitas konversi database dari database versi yang
lama ke database versi yang baru atau sebaliknya.

2020 MOBILE PROGRAMMING ANDROID (LAB)

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Gambar 11.1 Tampilan SQLite

1. Aplikasi database1
Pada aplikasi ini, kita akan membuat database, tabel serta menyimpan data ke
dalam database. Buatlah project baru seperti dibawah ini:
● Project Name : Database1
● Build Target : Android 2.3
● Application Name : database1
● Package name : com.hendraprastiawan.database1
● Activity : database1
● Min SDK :9

2020 MOBILE PROGRAMMING ANDROID (LAB)

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Terdiri dari dua buah file java yaitu DBAdapter.java yang meng-handle masalah
SQLite beserta fungsi-fungsi yang dibutuhkan seperti struktur dan schema database dan
database1.java yang digunakan untuk melakukan pengiriman data yang akan
ditambahkan ke database, membuka, mengedit, memanipulasi database.
1) DBAdapter.java

package com.hendraprastiawan.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 DBAdapter


{
public static final String KEY_ROWID = "_id";
public static final String KEY_ISBN = "isbn";

2020 MOBILE PROGRAMMING ANDROID (LAB)

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
{
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 DBAdapter 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
2020 publisher)
MOBILE PROGRAMMING ANDROID (LAB)

{
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);
6}
//---deletes a particular title---
public boolean deleteTitle(long rowId)
{
return db.delete(DATABASE_TABLE, KEY_ROWID +
"=" + rowId, null) > 0;
} Pusat Bahan Ajar dan eLearning
Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
//---retrieves all the titles---
public Cursor getAllTitles()
{
return db.query(DATABASE_TABLE, new String[] {
KEY_ROWID,
KEY_ISBN,
//---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,
2020 MOBILE PROGRAMMING ANDROID KEY_PUBLISHER
(LAB)
},
KEY_ROWID + "=" + rowId,
null,
null,
null,
null,
7 null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
//---updates a title--- Pusat Bahan Ajar dan eLearning
public boolean
Suhendra, updateTitle(long
S.Kom., M.Kom rowId, String isbn,
http://www.mercubuana.ac.id

String title, String publisher)


{
ContentValues args = new ContentValues();
args.put(KEY_ISBN, isbn);
args.put(KEY_TITLE, title);
args.put(KEY_PUBLISHER, publisher);
Berikut penjelasan dari DBAdapter.java sebagai berikut:
Kita membutuhkan libraries yang berhubungan dengan SQLite dengan definisi
sebagai berikut:

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;

2020 MOBILE PROGRAMMING ANDROID (LAB)

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Sedangkan nama database, version, dan table-nya didefinisikan di DBAdapter
dengan koding:

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 = "DBAdapter";

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, "

Database-nya adalah books dengan field-field id, isbn, tiltle, publisher beserta
tipe field-nya.

public DBAdapter open() throws SQLException


{
db = DBHelper.getWritableDatabase();
public longreturn this;
insertTitle(String isbn, String title, String
}
publisher)
2020 {
MOBILE PROGRAMMING ANDROID (LAB)
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);
9 }

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Fungsi insert database yaitu:

Fungsi delete record-nya yaitu:

public boolean deleteTitle(long rowId)


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

Fungsi menampilkan semua record sebagai berikut:

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;

2020 MOBILE PROGRAMMING ANDROID (LAB)

10

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Fungsi memperbarui record sebagai berikut:

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;
}

2020 MOBILE PROGRAMMING ANDROID (LAB)

11

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Pada database1.java akan kita contohkan untuk melakukan proses penambahan
data ke dalam database.

2) database1.java
package com.hendraprastiawan.database1;

import android.app.Activity;
import android.os.Bundle;

public class database1 extends Activity {


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

DBAdapter db = new DBAdapter(this);


//---add 3 titles---
db.open();
long id;
id = db.insertTitle(
"1234512345",
"Android Programmer's Reference",
"Washington Press");
id = db.insertTitle(
2020 "5432112345",
MOBILE PROGRAMMING ANDROID (LAB)
"Linux Programming",
"Bandung Press");
id = db.insertTitle(
"0987654321",
"Android Devlopment Life Cycle",
"Hongkong Press");
12 db.close();
}

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Dilakukan definisi DBAdapter db = new DBAdapter (this); kemudian Db.open
dipanggil sebelum melakukan proses penambahan data dan db.close setelah
melakukan penambahan data.

Buka File Explorer untuk memastikan database yang terbentuk dan isinya
seperti yang kita tambahkan. Berikut adalah file explorer dari aplikasi database1.
Lakukan proses pull dengan mengklik tombol yangbertuliskan “Pull a file from device”

2020 MOBILE PROGRAMMING ANDROID (LAB)

13

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
dan simpan di direktori penyimpanan yang bisa diingat. Buka SQLite dan buka database
yang telah kita simpan sebelumnya sehingga muncul isi database di SQLite seperti
berikut:

2020 MOBILE PROGRAMMING ANDROID (LAB)

14

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id
Referensi:
1. https://developer.android.com/guide/components/intents-filters.html
2. Karch, Marziah. Android for Work Productivity for Professionals. Apress.
3. Felker, Donn. Android Application Development for Dummies. Wiley.
4. Burnette, Ed. Hello Android. Pragmatic Programmers.
5. Meier, Reto. Professional Android App. Development.

2020 MOBILE PROGRAMMING ANDROID (LAB)

15

Pusat Bahan Ajar dan eLearning


Suhendra, S.Kom., M.Kom http://www.mercubuana.ac.id

Anda mungkin juga menyukai