20 Jun 2011

Source Code Demo RMS dengan J2ME

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;

public class DemoRMS extends MIDlet
  implements CommandListener {
   
  private Display display;
  private Form form;
  private RecordStore rs;
  private RecordEnumeration re;
  private ChoiceGroup choicegroup;
  private Alert alert;
  private List list;
   
  //untuk proses entri data
  private Form entri;
  private TextField tfNama, tfNoTelp;
   
  private final Command cmdKeluar =
    new Command("Keluar", Command.EXIT, 1);
  private final Command cmdPilih =
    new Command("Pilih", Command.OK, 1);
  private final Command cmdSimpan =
    new Command("Simpan", Command.SCREEN, 1);
  private final Command cmdHapus =
    new Command("Hapus", Command.SCREEN, 1);
  private final Command cmdKembali =
    new Command("Kembali", Command.BACK, 1);
 
  public DemoRMS() {
    display = Display.getDisplay(this);
     
    alert = new Alert(null);
    alert.setTimeout(Alert.FOREVER);
       
    list = new List(null, Choice.IMPLICIT);
     
    rs = null;
    // membuat atau membuka record store
    try {
      rs = RecordStore.openRecordStore("contohDB", true);
    } catch (RecordStoreException rse) {
      alert.setString("Record store tidak dapat dibuka. " +
                      "Aplikasi akan dihetikan");
      alert.setType(AlertType.ERROR);
      display.setCurrent(alert, null);
      System.exit(1);
    }
  }
   
  public void startApp() {
    form = new Form("Demo RMS");
       
    choicegroup = new ChoiceGroup("Menu:", Choice.EXCLUSIVE);
    choicegroup.append("Tambah Record", null);
    choicegroup.append("Daftar Record", null);
       
    form.append(choicegroup);
    form.addCommand(cmdKeluar);
    form.addCommand(cmdPilih);
    form.setCommandListener(this);
    display.setCurrent(form);
  }  
   
  public void pauseApp() {
  }
   
  public void destroyApp(boolean unconditional) {
  }
   
  public void commandAction(Command c, Displayable s) {
    if (c == cmdKeluar) {
      destroyApp(false);
      notifyDestroyed();
    } else if (c == cmdPilih) {
      switch (choicegroup.getSelectedIndex()) {
        case 0: {
          entriData();
          break;
        }
        case 1: {
          lihatRecord();
          break;
        }
      }
    } else if (c == cmdKembali) {
      display.setCurrent(form);
    } else if (c == cmdSimpan) {
      alert.setType(AlertType.INFO);
      if (!tfNama.equals("") && !tfNoTelp.equals("")) {
        tambahRecord(tfNama.getString(), tfNoTelp.getString());
        alert.setString("Data baru telah berhasil disimpan");              
        display.setCurrent(alert, form);
      } else {
        alert.setString("Data NAMA dan NO. TELP " +
                        "tidak boleh kosong");              
        display.setCurrent(alert, entri);
      }          
    } else if (c == cmdHapus) {
      int pos =
        list.getString(list.getSelectedIndex()).indexOf(" [");
      String nama = list.getString(
       list.getSelectedIndex()).substring(0, pos);
       hapusRecord(nama);
    }
  }
   
  public void tambahRecord(String nama, String noTelp) {
    byte[] temp = null;
    try {
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      DataOutputStream dos = new DataOutputStream(baos);
      dos.writeUTF(nama);
      dos.writeUTF(noTelp);
      temp = baos.toByteArray();
    } catch (IOException ioe) {
      ioe.printStackTrace();
    }
    try {
      rs.addRecord(temp, 0, temp.length);
    } catch (RecordStoreNotOpenException rsnoe) {
      rsnoe.printStackTrace();
    } catch (RecordStoreException rse) {
      rse.printStackTrace();
    }
  }
   
  public void lihatRecord() {
    byte[] temp = null;
    list.setTitle("Daftar Record");
    list.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 nama = dis.readUTF();
          String noTelp = dis.readUTF();
          list.append(nama + " [" + noTelp + "]", null);                  
        } catch (IOException ioe) {
          ioe.printStackTrace();
        }
      }
      list.addCommand(cmdKembali);
      list.addCommand(cmdHapus);
      list.setCommandListener(this);
      display.setCurrent(list);
    } catch (InvalidRecordIDException invID) {
      invID.printStackTrace();
    } catch (RecordStoreNotOpenException rsnoe) {
      rsnoe.printStackTrace();
    } catch (RecordStoreException rse) {
      rse.printStackTrace();
    }
     
  }
   
  public void hapusRecord(String nama) {
    byte[] temp = null;
    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 vNama = dis.readUTF();
          if (vNama.equals(nama)) {
            rs.deleteRecord(i);
            break;
          }                  
        } catch (IOException ioe) {
          ioe.printStackTrace();
        }
      }
      re.rebuild();
      lihatRecord();
    } catch (RecordStoreNotOpenException rsnoe) {
      rsnoe.printStackTrace();
    } catch (RecordStoreException rse) {
      rse.printStackTrace();
    }
  }
       
  public Form entriData() {
    entri = new Form("Entri Data");
    tfNama = new TextField("Nama:", null, 25, TextField.ANY);
    tfNoTelp = new TextField("No. Telepon:", null, 15,
                              TextField.PHONENUMBER);
    entri.append(tfNama);
    entri.append(tfNoTelp);
    entri.addCommand(cmdSimpan);
    entri.addCommand(cmdKembali);
    entri.setCommandListener(this);
    display.setCurrent(entri);
    return entri;
  }
}

15 Jun 2011

Konsep Citra Grey dan Warna

Jumlah warna pada citra grey adalah 256, karena citra grey jumlah bitnya adalah 8, sehingga jumlah warnanya adalah  256, nilainya berada pada jangkauan 0 - 255. Sehingga nilai intensitas dari citra grey tidak akan melebihi 255 dan tidak mungkin kurang dari 0. Model penyimpanannya adalah f(x,y)=nilai intensitas, dengan x dan y merupakan posisi nilai intensitas. Misalkan suatu citra dengan ukuran lebar  = 512 dan tinggi = 512, maka jumlah byte yang diperlukan untuk penyimpanan citra 
grey scale = 512 x 512 x 1
                = 262, 144 byte
                = 0.262 MB
sumber : purnomo, mauridhi hery dan muntasa, arif. Konsep Pengolahan Citra Digital dan Ekstraksi Fitur. Graha Ilmu.

2 Jun 2011

Ikhlas Itu Penting

Ikhlas memang kata yang mudah di ucapkan oleh seseorang. Namun, sangat sulit di lakukan, aplagi menuju Keikhlasan yang haqiqi..Banyak pertanyaan yang mungkin dalam diri kita. "Apakah kita sudah IKHLAS menerima kenyataan hidup ini???", Tetapi pada kenyataannya manusia tak pernah puas dengan apa yang sudah didapatkan. Ikhlas pada hakikatnya mempunyai arti yang sangat luas, tergantung kita bagaimana mengambil definisi dari keikhlasan tersebut. Ikhlas itu sangatlah penting kita lakukan untuk menjalani hidup ini, dengan ikhlas kita akan selalu merasa puas. Ikhlas akan membantu kita untuk menuju jalan yang di Ridhoi-NYA. 
Marilah belajar untuk Ikhlas.