Java2 Micro Editon (J2ME)
Java2 Micro Editon (J2ME)
Pertemuan IX By Seno
Pendahuluan
Java2 adalah generasi ke dua dari java platform (generasi pertama adalah Java Development Kit). Platform java memiliki tiga buah edisi yang berbeda yaitu: J2EE (Java2 Enterprice Edition), J2SE (Java2 Second Edition) dan J2ME (Java2 Micro Edition). J2ME yang merupakan bagian dari J2SE adalah program java yang khusus digunakan untuk membuat aplikasi di mobile device seperti handphone, PDA, dll. Keunggulan J2ME adalah kemampuannya berjalan diperangkat yang memiliki memory yang relatif kecil. Keterbatasan J2ME sangat tergantung pada perangkat yang digunakan, terutama jika diaplikasikan di handphone, bisa dari segi merk, kemampuan dan dukungannya terhadap J2ME. Pada J2ME terdapat dua konfigurasi yaitu CLDC (Connected Limited Device Configuration) untuk perangkat kecil dan CDC (Connected Device Configuration) untuk perangkat yang lebih besar.
Fakultas Teknologi Informasi Universitas Budi Luhur
Pendahuluan
J2ME terdapat 2 buah profile, yaitu MIDP (Mobile Information Device Profile) dan Foundation Profile. MIDP adalah spesifikasi dari sebuah profil J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka, jaringan dan penyimpanan persistensi. MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi 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 antar muka antara aplikasi J2ME dan aplikasi manajemen pada perangkat dapat terbentuk. MIDlet terdiri dari dari beberapa methode yang harus ada yaitu
constructor(), protected void startApp() throws MIDletStateChangeException, protected void pauseApp() , protected void destroyApp() throwhs MIDletStateChangeException.
src menyimpan source code untuk MIDlet dan kelas lain yang diperlukan res menyimpan suber daya yang diperlukan seperti gambar icon lib menyimpan file JAR atau ZIP yang berisi library tambahan yang dibutuhkan bin menyimpan file JAR, JAD, dan file manifest yang berisi muatan komponen MIDlet.
Fakultas Teknologi Informasi Universitas Budi Luhur
J2ME Wireless Toolkit (WTK) adalah emulator (meniru kerja ponsel) aplikasi J2ME untuk small device. Oleh sebab itu aplikasi yang berjalan di emulator belum tentu dapat berjalan di device yang sebenarnya, tergantung pada kemampuan dan kapasitas device yang digunakan. J2ME WTK berbasiskan pada CLDC (Connected Limited Device Configuration) dan MIDP (Mobile Information Device Profile). J2ME WTK dapat di-download di http://java.sun.com/j2me. Untuk menjalankan program, terlebih dahulu harus menginstall JDK (Java Development Kit) dan Java Wireless Toolkit pada komputer, kemudian buka All Program J2ME Wireless Toolkit Ktoolbar hingga muncul jendela seperti gambar berikut:
Untuk membuat project aplikasi J2ME, klik New Project, lalu isikan nama project dan nama kelas MIDlet, lalu klik tombol Create Project. Seteleh project selesai dibuat maka pada direktori install/apps atau C:/WTK22/apps akan terbentuk sebuah direktori dengan nama yang sama dengan nama project yang baru saja dibuat. Di dalam direktori tersebut terdapat beberapa direktori diantaranya yaitu bin, lib, res dan src, serta sebuah file project.properties yang menyimpan setting MIDlet.
NamaProject NamaKelas
Setting dapat dilakikan di KToolbar. Klik setting untuk melakukan setting akan muncul jendela seperti gambar di bawah, jika ingin menggunakan settingan standar klik Ok:
API Selection
API / Spesifikasi Mobile Media API (MMAPI) Wireless Messaging API (WMAPI) Web Service Acces for J2ME PDA Profile for J2ME Fungsi API Keperluan pengaksesan multimedia Pengiriman pesan Menyediakan akses standar dari J2ME ke web server Mendefinisikan profile dengan API standar untuk perangkat sejenis PDA Spessifikasi yang berhubungan dengan bluetooth,pengiriman object dan Service Discovery Protocol Berhubungan dengan pepbuatan grafik 3 dimensi
Tab required dan optional merupakan setting yang berisi atribut MIDlet
User Defined
Tab User Defined digunakan untuk mendefinisikan properti yang biasanya digunakan untuk pengaksesan sumber daya dalam aplikasi J2ME. Untuk menambahkan properti klik Add lalu masukkan key dan value.
MIDlets
Tab MIDlets berfungsi untuk mendefinisikan nama MIDlet, nama kelas utama aplikasi, dan icon aplikasi yang diisi dengan nama file icon yang akan digunakan, file icon diletakkan dalam direktori res.
Tombol Built digunakan untuk mengkompilasi program. Setelah proses kompilasi selesai, akan terbentuk beberapa direktori baru di antaranya :
class kumpulan file .class hasil kompilasi setelah dipreverifikasi tmpclasses kumpulan file .class sebelum dipreverifikasi Tmplib menyimpan copy file dari file JAR dan ZIP yang berada pada direktori lib dimana didalamnya telah dikonversi menjadi bentuk yang telah dipreverivikasi.
Setelah proses kompilasi selesai, klik tombol Run untuk menjalankan aplikasi.
Fakultas Teknologi Informasi Universitas Budi Luhur
Program Pertama
Jalankan J2ME Wireless Toolkit KToolbar Klik Create Project, lalu ketikkan HelloWord di Project Name dan Midlet Class Name. Akan muncul window untuk melakukan setting, klik Ok untuk settingan Standard. Buka editor (misalnya: JCreator, notepad, dll), lalu ketikkan program di slide berikut. Simpan program tersebut dengan nama HelloWord.java dan simpan di C:/WTK22/apps/HelloWord/src/ Kompile program dengan meng-klik tombol Build pada KToolbar, jika tidak ada error, lanjutkan dengan meng-klik tombol Run. Maka akan muncul Emulator handphone, klik keypad Launch pada emulator. Untuk keluar dari prorgam klik tombol keypad exit
Fakultas Teknologi Informasi Universitas Budi Luhur
HelloWord
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class HelloMIDlet extends MIDlet implements CommandListener { private Form mMainForm; public HelloMIDlet(){ mMainForm = new Form("Hello World"); mMainForm.append(new StringItem(null, "Hello Teman Teman Budiluhur")); mMainForm.addCommand(new Command("Exit", Command.EXIT,0)); mMainForm.setCommandListener(this); } public void startApp() { Display.getDisplay(this).setCurrent(mMainForm); } public void pauseApp() {} public void destroyApp(boolean unconditional){} public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }
Fakultas Teknologi Informasi Universitas Budi Luhur
Komponen-komponen J2ME
Display Displayable Screen Canvas Graphics Font Command List Alert Ticker TextBox Form Item TextField ChoiseGroup DateField Gauge Image ImageItem StringItem CustomItem
Fakultas Teknologi Informasi Universitas Budi Luhur
Display
Display merupakan objek yang merepresentasikan pengelola layar pada perangkat. Pada sebuah MIDlet hanya terdapar sebuah objek Display. Display menyediakan methode untuk menggambar dan menampilkan elemen UI grafis pada layar. Display juga menyediakan methode untuk mengetahui property layar pada perangkat, apakah perangkat mendukung warna atau tidak. Pada library J2ME, objek Display terdapat pada kelas javax.microediton.lcdui.Display;
Displayable
Adalah kelas abstrak dari user interface. Memiliki dua sub kelas yakni :
Canvas : sebagai antarmuka level rendah Screen : sebagai antarmuka level tinggi
Suatu MIDlet boleh terdapat lebih dari satu objek Dislayable, namun pada satu saat hanya dapat ditampilkan satu buah objek Displayable oleh objek Display. Terdapat pada kelas javax.microedition.lcdui.Displa yable;
Menambahkan CommandListener
boolean isShown()
Screen
Adalah kelas di atas semua user interface level tinggi (superclass). Didefinisikan pada library J2ME javax.microediton.lcdui.Screen; Methode String getTitle() void setTitle(String str) Ticker getTicker() void setTicker(Ticker ticker) Keterangan Mengembalikan nilai title Mengeset Title Screen Mengembalikan ponter ticker Mengeset Ticker pada screen
Canvas
Merupakan sub kelas dari Displayable yang menggunakan UI level rendah. Semua elemen yang akan ditampilkan harus dipasang pada Canvas dengan menggunakan objek Graphics. Canvas mempunyai methode paint(Graphics g) yang akan dipanggil setiap kali Canvas terbentuk dan methode repaint() dipanggil.
Methode
Int getWidth() Int getHeight Abstract void paint(Graphics g) Final void repaint() Final void repaint(int x, int y, int width, int height) Void setFullScreenMode(boolean mode)
Keterangan
Lebar canvas Tinggi canvas Menggambar canvas menggunakan graphics Menggambar ulang canvas Menggambar ulang canvas pada wilayah tertentu Satu layar penuh
Graphics
Adalah objek yang digunakan untuk menggambarkan gambar, maupun string pada layar. Akan dipanggil otomatis saat objek canvas terbentuk Konstanta Graphics.LEFT Keterangan Paling kiri horisontal
Graphics.HCENTER
Graphics.RIGHT Graphics.TOP
Center horisontal
Graphics.BUTTOM
Graphics.VCENTER
Fakultas Teknologi Informasi Universitas Budi Luhur
Methode Graphics
Void translate(int x, int y) Int getTranslateX() Int getTranslateY() Memindahkan titik origin 0,0 ke x, y Nilai koordinat x setelah translasi Nilai koordinat y setelah translasi
Void setClip(int x, int y, int width, int Mengatur wilayah clip height) Void clipRect(int x, int y, int width, int height) Int getClipX() Int getClipY() IntGetCliptHeight() IntGetClipWidth() Mengiris wilayah seluas x X y Koordinat x clip Koordinat y clip Panjang clip Lebar clip
Fakultas Teknologi Informasi Universitas Budi Luhur
Methode Graphics
Methode Void setColor(int RGB) Keterangan Warna dengan kombinasi RGB
Void setColor(int red, int green, int Warna dengan spesifikasi blue) komponen RGB
Int getColor() Int getRedComponent() Nilai warna dalam integer Nilai komponen merah
Int getGreenComponent()
Int getBlueComponent() Void setGrayScale(int value) Int getGrayScale()
Font
Digunakan untuk antar muka level rendah (spt canvas) Digunakan untuk mendefinisikan String atau karakter ke layar
Mode STYLE_BOLD STYLE_ITALIC STYLE_UNDERLINED STYLE_PLAIN Jenis(face) FACE_MONOSPACE FACE_PROPORTION AL FACE_SYSTEM Ukuran SIZE_LARGE SIZE_SMALL SIZE_MEDIUM
Methode Font
Methode Static Font getFont(int face, int style, int size) Keterangan Mengembalikan nilai font baru
TextBox
Adalah sebuah objek yang ditujukan agar user dapat memasukkan text dan mengeditnya. Merupakan sub kelas dari Screen
Keterangan Membuat textbox dengan nama title, text text ukuran maxSize dan batasan constarints Menghapus karakter mulai dari karakter ke offset sepanjang length Menambahkan String src pada posisi position 1 Mengganti isi textbox pada index ke offset (mulai dari 0), sepanjang length dengan data
Methode TextBox(String title, String text, int maxSize, int constraints) Void delete(int offset, int length)
Void insert(String src, int position) Void setChars(char[] data, int offset, int length)
Methode TextBox
Methode Keterangan
Form
Merupakan halaman untuk menginput data. Bisa terdiri dari komponen-komponen yang disebut item. Pengaksesan item-item dapat dilakukan dengan menggunakan index.
Methode Form(String title) Form(String title, item[] item) Int append(Image img) Int append(Item item) Int append(String str) Void delete(int item) Void insert(int itemNum, Int item) Item get(int itemNum) Void set(int itemNum, Item item) Void setItemSetListener(ItemSetListener iListener) Int size() Keterangan Membuat form dengan nama title Membuat form dg nama title, dan elemen item Menambahkan image Menambahkan item Menambahkan string Menghapus item Menambah item dengan index itemNum Mengembalikan item dengan index itemNum Mengganti item dg index itemNum dg item baru Menambah item listener pada form Mengembalikan jumlah item pada form Fakultas Teknologi Informasi Universitas Budi Luhur
Item
Adalah kelompok dari elemen grafik yang dapat ditambahkan ke form (ImageItem, StringItem, TextField, DateField, ChoiseGroup dan Gauge). Komponen-komponen yang dapat dimasukan
Methode Form String getLabel() Void setLabel(String label) Tipe Item Keterangan Mengembalikan nilai label Mengeset label item Keterangan
Item.BUTTON
Item.HYPERLINK Item.PLAIN
TextField
Adalah sebuah objek untuk menginputkan text. Merupakan sub kelas dari Item Mempunyai batasan : TextField.ANY (Mengijinkan semua inputan karakter) TextField.EMAILADDR (hanya mengijinkan alamat inputan email) TextField.NUMERIC (hanya mengijinkan inputan numeric) TextField.PHONENUMBER (hanya mengijinkan nomor telepon) TextField.URL (hanya mengijinkan alamat URL) TextField.PASSWORD (biasanya gabungan TextField.PASSWORD | TextField.ANY atau TextField.PASSWORD | TextField.NUMERIC)
Fakultas Teknologi Informasi Universitas Budi Luhur
Methode TextField
Methode Int getChars(char[] data) String getString() Void setString(String text) Int getConstraints() Void setConstraints(int constraints) Keterangan Memasukkan text pada textbox ke array data Mengembalikan text pada texbox Mengatur isi textbox Mengembalikan nilai batasan Mengatur batasan (constraints)
Int getMaxSize()
Int setMaxSize(int maxSize) Int getCaretPosition() Int size() Void TextField(String label,String text, int maxSize, int conctraints ) Void delete(int offset, int length) Void insert(String src, int position)