2.2.1. Connected Limited Device Configuration CLDC
CLDC atau Connected Limited Device Configuration adalah perngakat dasar dari J2ME, spesifikasi dasar yang berupa Library dan API yang
diimplementasikan pada J2ME, seperti yang digunakan pada telepon selular, pager, dan PDA, perangkat tersebut dibatasi dengan keterbatasan memori, sumber
daya, dan kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal dari package, kelas, dan sebagian fungsi JVM Java Virtual
Machine yang dikuangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat – alat tersebut, JVM yang digunakan disebut KVM
Kilobyte Virtual Machine. M.Shalahuddin dan Rosa A.S, 2006.
2.2.2. Mobile Information Device Profile MIDP
MIDP atau Mobile Information Device Profile adalah spesifikasi untuk 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 adalah API untuk multimedia. Pada MIDP 2.0 terdapat
dukungan memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya Mobile Media API MMAPI. M.Shalahuddin dan Rosa A.S, 2006.
Profil merupakan bagian perluasan dari konfigurasi. Artinya, selain sekumpulan kelas yang terdapat pada konfigurasi, terdapat juga beberapa kelas-
kelas spesifik yang didefinisikan lagi dalam profil. Dengan kata lain, profil akan membantu secara fungsional yaitu dengan menyediakan kelas-kelas yang tidak
terdapat pada level konfigurasi
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Adapun profil yang sangat popular penggunaannya adalah profil yang disediakan oleh Sun Microsystems, yaitu yang dinamakan dengan MIDP.
Beberapa profil yang tersedia untuk kebutuhan-kebutuhan spesifik lainnya: a. Personal Digital Assistant Profile PDAP, yaitu profil untuk PDA yang
memperluas fungsi-fungsi pada konfigurasi CLDC dan digunakan khusus untuk menambahkan kemampuan-kemampuan lebih apabila dibandingkan
dengan penggunaan MIDP b.
Foundation Profile, yaitu profil yang digunakan untuk konfgurasi CDC. Profil ini menambahkan beberapa kelas dari J2SE ke dalam konfigurasi
CDC, dan berperan juga dalam pondasi untuk membentuk profil baru lainnya.
c. Personal Profile, yaitu profil yang mendefinisikan ulang personal Java
sebagai profil yang dapat digunakan sebagai profil dalam J2ME. Profil ini merupakan hasil perluasan dari Foundation profile
d. Remote Method Invocation RMI, yaitu profil yang menambahkan
dukungan RMI ke dalam konfigurasi CDC.
2.2.2.1. MIDlet
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 antarmuka antara aplikasi J2ME dan aplikasi manajemen pada perangkat dapat terbentuk. Raharjo dan Heryanto, 2007.
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
2.2.2.2.Lifecycle MIDlet
MIDlet bekerja pada beberapa fase sebagai bagian dari lifecycle dan pasti selalu berada pada salah satu dari status berikut :
a. Paused, status ini dimasuki MIDlet setelah konstruktor dipanggil.
Setelah MIDlet dijalankan,, maka kemungkinan status berikutnya adalah Paused atau Active.
b. Active, MIDlet sedang berjalan.
c. Destroyed, MIDlet dibebaskan dari resource dan shut down oleh
Application Manager.
Gambar 2.2. Lifecycle MIDlet
Tampak pada gambar 2.2. bahwa pada saat pembuatan Midlet baru, mula- mula Midlet akan berada dalam keadaan Paused. Apabila proses pembuatan
Midlet gagal atau mengakibatkan kesalahan, maka Midlet akan langsung berada pada keadaan Destroyed. Namun apabila proses pembuatan Midlet berjalan
dengan baik, maka setelah Midlet dijalankan, maka AMS secara otomatis akan mengeksekusi method
startApp
dan hal ini akan mengubah MIDlet untuk
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
berada dalam keadaan Active dan dapat diubah kembali menjadi keadaan Paused melalui pemanggilan method
pauseApp
atau diubah menjadi keadaan Destroyed melalui pemanggilan method
destroyApp
. Sebagai contoh, pada saat
Midlet akan mengalami perubahan keadaan, yaitu dari Active menjadi Destroyed
Application Management Software AMS merupakan lingkungan tempat sebuah Midlet dapat di-install, dijalankan, dihentikan maupun di-uninstall. AMS
akan membuat instance baru dari Midlet dan dapat mengontrol keadaannya, yaitu dengan cara menjalankan start, mengistirahatkan pause maupun
menghentikannya destroy secara langsung oleh dirinya sendiri. Raharjo dan Heryanto, 2007.
2.2.2.3.Push Registry
Enrique 2003 mengemukakan bahwa Push Registry adalah suatu mekanisme dalam midlet untuk menghidupkan aplikasi midlet secara otomatis
tanpa ada campur tangan dari pengguna, dengan mengirimkan sinyal tertentu ke handphone sehingga aplikasi di handphone bisa hidup. Sinyal yang dikirimkan
bisa berupa sms, socket atau datagram. Raharjo dan Heryanto, 2007. Push Registry terletak di dalam klas
javax.microedition.io.PushRegistry
pada MIDP 2.0. gambar 2.3. menjelaskan elemen-elemen Push Registry:
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Gambar 2.3 Elemen - elemen Push Registry
2.3. Thread
Sebuah thread adalah satuan dasar di mana sistem operasi mengalokasikan waktu prosesornya. Setiap thread menangani exception handlers, sebuah prioritas
penjadwalan, dan satu set struktur di mana sistem akan menggunakannya untuk menyimpan konteks thread sampai ia terjadwal. Yang termasuk di dalam konteks
thread adalah mesin, register dan stack yang berada dalam alamat prosesnya. Raharjo dan Heryanto, 2007.
Sebuah sistem operasi multitasking membagi waktu prosesor untuk proses atau thread yang membutuhkannya. Sistem mengalokasikan potongan waktu
prosesor ke setiap thread yang dieksekusi. Thread yang sedang dieksekusi akan ditangguhkan ketika potongan waktunya habis, kemudian thread lain ganti
dijalankan. Status thread ketika terjadi pergiliran disimpan di dalam antrian. Lama potongan waktu prosesor bergantung pada sistem operasi yang bersangkutan dan
juga prosesornya sendiri. Karena tiap potongan waktu itu begitu singkatnya maka
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
thread ganda terlihat dieksekusi pada waktu yang bersamaan. Pada umumnya thread digunakan untuk aplikasi yang:
Melakukan operasi yang membutuhkan waktu cukup lama. Membedakan task yang mempunyai prioritas berbeda-beda.
Mempertahankan antarmuka pemakai supaya tetap responsif, selama melakukan proses background.
2.3.1. Single Thread
VLSM 2003 menyebutkan bahwa setiap program java memiliki setidaknya sebuah thread, yaitu main yang merupakan single-thread tersendiri di
JVM. Java juga menyediakan perintah untuk membuat dan memodifikasi thread tambahan sesuai kebutuhan program. Raharjo dan Heryanto, 2007.
Salah satu cara membuat thread secara eksplisit yaitu dengan membuat objek baru dari class yang telah extends class Thread. Cara lain adalah dengan
override method run dari interface Runnable. Sebuah objek yang berasal dari subkelas Thread dapat dijalankan sebagai kontrol thread yang terpisah dalam
JVM. Membuat objek dari class Thread tidak akan membuat thread baru. Akan tetapi dengan method
start
akan terbentuk thread baru. Memanggil method
start
untuk objek baru akan mengakibatkan 2 hal, yaitu: 1. Mengalokasikan memori dan menginisialisasi sebuah thread baru dalam JVM, 2. Memanggil
method run, membuat thread dapat dijalankan oleh JVM Catatan: Method run dijalankan jika method
start
dipanggil. Memanggil method run secara langsung hanya menghasilkan single-thread tambahan selain main. pembuatan
thread dengan membuat objek baru dari class yang extends class Thread:
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Gambar 2.4. Syntak Membuat Thread pada Java
2.3.2. Multi Thread