1. Jalankan Sun Java Wireless Toolkit.
2. Buatlah sebuah project baru dengan memilih menu File -> New Project atau anda bisa mengklik langsung Tombol toolbar New Project.
3. Maka akan muncul kotak dialog yang akan meminta kita untuk mengisikan nama project dan nama kelas dari MIDlet yang akan kita buat. Sebagai contoh saya akan memberi nama project dengan nama sms_new dan nama kelas MIDlet dengan nama sms_new, seperti yang ditunjukan pada gambar berikut :
4. Setelah kita memilih tombol Create Project, toolkit mengizinkan kita untuk mengubah setting dari project yang kita buat, ganti pada target platform menjadi JTWI (Java Technology for the Wireless Industry), yang merupakan satu set jasa spesifikasi standar. berikut form yang akan ditampilkan:
5. Pilih tombol OK untuk mengakhiri dan anda akan melihat pesan yang ditampilkan pada panel toolkit, yang berisi teks berikut :
Creating project “sms_new”
Place Java source files in “C:\Documents and
Settings\andinipc\j2mewtk\2.5.2\apps\ProjHello\src”
Place java source files in“C:\Documents and Settings\j2mewtk\2.5.2\apps\sms_new\src”
Place application resource files in“C:\Documents and
Settings\j2mewtk\2.5.2\apps\sms_new\res”
Place application library files in “C:\Documents and
Settings\j2mewtk\2.5.2\apps\sms_new\lib“
Settings updated
Project settings saved
Berikut tampilan hasil pembuatan project sms_new :
Sampai disini, Sun Java Wireless Toolkit akan menyimpan projek tersebut ke dalam direktori sms_new dan ditempatkan di dalam direktori apps, yaitu direktori default dari tempat penyimpanan Project-Project Java pada Sun Java Wireless Toolkit, yang terdapat di C:\Documents and Settings\[nama komputer anda]\j2mewtk\2.5.2\apps\sms_new. Berikut tampilan sms_new telah berhasil disimpan pada C:\Documents and Settings\andinipc\j2mewtk\2.5.2\apps\sms_new
Setiap project yang dibuat secara otomatis akan membentuk sebuah struktur direktori standar sebagai penyimpanan file-file pendukung yang diperlukan oleh project yang bersangkutan. Adapun struktur direktori yang dimaksud adalah seperti gambar berikut :
Perlu diperhatikan bahwa setelah anda melakukan proses build terhadap projek (dengan memilih menu project -> build) maka Sun Java Wireless Toolkit akan menambahkan tiga buah direktori lagi untuk keperluan internal, yaitu classes, tmpclasses dan tmplib sehingga struktur direktori akan berubah menjadi :
6. Tulisakan kode program untuk MIDlet dengan menggunakan editor teks yang anda sukai, misalnya textpad, notepad, pspad, dll Adapun kodenya sebagai berikut :
import java.util.*;
import java.io.IOException;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.wireless.messaging.*;
import javax.microedition.midlet.*;
public class sms_new extends MIDlet implements CommandListener, Runnable,
MessageListener {
Display display;
Form form;
List menuList; //list untuk menu awal
Command exitCom, replyCom, backCom, clrCom, sendCom; //command yg digunakan
TextBox textSmsMasuk, textSmsKeluar; //tempat text sms yg masuk & yg mau dikirim
TextField textNo; //untuk tempat memasukan no tujuan
String port, isiSmsKeluar; //port dan isi sms
Thread thread;
String[] connections;
boolean done;
MessageConnection smsconn;
Message msg;
public sms_new() {
display = Display.getDisplay(this);
form = new Form("sms-an Yuk");
exitCom = new Command("keluar", Command.EXIT, 1);
replyCom = new Command("kirim", Command.SCREEN, 1);
backCom = new Command("Kembali", Command.BACK, 3);
clrCom = new Command("Hapus Tulisan", Command.OK, 2);
sendCom = new Command("kirim", Command.OK, 1);
menuList = new List("Menu sms Ku", List.IMPLICIT);
port = "4321"; //port yang aku gunakan, ganti sesuai keinginan masing masing
textSmsMasuk = new TextBox(null, null, 500, TextField.ANY);
textSmsKeluar = new TextBox("Silakan Menulis Sms", null,500, TextField.ANY);
textNo = new TextField("Masukan Nomor Tujuan", "",15, TextField.PHONENUMBER);
}
public void startApp() {
bukaKoneksi(); //disini membuka koneksi untuk siap menerima sms masuk
menu(); // bikin tampilan menu awal
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
//sebelum aplikasinya keluar ato mati koneksi ditutup dulu
done = true;
thread = null;
if (smsconn != null) {
try {
smsconn.close();
} catch (IOException e) {
}
}
//disini mati deh aplikasi kita
notifyDestroyed();
}
public void menu() { //membuat menu awal untuk sementara ini baru ada 3 menu
menuList.append("Tulis Sms", null);//1. menu tulis sms baru
menuList.append("about", null);//2. menu about (gak penting sih sebenarnya)
menuList.append("Keluar", null);//3. menu untuk keluar aplikasi
menuList.addCommand(exitCom); //add command keluar
menuList.setCommandListener(this);
display.setCurrent(menuList);
}
public void tulisSms() { //membuat textbox untuk menulis sms baru
textSmsKeluar.addCommand(sendCom); //add command untuk kirim
textSmsKeluar.addCommand(clrCom); // add command untuk clear text
textSmsKeluar.addCommand(backCom); //add command untuk kembali kemenu awal
textSmsKeluar.setCommandListener(this);
display.setCurrent(textSmsKeluar);
}
public void masukNo() { //disini untuk memasukan nomor tujuan
form.setTitle("Sms Siap dikirim"); //udah taukan yang ini?
form.append(textNo); //menambahkan textField untuk nomor tujuan
form.addCommand(backCom); //menambahkan command untuk kembali ke menu awal
form.addCommand(sendCom); //menambahkan command untuk mengirim
form.setCommandListener(this);
display.setCurrent(form);
}
public void kirim() { //disini sms yang udah ditulis dikirim dgn perintah
new Thread(new Runnable() {
//perhatiin ya
public void run() {
try {
String isiSms = isiSmsKeluar;
String noTujuan = textNo.getString();
String address = "sms://" + noTujuan + ":" + port;
MessageConnection smsConnKir = null;
Message isiSmsNya = null;
smsConnKir = (MessageConnection) Connector.open(address);
TextMessage txtmessage =
(TextMessage) smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);
txtmessage.setAddress(address);
txtmessage.setPayloadText(isiSms);
isiSmsNya = txtmessage;
smsConnKir.send(isiSmsNya);
} catch (Throwable t) {
t.printStackTrace();
}
}
}).start();
}
public void terima(String isi, String no, Date tgl) { //tempat sms masuk
String nonya = fixNomer(no);
textSmsMasuk = new TextBox("Sms dari:" + nonya + " " + tgl, isi,
isi.length(), TextField.ANY);
textSmsMasuk.addCommand(replyCom);
textSmsMasuk.addCommand(exitCom);
textSmsMasuk.setCommandListener(this);
display.setCurrent(textSmsMasuk);
}
public void bukaKoneksi() { //membuka koneksi agar bisa menerima sms yg masuk
String smsConnection = "sms://:" + port;
done = true;
thread = null;
try {
smsconn = (MessageConnection) Connector.open(smsConnection);
smsconn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
connections = PushRegistry.listConnections(true);
done = false;
thread = new Thread(this);
thread.start();
}
public void tutupKoneksi() { //untuk menutup koneksi sms
try {
smsconn.close();
} catch (IOException e) {
}
}
public String fixNomer(String no) {
//dari format no gini "sms://+6285XXXX" jadi "+6285XXX" gitu fungsinya
String hs = null;
hs = no.substring(6, no.length());
return hs;
}
public void commandAction(Command c, Displayable d) {
if (c == exitCom) {
destroyApp(true);
}
if (d == menuList) {
if (menuList.isSelected(0)) {
tulisSms();
} else if (menuList.isSelected(1)) {
Alert about = new Alert("About", "Aplikasi SMS menggunakan j2me",
null, AlertType.INFO);
display.setCurrent(about);
} else if (menuList.isSelected(2)) {
destroyApp(true);
}
}
if (d == textSmsKeluar) {
if (c == sendCom) {
form.deleteAll();
masukNo();
} else if (c == clrCom) {
textSmsKeluar.setString("");
} else if (c == backCom) {
display.setCurrent(menuList);
}
}
if (d == textSmsMasuk) {
if (c == exitCom) {
display.setCurrent(menuList);
} else if (c == replyCom) {
tulisSms();
}
}
if (d == form) {
if (c == backCom) {
form.deleteAll();
display.setCurrent(textSmsKeluar);
} else if (c == sendCom) {
isiSmsKeluar = textSmsKeluar.getString();
textSmsKeluar.setString("");
kirim();
}
}
}
public void run() { //untuk menerima sms yang masuk
try {
msg = smsconn.receive();
String senderAddress = msg.getAddress();
Date waktuSms = msg.getTimestamp();
if (msg instanceof TextMessage) {
String isiSmsMasuk = ((TextMessage) msg).getPayloadText();
terima(isiSmsMasuk, senderAddress, waktuSms);//memasukan sms ke texbok
}
tutupKoneksi();
bukaKoneksi();
} catch (IOException e) {
}
}
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null) {
done = false;
thread = new Thread(this);
thread.start();
}
}
}
Kemudian simpan dengan extensi [namafile].java didalam folder src. Misal simpan dengan nama sms_new.java
7. Bukalah aplikasi Textpad. Lalu ketikkan program di atas.
Berikut ini tampilan program sms_new pada Textpad
8. Simpanlah program sms_new yang telah diketik pada folder C:\Documents and Settings\andinipc\j2mewtk\2.5.2\apps\sms_new\src
File sms_new.java telah tersimpan di folder C:\Documents and Settings\andinipc\j2mewtk\2.5.2\apps\sms_new\src
9. Setelah disimpan dengan nama sms_new.java, tekan tombol ctrl+1 pada keyboard
10. Buka project sms_new pada folder C:\Documents and Settings\andinipc\j2mewtk\2.5.2\apps\sms_new dengan memilih menu File -> Open Project atau dengan langsung meng-klik tombol Open Project
11. Selanjutnya akan muncul tampilan sebagai berikut. Pilih project sms_new, lalu klik Open Project
12. Lakukan kompilasi terhadap kode di atas dengan melakukan proses Build pada projek, Caranya dengen memilih Menu Project -> Build atau cukup hanya dengan meng-klik tombol Build pada Toolbar.
Berikut tampilan proses Build untuk project sms_new
Apabila proses Build benar maka akan muncul pesan dan tampilan sebagai berikut
:
Project “sms_new” loaded
Project settings saved
Building “sms_new”
Build complete
13. Kemudian klik tombol Run untuk menjalankan project java sms_new
Maka setelah di-run akan muncul tampilan berikut. Klik Run 2 kali untuk 2 aplikasi pengiriman sms. Pilih Launch untuk mengaktifkan aplikasi pada kedua handphone.
Maka akan muncul tampilan seperti berikut ini
14. Pada salah satu handphone, pilih Yes pada pertanyaan “Is it OK to communicate ?” untuk memulai komunikasi. Maka akan muncul tampilan seperti berikut ini
15. Pilih “Tulis Sms” untuk memulai mengetik sms. Lalu pilih Menu 1. Kirim untuk mengirimkan sms
16. Ketikkan nomor tujuan Anda, yaitu nomor handphone lainnya yang telah di-launch seperti pada tampilan berikut ini. Lalu pilih Kirim untuk mengirim sms
17. Secara otomatis maka sms yang telah dikirim akan sampai ke nomor tujuan handphone yang dituju. Pilih Keluar untuk keluar
18. Pilih MIDlet -> Exit untuk menyelesaikan komunikasi
Perlu diketahui, Anda dapat juga melakukan pengiriman sms yang sama pada handphone lainnya.
Download di SINI !!!
Salam Teknik Komputer, POLSRI



























Tidak ada komentar:
Posting Komentar