Menggunakan RMS untuk database SMS
Sabtu, Januari 31, 2009 12:16Menyambung tulisanku yang disini dan disini sekarang aku akan menggunakan RMS untuk database SMS, yaitu untuk menyimpan sms inbox dan sms outbox. aku akan memberi contoh source code untuk aplikasi sms yang menggunakan RMS.
Source code dibawah ini adalah source potongan dari Tugas akhirku dulu. keterangan kode ada di dalam code nya. Karena aku bukan guru atau bukan dosen maka aku tidak bisa menuliskan dan menjelaskan program secara lengkap dan baik dan benar
. sungguh itu sangat berat
.
ohya mohon jangan copy paste langsung dari source code yang ditampilkan dibawah ini nanti. pengalaman yang sudah sudah banyak yang komplain katanya error, tentu saja. soalnya itu cuma potongan yang tidak lengkap. dan biasanya jika langsung copy paste ada karakter HTML yang ikut.
solusinya silakan download kode lengkapnya di bawah nanti dalam format ZIP dan di ekstrak dan dibuka dengan netbeans 6.0 keatas.
Ok langsung saja source codenya :
Source code class smsKu :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sms;
/**
*
* @author Maswawa
*/
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.wireless.messaging.*;
import javax.microedition.rms.*;
public class smsKu extends MIDlet implements CommandListener, Runnable, MessageListener {
/** bagian variable Rx atau untuk menerima SMS*/
Command exitCommand2 = new Command("Kembali", Command.EXIT, 2);
Command exitCommand3 = new Command("Kembali", Command.EXIT, 2);
Command exitCommand4 = new Command("Kembali", Command.EXIT, 2);
Command exitCommand5 = new Command("Kembali", Command.EXIT, 2);
Command exitCommand6 = new Command("Kembali", Command.EXIT, 2);
Command exitMenuUtaCommand = new Command("Keluar", Command.EXIT, 2);
Command exitMenuPilCommand = new Command("Kembali", Command.EXIT, 2);
Command pilCommand = new Command("Pilihan", Command.OK, 1);
Command bacaCommand = new Command("Baca", Command.OK, 3);
Command balasCommand = new Command("Balas", Command.OK, 3);
Command hapusCommand = new Command("Hapus", Command.OK, 3);
Command hapusSemuaCommand = new Command("Hapus Semua", Command.OK, 3);
Command okInfoCommand, backInfoCommand;
Command keluarAlertCommand = new Command("Keluar", Command.EXIT, 1);
Command bacaAlertCommand = new Command("Baca", Command.OK, 1);
Command minimizeCommand = new Command("Minimize", Command.OK, 0);
Command exitCommand = new Command("Kembali", Command.EXIT, 2);
Command okCommand = new Command("Pilihan", Command.OK, 1);
Command selKirimCommand;
TextBox content;
TextBox textSmsRev;
Ticker ticker;
Thread thread;
int[] idGIn;
int numListUmumIn;
int[] idGout;
int numListUmumOut;
String[] connections;
boolean done;
MessageConnection smsconn;
Message msg;
String senderAddress;
Alert errorMessageAlert;
Alert newSms = new Alert(null, null, null, AlertType.ALARM);
Alert sendingMessageAlert;
Display display;
Displayable kirimScreen = null;
String smsPort, isiSms;
TextBox textSmsBox;
Form form, forminbox, formoutbox;
List menuPilTul, menuUtama, menubaca, listinbox, listoutbox, listSett;
RecordStore database, dbase, databaseSett;
KirimSms sender;
Image image;
int listIndex;
public smsKu() {
//nomer port
smsPort = "2804"; //2804
ticker = new Ticker("Silakan pilih menu sms");
/**tx*/
display = Display.getDisplay(this);
form = new Form("My SMS", null);
textSmsBox = new TextBox("Tulis Pesan", null, 801, TextField.ANY);
textSmsBox.addCommand(exitCommand);
textSmsBox.addCommand(okCommand);
textSmsBox.setCommandListener(this);
errorMessageAlert = new Alert("SMS", null, null, AlertType.ERROR);
errorMessageAlert.setTimeout(5000);
selKirimCommand = new Command("Selesai", Command.OK, 1);
sendingMessageAlert = new Alert("Mengirim SMS", null, null, AlertType.INFO);
sendingMessageAlert.addCommand(selKirimCommand);
sendingMessageAlert.setTimeout(2000);
sendingMessageAlert.setString("SMS Terkirim...");
sendingMessageAlert.setCommandListener(this);
sender = new KirimSms(smsPort, display, textSmsBox, sendingMessageAlert);
kirimScreen = textSmsBox;
}
public void startApp() {
bukaKoneksi();
//display = Display.getDisplay(this);
menuForm();
// display.setCurrent(canvasku);
}
public void tutupKoneksi() {
try {
smsconn.close();
} catch (IOException e) {
}
}
public void bukaKoneksi() {
String smsConnection = "sms://:" + smsPort;
NolKan();
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 pauseApp() {
NolKan();
kirimScreen = display.getCurrent();
}
public void destroyApp(boolean unconditional) {
NolKan();
if (smsconn != null) {
try {
smsconn.close();
} catch (IOException e) {
}
}
}
public void NolKan() {
done = true;
thread = null;
}
public void listMenuTul() {
try {
image = Image.createImage("/sms/img/send.png");
menuPilTul = new List("Pilihan", List.IMPLICIT);
menuPilTul.append("Kirim", image);
image = Image.createImage("/sms/img/save.png");
menuPilTul.append("Simpan", image);
image = Image.createImage("/sms/img/hapustext.png");
menuPilTul.append("Hapus text", image);
menuPilTul.addCommand(exitMenuPilCommand);
menuPilTul.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(menuPilTul);
} catch (IOException ex) {
ex.printStackTrace();
}
}
//bikin menu utama
public void menuForm() {
try {
image = Image.createImage("/sms/img/write-mail-L.png");
menuUtama = new List("Menu SMS", List.IMPLICIT);
menuUtama.append("Tulis sms", image);
image = Image.createImage("/sms/img/Mail-in-L.png");
menuUtama.append("Inbox", image);
image = Image.createImage("/sms/img/Mail-out-L.png");
menuUtama.append("Outbox", image);
image = null;
menuUtama.addCommand(minimizeCommand);
menuUtama.addCommand(exitMenuUtaCommand);
menuUtama.setCommandListener(this);
display = Display.getDisplay(this);
menuUtama.setTicker(ticker);
ticker.setString("Silakan pilih Menu");
display.setCurrent(menuUtama);
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static String[] split(String a, String delimeter) {
String c[] = new String[0];
String b = a;
while (true) {
int i = b.indexOf(delimeter);
String d = b;
if (i >= 0) {
d = b.substring(0, i);
}
String e[] = new String[c.length + 1];
for (int k = 0; k < c.length; k++) {
e[k] = c[k];
}
e[e.length - 1] = d;
c = e;
b = b.substring(i + delimeter.length(), b.length());
if (b.length() <= 0 || i < 0) {
break;
}
}
return c;
}
//untuk membaca sms
public void baca(String lokasi, int indexSms, boolean tick) {
System.out.println(lokasi + " " + indexSms + " " + tick);
try {
//membukan database sesuai yang di request
database = RecordStore.openRecordStore(lokasi, false);
byte[] recData = new byte[50];
recData = database.getRecord(indexSms);
database.closeRecordStore();
ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
DataInputStream strmDataType = new DataInputStream(strmBytes);
String hsTemp = strmDataType.readUTF();
String[] hsArray = split(hsTemp, "|");
String nomer = null;
strmBytes.reset();
strmBytes.close();
strmDataType.close();
if (tick == false) {
String ygmana = null;
String isipesan = null;
if (lokasi.equals("inbox")) {
int id = Integer.parseInt(hsArray[0]);
nomer = hsArray[2] + " " + hsArray[3];
isipesan = hsArray[4];
ygmana = "1";
if (hsArray[1].equals("false")) {
String datanya = hsArray[0] + "|true|" + hsArray[2] +
"|" + hsArray[3] + "|" + hsArray[4];
tandaiPesanDibaca(indexSms, datanya);
}
} else if (lokasi.equals("outbox")) {
isipesan = hsArray[1];
nomer = hsArray[0];
ygmana = "0";
}
textRev(nomer, isipesan, true, ygmana);
display.setCurrent(content);
} else {
if (lokasi.equals("inbox")) {
ticker.setString(hsArray[4]);
} else if (lokasi.equals("outbox")) {
ticker.setString(hsArray[1]);
}
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
//menandai pesan yang udah dibaca
public void tandaiPesanDibaca(int indexSms, String isi) {
try {
//membuka data base inbox dan menandai pesan yang sudah dibaca
database = RecordStore.openRecordStore("inbox", false);
ByteArrayOutputStream strmBytes = new ByteArrayOutputStream();
DataOutputStream strmDataType = new DataOutputStream(strmBytes);
byte[] record;
strmDataType.writeUTF(isi);
strmDataType.flush();
record = strmBytes.toByteArray();
database.setRecord(indexSms, record, 0, record.length);
database.closeRecordStore();
strmBytes.reset();
strmBytes.close();
strmDataType.close();
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreNotOpenException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
//menghapus pesan
public void hapus(String lokasi, int id) {
try {
database = RecordStore.openRecordStore(lokasi, false);
database.deleteRecord(id);
database.closeRecordStore();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
//membuat list di inbox
public void inbox() {
try {
listinbox = new List(null, List.IMPLICIT);
listinbox.deleteAll();
listinbox.setTitle("Daftar sms Inbox");
database = RecordStore.openRecordStore("inbox", true);
byte[] recData;
idGIn = new int[100];
numListUmumIn = 0;
RecordEnumeration re = database.enumerateRecords(null, null, false);
if (database.getNumRecords() != 0) {
while (re.hasNextElement()) {
int i = re.nextRecordId();
idGIn[numListUmumIn] = i;
recData = database.getRecord(i);
ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
DataInputStream strmDataType = new DataInputStream(strmBytes);
String isi = strmDataType.readUTF();
String[] smsSplit = split(isi, "|");
String nomer = smsSplit[2];
image = null;
if (smsSplit[1].equals("false")) {
image = Image.createImage("/sms/img/mail-close.png");
} else {
image = Image.createImage("/sms/img/mail-open.png");
}
String[] nomerTemp = split(nomer, ":");
if (nomerTemp[0] != null) {
listinbox.append(nomerTemp[0], image);
} else {
listinbox.append(nomer, image);
}
strmBytes.reset();
strmBytes.close();
strmDataType.close();
numListUmumIn++;
}
if (numListUmumIn != 0) {
listinbox.addCommand(bacaCommand);
listinbox.addCommand(balasCommand);
listinbox.addCommand(hapusCommand);
listinbox.addCommand(hapusSemuaCommand);
} else {
RecordStore.deleteRecordStore("inbox");
}
listinbox.addCommand(exitCommand3);
listinbox.setTicker(ticker);
ticker.setString("ada " + database.getNumRecords() + " sms di inbox");
listinbox.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(listinbox);
} else {
Alert alerKosong = new Alert("Kosong", "Inbox Kosong", null, AlertType.INFO);
display.setCurrent(alerKosong);
}
database.closeRecordStore();
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
//membuat list di outbox
public void outbox() {
try {
listoutbox = new List(null, List.IMPLICIT);
listoutbox.deleteAll();
listoutbox.setTitle("Daftar sms Outbox");
database = RecordStore.openRecordStore("outbox", true);
byte[] recData = new byte[50];
idGout = new int[100];
numListUmumOut = 0;
RecordEnumeration re = database.enumerateRecords(null, null, false);
if (database.getNumRecords() != 0) {
while (re.hasNextElement()) {
int i = re.nextRecordId();
idGout[numListUmumOut] = i;
recData = database.getRecord(i);
ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
DataInputStream strmDataType = new DataInputStream(strmBytes);
String isi = strmDataType.readUTF();
strmBytes.reset();
strmBytes.close();
strmDataType.close();
String[] isiArray = split(isi, "|");
String nomer = isiArray[0];
numListUmumOut++;
image = Image.createImage("/sms/img/mail-open.png");
if (nomer.equals("")) {
nomer = isiArray[1];
listoutbox.append(nomer, image);
} else {
listoutbox.append(nomer, image);
}
}
if (numListUmumOut != 0) {
listoutbox.addCommand(bacaCommand);
listoutbox.addCommand(balasCommand);
listoutbox.addCommand(hapusCommand);
listoutbox.addCommand(hapusSemuaCommand);
} else {
RecordStore.deleteRecordStore("outbox");
}
listoutbox.setTicker(ticker);
ticker.setString("ada " + database.getNumRecords() + " sms di outbox");
listoutbox.addCommand(exitCommand3);
listoutbox.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(listoutbox);
} else {
Alert alerKosong = new Alert("Kosong", "Outbox Kosong", null, AlertType.INFO);
display.setCurrent(alerKosong);
}
database.closeRecordStore();
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
//menyimpan sms yang masuk/baru diterima
public void simpanSmsin(String noSender, boolean tanda, String isiSMs) {
try {
database = RecordStore.openRecordStore("inbox", true);
RecordEnumeration re = database.enumerateRecords(null, null, false);
int id2 = 0;
if (re.hasNextElement()) {
int id = re.nextRecordId();
if (id == 0) {
id2 = 1;
} else {
id2 = cekId2(id);
}
} else {
id2 = 1;
}
String dataSimpan = id2 + "|" + tanda + "|" + noSender + "|" + isiSMs;
ByteArrayOutputStream strmBytes = new ByteArrayOutputStream();
DataOutputStream strmDataType = new DataOutputStream(strmBytes);
byte[] record;
strmDataType.writeUTF(dataSimpan);
strmDataType.flush();
record = strmBytes.toByteArray();
database.addRecord(record, 0, record.length);
database.closeRecordStore();
strmBytes.reset();
strmBytes.close();
strmDataType.close();
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
} catch (Exception e) {
System.out.println(e.toString());
}
}
public int cekId2(int id) {
int hs = 0;
try {
RecordStore databaseCex = RecordStore.openRecordStore("inbox", true);
byte[] recData = new byte[50];
recData = databaseCex.getRecord(id);
databaseCex.closeRecordStore();
ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
DataInputStream strmDataType = new DataInputStream(strmBytes);
String hsTemp = strmDataType.readUTF();
String[] hsArray = split(hsTemp, "|");
hs = Integer.parseInt(hsArray[0]);
strmBytes.reset();
strmBytes.close();
strmDataType.close();
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
return hs + 1;
}
//membikin menu pada saaat membaca SMS
public void menuBacaSMS() {
try {
image = Image.createImage("/sms/img/write-mail-L.png");
menubaca = new List("Pilihan", List.IMPLICIT);
menubaca.append("Kirim/Balas", image);
image = Image.createImage("/sms/img/hapus.png");
menubaca.append("Hapus", image);
image = Image.createImage("/sms/img/ubah.png");
menubaca.append("Ubah", image);
image = Image.createImage("/sms/img/kembali.png");
menubaca.append("Kembali", image);
menubaca.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(menubaca);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private static String fixNom(String nom) {
int dowonya = nom.length();
String nomFix = nom.substring(6, dowonya);
return nomFix;
}
public void commandAction(Command c, Displayable s) {
try {
if (c == okCommand) {
listMenuTul();
} else if (c == exitCommand) {
display.setCurrent(menuUtama);
} else if (c == pilCommand) {
menuBacaSMS();
} else if (c == selKirimCommand) {
display.setCurrent(kirimScreen);
} else if ((c == exitCommand3) || (c == exitCommand2)) {
menuForm();
} else if (c == exitCommand4) {
inbox();
} else if (c == exitCommand5) {
outbox();
} else if (c == exitCommand6) {
menuForm();
}
if (s == menuPilTul) {
if (menuPilTul.isSelected(2)) {
textSmsBox.setString("");
display.setCurrent(kirimScreen);
} else if (menuPilTul.isSelected(1)) {
String isiPsn = textSmsBox.getString();
if (isiPsn.length() >=
{
sender.simpanSmsout(isiPsn.substring(0, 8), isiPsn);
} else {
sender.simpanSmsout(isiPsn, isiPsn);
}
display.setCurrent(kirimScreen);
} else if (menuPilTul.isSelected(0)) {
/**kirim sms*/
promptAndSend();
}
if (c == exitMenuPilCommand) {
display.setCurrent(kirimScreen);
}
}
if (s == menuUtama) {
if (c == exitMenuUtaCommand) {
destroyApp(true);
notifyDestroyed();
} else if (c == minimizeCommand) {
display = Display.getDisplay(this);
display.setCurrent(null);
} else {
if (menuUtama.isSelected(0)) {
textSmsBox.setString("");
display.setCurrent(textSmsBox);
} else if (menuUtama.isSelected(1)) {
inbox();
} else if (menuUtama.isSelected(2)) {
outbox();
} else if (menuUtama.isSelected(4)) {
} else if (menuUtama.isSelected(5)) {
display = Display.getDisplay(this);
display.setCurrent(null);
}
}
}
if (s == menubaca) {
if (menubaca.isSelected(0)) {
textSmsBox.setString(content.getString());
display.setCurrent(textSmsBox);
} else if (menubaca.isSelected(1)) {
} else if (menubaca.isSelected(2)) {
textSmsBox.setString(content.getString());
display.setCurrent(textSmsBox);
} else if (menubaca.isSelected(3)) {
display.setCurrent(content);
}
}
if (s == listinbox) {
if (numListUmumIn != 0) {
int inD = listinbox.getSelectedIndex();
int idIn = idGIn[inD];
if (listinbox.isSelected(inD)) {
baca("inbox", idIn, false);
}
if (c == hapusCommand) {
hapus("inbox", idIn);
inbox();
} else if ((c == bacaCommand)) {
baca("inbox", idIn, false);
} else if (c == hapusSemuaCommand) {
RecordStore.deleteRecordStore("inbox");
menuForm();
} else if (c == exitCommand3) {
menuForm();
}
}
}
if (s == listoutbox) {
if (numListUmumOut != 0) {
int inD = listoutbox.getSelectedIndex();
int idOut = idGout[inD];
if (listoutbox.isSelected(inD)) {
baca("outbox", idOut, false);
}
if (c == hapusCommand) {
hapus("outbox", idOut);
outbox();
} else if (c == bacaCommand) {
baca("outbox", idOut, false);
} else if (c == hapusSemuaCommand) {
RecordStore.deleteRecordStore("outbox");
menuForm();
} else if (c == exitCommand3) {
menuForm();
}
}
}
if (s == newSms) {
if (c == bacaAlertCommand) {
// display.setCurrent(canvasku);
inbox();
} else if (c == keluarAlertCommand) {
menuForm();
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void promptAndSend() {
String isiPesan = textSmsBox.getString();
String noReply = senderAddress;
String statusMessage = "Mengirim SMS... ";
sendingMessageAlert.setString(statusMessage);
sender.promptAndSend(isiPesan, noReply);
}
//
public void run() {
try {
msg = smsconn.receive();
boolean dibaca = false;
if (msg != null) {
senderAddress = fixNom(msg.getAddress());
Date waktu = msg.getTimestamp();
if (msg instanceof TextMessage) {
simpanSmsin(senderAddress + "|" + waktu, dibaca, ((TextMessage) msg).getPayloadText());
alertSmsIn();
}
tutupKoneksi();
bukaKoneksi();
}
} catch (IOException e) {
}
}
public void alertSmsIn() {
try {
image = Image.createImage("/sms/img/two-mail-close-L.png");
newSms.setTitle("Sms Masuk");
newSms.setString("Ada SMS Masuk");
newSms.setImage(image);
newSms.addCommand(bacaAlertCommand);
newSms.addCommand(keluarAlertCommand);
newSms.setCommandListener(this);
display = Display.getDisplay(this);
display.vibrate(1000);
display.setCurrent(newSms);
} catch (IOException e) {
}
}
//memeriksa sms yang baru diterima
public void textRev(String title, String isi, boolean bacanya, String ygmana) {
if (bacanya == false) {
simpanSmsin(title, false, isi);
}
int dowo = isi.length();
content = new TextBox(null, isi, dowo, TextField.ANY);
if (bacanya == true) {
if (ygmana.equals("1")) {
content.addCommand(exitCommand4);
content.setTitle("dari :" + title);
content.setTicker(ticker);
ticker.setString("Sms dari :" + title);
} else if (ygmana.equals("0")) {
content.addCommand(exitCommand5);
content.setTitle("Untuk :" + title);
content.setTicker(ticker);
ticker.setString("Sms Untuk :" + title);
}
} else {
content.setTitle("dari :" + title);
content.addCommand(exitCommand2);
}
content.addCommand(pilCommand);
content.setCommandListener(this);
display = Display.getDisplay(this);
}
//memberitahukan jika ada sms masuk/diterima
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null) {
done = false;
thread = new Thread(this);
thread.start();
}
}
}
Source code lengkap dapat didownload di sini
Sekarang tak kasih screenshotnya :

Screeenshot Menu

Screeenshot didalam Inbox

Screeenshot didalam Outbox
Daftar Pustaka
- Avestro, Joy (2007). Pengembangan Perangkat Mobile. Jakarta: JEDI.
- Ghosh, Soma. J2ME record management store . http://www.ibm.com/. 01 mei 2002. diakses pada tanggal 02 April 2008.
- Giguere, Eric. The J2ME Wireless Toolkit WMA Console. http://developer.sun.com. 31 Maret 2003. diakses pada tanggal 02 April 2008.
- Nokia (2002). MIDP: Wireless Messaging API 2.0 Developer’s Guide. Forum Nokia.
- Sing Li & Jonathan Knudsen (2005). Beginning J2ME: From Novice to Professional, Third Edition (Novice to Professional) New York: Apress.
- Sugiri&Moh. Supriyadi (2007). Tuntunan Pemrograman Java Untuk Handphone. Bandung: Informatika.
- Topley, Kim (2002). J2ME in a Nutshell. O’Reilly.
*Note : Karena ada permintaan untuk menampilkan referensi dan karena Aplikasi diatas adalah sebagian kecil dari Tugas Akhir saya, maka Daftar pustaka diatas juga saya ambil dari Tugas akhir saya. Semoga Membantu.
Related posts:








Rachmat says:
Februari 8th, 2009 at 15:15
saya coba kode dari mas wawa tapi kok error yiia…
padahal saya sdh cek beberapa kali dan persis sama .
Project “buatsmsKu” loaded
Project settings saved
Building “buatsmsKu”
C:\WTK22\apps\buatsmsKu\src\buatsmsKu.java:219: ‘catch’ without ’try’
}catch (IOException e) {
^
1 error
Com.sun.kvem.ktools.ExecutionException
Build failed
saya menggunakan notepad++ sebagai editor dan default colour phone sbg emulator nya
mohon penjelasannya. terima kasih
MasWawa says:
Februari 11th, 2009 at 10:18
@Rachmat
Mas rachmat, coba lihat C:\WTK22\apps\buatsmsKu\src\buatsmsKu.java:219: ‘catch’ without ’try’
, berarti errornya adalah penggunaan “catch ” tapi tidak ada “try” atau mungkin hilang.
coba lihat code mas rachmat, mungkin ada code yang hilang, atau tanda ini “{” / “}” yang hilang.
ali says:
Februari 13th, 2009 at 11:29
boleh tau referensi buku atau ebook yg digunakan untuk membangun aplikasi di atas?
Thank’s
MasWawa says:
Februari 13th, 2009 at 19:40
@ali
Silakan lihat diatas. Sudah saya tambah referensinya. thnk’s kembali.
gerger says:
Februari 16th, 2009 at 11:31
mz..tau metode dynamic markov compression gk utk kompresi sms??kalo tau sy minta referensi atau cntohnya mz…
x-tine says:
Maret 30th, 2009 at 18:27
mas minta bntuan donk buat tugas kuliah nih..
kemarin udah coba sourcecode di atas tapi ga jalan…
bisa minta project lengkapnya ga??
kirim e email q ya,, buat referensi tugas sih, habis bingung,.. q di suruh buat kaya reg trus unreg gitu mas.. thx bgt ya atas bantuannya.. ql bisa secepatnya ya.. thx
x-tine says:
Maret 30th, 2009 at 18:29
q udah dwnload projectnya moga2 aj bisa thx ya mas..
henny says:
April 7th, 2009 at 23:02
maswawa siapapun dirimu makasi bgt ya coding nya sangat membantu
Rachmat says:
April 11th, 2009 at 20:50
Mas saya sudah periksa berulang-ulang code(sms) nya (bahkan sesuai) dengan yang mas wawa contohkan diatas, tp masih saja errornya sama.Apa ada pengaruh jika menggunakan Text Editor sebangsa notepad dibandingkan dgn netbeans? gimana kl mas Email ke saya codenya! Mohon Bantuannya! Terima Kasih.
MasWawa says:
April 15th, 2009 at 12:13
@rachmat : Kalo salahnya masih seperti yang dulu menurut saya itu di kodingnya mas. coba buat pake IDE Netbeans. jika ada error penulisan kode akan ketahuan kok. dan menurut saya akan banyak membantu. dan kita jadi tahu dimana salah kita. gak ada salahnya kok mas coba Netbeans.
met mencoba yah.
MasWawa says:
April 15th, 2009 at 12:13
@Henny : terimakasih kembali mbak henny.. lam kenal yah
MasWawa says:
April 15th, 2009 at 13:16
@X-Tine : Kesulitan caari download source codenya yah… kemaarin pas pindah server blog ini banyak file yang hilang.. maklum lagi belajar pindah hosting
angela says:
April 24th, 2009 at 13:49
masWawa… saya sedang membuat aplikasi mobile yg membutuhkan rms untuk mneyimpan data sebagai history.. saya membuat sebuah kelas yg menampung method2 RMS dgn nama history.java. kelas ini nantinya akan di panggil dari kelas lain yg berbentuk form, pada method CommandActionn . tidak ada masalah saat menyimpan data pada index pertama dan kedua namun saat index ketiga dan seterusnya, data selalu tidak di simpan. apa ada yg salah dalam pemanggilan method nya? atau apakah karena di panggil dalam CommandAction merhod saveRecord di History.java tidak terbaca? makasihhhh MasWawa
Chandra says:
April 24th, 2009 at 18:51
Mas ada script untuk membuat Monitoring ruangan menggunakan J2ME ga??? Plisss Banget(^_^)! sukses!!
L says:
Mei 13th, 2009 at 12:10
ao mas wawa,lam kenal aq rami…gini toh aq mu tnya tentang rms smsna mas wawa yang di atas tuh…nah kalo gambar daftar inboxna and outboxna diganti ma gambar or foto dari no. c pengirim bisa ga mas.maksud aq menyimpan no c pengirim plus fotona pake rms,jadi klo sms dari c pengirim masuk ad fotona mas..kalo bisa bantu aq ya mas cos sabtu ni tugas aq harus di kumpulin…plisssss
mkc ya mas wawa…
FRENGKI says:
Mei 29th, 2009 at 18:44
sAlam IT,Mas kami ada tugas dari kul jurusan TEknisi Komputer & Jaringan kami disuruh Cari Codding RMS apa2 Saja Yang bsa Digunakan seperti yang mas buat seperti itu SMs Itu??? dalam aplikasi j2me??kalau ada yang lain tolong tulis coodingnya?
Alamat email saya : Freng_tkj08@yahoo.co.id
sadapz says:
Juni 6th, 2009 at 07:07
wew… kerenz bgt mas… sangat membantu buat tugas akhir… tapi ada masalah yang saya masi g ngerti ttg RMS. mau nanya ni mas.. dalam pengiriman satu sms tu tergantung dari apanya? saya lg buat ttg sms gtu.. tapi saya ngga tau limit char dari aplikasi yg nanti saya buat. saya sudah liat contoh2 gtu di getjar, tapi rata2 koq max charnya cuma 2 sms? bisa lebih g? tergantung dr memory HP g si? makasi banyak y mas..
haha says:
Juni 6th, 2009 at 11:35
mas wawa makasih udah share ilmunya di sini, semoga ilmu nya berkah mas…
ada yang mau saya tanyakan nih,
awalnya tidak ada masalah ketika di build
tapi ketika di running, ada pesan error muncul:
Exception: java.lang.ClassNotFoundException: smsKu
kenapa ya mas?????
san says:
Juni 7th, 2009 at 03:13
Mas wawa, saya punya permasalahan…
Mohon bantuannya ya mas,,,
Ada Pesan Error ketika program di launch:
Unable to create MIDlet mySms
java.lang.IllegalArgumentException: Port format
at com.sun.midp.io.j2me.sms.Protocol.openPrimInternal(+281)
at com.sun.midp.io.j2me.sms.Protocol.openPrim(+8)
at javax.microedition.io.Connector.openPrim(+299)
at javax.microedition.io.Connector.open(+15)
at javax.microedition.io.Connector.open(+6)
at javax.microedition.io.Connector.open(+5)
at mySms.bukaKoneksi(+38)
at mySms.(+174)
at java.lang.Class.runCustomCode(+0)
at com.sun.midp.midlet.MIDletState.createMIDlet(+34)
at com.sun.midp.midlet.Selector.run(+22)
Source code:
/*************************************************
Program 5.1. Memanipulasi data dalam record store
**************************************************/
import java.util.*;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.wireless.messaging.*;
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import javax.microedition.io.*;
public class mySms extends MIDlet
implements CommandListener, Runnable, MessageListener {
private Display display;
private Form form;
private RecordStore rs; // untuk database
private RecordEnumeration re; // untuk manipulasi database
private ChoiceGroup choicegroup; // untuk menu pilihan
private Alert alert;
private List list; // untuk list contact
private Form entri; // untuk form add contact
private TextField tfNama, tfNoTelp; // untuk field text sms, nama, dan no hp
private TextField textNo;
private Form formMenu, formKirim ;
private TextBox textSmsMasuk, textSmsKeluar;
private String port, isiSmsKeluar; //port dan isi sms
private Thread thread;
private String[] connections;
boolean done;
private MessageConnection smsconn;
private Message msg;
//command yang digunakan
private final Command cmdKeluar =
new Command(“Keluar”, Command.EXIT, 1);
private final Command cmdPilih =
new Command(“Pilih”, Command.OK, 1);
private final Command cmdSimpan =
new Command(“Simpan”, Command.SCREEN, 1);
private final Command cmdHapus =
new Command(“Hapus”, Command.SCREEN, 1);
private final Command cmdKembali =
new Command(“Kembali”, Command.BACK, 1);
private final Command cmdBalas =
new Command(“Balas”, Command.SCREEN, 1);
private final Command cmdClr =
new Command(“Clear”, Command.OK, 2);
private final Command cmdKirim =
new Command(“Kirim”, Command.OK, 1);
private final Command cmdCont =
new Command(“Contact”, Command.OK, 2);
private final Command cmdKirimkan =
new Command(“Kirimkan”, Command.OK, 1);
private final Command cmdKembalis =
new Command(“Kembali”, Command.BACK, 0);
public mySms() {
bukaKoneksi();
display = Display.getDisplay(this);
alert = new Alert(null);
alert.setTimeout(Alert.FOREVER);
list = new List(null, Choice.IMPLICIT);
rs = null;
//membuat atau membuka record store
try {
rs = RecordStore.openRecordStore(“contohDB”, true);
} catch (RecordStoreException rse) {
alert.setString(“Record store tidak dapat dibuka. ” +
“Aplikasi akan dihetikan”);
alert.setType(AlertType.ERROR);
display.setCurrent(alert, null);
System.exit(1);
}
formKirim = new Form(“SMS”);
//port = “50000″;
port = getAppProperty(“portSMS”);
textSmsMasuk = new TextBox(null, null, 500, TextField.ANY);
textSmsKeluar = new TextBox(“Tulis Pesan”, null,500, TextField.ANY);
textNo = new TextField(“Penerima”, “”,15, TextField.PHONENUMBER);
}
public void startApp() {
formMenu = new Form(“Demo RMS”);
choicegroup = new ChoiceGroup(“Menu:”, Choice.EXCLUSIVE);
choicegroup.append(“Tulis Pesan”, null);
choicegroup.append(“Tambah PhoneBook”, null);
choicegroup.append(“Daftar PhoneBook”, null);
formMenu.append(choicegroup);
formMenu.addCommand(cmdKeluar);
formMenu.addCommand(cmdPilih);
formMenu.setCommandListener(this);
display.setCurrent(formMenu);
}
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 commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdPilih) {
switch (choicegroup.getSelectedIndex()) {
case 0: {
tulisSms();
break;
}
case 1: {
entriData();
break;
}
case 2: {
lihatRecord();
break;
}
}
} else if (c == cmdKembali) {
display.setCurrent(formMenu);
} else if (c == cmdSimpan) {
alert.setType(AlertType.INFO);
if (!tfNama.equals(“”) && !tfNoTelp.equals(“”)) {
tambahRecord(tfNama.getString(), tfNoTelp.getString());
alert.setString(“Data baru telah berhasil disimpan”);
display.setCurrent(alert, formMenu);
} else {
alert.setString(“Data NAMA dan NO. TELP ” +
“tidak boleh kosong”);
display.setCurrent(alert, entri);
}
} else if (c == cmdHapus) {
int pos =
list.getString(list.getSelectedIndex()).indexOf(” [");
String nama = list.getString(
list.getSelectedIndex()).substring(0, pos);
hapusRecord(nama);
} else if (c == cmdKirim) {
masukNo();
} else if (c == cmdClr) {
textSmsKeluar.setString("");
} else if (c == cmdKirimkan) {
isiSmsKeluar = textSmsKeluar.getString();
textSmsKeluar.setString("");
kirim();
} else if (c == cmdKembalis) {
textNo.setString("");
display.setCurrent(textSmsKeluar);
}
}
public void tambahRecord(String nama, String noTelp) {
byte[] temp = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
dos.writeUTF(noTelp);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void lihatRecord() {
byte[] temp = null;
list.setTitle(“Daftar Record”);
list.deleteAll();
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
String noTelp = dis.readUTF();
list.append(nama + ” [" + noTelp + "]“, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
list.addCommand(cmdKembali);
list.addCommand(cmdHapus);
list.setCommandListener(this);
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void hapusRecord(String nama) {
byte[] temp = null;
try {
UrutNama un = new UrutNama();
re = rs.enumerateRecords(null, un, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String vNama = dis.readUTF();
if (vNama.equals(nama)) {
rs.deleteRecord(i);
break;
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
re.rebuild();
lihatRecord();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public Form entriData() {
entri = new Form(“Entri Data”);
tfNama = new TextField(“Nama:”, null, 25, TextField.ANY);
tfNoTelp = new TextField(“No. Telepon:”, null, 15,
TextField.PHONENUMBER);
entri.append(tfNama);
entri.append(tfNoTelp);
entri.addCommand(cmdSimpan);
entri.addCommand(cmdKembali);
entri.setCommandListener(this);
display.setCurrent(entri);
return entri;
}
public void tulisSms() { //membuat textbox untuk menulis sms baru
textSmsKeluar.addCommand(cmdKirim); //add command untuk kirim
textSmsKeluar.addCommand(cmdClr); // add command untuk clear text
textSmsKeluar.addCommand(cmdKembali); //add command untuk kembali kemenu awal
textSmsKeluar.setCommandListener(this);
display.setCurrent(textSmsKeluar);
}
public void masukNo() { //disini untuk memasukan nomor tujuan yang mau dikirimi sms
formKirim.setTitle(“Sms Siap Dikirim”); //
formKirim.append(textNo); //menambahkan textField untuk nomor tujuan
formKirim.addCommand(cmdKembalis); //menambahkan command untuk kembali ke menu awal
formKirim.addCommand(cmdKirimkan); //menambahkan command untuk mengirim
formKirim.addCommand(cmdCont); //menambahkan command untuk mengirim
formKirim.setCommandListener(this);
display.setCurrent(formKirim);
}
public void kirim() { //disini sms yang udah ditulis dikirim dengan perintah dibawah ini
new Thread(new Runnable() {
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) { //ini untuk tempat membaca sms yang masuk
String nonya = fixNomer(no);
textSmsMasuk = new TextBox(“Sms From:” + nonya + ” ” + tgl, isi,
isi.length(), TextField.ANY);
textSmsMasuk.addCommand(cmdBalas);
textSmsMasuk.addCommand(cmdKembali);
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 disini itu
String hs = null;
hs = no.substring(6, no.length());
return hs;
}
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);//ini memasukan sms yg diterima ke textbox
}
tutupKoneksi();
bukaKoneksi();
} catch (IOException e) {
}
}
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null) {
done = false;
thread = new Thread(this);
thread.start();
}
}
class UrutNama implements RecordComparator {
public int compare(byte[] record1, byte[] record2) {
String nama1 = new String(record1);
String nama2 = new String(record2);
int hasil = nama1.compareTo(nama2);
if (hasil 0) {
return RecordComparator.FOLLOWS;
} else {
return RecordComparator.EQUIVALENT;
}
}
}
}
black_hole says:
Juni 11th, 2009 at 08:02
mas saya punya masalah saya sedang menyusun TA dan saya mengenkripsi pesan singkat ada gak punya codenya atau mohon bantuannya …..
black_hole says:
Juni 17th, 2009 at 07:14
ini email saya mas power_murep@yahoo.co.id
ricky says:
Juni 23rd, 2009 at 14:41
maswawa, thx.. kalo SMS counter ada ngga? butuh nih buat referensi.. Thx..
geg says:
Juli 2nd, 2009 at 14:22
mo tanya ni mas,. bisa nga sih project(kode) program diatas diubah menjadi project wtk(emulator J2ME buatan SUN)?? ato dengan kata lain kita tidak perlu menggunakan aplikasi netbeans samasekali.
klo bisa, skalian kasi tau cara dan bagian mana aja yang harus diubah. mohon bantuanya.. thxb4.
MasWawa says:
Juli 11th, 2009 at 07:27
@geg: bisa banget…. netbeans sendiri itukan menggunakan WTK nya SUN.
MasWawa says:
Juli 11th, 2009 at 07:29
@ricky: untuk sms counter dengan J2me tentunya bisa jika aplikasi sms itu dibuat dengan j2me juga…. tapi kalau untuk mencounter sms dari aplikasi sms bawaan handphone saya belum pernah tahu…. coba dengan Symbian..
MasWawa says:
Juli 11th, 2009 at 07:31
@black_hole: sama seperti TA saya dullu.. :d
MasWawa says:
Juli 11th, 2009 at 07:33
@san: kode diatas buat di class Midlet, bukan class biasa.,
MasWawa says:
Juli 11th, 2009 at 07:34
@haha: cek kembali, tuh kesalahannya katanya class smKu tidak ditemukan, coba perhatikan penulisan nama class..
MasWawa says:
Juli 11th, 2009 at 07:36
@sadapz: maksud anda limit char itu jumlah karaternya yah? dengan j2me bisa kok lebih dari 2 sms
black_hole says:
Juli 19th, 2009 at 05:44
sama yah mas mohon bantuan nya mas klo bisa dikirimin di email saya terima kasih…
sadapz says:
Juli 28th, 2009 at 02:46
bener mas, batas karakter. ternyata bisa. makasi ya.. btw kalau boleh saya juga mau source code tentang mengenkripsi pesan singkatnya mas. itu pake bouncy castle g ya? thx b4.
sadapz says:
Agustus 1st, 2009 at 00:49
mas kemaren saya tu uda dl bouncy catlenya
saya dapet byk jarnya… tapi tdk tahu pakai yg mana… trus cara pakainya gmn? (setelah add jar to prject) saya harus namabahin apa d codingannya? kita butuh class ap? thx b4 4 d info.
Rachmat says:
Oktober 16th, 2009 at 12:55
mas wawa terima kasih codenya dah saya download tapi ketika saya “build” aplikasi tidak menunjukkan error bahkan berjalan ketika di “Run”. tapi ketika tombol dibawah “launch” ditekan. aplikasi tidak berjalan tapi kembali lagi ke tampilan awal setelah ada pertanyaan “is it Ok to Communicate via message”. dan saya pilih “yes”. Mohon penjelasannya…
MasWawa says:
Oktober 18th, 2009 at 08:57
@rachmat : kembali ketampilan awal seperti belum running atau tampilan seperti dalam screenshoot yg paling atas mas?
pertanyaan “is it Ok to Communicate via message” yg keluar itu adalah permission ketika aplikasi membuka port untuk menerima sms. di j2me selalu begitu. ketika mengirim sms juga akan selalu begitu.
Rachmat says:
Oktober 19th, 2009 at 06:58
kembali ke tampilan awal seperti belum running mas.bahkan sampai saya tunggu selama 30menit tetap saja seperti semula saya coba pake netbeans maupun dengan WTk 2.2. tapi sama sekali tidak menunjukkan adanya error (succesful) setelah di “build”. Apa ada pengaruh dengan memori mas? soalnya saya pake P3 XP SP3 256MB? tambahan untuk gambar yang berformat .png saya letakkan di C:\java. mohon penjelasannya, terima kasih mas…
MasWawa says:
Oktober 20th, 2009 at 20:48
@rachmat : berarti ada error tuh ketika aplikasi start. naahh itu, kayaknya baca path gambar png nya tuh yang error.
harusnya dimasukkan saja satu folder dengan projectnya.
Rachmat says:
Oktober 21st, 2009 at 16:49
oh Iya mas terima kasih smsnya dah bisa…ternyata memang kesalahannya saya salah meletakkan gambar .png sehingga pada aplikasi pemanggilan gambar aplikasi tidak mengenali letak gambarnya… sekali lagi saya ucapkan terimakasih maju terus mas bersama J2ME nya.
andro says:
November 5th, 2009 at 20:05
mlm mas, saya mau bwt kamus hp pk jwtk, tp saya mau pk btbse nya dari luar (file teks) soalnya kl pk rms aplksi nya jadi besar, kan kamus kata2x bnyak… thanks b4
andro says:
November 5th, 2009 at 20:07
gmana ya crax??? oh ya mas, kl bsa bls lwt email aja… thanks
danang says:
November 10th, 2009 at 02:16
mas mo tanya nich apakah RMS bisa digunakan untuk operasi aritmatika seperti perkalian, pangkat, dan akar sebagai pembading data yang baru di inputkan???
misalnya tabel dari RMS datanya terdiri dari beberapa record dibandingkan dengan data yang baru dinputkan dengan jumlah record yang sama…
dengan rumus di = √((X_2i-X_1i )^2 )..
thanks
CoproZ says:
Desember 8th, 2009 at 10:47
Halo mas, cuma mau tanya nih. yang fungsi split (public static String[] split(String a, String delimeter)) itu benernya buat apa sih? Yang dipisah string apa ya? Apa string isi pesannya?
sadapz says:
Desember 23rd, 2009 at 17:21
mas makasi banyak ya contohnya… sangat berguna… saya sekarang sudah lulus.. keep posting ya mas.. demi kemajuan ilmu pengetahuan indonesia.
akhmad haerudin says:
Januari 2nd, 2010 at 14:51
kalo ada report error kaya gini kenapa ya mas
exists.user.properties.file:
load-properties:
exists.platform.active:
exists.platform.configuration:
exists.platform.profile:
basic-init:
C:\Users\CA\Desktop\mas_sms\nbproject\build-impl.xml:57: Platform home (platform.home property) is not set. Value of this property should be Sun Java(TM) Wireless Toolkit 2.5.2 for CLDC emulator home directory location.
BUILD FAILED (total time: 0 seconds)
ulvha says:
Januari 6th, 2010 at 15:12
slm knal mas,,
Q ulvha..
mas,,ada g cntoh aplikasi pembukan j2me??
Q bth bgt buat referensi TA
zain says:
Januari 27th, 2010 at 10:05
mas kalo untuk nyimpan inbox berupa MMS sm ndak? trus gimana source codenya untuk memasukkan image bukan insret pada program tapi capture langsung dikamera n file manager di hp,,thannks.
Dhoni says:
Februari 10th, 2010 at 09:03
Mas mawa mau nanya nih..saya kan buat program kompres sms trus ngirimnya dalam bentuk binary tp yg terjadi malah hasill kompresi lebih besar dari aslinya soale saya konversi ke hexa..punya solusi ndak mas untuk mengoptimalkan hasil kompresi..thank’s
marfuah says:
Maret 6th, 2010 at 20:07
mas wawa..terima kasih atas ilmunya…
Insya Allah akan saya kembangkan lg.
wahyu says:
April 14th, 2010 at 01:03
mas ada udah saya compile program ini,,cuma waktu saya launch gak bisa mas ada pesan error bgini mas…
java.io.IOException
at javax.microedition.lcdui.ImmutableImage.getImageFromStream(+15)
at javax.microedition.lcdui.ImmutableImage.(+20)
at javax.microedition.lcdui.Image.createImage(+8)
at smsKu.menuForm(+6)
at smsKu.startApp(+8)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+116)
itu knpa ya mas??thx
vio says:
April 20th, 2010 at 08:52
mas, saya mo mnt tlong..
mdh2n mas bs membantu saya..
saya sdh mencoba aplikasi sms yang dibuat mas ini..
tp masih banyak syntax2 yang belm saya mngerti bsrta kgunaanY..
mas bs kasih tau saya ???
soal’Y saya mo mempresentasikannya…
sblmY terimakasih …
Novitasari says:
April 29th, 2010 at 14:03
mas, bs kasih command di setiap syntaxnya ga ???
makasih..
Novitasari says:
Mei 4th, 2010 at 08:28
mas, bs tlong kasih command ga d setiap syntax’y…
makasih..
Ali says:
Juni 1st, 2010 at 16:56
Mas tanya…mengapa teks sms yg aq kompres itu hasilnya seperti ini ” [B@f828ed68 ” padahal seharusnya kan seperti ini : ” 3lØÏÜJ)Y§åJ$6¡,¶YOÏÉ¿>Ø^c,@&UèkihÇQvòÑlpÖeè?Üd¥+¶CBh1[9Éx=pC_¥%_NR&5h~-Öha(Öq¿ ”
apakah itu karakter yg perlu diconvert dulu sebelum ditampilkan di textbox ?
marvin_juliandry says:
Juni 17th, 2010 at 05:37
mas saya mw nyusun TA saya sangat tertarik dengan aplikasi yang mas buat ini??saya mohon izin mas untuk…untuk membuat aplikasi ini sebagai TA saya ???kalau boleh saya minta source code nya lengkap dengan penjelasan nya???makasih banyak mas??semoga mas makin sukses selalu??replay ya mas ke mail say>>>marfinl@yahoo.com
tiwencyberlink says:
Juni 23rd, 2010 at 14:51
mas kenapa yach setiap project yg saya jalankan pasti salahnya disini….
“java.lang.ClassNotFoundException: smsKu”
Bukan cuma project SMSKU tapi juga yang lainnya…
Makasih mas…