Anda di halaman 1dari 22

Modul Mobile Aplication

Pemrograman GUI (Graphical User Interface)


Berbeda dengan sebuah komputer, perangkat handled semacam handphone memiliki keterbatasan, misalnya ukuran layar yang jauh lebih kecil dan masukan input yang tidak berupa mouse. Keterbatasan-keterbatasan ini menyebabkan perlunya ada teknik pemrograman GUI yang berbeda dengan teknik pemrograman yang umumnya digunakan pada aplikasi-aplikasi yang dijalankan pada sebuah komputer. CLDC tidak menyediakan fungsi-fungsi untuk GUI, namun fungsi ini akan ditangani oleh MIDP, pemrograman GUI dengan Java, pada umumnya class-class untuk window, dialogbox, messagebox dan komponen komponen GUI lainnya diturunkan dari class AWT (Abstract Windowing Toolkit) atau Swing. GUI pada MIDP tidak didasarkan pada AWT atau class-class Swing tersebut dikarenakan beberapa factor : AWT dan Swing dirancang untuk pemrograman GUI pada dekstop komputer. AWT mengasumsikan adanya beberapa interaksi antara pengguna computer dengan beberapa perangkat input semacam mouse, padahal umumnya perangkat handled semacam handphone hanya memiliki keypad. Implementasi AWT dan Swing membutuhkan pemrosesan CPU dan memori yang cukup besar dan hal ini tidak cocok pada perangkat handled yang umumnya hanya memiliki kapasitas memori yang sedikit.

Jenis Fungsi-Fungsi API pada MIDP untuk GUI


Fungsi-fungsi untuk pembuatan antarmuka berbasis window (GUI) yang disediakan oleh MIDP terbagi atas dua level yakni highlevel dan lowlevel. Semua fungsi-fungsi untuk antarmuka berbasis window ini ditangani oleh paket javax.microedition.lcdui. Tampak pada contoh MIDlet HelloStimik, harus mengimport paket ini. Pada level pemrograman yang lebih tinggi (highlevel), aplikasi MIDlet akan lebih portabel dengan banyak perangkat handled yang berbeda. Pada level pemrograman yang lebih rendah (lowlevel), akan mendapatkan fungsional yang lebih spesifik ke jenis handled yang digunakan. Class-class untuk pemrograman GUI pada level yang lebih rendah ini diimplementasikan oleh class javax.microedition.lcdui.Canvas dan javax.microedition.lcdui.Graphics.

Model Pemrograman GUI pada MIDP


Untuk menampilkan sesuatu pada layar misalnya tulisan, form dan sebagainya harus mengakses display dari handled yang dapat diakses dengan class javax.microedition.lcdui.Display. Objek kedua adalah screen yang berbeda dengan display. Screen digunakan untuk menangani komponen-komponen GUI, misalnya window, form, dialogbox dan menangani masukan dari pengguna misalnya dari keypad. Objek screen ini direpresentasikan dengan class javax.microedition.lcdui.Screen. Pada setiap waktu hanya satu objek screen yang bisa ditampilkan oleh objek Display, untuk menampilkan digunakan fungsi setCurrent() pada objek Dispaly.

Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

Gambar paket pada javax.microedition dan javax.microedition.lcdui.game

Ada 3 tipe screen pada MIDlet yaitu : Complex Screen Object Tipe ini mengatur komponen-komponen GUI yang sudah tidak bisa ditambahi oleh komponen screen yang lain. Misalnya screen yang berisi objek ListBox untuk meminta masukan user, tidak akan bisa diisi dengan objek lain. Generic Screen Object Tipe ini mengatur komponen-komponen GUI Form, yang bisa ditambahi oleh komponen screen yang lain. Misalnya screen yang berisi objek Form, maka Anda kemudian bisa menambahkan komponen-komponen lain pada Form tersebut. Low Level Screen Object, yakni yang digunakan oleh subclass javax.microedition.lcdui.Graphics dan javax.microedition.lcdui.Screen

Bekerja dengan Display


Class Display merupakan class yang menyediakan fungsi-fungsi untuk manejemen layar pada perangkat handled, menampilkan objek screen dan menyediakan informasi tentang properti dari perangkat handled yang digunakan. Akses ke layar dapat diacu dengan fungsi statik getDisplay() pada class Display. public static Display getDisplay(MIDlet m) Penggunaan fungsi ini umumnya dilakukan di dalam fungsi startApp() dimana sebuah MIDlet akan menjadi aktif semcam ini. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloStmik extends MIDlet { private Display display; public HelloStmik() { } public void startApp() { TextBox t = new TextBox("Stmik","Hello Stmik in Java",256,0); display = Display.getDisplay(this); display.setCurrent(t); }

Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

public void pauseApp() {} public void destroyApp(boolean unconditional) {} } Fungsi getDisplay() sebaiknya dipanggil pada saat startApp(). Setelah mendapatkan objek Display dengan fungsi getDisplay tersebut, Anda segera bisa menggunakan fungsi setCurrent() tersebut, Anda segera bisa menggunakan fungsi setCurrent() untuk menentukan objek screen mana yang akan ditampilkan. public void setCurrent(Displayable yourScreen) Contoh penggunaan fungsi setCurrent() ini dapat Anda lihat pada contoh MIDlet HelloStmik pada midlet sebelumnya. Terdapat bentuk lain penggunaan setCurrent() yang memungkinkan kita menampilkan pesan terlebih dahulu sebelum menampilkan objek screen yang diinginkan yaitu: public void setCurrent(Alert x,Displayable yourScreen) Sebagai contoh kita akan memodifikasi MIDlet HelloStmik sehingga pada saat awal sebelum menampilkan Hello Stmik in Java akan ditampilkan pesan khusus (alert) sebagai berikut : import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloStmik extends MIDlet { private Display display; private TextBox t; private Alert alert ; public HelloStmik() { t = new TextBox("Stmik","Hello Stmik in Java",100,0); alert = new Alert("Alert Saya"); } public void startApp() { alert.setType(AlertType.WARNING); alert.setString("Ini adalah Alert"); display = Display.getDisplay(this) ; display.setCurrent(alert,t); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} }

Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

Fungsi-fungsi lain dalam class javax.microedition.lcdui.Display adalah sebagai berikut : public Displayable getCurrent() Menghasilkan objek screen Displayable yang sedang ditampilkan ke layar. public boolean isColor() Menghasilkan nilai true jika perangkat handled yang digunakan mendukung warna atau nilai false jika hanya mendukung grayscale. public int numColor() Menghasilkan jumlah warna yang didukung oleh perangkat handled yang bersangkutan.

Bekerja dengan Screen


Objek screen menyediakan beberapa fungsi untuk interaksi antara Anda sebagai pengguna perangkat handled. Objek screen memiliki empat jenis objek turunan yang umum digunakan yaitu TextBox, Alert, List dan Form. Kelas javax.microedition.lcdui.Screen merupakan class abstract dengan dua karakteristik yaitu objek screen bisa memiliki title dan ticker. Fungsi-fungsi dalam objek javax.microedition.lcdui.Screen yang digunakan untuk manajemen properti title dan ticker adalah : public void setTitle(String s); untuk menetapkan properti title dari objek screen. public String getTitle(); menghasilkan string properti title dari objek screen. public void setTicker(Ticker x); untuk menetapkan properti ticker dari objek screen public Ticker getTicker(); menghasilkan objek Ticker yang sedang aktif pada objek screen

Ticker Title Isi dari Object ScrrenTicker

Ticker
Ticker merupakan teks yang berjalan pada bagian atas layer aplikasi MIDlet. Sebuah ticker dapat ditempatkan pada objek-objek turunan class Screen yang telah disebutkan yaitu TextBox, List, Form dan Alert. Ticker tic = new Ticker("Java Center Stmik Widya Pratama"); t.setTicker(tic); display.setCurrent(t); keterangan : t adalah Objek dari Textbox, sedangkan display adalah Objek Display.
Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

Kemudian fungsi penting lainnya : public void setString(String str); untuk menetapkan teks yang akan ditampilkan sebagai ticker public String getString(); Menghasilkan teks yang ditampilkan oleh objek Ticker yang sedang aktif pada objek screen. Perlu perhatikan bahwa tidak ada fungsi yang bisa digunakan untuk menghentikan gerakan teks pada Ticker, jadi teks akan terus berputar secara kontinu. Arah dan kecepatan teks yang bergerak pada Ticker ditentukan oleh implementasi MIDP.

TextBox
Class TextBox merupakan class turunan dari class abstract javax.microedition.lcdui.Screen. TextBox menerima masukan teks dari keypad pengguna handled. Konstruktor dari class TextBox ini adalah : public TextBox(String title, String text, int maxSize, int constraints) Parameter-parameter pada konstruktor adalah : String title untuk memberikan title pada Screen String text untuk memberikan nilai awal pada TextBox int maxsize untuk memberikan batasan maksimal jumlah karakter yang bisa diterima oleh TextBox. Jadi Anda tidak bisa memasukkan karakter yang jumlahnya melebihi batas maksimal ini. int constraints Ada beberapa nilai yang bisa digunakan untuk parameter ini yaitu : TextField.ANY Artinya Anda bisa memasukkan sembarang karakter teks TextField.EMAILADDR Artinya Anda bisa memasukkan teks yang merupakan alamat email. Misalnya : intan@gmail.com TextField.NUMERIC Artinya Anda hanya bisa memasukkan teks berupa angka saja TextField.PHONENUMBER Artinya Anda hanya bisa memasukkan teks berupa nomor telepon saja misalnya +6281234567 TextField.URL Artinya Anda hanya bisa memasukkan teks berupa alamat web atau URl lain, misalnya http://java.sun.com TextField.PASSWORD Seperti memasukkan password pada saat login ke Windows, masukan Anda akan ditampilkan dengan karakter tertentu, misalnya *. Tipe batasan ini bisa digunakan dengan tipe batasan yang lain dengan menggunakan operator | sehingga menambah kemampuan pembatasan yang ada. Misalnya : TextBox t = new TextBox(,,25,TextField.PASSWORD | TextField.PHONENUMBER) ; TextBox t = new TextBox(,,25,TextField.PASSWORD | TextField.NUMERIC) ;

Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

Jika kita ingin mendapatkan informasi atau menetapkan tipe batasan diatas, dapat menggunakan fungsi-fungsi berikut : public void setConstraints(int Constraints) public int getConstraints() Contoh : TextBox t = new TextBox(,,25,TextField.NUMERIC) ; //menghasilkan nilai integer setara Textfield.NUMERIC int constraint = t.getConstraints(); //mengganti tipe batasan masukan menjadi TextField.ANY t.setConstraints(TextField.ANY); Kemudian fungsi penting dalam class TextBox lainnya adalah : public int size(); menghasilkan jumlah karakter yang saat ini telah dimasukkan dalam TextBox public void delete(int offset, int length); menghapus karakter dari posisi offset sepanjang jumlah karakter length. public int getCaretPosition(); menghasilkan posisi kursor pada TextBox pada saat ini. public String getString(); menghasilkan String yang saat ini ada pada TextBox. public void setString(String str); Menetapkan string pada TextBox menjadi str pada parameter fungsi public void insert(String str, int position); Memasukkan string str pada parameter fungsi pada TextBox mulai dari posisi position.

Alert
Class Alert merupakan class turunan dari class abstract javax.microedition.lcdui.Screen yang menyediakan informasi kecil kepada pengguna yang ditampilkan ke layar sebelum kemudian berpindah ke objek screen lainnya. Umumnya digunakan untuk memberikan informasi error dan exception lain ke pengguna. Konstruktor dari class Alert ini ada dua yaitu : public Alert(String title) public Alert(String title, String alertText, Image alertImage, AlertType type) Parameter parameter pada konstruktor: String title Untuk memberikan title pada layar atau ditetapkan null untuk memberikan Alert tanpa judul apapun. String alertText Untuk memberikan teks pesan pada layar Alert atau ditetapkan null sehingga Alert akan tampil tanpa teks pesan. Image alertImage Untuk memberikan teks gambar pada layar Alert atau ditetapkan null sehingga tidak ada gambarnya. AlertType type Parameter ini dapat berisi : AlertType.ALARM AlertType.INFO AlertType.WARNING
Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

AlertType.CONFIRMATION AlertType.ERROR Perbedaan dari masing-masing tipe ini terutama pada suara yang diperdengarkan. Contoh untuk membuat sebuah objek Alert adalah : Alert alert = new Alert(Nama,Intan,null,null); Untuk masa berlakunya alert selama 5 detik adalah
Alert.setTimeout(5000);

Atau alert dengan masa yang tidak terbatas Alert.setTimeout(Alert.FOREVER); Fungsi penting dalam class Alert lainnya adalah : public Image getImage(); Jika objek Alert Anda menggunakan gambar, fungsi ini menghasilkan objek Image yang digunakan. public String getString(); Menghasilkan string teks yang ada pada objek Alert. public AlertType getType(); Menghasilkan type alert yang digunakan. public void setImage(Image img); Untuk mengeset gambar/Image public void setString(String str); Mengeset string pada Alert menjadi str pada parameter fungsi diatas. public void setType(AlertType type); Mengganti tipe Alert yang digunakan. Contoh : import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloStmikAlert extends MIDlet implements CommandListener { Display display; Command exitCommand; Alert alert; public HelloStmikAlert() { exitCommand = new Command("Exit", Command.EXIT, 1); alert = new Alert("Hello Stmik Alert", "Alert Stmik....!",null, AlertType.INFO); alert.setTimeout(Alert.FOREVER); alert.addCommand(exitCommand); alert.setCommandListener(this); }

Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(alert); } } public void pauseApp(){} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable d){ if (c == exitCommand){ destroyApp(true); notifyDestroyed(); // Exit } } }

List
Class List (javax.microedition.lcdui.List) merupakan class turunan dari class abstract javax.microedition.lcdui.Screen yang menyediakan masukan pilihan (multiple choice) pada layar. Konstruktor dari class List ini ada dua yakni : public List(String title, int listType) public List(String title, int listType, String[] listElement, Image[] listImage) Parameter-parameter yang ada pada konstruktor adalah sebagai berikut : String title Untuk memberikan title pada list int listType Tipe list yang digunakan dapat berisi : List.EXCLUSIVE Berarti setiap saat hanya bisa dipilih 1 buah pilihan saja. List.IMPLICIT Sama halnya dengan Choice.EXCLUSIVE, namun penampilannya berbeda. List.MULTIPLE Berarti pengguna bisa memilih lebih dari 1 pilihan. String[] listElement Merupakan array dari elemen list yang akan ditampilkan Image[] listImage Merupakan array dari gambar(javax.microedition.lcdui.Image) elemen list yang akan ditampilkan. Jika Anda menggunakan konstruktor dengan dua parameter (konstruktor 1) akan dibuat sebuah list kosong yang kemudian Anda bisa menambahkan, meyisipkan atau mengganti pilihan dalam list. Fungsi-fungsi yang berkaitan dengan hal ini adalah : public int append(String element,Image image) Menambahkan satu elemen pada daftar pilihan dengan gambar tertentu. Jika tidak menampilkan gambar, parameter image bisa diset null. Fungsi ini menghasilkan nilai integer yang menunjukkan indeks lokasi dimana elemen baru saja ditambahi.
Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

public void insert(int index,String element, Image image) Menyisipkan satu elemen pada daftar pilihan dengan gambar tertentu pada index/urutan yang ditentukan. Jika tidak menampilkan gambar, parameter image diset null. public void set(int index,String element, Image image) Menetapkan satu elemen pada daftar pilihan di lokasi yang ditentukan oleh nilai parameter index dengan gambar tertentu. Jika tidak menampilkan gambar, parameter image diset null. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class listDemo extends MIDlet { private Display d ; private List myList ; public listDemo(){ //ubah dengan Choice.MULTIPLE, Choice.IMPLICIT, Choice.EXCLUSIVE myList = new List("Ini List",Choice.MULTIPLE); myList.append("Apel", null); myList.append("Jeruk", null); myList.append("Semangka", null); myList.insert(1, "Inserted Choice", null); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(myList); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }

Form
Bekerja dengan Form memungkinkan Anda untuk menampilkan beberapa komponen GUI semacam daftar pilihan, masukan teks (textbox) dalam satu layar. Form diimplementasikan oleh class javax.microedition.lcdui.Form. Form dapat menampung komponen-komponen yang disebut item dalam satu layar. Item tersebut adalah textfield, image, date field, gauge dan choice group. Item-item tersebut merupakan implementasi dari class turunan Item(javax.microedition.lcdui.Item). public Form(String title) public Form(String title, Item[] items) Konstruktor pertama, menyediakan sebuah form dengan judul form seperti parameter title yang diberikan, sedangkan konstruktor kedua mendefinisikan item-item apa saja yang akan ada di form yang akan dibuat.

Create by gushusnulhelmi.blogspot.com

Modul Mobile Aplication

Contoh 1 : import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class FormExample extends MIDlet implements CommandListener{ private Display d ; private Form form; private Command cmdExit; public FormExample(){ form = new Form("Ini Contoh Form"); cmdExit = new Command("Exit", Command.SCREEN,1); } public void startApp() { form.addCommand(cmdExit); form.setCommandListener(this); d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command cmd,Displayable disp) { if(cmd==cmdExit) { destroyApp(false); notifyDestroyed(); } } } Contoh 2 : import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class AlertContoh extends MIDlet implements CommandListener { private Display display; private Form f; private Command cmdExit, cmdAlarm, cmdCon, cmdInfo, cmdWarning, cmdError; private Alert alAlarm, alCon, alInfo, alWarning, alError ; public AlertContoh() { f = new Form("Contoh Alert .."); cmdExit = new Command("Exit", Command.EXIT, 0); cmdAlarm = new Command("Alarm", Command.SCREEN, 0); cmdCon = new Command("Confirmation", Command.SCREEN, 0);
Create by gushusnulhelmi.blogspot.com

10

Modul Mobile Aplication

cmdInfo = new Command("Information", Command.SCREEN, 0); cmdWarning = new Command("Warning", Command.SCREEN, 0); cmdError = new Command("Error", Command.SCREEN, 0); alAlarm = new Alert("Alarm Alert","Example of an Alarm type of Alert", null, AlertType.ALARM); alCon = new Alert("Confirmation Alert", "Example of an CONFIRMATION type of Alert", null, AlertType.CONFIRMATION); alInfo = new Alert("Info Alert","Example of an INFO type of Alert", null, AlertType.INFO); alWarning = new Alert("Warning Alert","Example of an WARNING type of Alert", null, AlertType.WARNING); alError = new Alert("Error Alert","Example of an ERROR type of Alert", null, AlertType.ERROR); f.addCommand(cmdExit); f.addCommand(cmdAlarm); f.addCommand(cmdCon); f.addCommand(cmdInfo); f.addCommand(cmdWarning); f.addCommand(cmdError); f.setCommandListener(this); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(f); } } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable d){ if (c == cmdExit){ destroyApp(true); notifyDestroyed(); // Exit } else if (c == cmdAlarm) { alAlarm.setTimeout(Alert.FOREVER); display.setCurrent(alAlarm); } else if (c == cmdCon) { alCon.setTimeout(Alert.FOREVER); display.setCurrent(alCon); }

Create by gushusnulhelmi.blogspot.com

11

Modul Mobile Aplication

else if (c == cmdInfo) { alInfo.setTimeout(Alert.FOREVER); display.setCurrent(alInfo); } else if (c == cmdWarning) { alWarning.setTimeout(Alert.FOREVER); display.setCurrent(alWarning); } else { alError.setTimeout(Alert.FOREVER); display.setCurrent(alError); } } }

Class Item (javax.microedition.lcdui.Item)


Komponen-komponen yang bisa diletakkan dalam sebuah form merupakan komponenkomponen yang memiliki class yang merupakan class turunan dari class abstract javax.microedition.lcdui.Item. Komponen-komponen tersebut adalah : ChoiceGroup Class ini menyediakan komponen yang mirip dengan list, yakni menyediakan daftar pilihan. DateField Class ini menyediakan komponen untuk memasukkan informasi tanggal dan waktu. Gauge Class ini menyediakan komponen grafik horisontal yang biasanya digunakan untuk memberikan gambaran berapa persen proses berjalan. Image dan ImageItem Class ini menyediakan komponen grafik untuk manipulasi gambar. StringItem Class ini menyediakan komponen teks string yang tidak bisa diedit oleh pengguna. TextField Class ini menyediakan komponen untuk masukan teks string oleh pengguna.

ChoiceGroup
Class ChoiceGroup(javax.microedition.lcdui.ChoiceGroup) merupakan class turunan dari class abstract javax.microedition.lcdui.Item yang menyediakan masukan pilihan (multiple choice) pada layar. Konstruktor dari class ChoiceGroup ini ada dua yaitu: public ChoiceGroup(String title, int choiceType) public ChoiceGroup(String title, int choiceType, String[] choiceElement, Image[] choiceImages)

Create by gushusnulhelmi.blogspot.com

12

Modul Mobile Aplication

Parameter-parameter : String title Untuk memberikan title pada daftar pilihan yang ditampilkan. int choiceType Tipe pilihan yang digunakan dapat berisi : Choice.EXCLUSIVE Berarti setiap saat hanya bisa dipilih 1 buah pilihan saja. Choice.MULTIPLE Berarti pengguna bisa memilih lebih dari 1 pilihan. Berbeda dengan class List sebelumnya yang bisa memiliki tipe Choice.IMPLICIT class ini tidak memiliki tipe yang bersangkutan. String[] choiceElement Merupakan array dari elemen yang akan ditampilkan Image[] choiceImages Merupakan array dari gambar(javax.microedition.lcdui.Image) elemen yang akan ditampilkan.
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ChoiceGroupExample extends MIDlet { private Display d ; private Form form; private ChoiceGroup cg ; public ChoiceGroupExample(){ form = new Form("Ini ChoiceGroup"); cg = new ChoiceGroup("Pilihan Buah",Choice.EXCLUSIVE); cg.append("Apel", null); cg.append("Jeruk", null); cg.append("Semangka", null); form.append(cg); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }

DateField
Class DateField merupakan class turunan dari class abstract javax.microedition.lcdui.Item. Jika kita memerlukan informasi masukan berupa waktu dan tanggal, kita dapat menggunakan DateField(javax.microedition.lcdui.DateField). Konstruktor dari class DateField ini ada 2 buah yaitu : public DateField(String title, int mode) public DateField(String title, int mode, TimeZone timezone)

Create by gushusnulhelmi.blogspot.com

13

Modul Mobile Aplication

Parameter-parameter konstruktor : String title Untuk memberikan title pada masukan tanggal/waktu yang ditampilkan int mode Tipe masukan yang digunakan dapat berisi: DateField.TIME : digunakan untuk mengambil masukan waktu DateField.DATE : digunakan untuk mengambil masukan tanggal DateField.DATE_TIME : digunakan untuk mengambil masukan waktu/tanggal TimeZone timezone Untuk memberikan informasi zona waktu yang akan digunakan. Class TimeZona ada dalam paket java.uti. Contoh 1 : import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class TimeDemo extends MIDlet { private Display d ; private Form form; private DateField df ; private DateField tf ; public TimeDemo(){ form = new Form("Informasi Hari dan Waktu"); df = new DateField("Hari Sekarang", DateField.DATE); tf = new DateField("Waktu Sekarang", DateField.TIME); form.append(df); form.append(tf); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Contoh 2 : import java.util.Date; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class TimeDemo2 extends MIDlet { private Display d ; private Form form; private DateField df ; private DateField tf ;

Create by gushusnulhelmi.blogspot.com

14

Modul Mobile Aplication

public TimeDemo2(){ form = new Form("Informasi Hari dan Waktu"); df = new DateField("Hari Sekarang", DateField.DATE); //tambahkan untuk mengeset tanggal //set ke tanggal sekarang df.setDate(new Date()); tf = new DateField("Waktu Sekarang", DateField.TIME); form.append(df); form.append(tf); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Informasi waktu dan tanggal yang diberikan bisa diakses dengan menggunakan method yang ada pada objek DateField sebagai berikut : public String toString() Menghasilkan string teks yang merepresentasikan informasi yang ada. public Date getDate() Menghasilkan objek Date yang bersesuaian dengan informasi waktu yang ada. Class Date diimplementasikan dalam paket java.util public void setDate(Date d) Menetapkan informasi tanggal pada masukan DateField, supaya tidak muncul item <date>.

Gauge
Objek Gauge merepresentasikan objek batang yang disusun secara horizontal yang dapat digunakan dalam form untuk merepresentasikan jalannya sebuah proses dan lain sebagainya. Objek Gauge diimplementasikan oleh class Gauge (javax.microedition.lcdui.Gauge) yang merupakan class turunan dari class abstract javax.microedition.lcdui.Item. Konstruktor dari class Gauge adalah : public Gauge(String title, boolean interactive, int maxValue, int initialValue) Paramater-parameter yang digunakan : String title Untuk memberikan title pada gauge yang ditampilkan boolean interactive Apakah akan ditampilkan secara interaktif atau tidak ? Jika modenya interaktif user bisa mengubah progress bar yang ada dan jika modenya tidak interaktif, user tidak bisa mengubah progress bar yang ada. Agar lebih jelasnya, Anda bias mengacu ke contoh yang akan ditunjukkan kemudian. int maxValue Nilai maksimum yang diperbolehkan. Nilai harus > 0 int initialValue Nilai awal yang digunakan nilainya antara 0 nilai maksimum yang telah didefinisikan.
Create by gushusnulhelmi.blogspot.com

15

Modul Mobile Aplication

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class GaugeDemo extends MIDlet { private Display d; private Form form; private Gauge g1; public GaugeDemo(){ form = new Form("Tentang Gauge"); g1 = new Gauge("Ini Gauge", false, 15,0); form.append(g1); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Program di atas menghasilkan objek Gauge yang tidak interaktif. Ubah false menjadi true pada pembentukan objek Gauge g1 = new Gauge("Ini Gauge", false, 15,1); menjadi g1 = new Gauge("Ini Gauge", true, 15,1); maka menghasilkan objek Gauge yang interaktif. Dimana user bisa mengubah nilai dari objek Gauge. Anda bisa mendapatkan informasi apakah progress bar yang Anda buat bersifat interaktif atau tidak dengan menggunakan fungsi : public boolen isInteractive() Jika dikembalikan true, progress bar bersifat interaktif. Dari objek Gauge, Anda bisa memperoleh nilai yang sedang ada sekarang, nilai maksimal yang diperbolehkan dengan fungsi-fungsi berikut : public int getValue() Menghasilkan nilai integer dari progress bar yang ada public int getMaxValue() Menghasilkan nilai integer maksimum dari progress bar yang ada Selain itu Anda bisa menetapkan nilai yang sedang ada sekarang, nilai maksimal yang diperbolehkan dengan fungsi : public void setValue(int val) Menetapkan nilai integer dari progress bar yang ada public void setMaxValue(int maxval) Menetapkan nilai integer maksimum dari progress bar yang ada

Create by gushusnulhelmi.blogspot.com

16

Modul Mobile Aplication

Anda juga bisa mengubah label judul dari progress bar yang ada menggunakan fungsi : public void setLabel(String str) Menetapkan label progress bar yang ada dengan teks string pada parameter.

String Item
Objek StringItem digunakan untuk meletakkan objek teks string yang tidak bisa diubah oleh pengguna secara langsung pada form. Class StringItem diimplementasikan oleh class StringItem(javax.microedition.lcdui.StringItem) yang merupakan class turunan dari class abstract javax.microedition.lcdui.Item.. Konstruktor dari class StringItem ini adalah : public StringItem(String title, String content) Paramater-parameter yang digunakan : String title Untuk memberikan title pada objek teks string yang ditampilkan Sring content Isi dari teks yang akan ditampilkan pada form. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class stringItemDemo extends MIDlet { private Display d ; private Form form; private StringItem si; public stringItemDemo(){ form = new Form("Tentang StringItem"); si = new StringItem("Nama : ", "Java Center"); form.append(si); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Fungsi-fungsi yang ada dalam class ini : public void setText(String teks) Menetapkan teks sesuai parameter teks yang diberikan pada objek StringItem. public void setLabel(String label) Menetapkan label pada objek StringItem sesuai parameter label yang diberikan. public String getText() Menghasilkan teks string yang ada pada objek StringItem. public String getLabel() Menghasilkan label yang ada pada objek StringItem.

Create by gushusnulhelmi.blogspot.com

17

Modul Mobile Aplication

TextField
Objek TextField digunakan untuk meletakkan objek teks string yang bisa diubah oleh pengguna secara langsung pada form. Jadi objek ini mirip dengan objek Textbox. Objek TextField diimplementasikan oleh class TextField (javax.microedition.lcdui.TextField) yang merupakan class turunan dari class abstract javax.microedition.lcdui. Item. Konstruktor dari class TextField adalah : public TextField(String title, String text, int maxSize, int constraints) Parameter-parameter pada konstruktor adalah : String title : untuk memberikan title pada TextField String text : untuk memberikan nilai awal pada TextField int maxsize : untuk memberikan batasan maksimal jumlah karakter yang bisa diterima oleh TextField. Jadi Anda tidak bisa memasukkan karakter yang jumlahnya melebihi batas maksimal ini. int constraints Ada beberapa nilai yang bisa digunakan untuk parameter ini yaitu : TextField.ANY Artinya Anda bisa memasukkan sembarang karakter teks TextField.EMAILADDR Artinya Anda bisa memasukkan teks yang merupakan alamat email. Misalnya : intan@eepis-its.edu TextField.NUMERIC Artinya Anda hanya bisa memasukkan teks berupa angka saja TextField.PHONENUMBER Artinya Anda hanya bisa memasukkan teks berupa nomor telepon saja misalnya +6281234567 TextField.URL Artinya Anda hanya bisa memasukkan teks berupa alamat web atau URl lain, misalnya http://java.sun.com TextField.PASSWORD Seperti memasukkan password pada saat login ke Windows, masukan Anda akan ditampilkan dengan karakter tertentu, misalnya *. Tipe batasan ini bisa digunakan dengan tipe batasan yang lain dengan menggunakan operator | sehingga menambah kemampuan pembatasan yang ada. Misalnya : TextField t = new TextField (,,25,TextField.PASSWORD |TextField.PHONENUMBER) ; TextField t = new TextField (,,25,TextField.PASSWORD |TextField.NUMERIC) ; Jika kita ingin mendapatkan informasi atau menetapkan tipe batasan diatas, dapat menggunakan fungsi-fungsi berikut : public void setConstraints(int Constraints) public int getConstraints()

Create by gushusnulhelmi.blogspot.com

18

Modul Mobile Aplication

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class textFieldDemo extends MIDlet { private Display d; private Form form; private TextField login; private TextField password; public textFieldDemo(){ form = new Form("Tentang TextField"); login = new TextField("Username :" , "Yuliana", 25, TextField.ANY); password = new TextField("Password :" , "secret", 25, TextField.ANY | TextField.PASSWORD); form.append(login); form.append(password); } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }

Kemudian fungsi penting dalam class TexField lainnya adalah : public int size(); menghasilkan jumlah karakter yang saat ini telah dimasukkan dalam TexField public void delete(int offset, int length); menghapus karakter dari posisi offset sepanjang jumlah karakter length. public int getCaretPosition(); menghasilkan posisi kursor pada TexField pada saat ini. public String getString(); menghasilkan String yang saat ini ada pada TexField. public void setString(String str); Menetapkan string pada TexField menjadi str pada parameter fungsi public void insert(String str, int position); Memasukkan string str pada parameter fungsi pada TexField mulai dari posisi position.

Image
Objek Image digunakan untuk meletakkan objek gambar yang bisa bersifat immutable atau mutable. Gambar yang bersifat immutable artinya tidak bisa diubah-ubah oleh aplikasi dan umumnya berupa gambar yang diambil dari sebuah file gambar, URL atau tempat lain. Sebaliknya gambar yang bersifat mutable bisa diubah-ubah oleh aplikasi. Konstruktor dari class Image ini bersifat statik, sehingga Anda tidak menggunakan new untuk membuat sebuah objek Image melainkan mengacu ke fungsi createImage() pada objek Image ini : public static void createImage(String name) public static void createImage(Image img) public static void createImage(int width, int height)

Create by gushusnulhelmi.blogspot.com

19

Modul Mobile Aplication

Konstruktor pertama dan kedua digunakan untuk membuat objek Image yang bersifat immutable. Jenis file gambar yang mendukung, hanya file dengan format PNG (Portable Network Graphics). import java.io.IOException; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class imageDemo extends MIDlet { private Display d; private Form form; private Image img; public imageDemo(){ form = new Form("Contoh Image"); try{ img = Image.createImage("/duke.png"); form.append(img); }catch(IOException e){ } } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional){ } } Kita harus menggunakan try{} catch{} karena fungsi createImage() melemparkan eksepsi berupa java.io.IOException. Exception ini untuk menangani kesalahan input/output. Contoh lain dengan menggunakan konstruktor kedua yaitu dengan objek Image yang telah ada maka kita bisa membuat objek Image lain. import java.io.IOException; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class imageDemo2 extends MIDlet { private Display d; private Form form; private Image img1, img2; public imageDemo2(){ form = new Form("Contoh Image"); try{ img1 = Image.createImage("/duke.png"); img2 = Image.createImage(img1); form.append(img1); form.append(img2);
Create by gushusnulhelmi.blogspot.com

20

Modul Mobile Aplication

}catch(IOException e){ } } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() { } public void destroyApp(boolean unconditional){ } } Fungsi-fungsi penting dalam class Image adalah : public Graphics getGraphics() Menghasilkan objek Graphics yang bersesuaian dari objek Image yang bersangkutan. public int getHeight() menghasilkan tinggi objek gambar yang ada. public int getWidth() Menghasilkan lebar objek gambar yang ada. public boolean isMutable() Menghasilkan nilai true jika objek gambar bersifat mutable.

ImageItem
Objek ImageItem digunakan untuk mengontrol objek Image yang ada pada form atau alert. Konstruktor dari class ImageItem adalah : public void ImageItem(String label, Image img, int layout, String altText) Parameter-parameter pada konstruktor adalah : String label Untuk memberikan judul pada objek ImageItem yang aktif. Image img Objek Image yang akan dikontrol String altText Untuk memberikan alternatif teks string pada gambar. int layout Ada beberapa nilai layout yang bisa digunakan untuk parameter ini, yaitu : ImageItem.LAYOUT_CENTER : gambar akan diatur pada posisi tengah. ImageItem.LAYOUT_DEFAULT : gambar akan diatur pada posisi standart. ImageItem.LAYOUT_LEFT : gambar akan diatur pada posisi kiri. ImageItem.LAYOUT_RIGHT : gambar akan diatur pada posisi kanan. ImageItem.LAYOUT_NEWLINE_AFTER : setelah gambar dibuat akan diberikan sebuah baris baru. ImageItem.LAYOUT_ NEWLINE_BEFORE : sebelum gambar dibuat akan diberikan sebuah baris baru.

Create by gushusnulhelmi.blogspot.com

21

Modul Mobile Aplication

Contoh : import java.io.IOException; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class imageDemo3 extends MIDlet { private Display d ; private Form form; private Image img1 ; private ImageItem img2 ; public imageDemo3(){ form = new Form("Contoh Image"); try{ img1 = Image.createImage("/duke.png"); img2 = new ImageItem("My Duke 1",img1,ImageItem.LAYOUT_CENTER, "My Duke 2"); form.append(img1); form.append(img2); }catch(IOException e){ } } public void startApp() { d = Display.getDisplay(this) ; d.setCurrent(form); } public void pauseApp() {} public void destroyApp(boolean unconditional){} }

Fungsi-fungsi penting dalam class ImageItem ini adalah: public String getAltText() menghasilkan teks string yang merupakan teks alternatif dari objek ImageItem. public Image getImage() Menghasilkan objek Image dari objek ImageItem yang bersangkutan. public int getLayout() Menghasilkan tipe layout yang digunakan oleh objek ImageItem yang bersangkutan. public void setAltText(String altText) Menetapkan teks string yang merupakan teks alternatif pada objek ImageItem public void setImage(Image img) Menetapkan objek Image dari objek ImageItem yang bersangkutan. public void setLayout(int layout) Menetapkan tipe layout yang digunakan oleh objek ImageItem yang bersangkutan.

Create by gushusnulhelmi.blogspot.com

22

Anda mungkin juga menyukai