MIDP Persistent Storage (RMS)

Post on 20-Jan-2016

84 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

MIDP Persistent Storage (RMS). Marsel Willem Aipassa, S. Kom. Pemrograman Aplikasi Mobile. Persistence. MIDP menyediakan sebuah API untuk menyimpan data-data secara local pada device tersebut Data disimpan dalam non-volatile memory - PowerPoint PPT Presentation

Transcript

Mars

el W

illem

Aip

ass

a,

S.

Kom

.

MIDP Persistent Storage (RMS)

Pemrograman Aplikasi Mobile

Marsel Willem Aipassa, S. Kom.

PersistenceMIDP 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 record-record

Kumpulan record-record ini disebut Record Store

3 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

4 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

5 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

6 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

7 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

8 Marsel Willem Aipassa, S. Kom.

Menambah Record

int addRecord(byte[] data, int offset, int numBytes)

8

9 Marsel Willem Aipassa, S. Kom.

Mengambil Record

byte[] getRecord(int recordId)

int getRecord(int recordId, byte[] buffer, int offset)

int getRecordSize(int recordId)

9

10

Marsel Willem Aipassa, S. Kom.

Menghapus Record

10

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)

11

Marsel Willem Aipassa, S. Kom.

Contoh Program

11

12

Marsel Willem Aipassa, S. Kom.

Mengubah (edit) Record

Untuk mengubah suatu record digunakan method setRecord

12

void setRecord(int recordId, byte[] newData, int offset, int numBytes)

13

Marsel Willem Aipassa, S. Kom.

Contoh Program

13

14

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

15

Marsel Willem Aipassa, S. Kom.

Record Enumeration (2)

RecordEnumeration

enumerateRecords(RecordFilter filter, RecordComparator comparator, boolean keepUpdated)

15

16

Marsel Willem Aipassa, S. Kom.

Contoh Program

16

17

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

17

int compare(byte[] rec1, byte[] rec2)

18

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

19

Marsel Willem Aipassa, S. Kom.

Contoh Program

19

20

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

20

int matches(byte[] candidate)

21

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 writeable)

Mengubah mode akses dari Record Store2

1

22

Marsel Willem Aipassa, S. Kom.

Terima Kasih

Siapkan kertas dan pena…

22

23

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

24

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

25

Marsel Willem Aipassa, S. Kom.

Tugas 2

Detail informasi Diari: Teks Tanggal

Detail informasi No. Kontak: Nama No. Telp Alamat

25

26

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

27

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 acelox@ymail.com

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

top related