Your SlideShare is downloading. ×
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
168
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. J2MEJava 2 Micro EditionJ2ME dirancang untuk dapat menjalankan program Java pada perangkat-perangkatsemacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuahkomputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiriatas komponen-komponen sebagai berikut : Java Virtual Machine (JVM)Komponen ini untuk menjalankan program program Java pada emulator atau handleddevices. Java API (Application Programming Interface)Komponen ini merupakan kumpulan librari untuk menjalankan dan mengembangkanprogram Java pada handled devices. Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulatorMotorolla.Dalam J2ME dibagi menjadi dua bagian yang dikenal dengan istilah configurationdan profile.J2ME ConfigurationJ2ME Configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karenasetiap handled devices memiliki fitur-fitur yang berbeda-beda, J2ME Configuration inidirancang yakni menyediakan librari standar yang mengimplementasikan fitur standar darisebuah handled devices. Mengapa perlu J2ME Configuration bisa dikatakan merupakan JREpada handled devices. Lingkungan kerja yang dimaksud meliputi Java Virtual Machine yangdigunakan untuk menjalankan program Java.Ada dua kategori J2ME Configuration saat ini, yaitu : CLDC (Connected Limited Device Configuration)Kategori ini umumnya digunakan untuk aplikasi Java pada handphone semacam Nokia,Samsung Java Phone, Motorola i85s, PDA (Personal Digital Assistant) semacam PALM,Pocket PC. Umumnya perangkat-perangkat tersebut hanya memiliki memori berukuran160-512 KiloBytes.
  • 2.  CDC (Connected Device Configuration)Kategori ini umumnya digunakan untuk aplikasi Java pada perangkat-perangkat handleddevices dengan ukuran memori paling tidak 2 Megabytes. Contohnya adalah internet TV,Nokia Communicator dan car television atau TV pada mobil.Perbedaan antara CLDC dan CDC adalah sebagai berikut :CDLC CDCMengimplementasikan subset dari J2SE Mengimplementasikan seluruh fitur padaJ2SEJVM yang digunakan dikenal dengan namaKVMJM yang digunakan dikenal dengan namaCVMDigunakan pada perangkat handled denganukuran memori terbatas (160-512 KiloBytes)Digunakan pada perangkat handled denganukuran memori minimal 2 MbytesProcessor 16 bit atau 32 bit Processor : 32 bitJ2ME ProfileJika J2ME Configuration menyediakan librari-librari Java untuk implementasi fitur-fitur standar dari sebuah handled devices, J2ME Profile menyediakan implementasiimplementasi tambahan yang sangat spesifik dari sebuah handled devices. Kemampuanstandart itulah yang diimplementasikan oleh J2ME Configuration, sedangkan kemampuanfitur lain sangat bergantung pada jenis perangkat handled yang digunakan akandiimplementasikan oleh J2ME Profile.Ada lima kategori J2ME Profile saat ini, yaitu : Mobile Information Device Profile (MIDP) Foundation Profile (FP) Personal Profile RMI Profile Personal Digital Assitance ProfileMIDP menyediakan librari-librari Java untuk implementasi dasar antarmuka (GUI),implementasi jaringan, database dan timer. MIDP dirancang khususnya untuk wirelessphone dan pager. Buku ini hanya akan membahas pengembangan aplikasi wirelessdengan MIDP saja yang bekerja pada CLDC.
  • 3. APLIKASI MIDLETMidlet HelloWordMembuat sebuah project dengan nama HelloWorld. Kemudian buat sebuah file Javabernama HelloWorld.java yang berisi listing program sebagai berikut:import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class HelloWorld extends MIDlet {private Display display ;private TextBox t ;public HelloWorld(){display = Display.getDisplay(this) ;t = new TextBox"My First MIDlet","HelloWorld",256,0;display.setCurrent(t);}public void startApp() {}public void pauseApp() {}public void destroyApp(boolean unconditional) {}}Simpan file diatas pada direktori /src. Selanjutnya lakukan Build. Dari MIDlet HelloWorld : Program Midlet mengimport paket javax.microedition.midlet danjavax.microedition.lcdui. Paket javax.microedition.midletmendefinisikan MIDP dan paket javax.microedition.lcdui menyediakanfungsi-fungsi untuk memanipulasi antarmuka GUI pada handled. Setiap program Midlet harus merupakan turunan dari class Midlet yangdidefinisikan pada paket javax.microedition.midlet. Hal ini mirip denganApplet yaitu setiap applet Java haruslah turunan dari class Applet atau JApplet. MIDlet haruslah mengimplementasikan fungsi-fungsi abstract pada class MIDlet,minimal 3 fungsi berikut :1. public void startApp()2. public void pauseApp()
  • 4. 3. public void destroyApp(boolean unconditional) Setiap program MIDlet tidak boleh memiliki fungsi public static voidmain(String args[]) selayaknya aplikasi Java non-Applet.Menambahkan Ticker pada HelloWordKita akan menambahkan sebuah ticker atau sejenis tulisan yang berjalan pada MIDletHelloWorld yang baru saja kita buat.import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class HelloWorld2 extends MIDlet {private Display display ;private TextBox t ;private Ticker tick ;public HelloWorld2(){
  • 5. display = Display.getDisplay(this) ;t = new TextBox ("My FirstMIDlet","HelloWorld",256,0 ;tick = new Ticker("J2ME") ;t.setTicker(tick);display.setCurrent(t);}public void startApp() {}public void pauseApp() {}public void destroyApp(boolean unconditional) {}}Arsitektur Aplikasi MidletPaket memiliki class MIDlet yang mendefinisikan MIDP (Mobile Information DeviceProfile) dan interaksinya dengan perangkat handled yang bersangkutan. Class ini merupakanclass utama dalam sebuah MIDlet, yaitu semua aplikasi MIDlet harus merupakan turunandari class ini. Class ini merupakan class abstract, sehingga class turunannya harusmengimplementasikan fungsi-fungsi abstract di dalamnya, perhatikan kode Java di bawah ini:
  • 6. package javax.microedition.midlet;import com.sun.midp.midlet.MIDletState;import com.sun.midp.midlet.MIDletSuite;public abstract class MIDlet{protected MIDlet(){state = new MIDletProxy(this);}protected abstract void startApp() throwsMIDletStateChangeException{}protected abstract void pauseApp() {}protected abstract void destroyApp(boolean unconditional)throwsMIDletStateChangeException{}public final void notifyDestroyed(){state.notifyDestroyed();}public final void notifyPaused(){state.notifyPaused();}public final String getAppProperty(String key){return state.getMIDletSuite().getProperty(key);}public final void resumeRequest(){state.resumeRequest();}Private MIDletProxy state ;}Tampak ada tiga fungsi yang bersifat abstract yaitu :protected abstract void startApp() throwsMIDletStateChangeException{}protected abstract void pauseApp() {}protected abstract void destroyApp(boolean unconditional)throws MIDletStateChangeException{}
  • 7. Aplikasi MIDlet sudah pasti merupakan turunan dari class MIDlet diatas, harusmengimplementasikan tiga fungsi diatas. Itulah mengapa pada contoh MIDlet HelloWorlddiatas, Anda menemukan implementasi dari fungsi-fungsi tersebut, sekalipun implementasifungsi tersebut tidak melakukan apa-apa. Fungsi-fungsi yang tidak abstract pada class MIDletbisa Anda gunakan karena otomatis diturunkan ke aplikasi MIDlet Anda, yakni ; Public final void notifyDestroyed();Digunakan oleh MIDlet untuk memberitahukan ke AMS bahwa MIDlet telahdihancurkan dan dibersihkan dari memori. Mengenai AMS ini akan dibahas kemudian. Public final void notifyPaused();Digunakan oleh MIDlet untuk memberitahukan ke AMS bahwa MIDlet telahdinonaktifkan sementara (paused). Public final String getAppProperty(String key);Digunakan oleh MIDlet untuk mengambil informasi properti dari AMS sesuai parameterkey pada fungsi getAppProperty(). Public final void resumeRequest();Digunakan oleh MIDlet untuk meminta ke AMS agar diaktifkan kembali.Ada beberapa istilah penting dalam daur hidup sebuah MIDlet, yaitu: Application Management SoftwareMIDlet berjalan dalam sebuah perangkat handled. Application Management Software inimerupakan software atau program bawaan yang ada dalam perangkat handled tersebutuntuk mengatur manajemen aplikasi MIDlet yang ada. MIDletMerupakan aplikasi yang dijalankan pada sebuah perangkat handled. MIDlet tidakberinteraksi langsung dengan hardware dari handphone, Palm atau perangkat handledAnda yang lain, melainkan berinteraksi melalui Application Management Software.AMS inilah yang akan menerima sinyal dari MIDlet bahwa MIDlet akan dijalankan atauberhenti. MIDlet StateMerupakan status dari sebuah MIDlet yang akan dijelaskan kemudian.
  • 8. Status MidletJika Anda mengenal Java Applet, Anda akan menemukan bahwa Applet dapat beradadalam status init(), start(), stop() dan run(). Untuk MIDlet, ada tiga status dalam daur hidupsebuah MIDlet yaitu:Nama satus KeteranganPaused Status ini terjadi ketika MIDlet selesai diinisialisasi dan tidakmelakukanaksi apapun.Pada status ini MIDlet tidak boleh sedang mengunci suatu sumber daya,misalnya tidak boleh sedang melakukan locking atau mengunci sebuah fileuntuk ditulis yang menyebabkan proses lain tidak bisa menulis ke filetersebut.Secara garis besar, status MIDlet adalah paused pada saat : Setelah MIDlet dibuat dengan konstruktor new() Dari status Active, kemudian berhasil memanggil fungsi MIDlet.pauseApp() Dari status Active, kemudian berhasil memanggil fungsi MIDlet.notifyPaused() Dari status Active, namun ketika akan start() terjaActived Status ini terjadi ketika MIDlet sedang aktif/berjalan dengan normal, yaknisetelah memanggil fungsi MIDlet.startApp()Destroyed Status ini terjadi ketika MIDlet berhenti berjalan (identik dengan exit)sehingga seluruh sumber daya yang digunakan akan dibebaskan. Status initerjadi ketika berhasil dilakukan pemanggilan fungsi MIDlet.destroyApp()atau MIDlet.notifyDestroyed()Eksekusi Sebuah MIDletUmumnya urutan eksekusi sebuah MIDlet adalah sebagai berikut:1. AMS (Application Management Software) menginisialisasi sebuah objek MIDlet,sehingga MIDlet berada pada status Paused.2. Ketika AMS memutuskan bahwa MIDlet sudah waktunya dijalankan, maka AMSmemanggil fungsi MIDlet.startApp() sehingga MIDlet akan mulai aktif berfungsi.3. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan sementara, maka AMSakan memanggil fungsi MIDlet.pauseApp() sehingga MIDlet akan berhenti bekerja.
  • 9. 4. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan selamanya, maka AMSakan memanggil fungsi MIDlet.destroyApp() sehingga alokasi memori yang digunakanoleh MIDlet yang bersangkutan akan dibersihkan.Referensi : Ady Wicaksono, Pemrograman Aplikasi Wireless dengan Java, Elex Media Komputindo

×