Sabtu, 03 November 2012

PERSITENCE-RMS-Pert 5

Pertemuan ke lima, mata kuliah mobile computing, membahas materi tentang Persistance.
Persistance merupakan framework dalam pemrograman java yang dapat menyimpan data-data aplikasi secara lokal didalam device tersebut.
Record Store adalah sebuah koleksi dari record-record atau bisa disebut sebagai data base.
Untuk kali ini, saya membuat satu aplikasi berdasarkan tugas mata kuliah mobile computing.
Aplikasi ini menggunakan RMS(Record Manajemen System) sebagai record store.
Berikut adalah aplikasi menjawab soal matematika dan penilaiannya.

Source Code:


package persistance;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;
/**
 * @author kie
 */

public class Persistance extends MIDlet implements CommandListener{
                private  List Mainmenu;
                private Display display;
                private Command Exit;
                private Command Back, Hasil, cmdbalik, Simpan;
                private Form form1;
                private TextField s1, s2, s3, s4, s5, id;//variabel soal
                int n1, n2, n3, n4, n5; //variabel nilai/skor
                int nilaiakhir;
                private RecordStore rs;
                private RecordEnumeration re;
                private Alert alert;
               
                public Persistance() {
                form1 = new Form ("MENU UTAMA");
                Exit = new Command("Exit", Command.EXIT, 0);
                Back = new Command("Back", Command.BACK, 1);
                cmdbalik = new Command("Kembali", Command.BACK, 1);
                Hasil = new Command("Hasil", Command.OK, 2);
                Simpan = 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");
                                s1 = new TextField("1. hasil dari 2+3 adalah = ?", "", 100, TextField.DECIMAL);
                                s2 = new TextField("2. hasil dari 8/2 adalah = ?", "", 100, TextField.DECIMAL);
                                s3 = new TextField("3. hasil dari 3*4 adalah = ?", "", 100, TextField.DECIMAL);
                                s4 = new TextField("4. hasil dari7-3 adalah = ?", "", 100, TextField.DECIMAL);
                                s5 = new TextField("5. hasil dari(7-3)*2 adalah = ?", "", 100, TextField.DECIMAL);
                                form1.append(s1);
                                form1.append(s2);
                                form1.append(s3);
                                form1.append(s4);
                                form1.append(s5);
                                form1.setCommandListener(this);
                                form1.addCommand(Back);
                                form1.addCommand(Hasil);
                                display.setCurrent(form1);
                }
                public void nama () {
                                form1 = new Form("SIMPAN HASIL");
                                id = new TextField ("masukkan nama anda : ", "", 100, TextField.ANY);
                                form1.append(id);
                                form1.setCommandListener(this);
                                form1.addCommand(Simpan);
                                form1.addCommand(cmdbalik);
                                display.setCurrent(form1);
                }
                public void commandAction(Command c, Displayable d){
                                if (c == Exit) {
                                                destroyApp(true);
                                }
                                if(c.getLabel()=="Simpan"){
                                                alert.setType(AlertType.INFO);
                                                if(!id.equals(null)) 
                                                {
                                                                tambahRecord(id.getString());
                                                                alert.setString("Data Lengkap !! Data disimpan di RMS");
                                                                display.setCurrent(alert);
                                                                display.setCurrent(alert, Mainmenu);
                                                }
                                                else
                                                {
                                                                alert.setString("Data Kurang! isikan data secara lengkap");
                                                                display.setCurrent(alert, form1);
                                                }
                                }
                                if(c.getLabel()=="Nilai Tertinggi"){
                                                lihatRecord();
                                }
                                else if(c==Hasil){
                                                nama();
                                }
                                else if(c==cmdbalik){
                                                soal_ujian();
                                }
                                else if(c==Back){
                                                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(s1.getString());
                    int b = Integer.parseInt(s2.getString());
                    int c = Integer.parseInt(s3.getString());
                    int d = Integer.parseInt(s4.getString());
                    int e = Integer.parseInt(s5.getString());
                    if(a == 5){
                        a=2;
                    }
                    else if(a != 5){
                        a=0;
                    }
                    if(b==4){
                        b=2;
                    }
                    else if(b != 4){
                        b=0;
                    }
                    if(c==12){
                        c=2;
                    }
                    else if(c != 12){
                        c=0;
                    }
                    if(d==5){
                        d=2;
                    }
                    else if(d !=2 ){
                        d=0;
                    }
                    if(e==10){
                        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); 
                        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();
                                //Integer nilai akhir = dis.readUTF();
                                Mainmenu.append(id + " = "+ nilaiakhir +" \n",null);
                            }
                            catch (IOException ioe) {ioe.printStackTrace();}
                      }
                      Mainmenu.addCommand(Back);
                      Mainmenu.setCommandListener(this);
                      display.setCurrent(Mainmenu);
                    }
                    catch (InvalidRecordIDException invID) {invID.printStackTrace();}
                    catch (RecordStoreNotOpenException rsnoe) {rsnoe.printStackTrace();}
                    catch (RecordStoreException rse) {rse.printStackTrace();
                  }
                  }
                }


HASIL :


Sekian, Terimakasih ^_^

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | ewa network review