be your self

Sabtu, 03 November 2012

MOBILE COMPUTING PERSISTENCE

MIDP menyediakan sebuah API yang dapat menyimpan data dari aplikasi di dalam local device. Data akan disimpan pada non-volatile memory di dalam device. RMS (Record Manajemen System) adalah sebuah database sistem berorientasi record bagi MIDP device. package myrecord; Aplikasi dengan MIDP, sbb:

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.rms.*; import java.io.*; public class persistence extends MIDlet implements CommandListener{ private List Mainmenu; private Display display; private Command cmdKeluar; private Command cmdKembali, cmdHasil, cmdbalik, cmdSimpan; private Form form1; private TextField soal1, soal2, soal3, soal4, soal5, id; int nilai1, nilai2, nilai3, nilai4, nilai5; int nilaiakhir; private RecordStore rs; private RecordEnumeration re; private Alert alert; public persistence() { form1 = new Form ("MENU UTAMA"); cmdKeluar = new Command("Keluar", Command.EXIT, 0); cmdKembali = new Command("Kembali", Command.BACK, 1); cmdbalik = new Command("Kembali", Command.BACK, 1); cmdHasil = new Command("Hasil", Command.OK, 2); cmdSimpan = new Command("Simpan", Command.OK, 2); alert = new Alert(null); alert.setTimeout(Alert.FOREVER); Mainmenu = new List (null, Choice.IMPLICIT); rs=null; //membuka / membuat record store try { rs = RecordStore.openRecordStore("db_KodeBar", true); } catch (RecordStoreException rse)//check kalau error = exception { alert.setString("Record Store could not open."+"appliacation will stopped"); alert.setType(AlertType.ERROR); display.setCurrent(alert,null); System.exit(1); } } protected void destroyApp(boolean unconditional) { notifyDestroyed(); } protected void pauseApp() { // TODO Auto-generated method stub } protected void startApp() { display = Display.getDisplay(this); display.setCurrent(Mainmenu); menuList(); } private void menuList() { Mainmenu = new List("MENU UTAMA", List.IMPLICIT); Mainmenu.append("UJIAN", null); Mainmenu.append("NILAI TERTINGGI", null); Mainmenu.append("KELUAR", null); Mainmenu.setCommandListener(this); display.setCurrent(Mainmenu); } public void soal_ujian(){ form1 = new Form("UJIAN"); soal1 = new TextField("1. hasil dari 9:3 adalah = ?", "", 50, TextField.DECIMAL); soal2 = new TextField("2. hasil dari 2 x 7 adalah = ?", "", 50, TextField.DECIMAL); soal3 = new TextField("3. hasil dari 8+2 adalah = ?", "", 50, TextField.DECIMAL); soal4 = new TextField("4. hasil dari7-1 adalah = ?", "", 50, TextField.DECIMAL); soal5 = new TextField("5. hasil dari(9-3)*2 adalah = ?", "", 50, TextField.DECIMAL); form1.append(soal1); form1.append(soal2); form1.append(soal3); form1.append(soal4); form1.append(soal5); form1.setCommandListener(this); form1.addCommand(cmdKembali); form1.addCommand(cmdHasil); display.setCurrent(form1); } public void nama () { form1 = new Form("SIMPAN HASIL"); id = new TextField ("masukkan nama anda : ", "", 50, TextField.ANY); form1.append(id); form1.setCommandListener(this); form1.addCommand(cmdSimpan); form1.addCommand(cmdbalik); display.setCurrent(form1); } public void commandAction(Command c, Displayable d){ if (c == cmdKeluar) { destroyApp(true); } if(c.getLabel()=="Simpan"){ alert.setType(AlertType.INFO); if(!id.equals(null)) // cek jika variabel ada isinya { tambahRecord(id.getString()); alert.setString("Data Lengkap !, Data Telah Disimpan."); display.setCurrent(alert); display.setCurrent(alert, Mainmenu); } else { alert.setString("Data Kurang ! Lengkapi Data."); display.setCurrent(alert, form1); } } if(c.getLabel()=="Nilai Tertinggi"){ lihatRecord(); } else if(c==cmdHasil){ nama(); } else if(c==cmdbalik){ soal_ujian(); } else if(c==cmdKembali){ menuList(); }else{ List menu = (List) display.getCurrent(); switch (menu.getSelectedIndex()){ case 0: soal_ujian(); break; case 1: lihatRecord(); break; case 2: destroyApp(true); } } } public void tambahRecord(String id) { int a = Integer.parseInt(soal1.getString()); int b = Integer.parseInt(soal2.getString()); int c = Integer.parseInt(soal3.getString()); int d = Integer.parseInt(soal4.getString()); int e = Integer.parseInt(soal5.getString()); if(a == 3){ a=2; } else if(a != 5){ a=0; } if(b==14){ b=2; } else if(b != 4){ b=0; } if(c==10){ c=2; } else if(c != 12){ c=0; } if(d==6){ d=2; } else if(d !=2 ){ d=0; } if(e==12){ e=2; } else if(e != 10){ e=0; } nilaiakhir = a + b + c + d + e; byte[] temp = null; try { //kosntruktor baos dan dos ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); //cari fungsi ini ByteArrayOutputStream dan DataOutputStream di internet dos.writeUTF(id);// tulis var pada dos dos.writeInt(nilaiakhir); temp = baos.toByteArray(); } catch (IOException ioe) { ioe.printStackTrace(); } try { rs.addRecord(temp, 0, temp.length); //masukan data pada RecordStore } catch (RecordStoreNotOpenException rsnoe) { rsnoe.printStackTrace(); } catch (RecordStoreException rse) { rse.printStackTrace(); } } public void lihatRecord() { byte[] temp = null; Mainmenu.setTitle("Nilai Tertinggi"); Mainmenu.deleteAll(); try { re = rs.enumerateRecords(null, null, false); //enumerasi record while (re.hasNextElement()) //jk elemen rs lbh dr satu { int i = re.nextRecordId(); temp = rs.getRecord(i); ByteArrayInputStream bais = new ByteArrayInputStream(temp); DataInputStream dis = new DataInputStream(bais); try { String id = dis.readUTF(); //Integer nilai akhir = dis.readUTF(); Mainmenu.append(id + " = "+ nilaiakhir +" \n",null);// tampilkan } catch (IOException ioe) {ioe.printStackTrace();} } Mainmenu.addCommand(cmdKembali); Mainmenu.setCommandListener(this); display.setCurrent(Mainmenu); } catch (InvalidRecordIDException invID) {invID.printStackTrace();} catch (RecordStoreNotOpenException rsnoe) {rsnoe.printStackTrace();} catch (RecordStoreException rse) {rse.printStackTrace(); } } }

0 komentar:

Posting Komentar

Social Profiles

Twitter Facebook Google Plus LinkedIn RSS Feed Email Pinterest

visitors

Popular Posts

BTemplates.com

Blogroll

Live Traffic Feed

About

Copyright © My Inspiration | Powered by Blogger
Design by Lizard Themes | Blogger Theme by Lasantha - PremiumBloggerTemplates.com