Anda di halaman 1dari 21

DISCLAIMER

Seluruh dokumen E-Trik di dalam CD ini dapat digunakan


dan disebarkan secara bebas untuk tujuan belajar bukan
komersial (non-profit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright
yang disertakan dalam dokumen. Tidak diperbolehkan
melakukan penulisan ulang, kecuali mendapatkan ijin
tertulis terlebih dahulu dari Penerbit Maxikom.
E-Trik JAVA

Java Mobile

IRAWAN
e-mail : irawan_cyber@yahoo.com.sg

Penerbit Maxikom
Jl. Residen H. Abdul Rozak No. 33 B5-B6
Palembang 30114.
e-mail: maxi@maxikom.co.id
Fax. (0711) 717598

www.maxikom.co.id

1
Java Mobile
I Sekilas Tentang Java Mobile

Java Mobile biasa dikenal dengan istilah J2ME (Java 2 MicroEdition)


merupakan salah satu bagian dari paket pemrograman Java. Paket
pemrograman Java untuk saat ini pada umumnya terbagi tiga, yaitu :

• Java 2 Enterprise Edition (J2EE).


Paket ini digunakan pada hardware yang mempunyai spesifikasi
dan memori yang besar seperti pada komputer server.

• Java 2 Standard Edition (J2SE).


Paket J2SE digunakan pada komputer desktop.

• Java 2 MicroEdition (J2ME).


Paket J2ME digunakan pada perangkat keras yang memiliki memori
kecil sperti ponsel, PDA dan sebagainya.

J2ME merupakan superset dari J2SE, yang artinya Java API yang ada di
J2ME sebagian diadopsi dari Java API J2SE. Jika pada J2SE menggunakan
JVM (Java Virtual Machine) sebagai Interprenternya, lain halnya pada
J2ME yang menggunakan Kilo Virtual Machine (KVM) sebagai
interprenternya. Berdasarkan spesifikasi perangkat kerasnya J2ME memiliki
2 macam konfigurasi yaitu CLDC (Connected Limited Device Configuration)
dan CDC (Connected Device Configurations). Perbedaannya dapat dilihat
pada Gambar 1.

Gambar 1 Perbedaan CLDC dan CDC

2
Java Mobile Copyright © Maxikom, 2007
Mungkin sebagian kita telah mengenal Applet sebagai aplikasi Java yang
berjalan pada Web Browser di Internet. Sedangkan untuk aplikasi pada
paket J2ME diberi nama MIDlet.

II Membuat Aplikasi Sederhana

Pada E-Trik ini akan membahas tentang bagai mana membuat Aplikasi J2ME
sederhana dengan menggunakan NetBeans IDE 5.5 dan Netbeans Mobility
Pack for CLDC/MIDP. Netbeans Mobility Pack for CLDC/MIDP merupakan
program tambahan(Add-on) untuk NetBeans 5.5 jika kita ingin membuat
aplikasi berbasis J2ME. Program NetBeans 5.5 dan Add-on nya bisa anda
download di http://www.netbeans.org. Pada contoh berikut kita akan
membuat 2 aplikasi berbasis J2ME, yaitu aplikasi grafik dan aplikasi SMS
yang berada dalam satu Project.

A Membuat Program.

1. Sebelum membuat program Java, jangan lupa untuk menginstall JRE


dan JDK agar program Java bisa dijalankan pada Windows anda.
Dalam pembahasan ini kita akan menggunakan JRE dan JDK versi
1.6.0 yang bisa anda download di http://www.java.com.

2. Buka program NetBeans IDE anda klik Tombol pada


Windows Taskbar. Kemudian klik Programs | NetBeans 5.5 |
NetBeans IDE, lihat Gambar 2.

3 4

Gambar 2 Membuka Aplikasi NetBeans IDE 5.5

3
Java Mobile Copyright © Maxikom, 2007
3. Kemudian kita akan membuat Project baru dengan nama
AplikasiMobile klik Menu File | New Project. Lihat Gambar 3.

1
2

Gambar 3 Membuat Project

4. Setelah muncul kotak dialog New Project, pilih Categories Mobile


kemudian pada kotak Projects: pilih MobileApplication. Kemudian
klik Tombol . Lihat Gambar 4.

2. Pilih Mobile
Application
1. Pilih Mobile

3. Klik Next

Gambar 4 Memilih Project


4
MobileApplication

Java Mobile Copyright © Maxikom, 2007


5. Setelah itu beri nama Project tersebut dengan nama MobileApplication,
lalu tentukan lokasi file Project akan disimpan dengan mengklik Tombol
. Jangan lupa untuk menonaktifkan CheckList pada

Create Hello MIDlet .Kemudian klik Tombol . Lihat


Gambar 5.

1. Beri nama
“MobileApplication”
2. Tentukan lokasi
penyimpanan file

3. Nonaktifkan

4. Klik Finish

Gambar 5 Menentukan Nama dan Lokasi Project


6. Kemudian klik kanan pada jendela Project | New | MIDlet. Setelah
tampil jendela dialog New File, beri nama MIDlet dengan nama
MIDletGrafik. Lalu klik Tombol . Lihat gambar 6.

1. Beri nama
“MIDletGrafik”

2. Klik Finish

Gambar 6 Membuat MIDletGrafik

5
Java Mobile Copyright © Maxikom, 2007
7. Jika sudah maka tampilan akan terlihat seperti Gambar 7.

Jendela Kode

Gambar 7 Tampilan MIDletGrafik

8. Pada Jendela Kode ketikkan kode berikut ini.


1 import javax.microedition.midlet.*;
2 import javax.microedition.lcdui.*;
3 import java.util.Random;
4 public class MidletGrafik extends MIDlet {
5 private Command Keluar;
6 private Display Layar;
7 public MidletGrafik() {
8 Layar = Display.getDisplay(this);
9 }
10 public void startApp() {
11 Acak TampilLayar=new Acak(this);
12 Layar.setCurrent(TampilLayar);
13 }
14 public void pauseApp() {
15 }
16 public void destroyApp(boolean unconditional) {
17 }
18 }
19 class Acak extends Canvas implements Runnable {
20 public int Lebar=this.getWidth();
21 public int Tinggi=this.getHeight();
22 public MIDlet Tampilan;
23 public Image Gambar;

6
Java Mobile Copyright © Maxikom, 2007
24 public Random ProsesAcak;
25 int Jumlah=0;
26 public Acak(MIDlet mid) {
27 this.Tampilan=Tampilan;
28 ProsesAcak=new Random(255);
29 Gambar=Image.createImage(Lebar,Tinggi);
30 Thread Proses=new Thread(this);
31 Proses.start();
32 }
33 public void createpic(){
34 int red,green,blue;
35 Graphics Garis=Gambar.getGraphics();
36 for (int i=0;i<500;i++){
37 red=Math.abs(ProsesAcak.nextInt()
38 % (255));
39 green=Math.abs(ProsesAcak.nextInt()
40 % 255);
41 blue=Math.abs(ProsesAcak.nextInt()
42 % 255);
43 Garis.setColor(red,green,blue);
44 Garis.drawLine(Math.abs(ProsesAcak.
45 nextInt()%Lebar),
46 Math.abs(ProsesAcak.nextInt()
47 %Tinggi),
48 Math.abs(ProsesAcak.nextInt()
49 %Lebar),
50 Math.abs(ProsesAcak.nextInt()
51 %Tinggi));
52 };
53 }
54 public void run(){
55 while (true){
56 createpic();
57 this.repaint();
58 try{
59 Thread.sleep(500);
60 }catch(Exception e){
61 }
62 }
63 }
64 public void paint (Graphics g){
65 g.drawImage(Gambar,0,0,0);
66 }
67 public void ClearScreen(Graphics g){

7
Java Mobile Copyright © Maxikom, 2007
68 g.setColor(0,0,0);
69 g.fillRect(0,0,Lebar,Tinggi);
70 };
71 }

Keterangan :
- Baris 1-3 merupakan fungsi Java API yang akan kita gunakan untuk memanggil
kompenen-komponen J2ME.
- Baris 4-18 mendeklarasikan class MidletGrafik dan mendefinisikan Method-
Method dalam class MidletGrafik.
- Baris 19-25 mendeklarasikan class Acak dalam class MidletGrafik kemudian
mendefiniskan Variabel-Variabel dalam class Acak untuk tampilan aplikasi.
- Baris 26-32 kode-kode Constructor pada class Acak untuk menampilkan grafik
secara acak.
- Baris 33-53 kode-kode yang berfungsi membuat logika grafik dalam format warna
RGB secara acak dan berulang-ulang.
- Baris 54-66 kode-kode yang berfungsi untuk menampilkan grafik.
- Baris 67-70 kode-kode yang berfungsi untuk membersihkan layar.
- Baris 71 akhir dari blok kode class Acak.

9. NetBeans secara otomatis akan menampilkan bentuk struktur kode


program yang kita ketikkan pada Jendela Kode. Lihat gambar 8.

Methods dan Construc-


tors yang digunakan.

Variabel-variabel yang
didefinisikan dalam Class

Gambar 8 Tampilan Struktur Kode Program

8
Java Mobile Copyright © Maxikom, 2007
10. Selanjutnya kita akan membuat Aplikasi SMS. Ulangi langkah pada
Gambar 6, pada bagian MIDlet Name beri nama : MIDletSMS. Jika
sudah akan terlihat seperti Gambar 9.

MIDletSMS

Jendela Kode

Gambar 9 Tampilan MIDletSMS

11. Sebelum mengetikkan kode program, kita harus melakukan setting


fungsi JAPI yang nantinya akan kita gunakan pada aplikasi ini. Caranya
klik-kanan File Project MobileApplication | Properties. Lihat
Gambar10.
1. Klik kanan

2. Klik Properties

Gambar 10 Membuka Properties Project

9
Java Mobile Copyright © Maxikom, 2007

12. Setelah muncul jendela Project configuration, pada bagian Applica

tion Descriptor pilih Attributes, kemudian klik Tombol .


Lihat Gambar 11.

1. Pilih
Application
Descriptor

2. Pilih
Attributes

3. Klik Add

Gambar 11 Menambah Attributes

13. Pada jendela Add Attribute, di bagian Name ketikkan PortSMS


serta pada bagian Valuenya di set 50000. Set Placement menjadi
JADand Manifest kemudian klik Tombol . Lihat
Gambar12.

1. Beri Nama PortSMS

2. Memasukkan Value

3. Menentukan Placement

4. Klik OK

Gambar 12 Memasukkan Nilai Attribute

10
Java Mobile Copyright © Maxikom, 2007

14. Kemudian pada bagian Application Descriptor pilih API Permissions,

kemudian klik Tombol . Lihat Gambar 13.


1. Pilih
Application
Descriptor

3. Klik Add

2. Pilih API Permissions

Gambar 13 Menambah API

15. Pada jendela API Package, pilih komponen API sebagai berikut :
- javax.microedition.io.PushRegistry
- javax.microedition.io.Connector.sms
- javax.wireless.messaging.sms.send
( Catt : Masukkan satu-persatu)
Kemudian klik Tombol . Lihat Gambar 14.
1. Pilih komponen
API.

2. Klik OK

Gambar 14 Memasukkan Komponen API

11
Java Mobile Copyright © Maxikom, 2007

16. Jika sudah maka hasil penambahan komponen pada Attributes dan
API Permissions akan terlihat seperti Gambar 15.
Penambahan pada
Attributes

Penambahan pada
API Permissions

Gambar 15 Hasil Penambahan Komponen

17. Pada Jendela Kode MIDletSMS ketikkan kode berikut ini.


1 import javax.microedition.midlet.*;
2 import javax.microedition.io.*;
3 import javax.microedition.lcdui.*;
4 import javax.wireless.messaging.*;
5 import java.io.IOException;
6 public class MidletSMS extends MIDlet
7 implements CommandListener {
8 Command exitCommand = new Command(
9 "Keluar", Command.EXIT, 2);
10 Command okCommand = new Command(
11 "OK", Command.OK, 1);
12 Display display;
13 String smsPort;
14 TextBox destinationAddressBox;
15 Alert errorMessageAlert;
16 Alert sendingMessageAlert;
17 KirimPesan sender;
18 Displayable resumeScreen = null;
19 public MidletSMS() {
20 smsPort = getAppProperty("PortSMS");
21 display = Display.getDisplay(this);
22 destinationAddressBox = new TextBox

12
Java Mobile Copyright © Maxikom, 2007

23 ("Masukkan Nomor HP Tujuan ?",


24 null, 256, TextField.PHONENUMBER);
25 destinationAddressBox.addCommand(
26 exitCommand);
27 destinationAddressBox.addCommand(
28 okCommand);
29 destinationAddressBox.
30 setCommandListener(this);
31 errorMessageAlert = new Alert(
32 "SMS", null, null, AlertType.ERROR);
33 errorMessageAlert.setTimeout(5000);
34 sendingMessageAlert = new Alert(
35 "SMS", null, null, AlertType.INFO);
36 sendingMessageAlert.setTimeout(5000);
37 sendingMessageAlert.
38 setCommandListener(this);
39 sender = new KirimPesan(
40 smsPort, display, destinationAddressBox,
41 sendingMessageAlert);
42 resumeScreen = destinationAddressBox;
43 }
44 public void startApp() {
45 display.setCurrent(resumeScreen);
46 }
47 public void pauseApp() {
48 resumeScreen = display.getCurrent();
49 }
50 public void destroyApp(boolean unconditional) {
51 }
52 public void commandAction(Command c, Displayable s) {
53 try {
54 if (c == exitCommand || c == Alert.DISMISS_COMMAND) {
55 destroyApp(false);
56 notifyDestroyed();
57 } else if (c == okCommand) {
58 promptAndSend();
59 }
60 } catch (Exception ex) {
61 ex.printStackTrace();
62 }
63 }
64 private void promptAndSend() {
65 String address = destinationAddressBox.getString();
66 if (!MidletSMS.isValidPhoneNumber(address)) {

13
Java Mobile Copyright © Maxikom, 2007
67 errorMessageAlert.setString(
68 "Nomor Telepon Tdak DiKenal");
69 display.setCurrent(errorMessageAlert,
70 destinationAddressBox);
71 return;
72 }
73 String statusMessage = "Mengirim Pesan Ke : "
74 + address + "...";
75 sendingMessageAlert.setString(statusMessage);
76 sender.promptAndSend("sms://" + address);
77 }
78 private static boolean isValidPhoneNumber(
79 String number) {
80 char[] chars = number.toCharArray();
81 if (chars.length == 0) {
82 return false;
83 }
84 int startPos = 0;
85
86 if (chars[0] == '+') {
87 startPos = 1;
88 }
89 for (int i = startPos; i < chars.length; ++i) {
90 if (!Character.isDigit(chars[i])) {
91 return false;
92 }
93 }
94 return true;
95 }
96 }
97 class KirimPesan
98 implements CommandListener, Runnable {
99 Command sendCommand = new Command(
100 "Kirim", Command.OK, 1);
101 Command backCommand = new Command(
102 "Kembali", Command.BACK, 2);
103 Display display;
104 String smsPort;
105 String destinationAddress;
106 TextBox messageBox;
107 Displayable backScreen;
108 Displayable sendingScreen;
109 public KirimPesan(String smsPort, Display display,
110 Displayable backScreen, Displayable sendingScreen) {

14
Java Mobile Copyright © Maxikom, 2007
111 this.smsPort = smsPort;
112 this.display = display;
113 this.destinationAddress = null;
114 this.backScreen = backScreen;
115 this.sendingScreen = sendingScreen;
116 messageBox = new TextBox(
117 "Ketik Pesan", null, 65535, TextField.ANY);
118 messageBox.addCommand(backCommand);
119 messageBox.addCommand(sendCommand);
120 messageBox.setCommandListener(this);
121 }
122 public void promptAndSend(String destinationAddress)
123 {
124 this.destinationAddress = destinationAddress;
125 display.setCurrent(messageBox);
126 }
127 public void commandAction(Command c, Displayable s) {
128 try {
129 if (c == backCommand) {
130 display.setCurrent(backScreen);
131 } else if (c == sendCommand) {
132 display.setCurrent(sendingScreen);
133 new Thread(this).start();
134 }
135 } catch (Exception ex) {
136 ex.printStackTrace();
137 }
138 }
139 public void run() {
140 String address = destinationAddress + ":" + smsPort;
141 MessageConnection smsconn = null;
142 try {
143 smsconn = (MessageConnection)
144 Connector.open(address);
145 TextMessage txtmessage = (TextMessage)
146 smsconn.newMessage(
147 MessageConnection.TEXT_MESSAGE);
148 txtmessage.setAddress(address);
149 txtmessage.setPayloadText(
150 messageBox.getString());
151 smsconn.send(txtmessage);
152 } catch (Throwable t) {
153 System.out.println("Pesan Terkirim");
154 t.printStackTrace();

15
Java Mobile Copyright © Maxikom, 2007
155 }
156 if (smsconn != null) {
157 try {
158 smsconn.close();
159 } catch (IOException ioe) {
160 System.out.println("Selesai");
161 ioe.printStackTrace();
162 }
163 }
164 }
165 }

Keterangan :
- Baris 1-5 merupakan fungsi Java API yang akan kita gunakan untuk memanggil
kompenen-komponen J2ME.
- Baris 6-18 mendeklarasikan class MIDletSMS sebagai MIDlet, beserta Com
mand dan Variabel-Variabelnya.
- Baris 19-43 kode-kode Constructor MidletSMS yang berisikan logika-logika
yang akan dipakai pada program.
- Baris 44-63 kode-kode Method yang berisikan pengaturan fungsi-fungsi dan
Variabel-Variabel yang akan dipanggil ketika berinteraksi dengan menu dalam
program.
- Baris 64-77 kode-kode yang berisikan logika program untuk menampilkan dialog
dalam menu program..
- Baris 78-96 kode-kode yang berisikan logika program untuk memeriksa jumlah
digit nomor telepon yang dimasukkan.
- Baris 97-108 membuat dan mendeklarasikan class KirimPesan beserta Variabe-
Variabel dan Commandnya di dalam MIDletSMS. Class KirimPesan nantinya
akan berisi logika-logika yang berfungsi untuk melakukan pengiriman pesan.
- Baris 109-121 merupakan Constructor class.KirimPesan yang mendeklarasikan
Variabel dan Command. yang akan digunakan.
- Baris 122-161 kode-kode logika yang terdapat pada Method-Method Class
kirim pesan yang berfungsi untuk melakukan pengiriman pesan.
- Baris 162-165 akhir dari class dan blok kode.

B Menjalankan Program.

1. Agar kode-kode yang telah kita ketikkan dapat dieksekusi, maka yang
harus kita lakukan berikutnya adalah Compiling. Untuk mleakukan
Compile pada kode program di NetBeans anda bisa menekan Tombol
F11 pada keyboard, atau dengan mengklik Menu
pada Menu Build di Toolbar. Lihat Gambar 16.

16
Java Mobile Copyright © Maxikom, 2007

Klik Menu : Build |


Build Main Project

Gambar 16 Build Project

2. Jika pada proses Compile anda tidak ada masalah, maka Status pada
jendela OutPut akan terlihat seperti Gambar 17.

Status Compile

Gambar 17 Status Compile

3. Setelah di-Compile, maka alngkah selanjutnya adalah mengeksekusi


program. Untuk mengeksekusi program anda dapat menekan Tombol
F6 pada keyboard atau mengklik menu pada Menu
Run di Toolbar. Lihat Gambar 18.

Klik Menu : Run |


Run Main Project

Gambar 18 Run Project


17
Java Mobile Copyright © Maxikom, 2007
4. Setelah mengklik Menu Run maka program akan dieksekusi dan
ditampilkan dalam bentuk Mobile Emulator. Cara menjalankan
Emulatornya sama seperti anda menggunakan Handphone. Lihat
Gambar 19.

Gambar 19 Tampilan Emulator Program

5. Untuk menjalankan MIDletGrafik pilih Menu MIDletGrafik dengan


mengklik Tombol pada Emulator. Kemudian klik
yang ada di tengah-tengah tombol. Tampilan program
MIDletGrafik akan terlihat seperti Gambar 20.

Pilih MIDletGrafik,
lalu klik Select

Gambar 20 Tampilan Program MIDletGrafik


18
Java Mobile Copyright © Maxikom, 2007
6. Untuk menjalankan MIDletSMS sama seperti menjalankan
MIDletGrafik pada langkah nomor 5. Kemudian akan muncul
menu untuk memasukkan nomor Ponsel yang dituju. Masukkan
nomor ponsel tujuan dengan mengklik langsung tombol di keypad
Emulator, atau anda bisa gunakan tombol-tombol angka yang ada
di keyboard. Kemudian klik Tombol di bawah menu OK. Lihat
Gambar 21.

1. Masukkan nomor tujuan

2. Klik Tombol

Gambar 21 Masukkan Nomor Ponsel Tujuan

7. Kemudian ketikkan pesan yang ingin anda kirim. Setelah itu klik
Tombol di bawah menu Kirim. Lihat Gambar 22.

1.Ketikkan pesan

2. Klik Tombol

Gambar 21 Masukkan Nomor Ponsel Tujuan


19
Java Mobile Copyright © Maxikom, 2007
8. Kemudian program akan mengirim pesan anda. Jika gagal maka akan
muncul pesan error, jika terkirim tampilan akan kembali ke menu
awal. Lihat Gambar 23.

Gambar 23 Mengirim Pesan

Catatan:
- Anda bisa mencoba aplikasi ini pada ponsel anda. Transfer File yang
ada di “Folder Project”\dist\”Nama Project”.jar ke Ponsel,
kemudian Install aplikasi tersebut.
- Kedua aplikasi ini hanya pernah di coba pada Ponsel merk Nokia,
belum pernah di coba pada Ponsel merk lain.
- Aplikasi ini pernah dicoba pada Ponsel Nokia seri 6600, hasilnya
aplikasi bisa berjalan tanpa ada masalah.
- Aplikasi ini tidak cocok dengan Ponsel nokia seri N-Gage, muncul
pesan Error pada saat instalasi.

20

Anda mungkin juga menyukai