Anda di halaman 1dari 8

AMPC (Pengenalan Java) Bab 8 Hal 1 dari 8

BAB 8
PEMROGRAMAN GRAFIS MIDLET
Dengan hal level API pemrogram dapat membuat berbagai antar
muka MIDlet tandar !ang digunakan untuk menerima maukan tek"
pa#ord" menampilkan image dan lain ebagain!a$ Pemrogram han!a
mende%iniikan &ii& dari uer inter%a'e terebut" menampilkan kepada
pengguna dan kemudian mendapatkan hailn!a$
(amun )ika diperhatikan e'ara lebih ekama" komponen*
komponen terebut tidak akan 'ukup memadai dalam hal*hal lain
ema'am untuk keperluan game" eperti mengetahui penekanan
tombol oleh pengguna maupun mengake pi+el pada la!ar$ Dan lo#
level API pun hadir ebagai olui dari permaalahan terebut$
,o# ,evel API men!ediakan %ungi*%ungi untuk mengake gra%i
pada la!ar aplikai" menggambat dan mengolah euatu !ang level*n!a
udah pi+el*pi+el gambar erta pemba'aan event penekanan tombol
maupun pointer pada perangkat handheld devi'e !ang mendukung
input tou'h*'reen$ Pemrogram bertanggung )a#ab epenuhn!a pada
interaki dari la!ar aplikai !ang menggunakan lo# level API dalam
men!ediakan interaki !ang n!aman bagi pengguna$
-elain menangani %ungi*%ungi untuk antar muka berbai
#indo#" pa'kage javax.microedition.lcdui )uga men!ediakan %ungi*
%ungi untuk menangani antar muka berbai 'anva" eperti
menggambar gari (line)" titik" lingkaran" ellip" peregi pan)ang"
me#arnai 'anva dan elemen*elemen daar lain$
8.1. CLASS CANVAS
Cla 'anva merupakan 'la !ang men!ediakan %ungi*%ungi
dan lingkungan !ang tepat bagi aplikai !ang membutuhkan mana)e*
men antar muka dan event pada level rendah hendeld devi'e (lo#
level uer inter%a'e dan lo# level event)$ Penggunaan !ang utama dari
'la 'anva ini adalah pada aplikai game" karena 'la 'anva men*
dukung penempatan ob)ek*ob)ek gra%i dan pemba'aan tombol$
Cla 'anva ini merupakan 'la abtrak ekaligu turunan dari
'la dipla!able$ .arena merupakan kela abtrak" maka pemrogram
tidak dalapat langung menggunakan 'la ini dalam aplikai MIDlet"
melainkan haru membuat 'la turunann!a dahulu !ang mende%inii*
kan method paint() untuk melakukan mana)emen antar muka pada
level rendah$ Method paint() lah !ang akan dipanggil oleh item
ketika diperlukan update tampilan la!ar$
AMPC (Pengenalan Java) Bab 8 Hal / dari 8
Penggunaan 'la 'anva umumn!a beramaan dengan 'la
graphi'" karena 'la graphi' lah !ang men!ediakan ob)ek*ob)ek
gra%ik dan %ungi*%ungi lain untuk memanipulai gra%ik level rendah$
8.2. CLASS GRAPHICS
Cla 'anva tidak memiliki %ungi*%ungi atau method untuk
melakukan operai*operai gra%i$ 0perai gra%i pada 'anva dilaku*
kan melalui ob)ek graphi' !ang men)adi parameter method paint()
milik 'la 'anva terebut$
0perai*operai !ang dapat dilakukan oleh 'la graphi' terebut
(javax.microedition.lcdui.Graphics) meliputi operai gra%i dua
dimeni" operai tingkat pi+el" operai gra%i geometri (gari1 line" ob)ek*
ob)ek peregi1 re'tangle" ob)ek*ob)ek lengkungan)" penggambaran tek
dan manipulai #arna erta penempatan gambar dari ob)ek image$
8.2.1. Tentang Warna
Pada uer inter%a'e berbai 'anva dimungkinkan melakukan
pe#arnaan mialn!a untuk me#arnai tek" me#arnai gari" peregi
atau lengkungan dan operai*operai lain pada ob)ek graphi'$ 2arna
!ang diediakan oleh 'la graphi' adalah /3 bit dengan maing*
maing 8 bit untuk #arna merah (red)" 8 bit untuk #arna hi)au (green)
dan 8 bit untuk #arna biru (blue)$ Berikut ini adalah method*method
penting !ang berkaitan dengan pe#arnaan !aitu 4
p!"#$ %&#' (etC&"&r)#nt re'* #nt green* #nt !"e+,
Parameter*parameter red" green dan blue maing*maing berkaita
dengan #arna daar !akni merah" hi)au dan biru" nilain!a berada
diantara 5 6 /77$
p!"#$ %&#' (etC&"&r)#nt RGB+,
Memiliki %ungi !ang erupa dengan method di ata" namun ber*
beda pada parameter$ 8ormat parameter 9:B adalah 5;99::BB
di mana bagian 99 untuk #arna merah (red)" :: untuk #arna
hi)au (green)" BB untuk #arna biru (blue) dan nilain!a hekade'i*
mal (55 6 88)$
p!"#$ %&#' (etGra-S$a"e)#nt ($a"e+,
Parameter 'ale adalah tingkat gra!'ale !ang berkiar antar 5 6
/77$ <idak emua perangkat handheld devi'e telah mengguna*
kan item pe#arnaan 9:B$ Ban!ak perangkat handheld devi'e
!ang maih menggunakan item pe#arnaan gra!'ale" oleh
karenan!a diediakan pada method ini$
AMPC (Pengenalan Java) Bab 8 Hal = dari 8
p!"#$ #nt getC&"&r)+,
Menghailkan in%ormai nilai #arna !ang aat ini akti%$ (ilain!a
ber%ormat 5;99::BB$
p!"#$ #nt getRe'C&.p&nent)+,
Menghailkan in%ormai nilai #arna merah !ang aat ini akti%$
(ilain!a berkiar antara 5 6 /77$
p!"#$ #nt getGreenC&.p&nent)+,
Menghailkan in%ormai nilai #arna hi)au !ang aat ini akti%$
(ilain!a berkiar antara 5 6 /77$
p!"#$ #nt getB"eC&.p&nent)+,
Menghailkan in%ormai nilai #arna biru !ang aat ini akti%$ (ilain!a
berkiar antara 5 6 /77$
p!"#$ #nt getGra-S$a"e)+,
Menghailkan in%ormai nilai #arna gra!'ale !ang aat ini akti%$
(ilain!a berkiar antara 5 6 /77$
8.2.2 Pengga.!aran Te/(
-etelah menetapkan #arna euai dengan !ang diinginkan" elan*
)utn!a dapat menambahkan tek pada la!ar 'anva$ Cla graphi'
mendukung operai penggambaran tek" baik e'ara per karakter"
tring maupun ub*tring$ Berikut adalah methid*method penting !ang
berkaitan dengan penggambaran tek !aitu 4
p!"#$ %&#' 'ra0Str#ng)Str#ng (tr* #nt 1* #nt -* #nt an$2&r+,
Digunakan untuk menambahkan tring pada poii + dan !"
dengan aturan euai dengan nilai an'hor (untuk memudahkan
penggambaran tek)$ An'hor point digunakan untuk menentukan
penempatan tek relati% terhadap koordinat !ang ditun)uk$ (ilai
an'hor merupakan gabungan dari kontanta tatik pada 'la
javax.microedition.lcdui.Graphics
p!"#$ %&#' 'ra0 C2ar)$2ar $* #nt 1* #nt -* #nt an$2&r+,
Digunakan untuk menambahkan ebuah karakter pada poii +
dan !" dengan aturan poii euai dengan nilai an'hor$ (ilai
an'hor point ini ama dengan aturan pada method 'ra0Str#ng)+.
p!"#$ %&#' 'ra0S!(tr#ng)Str#ng (tr* #nt &33(et* #nt "engt2* #nt
1* #nt -* #nt an$2&r+4
Digunakan untuk menggambarkan ub tring dari uatu tring$
8.2.5. Penggnaan F&nt
:raphi' menggambarkan tek berdaarkan ob)ek 8ont !ang
edang akti%$ Cla 8ont (javax.microedition.lcdui.Font) digunakan
AMPC (Pengenalan Java) Bab 8 Hal 3 dari 8
untuk memanipulai tipe %ont !ang diediakan oleh perangkat handheld
devi'e$ >ang haru diperhatikan bah#a %ont tidak bia dibuat oleh
aplikai$ Aplikai han!a bia meminta %ont !ang diinginkan euai tipe"
ukuran dan atribut lain (eperti ukuran1 i?e" 'orak1 t!le" dan tipe1 %a'e)
dan etelah itu" item akan mengembalikan %ont !ang paling euai
dengan apliaki$
8ont tidak bia dibuat ob)ekn!a karena tidak mempun!ai 'ontru'*
tor publi'$ @ntuk membuat ob)ek %ont" dilakukan dengan memanggil
%ungi tati' getFont() !ang diediakan oleh 'la 8ont 4
Font f = Font.getFont(FACE_!"E#$ "!%E_&%A'($
')E_#A%%)*
8.2.6 Gra3#( Ge&.etr#
Cla graphi' )uga dapat digunakan utnuk mendukung pembuata
operai gra%i dua dimeni" eperti pembuatan gari" peregi atau
peregi pan)ang dengan udut lan'ip" tumpul dan ellip atau leng*
kungan$ Method*method !ang berhubungan dengan operai gra%i
geometri duat dimeni !aitu 4
pu+lic void dra,%ine(int x-$ int .-$ int x/$ int ./)*
Menggambarkan gari (line) dari koordinat (+1" !1) ampai dengan
koordinat (+/" !/)$
pu+lic void dra,0ect(intx$ int .$ int ,idth$ int height)*
Menggambarkan egi empat dengan koordinat po)ok kiri ata (+" !)
dan lebar A #idth erta tinggi A height$
pu+lic void 1ll0ect(intx$ int .$ int ,idth$ int height)*
Memiliki %ungi !ang ama dengan dra#9e't" namun egi empat
!ang tergambar langung terii oleh pengariran euai dengan
#arna !ang aat ini edang akti% digunakan$
pu+lic void dra,0ound0ect(int x$ int .$ int ,idht$ int
height$ ind arc2idth$ int arc3eight)*
Menggambar egi empat dengan koordinat po)ok kiri ata (+" !)
dan lebar A #idth erta tinggi A height" tinggi lengkungan udut A
ar'Height erta lebar lengkungan udut A ar'2idth$
pu+lic void 1ll0ound0ect(int x$ int .$ int ,idht$ int height$
ind arc2idth$ int arc3eight)*
Memiliki %ungi !ang ama dengan method dra#9ound9e't"
namun egi empat !ang tergambar langung terii oleh
pengariran euai dengan #arna !ang aat ini edang akti%
digunakan$
pu+lic void dra, Arc(int x$ int .$ int ,idth$ int height$ int
startAngle$ int arcAngle)*
AMPC (Pengenalan Java) Bab 8 Hal 7 dari 8
Menggambarkan lengkungan dengan koordinat po)ok kiri ata
adalah (+" !) dengan ukuran lebar A #idth era tinggi A height$
-udut a#al adalah tartAngle dan ar'Angle merupakan nilai udut
relati% terhadap udut a#al$ -udut nol dera)at dalam hal hal ini
adalah poii )am =B dan pertambahan udut" !akni !ang nilain!a
ditentukan oleh ar'Angle adalah berla#anan dengan )arum )am$
pu+lic void 1llArc(int x$ int .$ int ,idth$ int height$ int
startAngle$ int arcAngle)*
Memiliki %ungi !ang ama dengan method dra#Ar'" namun
lengkungan !ang tergambar langung terii oleh pengariran
euai dengan #arna !ang aat ini edang akti% digunakan$
pu+lic void settro4et.le(int st.le)*
Mengubah method pembuatan ob)ek geometri$ -t!le ini dapat ber*
nilai -0,ID (menggambar dengan menggunakan gari utuh) atau
D0<<CD (menggambar dengan menggunakan gari putu*putu)$
(ilai de%ault dari method ini adalah -0,ID$
pu+lic void gettro4et.le()*
Mendapatkan metode pembuatan ob)ek geometri !ang edang
akti% aat ini$ Jika tidak ditentukan ebelumn!a" maka akan meng*
hailkan nilai de%aultn!a !aitu -0,ID$
8.5. CLASS IMAGES
Cla image adalah 'la !ang men!impan data gambar$ MIDP
1$5 han!a mengharukan dukungan bagi gambar dengan %ormat P(:
bagi perangkat !ang mengimplementaikann!a$ 0b)ek image etelah
dibuat" nantin!a dapat dipergunakan oleh ob)ek graphi' dengan
pemanggilan method dra,'mage() dengan bentuk umum 4
dra,'mage('mage img$ int x$ int .$ int anchor)*
An'hor !ang dipergunakan ama eperti an'hor pada tek" han!a
a)a khuu untuk image dapat dipergunakan an'hor DCC(<C9"
namun tidak ada an'hor BA-C,I(C$
0b)ek image endiri ada dua )eni !aitu ob)ek image imutable"
adalah ob)ek image !ang tidak dapat diubah etelah dibuat" erta ob)ek
image mutable" adalah ob)ek !ang dapat diubah nilai pi+eln!a$
.eban!akan dari aplikai MIDlet han!a membutuhkan ob)ek image
imutable$ Image imutable dapat dibuat melalui pemanggilan method
'reateImage() dengan tiga 'ara" !aitu 4
create'mage(tring name)*
Pembuatan dari %ile P(:
AMPC (Pengenalan Java) Bab 8 Hal E dari 8
create'mage(+.te56 'mage7ata$ int 'mage89set$ int
'mage%ength)*
Pembuatan dari arra! b!te
create'mage('mage source)*
Pembuatan dari ob)ek Image
8ile akan diba'a dari %ile data P(: !ang berada pada paket JA9
MIDlet terebut$ Pemba'aan dari arra! b!te dapat dipergunakan untuk
membuat gambar !ang diambil dari tream !ang beraal dari net#ork
atau %ile$ -edangkan pembuatan dari ob)ek image dapat dipergunakan
untuk membuat ob)ek image imutable dari ob)ek image mutable" mial*
n!a untuk penggunaan pada Alert" Choi'e dan 8orm haru mengguna*
kan image imutable$
-edangkan image mutable dibuat dengan menggunakan method
'reateImage dengan parameter lebar dan tinggi gambar terebut$
Image !ang dibuat dengan 'ara ini dapat diambil re%ereni ob)ek
graphi'*n!a melalui pemanggilan method getGraphics() ehingga
dapat dimanipulai dengan kode pemrograman$
Method lain !ang ering dipakai pada 'la image adalah method
get2idth() dan get3eight() !ang akan mengembalikan ukuran lebar
dan tinggi gambar !ang dikandungn!a dalam atuan pi+el$
8.6. EVENT PADA CANVAS
Dalam penanganan event pada level rendah (lo# level event) tidak
diediakana antar muka khuu ebagaimana penanganan event pada
level tinggi (high level event)$ (amun penanganan event pada level
rendah dilakukan oleh %ungi*%ungi !ang diediakan oleh 'la 'anva
(javax.microedition.lcdui.Canvas) itu endiri$ 0leh karena itu" 'la
'anva mampu mendeteki penekanan tombol ke!pad ataupun mende*
teki pointer pada perangkat !ang menggunakan la!ar tou'h 'reen$
Berikut ini adalah method*method !ang digunakan untuk menangani
event pada 'la 'anva" !aitu 4
protected void 4e.&ressed(int 4e.Code)*
Method !ang digunakan untuk mendeteki ebuah tombol ke!pad
!ang edang ditekan$
protected void 4e.0eleased(int 4e.Code)*
Method !ang digunakan untuk mendeteki ebuah tombol ke!pad
eleai ditekan$
protected void 4e.0epeated(int 4e.Code)*
Method !ang digunakan untuk mendeteki ebuah tombol ke!pad
!ang ditekan e'ara teru meneru$
protected void pointer&ressed(int 4e.Code)*
AMPC (Pengenalan Java) Bab 8 Hal F dari 8
Method !ang digunakan untuk mendeteki pointer !ang edang
ditekan$
protected void pointer7ragged(int 4e.Code)*
Method !ang digunakan untuk mendeteki pointer !ang edang
ditekan dan digerakkan$
protected void pointer0eleased(int 4e.Code)*
Method !ang digunakan untuk mendeteki pointer !ang dilepa$
protected void sho,(otif.()*
Method !ang digunakan untuk menampilkan ob)ek 'anva$
protected void hide(otif.()*
Method !ang digunakan untuk men!embun!ikan ob)ek 'anva$
.arena keanekaragaman )eni perangkat handheld devi'e
men!ebabkan tidak emua method di ata dapat diimplementaikan
pada emua emulator atau perangkat alin!a" mialn!a pada method
pointer&ressed()$ pointer7ragged()$ pointer0elease() dan
4e.&ressed() !ang tidak elalu teredia pada ebuah perangkat"
ehingga perlu dilakukan penge'ekan terlebih dahulu dengan
menggunakan method*method berikut 4
pu+lic +oolean has&ointerEvents()*
Method !ang digunakan untuk memerika apakah ebuah perang*
kat mendukung maukan pointer (e)eni tou'h 'reen pada Palm
dan Po'ket PC) atau tidak$ Method ini berkaitan dengan dimungkin
kann!a penggunaan method pointer&ressed() dan
pointer0eleased() pada ebuah perangkat atau tidak$
pu+lic +oolean has&ointer#otionEvents()*
Method !ang digunakan untuk memerika apakah ebuah
perangkat memungkinkan penggunaan method pointer:ragged()$
pu+lic +oolean has0epeatEvents()*
Method !ang digunakan untuk memerika apakah ebuah
perangkat memungkinkan penggunaan method ke!9epeated()$
&u+lic +oolean is7ou+le:e9ered()*
Method !ang digunakan untuk memerika apakah ebuah perang*
kat memungkinkan menggunakan double bu%%ering$
@ntuk pembuatan aplikai MIDlet berupa permainan (game)" terka*
dang pendetekian penekanan tombol ke!pad a)a kurang 'ukup$
Beberapa )eni perangkat handheld devi'e men!ediakan tombol
navigai terendiri untuk ke ata" ba#ah" kiri ataupun kanan$ -edang*
kan pada perangkat !ang lain melakukan hal !ang ama dengan meng*
gunakan tombol numerik pada ke!pad$
AMPC (Pengenalan Java) Bab 8 Hal 8 dari 8
@ntuk memudahkan pembuatan aplikai permainan dengan port*
abilita tinggi" teredia method getGameAction()$ Method ini
mengguna*kan kode penekanan tombol ebagai parametern!a dan
akan mengha*ilkan kode untuk aplikai permainan !ang tepat euai
dengan perang*kat MID tempat aplikai terebut di)alankan$

Anda mungkin juga menyukai