Profil merupakan bagian perluasan dari konfigurasi, jadi profil menyediakan kelas-kelas yang tidak terdapat pada bagian konfigurasi. Contoh profile adalah MIDP (Mobile Information Device Profile), Fondation profile (untuk konfigurasi CDC/Connected Device Configuration), PDAP (Personal Digital Assistant Profile/profil untuk PDA), Personal profile (Profil perluasan dari Fondation profile), RMI Profile (Remote Method Invocation/RMI ke dalam konfigurasi CDC).
J2ME mempunyai beberapa profil antara lain : 1. Mobile Information Device Profile (MIDP). 2. Foundation Profile (FP).
3. Personal Profile.
Gambar 2.8 : Java 2 Micro Editon (J2ME)
Dilihat dari gambar diatas maka J2ME mempunyai lapisan konfigurasi dan profil yang didukung oleh Java Virtual Machine (C-Virtual Machine dan K-Virtual Machine)
J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterai, layar yang kecil dan bandwith jaringan yang rendah.
Dengan perkembangbiakan perangkat mobile konsumen dari telepon, PDA, alat elektronik lainnya, Java menyediakan suatu lingkungana yang portable untuk mengembangkan dan menjalankan aplikasi pada perangkat ini.
Program J2ME, seperti semua program Java adalah diterjemahkan oleh VM. Program – program tersebut dikompile
ke dalam bytecode dan diterjemahkan dengan Java Virtual Machine (JVM). Ini berarti bahwa program – program tersebut tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi – aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda.
Inti dari J2ME terletak pada configuration dan profile – profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan.
Gambar 2.9 : Arsitektur J2ME
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 build-in, sehingga Bluetooth API tidak disediakan dalam perangkat ini.
2.8.2.1 Komponen- Komponen J2ME • Display:
Merupakan Objek yang berfungsi untuk megatur layar. Pada sebuah MIDlet hanya terdapat satu buah objek Display. Display menyediakan fitur-fitur untuk menggambar dan menampilkan elemen grafis kepada pengguna pada layar. Objek Display juga menyediakan suatu metode untuk mengetahui properti layar perangkat seperti apakah layar perangkat mendukung layar berwarna atau tidak.
Displayable:
Displayable adalah kelas abstrak dari user interface. Displayable memiliki dua buah sub kelas yaitu
Canvas sebagai user interface level rendah dan Screen sebagai user interface level tinggi. Objek Displayable hanya bisa dimunculkan pada satu waktu yang disebut dengan current Displayable. Perbedaan Displayable dengan Display adalah apabila dalam suatu MIDlet hanya boleh terdapat satu objek Display, sedangkan Displayable boleh lebih dari satu. Tetapi pada suatu waktu hanya dapat ditampilkan satu Displayable oleh objek Display misalnya dalam satu MIDlet diperbolehkan ada banyak Canvas yang ditampilkan bergantian oleh Display.
• Screen:
Screen adalah kelas diatas semua user interface level tingi atau disebut juga superclass. Sebagian besar komponen Screen tidak mengijinkan penambahan komponen lain dan penghapusan komponen screen tersebut. Komponen itu antara lain: List, TextBox, dan Alert.
• Canvas:
Canvas merupakan sub kelas dari Displayable yang menggunakan user interface level rendah . Semua elemen yang akan ditampilkan pada layar mobile device harus digambar sendiri pada Canvas dengan menggunakan objek grafik.
• Graphics:
Graphics adalah objek yang digunakan untuk menggambarkan gambar, maupun string pada layar. Objek Graphics tidak perlu dibuat karena otomatis akan dipanggil pada saat Canvas terbentuk.
• Font:
Font digunakan pada user interface level rendah. Font digunakan untuk mendefinisikan mode sebuah karakter atau string ke layar.
• Command:
Command adalah objek yang memungkinkan pemakai melakukan aksi. Objek fungsi command sama dengan button pada aplikasi-aplikasi yang ad di desktop. Command membutuhkan interface CommandLIstener untuk menangkap event dari Command.
• List:
List menyediakan fungsi memilih elemen dalam List kepada pengguna. Elemen tersebut dapat berupa teks, string, maupun gambar.
• Alert:
Alert adalah sejenis pesan yang tampil di layar yang menampilkan teks maupun gambar ke layar yang berguna untuk memberikan suatu informasi ke pengguna. • Ticker:
Objek Ticker dapat berasosiasi dengan objek sub kelas dari Screen. Ticker merupakan objek yang berupa tulisan berjalan. Arah dan kecepatan dari ticker tidak dapat diatur secara manual, karena telah diatur oleh sistem dan Ticker yang sedang berjalan tidak dapat dihentikan oleh aplikasi.
• TextBox:
TextBox adalah sebuah objek yang ditujukan agar pemakai dapat menuliskan teks dan mengeditnya.
• Form:
Form dapat dianggap sebagai halaman untuk memasukkan data. Form dapat terdiri dari komponen-komponen yang biasa disebut dengan item. Kumpulan Item yang ada pada sebuah Form pada konsepnya disimpan di dalam array, sehingga pengaksesannya dapat dilakukan dengan menggunakan indeks.
• Item:
Item adalah kelompok besar dari elemen grafis yang dapat ditambahkan ke dalam objek Form. Item merupakan kelompok yang lebih besar dibandingkan semua komponen yang dapat ditambahkan pada Form. Komponen-komponen yang termasuk dalam item antara lain: ImageItem, StringItem, TextField, DateField, ChoiceGroup, dan Gauge.
• TextField:
TextField adalah sebuah objek untuk memasukkan berupa text ke dalam suatu form. Yang membedakan TextBox dan TextField adalah TextBox merupakan sub kelas dari Screen sedangkan TextField merupakan sub kelas dari Item. Dan juga pada saat ditampilkan TextField bisa bersama Item yang laen sedangkan TextBox hanya dapat ditampilkan sendiri.
• ChoiceGroup:
ChoiceGroup adalah kelompok yang dapat dipilih dengan menyeleksi pilihan yang ada dalam kelompok tersebut.
• DateField:
DateField merupakan elemen untuk menampilkan tanggal dan informasi waktu dalam sebuah objek Form • Image:
Sebuah Image menyimpan data grafis gambar. Image dapat ditambahkan pada user interface level tinggi seperti Form, akan tetapi Image tersebut bersifat immutable artinya image tidak dapat dimodifikasi setelah dibuat.
• ImageItem:
Merupakan Objek untuk menampilkan gambar seperti objek Image, hanya saja ImageItem dilengkapi dengan adanya fasilitas pengaturan layout.
• StringItem:
StringItem menampilkan sebuah label statis dan sebuah pesan yang berupa teks.
• CustomItem:
CustomItem adalah bagian dari Item yang dapat dibuat sendiri, jadi CustomItem bukan merupakan library standar dari J2ME
2.8.2.2 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 :
• Subset bahasa pemograman JAVA
• Kemampuan Java Virtual Machine (JVM) • Core Platform Libraries
• Fitur sekuriti dan jaringan
2.8.2.3 Profile
Suatu profile menggambarkan set-set tambahan dari API dan fitur untuk pasar tertentu, kategori perangkat atau industri. Sementara configuration menggambarkan library dasar, profil – profil menggambarkan library yang penting untuk membuat aplikasi – aplikasi efektif. Library ini memasukkan user interface, jaringan dan penyimpanan API.
2.8.2.4 CLDC (Connected Limited Device Configuration)
CLDC merupakan perangkat atau konfigurasi dasar dari J2ME. CLDC sebenarnya berupa library dan API (Application Programming Interface) yang diimplementasikan pada J2ME. Konfigurasi ini biasanya untuk alat-alat kecil seperti telepon seluler (mobile phone), pager, dan PDA. Peralatan tersebut biasanya mempunyai keterbatasan memori (RAM), sumber daya, dan kemampuan memproses. Spesifikasi CLDC dan sebagian fungsi Java Virtual Machine yang dikurangi (KVM/Kilobyte Virtual Machine).
Gambar 2.10 : KVM
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.*) • Keamanan Sistem Operasi KVM CLDC Kumpulan Library MIDP
• Jaringan
• Internationalization
Fitur tertentu dari J2SE yang dipindahkan dari CLDC adalah : • Finalization of class instance
• Asynchronous exceptions • Beberapa error classes • User-defined class loader • 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 mendapatkan dukungan dari memory rendah sebuah perangkat mobile.
Pada bagian ini secara detail CLDC diperlukan untuk pengembangan aplikasi wireless dengan MIDP implementasinya CLDC digunakan untuk program Java pada perangkat keras dengan ukuran memori yang terbatas, pada 160 sampai dengan 512 Kilobyte. Akibatnya, fitur fitur yang kurang penting untuk
diimplementasikan dalam handheld device yang bersangkutan dari Java 2 harus dibuang.
Karakteristik Perangkat CLDC
Perangkat yang diincar oleh CLDC mempunyai karakteristik sebagai berikut :
• Memory minimal 192kb untuk platform Java. • Prosesor dengan 16 atau 32bit.
• Mengkonsumsi sedikit daya.
• Terbatas, koneksi jaringan yang sementara dengan pembatasan bandwith (biasanya wireless).
CLDC tidak menggambarkan instalasi dan daur hidup sebuah aplikasi, antarmuka (User Interface) 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.*).
2.8.2.5 MIDP
MIDP merupakan profil yang banyak digunakan dan populer dari J2ME. Jika Anda membeli mobile phone, perhatikan ada yang MIDP 1.0 (atau banyak yang menyebutnya Java) dan
MIDP 2.0 (Java 2.0). Perlu diperhatikan MIDP 1.0 untuk pemrograman teks, sedangkan MIDP 2.0 untuk Multimedia (teks, foto, video, animasi, dan lain-lain). Untuk lebih jelasnya lihat tabel 2.2 Perbandingan MIDP 1.0 dengan MIDP 2.0.
Pemrograman mobile phone Java dengan J2ME WTK 2.2 tampilannya juga berupa GUI/UI (Graphical User Interface/UserInterface) atau grafis, tetapi tidak seperti pemrograman J2SE memakai komponen AWT (Abstract Window Toolkit) dan Swing.
Pada pemrograman J2ME WTK tampilan grafis dikendalikan oleh paket lcdui (javax.microedition.lcdui), paket ini dikembangkan oleh JCP (Java Community Process). MIDPEG (MIDP Expert Group) memakai paket lcdui tidak memakain komponen AWT dan Swing karena AWT kaya akan fitur sehingga membutuhkan memori yang besar dan AWT memang dirancang untuk pemrograman desktop (J2SE).
Tabel 2.2 Perbandingan MIDP 1.0 dengan MIDP 2.0
Spesifikasi MIDP 1.0 MIDP 2.0
Display (Layar) Ukuran 96x54 Ukuran 96x54 Ke dalam Display 1-bit 1-bit
Bentuk Pixel (Rasio Aspek)
Mendekati 1:1 Mendekati 1:1
Input Keyboard dan Touch Screen
Keyboard dan Touch Screen
Jaringan Dua arah, tanpa kabel (wireless)
Dua arah, tanpa kabel (wireless) Library J2ME yang bukan Library J2SE javax.microeditio n.lcdui, Javax.microeditio n.midlet, Javax.microeditio n.rms javax.microedition.lcd ui, javax.microedition.mi dlet, javax.microedition.em s, javax.microedition.lcd ui.game, javax.microedition.me dia, javax.microedition.pki Multimedia - Memiliki kemampuan memainkan file-file multimedia (suara dan video)
2.8.2.6 MIDlets
Aplikasi yang berjalan pada sebuah perangkat yang mendukung MIDP disebut dengan MIDlets, atau lebih singkatnya MIDlet merupakan aplikasi yang dibuat menggunakan Java 2 Micro Edition dengan profile Mobile Information Device Profile (MIDP). MIDP dikhususkan untuk digunakan pada handset dengan kemampuan CPU, memori, keyboard dan layer yang terbatas, seperti mobile phone, pager, PDA dan sebagainya.
Gambar 2.11 : Arsitektur aplikasi MIDP
Pada Gambar Menunjukkan bahwa aplikasi yang mendukung perangkat MIDP adalah aplikasi MIDlet yang juga termasuk bagian dari Java 2 Micro Edition.
Daur Hidup (LifeCycle) MIDlet
Lifecycle dari sebuah MIDlet ditangani oleh Application Management Software (AMS). AMS adalah sebuah lingkungan tempat siklus dari sebuah MIDlet, mampu untuk diciptakan, dijalankan, dihentikan maupun dihilangkan. AMS sering pula disebut dengan Java Application Manager (JAM). MIDlet memiliki beberapa state, yaitu Pause, Active dan Destroy. Ketika masing - masing state dipanggil, beberapa method yang bersesuaian dipanggil. Method-method tersebut merupakan bawaan dari J2ME. Untuk menjelaskan proses MIDlet dalam Java Aplication Manager (JAM) adalah pada Gambar
2.8.2.7 CDC (Connected Device Configuration)
CDC termasuk spesifikasi dan konfigurasi J2ME. CDC merupakan perangkat atau konfigurasi superset dari CDC.
Tabel 2.3 : Perbandingan CLDC dengan CDC