Modul 1 J2ME

23
Bab I Lingkungan Pengembangan Eclipse 1.1. Tujuan 1. Memahami penggunaan TextBox 2. Memahami penambahan Ticker pada TextBox 3. Memahami penggunaan Form 4. Memahami penambahan Ticker pada Form 5. Memahami penambahan gambar pada Form 1.2. Alat & Bahan 2. Personal Computer (PC) / Notebook. 3. jdk-6u24-windows-i586. 4. Eclipse-SDK-3.4.1-win32. 5. Plugin J2ME for Eclipse 6. Notepad / Notepad++ 1.3. Dasar Teori 1.3.1. Pengenalan J2ME J2ME (Java 2 Micro Edition) merupakan subset dari J2SE yang ditujukan untuk implementasi pada peralatan embeded system dan handheld yang tidak mampu mendukung secara penuh implementasi menggunakan J2SE. Gambar 1.1 Logo J2ME

description

jgj

Transcript of Modul 1 J2ME

Page 1: Modul 1 J2ME

Bab I

Lingkungan Pengembangan Eclipse

1.1. Tujuan

1. Memahami penggunaan TextBox

2. Memahami penambahan Ticker pada TextBox

3. Memahami penggunaan Form

4. Memahami penambahan Ticker pada Form

5. Memahami penambahan gambar pada Form

1.2. Alat & Bahan

2. Personal Computer (PC) / Notebook.

3. jdk-6u24-windows-i586.

4. Eclipse-SDK-3.4.1-win32.

5. Plugin J2ME for Eclipse

6. Notepad / Notepad++

1.3. Dasar Teori

1.3.1. Pengenalan J2ME

J2ME (Java 2 Micro Edition) merupakan subset dari J2SE yang

ditujukan untuk implementasi pada peralatan embeded system dan

handheld yang tidak mampu mendukung secara penuh implementasi

menggunakan J2SE.

Gambar 1.1 Logo J2ME

Page 2: Modul 1 J2ME

J2ME adalah teknologi Java yang diperuntukkan perngkat-perngakat

kecilconsumer device , terutama wireless. Bebrapa

perangkat wireless antara lain PC, PDA, communicator, embedded

device, smart card dan ponsel. Teknologi Java mungkin merupakan satu-

satunya cara memprogram beberapa perangkat, berbagi logic antara

perangkat dan server, pengantaran aplikasi secara dinamis, program yang

kompak, lingkungan pengembangan yang aman dan cepat. J2ME

memungkinkan perangkat lunak dapat di-download perangkat sekaligus

memungkinkan layanan yang dapat disesuaikan di beragam perangkat.

J2ME menyediakan platform standar untuk pengembangan

perangkat wireless. J2ME terdiri atas perangkat-perangkat komponen

sebagai berikut:

1. Java Virtual Machine (JVM), komponen untuk menjalankan program-

program Java pada emulator atau handheld device.

2. Java Application Programming Interface (API), merupakan

kumpulan library untuk menjalankan dan mengembangkan program

Java pada Handheld Devices.

Tools lain untuk mengembangkan Java, semacam emulator Java

Phone, Emulator Nokia, EmulatorSiemens dan Emulator Motorola.

1.3.2. Pengenalan Eclipse

Eclipse adalah sebuah IDE (Integrated Development Environment)

untuk mengembangkan perangkat lunak dan dapat dijalankan di semua

platform (platform-independent). Berikut ini adalah sifat dari Eclipse:

o Multi-platform: Target sistem operasi Eclipse adalah Microsoft

Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.

o Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman

Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis

bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP,

dan lain sebagainya.

o Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse

pun bisa digunakan untuk aktivitas dalam siklus pengembangan

Page 3: Modul 1 J2ME

perangkat lunak, seperti dokumentasi, test perangkat lunak,

pengembangan web, dan lain sebagainya.

Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis

dan open source, yang berarti setiap orang boleh melihat kode pemrograman

perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya

populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna

dengan komponen yang dinamakan plug-in.

1.3.3. TextBox

TextBox adalah type screen yang paling sederhana yang memungkinkan

user untuk memasukkan string. TextBox diciptakan dari 4 parameter yaitu:

public TextBox(String title, String text, int maxSize,int

constraints)

dimana:

title digunakan untuk judul dari tampilan screen

Gambar 1.2 Judul pada J2ME

text isi dari string

maxsize maksimal karakter yang bisa diisikan

constraints bisa digunakan untuk membatasi input dari user.

Konstanta dari class TextField digunakan untuk menspesifikasikan type

input yang dibutuhkan. Konstanta tersebut meliputi:

o ANY: sembarang input

o NUMERIC:dibatasi hanya untuk angka

o DECIMAL:hanya dibatasi untuk pecahan

o PHONENUMBER:hanya dibatasi untuk nomor telepon

Page 4: Modul 1 J2ME

o EMAILADDR:input harus berupa emailaddress

o URL: input harus berupa web address

Contoh:

Displayable d=new TextBox(“Email”,””,64,TextField.EMAILADDR)

1.3.4. Ticker

Ticker adalah kalimat yang bergerak diatas layar. Contoh penggunaan ticker

adalah:

Ticker t=new Ticker(“J2ME”);

f.setTicker(t);

Gambar 1.3 Teks Berjalan pada J2ME

1.3.5. Form

Form adalah screen yang terdiri dari user interface control yang disebut items.

Salah satu cara untuk menciptakan Form yang dilengkapi dengan judul(title)

adalah:

Public Form(String title)

Form adalah koleksi dari item , dan kita dapat melewatkan semua koleksi item

ini pada konstruktor Form:

public Form(String title,Item[] items)

Gambar 1.4 Form pada J2ME

Page 5: Modul 1 J2ME

1.3.6. Choice Group

Item Choicegroup merupakan group dari selectable choice.

Sebuah choice boleh berisi sebuah text, gambar atau kedua-duanya.

Choice boleh EXCLUSIVE (hanya satu pilihan yang dapat dipilih) atau

MULTIPLE (banyak pilihan yang dapat dipilih pada suatu waktu). Jika

ChoiceGroup bertipe POPUP, hanya satu choice yang ditampilkan. Popup

selection akan ditampilkan ketika item ini dipilih. Dari popup seleksi ini,

user diperbolehkan memilih pilihannya. Choice yang ditampilkan selalu

choice yang dipilih. GetSelectedIndex() mengembalikan nilai index pada

element dari ChoiceGroup yang dipilih. GetSelectedFlags()

mengembalikan sebuah array dariboolean yang merespon elemen dari

Choicegroup.isSelected(int index) mengembalikan state dari elemen yang

diberikan oleh posisi index.

Gambar 1.5 Choice Group J2ME

1.3.7. Text Field

TextField merupakan Item dimana user dapat memasukan encode.

Beberapa batasan exclusive yang dapat di-set yaitu:

TextField.ANY

TextField.EMAILADDR

TextField.NUMERIC

TextField.PHONENUMBER

Page 6: Modul 1 J2ME

TextField.URL

TextField.DECIMAL

Masukan tersebut juga dapat memiliki macam-macam modifikasi:

TextField.PASSWORD

TextField.UNEDITABLE

TextField.SENSITIVE

TextField.NON_PREDICTIVE

TextField.INITIAL_CAPS_WORD

TextField.INITIAL_CAPS_SENTENCE

Modifikasi dapat di-set dengan menggunakan bit-wise OR (|) operator

(atau toggled menggunakan bit-wise XOR operator ^) pada input

constraint. Sebagai konsekuensinya,modifikasi dapat diperoleh dari

pengembalian nilai dari getConstraint() bit-wise operator AND(&). Sejak

nilai modifikasi juga dikembalikan oleh getConstraint(), Masukan main

constraint.

Gambar 1.6 Teks Field J2ME

1.3.8. 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

Page 7: Modul 1 J2ME

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:

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

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.

A. 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

public static void createImage(String name)

public static void createImage(Image img)

public static void createImage(int width, int height)

Page 8: Modul 1 J2ME

String altText

Untuk memberikan alternatif teks string pada gambar.

int layout

Ada beberapa nilai layout yang bisa digunakan untuk parameter ini,

yaitu:

o ImageItem.LAYOUT_CENTER : gambar akan diatur pada posisi

tengah.

o ImageItem.LAYOUT_DEFAULT : gambar akan diatur pada

posisi standart.

o ImageItem.LAYOUT_LEFT : gambar akan diatur pada posisi

kiri.

o ImageItem.LAYOUT_RIGHT : gambar akan diatur pada posisi

kanan.

o ImageItem.LAYOUT_NEWLINE_AFTER : setelah gambar

dibuat akan diberikan sebuah baris baru.

o ImageItem.LAYOUT_ NEWLINE_BEFORE : sebelum gambar

dibuat akan diberikan sebuah baris baru.

Gambar 1.7 Menambahkan Gambar J2ME

1.4. Instalasi Wireless Toolkit

Apabila dalam komputer atau notebook belum diinstal JDK (Java

Development Kit) maka langkah pertama yang harus diambil adalah

Page 9: Modul 1 J2ME

menginstal JDK terlebih dahulu, setelah itu baru menginstall WTK. Berikut

langkah-langkah penginstal WTK.

Untuk aplikasi terpenting yang selanjutnya adalah menginstal WTK.

WTK adalah suatu aplikasi mesin virtual yang membantu kita untuk membuat

suatu program untuk platform berupa handphone yang berjenis J2ME. Seperti

langkah

1. Pertama, langsung double click setup WTK dan akan muncul window baru

lagi seperti ini, kemudianLangsung klik next saja

Gambar 1.8 Tampilan Awal Instalasi WTK

2. Accept jika menyetujui lisensinya dan akan melanjutkan setup.

Gambar 1.9 Tampilan Persetujuan Persyaratan

Page 10: Modul 1 J2ME

3. Disini anda akan diminta destinasi dari JDK yang telah kita install di

langkah yang pertama. Click Next.

Gambar 1.10 Tampilan Pengaturan Letak JVM

4. Jika diminta meletakkan hasil instalasi dari WTK yang kita install ini,

anda boleh meletakkannya selain di Drive C:\…..Lanjut click Next.

Gambar 1.11 Tampilan Pengaturan Letak WTK

Page 11: Modul 1 J2ME

5. Langsung click Next saja.

Gambar 1.12 Tampilan Pengaturan Letak direktori WTK

6. Disini jika ingin selalu mendapatkan update terbaru silahkan click Check

for Product Updates-nya saja tapi kalau tidak mau jangan di

click….Lanjut Click Next.

Gambar 1.13 Tampilan Permintaan untuk update WTK

7. Sebelum proses copy files atau inti dari install ini akan diberitahukan

dahulu settingan yang sudah anda atur tadi. Jika sudah sesuai dengan

keinginan anda langsung click Next aja.

Page 12: Modul 1 J2ME

Gambar 1.14 Tampilan Semua Pengaturan WTK

8. Proses intalasi sedang berjalan

Gambar 1.15 Tampilan Proses Penginstalan WTK

9. Proses instalasi selesai. Click Finish

Gambar 1.16 Tampilan Proses Penginstalan Complete

Page 13: Modul 1 J2ME

Sekarang aplikasi yang dibutuhkan siap untuk membuat program untuk

handphone. Untuk menjalankan wtk, klik 2x shotcut wtk atau klik start menu

pilih wtk. Maka tampilannya akan seperti gambar dibawah ini:

Gambar 1.17 Tampilan awal WTK 2.5.2

1.5. Instalasi Plugin J2ME di Eclipse

Untuk dapat menjalankan program J2ME pada Eclipse, perlu di instal

sebuah plugin yang khusus digunakan untuk memprogram J2ME. Untuk

plugin J2ME dapat dicari di situs resmi eclipse di www.eclipse.org. Agar

dapat menginstal plugin langkah pertama yang harus dilakukan adalah

mendownload plugin, kemudian simpan dalam direktori tertentu. Lalu

pastikan wtk sudah terinstal sebelumnya. Langkah-Langkah Memasang

plugin j2me di eclipse yaitu :

1. Pertama buka eclipse, kemudian pilih Help >> Software Updates. Setelah

masuk ke form Software Updates and Add ons, pilih tab Available

Software. Maka akan muncul tampilan seperti di bawah.

Gambar 1.18 Tampilan Software Update Eclipse

Page 14: Modul 1 J2ME

2. Kemudian klik add site, pilih archive

Gambar 1.19 Tampilan Add Site

3. Pilih direktori dimana plugin j2me tersimpan.

Gambar 1.20 Memilih direktori

4. Kemudian akan muncul EclipseME apabila plugin tersebut di load ke

eclipse.Untuk lebih jelasnya lihat seperti gambar dibawah ini.

Gambar 1.21 Memilih plugin Eclipse

Page 15: Modul 1 J2ME

5. Setelah itu klik install, langsung di next aja, bila ada agreement di accept

saja & jika disuruh restart lebih baik di restart saja.

Gambar 1.22 Tampilan “Lisence Agreement”

6. Setelah selesai direstart, buka eclipse kembali. Klik Window >>

Preferences >> J2ME >> Define Management.

Gambar 1.23 Tampilan Device Manager J2ME

7. Langkah terakhir adalah klik import, pilih dimana direktori wtk

tersimpan. Kemudian klik open, maka secara otomatis akan muncul

beberapa emulator yang digunakan saat running. Setelah selesai klik

finish.

Page 16: Modul 1 J2ME

Gambar 1.24 Tampilan Import Device

8. Setelah mengikuti langkah-langkah diatas maka eclipse siap untuk

menjalankan program j2me. Lalu agar program dapat di Run dengan

lancar walaupun ada sedikit error, dapat dilakukan dengan membuka

Preferences >> Java >> debug. Hilangkan tanda centang pada pilihan

suspend execution on uncaught eception & suspend execution on

compilation errors. Lalu untuk memperpanjang waktu timeout rubah

Debuger Timeout menjadi 15000 (dalam milisekon). Setelah itu kli ok.

Gambar 1.25 Tampilan Preference Eclipse

Dengan demikian eclipse sudah siap untuk menjalankan program-program

J2ME dengan lancar.

Page 17: Modul 1 J2ME

1.6. Membuat Program Menggunakan Eclipse

1.6.1. Menyisipkan gambar di J2ME

1. Klik new, pilih project, kemudian pilih J2ME

Gambar 1.26 Memilih Project J2ME

2. Masukan nama project, disini kita buat project bernama latihan. Lalu

memilih device, langsung di next saja.

Gambar 1.27 Memilih Device yang Digunakan

Page 18: Modul 1 J2ME

3. Setelah itu buka directori project latihan, didalamnya terdapat

subdirektori bernama src. Klik kanan pada src kemudian pilih class.

Gambar 1.28 Proses Membuat class baru

4. Isikan pakage image, nama class gambar lalu pilih finish

Gambar 1.29 Tampilan New Java Class

5. Kemudian ketikan soure code dibawah ini

Package image;

import javax.microedition.midlet.*;

Page 19: Modul 1 J2ME

import javax.microedition.lcdui.*;

import java.io.*;

public class gambar extends MIDlet {

public gambar() {

}

public void startApp() {

try {

Image gbr = Image.createImage("/arsenal.png");

Form form = new Form( "First Program" );

form.append(gbr);

form.append("Biodata Club\n");

form.append("Nama : Arsenal\n");

form.append("Lokasi : London Utara\n");

Display.getDisplay(this).setCurrent( form );

}

catch (IOException e) {}

}

public void pauseApp() {

}

public void destroyApp( boolean unconditional ) {

}

}

6. Run project tersebut dengan cara klik symbol Run atau ketik Ctrl+F11

7. Apabila Run sukses maka akan muncul tampilan Hello World di layar

emulator

Page 20: Modul 1 J2ME

Gambar 1.30 Tampilan Run program di Emulator

1.6.2. Membuat Teks Berjalan J2ME

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class TickerMidlet01 extends MIDlet implements

CommandListener {

private Form form;

private Display display;

private Ticker ticker;

private Command cmdKeluar;

public TickerMidlet01() {

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

ticker = new Ticker("Jadikan Lah aku Pacarmu");

form = new Form("Ticker");

form.setTicker(ticker);

form.addCommand(cmdKeluar);

form.setCommandListener(this);

}

public void startApp() {

display = Display.getDisplay(this);

display.setCurrent(form);

}

public void pauseApp() {

Page 21: Modul 1 J2ME

}

public void destroyApp(boolean unconditional) {

}

public void commandAction(Command c, Displayable d) {

if (c == cmdKeluar) {

destroyApp(false);

notifyDestroyed();

}

}

}

1.6.3. Membuat Teks Field Choice Group pada J2ME

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class TextFieldChoiceGroupTest extends MIDlet

implements CommandListener

{

private Display display;

private Form fmMain;

private Command cmExit;

private Command cmOK;

private TextField tfName;

private TextField tfPwd;

private TextField tfAge;

private ChoiceGroup cgGender;

private ChoiceGroup cgPrefs;

public TextFieldChoiceGroupTest()

{

display = Display.getDisplay(this);

tfName = new TextField("Name:", "", 20,

TextField.ANY);

tfPwd = new TextField("Password:", "", 8,

TextField.PASSWORD);

tfAge = new TextField("Age:", "", 2,

TextField.NUMERIC);

String items[] = {"M", "F"};

cgGender = new ChoiceGroup("Gender",

Choice.EXCLUSIVE, items, null);

cgPrefs = new ChoiceGroup("Hobi", Choice.MULTIPLE);

cgPrefs.append("Soccer", null);

cgPrefs.append("Tennis", null);

cgPrefs.append("Swimming", null);

cmExit = new Command("Exit", Command.EXIT, 1);

cmOK = new Command("OK", Command.ITEM, 2);

Page 22: Modul 1 J2ME

fmMain = new Form("");

fmMain.append(tfName);

fmMain.append(tfPwd);

fmMain.append(tfAge);

fmMain.append(cgGender);

fmMain.append(cgPrefs);

fmMain.addCommand(cmExit);

fmMain.addCommand(cmOK);

fmMain.setCommandListener(this);

}

public void startApp()

{

display.setCurrent(fmMain);

}

public void pauseApp()

{

}

public void destroyApp(boolean unconditional)

{

}

public void commandAction(Command c, Displayable s)

{

if (c == cmOK)

{

System.out.println("Your profile:");

System.out.println(" Name - " +

tfName.getString());

System.out.println(" Password - " +

tfPwd.getString());

System.out.println(" Jenis Kelamin - " +

(cgGender.getSelectedIndex()==0?"M":"F"));

System.out.println(" Hobi - ");

for (int i=0; i<cgPrefs.size(); i++)

{

if (cgPrefs.isSelected(i))

System.out.println(" " +

cgPrefs.getString(i));

}

}

else if (c == cmExit)

{

notifyDestroyed();

}

}

}

Page 23: Modul 1 J2ME

1.6.4. Membuat Program Menghitung Suhu dengan J2ME

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class Latihan extends MIDlet implements

CommandListener {

private Display display;

private Form form = new Form("Konversi suhu ºC ke ºF");

private Command submit = new Command("Submit",

Command.SCREEN, 1); //Untuk menu perintah submit

private Command exit = new Command("Exit", Command.EXIT, 1);

private int fare;

private String input;

private TextField textfield = new TextField("Masukkan

Suhu:", "", 30, TextField.ANY);

public Latihan() {

display = Display.getDisplay(this);

form.addCommand(exit);

form.addCommand(submit);

form.append(textfield);

form.setCommandListener(this);

}

public void startApp() {

display.setCurrent(form);

}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {

}

public void commandAction(Command c, Displayable d) {

if (c == submit) {

input = textfield.getString();

int cel =(Integer.parseInt(input));

fare = (int) ((cel * 1.8) + 32);

textfield.setString(fare + "º Farenheit ");

form.removeCommand(submit);

} else if (c == exit) {

destroyApp(false);

notifyDestroyed();

}

}

}