1. J2ME adalah lingkungan pengembangan yang didesain untuk
meletakkan perangkat lunak Java pada barang elektonik beserta
perangkat pendukungnya. J2ME membawa Java kedunia informasi,
komunikasi, dan perangkat komputasi selain perangkat komputer desktop
yang biasanya lebih kecil dibandingkan perangkat komputer desktop.
J2ME biasa digunakan pada ponsel, peger, PDA dan sejenisnya.(M.
Salahuddin, Rosa A.S, 2006:5).
Menurut (Budi Raharjo 2007:3) J2ME merupakana kombinasi yang
terbentuk antara sekumpulan interface Java yang sering disebut Java API
(application Programming Interface) dengan JVM (Java Virtual Machine)
yang didisain khusus untuk alat, yaitu JVM dengan ruang yang terbatas.
Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan
aplikasi-aplikasi yang dapat berjalan diatas alat (dalam hal ini mobile
device).
Java2 Micro Edition atau J2ME merupakan salah satu teknologi dari Bahasa Pemograman Java
yang memungkinkan pembuatan aplikasi-aplikasi Java bisa berjalan pada perangkat mobile/handpone
atau PDA (Personal Digital Asistent) yang karakteristiknya berbeda dengan PC (personal computer),
seperti kecilnya jumlah memory pada handphone dan PDA, serta keterbatasan interface dari perangkat
tersebut. J2ME juga merupakan lingkungan pengembangan yang didesain untuk meletakkan perangkat
lunak JAVA pada barang elektronik berserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak
berfungsi dengan baik pada sebuah perangkat maka belum tentu juga berfungsi baik pada perangkat
yang lain. J2ME membawa Java ke dunia informasi, komunikasi, dan perangkat komputasi yang lebih
kecil dibandingkan dengan computer desktop. J2ME biasa digunakan pada telepon selular, pager, PDA,
dan sejenisnya.
Teknologi J2ME juga memiliki beberapa keterbatasan jika diaplikasikan pada ponsel. J2ME sangat
bergantung pada device yang digunakan, bisa dari merk ponsel, maupun kemampuan ponsel, dan
dukungan terhadap teknologi J2ME. Misalnya, jika sebuah ponsel tidak memiliki kamera maka jelas J2ME
pada ponsel tersebut tidak dapat mengakses kamera.
Beberapa keterbatasan teknologi J2ME jika diaplikasikan pada ponsel antara lain:
J2ME sangat tergantung pada perangkat (device) yang digunakan, bisa dari segi merek ponsel,
maupun kemampuan ponsel dan dukungan terhadap J2ME.
Ukuran aplikasi, memory ponsel yang terbatas.
2. Sistem kemanan yang dibuat oleh ponsel yang tidak mengijinkan aplikasi J2ME menulis pada
ponsel tersebut.
Salah satu teknologi yang dikembangkan untuk pemrograman aplikasi-aplikasi untuk perangkat
mobile adalah WAP (Wireless Aplication Protocol), namun WAP hanya salah satu dari beberapa teknologi
nirkabel dan dalam perkembangannya, WAP kurang suskes di pasaran.
Berawal dari hal tersebut, perusahaan Sun Microsistem mencoba untuk mengembangkan
teknologi Java yang dapat dijalankan untuk pemrograman wireless. J2ME merupakan salah satu teknologi
Java yang dikembangkan untuk pembuatan aplikasi-aplikasi perangkat wireless. Seperti teknologi Java
yang lain, J2ME terdiri atas beberapa komponen. Antara lain yaitu :
a. Java Virtual Machine (JVM) =>> Komponen ini digunakan untuk menjalankan program-program
Java pada emulator.
b. Java API (Aplication Programing Interface) =>> Koponen ini merupakan kupulan library yang
digunakan untuk menjalankan dan mengembangkan program Java pada handphone.
c. Tools =>> Komponen ini digunakan untuk pengembangan apliaksi Java, semacam emulator Java
Phone.
Connected Limeted Device Configuration (CLDC)
CLDC atau Connected Limited Device Cofiguration adalah perangkat dasar dari J2ME,
spesifikasi dasar yang berupa library atau API yang diimplementasikan pada J2ME, seperti yang
digunakan pada telepon selular, pager, dan PDA. Perangkat tsb dibatasi dengan keterbatasan
memory, sumber daya, dan kemampuan memproses. Spesifikasi CLDC pada J2ME adalah
spesifikasi minimal pada package, class, dan sebagian fungsi Java Virtual Machine yang dikurangi
agar dpat diimplementasikan dengan keterbatasan sumber daya pada alat tersebut, JVM yang
digunakan adalah KVM (Kilobyte Virtual Machine).
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.
3. Mobile Information Device Profile (MIDP)
MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME.
MIDP memilik lapisan diatas CLDC, API tambahan untuk daur hidup aplikasi, antar muka, jaringan,
dan pemyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan pada
MIDP 2.0 dibandingkan MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat
dukunagan memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya Mobile Media
API (MMAPI).
MIDlet
MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah bagian dari class
javax.microedition.midlet.MIDlet yang didefinisikan pada MIDP. MIDlet berupa sebuah class
abstrak yang merupakan subclass dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi
J2ME dan aplikasi manajemen pada perangkat bisa terbentuk.
Daur Hidup MIDlet
MIDlet terdiri dari beberapa method yang harus ada, yaitu contructor(), protected void
startApp() throws MIDletStateChangeException, protected void pauseApp(), protected void
destroyApp (Boolean unconditional) throwsMIDletStateChangeException.
Ketika MIDlet dijalankan maka akan diinisialisasi dengan kondisi pause dan dijalankan
pauseApp(), kondisi berikutnya adalah fungsi MIDlet dijalankan, yaitu pada startApp(). Metode
yang ada tersebut diimplementasikan sebagai protected, hal ini dimaksudkan agar MIDlet lain
tidak dapat memanggil method tersebut. Pada saat pemakai keluar dari MIDlet, maka method
destroyApp() akan dijalankan sebelum MIDlet benar-benar tidak berjalan lagi. Method
notifyDestroyed() akan dipanggil sebelum MIDlet benar-benar tidak berjalan lagi, DestroyApp()
akan memanggil notifyDestroyed(), dan notifyDestroyed() akan memberi tahu platform untuk
menterminasi MIDlet dan membersihkan semua sumber daya yang mengacu pada MIDlet.
J2ME Wireless Toolkit
J2ME Wireless Toolkit adalah perkakas yang menyediakan lingkungan emulator,
dokumentasi beserta contoh-contoh aplikasi JAVA untuk perangkat kecil. J2ME WTK berbasiskan
pada CLDC dan MIDP. J2ME WTK adalah program yang meniru kerja ponsel yang mendukung
MIDP atau yang disebut emulator. Oleh karena itu, belum tentu MIDlet yang berjalan di emulator
4. juga berjalan pada ponsel yang sebenarnya, karena juga bergantung pada kemampuan dan
kapasitas ponsel yang digunakan.
J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada pada J2SE dapat digunakan
pada J2ME, tetapi J2ME mempunyai beberapa library khusus yang tidak J2SE.
Java Platform Micro Edition atau Java ME, adalah salah satu platform java yang dirancang untuk
aplikasi mobile dan sistem tertanam ( lebih enak nyebutnya embedded system). Level Java ME digunakan
untuk merancang perangkat lunak handphone dan PDA. Java ME ini lebih dikenal juga dengan nama Java
2 Platform, Micro Edition atau J2ME. Java ME dirancang oleh Sun Microsystem dan sekarang dimiliki oleh
perusahaan Oracle Corporation.
Java Platform, Enterprise Edition atau Java EE merupakan standar untuk mengembangkan aplikasi
skala besar / enterprise. J2EE banyak digunakan sebagai platform untuk pemrograman di sisi server.
Java Platform Standard Edition atau J2SE banyak digunakan sebagai platform untuk pemrograman
dalam bahasa Java. Platform ini digunakan untuk mendeploy sebuah aplikasi. Java SE terdiri dari virtual
machine yang digunakan untuk menjalankan program java bersama-sama dengan library atau paket.
Perbedaan dengan J2EE adalah bahwa J2SE menambahkan library yang berfungsi untuk
mendeploy program java agar berjalan pada aplikasi server.
Dengan keluarnya versi platform Java telah dipilah-pilah menjadi beberapa edisi :
The Standard Edition(J2SE), Enterprise Edition(J2EE), Mobile Edition(J2ME), dan JavaCard API.
J2SE – Java 2 Platform, Standart Edition Aplikasi Dekstop
J2EE – Java 2 Platform, Enterprise Edition Aplikasi enterprise dengan focus pada
pengembangan sisi webserver, termasuk
servlet, JSP, dan XML
J2ME – Java 2 Platform, Micro Edition Perangkat Mobile
JavaCard Smart Cards
5. Berikut merupakan contoh program sederhana yang menggunakan J2ME.
FORM DAN TICKER.
Apabila sedang menyaksikan tayangan pada televisi akan sering terlihat berita pada bagian bawah
layar yang berupa tulisan berjalan. Atau pada acara yang berhubungan dengan bursa efek akan bisa
dilihat juga berupa tulisan berjalan yang memberikan informasi mengenai keadaan saham pada saat
itu. Untuk membuat “tayangan” seperti itu pada layar ponsel dapat digunakan class Ticker.
Class Ticker tampak seperti animasi teks berjalan terus menerus dari kanan ke kiri. Untuk
menampilkan obyek Ticker yang telah dibuat, kita perlu memanggil method setTicker() yang
didefinisikan pada class Displayable. Ini artinya, method tersebut dapat kita panggil dari obyek
turunan dari kelas Screen maupun Canvas.
Pada modul ini akan mengeksplorasi ticker. Disini akan membuat obyek Ticker dan
mengkaitkannya dengan obyek Form.
Berikut source code yang perlu kita ketikkan
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDTicker extends MIDlet implements CommandListener {
private Form form;
private Display display;
private Ticker ticker;
private Command cmdKeluar;
public MIDTicker() {
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
ticker = new Ticker("Saham TELKOM naik 10 point");
form = new Form("Ticker");
form.setTicker(ticker);
form.addCommand(cmdKeluar);
form.setCommandListener(this);
}
public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
}
}
}
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDTicker extends MIDlet implements CommandListener {
private Form form;
private Display display;
private Ticker ticker;
private Command cmdKeluar;
6. Berikut keterangan kode program di atas:
Untuk membuat objek ticker digunakan baris berikut :
ticker = new Ticker("Ini text berjalan yang akan ditampilan pada layar ");
Sedangkan untuk menambahkan objek ticker pada form digunakan method setTicker(objekTicker),
seperti di bawah ini :
form.setTicker(ticker);
Berbeda pada ponsel lainnya, pada Siemens, teks dari objek ticker menempati baris sama dengan title
dari form. Selain itu, teks pada objek ticker hanya berjalan setelah layar saja.
SETTING TEKS PADA TICKER
Pada class Ticker terdapat dua method yaitu getString() dan setString(String str). Berikut
adalah contoh untuk aplikasi yang memberikan fasilitas bagi user untuk mengubah teks yang
ditampilkan oleh objek ticker. Berikut adalah contoh dari aplikasi tersebut. Aplikasi ini dapat
memodifikasi aplikasi ticker sebelumnya.
Berikut source code yang perlu diketikkan.
7. Aplikasi ini merupakan hasil modifikasi dari MIDTickerLanjut.java. Objek yang ditambahkan
adalah objek textField yang akan digunakan oleh user untuk memasukkan teks yang akan digunakan oleh
objek ticker. Pada konstruktor hanya dilakukan pembuatan objek ticker dan belum ditambahkan pada
objek form. Setelah “tombol” Ticker ditekan baru objek ticker ditambahkan pada form dengan baris
seperti berikut ini:
if (c == cmdTicker) { form.setTicker(ticker); ticker.setString(textField.getString()); }
Untuk menampilkan teks yang diisikan user pada textField digunakan baris berikut:
ticker.setString(textField.getString());
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDTickerLanjut extends MIDlet implements CommandListener {
private Form form;
private Display display;
private Ticker ticker;
private Command cmdKeluar;
private Command cmdTicker;
private TextField textField;
public MIDTickerLanjut() {
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
cmdTicker = new Command("Set Ticker", Command.SCREEN, 2);
textField = new TextField("Teks : ", "", 50, TextField.ANY);
ticker = new Ticker("");
form = new Form("Ticker");
form.append(textField);
form.addCommand(cmdKeluar);
form.addCommand(cmdTicker);
form.setCommandListener(this);
}
public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
}
if (c == cmdTicker) {
form.setTicker(ticker);
ticker.setString(textField.getString());
}
}
}