MIDP Persistent Storage (RMS)

Download Report

Transcript MIDP Persistent Storage (RMS)

Marsel Willem Aipassa, S. Kom.
MIDP Persistent Storage
(RMS)
Pemrograman Aplikasi Mobile
Persistence
MIDP menyediakan sebuah API untuk
menyimpan data-data secara local
pada device tersebut
Data disimpan dalam non-volatile
memory
MIDlet memiliki fasilitas Record
Management System (RMS) untuk
menyimpan data
Data disimpan dalam bentuk recordrecord
Kumpulan record-record ini disebut
Record Store
Marsel Willem Aipassa, S. Kom.
Bahasan
 Record Store
 Membuat dan membuka Record Store
 Menambah, mengambil,menghapus dan mengupdate record
 Menggunakan RecordEnumerate
 Record Comparator
 Record Filter
3
Marsel Willem Aipassa, S. Kom.
Record Store
 Merupakan koleksi dari record-record
 RecordStore memiliki id yang otomatis diberikan pada saat
sebuah record dibentuk dan unik
 id bertindak sebagai index atau primary key
 id dibuat seacara sekuensial dan tidak dapat dibuat kembali
 id pada Record Store dimulai dari “1” bukan “0”
4
Marsel Willem Aipassa, S. Kom.
Record Store (2)
Record ID
Byte array
1
Data record #1
2
Data record #2
3
Data record #3
5
Data record #5
5
Marsel Willem Aipassa, S. Kom.
Record Store (3)
 MIDlet dapat menciptakan lebih dari 1 Record Store
 Nama dari tiap Record Store haruslah unik dan memiliki
panjang maksimal 32 karakter
 Saat MIDlet suite dihapus dari aplikasi maka semua record
store yang terhubung dengannya juga akan dihapus
6
Marsel Willem Aipassa, S. Kom.
Membuat dan membuka Record Store
static RecordStore
openRecordStore(String
recordStoreName, boolean
createIfNecessary)
static RecordStore
openRecordStore(String
recordStoreName, boolean
createIfNecessary, int authmode,
boolean writeable)
static RecordStore
openRecordStore(String
recordStoreName, String
vendorName, String suiteName)
7
Marsel Willem Aipassa, S. Kom.
Menambah Record
int
addRecord(byte[] data, int offset, int numBytes)
8
Marsel Willem Aipassa, S. Kom.
Mengambil Record
byte[]
getRecord(int recordId)
int
getRecord(int recordId, byte[] buffer, int offset)
int
getRecordSize(int recordId)
9
Marsel Willem Aipassa, S. Kom.
Menghapus Record
 Pada saat sebuah record dihapus, record idnya tidak akan
digunakan kembali pada addRecord
 Tidak disarankan untuk menggunakan counter increment
untuk mengambil keseluruhan record di dalam record store
void
deleteRecord(int recordId)
10
Marsel Willem Aipassa, S. Kom.
Contoh Program
11
Marsel Willem Aipassa, S. Kom.
Mengubah (edit) Record
 Untuk mengubah suatu record digunakan method setRecord
void
setRecord(int recordId, byte[] newData, int offset, int numBytes)
12
Marsel Willem Aipassa, S. Kom.
Contoh Program
13
Marsel Willem Aipassa, S. Kom.
Record Enumeration
 Record Enumeration dapat menyelesaikan permasalahan
dalam penggunaan incrementing index
 Record Enumeration menghasilkan enumerasi untuk
memeriksa seluruh record pada sebuah record store
 Dengan menggunakan Record Enumeration, dapat
dipasangkan sebuah Record Compator untuk pembanding
14
Marsel Willem Aipassa, S. Kom.
Record Enumeration (2)
RecordEnumeration
enumerateRecords(RecordFilter filter,
RecordComparator comparator, boolean
keepUpdated)
15
Marsel Willem Aipassa, S. Kom.
Contoh Program
16
Marsel Willem Aipassa, S. Kom.
Record Comparator
 Digunakan untuk mendefenisikan metode pengurutan dari
sebuah Record Enumeration
 Dispesifikkan lewat method enumerateRecords
 Untuk membuat sebuah Record Comparator harus
diimplementasikan interface RecordComparator dan method
compare
int
compare(byte[] rec1, byte[] rec2)
17
Marsel Willem Aipassa, S. Kom.
Record Comparator (2)
 Method compare harus mengembalikan return value bertipe
integer yang dapat berupa RecordComparator.FOLLOWS,
RecordComparator.PRECEDES atau
RecordComparator.EQUIVALENT
 Tipe value pengembalian ini tergantung pada pembuat
program
18
Marsel Willem Aipassa, S. Kom.
Contoh Program
19
Marsel Willem Aipassa, S. Kom.
Record Filter
 Digunakan untuk membatasi output sehingga hanya
ditampilkan record yang diinginkan
 Untuk dapat menggunakannya harus mengimplementasikan
interface RecordFilter
 Memiliki fungsi matches yang berfungsi untuk menyeleksi
suatu record
int
matches(byte[] candidate)
20
Marsel Willem Aipassa, S. Kom.
Method lain untuk RecordStores
String[]
listRecordStores()
Digunakan untuk mengambil
semua Record Store yang berasal
dari MIDlet suite tersebut
long
getLastModified()
Memberikan waktu perubahan
terakhir sesuai format
System.currentTimeMillis()
int
getVersion()
Memberikan informasi tentang
versi suatu Record Store
void
deleteRecordStore(String
recordStoreName)
Menghapus suatu Record Store
void
setMode(int authmode, boolean Mengubah mode akses dari
writeable)
Record Store
Marsel Willem Aipassa, S. Kom.
21
Terima Kasih
 Siapkan kertas dan pena… 
22
Marsel Willem Aipassa, S. Kom.
Post Test 1
 Apa yang dimaksud dengan Persistent Storage?
 Sebutkan nama method yang digunakan untuk membuka
Record Store!
 Sebutkan alasan penggunaan RecordEnumeration dibanding
incremental index!
 Jelaskan fungsi dari RecordComparator dan RecordFilter
23
Marsel Willem Aipassa, S. Kom.
Tugas 2
 Buatlah sebuah aplikasi yang memiliki 2 Record Store:
 Diari
 No. Kontak
 Pada awal tampilan user dapat memilih Record Store yang
diinginkan
 Setiap Record Store dapat menampilkan detail informasi dari
setiap item di dalam List
24
Marsel Willem Aipassa, S. Kom.
Tugas 2
 Detail informasi Diari:
 Teks
 Tanggal
 Detail informasi No. Kontak:
 Nama
 No. Telp
 Alamat
25
Marsel Willem Aipassa, S. Kom.
Tugas 3
 Buatlah paper tentang Jaringan dalam MIDP
 Minimal harus ada pembahasan tentang:
 GCF
 HTTP
 TCP Socket
 Pembahasan harus disertai potongan coding (bukan seluruh isi program) dan
penjelasan
 Minimal 3 halaman
 Format font header : bold, 12 pt, Times New Roman
 Format font isi : plain, 11pt, Times New Roman
 Jarak antar spasi 1
26
Marsel Willem Aipassa, S. Kom.
Pengumpulan
 Tugas 2
 Tugas aplikasi harus dapat dideploy ke perangkat mobile (bagi yang
tidak bisa nilai tugas akan dikurangi)
 Tugas dikumpulkan hari Jumat jam 12 dalam bentuk softcopy (coding
program) dan deployed application (di dalam device) di ruangan pak
Ramos
 Tugas 3
 Tugas dikumpulkan dalam bentuk *.pdf ke [email protected] paling
lambat hari Minggu, 1 Oktober jam 10 pagi
 nim_kelaspam_tugas3
 Segala kecurangan termasuk COPY PASTE nilai turun 1 grade (ex, A
-> B)
27
Marsel Willem Aipassa, S. Kom.