Tugas kedua Pemrograman Jaringan adalah membuat aplikasi mengirim dan menerima SMS menggunakan Sun Java Wireless Toolkit 2.5.2 .
Jika Anda belum punya Sun Java Wireless Toolkit 2.5.2, silahkan download disini .
Ikuti langkah - langkah dibawah ini :
1. Kita jalankan dulu Sun Java (TM) Wireless Toolkit 2.5.2_01 for CLDC. Setelah itu, klik New Project,di ProjectName kita ketikkan nama project kita, misalnya KirimSMS, di MIDlet Class Name ketikkan tulisan yang sama, Lalu klik Create Project.
2. Kita buka notepad++, ketikkan source code. (bisa dilihat setelah langkah-langkah ini) kemudian simpan sebagai .java .
3. Di sini, kita klik Build untuk mengetahui apakah program yang kita buat sudah benar atau belum. Jika masih terdapat kesalahan maka perhatikan kesalahannya pada baris kesalahan dan lokasi kesalahan yang ditunjukan pada layar konsul. Perbaiki kesalahan program tersebut hingga selesai simpan dan ulangi Build kembali. Setelah proses build selesai jika tidak terdapat kesalahan, klik Run. Kita bisa coba jalankan aplikasi buatan kita.
Langkah selanjutnya adalah membuat Package. Untuk menjalankan aplikasi ini di handphone kita harus membuat file .jad , file inilah yang nantinya akan kita pindahkan ke handphone dan kita instal di handphone.
Langkah-langkah pembuatan file .jad
1. pilih Project
2. pilih Package
3. pilih Create Package
Maka file .jad akan tercipta, dan file tersebut disimpan di dalam direktori bin.
Source code untuk mengirim SMS :
import javax.microedition.io.Connector;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
public class kirimSMS extends MIDlet implements CommandListener,Runnable
{
private Form sendMessageForm;
private TextField number, msg;
private Command cmdOK,cmdExit;
private String telpNum, isiPesan = "";
public SendMidlet(){
cmdExit = new Command("Back", Command.EXIT, 2);
cmdOK = new Command("Send", Command.SCREEN, 2);
sendMessageForm = new Form("Send Message");
msg = new TextField("Message:", null, 50, TextField.ANY);
number = new TextField("Telepon:", null, 15, TextField.PHONENUMBER);
sendMessageForm.append(number);
sendMessageForm.append(msg);
sendMessageForm.addCommand(cmdOK);
sendMessageForm.addCommand(cmdExit);
sendMessageForm.setCommandListener(this);
}
protected void destroyApp(boolean arg0) {
notifyDestroyed();
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(sendMessageForm);
}
public void commandAction(Command arg0, Displayable arg1) {
if(arg0==cmdOK){
telpNum = number.getString();
isiPesan = msg.getString();
new Thread(this).start();
number.setString("");
msg.setString("");
Display.getDisplay(this).setCurrent(sendMessageForm);
destroyApp(true);
}
}
public void run() {
try{
String nomorTelp = "sms://" + telpNum + ":1234";
MessageConnection conn =
(MessageConnection)Connector.open(nomorTelp);
TextMessage msg = (TextMessage)
conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText(isiPesan);
conn.send(msg);
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
public class kirimSMS extends MIDlet implements CommandListener,Runnable
{
private Form sendMessageForm;
private TextField number, msg;
private Command cmdOK,cmdExit;
private String telpNum, isiPesan = "";
public SendMidlet(){
cmdExit = new Command("Back", Command.EXIT, 2);
cmdOK = new Command("Send", Command.SCREEN, 2);
sendMessageForm = new Form("Send Message");
msg = new TextField("Message:", null, 50, TextField.ANY);
number = new TextField("Telepon:", null, 15, TextField.PHONENUMBER);
sendMessageForm.append(number);
sendMessageForm.append(msg);
sendMessageForm.addCommand(cmdOK);
sendMessageForm.addCommand(cmdExit);
sendMessageForm.setCommandListener(this);
}
protected void destroyApp(boolean arg0) {
notifyDestroyed();
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(sendMessageForm);
}
public void commandAction(Command arg0, Displayable arg1) {
if(arg0==cmdOK){
telpNum = number.getString();
isiPesan = msg.getString();
new Thread(this).start();
number.setString("");
msg.setString("");
Display.getDisplay(this).setCurrent(sendMessageForm);
destroyApp(true);
}
}
public void run() {
try{
String nomorTelp = "sms://" + telpNum + ":1234";
MessageConnection conn =
(MessageConnection)Connector.open(nomorTelp);
TextMessage msg = (TextMessage)
conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText(isiPesan);
conn.send(msg);
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
Source code untuk menerima SMS :
import javax.microedition.io.Connector;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
public class terimaSMS extends MIDlet implements Runnable,
CommandListener {
private TextBox tb;
private String text = "Menunggu pesan...";
private Command okComand;
public terimaSMS() {
tb = new TextBox("Hello MIDlet", text, 150, 0);
}
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(tb);
new Thread(this).start();
}
public void changeScreen() {
tb = new TextBox("SMS MIDlet", text, 150, 0);
Display.getDisplay(this).setCurrent(tb);
}
public void addConfirmation(String msg) {
tb = new TextBox("SMS MIDlet", text, 150, 0);
tb.setString(msg);
okComand = new Command("OK",Command.OK,1);
tb.addCommand(okComand);
tb.setCommandListener(this);
Display.getDisplay(this).setCurrent(tb);
}
public void run() {
try {
MessageConnection rconn = (MessageConnection) Connector
.open("sms://:1234");
while (true) {
Message msg = rconn.receive();
if (msg instanceof TextMessage) {
TextMessage tmsg = (TextMessage) msg;
String msgOut = tmsg.getPayloadText();
addConfirmation(msgOut);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void commandAction(Command arg0, Displayable arg1) {
}
}
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
public class terimaSMS extends MIDlet implements Runnable,
CommandListener {
private TextBox tb;
private String text = "Menunggu pesan...";
private Command okComand;
public terimaSMS() {
tb = new TextBox("Hello MIDlet", text, 150, 0);
}
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(tb);
new Thread(this).start();
}
public void changeScreen() {
tb = new TextBox("SMS MIDlet", text, 150, 0);
Display.getDisplay(this).setCurrent(tb);
}
public void addConfirmation(String msg) {
tb = new TextBox("SMS MIDlet", text, 150, 0);
tb.setString(msg);
okComand = new Command("OK",Command.OK,1);
tb.addCommand(okComand);
tb.setCommandListener(this);
Display.getDisplay(this).setCurrent(tb);
}
public void run() {
try {
MessageConnection rconn = (MessageConnection) Connector
.open("sms://:1234");
while (true) {
Message msg = rconn.receive();
if (msg instanceof TextMessage) {
TextMessage tmsg = (TextMessage) msg;
String msgOut = tmsg.getPayloadText();
addConfirmation(msgOut);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void commandAction(Command arg0, Displayable arg1) {
}
}
Cara mengirim SMS :
1. Jalakan aplikasi kirimSMS dan terimaSMS
2. Pada aplikasi kirim sms nomer tujaannya disusaikan dgn port dimana aplikasi terima
sms di jalankan. pada aplikasi diatas, apalikasi j2me terimaSMS jalan di port +5550000.
maka di aplikasi kirimSMS nomer tujuannya adalah +5550000
Read more...