Halo teman, aku mau posting lagi nih, pertemuan 5 dari mata kuliah mobile computing. Di sini aku mau mencoba membuat aplikasi sederhana yang didalamnya terdapat fungsi RMS (record management system).

ini sintaks aplikasi tersebut :


 import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.rms.*;
import javax.microedition.midlet.*;

import java.io.*;

public class rms extends MIDlet implements CommandListener{
    private Display display;
    private List list;
    private Command cmdKeluar;
    private Command cmdKembali, cmdHasil, cmdbalik, cmdSimpan;
    private TextField soal1, soal2, soal3, soal4, soal5, id;
    private Form form;
    int nilai1, nilai2, nilai3, nilai4, nilai5;
    int Nakhir;
    private RecordStore rs;
    private RecordEnumeration re;
    private Alert alert;
 
    public rms() {
        form = 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);

        list = new List(null, Choice.IMPLICIT);

        rs = null;
        // membuat atau membuka record store
        try
        {
            rs = RecordStore.openRecordStore("db_KodeBar", true);
        }
        catch (RecordStoreException rse) //check kalau error = exception
        {
            alert.setString("Record store tidak dapat dibuka. " +"Aplikasi akan dihetikan");
            alert.setType(AlertType.ERROR);
            display.setCurrent(alert, null);
            System.exit(1);
        }
    }

    public void startApp() {
        display = Display.getDisplay(this);
        display.setCurrent(form);
        menuList();
    }
 
    public void pauseApp() {
    }
 
    public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
 
    public void menuList(){
        list = new List("MENU UTAMA", List.IMPLICIT);
        list.append("UJIAN", null);
        list.append("Nilai Tertinggi", null);
        list.append("Keluar", null);
        list.setCommandListener(this);
        display.setCurrent(list);
    }
 
    public void UJIAN(){
        form = new Form("UJIAN");
        soal1 = new TextField("1. 1+1 = ?", "", 100, TextField.DECIMAL);
        soal2 = new TextField("2. 10/2 = ?", "", 100, TextField.DECIMAL);
        soal3 = new TextField("3. 2*3 = ?", "", 100, TextField.DECIMAL);
        soal4 = new TextField("4. 10-5 = ?", "", 100, TextField.DECIMAL);
        soal5 = new TextField("5. (7-3)*2 = ?", "", 100, TextField.DECIMAL);
        form.append(soal1);
        form.append(soal2);
        form.append(soal3);
        form.append(soal4);
        form.append(soal5);
        form.setCommandListener(this);
        form.addCommand(cmdKembali);
        form.addCommand(cmdHasil);
        display.setCurrent(form);
    }
 

    public void nama(){
        form = new Form("SIMPAN HASIL");
        id = new TextField("Masukkan nama anda : ","", 100, TextField.ANY);
        form.append(id);
        form.setCommandListener(this);
        form.addCommand(cmdSimpan);
        form.addCommand(cmdbalik);
        display.setCurrent(form);
    }
 
 
    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 var ada isi nya
           {
               tambahRecord(id.getString());
               alert.setString("Data lengkap !, Data sudah disimpan di RMS, untuk melihat gunakan pilihan menu'nilai tertinggi' pada menu utama");
               display.setCurrent(alert);
               display.setCurrent(alert, list);        
               }
           else //jika data kosong
           {
               alert.setString("Data Kurang !, isikan nama anda terlebih dahulu.");
               display.setCurrent(alert, form);
           }
       }
       if(c.getLabel()=="Nilai Tertinggi"){
       lihatRecord();
       }
       else if (c == cmdHasil){
               nama();
       }
       else if (c == cmdbalik){
           UJIAN();
       }else if (c == cmdKembali){
          menuList();
       }else{
           List menu = (List) display.getCurrent();
           switch (menu.getSelectedIndex()){
               case 0:
                   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 == 2){
        a=2;
    }
    else if(a != 2){
        a=0;
    }
    if(b==5){
        b=2;
    }
    else if(b != 5){
        b=0;
    }
    if(c==6){
        c=2;
    }
    else if(c != 6){
        c=0;
    }
    if(d==5){
        d=2;
    }
    else if(d !=5 ){
        d=0;
    }
    if(e==8){
        e=2;
    }
    else if(e != 8){
        e=0;
    }
 
 
    Nakhir = 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(Nakhir);
      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;
    list.setTitle("Nilai Tertinggi");
    list.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 Nakhir = dis.readUTF();
                list.append(id + " = "+ Nakhir +" \n",null);// tampilkan
            }
            catch (IOException ioe) {ioe.printStackTrace();}
      }
      list.addCommand(cmdKembali);
      list.setCommandListener(this);
      display.setCurrent(list);
    }
    catch (InvalidRecordIDException invID) {invID.printStackTrace();}
    catch (RecordStoreNotOpenException rsnoe) {rsnoe.printStackTrace();}
    catch (RecordStoreException rse) {rse.printStackTrace();}

  }
}


Hasil printscreen :





[...]

Continue

Siang teman, aku mau berbagi sedikit tentang apa yang aku alami disemester 5 ini. Pertama seneng sih aku udah semester 5 yang artinya tinggal separo lagi aku mau lulus kuliah dan mendapatkan gelar sarjana :D. Kedua aku juga sudah merasa dewasa untuk mengarungi kehidupanku ke depan karena aku sudah berumur 20 tahun hehehehe. Banyak masalah yang silih berganti datang disemester 5 ini. Yang paling banyak dateng dari kuliah. Apa yang terjadi pada kuliahku semester 5 ??? "sungguh mengenaskan". Kuliah baru berjalan 1 minggu aja sudah gak karuan ribetnya. Banyak jam yang tumbukan sana-sini itu gak tau apa sebabnya katanya sih gara-gara prodiku kekurangan ruangan, sungguh mengenaskan sekali :D. Terus minggu kedua apa yang terjadi, banyak jam kosong. Pertama seneng sih ada jam kosong berarti gk da kuliah bisa maen-maen hehe...tapi lama-kelamaan apa yang terjadi ? aku merasa tidak mendapatkan apa-apa pada semester 5 ini, padahal minggu depan aku sudah UTS. Apakah pada jurusan kalian juga kayak begini ???? aku berpikir tidak. Aku melihat temen-temen kosku dari jurusan lain mereka pada kuliah tepat waktu, jarang ada dosen yang mangkir dari jadwalnya dan juga yang jarang ada dosen dari jurusan mereka yang sering ada urusan sana sinilah, ganti jam seenaknya sendiri, terus yang paling parah ada kuliah yang seharusnya 3 sks jadi 1 sks,,yang 2 sks kemana pak dosen ???? hahahaha. Aku gak nyalahin dosen sih, cuma yang aku tanyain kok jurusanku cari dosen yang kebanyakan urusan sih,,kenapa gak cari dosen murni aja yang mungkin sadar akan tugasnya sebagai dosen yaitu mengajar. Imbas dari semua ini apa coba ? kuliah jadi gak jelas, amburadul, gk dapet apa2, dan yang paling parah adalah banyak mahasiswa yang cuma titip absen gara2 mereka berfikir "ngapain masuk kuliah, paling2 cuma cuap2 gtu ja" gk banget deh,,hahha

Sebenarnya masih banyak lagi cerita di semester 5 ini, tapi aku akan ceritakan besok aja, gmn hasil dari kuliahku semester 5 ini, semoga aku bisa mendapatkan ilmu dari semester 5 ini dan juga aku bisa mendapatkan nilai yang baik dari mata kuliah yang aku ambil disemester 5 ini. okeee,,SEMANGAT !!!!!



[...]

Continue

Pati memang bukan kota seterkenal Bali, Bandung, Jogja, atau Jakarta. Tapi PATI adalah kota yang sangat istimewa bagiku. Dimana aku dilahirkan dan dibesarkan. Banyak kenangan yang selalu menghiasiku ketika aku pergi dari kota itu untuk mencari ilmu. Jika Bali punya JOGER, Jogja punya DAGADU, Pati juga punya KAOS PATI. Aku bangga jadi orang pati dengan memakai KAOS PATI. Silahkan order jika kamu memang menilai kaos ini pantas dipakai oleh orang PATI, maupun orang lain :). Untuk info lebih lanjut silahkan kunjungi Fanpage kami KAOS PATI on fb,







[...]

Continue

Posting lagi nih, hehe. Kali ini saya mau share hasil dari tugas yaitu Membuat FORM. Ikuti sintaks di bawah ini :



import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class textfield extends MIDlet implements CommandListener {
 
    Display tampil;
    Form FormInput, FormHasil;
    TextField name, address, contact, email;
    Command cmdOK, cmdExit,cmdBack;
    ChoiceGroup gender;
    Ticker ticker;
    DateField date;
    Alert alert;
     
    public textfield() {
        cmdOK = new Command("SIMPAN", Command.OK, 1);
        cmdBack = new Command("KEMBALI", Command.BACK, 1);
        cmdExit = new Command("KELUAR", Command.EXIT, 1);    
     
        FormInput = new Form("Data Diri");
     
        name    = new TextField  ("Nama          : ", null, 50, TextField.ANY);
        gender  = new ChoiceGroup("Jenis Kelamin : ", Choice.POPUP);
        gender.append("Laki-Laki", null);
        gender.append("Perempuan", null);
        address = new TextField  ("Alamat        : ", null, 50, TextField.ANY);
        contact = new TextField  ("Telepon       : ", null, 20, TextField.PHONENUMBER);
        email   = new TextField  ("E-mail        : ", null, 20, TextField.EMAILADDR);
        date    = new DateField  ("Tanggal lahir : ", DateField.DATE);
     
        ticker = new Ticker("5302410103 - AHMAD SAIFUL AMRI");
        alert = new Alert("ERROR", "Data yang anda masukkan belum lengkap", null, AlertType.ERROR);

        FormInput.append(name);
        FormInput.append(gender);
        FormInput.append(address);
        FormInput.append(contact);
        FormInput.append(email);
        FormInput.append(date);
        FormInput.addCommand(cmdOK);
        FormInput.addCommand(cmdExit);
        FormInput.setTicker(ticker);
        FormInput.setCommandListener(this);
    }
 
    protected void destroyApp(boolean arg0) {
        notifyDestroyed();
    }
 
    protected void pauseApp() {
        // TODO Auto-generated method stub
    }

    protected void startApp() {
        if (tampil == null){
            tampil = Display.getDisplay(this);
            tampil.setCurrent(FormInput);
        }
    }

    public void commandAction(Command c, Displayable d) {

                if(c == cmdOK){                                      
                        if (name.getString().equals("") || address.getString().equals("")
                                || contact.getString().equals("") || email.getString().equals("")){
                            tampil.setCurrent(alert);
                            alert.setTimeout(Alert.FOREVER);
                            alert.addCommand(cmdBack);
                        }
                        else {
                            FormHasil = new Form("Biodata Anda: ");
                            FormHasil.deleteAll();

                            FormHasil.append ("Nama          : " + name.getString()
                                     + '\n'+'\n' + "Jenis Kelamin : " + gender.getString(gender.getSelectedIndex())
                                     + '\n'+'\n' + "Alamat        : " + address.getString()
                                     + '\n'+'\n' + "Contact       : " + contact.getString()
                                     + '\n'+'\n' + "Email         : " + email.getString()
                                     + '\n'+'\n' + "Tanggal Lahir : " + date.getDate());
                         
                            FormHasil.addCommand(cmdBack);
                            FormHasil.addCommand(cmdExit);
                            FormHasil.setCommandListener(this);
                            tampil.setCurrent(FormHasil);
                        }
                 
                }else if(c==cmdBack){
                    Display.getDisplay(this).setCurrent(FormInput);
                }else if(c==cmdExit){
                    destroyApp(true);
                }
            }
    }



Hasil Printscreenya :





Terima kasih, jika masih ada kesalahan saya pasti akan perbaiki :)
[...]

Continue

Setelah kemarin saya upload tugas lab activity I, sekarang saya mau upload tugas mobile computing selanjutnya yaitu lab activity II.

Sebelumnya kita harus mempunyai java ME, eclipse ME, dan java wireless. Kalau belum punya silahkan instal melalui link dibwah ini :)

1. Java ME
2. Eclipse ME
3. Java Wireless Toolkit



Setelah kita sudah mempunyai semuanya langsung saja buat projectnya, klik File --> New Project --> J2ME, pilih J2ME Midlet Suite --> Next --> beri nama project --> Next --> pada Dexice ganti pada DefaultColorPhone --> Finish.

Setelah project anda muncul di Project Explorer, langkah selanjutnya adalah klik kanan project anda --> pilih New --> Other --> pilih J2ME, dan pilih J2ME Midlet --> Next --> tuliskan nama class nya terserah anda --> klik Finish.


Ketikkan sintaks seperti dibawah ini :

import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;

public class activity2 extends MIDlet implements CommandListener {
Display display;
Command exitCommand = new Command ("Exit", Command.EXIT,1);
Alert activity2Alert;

public activity2() {
activity2Alert = new Alert("Hello Midlet","Hello world! Ahmad Saiful Amri 5302410103", null, AlertType.INFO);
activity2Alert.setTimeout (Alert.FOREVER);
activity2Alert.addCommand (exitCommand);
activity2Alert.setCommandListener (this);
}
protected void startApp() {
if (display == null) {
display = Display.getDisplay(this);
}
display.setCurrent(activity2Alert);
}

public void pauseApp() {
}

public void destroyApp (boolean unconditional) {
}

public void commandAction (Command c, Displayable d) {
if (c == exitCommand) {
destroyApp(true);
notifyDestroyed();
}
}
}

dan ini adalah hasil printscreen running program :)


[...]

Continue

Tugas lagi tugas lagi. Inilah Mahasiswa :D
Kali ini saya mencoba menulis apa yang sudah saya lakukan dalam praktek mata kuliah mobile computing.

PERCOBAAN I
  • Membuat class bank


















  • Membuat class nasabah


  • Membuat class amri



  • Hasil running program














PERCOBAAN II


  • Memodifikasi class Bank dengan mengoverloading constructor













  • Memodifikasi class Nasabah dengan membuat method baru yang akan dioverride di class Amri


  • Memodifikasi class Amri dengan mengoverride method dari class nasabah


  • Hasil running program




PERCOBAAN III


  • Menggunakan constructor lain ketika membuat objek dari class bank



  • Hasil running program



TERIMA KASIH, SELAMAT BELAJAR :)


[...]

Continue

Mata kuliah Pengolahan Citra adalah mata kuliah saya pada semester 5 ini. Materi dalam pengolahan citra ada 6 yaitu : Perbaikan kualitas citra, pemugaran citra, pemampatan citra, segmentasi citra, analisa citra, dan rekonstruksi citra. Kali ini saya akan menulis sedikit pengertian tentang apa sih analisa citra itu.

Analisis citra adalah kegiatan menganalisis citra sehingga menghasilkan informasi untuk menetapkan keputusan. Beberapa hal yang dapat diidentifikasi dari sebuah citra seperti format file citra,ukuran file citra, jumlah pixel, dimensi citra, resolusi citra, dan lain-lain.Ada berbagai macam perangkat lunak yang dapat kita gunakan untuk memperoleh informasi darisebuah citra seperti Microsoft Paint, Microsoft Office Picture Manager, Adobe Photoshop, Gimp,Digimizer, Image Analyzer, dan lain sebagainya.Berikut adalah contoh memperoleh beberapa informasi penting dari sebuah citra menggunakan Image Analyzer. Misalkan gambar yang akan dianalisis adalah sebagai berikut :



Maka ada beberapa informasi dari citra tersebut yang dapat kita ketahui sebagai berikut:

  • File name: AMRI.JPG
  • File tersebut bernama DSC00280 dengan format file JPG (Joint Photographic ExpertsGroup)
  • Image dimension: 800 x 1066 (Dimensi citra)
  • Pixel format: 24 bit
  • Total number of pixel: 73.790
  • Number of color used: 39.612
  • File size: 264 kb (sebelumnya sudah mengalami modifikasi)
  • File date: 9/18/2012
  • Photo date: 2012:09:18 14:54:51
  • 2012:09:18 (Tanggal pengambilan objek), 14:54:51 (waktu pengambilan objek) 
  • Make (Model): Samsung (GT-I8150) Objek diambil dengan kamera HP Samsung (GT-I8150)
  • Exposure time: 1/11 sec. Adalah kecepatan cahaya alat pemoret.
  • Focal length: 3 mm
  • FNumber: F5.8
  • ISO: 200
  • Flash: yes (kondisi lampu kilat/flash kamera dalam status mati/off)

Selain informasi diatas, ada beberapa informasi lain yang menjadi dasar-dasar dalam pengolahancitra digital seperti tampilan histogram, citra brightness, contrast, histogram equalization (perataanhistogram), dan lain-lain.

  • Histogram

Histogram adalah suatu fungsi yang menunjukkan jumlah titik yang ada dalam suatu citra untuk setiap tingkat keabuan. Sumbu X (absis) menunjukkan tingkat warna, sedangkan sumbu Y(ordinat) menunjukkan frekuensi kemunculan titik.



  • Brightness

Brightness adalah proses penambahan kecerahan dari nilai derajat keabuan. Proses brightness ini dilakukan dengan menambahkan nilai derajat keabuan dengan suatu nilai penambah.


  • Contrast
Kontras dari suatu citra adalah proses pengaturan nilai range interval pada setiap nilai derajat keabuan.



  • Histogram Equalization
Histogram equalization adalah suatu proses perataan histogram, di mana distribusi nilai derajatkeabuan pada suatu citra dibuat rata. Untuk dapat melakukan histogram equalization inidiperlukan suatu fungsi distribusi kumulatif yang merupakan kumulatif dari histogram.
[...]

Continue

    Statistik

    Follower