Rabu, 14 Maret 2012


MIDlet merupakan aplikasi yang ditulis untuk MIDP. MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME. MIDP memiliki lapisan (layer) di atas CLDC, API tambahan untuk daur hidup (life cycle) aplikasi, interface, jaringan, dan penyimpanan persisten.

Aplikasi MIDlet adalah bagian dari kelas javax.microedition.midlet.MIDlet yang didefinisikan pada MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan subkelas dari bentuk dasar aplikasi sehingga interface (antarmuka) antara aplikasi J2ME dan aplikasi manajemen pada perangkat dapat terbentuk.

Life Cycle MIDlet
MIDlet terdiri dari beberapa metode yang harus disertakan, yaitu constructor(),startApp()pauseApp()destroyApp(boolean unconditional)

  • Default constructor. Digunakan untuk melakukan inisialisasi dasar, seperti variabel-variabel instance pengaturan. Belum mendapatkan resourcesapapun, karena MIDlet masih dalam state istirahat.

  • Method startApp(). Digunakan untuk mendapatkan resource yang dibutuhkan untuk MIDlet kemudian MIDlet ditempatkan dalam status aktif sedemikian hingga dimungkinkan pengumpulan (akuisisi / acquisition)resource.

  • Method pauseApp(). Digunakan untuk melepas setiap resources yang diperlukan oleh MIDlet. Jika MIDlet menciptakan (sebuah) objek, simpanstate dari objek ke tempat penyimpan tetap dan pasang (set) referensi objek ke null. Jika MIDlet telah memulai threads, tahan atau hentikan thread-thread ini.

  • Method destroyApp(). Digunakan untuk menyimpan state dari MIDlet dan untuk melepas setiap resource yang diperlukan oleh MIDlet. Simpan objek ke tempat penyimpan tetap, dan pasang (set) referensi-referensi objek kenull. Hentikan setiap thread yang diciptakan oleh MIDlet.


  • Ketika MIDlet dijalankan, maka akan diinisialisasikan dengan kondisi pausedan dijalankan fungsi pauseApp().

  • Selanjutnya, ketika midlet dijalankan, midlet akan berada pada kondisiactive, dalam hal ini fungsi standar yang dipanggil adalah startApp().

  • Pada saat user keluar dari MIDlet, maka fungsi destroyApp() akan dijalankan dan memberitahu platform untuk menutup MIDlet dan membersihkan semua resource yang mengacu pada MIDlet.

Struktur Direktori MIDlet
Dalam implementasinya, MIDlet memiliki struktur direktori sebagai berikut:
  • src
    menyimpan source code untuk MIDlet dan kelas lain yang diperlukan.

  • res
    menyimpan resource lain yang dibutuhkan oleh MIDlet, seperti misalnya gambar, icon, dsb.

  • lib
    menyimpan file .jar atau .zip yang berisi library tambahan yang dibutuhkan MIDlet.

  • bin
    menyimpan file .jar, .jad, dan file manifest yang berisi muatan komponen MIDlet setelah di-package.


SIKLUS HIDUP MIDLET


tugas :





1. buat source code di midlet
   
package pkgprak2;

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

/**
 * @author anwar
 */
public class Prak2Midlet extends MIDlet implements CommandListener {
    
    private FormInput frmInput;
    private FormShow1 frmShow1;
    private FormShow2 frmShow2;
    
    private Command cmShow1, cmShow2, cmBack, cmExit;

    public void startApp() {
        if (frmInput == null)
            frmInput = new FormInput();
        if (frmShow1 == null)
            frmShow1 = new FormShow1();
        if (frmShow2 == null)
            frmShow2 = new FormShow2();
        
        cmShow1 = new Command("Show 1", Command.OK, 0 );
        cmShow2 = new Command("Show 2", Command.OK, 1 );
        cmBack = new Command("Kembali", Command.BACK, 0 );
        cmExit = new Command("Keluar", Command.EXIT, 0 );
        
        frmInput.addCommand(cmShow1);
        frmInput.addCommand(cmShow2);
        frmInput.addCommand(cmExit);
        
        frmShow1.addCommand(cmBack);
        frmShow2.addCommand(cmBack);
        
        frmInput.setCommandListener(this);
        frmShow1.setCommandListener(this);
        frmShow2.setCommandListener(this);
        
        Display.getDisplay(this).setCurrent(frmInput);
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable d) {
        
        if (d == frmInput) {
            if (c == cmExit) {
                destroyApp(true);
                notifyDestroyed();
            }
            
            if (c == cmShow1) {
                frmShow1.setNama(frmInput.getNama());
                frmShow1.setEmail(frmInput.getEmail());
                Display.getDisplay(this).setCurrent(frmShow1);
            }
            
            if (c == cmShow2) {
                frmShow2.setTextBox(frmInput.getNama() + " " + frmInput.getEmail());
                Display.getDisplay(this).setCurrent(frmShow2);
            }
            
            
        }
        
        if (d == frmShow1) {
            if ( c == cmBack) {
                Display.getDisplay(this).setCurrent(frmInput);
            }
        }
        
        if (d == frmShow2) {
            if ( c == cmBack) {
                Display.getDisplay(this).setCurrent(frmInput);
            }
            
        }
        
        
    }
}




2.buat clas baru dan tulis sours code nya


package pkgprak2;


import javax.microedition.lcdui.*;


/**
 *
 * @author anwar
 */
public class FormShow2 extends TextBox {
    
    public FormShow2() {
        super("Tampil 2", null, 30, 0);
    }
    
    public void setTextBox(String isi) {
        this.setString(isi);
    }
    
}

3. buat lagi clas baru, beri nama berbeda dan tambahkan source code

package pkgprak2;

import javax.microedition.lcdui.*;

/**
 *
 * @author anwar
 */
public class FormShow1 extends Form {
    
    private StringItem stNama, stEmail;
    
    public FormShow1() {
        super("Tampil 1");
        
        stNama = new StringItem("Nama:", null);
        stEmail = new StringItem("Email", null);
        
        append(stNama);
        append(stEmail);
    }
    
    public void setNama(String nama) {
        stNama.setText(nama);
    }
    
    public void setEmail(String email) {
        stEmail.setText(email);
    }
    
}

4. langkah terakhir buat clas baru lagi tambahkan source ini

package pkgprak2;

import javax.microedition.lcdui.*;

/**
 *
 * @author anwar
 */
public class FormInput extends Form {
    
    private TextField tfNama, tfEmail;
    
    public FormInput() {
        super("Input Data");
        tfNama = new TextField("Nama Anda", null, 15, TextField.ANY);
        tfEmail = new TextField("Email", null, 15, TextField.EMAILADDR);
        append(tfNama);
        append(tfEmail);
    }
    
    public String getNama() {
        return tfNama.getString();
    }
    
    public String getEmail() {
        return tfEmail.getString();
    }
    
}





0 komentar:

Posting Komentar