Jumat, 06 November 2009

Aplikasi Pertamaku

Pada saat kita membuat aplikasi maka diperlukan link, tombol atau item lain yang bisa digunakan user untuk berinteraksi dengan aplikasi. Gunanya tentu saja untuk mengantarkan user ke bagian lain dari aplikasi sesuai yang ditunjuk oleh link, tombol atau link tersebut. API MIDP mempunyai komponen yang dapat digunakan untuk membangun user interface seperti list, radio button, selection box dan lain-lain. 

MenuMidlet01.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MenuMidlet01 extends MIDlet {
private List mainMenu = null;
private Display display;
public MenuMidlet01() {
mainMenu = new List("Menu Midlet", List.
mainMenu.append("Link 1", null);
mainMenu.append("Link 2", null);
mainMenu.append("Keluar", null);
}
public void startApp(){
display = Display.getDisplay(this);
display.setCurrent(mainMenu);
}
public void pauseApp() {
}
public void destroyApp(boolean b) {
}
}

MenuMidlet02.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MenuMidlet02 extends MIDlet implements CommandListener {
private List mainMenu = null;
private Display display;
private Alert alert;
public MenuMidlet02() {
mainMenu = new List("Menu Midlet", List.IMPLICIT);
mainMenu.append("Link 1", null);
mainMenu.append("Link 2", null);
mainMenu.append("Keluar", null);
mainMenu.setCommandListener(this);
}
public void startApp(){
display = Display.getDisplay(this);
display.setCurrent(mainMenu);
}
public void pauseApp() {
}
public void destroyApp(boolean b) {
}
public void commandAction(Command c, Displayable d) {

if (d == mainMenu) {
if (mainMenu.isSelected(0)) {
alert = new Alert("Alert!!");
alert.setString("Link1 ditekan, silakan tunggu..");
display.setCurrent(alert);
}
else if (mainMenu.isSelected(1)) {
alert = new Alert("Alert!!");
alert.setString("Link2 ditekan, silakan tunggu..");
display.setCurrent(alert);
}
else if (mainMenu.isSelected(2)) {
destroyApp(false);
notifyDestroyed();
}
}
}
}

Rabu, 04 November 2009

Apa Itu MIDLET

Suatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy. MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend dengan class MIDlet. Dan dapat meminta parameter dari AMS seperti dirumuskan dalam application descriptor (JAD).

Suatu MIDlet tidak harus memiliki (dan memang harus tidak mempunyai) sebuah method public static void main(String[] argv).Method tersebut tidak akan dikenal lagi oleh AMS sebagai titik awal sebuah program.

 














Siklus MIDlet
Mehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk status “Pause” setelah perintah baru dibuat. AMS memanggil constructor public tanpa argumen dari MIDlet. Jika sebuah exception terjadi dalam constructor, MIDlet memasuki status “Destroyed” dan membuangnya segera. MIDlet masuk ke dalam status “Active” atas pemanggilan method startUp() oleh AMS. MIDlet masuk ke dalam status “Destroyed” ketika AMS memanggil method destroyApp(). Status ini juga kembali diakses ketika method notifyDestroyed() kembali dengan sukses kepada aplikasi. Dengan catatan bahwa MIDlet hanya bisa memasuki status “Destroyed”
sekali dalam masa hidupnya.


Apa Itu MIDP

The Mobile Information Device Profile (MIDP) berada di atas dari CLDC. Anda tidak bisa menulis aplikasi mobile hanya dengan menggunakan CLDC API. Anda harus tetap memanfaatkan MIDP yang mendefinisikan UI.  Spesifikasi MIDP, kebanyakan seperti CLDC dan API lainnya sudah digambarkan melalui Java Community Process (JCP).

JCP melibatkan sebuah kelompok ahli berasal dari lebih dari 50 perusahaan, yang terdiri atas pabrik perangkat mobile, pengembang software. MIDP terus berkembang, dengan versi-versi masa depan yang telah lulus dari proses ketat JCP. Spesifikasi MIDP menggambarkan suatu perangkat MID yang memiliki karakteristikkarateristik ini sebagai batas minimum:

Tampilan : 
  • Ukuran Layar: 96x54
  • kedalaman tampilan: 1-bit
  • Ketajaman pixel: sekitar 1:1
  • Masukan : Satu atau lebih mekanisme user-input: satu keybboard, dua keyboard, atau touch screen

Memory :

  • 256 kilobytes of non-volatile memory untuk implementasi MIDP.
  • 8 kilobytes of non-volatile memory for application-created persistent data
  • 128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap)
  • Jaringan:dua jalur, wireless, bandwidth terbatas

Sound :

  • Kemampuan untuk memainkan nada-nada

MIDP menggambarkan model aplikasi, UI API, penyimpanan dan jaringan yang kuat, permainan dan media API, kebijakan keamanan, penyebaran aplikasi dan ketetapan over-theair.

Apa itu JTWI

The Java Technology for the Wireless Industry (JTWI) menetapkan satu set jasa dan spesifikasi standar. Berdasar spesifikasi JTWI, kata kuncinya adalah “untuk memperkecil fragmentasi API di dalam pasar telepon mobile, dan untuk mengirim spesifikasi yang dapat diprediksi,spesifikasi yang jelas untuk perangkat pabrik, operator, dan pengembang aplikasi”. Dengan penyesuaian kepada JTWI, banyak aplikasi akan berjalan di suatu set yang lebih luas pada perangkat. Perangkat pabrik juga akan beruntung karena sebuah aplikasi yang besar akan tersedia untuk perangkat mereka.






Apa itu CDC

Connected Device Configuration (CDC) adalah super set dari CLDC. CDC menyediakan lingkungan Java runtime yang lebih luas dibandingkan CLDC dan lebih dekat kepada lingkungan J2SE.

CDC Java Virtual Machine (CVM) mendukung penuh Java Virtual Machine (JVM). CDC berisi semua API dari CLDC. CDC menyediakan suatu subset yang lebih besar dari semua class J2SE. Seperti CLDC, CDC tidak menggambarkan setiap class UI. Library UI digambarkan oleh profileprofile di bawah configuration ini. Semua class yang terdapat dalam CDC datang dari package ini :

  • java.io
  • java.lang
  • java.lang.ref
  • java.lang.math
  • java.net
  • java.security
  • java.security.cert
  • java.text
  • java.util
  • java.util.jar
  • java.util.zip

CDC juga memasukkan di dalamnya GCF. CDC memerlukan jenis koneksi tambahan seperti file dan dukungan datagram.

Apa Itu CLDC

The Connected Limited Device Configuration (CLDC) menggambarkan dan menunjuk pada area berikut ini :
  • Fitur Bahasa Java dan Virtual Machine(VM)
  • Library dasar(java.lang.*,java.util.*)
  • Input/Output(java.io.*)
  • Kemanan
  • Jaringan
  • Internationalization

Fitur yang hilang
Fitur tertentu dari J2SE yang dipindahkan dari CLDC adalah :

  • Finalization of class instances
  • Asynchronous exceptions
  • Beberapa error classes
  • User-defined class loaders
  • Reflection
  • Java Native Interface (JNI)
  • Thread groups dan daemon threads

Reflection, Java Native Interface (JNI) dan user-defined class loaders potensial menjadi lubang keamanan. JNI juga membutuhkan memory yang intensif sehingga dimungkinkan untuk tidak mendapat dukungan dari memory rendah sebuah perangkat mobile.

Karakteristik perangkat CLDC
Perangkat yang diincar oleh CLDC mempunyai karateristik sebagai berikut : 

  • Memory minimal 192kb untuk platform Java.
  • Prosesor dengan 16 atau 32 bit.
  • Mengkonsumsi sedikit daya.
  • Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith(biasanya wireless).

CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka(UI) dan penanganan peristiwa(event handling). Adalah merupakan tugas profile yang berada di bawah CLDC untuk menggambarkan area ini. Secara khusus, spesifikasi MIDP menggambarkan daur hidup aplikasi MIDP (MIDlet), library UI dan event handling(javax.microedition.lcdui.*).

 
Verifikasi Class
Spesifikasi CLDC memerlukan semua class untuk melewati proses verifikasi dua tingkat. Verifikasi pertama dilaksanakan diluar perangkat sebelum instalasi pada perangkat. Verifikasi kedua terjadi pada perangkat selama runtime dan dilaksanakan oleh KVM.

The Generic Connection Framework menyediakan API dasar untuk koneksi dalam CLDC. Framework ini menyediakan suatu pondasi umum untuk koneksi seperti HTTP, Socket, dan Datagrams.GCF menyediakan suatu set API yang umum dan biasa yang memisahkan semua jenis koneksi. Perlu dicatat bahwa tidak semua jenis koneksi dibutuhkan untuk diterapkan oleh perangkat MIDP.


Arsitektur J2ME

Dalam pengembangan aplikasi wireless dengan Java, J2ME dibagi menjadi dua buah bagian diantaranya ialah bagian configuration dan profile.

Profile
Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada sebuah perangkat. profile-profile menyediakan user interface(UI) API,persistence, messaging library, dan sebagainya. Satu set library tambahan atau package tambahan menyediakan kemampuan program tambahan. Pemasukan package ini ke dalam perangkat J2ME dapat berubah-ubah karena tergantung pada kemampuan sebuah perangkat. Sebagai contoh, beberapa perangkat MIDP tidak memiliki Bluetooth built-in, sehingga Bluetooth API tidak disediakan dalam perangkat ini.
J2ME mempunyai beberapa profil antara lain :
  1. MOBILE INFORMATION DEVICE PROFILE (MIDP)
  2. Foundation Profile (FP)
  3. Personal Profile
  4. Personal Digital Assistance (PDA)

Configuration
Suatu configuration menggambarkan fitur minimal dari lingkungan lengkap Java runtime. Untuk menjamin kemampuan portabilitas dan interoperabilitas optimal diantara berbagai macam perangkat yang dibatasi sumber dayanya(memory, prosesor, koneksi yang dibatasi), configuration tidak menggambarkan fitur tambahan. Suatu configuration J2ME menggambarkan suatu komplemen yang minimum dari teknologi JAVA. Adalah merupakan tugas profile-profile untuk menggambarkan tambahan library untuk suatu kategori perangkat tertentu.

configuration menggambarkan:

  1. Subset bahasa pemrograman JAVA
  2. Kemampuan Java Virtual Machine(JVM)
  3. Core platform libraries
  4. Fitur sekuriti dan jaringan
  5. J2ME mempunyai dua konfigurasi yaitu `Connected Limited Device Configuration (CLDC) dan Connected Device Configuration (CDC).

Senin, 02 November 2009

J2ME Overview

Bila dibandingkan dengan WAP (wireless application protocol) dengan bahasa pemrograman markup languange-nya yaitu WML (wireless mark up language) maka J2ME memiliki beberapa kelebihan yang berarti. WML sendiri memiliki beberapa kekurangan yaitu : Small display dan limited user input facility. Must always connected. Biasanya devices-nya memiliki memory dan computational resources yang terbatas.

Teknologi J2ME ditujukan untuk cakupan user yang luas sekali dari mulai handphone hingga set-top-box yang powerful seperti halnya sebuah komputer yang dilengkapi dengan J2SE atau J2EE.
J2ME memiliki beberapa keunggulan yaitu : 
Sebagaimana kekhasan aplikasi yang ditulis dengan bahasa pemrograman Java maka aplikasi J2ME memiliki ciri running any where, any time, over any device. Aplikasi dapat dijalankan secara on-line maupun off-line. Memiliki kode yang portable. Safe network delivery Aplikasi yang ditulis dengan J2ME akan memiliki kompatibilitas yang tinggi dengan platform J2SE dan J2EE.

Dalam J2ME dibagi menjadi dua bagian besar yang dikenal sebagai configuration dan profile. Dua istilah ini sangatlah penting dalam pengembangan aplikasi wireless dengan Java sehingga harus dipahami dengan baik.

J2ME configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karena handheld devices memiliki fitur-fitur yang berbeda-beda, J2ME configuration dirancang untuk menyediakan library standar yang mengimplementasikan fitur standar dari handheld devices.

Configuration merupakan Java library minimum dan kapabilitas yang punya oleh para pengembang J2ME , yang maksudnya sebuah mobile device dengan kemampuan Java akan dioptimalkan untuk menjadi sesuai. configuration hanyalah mengatur hal-hal kesamaan sehingga dapat dijadikan ukuran kesesuaian antar device. Dalam J2ME telah didefinisikan dua buah konfigurasi yaitu

- Connected Limited Device Configuration (CLDC) untuk perangkat kecil

- Connected Device configuration (CDC) untk perangkat yang lebih besar

Apa itu J2ME

Sebelum mengenal apa itu j2me sebaiknya kita kenal dulu dengan apa itu java. Java berdasarkan definisi dari Sun adalah sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada komputer standalone atau pada lingkup jaringan. Java itu sendiri berdiri di atas mesin interpreter yang dikenal dengan nama Java Virtual Machine (JVM). JVM ini yang membaca bytecode file .class (hasil compile file .java). Bahasa Java itu sendiri merupakan sebuah bahasa multi platform yang artinya dapat digunakan di berbagai macam sistem operasi mulai dari Linux, Windows, dll. Oleh karena itu dikenal dengan istilah 'write once run everywhere' yang artinya program hanya ditulis sekali tetapi dapat dijalankan di berbagai platform tanpa mengubah kode program.

Java itu dibagi menjadi tiga
  1. Java 2 Standard Edition (J2SE) untuk pengembangan aplikasi desktop dan applet (aplikasi java di browser).
  2. Java 2 Enterprise Edition (j2EE) untuk pengembangan aplikasi server-side dengan mempergunakan EJBs (Enterprise Java Beans), aplikasi web dengan servlet dan JSP dan Teknologi CORBA (Common Object Request Broker Architecture) dan XML (Extensible Markup Language).
  3. Java 2 Micro Edition (J2ME) untuk pengembangan aplikasi perangkat bergerak (mobile).

Nah sekarang saatnya masuk ke Java 2 Micro Edition (J2ME).....


J2ME yaitu bagian dari J2SE yang ditujukan untuk implementasi pada perangkat genggam yang tidak mampu mendukung secara penuh imlementasi menggunakan J2SE dan dirancang untuk dapat menjalankan program Java pada perangkat-perangkat seperti hand phone, PDA (Personal Digital Assistant), Palm, PocketPC, Smart-Phone hingga PDA-Phone yang tidak mempunyai karakteristik yang berbeda dengan komputer biasa misalnya kecilnya jumlah memory pada perangkat genggam.

Sebenernya pada dasarnya J2ME itu terdiri dari 3 bagian yaitu konfigurasi, profil dan paket-paket opsional, berikut penjelasannya.

konfigurasi
yaitu bagian yang berisi JVM dan beberapa library kelas lainnya. Ada dua jenis konfigurasi yaitu CDC (Connected Device Configuration) dan CLDC (Connected Limited Device Configuration).

profile
yaitu bagian perluasan dari konfigurasi artinya selain sekumpulan kelas yang ada di konfigurasi, terdapat juga kelas lain yang lebih spesifik yang didefinisikan di dalam profil. Oleh karena itu profil akan membantu secara fungsional dengan menyediakan kelas-kelas yang tidak terdapat di konfigurasi. profile yang paling populer dari Sun adalah sering disebut MIDP (Mobile Information Device Profile).

paket-paket opsional
yaitu paket tambahan yang dibutuhkan oleh aplikasi sehingga pada saat proses deployment paket-paket tersebut perlu didistribusikan sebagai bagian dari aplikasi yang bersangkutan. Perlu diingat bahwa paket-paket opsional tersebut bukan merupakan paket yang dibuat oleh perusahaan alat yang digunakan.