PENGENALAN TEKNOLOGI JAVA

advertisement
PENGENALAN TEKNOLOGI JAVA
1. SEJARAH SINGKAT JAVA
Java adalah bahasa pemrograman Object-Oriented yang dikembangkan oleh
perusahaan Sun Microsystem. Java berawal dari proyek ‘Green’ yang dipimpin oleh
James Gosling. Proyek tersebut berusaha mengembangkan sebuah bahasa berbasis
object-oriented baru yang portable dan dapat diimplementasikan pada beragam
peralatan dengan kapasitas memori terbatas.
Sesuai dengan tujuan proyek ‘Green’, java dibekali dengan kemampuan untuk dapat
dipergunakan pada beragam platform, dengan kata lain Java dirancang sebagai
bahasa yang portable. Berbeda dengan tingkat portabilitas yang dimiliki oleh
bahasa lain, seperti C/C++ misalnya, portabiltas Java sangat tinggi. Aplikasi yang
ditulis dengan Java dapat langsung dijalankan pada platform yang mendukung Java
tanpa perlu mengkompilasi ulang kode sumber Java tersebut.
Motivasi sesungguhnya dari Java adalah kebutuhan akan sebuah bahasa yang bisa
digunakan platform yang bisa dimasukkan ke dalam berbagai produk elektronik
seperti pemanggang roti dan lemari es. Salah satu dari proyek pertama yang
dikembangkan menggunakan Java adalah remote control yang diberi nama Star 7.
Padasaat yang sama, World Wide Web dan Internet berkembang sangat cepat.
Gosling menyadari bahwa java dapat digunakan untuk pemrograman Internet.
Saat ini distribusi Java dan class pendukungnya dibagi dalam tiga bagian yang
masing-masing memiliki konsentrasi tersendiri yaitu :
Java 2 Standard Edition (J2SE)
untuk aplikasi desktop
Java 2 Enterprise Edition (J2EE)
untuk aplikasi enterprise dengan focus
pada pengembangan sisi webserver,
termasuk seriet, JSP, EJB, XML
Java 2 Micro Edition (J2ME)
untuk
piranti
dengan
terbatas (perangkat mobile)
JavaCard
Smart Cards
kemampuan
2. KARAKTERISTIK JAVA
 Memiliki kemampuan dan spesifikasi yang sangat bervariasi
 Tidak dapat melakukan pengembangan pada perangkat tersebut
 Kemampuan untuk mengakses informasi dari internet
 Perkembangan teknologi yang sangat cepat
3. MEKANISME KOMPILASI APLIKASI JAVA
Proses pembuatan aplikasi Java pertama kali dilakukan dengan pengetikan kode
sumber Java pada suatu file berakhiran ‘.java’. File yang digunakan sebagai kode
sumber Java adalah file teks biasa sehingga dalam penulisannya dapat
mempergunakan beragam teks editor seperti notepad, editplus, ultraedit dan
lainnya. Namun demikian saat ini telah tersedia Java IDE (Integrated
Development Environment) baik yang gratis maupun komersil yang dapat
mempermudah penulisan aplikasi Java seperti Sun NetBean, Sun Forte, dan
Borland JBuilder. Yang perlu diperhatikan, penamaan file tersebut harus sama
dengan nama class yang ditulis didalamnya. Penamaan ini bersifat case-sensitive.
Tahap selanjutnya adalah tahap kompilasi. Pada tahap ini, file sumber akan dibaca
dan diterjemahkan oleh Kompiler Java. Jika tidak terdapat kesalahan pada file
sumber maka akan dibuat suatu file objek yang merupakan kodefikasi dari file
sumber itu sendiri. File objek ini memiliki akhiran ‘.class’ dan disebut byte-code.
File inilah yang merupakan file aplikasi Java yang dapat dieksekusi.
File-file byte-code yang dihasilkan dapat dipaketkan dalam satu file tunggal yang
memiliki akhiran ‘.jar’, file ini disebut ‘Java Archive’. Selain keuntungan dalam hal
menyatukan secara fisik file-file aplikasi Java, proses pemaketan ini juga akan
melakukan kompresi sehingga dapat memperkecil ukuran secara keseluruhan. Java
archive ini dikembangkan dari teknologi yang dipakai dalam kompresi ZIP.
Setelah dipaketkan, byte-code yang terdapat didalamnya tetap dapat dijalankan
seperti biasa sehingga tidak perlu meng-ekstrak kembali dari paket tersebut
untuk menggunakannya.
4. MEKANISME EKSEKUSI JAVA
Rahasia kemampuan Java untuk dijalankan pada beragam platform adalah pertama,
karena Java tidak didesain untuk platform dan hardware tertentu. Kedua, aplikasi
Java dijalankan
secara ter-interpreter. Semua system yang akan
mengimplementasikan Java harus memiliki interpreter Java. Interpreter tersebut
bertanggunag jawab dalam menyediakan lingkungan eksekusi yang aman dan stabil
bagi aplikasi Java. Interpreter tersebut disebut Java Virtual Machine (JVM).
JVM merupakan aplikasi native untuk platform yang spesifik
DASAR PEMROGRAMAN JAVA
1. PERBEDAAN JAVA DENGAN C/C++
 Pada Java, manajemen memory dinamis dan pointer dilakukan secara
otomatis. Pada C++ pemrograman melakukan sendiri alokasi dan dealokasi
memory. Otomatisasi ini menghilangkan kemungkinan bagi penggunaan
pointer yang dapat merusak kestabilan program dan system operasi.
 Java tidak mengenal multiple inheritance seperti pada C/C++. Multiple
Inheritance membingungkan dan berakibat pada sulitnya pembuatan aplikasi
dan compiler. Sebagai ganti yang lebih baik, Java menggunakan interface.
 Java merupakan bahasa OOP murni sedangkan C++ adalah bahasa OOP
hybrid
 Java menggunakan model Exception dalam menangani kesalahan program
 Java tidak mempergunakan compiler-directive pada source code
 Java memiliki fasilitas garbage-collector yang bekerja secara otomatis
untuk menjamin ketersediaan memori dengan membebaskan memori yang
tidak terpakai.
 Java sangat portable baik pada file sumbernya maupun hasil kompilasinya,
sedangkan C++ hanya portable pada level kode sumbernya saja.
 Spesifikasi bahasa dan implementasi Java sudah ditetapkan dan tidak
mengikuti suatu mesin atau platform tertentu, C++ sangat tergantung pada
mesin dan platform yang akan digunakan.
2. ISTILAH & KONSEP PEMROGRAMAN PADA JAVA
 Class
Adalah struktur yang menjelaskan sifat-sifat dari suatu objek. Sifat disini
berupa informasi yang dimiliki objek tersebut serta aksi yang dapat
dilakukan oleh objek tersebut.

Objek
Adalah contoh dari suatu class. Dapat dianggap class adalah tipe datanya
dan objek adalah datanya.

Constructor
Method yang pertama kali dijalankan ketika objek diciptakan dari suatu
class.

Field/Data member
Adalah pengenal yang menyimpan informasi dari suatu objek.

Method
Adalah aksi yang dapat dilakukan oleh suatu objek. Dapat dianalogikan
dengan procedural/sub/function.

Abstract
Suatu method dari suatu class dapat dibuat tanpa implementasi kode
apapun. Method seperti ini disebut method abstract dan untuk
menggunakannya harus didefinisikan dahulu pada turunan class tersebut.

Interface
Adalah suatu abstract dari class. Interface hanya berisi daftar field dan
method tanpa detail kode.

Inheritance
Penurunan sifat sedemikian hingga suatu class yang diturunkan dari suatu
class lainnya akan memiliki member yang sama dengan class dimana ia
diturunkan.

Polymorphisme
Kemampuan bagi penulisan suatu method dengan nama yang sama namun
memiliki parameter dan definisi berbeda.
Bentuk Umum Kode sumber Java
package nama_package;
import nama-package.namaclass;
…
[deklarasi_interface]
[deklarasi_class]
Bentuk Umum Deklarasi Interface
interface namainterface
{
[modifier] namaclass namafield;
…
[modifier] namaclass namamethod();
[modifier] namaclass namamethod( [daftar_parameter] );
…
}
3. JENIS-JENIS MODIFIER
Modifier berguna untuk menentukan sifat dari suatu class, field, ataupun method
dalam suatu program Java. Berikut adalah beberapa modifier yang sering
digunakan :
Public
Method/field dapat diakses oleh semua objek.
Private
Method/field hanya dapat dipergunakan oleh class tersebut.
Protected
Method/field tersebut hanya dapat dipergunakan oleh class
tersebut dan class turunannya.
Static
Method/field tersebut dapat diakses tanpa harus menciptakan
objeknya terlebih dahulu.
Semua objek yang dibuat dari class yang memiliki field static
akan memiliki nilai yang sama untuk field tersebut.
Final
Menyatakan bahwa definisi dari field/method tersebut tidak
dapat berubah lagi.
4. KONVERSI PENULISAN PROGRAM PADA JAVA
Konvensi ini untuk menentukan penulisan nama method, field yaitu sebagai berikut
 Nama class dituliskan dengan huruf capital pada setiap awal kata
pembentuknya
 Nama method merupakan klausa kerja dan ditulis dengan diawali oleh huruf
kecil untuk kata pertama dan huruf besar untuk setiap huruf pertama dari
kata-kata berikutnya, jika ada. Contoh :
ambilDaftar Pelanggan(), buat koneksi(), selesai().


Field static ditulis dengan menggunakan huruf capital semua. Contoh :
MAX_PELANGGAN, DISCOUNT, MAX_PELURU.
Field biasa tidak dibuat public melainkan diakses dan diubah dengan melalui
pemanggilan method
PERANGKAT MOBILE
Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi
mereka memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop.

Ukuran yang kecil
Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat
yang terkecil untuk kenyamanan dan mobilitas mereka.

Memory yang terbatas
Perangkat mobile memiliki memory yang kecil, yaitu primary (RAM) dan secondary
(disk). Pembatasan ini adalah salah satu factor yang mempengaruhi penulisan
program untuk berbagai jenis dari perangkat ini.

Daya proses yang terbatas
System mobile tidaklah setangguh rekan mereka yaitu desktop. Ukuran, teknologi
dan biaya adalah beberapa factor yang mempengaruhi status dari sumber daya ini.

Mengkonsumsi daya yang rendah
Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop.
Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan dimana
daya yang disediakan dibatasi oleh baterai-baterai.

Kuat dan dapat diandalkan
Karena perangkat mobile selalu dibawa keman saja, mereka harus cukup kuat untuk
menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air.

Konectivitas yang terbatas
Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak
tersambung. Kebanyakan dari mereka menggunakan koneksi wireless.

Masa hidup yang pendek
Perangkat-perangkat konsumen ini menyala dalam hitunagan detik kebanyakan dari
mereka selalu menyala.
PENGENALAN JAVA 2 MICRO EDITION (J2ME)
J2ME adalah satu set spesifikasi dan teknologi yang focus kepada perangkat konsumen.
Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari
batere, layar yang kecil dan bandwith jaringan yang rendah.
Dengan perkembangbiakan perangkat mobile consumer dari telepon, PDA, kotak
permainan ke peralatan-peralatan rumah, Java menyediakan suatu lingkungan yang
portable untuk mengembangkan dan menjalankan aplikasi pada perangkat ini.
Program J2ME, seperti semua program Java adalah diterjemahkan oleh VM. Programprogram tersebut dikompile ke dalam byte-code dan diterjemahkan dengan Java Virtual
Machine (JVM). Ini berarti bahwa program-program tersebut tidak terhubung 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 system J2ME. Ia menggambarkan
core library, virtual machine, fitur keamanan dan jaringan.
Untuk piranti bergerak, terdapat beragam profile. Salah satunya yang telah mencapai
status final adalah Mobile Information Device Profile (MIDP).
DASAR-DASAR MIDlet
Suatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS)
berinterkasi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan
destroy.
MIDlet adalah bagian dari package javax.microedition.midlet. sebuah MIDlet harus diextend dengan class MIDlet. Dan dapat meminta parameter dari AMS seperti
dirumuskan dalam application descriptor (JAD)
Suatu MIDlet tidak harus memiliki (dan memang harus tidak mempunyai) sebuah method
public static void main(string[] argv). Method tersebut tidak akan dikenal lagi oleh AMS
sebagai titik awal sebuah program.
1. SIKLUS MIDlet
Kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya
masuk status “Pause” setelah perintah baruu dibuat. AMS memanggil constructor
public tanpa argumen dari MIDlet. Jika sebuah exception terjadi dalam
constructor, MIDlet memasuki status “Destroyed” dan membuangnya segera.
MIDlet masuk ke dalam status “Active” atas pemanggilan method startUp() oleh
AMS.
MIDlet masuk ke dalam status “Destroyed” ketika AMS memanggil method
destroyApp(). Status ini juga kembali diakses ketika method notifyDestroyed()
kembali dengan sukses kepada aplikasi. Dengan catatan bahwa MIDlet hanya bisa
memasuki staus “Destroyed” sekali dalam masa hidupnya.
Untuk membuat sebuah turunan class MIDlet maka kita harus mendefinisikan
terlebih dahulu method-method abstract yang dimiliki oleh class MIDlet tersebut
dalam class yang akan dibuat nantinya. Method tersebut adalah:
startApp()
Akan dipanggil ketika MIDlet memasuki fase ‘started’ dari fase
‘paused’.
Disini biasanya dilakukan proses inisialisasi, baik inisialisasi
layer maupun objek-objek yang dipergunakan dalam aplikasi
MIDlet.
pauseApp()
Akan dipanggil ketika MIDlet memasuki fase ‘paused’
Biasanya berisi instruksi untuk membebaskan memory yang
dipakai oleh aplikasi MIDlet sekaligus menyimpan kondisi
aplikasi MIDlet saat ini.
destroyApp()
Akan dipanggil ketika MIDlet memasuki fase ‘destroyed’ yaitu
ketika eksekusi MIDlet dihentikan
2. USER INTERFACE
Untuk menyediakan user interface pada suatu aplikasi MIDlet dipergunakan classclass turunan dari class Diplayable. Package yang berisi koleksi class-class yang
dapat dipergunakan untuk membuat user interface adalah package
javax.microedition.lcdui.
Sedangkan untuk mengatur user interface yang aktif pada aplikasi MDliet,
dilakukan pemanggilan setcurrent() dengan memanfaatkan class Display. Class
Display ini memiliki method static yang dapat dipergunakan oleh aplikasi MIDlet
untuk melakukan operasi yang berhubungan dengan layar.
Listing berikut akan menunjukkan user interface menggunakan class Form berisi
tulisan singkat kepada pengguna:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class nothelloworld extends MIDlet
{
private Form formDepan;
public
{
formDepan = new Form (“Halaman Utama”);
formDepan.append(“Ini akan tampil loh..”);
}
public void startApp()
{
Display.getDisplay(this).setCurrent(formDepan);
}
public void pauseApp() {}
public void destroyApp(Boolean b)
}
{}
Perhatikan baris perintah pada nomor-nomor yang dicetak tebal. Pada baris enam
dideklarasikan bahwa class nothelloworld mempunyai field ‘formDepan’ yang
merupakan objek dari class Form, inisialisasi formDepan terdapat pada bagian
constructor dari MIDlet nothelloworld tersebut.
Baris enambelas menunjukkan bagaimana suatu user-interface dapat ditampilkan
kepada pengguna melalui pemanggilan method setCurrent(). Sedangkan lawannya
getCurrent() digunakan untuk mendapatkan referensi user-interface yang aktif
pada layer.
3. CLASS HIGH-LEVEL USER-INTERFACE API
High-Level user-interface API sendiri terdiri atas beberapa class dan interface.
Class-class ini diturunkan dari class Screen yang merupakan turunan dari class
Displayable.
 Alert (String title)
Alert (String title, String teks, Image icon, AlertType jenis peringatan)
adalah user-interface yang ditunjukkan untuk memberikan pemberitahuan
kepada pengguna aplikasi dalam interval tertentu. Selang waktu ini dapat
diatur melalui pemanggilan method setTimeout(). Apabila pesan yang
ditampilkan cukup panjang atau interval yang digunakan adalah FOREVER,
maka Alert akan tetap bertahan sampai pengguna memilih untuk
meninggalkan layer Alert tersebut, misalnya dengan memilih perintah ‘exit’
atau ‘dismiss’ pada beberapa perangkat.
Berikut adalah daftar tipe Alert :
Tipe
Alarm
Memperingatkan
terjadwal
Contoh Penerapan
pengguna akan suatu kegiatan
yang
Confirmation
Pemberitahuaan mengenai status dari aksi yang dilakukan
Error
Pesan kesalahan
Info
Informasi umum
Warning
Peringatan terhadap aksi yang berbahaya
telah

TextBox (String title, String teks, int maxKarakter, int filter)
Adalah user-interface yang dipergunakan untuk mendapatkan masukkan
karakter dari pengguna. Dalam mendapatkan data yang diinginkan, dapat
diterapkan pemfilteran sehingga input yang diterima oleh aplikasi dari
pengguna dapat diatur sesuai dengan keperluan. Filter ini diambil dari field
static milik class TextField. Beberapa daftar filter tersebut :
Filter
Any
Keterangan
Menerima semua input dari pengguna
Emailaddr
Pola input sesuai dengan alamat e-mail
Numeric
Hanya menerima bilangan bulat
Password
Input dari pengguna tidak ditampilkan
Phonenumber
Menerima pola nomor telepon
URL
Menerima pola input URL

List (String title, int tipeList)
List (String title, int tipeList, String[] daftarPilihan, Image[] gambar)
Adalah user-interface yang menyediakan fasilitas untuk melakukan
pemilihan terhadap suatu daftar. Pemilihan ini bersifat tunggal maupun
berganda. Daftar yang terdapat pada suatu List dapat pula diberikan
gambar. Hasil pemilihan ini kemudian dapat dibaca kembali oleh program
sehingga dapat dilakukan aksi yang bersesuaian.
Daftar pilihan itu sendiri dapat ditentukan pada saat pembuatan objek List,
maupun melalui pemanggilan method append() maupun insert(). Pilihan yang
sudah terdaftar juga dapat dimanipulasi dengan pemanggilan method set().
Terdapat tiga mode dari List yaitu IMPLICIT yang dapat dipergunakan
untuk membuat daftar menu, EXCLUSIVE yang sifatnya seperti radio
button, dan MULTIPLE yang bekerja seperti check box.

Form (String title)
Form (String title, item[] daftaritem)
Adalah user-interface yang menyediakan fasilitas untuk penempatan objekobjek dalam satu layer. Objek-objek ini dapat berupa objek statis seperti
tulisan dan gambar, maupun objek yang dapat diedit oleh pengguna seperti
textbox, radio button, check box, serta slider.
Form sendiri hanyalah layer kosong saja dan bertindak sebagai wadah bagi
objek-objek lain. Objek-objek yang terdapat dalam layer Form dibuat
dengan cara menambahkan objek-objek turunan class Item ke objek Form
pada saat objek Form dibuat melalui pemanggilan method append(). Berikut
turunan class Item yang dapat dimasukkan dalam Form :
Class
ChoiceGroup
Keterangan
Item untuk Form yang bekerja seperti class List
DataField
Item untuk Form untuk mendapatkan input tanggal
Gauge
Item untuk Form yang dapat bekerja sebagai indicator seperti
progress bar maupun seperti slider
ImageItem
Item untuk Form yang berguna untuk menyisipkan gambar
StringItem
Item untuk Form berupa teks statis
TextField
Item untuk Form yang bekerja seperti Text Box
Berikut adalah tampilan sebuah Form yang berisi Item StringItem
ChoiceGroup pada perangkat MID dengan resolusi layer tinggi :

Ticker (String title)
Adalah merupakan objek yang akan menampilkan tulisan bergerak pada
layer. Ticker tidak berdiri sendiri melainkan berada didalam objek turunan
dari class Screen. Ticker tidak dapat ditambahkan dengan memanggil
method setTicker() dari objek turunan class Screen tersebut. Meskipun
semua class turunan dari class Screen mempunyai method setTicker(),
tetapi tidak semua dapat menampilkan Ticker, Alert misalnya.
Berikut adalah tampilan Ticker yang dipasang pada sebuah Form, perhatikan
bagian atas layer :
4. CLASS LOW-LEVEL USER-INTERFACE API
Low-Level API menyediakan akses grafis pada layer aplikasi serta pembacaan
event penekanan tombol maupun pointer pada perangkat MID yang mendukung
input touch-screen. Pemrogram bertanggung jawab sepenuhnya pada interaksi dari
layer aplikasi yang menggunakan Low-Level API dalam menyediakan interaksi yang
nyaman pada pengguna.
 Class Canvas
Canvas adalah turunan dari class Displayable yang menyediakan lingkungan
yang tepat bagi aplikasi yang membutuhkan operasi grafis dan menangani
event low-level.
Penggunaan Canvas yang utama adalah pada aplikasi game karena Canvas
mendukung penempatan objek-objek grafis dan pembacaan tombol.

Penanganan Event
Seperti yang telah disebutkan bahwa class Canvas mampu membaca
penekanan tombol keypad. Selain itu class Canvas juga memungkinkan untuk
melakukan pembacaan posisi pointer pada perangkat yang menggunakan layer
touch-screen.
Berikut adalah method yang akan dipanggil untuk event yang bersesuaian
pada Canvas :
Method
keyPressed(int keyCode)
keyReleased(int keyCode)
keyRepeated(int keyCode)
pointerDragged(int x, int y)
pointerPressed(int x, int y)
pointerReleased(int x, int y)
showNotify()
hideNotify()

Pemanggilan
Tombol ditekan
Tombol dilepas
Tombol ditekan terus
Pointer ditekan dan digerakkan
Pointer ditekan
Pointer dilepaskan
Objek Canvas ditampilkan
Objek Canvas disembunyikan
Operasi Grafis
Class Canvas sendiri tidak memiliki method untuk melakukan operasi-operasi
grafis. Operasi grafis pada Canvas dilakukan melalui object Graphics yang
menjadi parameter pada method paint() milik class Canvas tersebut.
Operasi yang dapat dilakukan Graphics secara umum meliputi:
a. Operasi Grafis Geometri
Class Graphics mendukung penggambaran bentuk-bentuk geometri
seperti garis, persegi, persegi dengan sudut tumpul, lingkaran, dan
busur. Tersedia pula method untuk melakukan penggambaran bentukbentuk tersebut dengan pengarsiran pada bidang dalamnya.
b. Operasi Grafis Pixel
Pada class Graphics, system koordinat yang dianut bukanlah koordinat
dari pixel tersebut melainkan koordinat batasan (boundary) dari pixel
tersebut dalam suatu area berbentuk empat persegi panjang. System
koordinat sumbu x dimulai dari sebelah kiri, positif ke arah kanan.
Sumbu y dimulai dari atas, positif ke bawah.
Operasi yang terjadi pada class Graphics hanyalah operasi
penggantian pixel. Tidak tersedia method untuk mendapatkan warna
pixel maupun mengkombinasikan warna pixel. Namun tersedia method
untuk mengatur metode penggambaran garis serta dukungan terhadap
batasan penggambaran (clipping area).
c. Penggambaran Teks
Class Graphics mendukung operasi penggambaran teks baik itu perkarakter, string, maupun sub-string. Pada class Graphics tersedia
‘anchor point’ untuk memudahkan penggambaran teks. Anchor point ini
menentukan penempatan teks relaif terhadap koordinat yang
ditunjuk.
Untuk horizontal tersedia anchor LEFT, HCENTER, dan RIGHT.
Sedangkan untuk vertical tersedia TOP, BASELINE, dan BOTTOM.
Tipe anchor itu sendiri merupakan sebuah anchor vertical dengan
horizontal yang dipadukan oleh operator OR.

Penggunaan Font
Graphics menggambar teks berdasarkan objek Font yang sedang aktif. Hal
yang unik dengan class Font adalah Font tidak bisa dibuat objeknya karena
tidak mempunyai constructor yang public. Objek Font bisa memintanya dari
system berdasarkan ciri-ciri dari Font tersebut melalui pemanggilan method
getFont() ataupun method getDefaultFont()
public static Font getFont(int face, int style, int size)
System kemudian akan memberikan objek Font yang paling mendekati
dengan yang diminta. Perlu diperhatikan bahwa mungkin saja system
mengembalikan objek Font yang tidak mirip sama sekali dengan yang diminta
karena Font tersebut tidak tersedia pada system.

Penggunaan Image
Class Image adalah class yang menyimpan data gambar MIDP 1.0 hanya
mengharuskan dukungan bagi gambar dengan format PNG bagi perangkat
yang mengimplementasikannya. Objek Image setelah dibuat, nantinya dapat
dipergunakanoleh objek Graphics dengan pemanggilan method drawImage()
dengan bentuk umum
drawImage(Image img, int x, int y, int anchor)
Anchor yang dipergunakan sama seperti anchor pada teks, hanya saja
khusus untuk Image dapat dipergunakan anchor VCENTER, namun tidak ada
anchor BASELINE.
Objek Image sendiri ada dua jenis yaitu objek Image immutable yaitu objek
Image yang tidak dapat diubah setelah dibuat, serta objek Image mutable
yaitu objek Image yang dapat diubah nilai pixelnya. Kebanyakan dari aplikasi
MIDlet hanya membutuhkan objek Image immutable.

Teknik Animasi
Pada aplikasi MIDlet, terutama pada bisang permainan, animasi merupakan
bagian yang penting dan dapat mempengaruhi minat pengguna terhadap
aplikasi tersebut. Secara sederhana dapat dikatakan bahwa animasi adalah
serangkaian perubahan keadaan pada layer, baik itu sebagian atau
seluruhnya, sehingga aplikasi terlihat hidup. Perubahan ini dapat berupa
perubahan bentuk maupun posisi.
Sebagai contoh, permainan pesawat tempur akan menggunakan dua gambar
yang berbeda yang ditampilkan secara bergantian untuk menggambarkan
nyala api disertai dengan kemampuan untuk berpindah posisi.
Waktu untuk melakukan perubahan tampilan layer dapat ditentukan dari
event dari pengguna seperti penekanan keypad, maupun dari program dengan
melakukan repetisi. Jika mengandalkan event dari pengguna, maka layer baru
akan diperbaharui setelah terjadi event dari pengguna. Berarti untuk
permainan pesawat tempur animasi api hanya akan terlihat apabila tombol
tetap ditekan. Jika mengandalkan repetisi, maka selama repetisi tersebut
belum selesai event dari pengguna tidak dapat diterima. Ini disebabkan
aplikasi MIDlet biasa hanya menggunakan satu thread pada proses yang
sama sehingga untuk menjalankan aksi yang berbeda disaat yang bersamaan
tidak memungkinkan.
Untuk dapat melakukan hal tersebut, maka aplikasi MIDlet tersebut harus
dirancang dengan dukungan multi threading. Terdapat tiga cara untuk
membuat dukungan terhadap multi-threading dalam aplikasi MIDlet :
a. Dengan membuat turunan dari class Thread
b. Membuat class yang mengimplementasikan interface Runable
c. Menggunakan objek Timer dan Timer Task
5. PENYIMPANAN DATA
Ada kalanya sebuah aplikasi, selain tugas pemrosesan, membutuhkan operasi
penyimpanan data permanent yang tidak akan hilang ketika aplikasi berakhir. Yang
disimpan tersebut kemudian dapat dimanfaatkan kembali oleh aplikasi disaat
aplikasi dijalankan kembali
 Mekanisme Record Store
MIDP menyediakan fasilitas untuk penyimpanan data melalui class
RecordStore Class ini digunakan untuk mengakses data permanent yang
tersimpan pada perangkat MID yang disebut dengan ‘record store’ yang
dapat dianalogikan dengan ‘tabel’ pada DBMS.
Record pada suatu record store tidak memiliki panjang yang tetap. Record
itu sendiri dipandang sebagai array byte sehingga umumnya perlu dilakukan
pengkonversian data dalam memanfaatkan record pada aplikasi MIDlet. Tiap
record memiliki nomor pengenal (RecordID) yang merupakan primary key
bagi record store tersebut.

Enumerasi Record
Enumerasi record dipergunakan untuk mendapatkan ID mapun data dari
record-record pada record store. Untuk melakukan enumerasi dipergunakan
method enumerateRecords() dengan bentuk umum :
RecordEnumeration enumerateRecords (RecordFilter filter,
RecordComparator comparator,
Boolean keepUpdated)

Pemfilteran Data
Record yang diambil ketika pemanggilan method enumerateRecord() dapat
dibatasi sehingga record-record yang memenuhi criteria tertentu saja yang
didaftarkan pada objek RecordEnumeration.
MIDP menyediakan interface RecordFilter untuk tujuan tersebut.
Interface ini mengharuskan keberadaan method matches() pada class yang
mengimplementasikannya. Method inilah yang menentukan apakah suatu
record memenuhi criteria atau tidak.
Sebagai contoh, misalkan sebuah aplikasi menyimpan data pada record dalam
format sebagai berikut :
Maka dengan menggunakan pemfilteran, dimungkinkan untuk menampilkan
record pemain dengan criteria level, batasan score, huruf pertama nama
pemain dan lain sebagainya.

Pengurutan Data
Seperti yang telah disebutkan sebelumnya, bahwa daftar record pada objek
RecordEnumeration dapat diurukan dalam aturan tertentu apabila tersedia
objek RecordComparator pada pemanggilan method enumerateRecord().
Interface RecordComparator digunakan untuk melakukan perbandingan data
pada tahap pengurutan. Interface ini mengharuskan keberadaan method
compare() yang memiliki dua parameter yaitu data yang akan dibandingkan
dalam proses pengurutan bagi class yang mengimplementasikannya. Melalui
method inilah dapat ditentukan urutan suatu record terhadap record lainnya
dapat ditentukan.
Nilai balik dari method tersebut akan bernilai EQUIVALENT apabila kedua
data tersebut sama. Memberikan nilai FOLLOWS apabila data pertama
menempati posisi berikutnya setelah data kedua. Serta memberikan nilai
PRECEDES apabila posisi data pertama mendahului data kedua.
6. KONEKSI HTTP
MIDP menyediakan API yang dapat dipergunakan untuk membuat aplikasi MIDlet
yang memanfaatkan jaringan MIDP 1.0 melalui class Connectoryang terdapat pada
package javax.microedition.io menspesifikasikan class dan interface untuk
membuat koneksi jaringan secara umum.
HTTP (HyperText Transfer Protocol) adalah protocol yang mengatur bagaimana
sebuah dokumen dikirimkan pada layangan World Wide Web di internet maupun
intranet. Pada jaringan HTTP terdapat server HTTP yang melayani permintaan
dokumen, serta user-agent yaitu tool yang digunakan oleh client HTTP seperti
Microsoft Internet Explorer dan sejenisnya.
MIDP menyediakan fasilitas yang memungkin bagi semua aplikasi MIDlet untuk
melakukan koneksi internet. Class Connector ini merupakan class yang terdiri atas
method-method static yang menyediakan koneksi secara generic.
Terdapat dua metode yang bisa digunakan untuk membuka koneksi HTTP pada
aplikasi MIDlet dengan memanfaatkan class Connector.
 Menggunakan method open() untuk membuka koneksi
 Menggunakan method pembuat Stream
Download