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
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.
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.
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.
3 4
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
2. Pilih Mobile
Application
1. Pilih Mobile
3. Klik Next
1. Beri nama
“MobileApplication”
2. Tentukan lokasi
penyimpanan file
3. Nonaktifkan
4. Klik Finish
1. Beri nama
“MIDletGrafik”
2. Klik Finish
5
Java Mobile Copyright © Maxikom, 2007
7. Jika sudah maka tampilan akan terlihat seperti Gambar 7.
Jendela Kode
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.
Variabel-variabel yang
didefinisikan dalam Class
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
2. Klik Properties
9
Java Mobile Copyright © Maxikom, 2007
1. Pilih
Application
Descriptor
2. Pilih
Attributes
3. Klik Add
2. Memasukkan Value
3. Menentukan Placement
4. Klik OK
10
Java Mobile Copyright © Maxikom, 2007
3. Klik Add
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
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
12
Java Mobile Copyright © Maxikom, 2007
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
2. Jika pada proses Compile anda tidak ada masalah, maka Status pada
jendela OutPut akan terlihat seperti Gambar 17.
Status Compile
Pilih MIDletGrafik,
lalu klik Select
2. Klik Tombol
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
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