14 BAB III JAVA 2 MICROEDITION (J2ME) 3.3 Arsitektur Java

advertisement
BAB III
JAVA 2 MICROEDITION (J2ME)
3.3 Arsitektur Java
Bahasa Java merupakan salah satu bahasa tingkat tinggi. Java berdasarkan
definisi dari sun adalah sekumpulan teknologi pemrograman yang digunakan
untuk membuat dan menjalankan perangkat lunak pada komputer standalone
ataupun pada ligkungan jaringan. Java juga dapat digunakan untuk aplikasiaplikasi pada perngakat elektronik portable atau yang disebut dengan platformindependent (tidak tergantung pada platform)[5]. Itulah yang menyebabkan
adanya istilah ‘write once, run everywhere’, yang artinya kode program hanya
ditulis sekali, namun dapat dijalankan di bawah platform manapun, tanpa harus
melakukan perubahan kode program.
Java 2 merupakan generasi kedua dari Java platform (generasi awalnya
adalah Java Development Kit). Java berdiri di atas sebuah mesin interpreter yang
bernama Java Virtual Machine (JVM). JVM inilah yang akan membaca bytecode
dalam file .class dari suatu program sebagai representasi langsung program
yang berisi bahasa mesin[6]. Dengan demikian program Java dapat dijalankan
dalam berbagai sistem operasi asalkan pada sistem operasi tersebut terdapat JVM.
Platform java terdiri dari kumpulan library, JVM, kelas-kelas loader yang
dipaket dalam sebuah lingkungan rutin Java, sebuah compiler, debuger, dan
elemen lain yang dipaket dalam Java Development Kit (JDK). Java 2 adalah
generasi terbaru Java yang sedang dikembangkan dalam platform Java. Untuk
14
menjalankan sebuah program Java, maka diperlukan file dengan ekstensi .java
yang harus dikompilasi menjadi file bytecode. Suatu file bytecode dapat
dijalankan jika terdapat JRE (Java Runtime Environtment). JRE ini berisikan JVM
dan library Java yang digunakan dalam suatu program. Dalam aplikasinya, JRE
hanya menjalankan program, tidak untuk membuat kode baru lagi[6]. Gambar 3.1
di bawah ini menunjukkan ruang lingkup keterhubungan optional packages dalam
Java.
Servers &
enterprise
computers
Optional
Packages
Servers &
personal
computers
Optional
Packages
Java 2
Platform,
Enterprise
Edition
(J2EE)
JVMTM
High-end PDAs
TV set-top boxes
Embeded device
Optional
Packages
Personal Profile
Mobile Phones&
entry-level
PDAs
Java 2
Platform,
Enterprise
Edition
(J2EE)
Personal
Basis
Profile
Optional
Packages
Foundation Profile
MIDP
JVMTM
CDC
CDLC
JVMTM
KVM
Smart
cards
Java
Card
Card VM
Java Platform, Micro Edition (Java ME)
Gambar 3.1 Ruang lingkup keterhubungan optional packages dalam Java[9]
Platform Java memiliki tiga buah edisi yang berbeda. Dalam hal ini, Sun
Microsystems telah mendefinisikan tiga buah edisi tersebut yaitu:
15
•
Java 2 Standar Edition (J2SE), yang digunakan untuk mengembangkan
aplikasi-aplikasi dekstop dan applet (aplikasi Java yang dapat dijalankan di
dalam browser web).
•
Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang
memperbolehkan kita untuk mengembangkan aplikasi-aplikasi berskala besar
(enterprise), yaitu dengan melakukan pembuatan aplikasi-aplikasi di sisi
server dengan menggunakan EJBs (Enterprise JavaBeans), aplikasi web
dengan menggunakan Servlet dan JSP (Java Server Pages) dan teknologi
lainnya seperti COBRA (Common Object Request Broker Architecture) dan
XML (Extensible Markup Language).
•
Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan
untuk menangani pemrograman di dalam perangkat kecil, yang tidak
memungkinkan mendukung implementasi J2SE secara penuh.
3.4 Java 2 Microedition (J2ME)
Java 2 Micro Edition (J2ME) adalah lingkungan pengembangan yang
dirancang untuk meletakkan perangkat lunak Java pada alat elektronik beserta
perangkat pendukungnya[6]. J2ME terbentuk antara sekumpulan interface Java
yang sering disebut dengan Java API (Application Programming Interface)
dengan JVM (Java Virtual Machine). Kombinasi tersebut kemudian digunakan
untuk melakukan pembuatan aplikasi-aplikasi yang dapat berjalan di atas alat
(mobile devices) misalnya pada telepon selular, pager, Personal Digital Assistants
(PDA) dan sejenisnya.
16
J2ME adalah bagian dari J2SE sehingga tidak semua library yang ada
pada J2SE dapat digunakan pada J2ME. Demikian juga J2ME mempunyai library
khusus yang tidak dimiliki J2SE. Arsitektur J2ME dapat dilihat pada Gambar 3.2
di bawah ini.
Profile
Kumpulan
Library
Configuration
JVM
Sistem Operasi
Gambar 3.2 Arsitektur J2ME[6]
Teknologi
J2ME
memiliki
beberapa
keterbatasan
terutama
jika
diaplikasikan pada perangkat (device) yang memiliki keterbatasan pula.
Contohnya, jika J2ME akan diaplikasikan pada sebuah ponsel, maka jalan atau
tidaknya program tersebut tergantung kemampuan ponsel dalam mendukung fiturfitur yang ada pada J2ME. Keterbatasan besar memori pada ponsel juga sangat
mempengaruhi aplikasi J2ME pada ponsel karena setiap program memiliki ukuran
aplikasi tertentu.
3.4.1
Konfigurasi
Konfigurasi merupakan bagian yang berisi JVM dan beberapa library.
Konfigurasi hanya mengatur hal-hal tentang kesamaan sehingga dapat dijadikan
ukuran kesesuaian antar device. Terdapat dua buah konfigurasi pada J2ME yaitu
17
CDC (Connected Device Configuration) dan CLDC (Connected Limited Device
Configuration). CDC merupakan superset dari CLDC sehingga semua kelas yang
didefinisikan di dalam CLDC akan terdapat pada CDC. Tabel 3.1 di bawah ini
menjelaskan perbandingan CDC dengan CLDC.
Tabel 3.1 Perbandingan CDC dengan CLDC[6]
CDC
Mengimplementasikan seluruh fitur J2SE
JVM yang digunakan adalah CVM
Digunakan pada perangkat genggam
(internet TV, Nokia Communicator, car TV)
dengan memori minimal 2 MB
Prosesor: 32 bit
3.4.2
CLDC
Mengimplementasikan sebagian fitur J2SE
JVM yang digunakan adalah KVM
Digunakan pada perangkat genggam
(handphone, PDA, pager) dengan memori
terbatas (160 - 512 KB)
Prosesor : 16/32 bit
Profil
Profil merupakan bagian perluasan dari konfigurasi. Berbeda dengan
konfigurasi, profil membahas sesuatu yang spesifik untuk sebuah perangkat.
Selain sekumpulan kelas yang terdapat pada konfigurasi, terdapat juga 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.
Dalam J2ME terdapat dua buah profil yaitu MIDP dan Foundation profile.
Foundation Profile merupakan 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. MIDP
(Mobile Information Device Profil) adalah spesifikasi untuk sebuah profil J2ME.
MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi,
antarmuka, jaringan, dan penyimpanan persisten. Pada saat ini terdapat MIDP 1.0
18
dan MIDP 2.0. Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 yaitu API untuk
multimedia.
MIDP
Kumpulan
Library
CLDC
KVM
Sistem Operasi
Gambar 3.3 MIDP dalam arsitektur J2ME[6]
Tabel 3.2 Perbandingan MIDP 1.0 dengan MIDP 2.0[6]
Spesifikasi
Display
Kedalaman
Display
Bentuk piksel
(rasio aspek)
Input
Memori
Jaringan
Library
J2ME yang
bukan
merupakan
library J2SE
Multimedia
MIDP 1.0
MIDP 2.0
96x54
1-bit
96x54
1-bit
Mendekati 1:1
Mendekati 1:1
Keyboard dan touch screen
128 KB memori non-volatile untuk
komponen MIDP 8 KB memori nonvolatile untuk data persistence yang
dibuat oleh aplikasi 32 KB memori
volatile untuk JRE
Dua arah, tanpa kabel (wireless)
javax.microedition.lcdui,
javax.microedition.midlet,
javax.microedition.rms,
Keyboard dan touch screen
256 KB memori non-volatile untuk
komponen MIDP 8 KB memori nonvolatile untuk data persistence yang
dibuat oleh aplikasi 128 KB memori
volatile untuk JRE
Dua arah, tanpa kabel (wireless)
javax.microedition.lcdui,
javax.microedition.midlet,
javax.microedition.rms,
javax.microedition.lcdui.game,
javax.microedition.media,
javax.microedition.pki,
Memiliki kemampuan untuk memainkan
file multimedia (suara dan video)
-
19
3.4.3
MIDlet
MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah
bagian dari kelas javax.microedition.midlet.MIDlet yang didefinisikan
pada MIDP. Dalam mengaplikasikan MIDlet terdapat beberapa metode yang
harus ada, yaitu constructor(), protected void startApp()throws
MIDletStateChangeException,
protected
void
destroyApp
MIDletStateChangeException.
protected
(bolean
void
pauseApp(),
unconditional)
throws
Alur hidup MIDlet dapat dilihat pada
Gambar 3.4 di bawah ini.
Konstruktor
MIDlet memanggil
pauseApp()
Aktif
Jedah
MIDlet memanggil
startApp()
MIDlet memanggil
destroyApp() untuk
terminasi
Terminasi
Gambar 3.4 Daur hidup MIDlet[6]
Pertama kali ketika MIDlet dijalankan maka akan diinisialisasi dengan
kondisi pause dan dijalankan pauseApp(), kondisi berikutnya adalah fungsi
MIDlet dijalankan, yaitu dengan startApp(). Metode yang ada tersebut
diimplementasikan sebagai protected, hal ini dimaksudkan agar MIDlet lain
20
tidak dapat memanggil metode tersebut. Pada saat pemakai keluar dari MIDlet,
maka dijalankan metode destroyApp(). Metode notifyDestroyed() akan
dipanggil
sebelum
destroyApp()
MIDlet
akan
benar-benar
memanggil
tidak
berjalan
lagi.
Metode
notifyDestroyed(),
dan
notifyDestroyed() akan memberitahu platform untuk menterminasi MIDlet
dan membersihkan semua sumber daya yang mengacu pada MIDlet.
Dalam implementasinya, MIDlet memiliki struktur direktori sebagai
berikut:
•
src
Menyimpan source code untuk MIDlet dan kelas lain yang diperlukan.
•
res
Menyimpan sumber daya yang dibutuhkan oleh MIDlet, seperti misalnya
gambar icon.
•
lib
Menyimpan file JAR atau ZIP yang berisi library tambahan yang
dibutuhkan MIDlet.
•
bin
Menyimpan file JAR, JAD, dan file manifest yang berisi muatan
komponen MIDlet.
21
3.4.4
JAD (Java Application Descriptor)
Digunakan untuk mendeskripsikan isi aplikasi untuk keperluan pemetaan.
File JAD berisi deskripsi file JAR (Java Archive) dan pemetaan atribut MIDlet.
File JAR berisi kumpulan kelas dan resource.
3.5 Aplikasi J2ME dalam Perancangan Sistem Telemetri
3.5.1
Pengiriman dan Penerimaan Pesan Singkat
Pada J2ME diizinkan aplikasi untuk mengirim dan menerima SMS, namun
dengan alasan keamanan sebuah MIDlet hanya dapat memproses pesan SMS yang
dikirimkan pada port yang terdaftar sebagai listener. MIDlet tidak dapat
mengakses pesan SMS dari aplikasi lain ataupun yang dikirimkan pada port
standar (default). Hal ini sangat berdampak pada penerimaan SMS melalui MIDlet
karena dengan demikian kita tidak dapat mengakses inbox ponsel, namun
sebaliknya kita dapat membuat aplikasi MIDlet untuki mengirimkan pesan yang
masuk ke inbox ponsel.
Paket interface yang menyediakan fasilitas pengiriman dan penerimaan
pesan dalam J2ME ini terdapat pada paket WMA (Wireless Messaging API).
Kelas-kelas
dalam
paket
ini
tersimpan
dalam
paket
javax.microedition.wireless. messaging. Dalam kelas ini terdapat tiga
buah
interface,
yaitu
TextMessage,
BinaryMessage,
dan
MessageConnection. Hubungan antara ketiga interface ini ditunjukkan pada
Gambar 3.5 di bawah ini.
22
Gambar 3.5 Interface paket WMA dalam J2ME untuk pengiriman dan penerimaan
pesan[7]
3.5.2
Aplikasi Record Management System (RMS)
Dalam J2ME, MIDlet tidak menggunakan file sistem untuk menyimpan
data, tetapi menyimpan semua informasi dalam sebuah memori non-volatile
(memori tetap) yang disebut dengan Record Management System (RMS)[4]. RMS
merupakan kumpulan record yang disimpan sebagai array dari byte dalam sebuah
record store. RMS memiliki orientasi record basis data yang sederhana sehingga
MIDlet dapat menyimpan informasi dan mengaksesnya.
Gambar 3.5 Keterkaitan antara MIDlet dengan Record Store [8]
23
Pada konsepnya, record
yang disimpan dalam record store diakses
berdasarkan recordID yang berupa interger. RecordID ini biasanya digunakan
untuk mengakses record seperti fungsi indeks pada pengaksesan array.
Gambar 3.6 Penyimpanan record dalam record store [6]
24
Download