More than Just Lines on a Map: Best Practices for U.S Bike Routes
J2 me asfi yuli wulandari_1100631025
1. SEKILAS TENTANG J2ME ( JAVA 2 MICRO EDITION )
J2ME (Java 2 Micro Edition) merupakan subset dari J2SE yang ditujukan
untuk implementasi pada peralatan embeded system dan handheld yang
tidak mampu mendukung secara penuh implementasi menggunakan J2SE.
J2ME adalah teknologi Java yang diperuntukkan perngkat-perngakat keci
lconsumer device , terutama wireless. Bebrapa perangkat wireless antara lain
PC, PDA, communicator, embedded device, smart card dan ponsel.
Teknologi Java mungkin merupakan satu-satunya cara memprogram beberapa perangkat, berbagi
logic antara perangkat dan server, pengantaran aplikasi secara dinamis, program yang kompak,
lingkungan pengembangan yang aman dan cepat. J2ME memungkinkan perangkat lunak dapat
di-download perangkat sekaligus memungkinkan layanan yang dapat disesuaikan di beragam
perangkat.
Java2 Micro Edition atau yang biasa disebut J2ME adalah lingkungan
pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang
elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak
berfungsi baik pada sebuah perangkat maka belum tentu juga berfungsi baik pada
perangkat yang lainnya. J2ME membawa Java ke dunia informasi, komunikasi,
dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih
kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada
telepon selular, pager, Personal Digital Assistants (PDA) dan sejenisnya.
J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada
pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunya beberapa library
khusus yang tidak dimiliki J2SE. Arsitektur J2ME dapat dilihat pada gambar
berikut :
2. Teknologi J2ME juga memiliki beberapa keterbatasan, terutama jika
diaplikasikan pada ponsel. J2ME sangat tergantung pada perangkat (device) yang
digunakan, bisa dari segi merk ponsel, maupun kemampuan ponsel dan
dukungannya terhadap teknologi J2ME. Misalnya, jika sebuah ponsel tidak
memiliki kamera, maka jelas J2ME pada ponsel tersebut tidak dapat mengakses
kamera. Keterbatasan lainnya adalah pada ukuran aplikasi, karena memori pada
ponsel sangat terbatas. Sebagian besar ponsel tidak mengijinkan aplikasi J2ME
menulis pada file karena alasan keamanan.
Gambaran J2ME
1. Platform JAVA
Java dibuat pada tahun 1991 oleh James Gosling. Pada awalnya diberi nama Oak,
dimana untuk menghormati pohon yang ada di luar jendela Gosling. Kemudian
namanya diubah ke Java karena telah ada sebuah bahasa yang diberi nama Oak.
Motivasi sesungguhnya dari Java adalah kebutuhan akan sebuah bahasa yang bisa digunakan
pada berbagai platform yang bisa dimasukkan ke dalam berbagai produk elektronik
seperti pemanggang roti dan lemari es. Salah satu dari proyek pertama yang
dikembangkan menggunakan JAVA sebuah remote kontrol yang diberi nama Star 7.
Pada saat yang sama, World Wide Web dan Internet berkembang sangat cepat.
Gosling menyadari bahwa Java dapat digunakan untuk pemrograman Internet.
Dengan keluarnya versi 1.2, platform Java telah dipilah-pilah menjadi beberapa edisi :
The Standard Edition(J2SE), Enterprise Edition(J2EE), Mobile Edition(J2ME), dan JavaCard
API.
3. J2ME Configuration
J2ME Configuration mendefinisikan lingkungan kerja J2ME runtime. Oleh karena setiap
handheld device memiliki fitur-fitur yang berbeda-beda, J2ME Configuration ini dirancang yaitu
menyediakan library standar yang mengimplementasikan fitur standar dari sebuah Handled
device.
Ada dua kategori J2ME Configuration yaitu :
a. CLDC ( Connected Limited Device Configuration )
Digunakan untuk aplikasi java pada perangkat-perangkat keras dengan ukuran memori yang
sangat terbatas, yaitu pada kisaran 160 samapi 512 KiloBytes, seperti handphone, organizer atau
PDA seperti PALM, Poket PC dan two way pagers.
b. CDC (Connected Device Configuration )
Digunakan untuk aplikasi Java pada Handheld devices dengan ukuran memori paling tidak 2
Megabytes, seperti : Internet TV, Nokia, Communicator dan car television.
Configuration merupakan Java library minimum dan kapabilitas yang
dipunya oleh para pengembang J2ME, yang maksudnya sebuah mobile device
dengan kemampuan Java akan dioptimalkan untuk menjadi sesuai. Configuration
hanyalah mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran
kesesuaian antar device. Misalnya sebuah lampu sepeda dirancang sedemikian
sehingga dapat digunakan oleh berjenis-jenis sepeda. Dalam J2ME telah
didefinisikan dua buah konfigurasi yaitu CLDC (Connected Limites Device Configuration)
untuk perangkat kecil dan CDC (Connected Device Configuration) untuk perangkat yang lebih
besar.
4. Profil
Profil merupakan bagian perluasan dari konfigurasi, yaitu sekumpulan kelas yang terdapat pada
konfigurasi, terdapat juga kelas-kelas spesifik yang didefinisikan lagi di dalam profil. Dengan
kata lain, profil akan membantu secara fungsional yaitu dengan menyediakan kelas-kelas yang
tidak terdapat di level konfigurasi. Berikut ini adalah profil J2ME yang tersedia saat ini yaitu :
1. MIDP (Mobile Information Device Profile)
MIDP adalah profil yang disediakan oleh Sun Microsystems. MIDP menyediakan librari-librari
Java untuk implementasi dasar antarmuka (GUI), implementasi jaringan (networking), database,
dan timer. MIDP dirancang khususnya untuk wireless phone dan pager.
2. PDAP (Personal Digital Assistant Profile)
Yaitu profil untuk PDA yang memperluas fungsi-fungsi pada konfigurasi CLDC dan digunakan
khusus untuk menambahkan kemampuan-kemampuan lebih apabila dibandingkan dengan
penggunaan profil MIDP.
3. Foundation Profile
Yaitu profil yang digunakan untuk konfigurasi CDC. Profil ini menambahkan beberapa kelas
dari J2SE ke dalam konfigurasi CDC, dan berperan juga sebagai pondasi untuk membentuk
profil baru lainnya.
4. Personal Profile
Yaitu profil yang mendefinisikan ulang PersonalJava sebagai profil yang dapat digunakan
sebagai profil dalam J2ME. Profil ini merupakan hasil perluasan dari Foundation Profile.
5. RMI Profile
Yaitu profil yang menambahkan dukungan RMI (Remote Method Invocation) ke dalam
konfigurasi CDC.
5. MIDlet
MIDlet adalah bagian dari kelas javax.microedition.midlet.MIDlet yang
didefinisikan pada MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan
sub kelas dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi J2ME
dan aplikasi manajemen pada perangkat dapat terbentuk. MIDlet merupakan aplikasi yang
dijalankan pada sebuah perangkat handheld. MIDlet tidak berinteraksi langsung dengan
hardware dari handheld devices, melainkan berinteraksi melalui AMS (Application Management
Software). AMS inilah yang akan menerima sinyal dari MIDlet bahwa MIDlet akan dijalakan
atau berhenti.
MIDP mendefinisikan kelas-kelas library berikut untuk membangun aplikasi:
a. Javax.microediton.midlet, merupkan package yang berisi kelas-kelas untuk mengatur daur
hidup midlet.
b. Javax.microedition.lcdui, merupakan package yang berisi kelas-kelas yang
user interface dan pemrograman GUI.
c. Javax.microedition.io, merupakan.package yang berisi kelas-kelas dan antarmuka untuk
midp pemrograman jaringan.
d. Javax.io, java.lang and java.util, merupakan package yang berisi I/O, language dan kelas-
kelasutility.
Daur Hidup MIDlet
Daur Hidup MIDlet terdiri dari :
a. Retrieval
AMS menerima MIDlet kemudian disimpan didalam memori. Media untuk mendowload MIDlet
dapat berupa : Kabel serial, port IRDA, atau jaringan wireless.
b. Instalation
Setelah MIDlet di-download, AMS akan menginstall MIdlet Pada Device. Selama proses
instalasi, MIDP akan menjamin MIDlet tidak melanggar akses security.
c. Version Management
AMS akan menyimpan semau informasi mengenai MIDlet yang telah diinstal termasuk
informasi versinya. Ini akan berguna untuk meng-upgrade MIDletke versi baru.
d. Removal
AMS akan menghapus MIDlet dan membersihkan alokasi memori yang digunakan.
Setelah di-Launch oleh AMS Midlet akan berada dalam tiga status berikut :
a. Paused
Status ini terjadi ketika MIDlet selesai disosialisasikan dan tidak melakukan aksi apapun.
b. Active
Status ini terjadi ketika MIDlet sedang berjalan dengan normal, yakni setelah memanggil
fungsiMIDlet.startApp()
c. Destroyed
6. Status ini terjadi ketika MIDlet berhenti berjalan (exit), sehingga seluruh sumber daya yang
digunakan akan dibebaskan. Status ini terjadi ketika berhasil dilakukan pemanggilan
fungsi MIDlet.destroyApp()atau MIDlet.notifyDestroyed().
Daur hidup pembangunan MIDlet terdiri dari :
a. Kompilasi dan pre-verifying.
b. Testing.
c. Packaging
Merupakan operasi terakhir untuk membungkus aplikasi MIDlet menjadi file JAR dan file JAD.
d. Running
Gambar 6: Daurhidup MIDlet
Dalam implementasinya, MIDlet memiliki struktur direktori antara lain sebagai
berikut : 18
1. src
menyimpan source code untuk MIDlet dan kelas lain yang diperlukan.
2. res
Menyimpan sumber daya yang dibutuhkan oleh MIDlet, seperti
misalnya gambar icon.
3. lib
menyimpan file JAR atau ZIP yang berisi library tambahan yang
dibutuhkan MIDlet.
4. bin
menyimpan file JAR, JAD dan file manifest yang berisi muatan
7. komponen MIDlet.
Jenis-jenis aplikasi J2ME
Saat ini terdapat dua jenis aplikasi J2ME yaitu:
a. Walled garden application yaitu aplikasi yang berdiri sendiri atau standalone yang berjalan
padahandphone tanpa perlu mengakses sumber data eksternal melalui jaringan pembawa
atau carier network. Contoh dari aplikasi ini adalah kalkulator atau single player games.
b. Network aware application yaitu aplikasi yang berinteraksi dengan jaringan. Tidak seperti
aplikasi pertama, aplikasi ini memiliki kemampuan untuk mengakses sumber daya eksternal.
Contoh dari aplikasi jenis ini adalah aplikasi email yang berada pada handphone, aplikasi untuk
mendapatkan kembali data alamat-alamat yang tersimpan melalui jaringan, dan
pengiriman email berbagai alamat melalui jaringan data.
INI ADALAH CONTOH PROGRAM SEDERHANA YANG DAPAT DIBUAT DENGAN
MENGGUNAKAN J2ME...
MEMBUAT PROGRAM DATE AND TIME DENGAN J2ME
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Kalender extends MIDlet implements
CommandListener,ItemStateListener
{
private Display tampil;
private Form form;
private Command cmdExit;
private DateField df;
public Kalender()
{
tampil = Display.getDisplay(this);
df = new DateField(“Tanggal Sekarang : “,DateField.DATE);
df.setDate(new java.util.Date());
cmdExit = new Command(“Keluar”,Command.EXIT,0);//Menambahkan
aksi keluar
form = new Form(“Kalender J2ME”); //Title Form