0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan22 halaman

PERTEMUAN 8 - Pemrograman Internal Basis Data Untuk Mobile

MOBILE PROGRAMMING

Diunggah oleh

Farell Bagaskara
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan22 halaman

PERTEMUAN 8 - Pemrograman Internal Basis Data Untuk Mobile

MOBILE PROGRAMMING

Diunggah oleh

Farell Bagaskara
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

PERTEMUAN 8

Pemrograman Internal Basis Data untuk Mobile

IKA ARFIANI, S.T., M.Cs.


Jenis-Jenis Data Storage pada Android

•Internal Storage : menyimpan file atau data secara langsung, pada


perangkat memori internal. File atau data akan disimpan pada
memori internal secara private pada Aplikasi, dan Aplikasi lain tidak
dapat mengaksesnya termasuk juga untuk user (pengguna).
•External Storage : File atau data akan disimpan pada memori
external (seperti micro SD ) atau internal (non -removable) secara
publik , serta dapat diakses dan dimodifikasi oleh user (pengguna).
•Shared preferences : merupakan sebuah framework (kerangka)
umum ,yang memungkinkan user (pengguna ) menyimpan data
secara private , dalam bentuk key- value pairs (kunci nilai
berpasangan ) dari tipe data primitif. Contoh tipe data primitif
seperti :booleans, floats, ints, longs, and strings dll.
•Sqlite Database : File atau data akan disimpan terstruktur di
database secara private.
•Network Connection : File atau data akan diambil dari web ,
menggunakan jaringan server.
SHARED PREFERENCE
Shared Preference merupakan media penyimpanan data primitif pada file internal
pada aplikasi dalam bentuk key-value.
• Shared Preferences ini biasanya digunakan
untuk pemyimpanan data dalam ukuran kecil,
seperti user token, setting aplikasi, theme,
dsb. Perlu diketahui, data yang ada di Shared
Preference di simpan dalam bentuk file XML.
Nah biasanya file tersebut bisa di temukan di:
DATA/data/[nama package
aplikasi]/shared_prefs/[nama package
aplikasi]_preferences.xml
Penting untuk kita ketahui, bahwa kita harus bisa membedakan kapan harus
menggunakan Shared Preferences, dan kapan harus menggunakan SQLite,
begitu juga yang lainnya.
SQLite
• SQLite adalah sebuah embedded database yang sangat
terkenal karena menggabungkan antarmuka SQL
dengan memori yang sangat kecil dan kecepatan yang
baik.
• SQLite adalah database yang berukuran kecil , berdiri
sendiri, bukan database client server, tanpa konfigurasi
namun mempunyai fitur penuh perintah SQL.
• 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.
Type Data
SQLite3 mendukung tipe data sebagai berikut:

TEXT (UTF-8 atau UTF-16 string)

INTEGER (signed integers)

REAL (floating point values)

BLOB (data chunk)
Untuk jelasnya dapat dibaca di
http://www.sqlite.org/datatype3.html
Pembuatan autoincrement field dapat dilakukan
dengan menggunakan keyword integer primary key
autoincrement
SQLiteOpenHelper
Untuk pembuatan database anda perlu membuat suatu Helper
Class yang merupakan subclass dari SQLiteOpenHelper.
Pada Subclass tersebut anda perlu mengimplementasikan
beberapa metode callback berikut:

onCreate(SQLiteDatabase) yang secara otomatis dipanggil jika
database tidak ada.

onUpgrade(SQLiteDatabase, int, int), yang akan otomatis
dipanggil pada saat upgrade database diperlukan.

onOpen(SQLiteDatabase) (optional)
SQLiteOpenHelper
public class MyDBOpenHelper extends
SQLiteOpenHelper {
static final String DB_NAME = "MyDb";
static final Integer DB_VERSION = 1;

public MyDBOpenHelper(Context context) {


super(context, DB_NAME, null,
DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Siswa (" +
"nim TEXT PRIMARY KEY," +
"nama TEXT, nilai
char(1))");
}

@Override
public void onUpgrade(SQLiteDatabase db,
int oldVersion, int newVersion) {
Log.w("Upgrade",
"Proses akan drop dan buat ulang
tabel.");
db.execSQL("DROP TABLE IF EXISTS
Siswa");
onCreate(db);
}
}
Letak Database

Setelah aplikasi tersebut diatas dijalankan, maka otomatis akan terbentuk database
MyDb pada folder /data/data/<nama package>/database, yang dapat diamati dari
DDMS
Contoh Aplikasi
Layout Aplikasi
<?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">
<TextView android:id="@+id/textView1"

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nim"></TextView>
<EditText android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editNim"></EditText>
<TextView android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama"></TextView>
<EditText android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editNama"></EditText>
<TextView android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nilai"></TextView>
<EditText android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editNilai"></EditText>
<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Simpan"
android:onClick="buttonSimpanOnClick">
</Button>
</LinearLayout>
Activity Utama
public class DataSiswaSimpleActivity extends Activity {

/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

public void buttonTambahOnClick(View v) {


Intent intent = new Intent();
intent.setClass(this, TambahData.class);
startActivity(intent);
}
}
Membuka Database
public void openDatabase() {
MyDBOpenHelper myDBOpenHelper = new MyDBOpenHelper(this.getApplicationContext());
db = myDBOpenHelper.getWritableDatabase();
}

Untuk membuka suatu objek database secara read only dapat menggunakan
metode getReadableDatabase(),

dan secara read/write dapat menggunakan metode getWriteableDatabase(),


karena pemakaian getWriteableDatabase(). Suatu SQLiteException akan
dilempar jika database gagal dibuka.
Menutup Database
public void
closeDatabase() {
db.close();
}

Untuk menutup database dapat digunakan pemanggilan terhadap metode


close.
Menyisip Data
public void buttonSimpanOnClick(View v) {
ContentValues rowValues = new ContentValues();
rowValues.put("nim", nim.getText().toString());
rowValues.put("nama", nama.getText().toString());
rowValues.put("nilai", nilai.getText().toString());
long result = db.insert("Siswa", null, rowValues);
if (result > -1)
tampilToast("Data siswa Nim" + nim.getText().toString()
+ "Telah disimpan!");
}

Untuk melakukan insert data dapat menggunakan metoda insert yang terdapat pada
objek SQLiteDatabase, dengan syntax sebagai berikut:

public long insert (String table, String nullColumnHack, ContentValues values)

table, nama tabel


nullColumnHack, bersifat optional, dan dapat diisi null, digunakan jika anda bermaksud menyisip
satu record kosong, karena SQL tidak memperbolehkan penyisipan record kosong, jika anda
perlu menyisipkan record kosong, maka parameter ini diisi salah satu nama kolom yang nullable.
values, merupakan data map yang mengandung inisial kolom dan nilai untuk masing-masing
kolom
Returns: mengembalikan row ID dari baris yang berhasil disisipkan, atau -1 jika terjadi
kesalahan.
Activity Tambah Data
public class TambahData extends Activity {
private SQLiteDatabase db;
private TextView nim;
private TextView nama;
private TextView nilai;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tambahdata);
TextView nim = (TextView) findViewById(R.id.editNim);
TextView nama = (TextView) findViewById(R.id.editNama);
TextView nilai = (TextView) findViewById(R.id.editNilai);
openDatabase();
}

@Override
protected void onDestroy() {
closeDatabase();
super.onDestroy();
}

public void openDatabase() {


MyDBOpenHelper myOpenHelper = new
MyDBOpenHelper(this.getApplicationContext());
db = myOpenHelper.getWritableDatabase();
}

public void closeDatabase() {


db.close();
}

public void buttonSimpanOnClick(View v) {


ContentValues rowValues = new ContentValues();
rowValues.put("nim", nim.getText().toString());
rowValues.put("nama", nama.getText().toString());
rowValues.put("nilai", nilai.getText().toString());
db.insert("Siswa", null, rowValues);
tampilToast("Data siswa Nim" + nim.getText().toString()+ "Telah disimpan!");
}

private void tampilToast(String pesan) {


int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), pesan, duration);
toast.show();
}
Latihan
Buatlah aplikasi yang dapat membuat Database MyDb
dengan struktur:
IDtoko  text primarykey
Nama_toko  text
No_Telp  char
Buatlah tambahkan Activity untuk Tambah Data dan
lakukan eksplorasi database yang dihasilkan.

Anda mungkin juga menyukai