19 Oct

RMS Part 5 – Hapus data di dalam RecordStore

Tutorial sebelumnya sudah kita lengkapi sebagai berikut:
1. Cara membuat Record Store baru
2. Cara menyimpan Data Baru ke Record Store
3. Cara mengambil data dari Record Store
4. Cara mengubah data dari Record Store

langkah terakhir agar kita dapat membuat aplikasi basisdata secara utuh di dalam java me adalah dengan membuat method untuk menghapus data dari RecordStore. Cara menghapus data dari RecordStore dapat dilihat pada kode program berikut:

public void HapusDataKategori(String strID) {
        byte[] temp = null;
        try {
            RecordEnumeration re = rs.enumerateRecords(null, null, false);
            while (re.hasNextElement()) {
                int i = re.nextRecordId();
                temp = rs.getRecord(i);
                ByteArrayInputStream bais = new ByteArrayInputStream(temp);
                DataInputStream dis = new DataInputStream(bais);
                try {
                    String id = dis.readUTF();
                    if (id.equals(strID)) {
                        rs.deleteRecord(i);
                        break;
                    }
                } catch (IOException ioe) {
                }
            }
            re.rebuild();
        } catch (Exception e) {
        }
    }

Logika dari penghapusan data dari RecordStore adalah:
1. Ambil semua data dari RecordStore
2. Check setiap data apakah ada yang sama dengan id data yang ingin dihapus
3. Jika ketemu, maka panggil method deleteRecord() pada RecordStore

19 Oct

RMS Part 4 – Ubah data di dalam RecordStore

tutorial sebelumnya membahas tentang:
1. Cara membuat RecordStore
2. Cara menambahkan data ke dalam RecordStore
3. Cara mendapatkan data dari dalam RecordStore

pada tutorial part 4 ini kita akan mencoba untuk mengubah data dalam RecordStore. caranya silakan perhatikan kode program berikut ini:

public void UpdateDataKategori(Kategori kategori) {
        byte[] temp1 = null;
        try {
            RecordEnumeration re = rs.enumerateRecords(null, null, false);
            while (re.hasNextElement()) {
                int i = re.nextRecordId();
                temp1 = rs1.getRecord(i);
                ByteArrayInputStream bais = new ByteArrayInputStream(temp1);
                DataInputStream dis = new DataInputStream(bais);
                try {
                    String id = dis.readUTF();
                    if (id.equals(kategori.getId())) {
                        byte temp2[] = null;
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        DataOutputStream dos = new DataOutputStream(baos);
                        try {
                            dos.writeUTF(kategori.getId());
                            dos.writeUTF(kategori.getNama());
                            temp2 = baos.toByteArray();
                        } catch (IOException e) {
                        }
                        try {
                            rs.setRecord(i, temp2, 0, temp2.length);
                        } catch (Exception e) {
                        }
                        break;
                    }
                } catch (IOException ioe) {
                }
            }
            re.rebuild();
        } catch (Exception e) {
        }
    }

Logika di dalam perubahan data dari RecordStore adalah dengan mengambil data terlebih dahulu dari RecordStore, kita lakukan perubahan, kemudian kita lakukan pemanggilan setRecord() pada RecordStore.

19 Oct

RMS Part 3 – Ambil Data dari RecordStore

Setelah pada tutorial sebelumnya kita mencoba untuk:
1. Membuat RecordStore baru
2. Menambahkan data baru ke dalam RecordStore

maka pada tutorial part 3 ini kita coba untuk mengambil data-data yang sudah dimasukkan ke dalam RecordStore. Caranya bisa dilihat di dalam method berikut ini:

public Vector LihatDataKategori() {
        Vector data = new Vector();
        byte[] temp = null;
        try {
            RecordEnumaration re = rs.enumerateRecords(null, null, false);
            while (re.hasNextElement()) {
                int i = re.nextRecordId();
                temp = rs1.getRecord(i);
                ByteArrayInputStream bais = new ByteArrayInputStream(temp);
                DataInputStream dis = new DataInputStream(bais);
                try {
                    Kategori kategori = new Kategori();
                    kategori.setId(dis.readUTF());
                    kategori.setNama(dis.readUTF());
                    data.addElement(kategori);
                } catch (IOException ioe) {
                }
            }
        } catch (Exception e) {
        }
        return data;
    }

pertama kita buat method dengan nama LihatDataKategori.
kemudian kita siapkan Vector untuk menampung data-data yang akan kita ambil dari RecordStore.
melalui RecordEnumeration kita dapat mengambil data-data di dalam RecordStore.
parameter null menandakan tidak ada filtering data.

Untuk setiap data yang terbaca, kita buatkan object baru Kategori dan kita masukkan ke dalam Vector. Selanjutnya kita dapat mengembalikan vector tersebut sebagai return method.

19 Oct

RMS Part 2 – Menambah Data Baru

Setelah pada tutorial sebelumnya kita bahas cara membuat RecordStore, maka tutorial berikutnya adalah cara menambahkan data ke dalam RecordStore.

Untuk menambahkan data ke dalam RecordStore kita dapat membuat sebuah method yang khusus menangani penambahan data di dalam RecordStore:

public void TambahDataKategori(Kategori kategori) {
        byte temp[] = null;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        try {
            dos.writeUTF(kategori.getId());
            dos.writeUTF(kategori.getNama());
            temp = baos.toByteArray();
        } catch (IOException e) {
        }
        try {
            rs.addRecord(temp, 0, temp.length);
        } catch (Exception e) {
        }
    }

Perhatikan method TambahDataKategori memiliki parameter object Kategori.
kita harus menggunakan kelas ByteArrayOutputStream dan DataOutputStream untuk mengkonversi data String (id dan nama dari kategori) ke dalam bentuk Stream.

Selanjutnya kita dapat memasukkan data ke dalam RecordStore dengan memanggil method addRecord().

19 Oct

RMS (Record Management System) di Java ME

Jika di pemrograman dekstop teman-teman akan mengenal yang namanya Relational Database. Kita bisa menggunakan SQLite atau basis data yang lainnya untuk menyimpan data aplikasi secara permanen.

Jika di pemrograman website, teman-teman akan lebih sering mengenal MySQL sebagai basis data nya.

Nah untuk Java ME, kita dapat menggunakan RMS sebagai media penyimpanan data seara permanen.

Langkah paling pertama adalah kita harus menganalisa data yang akan kita simpan.
Sebagai contoh kita akan menyimpan data Kategori dengan isi data adalah id dan nama.
Maka kita harus membuat class Kategori dengan field seperti di atas:

public class Kategori {

    private String id, nama;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }
}

Bagaimana kita dapat bekerja di dalam RMS? Teman-teman cukup memperhatikan konsep berikut ini:
1. Cara membuat Record Store baru
2. Cara menyimpan Data Baru ke Record Store
3. Cara mengambil data dari Record Store
4. Cara mengubah data dari Record Store
5. Cara menghapus data dari Record Store