Low Level User Interface

dokumen-dokumen yang mirip
LAMPIRAN Listing Program

Mobile Computing. Ramos Somya

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Company LOGO

1. Tujuan. 2. Latar Belakang. 3. Percobaan. Modul Praktikum MMAPI. Setelah mempelajari bab ini, Pelajar diharapkan mampu untuk :

1. Tujuan. 2. Latar Belakang. 3. Percobaan. Modul Praktikum TiledLayer

PEMOGRAMAN APLIKASI BERGERAK (Java ME)

1.Mengatur jadwal tugas menggunakan Timers 2.Mengetahui bagaimana membaca file dari aplikasi mobile sederhana

DateField adalah objek yang dapat digunakan untuk menampilkan atau mengedit objek yang bertipe Date.

J2ME GUI dan Manajemen Event

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 12 WIRELESS JAVA PROGRAMMING WITH JAVA 2 MICRO EDITION (J2ME)

11.1 Tujuan Timers

Yang dilakukan terlebih dahulu adalah membuat class Canvas yang nantinya akan dipanggil sebagai objek. Berikut adalah contoh kodenya.

MODUL 11 J2ME (Java 2 Micro Edition)

BONUS. Dasar Java Mobile. Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal

MODUL 9 J2ME (Java 2 Micro Edition)

Bab Tujuan. 2.2 Pengenalan. 2.3 "Hello, world!" MIDlet

Penggunaan Canvas Pada J2ME Untuk Game Programming

MODUL 10 J2ME (Java 2 Micro Edition)

Bab 4 Low Level User Interface

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Yoannita

1.Tujuan. 2. Latar Belakang. 3. Percobaan

Mobile Computing. Ramos Somya

DASAR PEMROGRAMAN MOBILE DENGAN JAVA MOBILE EDITION (J2ME)

LOW LEVEL USER INTERFACE ( Tugas Pratikum 4 )

P4 Bab 4 User Interface

Agate Mobile Game Developer Camp

Kode tereksekusi dengan baik sehingga mendapatkan output "JENI Java Education Network Indonesia" yang diikuti oleh "Hello Jeni"

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Yoannita

LOGIN FORM MENGGUNAKAN PROGRAM JAVA

Bab 6. Layer Manager

I. PENDAHULUAN 1.1 Latar Belakang

Membuat Aplikasi Nilai dengan Login. Menggunakan Java J2ME

Pengenalan JavaScript

Membuat Aplikasi Kirim SMS. Menggunakan Java J2ME

M.Octaviano Pratama

Bab 4 Low Level User Interface

BAHASA PEMROGRAMAN JAVA

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

Mendapatkan Input Dari Keyboard

TUGAS MANDIRI MAKALAH. : Pemrograman Mobile Praktek

BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI. Setelah melakukan analisis dan perancangan terhadap Aplikasii

BAB II DASAR TEORI. menggunakan gelombang radio di atas frekuensi 1 GHz. Suatu sistem transmisi

MODUL PRAKTIKUM PEMROGRAMAN APLIKASI BERGERAK

Pemrograman Java III

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

APLIKASI VIDEO PLAYER PADA MOBILE PHONE MENGGUNAKAN PEMPROGRAMAN J2ME

Pendahuluan ( First Session). Baca terlebih dahulu halaman ini :

Badiyanto, S.Kom., M.Kom. PBO java

DASAR PEMOGRAMAN JAVA

PEMAHAMAN DASAR DASAR JAVA

Implementasi Fungsi Hash untuk Pertukaran Data pada Telepon Seluler

A. TUJUAN PEMBELAJARAN

BAB IV IMPLEMENTASI DAN PENGUJIAN. Setelah melakukan analisis dan perancangan terhadap aplikasi Iqra mobile,

Elemen Dasar Dalam Bahasa Java

IF5093 Java ME. Achmad Imam Kistijantoro Semester II 2006/2007. IF-ITB/AI/Mar 07. IF5093 Java ME

BAB II VARIABEL DAN TIPE DATA

APLIKASI MOBILE SEBAGAI MEDIA PEMBELAJARAN BAHASA JAWA MENGGUNAKAN JAVA 2 MICRO EDITION. Naskah Publikasi

APLIKASI KAMUS BAHASA JEPANG - INDONESIA PADA PERANGKAT GENGGAM MENGUNAKAN J2ME

2 TIPE DATA DAN VARIABEL

Praktikum KPLBO Final Object Concept I

Program Kalkulator Sederhana Menggunakan Java Netbeans

Pemrograman Java III

INSTRUKSI PENCABANGAN

APLIKASI KAMUS MATEMATIKA UNTUK HANDPHONE

Modul Praktikum 3 Pemograman Berorientasi Objek

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

PERCABANGAN. Bentuk if Sederhana

MODUL PRAKTIKUM KE 3 A.

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

AUTHMODE_PRIVATE hanya bisa diakses oleh MIDlet suite yang menciptakan record store tersebut

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Pemrograman dengan Java

BAB 1 KONSEP DASAR JAVA

SUMBER BELAJAR PENUNJANG PLPG

1. Pilih BAB IV IMPLEMENTASI DAN PENGUJIAN. kebutuhan sistem yang meliputi emulator Java2 Micro Edition(J2ME) dan telepon

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Latihan 2 List Menu Bertingkat

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

Pengenalan Bahasa Pemrograman Java

Transkripsi:

PENGEMBANGAN APLIKASI MOBILE MODUL PRAKTIKUM Low Level User Interface JAVA EDUCATION NETWORK INDONESIA

1. Tujuan Memahami event handling level rendah dalam MIDP Menggambar dan menampilkan teks, gambar, garis, kotak, dan sudut Menentukan warna, huruf, dan coretan untuk operasi menggambar Memahami dan menggunakan class Canvas dan Graphic Menggambar grafik berskala 2. Latar Belakang Pada bab sebelumnya, kita telah membahas tentang bagaimana cara membuat user interface level tinggi seperti list, form, dan field input. Mereka bersifat user interface level tinggi dan programmer tidak perlu khawatir tentang menggambar pixel layar atau mengatur posisi teks pada layar. Semua program telah menetapkan jenis komponen dan label elemen. Sistem tersebut akan menangani gambar pada layar, scrolling dan layout. Pada bab ini, kita akan berhadapan langsung dengan layar. Kita akan mempelajari class Canvas, dimana akan menjadi pendukung dari proses menggambar kita. Kita juga akan menyelidiki ke dalam class Graphic, dimana memiliki metode untuk menggambar garis, kotak, sudut, dan teks. Kita juga akan membahas huruf, warna dan gambar. 3. Percobaan Percobaan 1: Menggambar Teks import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloJENI extends MIDlet { private Display display; HelloCanvas1 canvas; public void startapp() { if(display == null){ 1 P age

canvas = new HelloCanvas1(this); display = Display.getDisplay(this); display.setcurrent(canvas); public void pauseapp() { public void destroyapp(boolean unconditional) { protected void Quit(){ destroyapp(true); notifydestroyed(); class HelloCanvas1 extends Canvas implements CommandListener { private Command exitcommand = new Command("Exit",Command.EXIT,0); private HelloJENI jeni; public HelloCanvas1(HelloJENI jeni){ this.jeni = jeni; addcommand(exitcommand); 2 P age

setcommandlistener(this); protected void paint (Graphics g){ g.setcolor(255,255,255); g.fillrect(0,0,getwidth(),getheight()); g.setcolor(255,0,0); g.drawstring("jeni",getwidth()/2,getheight()/2,graphics.top Graphics.HCENTER ); g.setcolor(0,0,255); Font font = g.getfont(); g.drawstring("java EDUCATION NETWORK INDONESIA",getWidth()/2,getHeight()/2+font.getHeight(),Graphics.TOP Graphics.HCENTER); public void commandaction(command c, Displayable d){ if(c == exitcommand){ jeni.quit(); 3 P age

Hasil : Percobaan 2 : Penggambaran Garis dengan Warna import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class GarisWarna extends MIDlet { private Display display; HelloCanvas2 canvas; 4 P age

public void startapp() { if (display == null){ canvas = new HelloCanvas2(this); display = Display.getDisplay(this); display.setcurrent(canvas); public void pauseapp() { public void destroyapp(boolean unconditional) { protected void Quit(){ destroyapp(true); notifydestroyed(); class HelloCanvas2 extends Canvas implements CommandListener { private Command exitcommand = new Command("Exit",Command.EXIT,0); private GarisWarna line; public HelloCanvas2(GarisWarna line){ this.line = line; addcommand(exitcommand); setcommandlistener(this); 5 P age

protected void paint(graphics g){ g.setcolor(255,255,255); g.fillrect(0,0,getheight(),getwidth()); g.setcolor(255,0,0); g.drawline(0,0,getwidth()-1,getheight()-1); g.setcolor(0,255,0); g.drawline(0,getheight()/2,getwidth()-1,getheight()/2); g.setcolor(0,0,255); g.drawline(0,getheight()-1,getwidth()-1,getheight()-1); g.setcolor(0,0,0); g.drawline(0,getheight()-1,getwidth()-1,0); public void commandaction(command c, Displayable d){ if(c == exitcommand) { line.quit(); 6 P age

Hasil : Percobaan 3 : Menggambar Segi Empat import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Kotak extends MIDlet { private Display display; HelloCanvas3 canvas; public void startapp() { 7 P age

if (display == null){ canvas = new HelloCanvas3(this); display = Display.getDisplay(this); display.setcurrent(canvas); public void pauseapp() { public void destroyapp(boolean unconditional) { protected void Quit(){ destroyapp(true); notifydestroyed(); class HelloCanvas3 extends Canvas implements CommandListener { private Command exitcommand = new Command("Exit",Command.EXIT,7); private Kotak segiempat; public HelloCanvas3(Kotak segiempat){ this.segiempat = segiempat; addcommand(exitcommand); setcommandlistener(this); protected void paint (Graphics g){ g.setcolor(255,255,255); 8 P age

g.fillrect(0,0,getwidth(),getheight()); //menggambar kotak bewarna kuning g.setcolor(0,0,0); g.drawrect(8,8,64,32); g.setcolor(255,255,0); g.fillrect(8,8,64,32); //menggambar berbagai macam jenis kotak g.setcolor(0,0,0); g.drawrect(8,50,88,44); g.drawroundrect(108,50,88,44,18,18); g.fillrect(8,120,88,44); g.fillroundrect(108,120,88,44,18,18); public void commandaction(command c, Displayable d){ if (c == exitcommand){ segiempat.quit(); 9 P age

Hasil : Percobaan 4 : Menggambar Sudut import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Sudut extends MIDlet { private Display display; HelloCanvas4 canvas; public void startapp() { 10 P age

if (display == null){ canvas = new HelloCanvas4(this); display = Display.getDisplay(this); display.setcurrent(canvas); public void pauseapp() { public void destroyapp(boolean unconditional) { protected void Quit(){ destroyapp(true); notifydestroyed(); class HelloCanvas4 extends Canvas implements CommandListener { private Command exitcommand = new Command("Exit",Command.EXIT,1); private Sudut angle; public HelloCanvas4(Sudut angle){ this.angle = angle; addcommand(exitcommand); setcommandlistener(this); protected void paint (Graphics g){ g.setcolor(255,255,255); 11 P age

g.fillrect(0,0,getwidth(),getheight()); g.setcolor(255,0,0); g.drawarc(18,18,50,50,0,360); g.setcolor(0,255,0); g.drawarc(40,40,100,120,0,180); g.setcolor(0,0,255); g.fillarc(100,200,80,100,0,90); public void commandaction(command c, Displayable d){ if (c == exitcommand){ angle.quit(); 12 P age

Hasil : Percobaan 5: Menulis Hello World dengan Canvas import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloCanvasMIDlet extends MIDlet { private Display display; 13 P age

HelloCanvas canvas; Command exitcommand = new Command("Exit",Command.EXIT,0); public void startapp() { if (display == null){ canvas = new HelloCanvas(this,"Hello World"); display = Display.getDisplay(this); display.setcurrent(canvas); public void pauseapp() { public void destroyapp(boolean unconditional) { protected void Quit(){ destroyapp(true); notifydestroyed(); class HelloCanvas extends Canvas implements CommandListener { private Command exitcommand = new Command("Exit",Command.EXIT,0); 14 P age

private Command menucommand = new Command("Menu",Command.OK,0); private HelloCanvasMIDlet midlet; private String text; public HelloCanvas(HelloCanvasMIDlet midlet,string text){ this.midlet = midlet; this.text = text; addcommand(exitcommand); setcommandlistener(this); protected void paint(graphics g) { g.setcolor(255,255,255); g.fillrect(0,0,getwidth(),getheight()); g.setcolor(0,0,0); g.drawstring(text,getwidth()/2,getheight()/2,graphics.top Graphics.HCENTER); public void commandaction(command c,displayable d){ if(c == exitcommand){ midlet.quit(); 15 P age

Hasil :. 16 P age

4 LATIHAN Test Anchor Point Buatlah sebuah demonstrasi sederhana mengenai Anchor Point pada J2ME. Ada dua interface yang mendukung program ini yaitu String go j2me yang digambarkan pada sebuah Canvas dan sebuah List mengenai semua titik anchor point yang didukung oleh MIDP. Sebagai default, Anda akan mendapatkan String tersebut diikuti dengan sebuah. (dot/titik) sebagai penanda anchor point dengan posisi BASELINE HCENTER. Pada saat Anda memutuskan untuk mengubah posisi anchor point dari text tersebut, maka Anda akan meng-klik command Anchor,kemudian memilih dari salah satu list letak titik anchor point yang Anda inginkan, sehingga text pada interface pertama tersebut akan digambarkan berbeda sesuai dengan titik anchor point yang telah Anda pilih. (Perhatikan gambar berikut ini) 17 P age

Jawaban: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Text extends MIDlet{ private Display display; private TextCanvas canvas; private AnchorPtList anchorpt; private int anchorpoint = Graphics.BASELINE Graphics.HCENTER; public Text(){ display = Display.getDisplay(this); canvas = new TextCanvas(this); anchorpt = new AnchorPtList("Anchor point", List.IMPLICIT, this); protected void startapp() { showcanvas(); protected void pauseapp() { protected void destroyapp( boolean unconditional ) { public void showcanvas() { display.setcurrent(canvas); public void showlist(){ display.setcurrent(anchorpt); 18 P age

public int getanchorpoint(){ return anchorpoint; public void setanchorpoint(int anchorpoint){ this.anchorpoint = anchorpoint; public void exitmidlet() { destroyapp(true); notifydestroyed(); class TextCanvas extends Canvas implements CommandListener{ private Command cmexit; private Command cmgetanchorpt; private Text midlet; public TextCanvas(Text midlet) { this.midlet = midlet; cmexit = new Command("Exit", Command.EXIT, 1); cmgetanchorpt = new Command("Anchor", Command.SCREEN, 2); addcommand(cmexit); addcommand(cmgetanchorpt); setcommandlistener(this); 19 P age

protected void paint(graphics g){ int xcenter = getwidth() / 2, ycenter = getheight() / 2; g.setcolor(255, 255, 255); g.fillrect(0, 0, getwidth(), getheight()); g.setcolor(0, 0, 0); g.setfont(font.getfont(font.face_system, Font.STYLE_PLAIN, Font.SIZE_MEDIUM)); g.drawline(xcenter, ycenter, xcenter, ycenter); g.drawstring("test Anchor Point", xcenter, ycenter, midlet.getanchorpoint()); public void commandaction(command c, Displayable d) { if (c == cmexit) midlet.exitmidlet(); else if (c == cmgetanchorpt){ // panggil method untuk menampilkan list midlet.showlist(); class AnchorPtList extends List implements CommandListener{ private Text midlet; public AnchorPtList(String title, int listtype, Text midlet) { super(title, listtype); 20 P age

this.midlet = midlet; append("top/left", null); append("top/hcenter", null); append("top/right", null); append("baseline/left", null); append("baseline/hcenter", null); append("baseline/right", null); append("bottom/left", null); append("bottom/hcenter", null); append("bottom/right", null); setcommandlistener(this); public void commandaction(command c, Displayable s) { switch (getselectedindex()) { case 0: midlet.setanchorpoint(graphics.top Graphics.LEFT); break; case 1: midlet.setanchorpoint(graphics.top Graphics.HCENTER); break; case 2: midlet.setanchorpoint(graphics.top Graphics.RIGHT); break; 21 P age

case 3: midlet.setanchorpoint(graphics.baseline Graphics.LEFT); break; case 4: midlet.setanchorpoint(graphics.baseline Graphics.HCENTER); break; case 5: midlet.setanchorpoint(graphics.baseline Graphics.RIGHT); break; case 6: midlet.setanchorpoint(graphics.bottom Graphics.LEFT); break; case 7: midlet.setanchorpoint(graphics.bottom Graphics.HCENTER); break; case 8: midlet.setanchorpoint(graphics.bottom Graphics.RIGHT); break; default: midlet.setanchorpoint(graphics.baseline Graphics.HCENTER); midlet.showcanvas(); 22 P age