Anda di halaman 1dari 39

TUGAS UJIAN AKHIR SEMESTER PEMROGRAMAN JAVA DAN TEKNOLOGI BERGERAK

Oleh : Vencysisca Jeanne Risamena !""##"$"$% K&man' Isa(ella Anas)hasia !""##"$"*$ N'+,ah U)ami -e.an)i !""##"$!!"%

JURUSAN TEKNIK ELEKTRO /AKULTAS TEKNIK UNIVERSITAS UDA0ANA 1"!2

!3

Dalam arsiteltur Java Me ada bagian yang disebut sebagai profile dan configuration. Jelaskan perbedaan antara profile dan configuration dalam arsitektur Java Me !

Gam(a, !3 Arsitektur Java Me

Teknologi J2ME masih memiliki keterbatasan terutama ika diaplikasikan pada ponsel! karena sangat tergantung pada device yang digunakan seperti merk! kemam"puan ponsel! dan uga dukungan terhadap perangkat J2ME. #ada umunya aplikasi J2ME tidak dii inkan untuk menulis file pada ponsel dengan alasan keamanan. Teknologi J2ME pada dasarnya tersiri dari beberapa bagian yaitu konfigurasi! profil dan paket$paket opsional. %onfiguration merupakan ava library minimum dan kapabilitas yang dimiliki para pengembang J2ME! dimana sebuah mobile device dengan kemampuan ava akan dioptimalkan men adi sesuai. Dalam J2ME terdapat 2 konfigurasi yaitu & %'D% ( %onnected 'imited Device %onfiguration ) %'D% adalah perangkat dasar dari J2ME! spesifikasi dasarnya berupa library dan A#* yang diimplementasikan pada J2ME. %ontohnya adalah yang digunakan pada ponsel! pager! #DA. Apikasi ava pada perangkat$ perangkat keras ini biasanya memiliki ukuran memori yang terbatas! sumber daya dan kemampuan memproses. %'D% pada J2ME adalah spesifikasi minimal dari package! kelas dan sebagian fungsi J+M ( ava virtual machine ) yang dikurangi agar dapat diaplikasikan device yang ada. J+M yang digunakan disebut ,+M (,ilobyte virtual machine)

%D% ( %onnected Device %onfiguration ) %D% adalah spesifikasi dari konfigurasi J2ME. %D% merupakan komunitas proses pada ava yang memiliki standarisasi. %D% terdiri dari virtual machine dan kumpulan library dasar untuk digunakan pada profile industri. *mplementasi %D% pada J2ME adalah source code yang menyediakan sambungan dengan macam$macam platform. #rofile berbeda dengan configuration! pada profile membahas sesuatu yang spesifik untuk sebuah perangkat. #rofile menyediakan fitur bagi device dengan tipe tertentu! dan letaknya berada di atas layer configuration. Disamping itu profile merupakan gambar set$set tambahan dari A#* dan fitur untuk pasar tertentu! kategori perangkat atau industri. -ementara configuration menggambarkan library dasar! profile$profile menggambarkan library yang penting untuk membuat aplikasi$aplikasi efektif. Dalam J2ME terdapat dua buah profile yaitu M*D# dan .oundation #rofile. Mobile information device #rofile ( M*D# )! menyediakan library$library ava untuk implementasi dasar antarmuka ( /0* )! implementasi aringan ( net1orking )! database dan timer. M*D# dirancang khususnya untuk 1ireless phone dan pager. -edangkan .oundation #rofile! profile dasar untuk non$/0* net1ork device pada %D%. 2ubungan antara configuaration dan profile yang ada pada J2ME beserta enis mesin virtualnya seperti gambar diba1ah.

Gam(a, 13 2ubungan #rofile dengan %onfiguration

13

Terdapat sebuah listing program 2ello 3orld M*Dlet! dan saat di alankan dalam emulator seperti berikut

Gam(a, 23 Tampilan Emulator

a.

-eluruh M*Dlet harus mengimplementasikan keempat methods yang ada (dapat dilihat pada listing program ) yaitu & 2elloMidlet (M*Dlet constructor)! startApp! pauseApp! dan destroyApp. .ungsi dari keempat methods tersebut adalah sebagai berikut &

M*Dlet constructor & digunakan untuk melakukan inisialisasi dasar! seperti variabel$variabel instance pengaturan. 4elum mendapatkan resources apapun! karena M*Dlet masih dalam state istirahat. startApp & digunakan untuk menampilkan tampilan a1al dari aplikasi mobile yang telah dibuat. pauseApp & digunakan untuk melepas setiap resources yang diperlukan oleh M*Dlet. Aplikasi akan dihentikan ketika ter adi interupsi. destroyApp & digunakan untuk menghentikan aplikasi mobile yang telah ber alan
b. ,eempat methods yang ada dalam M*Dlet akan berkaitan dengan proses daur hidup suatu M*Dlet. /ambar berikut ini merupakan daur hidup (life cycle) sebuah M*Dlet.

Gam(a, #3 'ife %ycle

#erangkat mobile berinteraksi dengan aplikasi M*Dlet menggunakan Application Management -oft1are (AM-). AM- ini yang bertanggung a1ab untuk menginisialisasi (initiali5ing)! memulai (starting)! men eda (pausing)! melan utkan(resuming) dan menghancurkan (destroying) aplikasi M*Dlet. 0ntuk memudahkan mana emen ini! kelas M*Dlet mempunyai tiga metode yang disebutkan diatas yang dapat merubah status aplikasi men adi active! paused atau destroyed. 6. ,etika aplikasi M*Dlet di alankan! constructor M*Dlet dibaca dan instance ob ek (ne1 ( ) ) akan dibuat. #ada saat ini status M*Dlet berada dalam keadaan 7pause8. 2. ,emudian! M*Dlet akan berganti status men adi 7active8 ketika AMmemanggil startApp( ). 9. ,etika dalam keadaan active! AM- dapat menunda alannya aplikasi dengan memanggil pauseApp( ) dan kembali men alankan aplikasi dengan memanggil startApp( ). :. Aplikasi akan berhenti ketika AM- memanggil destroyApp( )
23 4uatlah sebuah program M*Dlet untuk mencatat data pelanggan yang dapat dilakukan melalui perangkat mobile. Dengan beberapa ketentuan. 2alaman splash screen saat aplikasi pertama kali di alankan dan kemudian menampilkan halaman login yang berisi field pin. 0ntuk data a1al pin loginnya adalah & 629:;< . Diba1ah ini tampilan a1al dari aplikasi mobile data pelanggan yang telah dibuat. -etelah Muncul tampilan a1al! kemudian pilih pro ect0as untuk masuk ke halaman spalsh screen di a1al aplikasi mobile

Gam(a, $. Tampilan A1al

4eberapa source code untuk halaman spalsh screen -plashTimer%anvas. ava dapat dilihat di ba1ah ini
package projectuas; import javax.microedition.lcdui.*; /** * @author user */ public class SplashTimerCanvas extends Canvas { private idlet midletTT; int !" h" h#mg;

private *mage img"

K&.e 4,&',am !3 Deklarasi variabel

#ada source code diatas adalah pendeklarasian untuk variabel image yang akan dibentuk pada halaman splash screen. -etelah pendeklarasian variabel! kemudian masuk ke public untuk menampilkan gambar yang telah dibentuk dengan mengambil ukuran dari gambar yang telah ditentukan pada halaman splash screen seperti source code di ba1ah ini.
public SplashTimerCanvas$ idlet midlet% { ! & get'idth$%; h & get(eight$%; midletTT & midlet; tr) { img & #mage.create#mage$getClass$%.get*esource+sStream$,/image/i c).png,%%; catch $java.io.#./xception e% { h#mg & img.get(eight$%; K&.e 4,&',am 13 Tampil gambar

-etelah pembentukan gambar dan akan menampilkannya! selan utnya adalah untuk mengeset posisi dan 1arna dari gambar yang akan ditampilkan! seperti source code diba1ah ini
public void paint$0raphics g% { g.setColor$122" 122" 122%; g.3ill*ect$4" 4" !" h%; g.dra!#mage$img" ! / 1" h / 1" 0raphics.(C/5T/* 6 0raphics.7C/5T/*%; -

K&.e 4,&',am 23 #ublic paint

Gam(a, *3 Tampilan splash screen

0ntuk mengeset 1aktu yang akan digunakan untuk merubah tiap splash ganbar atau untuk mengeset kapan 1aktu yang tepat berhenti untuk melakukan splash tampilan 6 ke tampilan berikutnya dapat dilihat pada source code diba1ah ini
protected void hide5oti3)$% { midletTT.stopTimer$%; protected void sho!5oti3)$% { midletTT.startTimer$%; public void command+ction$Command command" 8ispla)able displa)able% { -

K&.e 4,&',am #. -et time splash

-etelah pengesetan 1aktu yang diinginkan ! maka splash image akan berganti ke tampilan selan utnya dengan source code di ba1ah . Aplikasi akan mengeset gambar selan utnya yang akan ditampilkan setelah splash screen! dengan pengambilan 1arna dan pada tampilan ini terdapat tombol mulai atau eksekusi untuk memulai aplikasi mobile. Dan masuk ke form login
class SuccesCanvas extends Canvas implements Command9istener { idlet midlet; public SuccesCanvas$ idlet midlet% { this.midlet & midlet; tr) { events // Set up this canvas to listen to command setCommand9istener$this%; // +dd the /xit command addCommand$ne! Command$, ulai," Command.SC*//5" - catch $/xception e% { e.printStackTrace$%; protected void paint$0raphics g% { g.setColor$122" 122" 122%; g.3ill*ect$4" 4" get'idth$%" get(eight$%%; g.setColor$12;" 4" :1<%; g.dra!String$,'/9C. /," get'idth$% / 1" $get(eight$% / 1% = :4" 0raphics.T.> 6 0raphics.(C/5T/*%; g.dra!String$,+plikasi 8ata >elanggan," get'idth$% / 1" $get(eight$% / 1% ? :4" 0raphics.T.> 6 0raphics.(C/5T/*%; public void command+ction$Command c" 8ispla)able d% { i3$c.get9abel$%.e@uals#gnoreCase$, ulai,%%{ midlet.#nsert>in$%; -

:%%;

K&.e 4,&',am $3 Tampilan setelah splash screen

Gam(a, 53 Tampilan setelah splash screen

Terdapat halaman menu utama untuk memilih fasilitas$fasilitas yang dapat dilakukan aplikasi yaitu tambah data pelanggan! tampil data pelanggan! cari data pelanggan! ubah data pelanggan! delete data pelanggan! ubah pin dan tentang kami dan logout. -ebelum menu u ke halaman menu utama! terdapat beberapa yang harus

diimport ke library! yaitu dapat dilihat source code diba1ah ini. 0ntuk 7 ava=.microedition rms package! menyediakan metode$metode untuk mengetahui ukuran dari record dan uga record store.

package projectuas; import javax.microedition.midlet.*; import javax.microedition.rms.*; import javax.microedition.lcdui.*; import java.util.*; import java.io.*; import org.ksoap1.*; import org.ksoap1.transport.*; import org.ksoap1.serialiAation.Soap.bject; import org.ksoap1.serialiAation.SoapSerialiAation/nvelope; import org.xmlpull.v:.Bml>ull>arser/xception; K&.e 4,&',am *3 *mport library

-eperti halnya

-plashTimer%anvas. ava! pada Midlet. ava

uga terdapat

pendeklarasian variabel yang akan dipergunakan pada aplikasi mobile di Midlet. ava yaitu sorce code
public class idlet extends #8let implements Command9istener{ String pin9ogin"status"ke)!ord; int currentTask" id*ecord; *ecordStore rs; private +lert alert; private Choice0roup cg" cgjk"cgjk5e!; private 8ispla) displa); private Cilter 3ilter; private Corm 3orm"3orm7ie!"3orm/dit; private 9ist enu"list; private TextCield t3>in"t3Dode"t3nama" t3(>" t3+lamat" t3>ekerjaan" t3.ldE#d"t3Cind"t3>in+!al"t3>inFaru"t3*e>inFaru; private TextCield t3eDode"t3e5ama" t3e(p" t3e+lamat" t3e>ekerjaan; private Ticker ticker; private String url & ,httpG//localhost/projectHas/server.php,;
K&.e 4,&',am 53! Deklarasi Midlet. ava (a)

private Command cmdDembali & ne! Command$,Fack,"Command.F+CD":%; private Command cmdFack & ne! Command$,kembali,"Command.F+CD":%; private Command cmd/xit & ne! Command$,Deluar,"Command./B#T":%; private Command cmd9ogin & ne! Command$,9ogin,"Command..D":%; private Command cmd>ilih & ne! Command$,pilih,"Command..D":%; private Command cmdSimpan & ne! Command$,simpan,"Command..D":%; private Command cmd/dit & ne! Command$,Hbah," Command.SC*//5" :%; private Command cmd(apus & ne! Command$,(apus," Command.SC*//5" :%; private Command cmdHbah & ne! Command$,Hbah 8ata," Command.SC*//5" :%; private Command cmdSearch & ne! Command$,Search," Command.SC*//5" :%; >. 'ogin pin /ambar private Command cmdHbah>in & ne! Command$,Hbah>in," Command.SC*//5" :%; private Command cmd8etail & ne! Command$,8etail Contact,"Command.SC*//5":%; private Command cmdFackup & ne! Command$,/ksport ke 8atabase,"Command.SC*//5":%; private *ecord/numeration re & null; private Timer timer; private TimerTask timerTask; private SplashTimerCanvas ttCanvas; private SuccesCanvas scCanvas;

K&.e 4,&',am 531 Deklarasi Midlet. ava (b)

public

idlet$%{ displa) & 8ispla).get8ispla)$this%; alert&ne! +lert$,8atabase 9angganan,%; close*ecStore$%; open*ecStore$,pin8F,%; // membuka recordStore read*ecords$:%; // membaca recordStore dengan id : // apabila user belum mengeset >#5" maka >#5 a!al dari program ini adalah ,:1I;2J,. i3 $pin9ogin && null%{ !rite*ecord$,:1I;2J,%; 3orm.append$,pin de3ault di setting ,%; K&.e 4,&',am 6. 'ogin pin

Gam(a, 63 .orm login

public void command+ction$Command c" 8ispla)able d%{ i3 $c && cmd/xit%{ destro)+pp$3alse%; noti3)8estro)ed$%; else i3 $c && cmd9ogin%{ cek9ogin$%; else i3 $c && cmd>ilih%{ s!itch $ enu.getSelected#ndex$%%{ case 4G{ // 3ungsi insert data entri8ata$%; break; case :G{ //3ungsi lihat data lihat*ecord$%; break; case 1G{ //3ungsi search data search8ata$%; break; case IG{ ganti>in$%; break; case ;G{ tentangDami$%; break; K&.e 4,&',am 73 %ommand action

-orce code diatas digunakan untuk memberikan eksekusi pada form menu yang ada pada aplikasi mobile data pelanggan! seperti tampilan berikut ini

Gam(a, 73 Tampilan form menu

,emudian untuk source diba1ah ini berfungsi untuk menambahkan command apabila terdapat te=t field yang kosong! dengan manampilkan allert sesuai dengan aplikasi yang ditampilkan. Method diba1ah ini diberi nama alert dengan overload yang memiliki parameternya.
else i3 $c && cmdSimpan%{ //cek jika textCield ada )ang kosong i3 $Kt3Dode.e@uals$,,% LL Kt3nama.e@uals$,,% LL K t3(>.e@uals$,,%LL Kt3+lamat.e@uals$,,% LL K t3>ekerjaan.e@uals$,,%%{ tambah*ecord$%; alert.setString$,8ata berhasil disimpan,%; displa).setCurrent$alert" enu%; else{ alert.setString$,8ata tidak boleh kosong,%; displa).setCurrent$alert" 3orm%; -

K&.e 4,&',am !"3 !. %ommand alert (a)

else i3 $c && cmdFack%{ displa).setCurrent$ enu%; else i3 $c&&cmdFackup%{ tr) { 'ebService$%; catch $/xception ex% { alert & ne! +lert$,/rror 'riting," ex.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; else i3 $c && cmdDembali%{ lihat*ecord$%; else i3 $c && cmd8etail%{ detail>elanggan$%; else i3 $c && cmdSearch%{ cari*ecord$%; else i3 $c && cmd(apus%{ int pos & list.getString$list.getSelected#ndex$%%.index.3$,.,%; //ambil index dari list String kode & list.getString$list.getSelected#ndex$%%.substring$4" pos%; (apus*ecord$kode%; alert.setString$,id )g dihapus , ? kode%; displa).setCurrent$alert" enu%; K&.e 4,&',am !"313 %ommand alert (b)

//untuk memperbarui da3tar pelanggan else i3 $c && cmdHbah% { close*ecStore$%; open*ecStore$,phone8F,%; tr) { String output#d>elanggan & t3eDode.getString$%; String output5ama>elanggan & t3e5ama.getString$%; String output5o(p & t3e(p.getString$%; String Mkel & cgjk5e!.getString$cgjk5e!.getSelected#ndex$%%; String output+lamat & t3+lamat.getString$%; String output>ekerjaan & t3>ekerjaan.getString$%; b)teNO output*ecord; F)te+rra).utputStream outputStream & ne! F)te+rra).utputStream$%; 8ata.utputStream output8ataStream & ne! 8ata.utputStream$outputStream%; output8ataStream.!riteHTC$output#d>elanggan%; output8ataStream.!riteHTC$output5ama>elanggan%; output8ataStream.!riteHTC$output5o(p%; output8ataStream.!riteHTC$Mkel%; output8ataStream.!riteHTC$output+lamat%; output8ataStream.!riteHTC$output>ekerjaan%; output8ataStream.3lush$%; output*ecord & outputStream.toF)te+rra)$%; rs.set*ecord$id*ecord" output*ecord" 4" output*ecord.length%; outputStream.reset$%; outputStream.close$%; output8ataStream.close$%; displa).setCurrent$list%; - catch $/xception error% { alert & ne! +lert$,/rror 'riting," error.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; -

//untuk mengubah data pelanggan K&.e 4,&',am !!3 #erbarui data pelanggan else i3 $c && cmd/dit% { close*ecStore$%; open*ecStore$,phone8F,%; int index & : ? list.getSelected#ndex$%; tr) { 3orm/dit & ne! Corm$,Hbah 8etail >elanggan,%; 3orm/dit.addCommand$cmdFack%; 3orm/dit.addCommand$cmdHbah%; 3orm/dit.setCommand9istener$this%; b)teNO b)te#nput8ata & ne! b)teNI44O; String input#d>elanggan" input5ama>elanggan" input5o(p" Mkel" input+lamat" input>ekerjaan & null; F)te+rra)#nputStream inputStream & ne! F)te+rra)#nputStream$b)te#nput8ata%; 8ata#nputStream input8ataStream & ne! 8ata#nputStream$inputStream%; i3 $currentTask && :% { 3ilter & ne! Cilter$ke)!ord%; re & rs.enumerate*ecords$3ilter" null" 3alse%; i3 $currentTask && 1% { Comparator comparator & ne! Comparator$%; re & rs.enumerate*ecords$null" comparator" 3alse%; 3or $int i & :; i P& re.num*ecords$%; i??% { int datapointer & re.next*ecord#d$%; i3 $i && index% { rs.get*ecord$datapointer" b)te#nput8ata" 4%; id*ecord & datapointer; input#d>elanggan & input8ataStream.readHTC$%; input5ama>elanggan & input8ataStream.readHTC$%; input5o(p & input8ataStream.readHTC$%; Mkel & input8ataStream.readHTC$%; i3 $Mkel.e@uals$,9aki=9aki,%%{ Mkel&,9,;else {Mkel&,>,;input+lamat & input8ataStream.readHTC$%; input>ekerjaan & input8ataStream.readHTC$%; t3eDode & ne! TextCield$,#d >elangganG," input#d>elanggan" 14" TextCield.+5Q%; t3e5ama & ne! TextCield$,5ama >elangganG," input5ama>elanggan" 14" TextCield.+5Q%; K&.e 4,&',am !13!. Mengubah data pelanggan (a)

t3e(p & ne! TextCield$,5o (>G," input5o(p" 14" TextCield.>(.5/5H F/*%; cgjk5e! & ne! Choice0roup$,Menis Delamin," Choice./BC9HS#7/%; cgjk5e!.append$,9aki = 9aki,"null%; cgjk5e!.append$,>erempuan,"null%; t3+lamat & ne! TextCield$,+lamatG," input+lamat" 14" TextCield.+5Q%; t3e>ekerjaan & ne! TextCield$,>ekerjaanG," input>ekerjaan" 14" TextCield.+5Q%; 3orm/dit.append$t3eDode%; 3orm/dit.append$t3e5ama%; 3orm/dit.append$t3e(p%; 3orm/dit.append$cgjk5e!%; 3orm/dit.append$t3e+lamat%; 3orm/dit.append$t3e>ekerjaan%; inputStream.reset$%; displa).setCurrent$3orm/dit%; inputStream.close$%; - catch $/xception error% { alert & ne! +lert$,Faca /rror," error.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; else i3 $c && cmdHbah>in% { simpan>inFaru$%; K&.e 4,&',am !131. Mengubah data pelanggan (b) // Cungsi untuk membuka ataupun menutup record Store ============================================================= ==== // 3ungsi untuk membuka record dengan inputan string&&&&&&&&&&&&&&&&&&&&&&&&&&& public void open*ecStore$String str%{ tr){ rs & *ecordStore.open*ecordStore$str" true%; catch $/xception e%{K&.e 4,&',am !23 Membuka record

// Cungsi untuk menutup *ecord Store &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public void close*ecStore$%{ tr){ rs.close*ecordStore$%; catch $/xception e%{K&.e 4,&',am !#3 Menutup record

,emudian untuk source code diba1ah ini digunakan untuk pengelolaan data pelanggan dengan masing$masing eksekusi yang akan di alankan. yaitu ?lihat data record.
// Cungsi lihat da3tar record &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public void lihat*ecord$%{ tr) { close*ecStore$%; open*ecStore$,phone8F,%; list & ne! 9ist$,8a3tar >elanggan," 9ist.# >9#C#T%; list.addCommand$cmd8etail%; list.addCommand$cmdFackup%; list.addCommand$cmdFack%; list.setCommand9istener$this%; currentTask & 1; b)teNO b)te#nput8ata & ne! b)teNI44O; String input#d>elanggan" input5ama>elanggan" input5o(p" input+lamat" input>ekerjaan & null; F)te+rra)#nputStream inputStream & ne! F)te+rra)#nputStream$b)te#nput8ata%; 8ata#nputStream input8ataStream & ne! 8ata#nputStream$inputStream%; Comparator comparator & ne! Comparator$%; re & rs.enumerate*ecords$null" comparator" 3alse%; !hile $re.has5ext/lement$%% { rs.get*ecord$re.next*ecord#d$%" b)te#nput8ata" 4%; input#d>elanggan & input8ataStream.readHTC$%; input5ama>elanggan & input8ataStream.readHTC$%; input5o(p & input8ataStream.readHTC$%; input+lamat & input8ataStream.readHTC$%; input>ekerjaan & input8ataStream.readHTC$%; list.append$input#d>elanggan ? ,. , ? input5ama>elanggan ? ,," null%; inputStream.reset$%; displa).setCurrent$list%; inputStream.close$%; - catch $/xception error% { alert & ne! +lert$,Faca /rror," error.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; -

K&.e 4,&',am !#3 'ihat daftar pelanggan

//Cungsi )ang digunakan untuk melihat detail pelanggan &&&&&&&&&&&&&&&&&&&&&&&&& puablic void detail>elanggan$%{ close*ecStore$%; open*ecStore$,phone8F,%; int index & : ? list.getSelected#ndex$%; tr) { 3orm7ie! & ne! Corm$,8etail >elanggan,%; 3orm7ie!.addCommand$cmdDembali%; 3orm7ie!.addCommand$cmd/dit%; 3orm7ie!.addCommand$cmd(apus%; 3orm7ie!.setCommand9istener$this%; b)teNO b)te#nput8ata & ne! b)teNI44O; Gam(a, !13 Daftar pelanggan String input#d>elanggan" input5ama>elanggan" input5o(p"Mkel" input+lamat" input>ekerjaan & null; F)te+rra)#nputStream inputStream & ne! #ada daftar pelanggan diatas digunakan list dengan nama 7daftar pelanggan. Data F)te+rra)#nputStream$b)te#nput8ata%; 8ata#nputStream input8ataStream & ne! pelanggan ini diurutkan dengan menggunakan metode comparator. Dalam list 8ata#nputStream$inputStream%; Comparator comparator & ne! Comparator$%; uga berisikan elemen re command$command. & rs.enumerate*ecords$null" comparator" 3alse%; 3or $int i & :; i P& re.num*ecords$%; i??% { int datapointer & re.next*ecord#d$%; -etelah source code melihat pelanggan! selan utnya adalah untuk melihat i3 $i daftar && index% { rs.get*ecord$datapointer" b)te#nput8ata" 4%; detail dari daftar pelangganid*ecord yang ada! seperti halnya gambar diatas terdapat 9 & datapointer; input#d>elanggan & input8ataStream.readHTC$%; daftar pelanggan! dan pada input5ama>elanggan daftar tersebut kita dapat melihat secara detail dari & input8ataStream.readHTC$%; daftar pelanggan yang ada. input5o(p & input8ataStream.readHTC$%; Mkel & input8ataStream.readHTC$%; input+lamat & input8ataStream.readHTC$%; input>ekerjaan & input8ataStream.readHTC$%; String#tem string#d>elanggan & ne! String#tem$,#dG ," input#d>elanggan" #tem.>9+#5%; String#tem string5ama>elanggan & ne! String#tem$,5amaG ," input5ama>elanggan" #tem.>9+#5%; String#tem string5o(p & ne! String#tem$,5o (pG ," input5o(p" #tem.>9+#5%; String#tem stringMkel & ne! String#tem$,Menis DelaminG ," Mkel" #tem.>9+#5%; String#tem string+lamat & ne! String#tem$,+lamatG ," input+lamat" #tem.>9+#5%; String#tem string>ekerjaan & ne! String#tem$,>ekerjaanG ," input>ekerjaan" #tem.>9+#5%; 3orm7ie!.append$string#d>elanggan%; 3orm7ie!.append$string5ama>elanggan%; 3orm7ie!.append$string5o(p%; 3orm7ie!.append$stringMkel%; 3orm7ie!.append$string+lamat%; 3orm7ie!.append$string>ekerjaan%; inputStream.reset$%; -

K&.e 4,&',am !$3 Detail program (a)

displa).setCurrent$3orm7ie!%; inputStream.close$%; - catch $/xception error% { alert & ne! +lert$,Faca /rror," error.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; -

K&.e 4,&',am !$3 Detail program (b)

Tampilan dari source code diatas dapat dilihat diba1ah ini &

// Cungsi menambah da3tar record &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public void tambah*ecord$%{ /* Hntuk menambah record baru ke *ecord store membuat arra) b)te . temp adalah penampung data arra) b)te */ close*ecStore$%; open*ecStore$,phone8F,%; b)teNO temp & null; tr) { // engubah data dari!13 b)te menjadi arra) Gam(a, Detail pelanggan F)te+rra).utputStream baos & ne! F)te+rra).utputStream$%; // proses pengubahan data oleh baos untuk disimpan dalam record store.melihat daftar pelanggan yang ada! pada mobile application -elain untuk 8ata.utputStream dos & ne! 8ata.utputStream$baos%; dos.!riteHTC$t3Dode.getString$%%; terdapat pilihan untuk menambahkan daftar pelanggan! dengan source dos.!riteHTC$t3nama.getString$%%; diba1ah ini. dos.!riteHTC$t3(>.getString$%%; dos.!riteHTC$cgjk.getString$cgjk.getSelected#ndex$%%%; dos.!riteHTC$t3+lamat.getString$%%; dos.!riteHTC$t3>ekerjaan.getString$%%; temp & baos.toF)te+rra)$%; catch $#./xception ioe%{ ioe.printStackTrace$%; tr) { // enginputkan data pada record store rs.add*ecord$temp" 4" temp.length%; catch $*ecordStore5ot.pen/xception rsnoe%{ rsnoe.printStackTrace$%; catch $*ecordStore/xception rse%{ rse.printStackTrace$%; -

uga code

K&.e 4,&',am !*3 Tambah daftar pelanggan

Gam(a, !23 Tambah pelanggan


public void cari*ecord$%{ close*ecStore$%; open*ecStore$,phone8F,%; ke)!ord & t3Cind.getString$%; tr) { list & ne! 9ist$,Cari 8ata >elanggan," 9ist.# >9#C#T%; list.addCommand$cmdFack%; list.setCommand9istener$this%; String input5ame & null; b)teNO b)te#nput8ata & ne! b)teNI44O; F)te+rra)#nputStream inputStream & ne! F)te+rra)#nputStream$b)te#nput8ata%; 8ata#nputStream input8ataStream & ne! 8ata#nputStream$inputStream%; i3 $rs.get5um*ecords$% R 4% { 3ilter & ne! Cilter$ke)!ord%; re & rs.enumerate*ecords$3ilter" null" 3alse%; list.append$,(asil pencarianG , ? ke)!ord" null%; !hile $re.has5ext/lement$%% { rs.get*ecord$re.next*ecord#d$%" b)te#nput8ata" 4%;

K&.e 4,&',am !53 %ari data pelanggan (a)

input5ame & input8ataStream.readHTC$%; String nama & input8ataStream.readHTC$%; String no(> & input8ataStream.readHTC$%; String jk & input8ataStream.readHTC$%; String +lamat & input8ataStream.readHTC$%; String >ekerjaan & input8ataStream.readHTC$%; list.append$input5ame ? ,. Sn5amaG ,?nama ? ,Sn5o. (pG ,?no(> ?,SnSexG ,?jk?,Sn+lamatG , ?+lamat ? ,Sn>ekerjaanG , ?>ekerjaan ?,Sn," null%; inputStream.reset$%; displa).setCurrent$list%; inputStream.close$%; - catch $/xception error% { alert & ne! +lert$,/rror *eading," error.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; -

K&.e 4,&',am !53 %ari data pelanggan (b)

Gam(a, !#3 %ari pelanggan

void update*ecord$String kode" String nama" String no(>" String .ldE#d" String jk" String +lamat"String >ekerjaan% { close*ecStore$%; open*ecStore$,phone8F,%; b)teNO temp & null; tr){ re & rs.enumerate*ecords$null" null" 3alse%; !hile $re.has5ext/lement$%%{ int i & re.next*ecord#d$%; temp & rs.get*ecord$i%; F)te+rra)#nputStream bais & ne! F)te+rra)#nputStream$temp%; 8ata#nputStream dis & ne! 8ata#nputStream$bais%; tr){ String vDode & dis.readHTC$%; i3 $vDode.e@uals$kode%%{ rs.delete*ecord$i%; break; catch $#./xception ioe% { ioe.printStackTrace$%;re.rebuild$%; catch $*ecordStore5ot.pen/xception rsnoe% {rsnoe.printStackTrace$%;catch $*ecordStore/xception rse% {rse.printStackTrace$%;tr){ //kosntruktor baos dan dos F)te+rra).utputStream baos & ne! F)te+rra).utputStream$%; 8ata.utputStream dos & ne! 8ata.utputStream$baos%; //cari 3ungsi ini F)te+rra).utputStream dan 8ata.utputStream di internet dos.!riteHTC$kode%;// tulis var pada dos dos.!riteHTC$nama%;// tulis var pada dos dos.!riteHTC$no(>%; dos.!riteHTC$jk%;// tulis var pada dos dos.!riteHTC$+lamat%;// tulis var pada dos dos.!riteHTC$>ekerjaan%; temp & baos.toF)te+rra)$%; catch $#./xception ioe% { ioe.printStackTrace$%; re.rebuild$%; //memulai enumerasi baru" karena data telah berubah tr) { rs.add*ecord$temp" 4" temp.length%; //masukan data pada *ecordStore - catch $*ecordStore5ot.pen/xception rsnoe% { rsnoe.printStackTrace$%; - catch $*ecordStore/xception rse% { rse.printStackTrace$%; -

K&.e 4,&',am !63 Mengubah data pelanggan

-ource code diatas digunakan untuk mengubah data kontak. %ara ker anya yaitu mendapatkan data dari kontak yang akan di$update! kemudian menuliskan data pada kontak tersebut ke dalam te=t.ield (t=t@ec*d#elanggan! t=t@ecAama#elanggan! t=t@ecAo2p! csJkelEdit! t=t@ecAlamat! t=t@ec#eker aan)

yang ditampilkan pada formEdit. -elain itu terdapat variable currentTask dengan tipe data integer. +ariabel currentTask diberi nilai 6 yang digunakan untuk method .ilter dan nilai 2 untuk method %omparator. Jika ter adi error maka muncul alert 7 data error8
// 3ungsi untuk menghapus record dengan inputan string&&&&&&&&&&&&&&&&&&&&&&&&&&&& public void (apus*ecord$String kode%{ close*ecStore$%; open*ecStore$,phone8F,%; b)teNO temp & null; tr){ re & rs.enumerate*ecords$null" null" 3alse%; !hile $re.has5ext/lement$%%{ int i & re.next*ecord#d$%; temp & rs.get*ecord$i%; F)te+rra)#nputStream bais & ne! F)te+rra)#nputStream$temp%; 8ata#nputStream dis & ne! 8ata#nputStream$bais%; tr){ String #8 & dis.readHTC$%; i3 $#8.e@uals$kode%%{ rs.delete*ecord$i%; break; catch $#./xception ioe% { ioe.printStackTrace$%;re.rebuild$%; //memulai enumerasi baru" karena data telah berubah lihat*ecord$%; catch $*ecordStore5ot.pen/xception rsnoe% {rsnoe.printStackTrace$%;catch $*ecordStore/xception rse% {rse.printStackTrace$%;// Cungsi )ang digunakan oleh pengelolaan >#5 ====================================================================================== = // 3ungsi untuk menulis record dengan inputan string&&&&&&&&&&&&&&&&&&&&&&&&&&&& public void !rite*ecord$String str%{ b)teNO rec & str.getF)tes$%; tr){ rs.add*ecord$rec" 4" rec.length%; 3orm.append$,data tersimpan,%; catch $/xception e%{// 3ungsi untuk mengupdate record dengan inputan string public void update*ecord$String str%{ b)teNO dataHpdate & str.getF)tes$%; tr){ rs.set*ecord$:" dataHpdate" 4" dataHpdate.length%; 3orm.append$,data terupdate,%; catch $/xception e%{-

K&.e 4,&',am !73 2apus data pelanggan

7-intaks diatas digunakan untuk menghapus data pelanggan. %ara ker anya yaitu dengan memilih salah satu data pelanggan! kemudian dengan memilih command Delete (cmdDelete) maka data pelanggan yang terpilih terhapus. -elain itu terdapat variable currentTask dengan tipe data integer.

Gam(a, !*3 2apus Data pelanggan

-elan utnya adalah tahap pengubahan pin! atau untuk login setelah pengubahan dari pin yang dilakukan. 4eserta validasi$validasi yang ada saat login ke aplikasi mobile
// 3ungsi untuk mengambil record ke i dengan return value berupa isi dari record ke i tersebut //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && public String read*ecords$int i%{ tr){ b)teNO rec8ata & rs.get*ecord$i%; pin9ogin & ne! String$rec8ata%; catch$/xception e%{return pin9ogin;

// Cungsi validasi login &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public void cek9ogin$%{ alert.setT)pe$+lertT)pe.#5C.%; pin9ogin & read*ecords$:%; i3 $pin9ogin.e@uals#gnoreCase$t3>in.getString$%%%{// apabila pin cocok menuHtama$%; -

K&.e 4,&',am 1"3 0bah dan login pin (a)

else{// apabila user salah menginputkan >#5 alert.setString$,>#5 )ang anda inputkan salah,%; t3>in.setString$null%; displa).setCurrent$alert" 3orm%; -

public void simpan>inFaru$%{ close*ecStore$%; open*ecStore$,pin8F,%; pin9ogin & read*ecords$:%; i3 $Kpin9ogin.e@uals#gnoreCase$t3>in+!al.getString$%%%{ // +pabila pin lama tidak cocok dengan inputan pin baru alert.setString$,>#5 )ang anda inputkan salah,%; t3>in+!al.setString$null%; displa).setCurrent$alert" 3orm%; /* else i3 $Kt3>inFaru.e@uals$t3*e>inFaru.getString$%%%{ // +pabila pin lama tidak cocok dengan inputan pin baru alert.setString$,pin baru )ang anda inputkan tidak sesuai,%; t3>inFaru.setString$null%; t3*e>inFaru.setString$null%; displa).setCurrent$alert" 3orm%; -*/ else { update*ecord$t3>inFaru.getString$%%; read*ecords$:%; alert.setString$,>#5 berhasil diganti. silakan 9.0#5 kembali,%; #nsert>in$%; 3orm.append$,9ogin dengan pin baru anda ,%; t3*e>inFaru.setString$null%; t3>in+!al.setString$null%; t3>inFaru.setString$null%; -

K&.e 4,&',am 1!3 0bah dan login pin (b)

Gam(a, !53 0bah dan login pin

// #ni adalah 3ungsi )ang memuat 3orm 3orm )ang diperlukan oleh aplikasi =================================================== //*Corm )ang digunakan untuk memasukkan >#5 saat memulai aplikasi &&&&&&&&&&&&& public Corm #nsert>in$%{ 3orm & ne! Corm$,9ogin,%; t3>in & ne! TextCield$,>#5,"null" J" TextCield.>+SS'.*8%; ticker & ne! Ticker$,Silahkan masukkan >#5 anda..,%; 3orm.addCommand$cmd/xit%; 3orm.addCommand$cmd9ogin%; 3orm.append$t3>in%; 3orm.setTicker$ticker%; 3orm.setCommand9istener$this%; displa).setCurrent$3orm%; return 3orm; -// ** Corm )ang digunakan untuk edit data langganan &&&&&&&&&&&&&&&&&&&& public Corm edit8ata$String #dE.ld%{ 3orm & ne! Corm$,/dit 8ata,%; t3.ldE#d & ne! TextCield$,#8 >elanggan $9ama%G," #dE.ld" 2" TextCield.H5/8#T+F9/%; t3Dode & ne! TextCield$,#8 >elanggan $Faru%%G," #dE.ld" 2" TextCield.+5Q%; t3nama & ne! TextCield$,5ama G," null" 12" TextCield.+5Q%; t3(> & ne! TextCield$,5o (>G," null" :2" TextCield.>(.5/5H F/*%; cgjk & ne! Choice0roup$,Menis DelaminG,"Choice./BC9HS#7/%; t3+lamat & ne! TextCield$,+lamat G," null" 12" TextCield.+5Q%; t3>ekerjaan & ne! TextCield$,>ekerjaanG," null" 12" TextCield.+5Q%; 3orm.append$t3.ldE#d%; 3orm.append$t3Dode%; 3orm.append$t3nama%; 3orm.append$t3(>%; cgjk.append$,9," null%; cgjk.append$,>," null%; 3orm.append$cgjk%; 3orm.append$t3+lamat%; 3orm.append$t3>ekerjaan%; 3orm.addCommand$cmdHbah%; 3orm.addCommand$cmdFack%; 3orm.setCommand9istener$this%; displa).setCurrent$3orm%; return 3orm; // ** Corm )ang digunakan untuk menginputkan data langganan &&&&&&&&&&&&&&&&&&&& public Corm entri8ata$%{ // membuat 3orm untuk memasukkan data nama dan harga barang 3orm & ne! Corm$,/ntri 8ata,%; t3Dode & ne! TextCield$,#8 >elangganG," ,>," 2" TextCield.+5Q%; t3nama & ne! TextCield$,5ama G," null" 14" TextCield.+5Q%; t3(> & ne! TextCield$,5o (> G,"null"14"TextCield.>(.5/5H F/*%; cgjk & ne! Choice0roup$,Menis DelaminG,"Choice./BC9HS#7/%; t3+lamat & ne! TextCield$,+lamatG," null" 14" TextCield.+5Q%; t3>ekerjaan & ne! TextCield$,>ekerjaanG," null" 14" TextCield.+5Q%; 3orm.append$t3Dode%; 3orm.append$t3nama%; 3orm.append$t3(>%; cgjk.append$,9," null%; cgjk.append$,>," null%; 3orm.append$cgjk%; 3orm.append$t3+lamat%; 3orm.append$t3>ekerjaan%; 3orm.addCommand$cmdSimpan%; 3orm.addCommand$cmdFack%; 3orm.setCommand9istener$this%; displa).setCurrent$3orm%; return 3orm; -

K&.e 4,&',am 113 Membuat form (a)

// Corm untuk melakukan pencarian data &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public Corm search8ata$%{ 3orm & ne! Corm$,Searching 8ata,%; t3Cind & ne! TextCield$,Cari data pelanggan," null" 14" TextCield.+5Q%; 3orm.append$t3Cind%; 3orm.addCommand$cmdSearch%; 3orm.addCommand$cmdFack%; 3orm.setCommand9istener$this%; displa).setCurrent$3orm%; return 3orm; // Corm untuk mengganti >#5 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public Corm ganti>in$%{ 3orm & ne! Corm$,&&Hbah >#5&&,%; t3>in+!al & ne! TextCield$, asukkan >#5 +!al +ndaG," null" J" TextCield.>+SS'.*8%; t3>inFaru & ne! TextCield$, asukkan >#5 FaruG," null" J" TextCield.>+SS'.*8%; t3*e>inFaru & ne! TextCield$, asukkan kembali >#5 FaruG," null" J" TextCield.>+SS'.*8%; 3orm.append$t3>in+!al%; 3orm.append$t3>inFaru%; 3orm.append$t3*e>inFaru%; 3orm.addCommand$cmdHbah>in%; 3orm.addCommand$cmdFack%; 3orm.setCommand9istener$this%; displa).setCurrent$3orm%; return 3orm; -

K&.e 4,&',am 123 Membuat form (b)

-orce code diatas adalah untuk membuat form$form yang ada pada aplikasi. ,onstruktor dalam M*Dlet yaitu men alankan form insertpin yang berfungsi sebagai halaman untuk login! formTentang yang berfungsi menampilkan nama anggota kelompok! form entriData yang berfungsi untuk menambah pelanggan! form searchData yang berfungsi untuk mencari pelanggan! form gantipin yang berfungsi untuk mengubah #*A sedangkan mainMenu adalah sebuah list yang berfungsi untuk menampilkan pilihan menu utama.
// ini adalah 3ungsi list )ang diperlukan oleh aplikasi====================================================================== // ** #ni 9ist Hntuk menu Htama &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public 9ist menuHtama$%{ enu & ne! 9ist $,menuG,"9ist.# >9#C#T%; enu.append$,Tambah *ecord," null%; enu.append$,8a3tar *ecord," null%; enu.append$,Cari *ecord,"null%; enu.append$,Hbah >#5,"null%; enu.append$,Tentang kami,"null%; enu.addCommand$cmd/xit%; enu.addCommand$cmd>ilih%; enu.setCommand9istener$this%; displa).setCurrent$ enu%; return enu; -

K&.e 4,&',am 1#3 'ist menu utama

-orce code diatas adalah untuk fungsi dari list yang diperlukan aplikasi pada menu utama. -eperti gambar yang telah ditampilkan diatas yaitu pada /ambar B.

-elan utnya adalah source code yang menampilkan isi dari form tentang kami pada aplikasi mobile application. 4erisi nama dan nim dari anggota kelompok.
// ** #ni 9ist Hntuk menampilkan tentang kami &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public 9ist tentangDami$%{ enu & ne! 9ist$,Created F)G ," 9ist.# >9#C#T%; enu.append$,Sisca Meanne N:44;;42442O," null%; enu.append$,Fella +nastahsia N:44;;424J2O," null%; enu.append$,Htami 'edanti N:44;;42::4O," null%; enu.addCommand$cmdFack%; enu.setCommand9istener$this%; displa).setCurrent$ enu%; return enu; -

K&.e 4,&',am 1$3 'ist tentang kami

Gam(a, !63 Tentang kami

// Corm untuk memanggil 'eb Service public void 'ebService$% thro!s /xception { String #d>elanggan & null" 5ama>elanggan & null" 5o(p & null" MDel & null" +lamat & null" >ekerjaan & null; open*ecStore$,phone8F,%; //memanggil data pada record store )ang di seleksi int index & : ? list.getSelected#ndex$%; tr) { b)teNO b)te#nput8ata & ne! b)teNI44O; F)te+rra)#nputStream inputStream & ne! F)te+rra)#nputStream$b)te#nput8ata%; 8ata#nputStream input8ataStream & ne! 8ata#nputStream$inputStream%; Comparator comparator & ne! Comparator$%; re & rs.enumerate*ecords$null" comparator" 3alse%; 3or $int i & :; i P& re.num*ecords$%; i??% { int datapointer & re.next*ecord#d$%; i3 $i && index% { rs.get*ecord$datapointer" b)te#nput8ata" 4%; id*ecord & datapointer; #d>elanggan & input8ataStream.readHTC$%; 5ama>elanggan & input8ataStream.readHTC$%; 5o(p & input8ataStream.readHTC$%; MDel & input8ataStream.readHTC$%; +lamat & input8ataStream.readHTC$%; >ekerjaan & input8ataStream.readHTC$%; inputStream.reset$%; inputStream.close$%; - catch $/xception error% { alert & ne! +lert$,Faca /rror," error.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; //mengirim data ke !eb service StringFu33er stringFu33er & ne! StringFu33er$%; String method & ,add,; Soap.bject client & ne! Soap.bject$url" method%; client.add>ropert)$,id," #d>elanggan%; client.add>ropert)$,nama," 5ama>elanggan%; client.add>ropert)$,hp," 5o(p%; client.add>ropert)$,gender," MDel%; client.add>ropert)$,alamat," +lamat%; client.add>ropert)$,pekerjaan," >ekerjaan%; (ttpTransport transport & ne! (ttpTransport$url%; // Creating the Soap /nvelope SoapSerialiAation/nvelope envelope & ne! SoapSerialiAation/nvelope$Soap/nvelope.7/*::%; envelope.bod).ut & client; // Call the 'ebService tr) { transport.call$method" envelope%; - catch$Bml>ull>arser/xception io% { S)stem.err.println$io%; // menampilkan result String result & envelope.get*esponse$%.toString$%; stringFu33er.append$result%; alert & ne! +lert$,Status," stringFu33er.toString$%" null" +lertT)pe.'+*5#50%; alert.setTimeout$+lert.C.*/7/*%; displa).setCurrent$alert%; -

K&.e 4,&',am 1*3 @ecord ke 1eb service

-orce code diatas adalah cara termudah untuk mengimplementasikan method enumerate@ecords() adalah dengan menggunakan null pada filter dan comparator. -intaks diatas merupakan sintaks comparator. %omparator berfungsi untuk mengurutkan sebuah enumeration. -ebuah @ecord %omparator akan diparsing pada sebuah method enumerate@ecords().
public void start+pp$% { // pada saat aplikasi pertama kali dijalankan maka akan menampilkan halaman splashScreen displa) & 8ispla).get8ispla)$this%; ttCanvas & ne! SplashTimerCanvas$this%; displa).setCurrent$ttCanvas%; public void pause+pp$% { public void destro)+pp$boolean unconditional% { // ini adalah 3ungsi untuk mengatur !aktu splash screen ================================== void stopTimer$% { timer.cancel$%; timerTask.cancel$%; void startTimer$% { timer & ne! Timer$%; scCanvas & ne! SuccesCanvas$this%; timerTask & ne! TimerTask$% { public void run$% { displa).setCurrent$scCanvas%; -

-; // Malankan timerTask setelah I detik timer.schedule$timerTask" I444%; //============================================================================= =========== -

K&.e 4,&',am 153 -et timer splash

-ource code diatas digunakan untuk mengatur 1aktu kapan splash akan di alankan oleh mobile application. ,apan 1aktu yang tepat proses splash screen berlangsung.

Filter.java
package projectuas; import java.io.F)te+rra)#nputStream; import java.io.8ata#nputStream; import javax.microedition.rms.*ecordCilter; public class Cilter implements *ecordCilter { private String search & null; private F)te+rra)#nputStream inputstream & null; private 8ata#nputStream datainputstream & null; public Cilter$String search% { this.search & search.to9o!erCase$%; public boolean matches$b)teNO suspect% { String string & ne! String$suspect%.to9o!erCase$%; i3 $string K& null LL string.index.3$search% K& =:% { return true; - else { return 3alse; public void 3ilterClose$% { tr) { i3 $inputstream K& null% { inputstream.close$%; i3 $datainputstream K& null% { datainputstream.close$%; - catch $/xception error% { -

K&.e 4,&',am 163 Filter.java

Metode filter ini digunakan untuk mendapatkan record tertentu dari hasil filter yang kita inginkan. Metode ini dapat digunakan untuk pencarian kontak yang dapat memudahkan kita dalam proses rms. Methodmatch() digunakan untuk menentukan target record yang ingin dicapai dan mengembalikan true. Jika record sesuai dengan kriteria yang kita inginkan atau return false! begitu uga sebaliknya.

Anda mungkin juga menyukai