Configuration Library
JVM
Sistem Operasi
b. NetBeans IDE
NetBeans IDE adalah IDE ( integrated development environment )
open source yang ditulis sepenuhnya dengan bahasa pemrograman
Java menggunakan platform NetBeans. NetBeans IDE mendukung
pengembangan semua tipe aplikasi Java (J2SE, web, EJB, dan aplikasi
mobile). Fitur lainnya adalah sistem proyek berbasis Ant, kontrol versi,
dan refactoring.
Group Package
Nama Package
Library Project
e. Membuat Class
Untuk membuat class baru adalah dengan cara:
Klik kanan pada Package class baru yang dituju dan pilih Java class…
Isi class.
Name dengan nama class baru anda Finish.
Contoh : Buat class baru dengan nama “Hello.java” pada package
Latihan. Caranya klik kanan pada package LatihanJava Class …
package latihan;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package latihan;
/
*
*
*
* @author ichwan
*/
public class Hello {
public static void main(String[] args) {
System.out.print("Hallo Dunia ....!");
}
}
f. Membuat Package
Untuk membuat package baru adalah dengan cara klik kanan pada
Source Packages New Java Package
h. Merancang Tampilan
Sebelum meletakan poses maka dibuat dulu rancangan tampilan
yang, diletakan pada komponen jFarame. Mengabil komponen Pallete:
Klik dan pilih Swing Control Pilih dan Klik jLabel tarik mouse
letakkan pada halaman Form, Seperti terlihat pada gambar.
private void
formWindowOpened(java.awt.event.WindowEvent evt) {
jTextFieldKeluaran.setText(jTextFieldMasukan.getText());}
Penjelasan:
jTextFieldMasukan.getText(); mengambil atau membaca nilai isi dari
isian jTextFieldMasukan, memberikan nilainya ke
jTextFieldKeluaran.setText(…..)
A. Sandi Affine
Affine Cipher pada metode affine adalah perluasan dari metode Sandi Chaesar,
yang mengalihkan plainteks dengan sebuah nilai dan menambahkannya dengan sebuah
pergeseran P menghasilkan cipherteks C dinyatakan dengan fungsi kongruen
𝐶 ≡ 𝑚𝑃 + 𝑏(𝑚𝑜𝑑 𝑛)
Dimana n adalah ukuran alphabet, m adalah bilangan bulat yang harus relative
prima dengan n (jika tidak relative prima, maka deskripsi tidak bisa dilakukan) dan b
adalah jumlah pergeseran (Caesar Chiper adalah khusus dari affine chipper dengan
m=1). Untuk melakukan deskripsi, persamaan di atas harus dipecahkan untuk
memperoleh P. Solusi kekongruenan tersebut hanya ada jika invers m(mod n)
dinyatakan dengan 𝑚−1 . Jika 𝑚−1 ada maka deskripsi dilakukan dengan persamaan
sebagai berikut:
𝑃 ≡ 𝑚−1 (𝐶 − 𝑏)(𝑚𝑜𝑑 𝑛)
B. Aplikasi Java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vigenere;
/**
*
* @author Guest
*/
public class Main {
int m = key.length();
plain = plain.toUpperCase().trim();
key = key.toUpperCase();
byte[] bytePlainText = plain.getBytes();
byte[] byteCipherText = new byte[plain.length()];
byte[] byteKey = key.getBytes();
A. Sandi Vigenere
Sandi Vigenère sebenarnya merupakan pengembangan dari sandi Caesar. Pada
sandi Caesar, setiap huruf teks terang digantikan dengan huruf lain yang memiliki
perbedaan tertentu pada urutan alfabet. Misalnya pada sandi Caesar dengan geseran 3,
A menjadi D, B menjadi E and dan seterusnya. Sandi Vigenère terdiri dari beberapa
sandi Caesar dengan nilai geseran yang berbeda. Untuk menyandikan suatu pesan,
digunakan sebuah tabel alfabet yang disebut tabel Vigenère (gambar). Tabel Vigenère
berisi alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan
ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan sandi Caesar. Setiap
huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci
yang diulang
Misalnya, teks terang yang hendak disandikan adalah perintah "Serbu Berlin":
serbuberlin
Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza". "PIZZA"
diulang sehingga jumlah hurufnya sama banyak dengan teks terang:
PIZZAPIZZAP
atau C = P + K kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26 dan
dekripsi,
Key: KAMPUSKAMP
Ciphertext: CTUZIELAXX
Pada contoh diatas kata kunci KAMPUS diulang sedemikian rupa hingga
panjang kunci sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi
vigenere plainteks huruf pertama S (yang memiliki nilai Pi=18) akan dilakukan
pergeseran dengan huruf K (yang memiliki Ki=10) maka prosesnya sebagai berikut:
Ci = ( Pi + Ki ) mod 26
= (18 + 10) mod 26
= 28 mod 26
=2
char mapPesanCr []
={'_','A','B','C','D','E','F','G','H','I','J','K','L','M','N
','O','P','Q','R','S','T','U','V','W','X','Y','Z','∑'};
char chPesan;
char chPass;
int nilaiPesan = 0;
int nilaiPass=0;
int [] hasilEnkrip;
int hasilDekripsi[];
String hasilEnkripsiStr;
String hasilDekripsiStr;
System.out.println("\n==============================");
}
}
hasilEnkripsiStr+=Character.toString(mapPesanCr[j]);
}
}
}
}
hasilDekripsi[i]=hasilDekripsi[i]+mapPesanCr.length;
System.out.println("Nilai if benar :
"+hasilDekripsi[i]);
}else if(hasilDekripsi[i]>0){
hasilDekripsi[i]=hasilDekripsi[i];
System.out.println("Nilai if salah :
"+hasilDekripsi[i]);
}
hasilDekripsiStr+=Character.toString(mapPesanCr[j]);
}
}
}
}
A. Sandi RSA
Algoritma kunci-publik yang paling terkenal dan paling banyak aplikasinya.
Ditemukan oleh tiga peneliti dari MIT (Massachussets Institute of Technology), yaitu
Ron Rivest, Adi Shamir, dan Len Adleman, pada tahun 1976. Keamanan algoritma
RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor
prima.
p dan q bilangan prima (rahasia)
n=pq (tidak rahasia)
(n) = (p – 1)(q – 1) (rahasia)
e (kunci enkripsi) (tidak rahasia)
Syarat: PBB(e, (n)) = 1
m (plainteks) (rahasia)
c (cipherteks) (tidak rahasia)
1. Enkripsi
Nyatakan pesan menjadi blok-blok plainteks: m1, m2, m3, … ( syarat: 0 <
mi < n – 1). Hitung blok cipherteks ci untuk blok plainteks pi dengan
persamaan ci = mie mod n yang dalam hal ini, e adalah kunci publik.
2. Dekripsi
Proses dekripsi dilakukan dengan menggunakan persamaan mi = cid mod
n, yang dalam hal ini, d adalah kunci privat.
1 (k 3220)
d
79
B. Aplikasi Java
RSA Algorithm
/* C program for the Implementation Of RSA Algorithm */
#include< stdio.h>
#include< conio.h>
int phi,M,n,e,d,C,FLAG;
int check()
{
int i;
for(i=3;e%i==0 && phi%i==0;i+2)
{
FLAG = 1;
return;
}
FLAG = 0;
}
void encrypt()
{
int i;
C = 1;
void decrypt()
{
int i;
M = 1;
for(i=0;i< d;i++)
M=M*C%n;
M = M%n;
printf("\n\tDecrypted keyword : %d",M);
}
void main()
{
int p,q,s;
clrscr();
printf("Enter Two Relatively Prime Numbers\t: ");
scanf("%d%d",&p,&q);
n = p*q;
phi=(p-1)*(q-1);
printf("\n\tF(n)\t= %d",phi);
do
{
printf("\n\nEnter e\t: ");
scanf("%d",&e);
check();
}while(FLAG==1);
d = 1;
Memiliki pola:
B. Aplikasi Java
package Program;
public class DeskripsiPanel extends javax.swing.JPanel {
String mem;
public DeskripsiPanel() {
initComponents();
}
private void DeqActionPerformed(java.awt.event.ActionEvent
evt) {
//==========================================================
============
mem=pesanok.getText();
for (int fix = 0; fix <= 20; fix++) {
hsilensq.setText(null);
//==========================================================
============
//menentukan banyak simpul untuk karekter ganjil dan
genap
//==========================================================
============
if (moduluspesan > 0) {
simpul2 = (panjangpesan + 1) / 2;
System.out.println("Kita masuk mode ganjil");
}
if (moduluspesan == 0) {
simpul2 = (panjangpesan + 2) / 2;
System.out.println("Kita masuk mode genap");
}
//==========================================================
============
System.out.println("Jumlah karakter " +
panjangpesan);
int a = -4;
int b = -2;
int c = -1;
int mem1 = simpul2 - 1; //menghitung banyak sisi
//==========================================================
============
//menghitung hasil simpul genap untuk banyak simpul
ganjil atau genap
//==========================================================
============
if (simpul2 % 2 > 0) {
//==========================================================
============
for (int x = 1; x <= simpul2; x = x + 2) {
a = a + 4;
int hasilsimpulganjil = (1 + x) / 2;
nilai[a] = hasilsimpulganjil;
}
//==========================================================
============
for (int y = 1; y <= mem1; y++) {
c = c + 2;
int sisi = (2 * simpul2) - y;
nilai[c] = sisi;
}
//==========================================================
============
//menampilkan simpul ganjil,genap dan sisi
//==========================================================
============
System.out.println("pasword " + (nilai[1] + nilai[0]
+ nilai[2]));
if (moduluspesan == 1) {
//==========================================================
============
//enskripsi
//==========================================================
============
System.out.println("Hasil deq");
//for (int fix=0;fix<=10;fix++){
for (int d = 0; d < panjangpesan; d++) {
String t = pesan.substring(d, d + 1);
int ty
=nilai[0]+nilai[1]+nilai[panjangpesan-1];
String gracias=String.valueOf(ty);
String order=gracias+"49";
ty=Integer.parseInt(order);
int zaraa=Integer.parseInt(pass.getText());
//==========================================================
============
if(zaraa==ty)
{
char[] arrCharStr = t.toCharArray();
for (char adi : arrCharStr) {
int k = (int) adi;
k = k - 32;
if (d % 2 == 0) {
int enq = ((48 * (k - nilai[d])) %
95);
if (enq >= 0) {
enq = enq + 32;
hsilensq.append(String.valueOf(ok));
}
else {
enq = enq + 95 + 32;
char ok = (char)enq;
System.out.println("eroor
negatif" + enq + "|" + (char) enq);
//if
(String.valueOf(ok).equals("`") == true){ok='\n';}
hsilensq.append(String.valueOf(ok));
}
}
if (d % 2 == 1) {
int enq = ((93 * (k - nilai[d])) %
95);
if (enq >= 0) {
enq = enq + 32;
char ok = (char)enq;
System.out.println("nilai a
invrs: 93 | nilai asci :"+k+" |nilai bil ajaib :"+nilai[d]+"
|"+enq);
System.out.println("eroor
positif" + enq + "|" + (char) enq);
// if
(String.valueOf(ok).equals("`") == true){ok='\n';}
hsilensq.append(String.valueOf(ok));
}
else {
hsilensq.append(String.valueOf(ok));
}
}
}
else{hsilensq.setText(pesanok.getText());
}
}pesanok.setText(hsilensq.getText());}
hsilensq.setText(null);
String pesan1 = "";
String car = "";
String pesan = pesanok.getText();
int simpul2 = 0;
int panjangpesan = pesan.length();
int nilai[] = new int[panjangpesan + 1];
int moduluspesan = panjangpesan % 2;
//==========================================================
============
//menentukan banyak simpul untuk karekter ganjil dan
genap
//==========================================================
============
if (moduluspesan > 0) {
simpul2 = (panjangpesan + 1) / 2;
System.out.println("Kita masuk mode ganjil");
}
if (moduluspesan == 0) {
simpul2 = (panjangpesan + 2) / 2;
System.out.println("Kita masuk mode genap");
}
//==========================================================
============
//menghitung hasil simpul genap untuk banyak simpul
ganjil atau genap
//==========================================================
============
if (simpul2 % 2 > 0) {
for (int x = 2; x <= simpul2; x = x + 2) {
b = b + 4;
int hasilsimpulgenap = (simpul2 + 1 + x) /
2;
nilai[b] = hasilsimpulgenap;
}
}
if (simpul2 % 2 == 0) {
for (int x = 2; x <= simpul2; x = x + 2) {
b = b + 4;
int hasilsimpulgenap = (simpul2 + x) / 2;
nilai[b] = hasilsimpulgenap;
}
}
//==========================================================
============
for (int x = 1; x <= simpul2; x = x + 2) {
a = a + 4;
int hasilsimpulganjil = (1 + x) / 2;
nilai[a] = hasilsimpulganjil;
}
//==========================================================
============
//menampilkan simpul ganjil,genap dan sisi
//==========================================================
============
System.out.println("pasword " + (nilai[1] + nilai[0]
+ nilai[2]));
if (moduluspesan == 1) {
for (int d = 0; d < panjangpesan; d++) {
System.out.println(nilai[d]);
}
}
if (moduluspesan == 0) {
for (int d = 0; d <= panjangpesan; d++) {
System.out.println(nilai[d]);
}
}
//==========================================================
============
//enskripsi
//==========================================================
============
System.out.println("Hasil deq");
//for (int fix=0;fix<=10;fix++){
for (int d = 0; d < panjangpesan; d++) {
String t = pesan.substring(d, d + 1);
int ty
=nilai[0]+nilai[1]+nilai[panjangpesan-1];
//==========================================================
============
if(zaraa==ty)
{
char[] arrCharStr = t.toCharArray();
for (char adi : arrCharStr) {
int k = (int) adi;
k = k - 32;
if (d % 2 == 0) {
int enq = ((48 * (k - nilai[d])) %
95);
if (enq >= 0) {
enq = enq + 32;
char ok = (char) enq;
System.out.println("nilai a
invrs: 48 | nilai asci :"+k+" |nilai bil ajaib :"+nilai[d]+"
|"+enq);
System.out.println("eroor
positif" + enq + "|" + (char) enq);
if
(String.valueOf(ok).equals("`") == true){ok='\n';}
hsilensq.append(String.valueOf(ok));
}
else {
enq = enq + 95 + 32;
char ok = (char)enq;
System.out.println("eroor
negatif" + enq + "|" + (char) enq);
if
(String.valueOf(ok).equals("`") == true){ok='\n';}
hsilensq.append(String.valueOf(ok));
}
hsilensq.append(String.valueOf(ok));
}
else {
enq = enq + 95 + 32;
char ok = (char)enq;
System.out.println("eroor
negatif" + enq + "|" + (char) enq);
if
(String.valueOf(ok).equals("`") == true){ok='\n';}
hsilensq.append(String.valueOf(ok));
}
}
}
else{hsilensq.setText(pesanok.getText());
}
}
//====================selesai disini================
pesanok.setText(mem);
2. EditorSMS.java
import javax.microedition.midlet.*;
import com.sun.cldc.i18n.uclc.DefaultCaseConverter;
import java.util.Date;
import javax.wireless.messaging.*;
import javax.microedition.io.Connector;
import javax.microedition.io.PushRegistry;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.MessageListener;
import java.io.*;
import java.util.TimeZone;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
/**
* @author Rahma
*/
public class EditorSMS extends MIDlet implements
CommandListener ,MessageListener,Runnable {
//deklarasi variabel
private Kompres ackomp;
Font hrf;
char sttsdecrypt;
port="4321";
tekstick = new Ticker("Aplikasi Kriptografi SMS");
PesanMasuk = new List("Pesan Masuk", List.IMPLICIT);
PesanKeluar = new List("Pesan Keluar", List.IMPLICIT);
//Isi Objek
menuUtama();
FormAbout();
tulisSms();
hasilEncrypt();
IsiNoTelp();
formKotakMasuk();
formKotakKeluar();
tmplSmsCrypt();
AlertInfoSmsMasuk();
alertTdkTerkrm();
MkonfirHapus();
MkonfirHapusKeluar();
BukaPesanCrypt();
LoadSuara();
}
//memasukkan gambar
private void loadGambar(){
try {
InfoSmsMasuk =
Image.createImage("/Gambar/sms_masuk.png");
iTlsPsn =
Image.createImage("/Gambar/mn_tls_sms.png");
iKtkMsk =
Image.createImage("/Gambar/mn_sms_msk.png");
iKtkKlr =
Image.createImage("/Gambar/mn_sms_klr.png");
iHpsKtkMsk =
Image.createImage("/Gambar/mn_sms_hps_msk.png");
iHpsKtkKlr =
Image.createImage("/Gambar/mn_sms_hps_klr.png");
iSmsSdh =
Image.createImage("/Gambar/sms_msk_sdh.png");
iSmsBlm =
Image.createImage("/Gambar/sms_msk_blm.png");
smskel = Image.createImage("/Gambar/sms_kel.png");
iMnz = Image.createImage("/Gambar/mnmz_app.png");
infoMasuk.setCommandListener(this);
display.setCurrent(infoMasuk);
//<<<< GUI
}
tutupKoneksi();
Koneksi();
} catch (IOException e) {
}
}
try{
InfoSmsMasuk(senderAddress);
} catch (Exception e){}
closeConn();
openConn();
} catch (IOException e) {
System.out.println("salah di
penerimaan"+e);
}
}
public void openConn() {
String smsConnection = "sms://:" + port;
done = true;
thread = null;
try {
smsconn = (MessageConnection)
Connector.open(smsConnection);
smsconn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
display.setCurrent(InfoKunci);
key.setString(null);
} else {
StringBuffer fixteks = new
StringBuffer(teks.getString());
while(fixteks.length()<5){
fixteks.append(" ");
}
if(fixteks.length()%2==0){
fixteks.append(" ");
}
Pelabelan(fixteks.toString(),tmpKey);
}
}
}
}
if(c==hapusNomor){
noHp.setString(null);
}
display.setCurrent(InfoKunci);
key.setString(null);
} else {
StringBuffer fixteks = new
StringBuffer(teks.getString());
while(fixteks.length()<5){
fixteks.append(" ");
}
if(fixteks.length()%2==0){
fixteks.append(" ");
}
Pelabelan(fixteks.toString(),tmpKey);
}
}
}
}
PesanMasuk.setSelectedIndex(PesanMasuk.getSelectedIndex
(), true);
display.setCurrent(PesanMasuk);
}
}
if (d==teksCrypt){
if(c.getLabel()=="Read"){
display.setCurrent(bukaPesanCrypt);
}
display.setCurrent(InfoKunci);
return;
}
int
tmpKey=Integer.parseInt(keybuka.getString());
if(tmpKey==0){
InfoKunci.setString("Kunci
tidak boleh nol");
display.setCurrent(InfoKunci);
key.setString(null);
} else if(inversKey(tmpKey)<0){
InfoKunci.setString("Angka
invers tidak ditemukan, kunci harus diganti");
display.setCurrent(InfoKunci);
display.setCurrent(InfoKunci);
return;
}
int
tmpKey=Integer.parseInt(keybuka.getString());
if(tmpKey==0){
InfoKunci.setString("Kunci
tidak boleh nol");
display.setCurrent(InfoKunci);
key.setString(null);
} else if(inversKey(tmpKey)<0){
InfoKunci.setString("Angka
invers tidak ditemukan, kunci harus diganti");
display.setCurrent(InfoKunci);
} else {pelabelanBacaKeluar(SmsEnc,
inversKey(tmpKey));}
}
}
if(c.getLabel()=="Batal"){
if(sttsdecrypt=='m'){
display.setCurrent(PesanMasuk);
}
}
if(d==about){
if(c.getLabel()=="Kembali"){
display.setCurrent(plhMenu);
}
}
if(d==konfirKel){
if(c.getLabel()=="Ya"){
destroyApp(true);
notifyDestroyed();
}
if(c.getLabel()=="Tidak"){
display.setCurrent(plhMenu);
A. Huffman
Perkembangan teknologi informasi mempengaruhi berbagai sisi bidang
kehidupan manusia. Salah satu penyampaian informasi secara elektronik adalah pesan
singkat atau SMS (Short Message Services). Dalam kehidupan sehari-hari, fasilitas
SMS menjadi pilihan banyak orang untuk berkomunikasi karena relatif murah, mudah,
jelas dan cepat.
Disamping keunggulan murah dan cepat, tetapi layanan SMS membatasi jumlah
karakter yang dapat dikirimkan oleh penggunanya. Sebuah pesan SMS yang berupa
teks terbatas hanya 160 karakter 7-bit standar GSM (Global System for Mobile) dalam
satu kali pengiriman, jika SMS memuat lebih dari 160 karakter, maka pesan tersebut
harus dibagi menjadi beberapa kali pengiriman. Mengakibatkan biaya akan dikalikan
dengan banyaknya pengiriman pesan tersebut. Batasan tersebut sering kali menjadi
kendala dalam berkomunikasi. Sehingga, penghematan pengiriman pesan SMS yang
cukup panjang dapat menggunakan teknik kompresi. Salah satu teknik kompresi yaitu
metode Huffman.
Metode Huffman merupakan metode yang terkenal handal untuk digunakan
pada kompresi teks, mudah diimplementasikan, waktu proses kompresi terbilang
cepat, tidak membutuhkan memori pemroses yang besar, sehingga cocok untuk HP
yang memiliki kemampuan pemrosesan terbatas.
1. Encoding Kode Huffman
Proses untuk melakukan pembentukan kode dari suatu data tertentu disebut
encoding. Kode Huffman didapatkan dengan membaca setiap kode dari daun
hingga ke akar pohon Huffman. Ketika suatu kode Huffman telah dibentuk,
suatu data dapat mudah di encode dengan mengganti setiap simbol
menggunakan kode yang telah dibentuk.
B. Aplikasi Java
1. MainMenu.java
import java.io.*;
import javax.microedition.lcdui.*;
/**
*
* @author Fmanda
*/
public class MainMenu extends List implements
CommandListener{
private HuffmanSMS midlet;
private String str;
private int nilai = 0;
private Image image;
2. Splashscreen.java
import javax.microedition.lcdui.*;
import java.util.Timer;
import java.util.TimerTask;
public final class Splashscreen extends Canvas{
private Display display;
private Displayable next;
private int dismissTime;
static int waktu;
static Timer timer;
static TimerTask timertask;
private Image image;
}
public void run()
{
Splashscreen.access(this.splash);
}
}
4. InfoSMS.java
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;
txtmessage.setPayloadText(textMsg);
msgText = txtmessage;
msgConn.send(msgText);
} catch (Throwable t) {
t.printStackTrace();
}
if (msgConn != null) {
try {
msgConn.close();
} catch (IOException ioe) {
ioe.printStackTrace();
5. HuffmanSMS.java
import java.io.*;
import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import javax.microedition.rms.*;
public HuffmanSMS(){
display = Display.getDisplay(this);
mainMenu = new MainMenu(this);
timer = new Timer();
//port ="";
port = "2111";
//numForm = new Form("Nomor");
}
public void startApp() {
new Splashscreen(display, mainMenu, image,
4000);
openConn();
}
public void pauseApp() {
kirim = display.getCurrent();
}
//CODING DI
public void
notifyIncomingMessage(MessageConnection arg0) {
if (thread == null) {
done = false;
thread = new Thread(this);
thread.start();
}
try {
msg = msgConn.receive();
boolean dibaca = false;
Date smsTime = msg.getTimestamp();
String textIn =null;
String senderAddress = null;
if (msg instanceof TextMessage) {
senderAddress =
validNum(msg.getAddress());
textIn = ((TextMessage)
msg).getPayloadText();
}
if (msg instanceof BinaryMessage){
BinaryMessage bm = (BinaryMessage)msg;
byte[] binMsg = bm.getPayloadData();
senderAddress =
validNum(msg.getAddress());
//Dekompres dekomp = new
Dekompres(binMsg);
Kompres dekomp2 = new Kompres();
//textIn = dekomp.getHasilDekomp();
}
try{
simpanSmsin(senderAddress + "|" +
smsTime, dibaca, textIn);
receiveMsgScreen(senderAddress);
} catch (Exception e){}
closeConn();
openConn();
} catch (IOException e) {
System.out.println("salah di
penerimaan"+e);
}
}
public void run() {
while(tulis){
getTextSMS(writeMsg.getString());
}
}
public String validNum(String no) {
String num = null;
num = no.substring(6, no.length());
return num;
}
public void openConn() {
String smsConnection = "sms://:" + port;
done = true;
thread = null;
try {
msgConn = (MessageConnection)
Connector.open(smsConnection);
inboxList.append(nomerTemp[0]+"\n"+dispMsg, image);
} else {
inboxList.append(dispMsg,
image);
}
strmBytes.reset();
strmBytes.close();
strmDataType.close();
numListUmumIn++;
}
if (numListUmumIn != 0) {
inboxList.addCommand(read);
inboxList.addCommand(reply);
inboxList.addCommand(del);
inboxList.addCommand(delAll);
} else {
alertKosong.setType(AlertType.WARNING);
alertKosong.setImage(img);
break;
ByteArrayInputStream strmBytes =
new ByteArrayInputStream(recData);
RecordStore.deleteRecordStore("outbox");
}
outboxList.setTicker(ticker);
ticker.setString("ada " +
rs.getNumRecords() + " sms di outbox");
outboxList.addCommand(exitInOut);
outboxList.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(outboxList);
} else {
displayAlert(INFO, "Outbox Kosong",
image, new MainMenu(this));
}
rs.closeRecordStore();
} catch (IOException ex) {
ex.printStackTrace();
} catch (RecordStoreException 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;
tm.setPayloadText(writeMsg.getString());
System.out.println("pesan :
"+writeMsg.getString());
m = tm;
} else if(c == info.kompres) {
BinaryMessage bm =
(BinaryMessage)msgConn.newMessage(MessageConnection.BI
NARY_MESSAGE, st);
//System.out.println("pesan
kompres : "+Kompres.kompres(tI.getString()));
//bm.setPayloadData(komp.getSMSBytes());
byte[]
hasilackomp=ackomp.kompres(writeMsg.getString());
bm.setPayloadData(hasilackomp);
m = bm;
}
try{
//msgConn.send(m);
Display.getDisplay(this).setCurrent(new
Alert("berhasil", "Alhamdulillah, pesan terkirim..",
null, null), info);
//log(tI.getString());
// tI.delete(0,tI.size());
info.saveOutMsg(info.nomor.getString(),
writeMsg.getString());
}
catch(Exception e){
//log(e.toString());
System.out.println("peringatan:"+e);
}
timer = new Timer();
// timer.schedule(tpi, 2000L, 2000L);
}
else if(c == info.back){
writeMsgScreen();
}
if(d == writeMsg){
if(c == save){
String isiPsn =
writeMsg.getString();
info.saveOutMsg("", isiPsn);
writeMsg.setString(readMsg.getString());
writeMsgScreen();
}else if(c == back){
mainMenuScreen();
}
}
if(d == receiveMsg && c == read){
inbox();
}
RecordStore.deleteRecordStore("inbox");
mainMenuScreen();
}else if(c == exitInOut){
mainMenuScreen();
}
}
}
if(d == outboxList){
int inOut =
outboxList.getSelectedIndex();
int idGOut = idOut[inOut];
if(numListUmumOut != 0){
if(outboxList.isSelected(inOut)){
baca("outbox", idGOut, false);
}
if(c == read){
baca("outbox", idGOut, false);
RecordStore.deleteRecordStore("inbox");
mainMenuScreen();
}else if(c == exitInOut){
mainMenuScreen();
}
}
}
if ((c == exitInOut) || (c == back)) {
mainMenuScreen();
}
} catch (Exception ex){
ex.printStackTrace();
}
}
}