Nama : Jamaludin NIM : E3209265 Kelas : TKK-B PRAKTIKUM 2 ANTAR MUKA TINGKAN ATAS 1. Dasar Teori MDIP user interface di desain untuk peralatan mobile. Aplikasi MDIP ditunjukan pada area limited screen. Peralatan memory juga menjadi factor jika perlengkapan mobile hanya memiliki kapasitas memory yang kecil. Dengan berbagai macam peralatn mobile, dari berbagai model phones sampai PDAs, MIDP user interface telah didesain untuk lebih fleksible dan mudah digunakan dalam berbagai macam peralatan ini. MIDP mempunyai class yang dapat menangani fungsi high-level dan lowlevel user interface. High-level UI interface didesain secara fleksible. Penampilan dari komponen ini tidak didefinisikan secara spesifik. Penampilan screen yang sebenarnya dari berbagai macam komponen ni digunakan dari satu peralatan ke peralatan yang lain. Tetapi para programmer telah teryakinkan oleh kegunaan dari high-levil komponen UI interfaces memiliki persamaan dalam berbagai spesifikasipengimplementasi secara keseluruhan. 2. Hasil Praktikum a.
Percobaan 1(List)
- Source code import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ListExample extends MIDlet implements CommandListener{ Display display; List list; Command exitCommand = new Command("Exit", Command.EXIT, 1); Command newCommand = new Command("New Item", Command.OK, 1); 1 of 22
Command renameCommand = new Command("Rename Item", Command.OK, 1); Command deleteCommand = new Command("Delete Item", Command.OK, 1); Ticker ticker = new Ticker("List Example"); public ListExample(){ list = new List("Bab 2 Â Percobaan 1 List", List.IMPLICIT); list.append("List Item #1", null); list.append("List Item #2", null); list.append("List Item #3", null); list.setTicker(ticker); list.addCommand(exitCommand); list.addCommand(newCommand); list.addCommand(renameCommand); list.addCommand(deleteCommand); list.setCommandListener(this); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(list); } }
public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command arg0, Displayable arg1) { if (arg0 == exitCommand){ destroyApp(true); 2 of 22
notifyDestroyed();// Exit } if (arg0 == List.SELECT_COMMAND){ int index = list.getSelectedIndex(); String currentItem = list.getString(index); // menjalankan suatu hal }}} - Output
3 of 22
- Analisa Pada percobaan1 program lebih menonjolkan penggunaan List dan Command. Method- method List terdapat pada javax.microedition.lcdui.List. Pada bagian source code ListExample.java terdapat method Command yang digunakan sebagai event Command exitCommand = new Command("Exit", Command.EXIT, 1); Command newCommand = new Command("New Item", Command.OK, 1); Command renameCommand = new Command("Rename Item", Command.OK, 1); Command deleteCommand = new Command("Delete Item", Command.OK, 1);
di dalam program. Sedangkan pada bagian list = new List("Bab 2 Â Percobaan 1 List", List.IMPLICIT); merupakan proses membuat list dengan tipe implicit. Pada list.setCommandListener(this) merupakan proses penambahan CommandListener sebagai penangkap event Command kemudian List ditampilkan dengan kode display.setCurrent(list). Penangkapan even pada List dilakukan pada metode commandAction() seperti bagian kode dibawah if (arg0 == List.SELECT_COMMAND){ int index = list.getSelectedIndex(); String currentItem = list.getString(index); // menjalankan suatu hal }
b.
Percobaan 2 (Choice Group)
- Source code import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class ChoiceExample extends MIDlet implements CommandListener{ Display display; Form choiceForm;
4 of 22
Command exitCommand = new Command("Exit", Command.EXIT, 1); ChoiceGroup choiceExclusive,choiceMultiple,choicePopup; public ChoiceExample(){ choiceForm = new Form("Bab 2 Â Percobaan 2 Choice Group"); choiceForm.addCommand(exitCommand); choiceForm.setCommandListener(this); choiceExclusive = new ChoiceGroup("Exclusive", Choice.EXCLUSIVE); choiceExclusive.append("Male", null); choiceExclusive.append("Female", null); choiceForm.append(choiceExclusive); choiceMultiple = new ChoiceGroup("Multiple", Choice.MULTIPLE); choiceMultiple.append("Apple", null); choiceMultiple.append("Orange", null); choiceMultiple.append("Grapes", null); choiceForm.append(choiceMultiple); choicePopup = new ChoiceGroup("Popup", Choice.POPUP); choicePopup.append("Asia", null); choicePopup.append("Europe", null); choicePopup.append("Americas", null); choiceForm.append(choicePopup); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(choiceForm); }
5 of 22
} public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command arg0, Displayable arg1) { if (arg0 == exitCommand){ destroyApp(true); notifyDestroyed();// Exit } } }
- Output
6 of 22
- Analisa Pada percoabaan2, menitik beratkan pada ChoiceGroup. Yang dapat dipilih dengan menyeleksi pilihan yang ada dalam kelompok tersebut. Pada choice terdapat kesamaan dengan list yaitu pada ChoiceGroup choiceExclusive,choiceMultiple,choicePopup; yang memiliki arti masing-masing. choiceExclusive berarti hanya dapat memilih satu, choiceMultiple dapat memilih lebih dari satu atau tidak memilih ,choicePopup seperti halnya popup menu jika di klik maka akan muncul pilihan;
c.
Percobaan 3 (DateField)
- Source code import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
7 of 22
public class DateFieldExample extends MIDlet implements CommandListener{ Display display; Form dateForm; Command exitCommand = new Command("Exit", Command.EXIT, 1); DateField dateonly,timeonly,datetime; public DateFieldExample(){ dateForm = new Form("Bab 2ÂPercobaan 3 DateField"); dateForm.addCommand(exitCommand); dateForm.setCommandListener(this); DateField dateonly = new DateField("Birthday (DATE)", DateField.DATE); DateField timeonly = new DateField("Set Alarm (TIME)", DateField.TIME); DateField datetime = new DateField("Departure (DATE_TIME)", DateField.DATE_TIME); dateForm.append(dateonly); dateForm.append(timeonly); dateForm.append(datetime); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(dateForm); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { } 8 of 22
public void commandAction(Command arg0, Displayable arg1) { if (arg0 == exitCommand){ destroyApp(true); notifyDestroyed();// Exit } } } - Output
9 of 22
10 of 22
11 of 22
- Analisa Percobaan3 merupakan source code menggunakan method DateField.yang berfungsi untuk menampilkan tanggal dan informasi waktu dalam sebuah objek Form. 12 of 22
DateField dateonly = new DateField("Birthday (DATE)", DateField.DATE); DateField timeonly = new DateField("Set Alarm (TIME)", DateField.TIME); DateField datetime = new DateField("Departure (DATE_TIME)", DateField.DATE_TIME);
Berfungsi sebagai proses membuat objek DateField sedangkan dateForm.append(dateonly); dateForm.append(timeonly); dateForm.append(datetime); merupakan proses mengaitkan/memunculkan datefield pada form.
d.
Percobaan 4 (Alert)
- Source code import java.io.IOException; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class AlertExample extends MIDlet implements CommandListener{ Display display; Form mainForm; Command exitCommand = new Command("Exit", Command.EXIT, 0); Command okCommand = new Command("Ok", Command.OK, 0); Gauge gauge = new Gauge(null, false, 5, 0); Command[] commands = { new Command("Alarm", Command.OK, 0), new Command("Confirmation", Command.OK, 0), new Command("Info", Command.OK, 0), 13 of 22
new Command("Warning", Command.OK, 0), new Command("Error", Command.OK, 0), }; Alert[] alerts= { new Alert("Alarm Alert","Example of an Alarm type of Alert",null, AlertType.ALARM), new Alert("Confirmation Alert","Example of an CONFIRMATION type of Alert",null, AlertType.CONFIRMATION), new Alert("Info Alert","Example of an INFO type of Alert",null, AlertType.INFO), new Alert("Warning Alert","Example of an WARNING type of Alert, w/ gauge indicator",null, AlertType.WARNING), new Alert("Error Alert","Example of an ERROR type of Alert, w/ an 'OK' Command",null, AlertType.ERROR), }; public AlertExample() throws IOException { mainForm = new Form("Praktikum 2 Percobaan 4 Alert"); mainForm.addCommand(exitCommand); for (int i=0; i< commands.length; i++){ mainForm.addCommand(commands[i]); } try{ Image img = Image.createImage("ex.jpg"); ImageItem image = new ImageItem("POLIJE", img, Item.LAYOUT_CENTER, "jeni logo"); mainForm.append(image);
}catch (Exception e){ 14 of 22
e.printStackTrace(); } mainForm.setCommandListener(this); // Menambah sebuah gauge dan mengeset timeout (milliseconds) alerts[3].setIndicator(gauge); alerts[3].setTimeout(5000); // Menambah sebuah command untuk Alert alerts[4].addCommand(okCommand); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(mainForm);
} } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command arg0, Displayable arg1) { if (arg0 == exitCommand){ destroyApp(true); notifyDestroyed(); } for (int i=0; i
15 of 22
} } } }
- Output
16 of 22
- Analisa Percoabaan4 menggunakan scourc code Alert. Alert adalah sejenis pesan yang tampil dilayar berupa teks, gambar maupun suara. Untuk menginformasiakn sesuatu ke pada pemakai. new Alert("Alarm Alert","Example of an Alarm type of Alert",null, AlertType.ALARM), new Alert("Confirmation Alert","Example of an CONFIRMATION type of Alert",null, AlertType.CONFIRMATION), new Alert("Info Alert","Example of an INFO type of Alert",null, AlertType.INFO), new Alert("Warning Alert","Example of an WARNING type of Alert, w/ gauge indicator",null, AlertType.WARNING), new Alert("Error Alert","Example of an ERROR type of Alert, w/ an 'OK' Command",null, AlertType.ERROR),
17 of 22
tulisan diatas digunakan untuk menampilkan pemberiatahuan kepada pemakai lewat tulisan. Sedangkan pada for (int i=0; i< commands.length; i++){ mainForm.addCommand(commands[i]); } try{ Image img = Image.createImage("ex.jpg"); ImageItem image = new ImageItem("POLIJE", img, Item.LAYOUT_CENTER, "jeni logo"); mainForm.append(image);
}catch (Exception e){ e.printStackTrace(); } mainForm.setCommandListener(this); // Menambah sebuah gauge dan mengeset timeout (milliseconds) alerts[3].setIndicator(gauge); alerts[3].setTimeout(5000); // Menambah sebuah command untuk Alert alerts[4].addCommand(okCommand); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(mainForm);
berjalan ketika peringatan berlangsung.. dengan peringatan yang berbeda sesuai dengan sintak pemanggilannya(image, indicator, ). 18 of 22
e.
Percobaan 5 (TextField)
- Source code import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class TextFieldExample extends MIDlet implements CommandListener{ Display display; Form textForm; Command exitCommand = new Command("Exit", Command.EXIT, 1); DateField dateonly,timeonly,datetime; Ticker ticker = new Ticker("Selamat Belajar"); public TextFieldExample(){ textForm = new Form("Praktikum 2 Percobaan 5 Textfield"); textForm.addCommand(exitCommand); textForm.setCommandListener(this); TextField ANY = new TextField("ANY", "", 64, TextField.ANY); TextField EMAILADDR = new TextField("EMAILADDR", "", 64, TextField.EMAILADDR); TextField NUMERIC = new TextField("NUMERIC", "", 64, TextField.NUMERIC); TextField PHONENUMBER= new TextField("PHONENUMBER", "", 64, TextField.PHONENUMBER); TextField URL = new TextField("URL", "", 64, TextField.URL); TextField DECIMAL = new TextField("DECIMAL", "", 64, TextField.DECIMAL); Item submitt = new StringItem(null,"Terima Kasih\n"); Item link = new StringItem(null,"Submit", Item.HYPERLINK); Command cmdsubmit = new Command("Submit",Command.ITEM,1); 19 of 22
link.setDefaultCommand(cmdsubmit); textForm.append(ANY); textForm.append(EMAILADDR); textForm.append(NUMERIC); textForm.append(PHONENUMBER); textForm.append(URL); textForm.append(DECIMAL); textForm.append(submitt); textForm.append(link); textForm.setTicker(ticker); } public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(textForm); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command arg0, Displayable arg1) { if (arg0 == exitCommand){ destroyApp(true); notifyDestroyed();// Exit } } }
20 of 22
- Output
21 of 22
- Analisa Percoabaan5 menggunakan TeksField sebagai source code. Dimana Texsfield berfungsi sebagai sebuah objek yang untuk memasuakn teks ke dalam form masukan. TextField ANY = new TextField("ANY", "", 64, TextField.ANY); TextField EMAILADDR = new TextField("EMAILADDR", "", 64, TextField.EMAILADDR); TextField NUMERIC = new TextField("NUMERIC", "", 64, TextField.NUMERIC); TextField PHONENUMBER= new TextField("PHONENUMBER", "", 64, TextField.PHONENUMBER); TextField URL = new TextField("URL", "", 64, TextField.URL); TextField DECIMAL = new TextField("DECIMAL", "", 64, TextField.DECIMAL);
Sintak diatas menunjukan cara pembuatan source code pada TextField. Dimana String merupakan awal dari indeksnya. Namun teks harus tetap diatur. Dan 22 of 22
teks dapat decontrol menggunakan file library dari TextField. Contohnya ANY, NUMERIC dll. textForm.append(ANY); textForm.append(EMAILADDR); textForm.append(NUMERIC); textForm.append(PHONENUMBER); textForm.append(URL); textForm.append(DECIMAL); textForm.append(submitt); textForm.append(link); textForm.setTicker(ticker);
sedangkan sintak diatas merupakan sintak untuk pemanggilan TeksField yang akan digunakan dalam program.
3. Kesimpulan
Dalam praktikum ke-2 yang membahas tentang ‘Antar Muka Tingkat Atas’. Merupakan source code yang mempunyai fungsi lebih baik dari tingkat bawah dalam sintaknya dan juga dalam kualitas filenya. Contohnya adalah sitak pada image. Jika kita ingin memunculkan gambar pada tingkat bawah maka kita membutuhkan class bermethod canvas. Sehingga image dapat berjalan.
4. Tugas Source Code:
///HalamanAwal
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** 23 of 22
* @author Administrator */ public class Beranda extends MIDlet implements CommandListener { private Display display; private Form x; private Command cmdexit = new Command("Exit", Command.EXIT, 1); public Beranda(){ x = new Form("BERANDA"); x.addCommand(cmdexit); x.setCommandListener(this); TextField ANY = new TextField("Keterangan :","",100, TextField. ANY); TextField LAYOUT = new TextField("Comment","",300, TextField. ANY); x.append(ANY); x.append(LAYOUT); }
public void startApp() { if (display == null){ display = Display.getDisplay(this); display.setCurrent(x); }}
public void pauseApp() { }
24 of 22
public void destroyApp(boolean unconditional) { }
public void commandAction(Command c, Displayable d) { if (c == cmdexit){ destroyApp(true); notifyDestroyed();// Exit }
}}
Output:
25 of 22
Source Code Profil: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * @author Administrator */ public class profil extends MIDlet implements CommandListener{ Display display; TextField nm,almt,email,tlp,pos; Command exit= new Command("Exit", Command.EXIT, 1); Form tex;
26 of 22
Ticker tiker = new Ticker("Isi dengan lengkap..!!!"); ChoiceGroup choiceExclusive,choiceMultiple,choicePopup; public profil(){ tex = new Form("Profil"); nm = new TextField("Nama","",50,TextField.ANY ); almt = new TextField("Alamat","",100,TextField.ANY ); email = new TextField("e-mail","",70,TextField.EMAILADDR); tlp = new TextField("Telp","",50,TextField.PHONENUMBER); pos = new TextField("Pos","",8,TextField.NUMERIC ); DateField dateonly = new DateField("Tanggal Lahir", DateField.DATE); tex.addCommand(exit); tex.setCommandListener(this); tex.append(nm); choiceExclusive = new ChoiceGroup("Jenis Kelamin", Choice.EXCLUSIVE); choiceExclusive.append("Male", null); choiceExclusive.append("Female", null); tex.append(choiceExclusive); tex.append(almt); tex.append(dateonly); tex.append(email); choiceMultiple = new ChoiceGroup("HObbi", Choice.MULTIPLE); choiceMultiple.append("Olahraga", null); choiceMultiple.append("Song", null); choiceMultiple.append("Menulis", null); tex.append(choiceMultiple); tex.append(tlp); tex.append(pos); choicePopup = new ChoiceGroup("Propinsi", Choice.POPUP);
27 of 22
choicePopup.append("Jawa", null); choicePopup.append("Kalimantan", null); choicePopup.append("Sumatra", null); tex.append(choicePopup); tex.setTicker(tiker);
} public void startApp() { if(display == null){ display = Display.getDisplay(this); display.setCurrent(tex); }}
public void pauseApp() { }
public void destroyApp(boolean unconditional) { } public void commandAction(Command arg0, Displayable arg1) { if (arg0 == exit){ destroyApp(true); notifyDestroyed();// Exit } }}
Output:
28 of 22
29 of 22