You are on page 1of 30

LAPORAN PRAKTIKUM 5

MOBILE PROGRAMMING

Oleh :
Rudy Salman Akbar Alfarisy (1083152)
Kelas : TI / 3B

JURUSAN TEKNIK INFORMATIKA


POLITEKNIK POS INDONESIA
BANDUNG
2010
HALAMAN PENGESAHAN

Judul Praktikum : Low Level User Interface

Sub Judul Praktikum : 1. Canvas


2. Grafik
3. Sudut
4. Kotak
5. Garis Warna
6. Latihan di Lab

Tanggal Praktikum : 6 November 2010


Tanggal Penyerahan Laporan : 13 November 2010
Tempat Praktikum : Laboratorium Komputer 306
Alat dan Software : Laptop, Notepad, Sun Java Wireless Toolkit, Ms
Office & Nitro PDF
Kelas : TI / 3B
Nama : Rudy Salman Akbar Alfarisy (1083152)
Jurusan : Teknik Informatika

Bandung, November 2010


Menyetujui
Dosen Pengajar

Azizah Zakiah, S.Kom


KATA PENGANTAR

Puji syukur kami panjatkan ke hadirat Allah swt yang atas rahmatNya kami
dapat menyelesaikan Laporan Praktikum mata kuliah Mobile Programming ini.

Adapun isi dari Laporan ini adalah mengenai praktikum yang telah kami lakukan
di Laboratorium komputer 306.

Demikian Laporan Praktikum Pemrograman Komputer ini kami buat, sebagai


hasil praktikum yang telah kami lakukan. Kritik dan saran yang membangun sangat kami
harapkan sehingga kedepannya nanti dapat lebih baik.

Penyusun,
BAB I

LANDASAN TEORI

1.1Canvas

Canvas adalah subclass dari Displayable. Itu adalah sebuah class abstrak
yang harus di-extend sebelum sebuah aplikasi dapat menggunakan fungsi-
fungsi yang ada. Canvas dapat digabungkan dengan subclass Displayable
level tinggi yaitu Screen. Program dapat pindah ke dan dari Canvas dan
Screen. Canvas menggambarkan metode-metode event handling kosong.
Aplikasi harus mengesampingkan mereka untuk handle event. Class Canvas
menggambarkan sebuah metode abstrak yang disebut paint(). Aplikasi
menggunakan class Canvas harus menyediakan sebuah implementasi untuk
metode paint().

1.2Menggambar Teks
Metode untuk menggambar teks dan karakter adalah :

public void Menggambar teks dalam str


drawString(String str, menggunakan warna dan huruf yang
int x, tersedia. (x,y) adalah koordinat titik
int y, anchor
int anchor)

public void Sama seperti drawString, kecuali ini


drawSubstring(String str, hanya akan menggambar substring dari
int offset, offset (berbasis nol) dengan panjang
int len, length.
int x,
int y,
int anchor)
public void Menggambar karakter dengan warna dan
drawChar(char character, huruf yang tersedia
int x,
int y,
int anchor)

public void Menggambar karakter dalam data array


drawChars(char[] data, karakter, dimulai dari indeks offset
int offset, dengan
int length, panjang length
int x,
int y,
int anchor)

1.3 Menggambar garis


Satu-satunya metode grafik untuk menggambar garis didefinisikan
sebagai: public void drawLine(int x1, int y1, int x2, int y2) Metode ini
menggambar sebuah garis menggunakan warna yang tersedia dan
coretan antara koordinat (x1,y1) dan (x2,y2).

1.4 Menggambar kotak

Metode grafik untuk menggambar kotak adalah :

public void drawRect(int x, int y, int width, int height)


public void drawRoundRect(int x, int y, int width, int height, int
arcWidth, int arcHeight)
public void fillRect(int x, int y, int width, int height)
public void fillRoundRect(int x, int y, int width, int height, int
arcWidth, int arcHeight).
Metode drawRect() menggambar sebuah kotak dengan pojok kiri atas
pada koordinat (x,y) dan luas area (width+1 x height+1). Parameter yang
sama ada bersama drawRoundRect(). Parameter tambahan arcWidth dan
arcHeight adalah diameter horisontal dan vertikal dari busur dari keempat
sudut. Jika Anda akan mengenali, definisi drawRect dan drawRoundRect
menetapkan lebar dari kotak yang digambar pada layar adalah dengan
width+1 dan tingginya dengan height+1. Hal ini sangat tidak intuitif, tetapi
seperti itulah spesifikasi MIDP menggambarkan metode ini. Untuk meng-
agravate tidak konsistensi dari “off-byone” ini, metode fillRect dan
fillRoundRect hanya mengisi sebuah area kotak (width x height). Anda akan
melihat ketidakcocokan ini jika anda memasukkan parameter yang sama
untuk drawRect dan fillRect (dan drawRoundRect vs fillRoundRect). Sisi
kanan dan bawah dari kotak digambar oleh kepalsuan drawRect di luar area
yang diisi oleh fillRect.

4.4.9 Menggambar Sudut


Metode untuk menggambar bundar atau eclips adalah :
public void drawArc(int x, Menggambar arc dengan pusat pada (x,y)
int y, dan dimensi (width+1 x height+1). Arc
int width, digambar mulai dari startAngle dan extend
int height, untuk derajat arcAngle. 0 derajat terletak
int startAngle, pada jarum jam 3.
int arcAngle)

public void fillArc(int x, Mewarnai bidang bundar dan eclips yang


int y, telah dibuat dengan warna yang tersedia.
int width,
int height,
int startAngle,
int arcAngle)
BAB II

HASIL PRAKTIKUM DAN PEMBAHASAN

LOW LEVEL USER INTERFACE

HELLO JENI

//Nama: Rudy Salman Akbar Alfarisy

//NPM : 1083152

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class HelloJENI extends MIDlet {

private Display display;

HelloCanvas1 canvas;

public void startApp() {

if(display == null){

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);

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("RUDY SALMAN AKBAR


ALFARISY",getWidth()/2,getHeight()/2,Graphics.TOP | Graphics.HCENTER );

g.setColor(0,0,255);

Font font = g.getFont();

g.drawString("TEKNIK
INFORMATIKA",getWidth()/2,getHeight()/2+font.getHeight(),Graphics.TOP |
Graphics.HCENTER);

public void commandAction(Command c, Displayable d){

if(c == exitCommand){

jeni.Quit();

}
Garis Warna

//Nama: Rudy Salman Akbar Alfarisy

//NPM : 1083152

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class GarisWarna extends MIDlet {

private Display display;

HelloCanvas2 canvas;

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);

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();

}
Kotak

//Nama: Rudy Salman Akbar Alfarisy

//NPM : 1083152

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class Kotak extends MIDlet {

private Display display;

HelloCanvas3 canvas;

public void startApp() {

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);

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();

}
Sudut

//Nama: Rudy Salman Akbar Alfarisy

//NPM : 1083152

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class Sudut extends MIDlet {

private Display display;

HelloCanvas4 canvas;

public void startApp() {

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);

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();

}
HelloCanvasMIDlet

//Nama: Rudy Salman Akbar Alfarisy

//NPM : 1083152

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class HelloCanvasMIDlet extends MIDlet {

private Display display;

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);

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();

}
LATIHAN di LAB

//Nama: Rudy Salman Akbar Alfarisy

//NPM : 1083152

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class Latihan_02 extends MIDlet implements CommandListener{

private Display tampil;

private Command k = new Command("Keluar",Command.EXIT,1);

private Command o = new Command("Ok",Command.EXIT,1);

public Latihan_02(){

tampil=Display.getDisplay(this);

public void startApp(){

TextBox tb = new TextBox("Latihan","rudy handsome.............!!!!!!!",256,0);

tb.addCommand(k);

tb.addCommand(o);

tb.setCommandListener(this);

tampil.setCurrent(tb);

}
public void pauseApp(){

public void destroyApp(boolean unconditional){

public void v_keluar(){

TextBox tb = new TextBox("Keluar","saya keluar dari aplikasi",256,0);

tb.addCommand(k);

tb.setCommandListener(this);

tampil.setCurrent(tb);

public void ok_siap(){

TextBox tb = new TextBox("Latihan","saya Menekan tombol Ok",256,0);

tb.addCommand(o);

tb.setCommandListener(this);

tampil.setCurrent(tb);

public void commandAction(Command c, Displayable d){

if(c==k)

v_keluar();
}

else if (c==o)

ok_siap();

BAB III
KESIMPULAN
3.1Kesimpulan

Adapun kesimpulan yang dapat diperoleh berdasarkan hasil pembahasan


dan praktikum, yaitu :
 Di dalam Low Level Interface juga dikenal teks, gambar, garis, kotak,
dan sudut , Menentukan warna, huruf, dan coretan untuk operasi
menggambar ,Memahami dan menggunakan class Canvas dan Graphic
 Di dalam Low Level Interface mendukung dari proses menggambar.
Juga terdapat class Graphic, dimana memiliki metode untuk
menggambar garis, kotak, sudut, dan teks. Kita juga akan membahas
huruf, warna dan gambar.
 Mengetahui perbedaan high UI dan low UI.

You might also like