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.