Assalamuallaikum Wr. Wb.
Pada Kali ini , Job pertama yang dibahas pada pembelajaran Praktik Pemrograman Jaringan Komputer yaitu tentang Bagaimana Membuat Aplikasi SMS di Handphone J2ME Menggunakan Aplikasi Sun Java .
Aplikasi SMS ini berfungsi untuk menerima dan mengirim pesan antara satu sama lain dengan menggunakan aplikasi Sun Java dengan menggunakan pemrograman Java . Pesan bisa diterima jika aplikasi dari pesan tersebut aktif (aplikasi terbuka) .
Berikut adalah contoh program dari Membuat Aplikasi SMS di Handphone J2ME Menggunakan Aplikasi Sun Java :
Pada Kali ini , Job pertama yang dibahas pada pembelajaran Praktik Pemrograman Jaringan Komputer yaitu tentang Bagaimana Membuat Aplikasi SMS di Handphone J2ME Menggunakan Aplikasi Sun Java .
Aplikasi SMS ini berfungsi untuk menerima dan mengirim pesan antara satu sama lain dengan menggunakan aplikasi Sun Java dengan menggunakan pemrograman Java . Pesan bisa diterima jika aplikasi dari pesan tersebut aktif (aplikasi terbuka) .
Berikut adalah contoh program dari Membuat Aplikasi SMS di Handphone J2ME Menggunakan Aplikasi Sun Java :
PROGRAM Membuat
Aplikasi SMS di Handphone J2ME
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("Message");
exitCom
= new Command("exit", Command.EXIT, 1);
replyCom
= new Command("Response", Command.SCREEN, 1);
backCom
= new Command("back", Command.BACK, 3);
clrCom
= new Command("Hapus Tulisan", Command.OK, 2);
sendCom
= new Command("send", Command.OK, 1);
menuList
= new List("Menu sms", 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("Create
Sms", null);//1. menu tulis sms baru
menuList.append("about",
null);//2. menu about (gak penting sih sebenarnya)
menuList.append("Exit",
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, " +
"Aplikasi ini dapat digunakan untuk
mengirim dan menerima pesan satu sama lain dengan menggunakan bahasa
pemrograman java",
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();
}
}
}