PROPOSAL SKRIPSI IMPLEMENTASI KOMPRESI - ENKRIPSI SMS PADA TELEPHON SELULER BERBASIS J2ME DENGAN ALGORITMA HUFFMAN- VIGENERE CHIPER Trias Fahrudin 1110000356 DOSEN PEMBIMBING Dwi Yulian RL, S.Kom i
PROPOSAL SKRIPSI
IMPLEMENTASI KOMPRESI - ENKRIPSI SMS PADA TELEPHON SELULER BERBASIS J2ME DENGAN ALGORITMA HUFFMAN-VIGENERE CHIPER
Trias Fahrudin
1110000356
DOSEN PEMBIMBING
Dwi Yulian RL, S.Kom
i
LEMBAR PERSETUJUAN
PROPOSAL SKRIPSI
Judul : IMPLEMENTASI KOMPRESI - ENKRIPSI SMS PADA TELEPHON SELULER BERBASIS J2ME DENGAN ALGORITMA HUFFMAN-VIGENERE CHIPER
Oleh : Trias Fahrudin
NIM : 1110000356
telah disetujui untuk diseminarkan
Menyetujui:
Dosen Pembimbing:
1. Dwi Yulian RL, S.Kom
NIDN :
ii
IMPLEMENTASI KOMPRESI-ENKRIPSI SMS PADATELEPHON SELULER BERBASIS J2ME DENGAN ALGORITMA
HUFFMAN-VIGENERE CHIPER
Nama Mahasiswa : Trias FahrudinNIM : 1110000356Pembimbing : Dwi Yulian RL, S.Kom
ABSTRAK
Indonesia merupakan salah satu pasar mobile phone
terbesar di Asia Tenggara dengan sekitar 114,64 juta
pelanggan mobile phone pada tahun 2009, selain itu
volume penggunaan SMS di Indonesia juga tergolong
besar, menurut Acision (Acison.com – penyedia solusi
teknologi SMS yang dipakai oleh operator Telkomsel,
Indosat dan XL), volume SMS pada hari raya lebaran
2009 mencapai 3.4 milyar pesan dalam periode 72 jam
saja, hal ini mengalami peningkatan sekitar 144% dari
tahun lalu yang sebesar 1,4 milyar pesan. SMS sangat
populer diIndonesia karena dianggap sebagai alat
komunikasi yang paling murah, namun SMS tidak menjamin
keamanan bagi penggunaanya, karena dikirim tanpa
melalui enkripsi. Selain itu SMS juga hanya menyediakan
iii
maksimal 160 karakter per-SMS yang dirasa kurang,
sehingga diperlukan metode untuk mengkompresinya.
Algoritma kompresi yang digunakan adalah
algoritma Huffman. Algoritma huffman merupakan
algoritma yang cukup terkenal untuk mengompres teks.
Prinsip yang digunakan oleh algoritma Huffman adalah
karakter yang sering muncul di encoding dengan
rangkaian bit yang pendek dan karakter yang jarang
muncul di encoding dengan rangkaian bit yang lebih
panjang. Teknik kompresi algoritma Huffman mampu
memberikan penghematan pemakaian memori sampai 30% ,
sedangkan untuk enkripsinya digunakan algoritma
Vigenere Chiper. Vigenere cipher merupakan salah satu
kriptografi klasik dengan teknik substitusi. Vigenere
cipher menggunakan suatu kunci yang memiliki panjang
tertentu. Panjang kunci tersebut bisa lebih pendek
ataupun sama dengan panjang plainteks. Jika panjang
kunci kurang dari panjang plainteks, maka kunci yang
tersebut akan diulang secara periodik hingga panjang
kunci tersebut sama dengan panjang plainteksnya
Tujuan utama dari implementasi ini adalah
menyediakan keamanan bagi pengguna SMS dan juga
penghematan biaya karena adanya proses kompresi.
Kata Kunci: SMS,kompresi huffman,kriptografi,enkrispi vigenere
iv
LEMBAR PERSETUJUAN
ABSTRAK ....................................................
............................................................
............iii
v
DAFTAR
ISI ........................................................
............................................................
.....v
DAFTAR
GAMBAR .....................................................
........................................................vii
DAFTAR
TABEL ......................................................
...........................................................v
iii
BAB 1 PENDAHULUAN..........................................1
1.1 Latar Belakang.......................................11.2. Perumusan Masalah...................................2
1.3.Batasan Masalah......................................21.4. Tujuan dan Manfaat Penelitian.......................2
BAB 2 KAJIAN PUSTAKA.......................................32.1 Short Message Service (SMS)..........................3
2.2 Teknologi Java 2.....................................42.3 Java 2 Micro Edition.................................4
2.3.1 Konfigurasi J2ME.................................42.3.2 Profil J2ME.....................................5
2.4 MIDP dan MIDlet......................................52.4.1 Daur Hidup MIDlet...............................5
2.4.2 Antarmuka Pemakai................................62.5 Wireless Messaging API (WMA).........................7
2.5.1 Interface TextMesage dan BinaryMessage...........82.5.2 Interface MessageConnection......................8
2.6 Mengirim SMS........................................10
vi
2.7 Menerima SMS........................................11
2.8 Kompresi Data.......................................112.9 Kode Huffman........................................12
2.4 Dekompresi Algoritma Huffman........................182.10 Kriptografi........................................19
2.10.1 Algoritma Sandi................................202.10.2 Algoritma Kunci Simetris.......................22
2.10.3 Algoritma Kunci Asimetris......................222.11 Kriptografi Vigenere...............................23
BAB III METODE PENELITIAN.................................263.1 Metode Penelitian.................................26
3.2. Rancangan Algoritma................................273.3 Jadwal Kegiatan....................................28
DAFTAR PUSTAKA............................................29
vii
DAFTAR GAMBAR
Gambar 2.1 Daur hidup MIDlet
Gambar 2.2 Hirarki kelas Displayable
Gambar 2.3 Interface pada paket WMA
Gambar 2.4 Diagram alir pohon Huffman
Gambar 2.5 Pembuatan node
Gambar 2.6 Dua node anak yang membentuk node orang tua
Gambar 2.7 Pohon Huffman yang terbentuk
Gambar 2.8 Pohon Huffman yang telah diberi tanda
Gambar 2.9 Struktur SMS setelah dikompresi
Gambar 2.10 Diagram alir kompresi algoritma Huffman
Gambar 2.11 Diagram alir dekompresi algoritma Huffman
Gambar 2.12 Table Vigenere
Gambar 3.1 Langkah-langkah penelitian.
Gambar 3.2 Proses enkripsi-kompresi SMS
Gambar 3.3 Proses dekompresi-dekripsi SMS
viii
DAFTAR TABEL
Tabel 2.1 Contoh kode ASCII untuk beberapa karakter
Tabel 2.2 Tabel probabilitas dan kode Huffman untuk string
MISSISIPPI.
Tabel 2.3. Contoh inputan
Tabel 2.4. Perbandingan Kode ASCII dan Kode Huffman
Tabel 3.1. Perencanaan Jadwal Kegiatan
ix
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Seiring perkembangan zaman, kebutuhan manusia
akan teknologi informasi dan komunikasi juga
meningkat. Salah satu teknologi alat komunikasi yaitu
telepon genggam atau dikenal sebagai HP (handphone). HP
memiliki fasilitas standart komunikasi suara yaitu
telephone dan SMS (Short Message Services), fasilitas
tersebut digunakan untuk berkirim pesan pendek berupa
teks. Dalam kehidupan sehari-hari, fasilitas SMS
menjadi pilihan banyak orang untuk berkomunikasi karena
relatif murah, mudah, jelas dan cepat.
Berkembangnya teknologi juga memicu keberadaan
data digital yang semakin bertambah besar ukurannya,
menyebabkan media penyimpanan digital juga membutuhkan
kapasitas yang semakin besar, hal tersebut berdampak
pula terhadap kebutuhan media transfer digital yang
lebih cepat. Kompresi data menjadi solusi untuk
menangani atau setidaknya mengimbangi berkembangnya
kebutuhan yang tidak terbendung tersebut. Kompresi
sangat berguna ketika data terlalu besar tetapi perlu
disimpan dalam tempat yang terbatas ataupun data akan
dikirim melalui sebuah saluran komunikasi yang memiliki
bandwidth terbatas. Ada banyak metode kompresi antara
1
lain Lempel-Ziv Compression, Dynamic Markov Compression
(DMC), Arithmetic, PPM (Prediction by Partial
Matching), Burrows-Wheeler Block Sorting, Half Byte,
Huffman Coding, dan masih banyak lainnya. Data-data
yang dikompresi dapat berupa data biner, teks gambar,
suara, dan video. Format data SMS bisa berupa teks atau
data biner, sehingga tidak menutup kemungkinan untuk
dilakukan kompresi terhadap SMS.
Selain dari kebutuhan media transfer digital
yang lebih cepat, timbul pertanyaan mengenai keamanan
informasi jika seseorang ingin mengirimkan suatu
informasi rahasia melalui fasilitas SMS. Di luar negeri
pemanfaatan SMS untuk mengirim pesan rahasia telah
lebih dulu dikembangkan. Misalnya di Inggris sebuah
perusahaan operator telepon selular, staellium UK,
mengeluarkan layanan bernama “stealth text” yang
dapat digunakan untuk mengirim pesan dengan aman,
yaitu dengan cara menghapus pesan secara otomatis
segera setelah 40 detik pesan dibaca atau yang dikenal
dengan nama self-destruct text message. Kini dengan
memanfaatkan Wireless Messaging API (Application
Programming Interface) dari J2ME para pembuat program
Java dapat mengembangkan sendiri sebuah aplikasi
pengiriman pesan singkat atau SMS yang dimodifikasi
untuk mengamankan pesan.
Oleh karena itu, dalam penelitian ini diusulkan
metode untuk melakukan implementasi metode kompresi-
2
enkripsi pada SMS yang tujuan akhirnya adalah
menyediakan keamanan bagi pengguna SMS dan juga
penghematan biaya karena adanya proses kompresi.
1.2. Perumusan Masalah
Rumusan masalah pada penelitian ini adalah
bagaimana merancang aplikasi pengiriman SMS yang
mengimplementasikan metode kompresi huffman dan
enkripsi vigenere
1.3.Batasan Masalah
Input berupa SMS tanpa image
Spesifikasi SMS (panjang satu pesan SMS) disesuaikan
dengan standart teknologi Global System for Mobile
Communication (GSM)
Telephon seluler yang digunakan harus mendukung
fitur MIDP minimal versi 2.0
1.4. Tujuan dan Manfaat Penelitian
Tujuan dari penelitian ini adalah merancang
aplikasi pengiriman SMS yang mengimplementasikan metode
kompresi Huffman dan Enkripsi Vigenere.
Kontribusi dari penelitian ini adalah menyediakan
keamanan bagi pengguna SMS dan juga penghematan biaya
karena adanya proses kompresi.
3
BAB 2
KAJIAN PUSTAKA
2.1 Short Message Service (SMS)
Short Message Service (SMS) adalah layanan dasar
yang memperbolehkan pertukaran pesan teks singkat
antara pelanggan. SMS pertama kali berhasil diuji coba
pada tahun 1992 melalui jaringan saluran komunikasi GSM
Eropa. Sejak berhasil di ujicoba penggunaan SMS terus
berkembang. Di tahun 2001 tercatat sekitar 102.9 milyar
SMS saling dikirim di seluruh dunia. Pesan ini tidak
hanya bisa dikirim dari peralatan bergerak GSM tetapi
juga dari internet, telex, facsimillie. SMS adalah
teknologi yang sangat matang yang didukung 100%
perangkat GSM dan jaringan GSM dunia. (Bodic, 2003).
SMS atau Layanan pesan singkat adalah sebuah
layanan yang dilaksanakan dengan sebuah telepon genggam
untuk mengirim atau menerima pesan-pesan pendek.
Mulanya SMS dirancang sebagai bagian daripada GSM,
tetapi sekarang sudah didapatkan pada jaringan bergerak
lainnya termasuk jaringan Universal Mobile
Telecommunications System (UMTS)
(http://id.wikipedia.org/wiki/Layanan_pesan_singkat).
4
Sebuah pesan SMS maksimal terdiri dari 140
bytes, dengan kata lain sebuah pesan bisa memuat 140
karakter 8-bit, 160 karakter 7-bit standar GSM 03.38
atau 70 karakter 16-bit standar Universal Character Set
2-byte (UCS-2) untuk bahasa Jepang, Bahasa Mandarin dan
Bahasa Korea yang memakai Hanzi (Aksara Kanji / Hanja).
SMS bisa dikirim melalui port tertentu, dengan
memanfaatkan 56-64 bit dari total 140 bytes yang ada,
jadi sebuah pesan hanya bisa memuat 133 karakter 8-
bit, 152 karakter 7-bit (GSM 03.38) atau 66 karakter
16-bit (UCS-2).
Adapula beberapa metode untuk mengirim pesan yang
lebih dari 140 bytes, tetapi seorang pengguna harus
membayar lebih dari sekali. SMS bisa pula untuk
mengirim gambar, suara dan film. SMS bentuk ini disebut
Multimedia Message Service (MMS).
Pesan-pesan SMS dikirim dari sebuah telepon
genggam ke pusat pesan atau Short Message Service
Center (SMSC), di sini pesan disimpan dan dicoba dkirim
selama beberapa kali. Setelah selama waktu yang telah
ditentukan, biasanya 1 hari atau 2 hari, lalu pesan
dihapus. Seorang pengguna bisa mendapatkan konfirmasi
dari pusat pesan ini.
2.2 Teknologi Java 2
Java adalah bahasa pemrograman Object Oriented
Programming (OOP) yang dibuat oleh Sun Microsystem.
5
Java dirancang untuk menjadi bahasa yang memiliki
kemampuan tinggi dalam hal portabilitas dan pemanfaatan
jaringan tanpa mengabaikan kestabilan, keamanan, serta
kemudahan dari sisi desain dan pemrograman aplikasi.
Sebutan Java 2 diberikan untuk Java versi 1.2 dan
versi berikutnya. Java 2 terbagi dalam 3 kategori,
yaitu:
Java 2 Standard Edition (J2SE). Kategori ini
digunakan untuk menjalankan mengembangkan aplikasi
Java pada level komputer personal.
Java 2 Enterprise Edition (J2EE). Kategori ini
dikhususkan untuk pengembangan aplikasi Java pada
lingkungan enterprise/server.
Java 2 Micro Edition (J2ME). Kategori ini digunakan
untuk pengembangan aplikasi Java yang
diimplementasikan pada perangkat semacam ponsel,
Palm, PDA dan PocketPC.
2.3 Java 2 Micro Edition
Java 2 Micro Edition (J2ME) dirancang untuk
dapat menjalankan program Java pada perangkat yang
memiliki kemampuan terbatas misalnya kecilnya jumlah
memori yang dimiliki perangkat tersebut.
2.3.1 Konfigurasi J2ME
Konfigurasi J2ME adalah spesifikasi yang
mendefinisikan sebuah virtual machine dari kumpulan
6
API-API dasar yang dapat digunakan dalam kelas tertentu
dari sebuah peralatan. Virtual machine pada J2ME
berbeda dengan yang ada pada J2SE karena hanya fitur-
fitur penting yang berkaitan dengan perangkat tanpa
kabel (Wireless) saja yang diimplementasikan.
Ada 2 konfigurasi pada J2ME, yaitu:
CLDC (Connected Limited Device Configuration)
CLDC merupakan perangkat atau konfigurasi dasar dari
J2ME. CLDC sebenarnya berupa library dan API
(Application Programming Interface) yang
diimplementasikan pada J2ME. Konfigurasi ini
biasanya untuk alat kecil seperti telepon seluler
(handphone), pager dan PDA. Peralatan tersebut
biasanya mempunyai keterbatasan memori (RAM), sumber
daya, dan kemampuan memproses.
CDC (Connected Device Configuration)
CDC merupakan perangkat atau konfigurasi superset
dari CLDC.Konfigurasi ini biasanya dipakai untuk
alat seperti Internet TV, Nokia Communicator dan Car
TV.
2.3.2 Profil J2ME
Sebuah profil dibangun dalam sebuah konfigurasi,
namun ditambahkan beberapa API khusus agar dihasilkan
sebuah lingkungan yang lengkap untuk membangun
aplikasi. Profil berisi daur hidup (life cycle),
antarmuka pemakai (user interface), serta
7
penyimpanan. Salah satu profil J2ME adalah Mobile
Information Device Profile (MIDP). Profil MIDP
menyediakan sebuah platform standar untuk peralatan
komunikasi bergerak yang memiliki kapasitas memori
terbatas sehingga cocok untuk pengembangan aplikasi
pada ponsel.
2.4 MIDP dan MIDlet
MIDP merupakan profil yang banyak digunakan dan
popular dari J2ME dan MIDlet merupakan aplikasi-
aplikasi yang dibuat di dalam handphone menggunakan
profil MIDP.
2.4.1 Daur Hidup MIDlet
Daur hidup dari sebuh MIDlet ditangani oleh
Aplication Management Software (AMS). AMS adalah sebuah
lingkungan tempat siklus dari sebuah MIDlet diciptakan,
dijalankan, dihentikan, maupun dihilangkan. AMS sering
disebut dengan Java Aplication Manager (JAM). Dalam
daur hidupnya MIDlet memiliki tiga status, yaitu Pause,
Active dan, Destroy. Ketika masing-masing status
dipanggil, beberapa fungsi standar yang bersesuaian
akan dipanggil.
8
Gambar 2.1 Daur hidup MIDlet
Dari gambar 2.1 dapat dijelaskan sebagai berikut :
Ketika MIDlet pertama kali diciptakan dan
diinisialisasi, MIDlet berada
dalam status pause.
Jika terjadi kesalahan selama konstruksi MIDlet,
MIDlet akan berpindah
ke status destroyed dan MIDlet batal diciptakan
dengan memanggil fungsi destroyApp().
Saat MIDlet dijalankan, MIDlet akan berada pada
status active dan memanggil fungsi startApp().
Jika saat dijalankan MIDlet dihentikan sementara,
maka MIDlet berada pada status pause dan memanggil
fungsi pauseApp().
2.4.2 Antarmuka Pemakai
Untuk membuat suatu antarmuka bagi pemakai,
program MIDlet harus mengimpor paket
javac.microedition.lcdui. Kelas yang dipergunakan untuk
membuat dan memanipulasi antarmuka tersebut adalah
9
kelas yang diturunkan dari kelas Displayable. Melalui
kelas-kelas inilah sebuah aplikasi dapat berinteraksi
dengan pemakai. Pada MIDP, antarmuka terdiri dari API
tingkat tinggi (High-level) dan API tingkat rendah
(Low-level). API tingkat tinggi berbasis pada kelas
Screen, sedangkan API tingkat rendah berbasis pada
kelas Canvas. Diagram hirarki dari kelas Displayable
dapat dilihat pada gambar 2.2.
Gambar 2.2 Hirarki kelas Displayable
Dari gambar 2.2 dapat dilihat bahwa kelas Screen
terdiri dari beberapa kelas,
yaitu:
Alert, merupakan kelas yang menyediakan informasi
kecil kepada pemakai yang ditampilkan ke layar
sebelum kemudian berpindah ke objek lain. Biasanya
digunakan untuk menampilkan informasi kesalahan
(error).
TextBox, merupakan kelas yang menyediakan media
untuk menerima masukan berupa teks.
10
List, merupakan kelas yang menyediakan masukan
pilihan (multiple choice) pada layar.
Form, merupakan kelas yang menyediakan fasilitas
untuk menampung beberapa item dalam satu layar,
seperti gambar (images), kolom tanggal (datefield),
kolom teks (textfield), gauge dan daftar pilihan
(choice group).
2.5 Wireless Messaging API (WMA)
WMA (Wireless Messaging API) adalah paket
opsional yang terdapat pada J2ME yang mengijinkan
developer untuk mengembangkan aplikasi-aplikasi yang
mampu melakukan pengiriman dan penerimaan pesan (baik
yang berupa pesan teks maupun dalam bentuk gambar)
melalui SMSC (Short Messaging Service Center) maupun
MMSC (Multimedia Messaging Service Center). WMA 1.0
menyediakan API (Application Programming Interface)
dasar untuk mengirim dan menerima pesan SMS. WMA 1.0
ini dikembangkan oleh JSR 120. Untuk menambahkan fitur
kedalam WMA, lahirlah WMA 2.0 oleh JSR 205, yang
memiliki fasilitas untuk pengiriman pesan multimedia
(MMS). kelas-kelas dalam paket ini tersimpan dalam
paket javax.wireless.messaging.
Dalam proses pengiriman dan penerimaan SMS,
terdapat tiga buah interface yang penting diketahui
kegunaannya. Adapun ketiga interface tersebut adalah
TextMessage,BinaryMessage,dan MessageConnection.
11
2.5.1 Interface TextMesage dan BinaryMessage
Paket WMA menyediakan interface TextMessage dan
BinaryMessage. Kedua interface tersebut diturunkan dari
interface Message, yang mendefinisikan method umum
untuk mengeset alamat penerima dan juga mendapatkan
waktu pesan. Berikut ini bentuk deklarasi dari method-
method yang terdapat dalam interface Message.
String getAddress()void setAddress(String address)Date getTimeStamp()
Interface TextMessage adalah interface yang
merepresentasikan pesan berupa teks. Interface tersebut
menambhakan dua buah method untuk mengakses teks-teks
yang bersangkutan.String getPayloadText() //untuk mendapatkan isi dari pesanvoid setPayloadText(String body) //untuk mengeset isi pesan
Interface BinaryMessage adalah interface yang
merepresentasikan pesan biner. Interface tersebut
menambahkan dua buah method untuk mengakses pesan biner
yang terdapat di dalamnya. Isi dari pesan biner adalah
berupa array byte.byte[] getPayloadData()void setPayloadData(byte [] content)
2.5.2 Interface MessageConnection
Pada dasarnya, inti dari paket WMA berada pada
interface MessageConnection, yang merepresentasikan
12
sebuah koneksi jaringan untuk melakukan proses
pengiriman maupun penerimaan pesan. Instance dari
MessageConnection dapat didapatkan dengan cara melewatkan
URL tertentu kedalam method Connector.open() . Berikut ini
aturan penulisan URL yang diizinkan di dalam WMA.
sms://no_telepon. MessageConnection akan
mengirimkan pesan ke nomor telephon tujuan. Pesan
akan terkirim ke inbox SMS dari device tujuan.
Dengan demikian, pesan secara otomatis akan
diterima oleh aplikasi yang telah disediakan oleh
device bersangkutan, bukan oleh aplikasi penerima
SMS yang di kembangkan sendiri.
sms://no_telephon:port. MessageConnection akan
mengirimkan pesan ke nomor telephon tujuan untuk
port yang ditentukan. Disini Pesan tidak akan
terkirim ke inbox SMS dari device tujuan,
melainkan akan dikirim desuatu MIDlet pada device
penerima yang bertugas mendengarkan port tersebut
sms://port. MessageConnection akan mendengarkan port
yang ditentukan. Disini MIDlet SMS yang berada di
client berperan sebagai server pada port tertentu.
Pesan akan terkirim melalui port tersebut. Koneksi
jenis ini dinamakan dengan koneksi mode server.
cbs://:port. MessageConnection akan mendengarkan
pada port tertentu yang ditetapkan untuk pesan CBS
(Cell Broadcast Service)
13
Interface MessageConnection mendeklarasikan beberapa
buah method untuk keperluan pengiriman dan penerimaan
pesan, yaitu sebagai berikut:Message newMessage(String type)Message newMessage(String type,String address)int numOfSegments(Message msg)Message receive()void send(Message msg)void setMessageListener(MessageListener msgListener)
Parameter type yang terdapat pada method newMessage()
dapat berupa TEXT_MESSAGE atau BINARY_MESSAGE.
MessageConnection juga dapat memiliki sebuah object
listener. MIDlet yang memiliki object listener harus
mengimplementasikan interface MessageListener.
Interface MessageListener itu sendiri memiliki
sebuah method yang bernama notifyIncomingMessage(),
yang harus diimplementasikan oleh MIDlet bersangkutan
dan akan dijalankan ketika terdapat pesan yang masuk.
Berikut ini gambar yang menunjukkan daftar interface
pada paket WMA.
14
Connector
MessageConnecti
MessageList TextMessage BinaryMessa
Gambar 2.3 Interface pada paket WMA
2.6 Mengirim SMS
Pengiriman SMS melibatkan object
MessageConnection dan TextMessage. Secara garis besar,
proses tersebut dapat dituliskan sebagai berikut:String address = "sms://+085233032565";MessageConnection conn = (MessageConnection)Connector.open(address);TextMessage msg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);msg.setAddress(address);msg.setPayloadText("Coba mengirim SMS");conn.send(msg);
Kode diatas akan mengirimkan SMS dengan teks
"Coba mengirimkan SMS" kenomor 085233032565. Disini,
mula-mula dibuat object MessageConnection dengan menuliskan
perintah Connector.open(). Setelah itu dibuat object
TextMessage dengan memanggil method newMessage(). Karena
method ini mengembalikan object bertipe Message maka
perlu secara eksplisit melakukan typecasting terhadap
object tersebut ke tipe TextMessage. Selanjutnya,
melalui object TextMessage yang sudah terbentuk, alamat
tujuan dapat diset dengan method setAddress() dan juga
teks pesan yang akan dikirim menggunakan method
setPayloadText(). Setelah semuanya terpenuhi, maka method
15
Message
sent() dapat langsung dipanggil untuk mengirimkan object
TextMessage bersangkutan.
2.7 Menerima SMS
Untuk menerima SMS, kode yang ada sebaiknya
ditempatkan dalam object Thread tersendiri secara
terpisah. Method yang diperlukan untuk menerima pesan
adalah method receive() dari object MessageConnection().
Dalam pembuatan aplikasi yang dapat menerima SMS,
diperlukan implementasi interface MessageListener, yaitu
dengan cara mendefinisikan ulang method
notifyIncomingMessage(). Method tersebut memiliki satu buah
parameter bertipe MessageConnection dan akan dieksekusi
pada saat terdapat SMS yang masuk. Berikut ini contoh
potongan kode yang diperlukan untuk menerima SMS:String smsPort = "50000";String address = "sms://:" + smsPort;MessageConnection conn = (MessageConnection) Connector.open(address);Message msg = conn.receive();if (msg instanceof TextMessage) { TextMessage tmsg = (TextMessage) msg; String text = tmsg.getPayloadText(); //lakukan sesuatu terhadap pesanbersangkutan}
2.8 Kompresi Data
Kompresi data ialah cara untuk memadatkan data
sehingga hanya memerlukan ruangan penyimpanan lebih
16
kecil sehingga lebih efisien dalam menyimpannya atau
mempersingkat waktu pertukaran data tersebut.
Berdasarkan kompresi yang dihasilkan, metode
kompresi dapat dibagi ke dalam dua kategori, yaitu :
1. Lossy Compression
Lossy compression menyebabkan adanya perubahan
data dibandingkan sebelum dilakukan proses kompresi.
Sebagai gantinya lossy compression memberikan
derajat kompresi lebih tinggi. Tipe ini cocok untuk
kompresi file suara digital dan gambar digital.
2. Lossless Compression
Sebaliknya Lossless Compression memiliki
derajat kompresi yang lebih rendah tetapi dengan
akurasi data yang terjaga antara sebelum dan
sesudah proses kompresi. Kompresi ini cocok untuk
basis data, dokumen atau preadsheet. Pada lossless
compression ini tidak diijinkan ada bit yang hilang
dari data pada proses kompresi.
Secara umum kompresi data terdiri dari dua
kegiatan besar, yaitu Modeling dan Coding. Proses dasar
dari kompresi data adalah menentukan serangkaian bagian
dari data (stream of symbols) mengubahnya menjadi
kode (stream of codes). Jika proses kompresi
efektif maka hasil dari stream of codes akan
lebih kecil dari segi ukuran daripada stream of
symbols. Keputusan untuk mengindentikan symbols
17
tertentu dengan codes tertentu adalah inti dari proses
modeling. Secara umum dapat diartikan bahwa sebuah
model adalah kumpulan data dan aturan yang menentukan
pasangan antara symbol sebagai input dan code sebagai
output dari proses kompresi. Sedangkan
coding adalah proses untuk menerapkan modeling
tersebut menjadi sebuah proses kompresi data.
2.9 Kode Huffman
Dalam komunikasi data, pesan yang dikirim
seringkali ukurannya sangat besar sehingga waktu
pengirimannya lama. Begitu juga dalam penyimpanan data,
arsip yang berukuran besar memakan ruang penyimpanan
yang besar. Kode ini digunakan untuk mengkompresi data.
Kompresi data dilakukan dengan pengkodean setiap
karakter di dalam pesan yang dikodekan dengan kode yang
lebih pendek. Sistem kode yang paling banyak digunakan
adalah kode ASCII. Contoh pada tabel 2.1. Tabel 2.1 Contoh kode ASCII untuk beberapa karakter
Karakter
Kode ASCII
M 01001101
P 01010000
S 01010011
I 01001001
18
Misal kata MISSISIPPI diubah ke dalam rangkaian
bit menjadi
0100110101001001010100110101001101001001010100
1101001001010100000
101000001001001. Berdasarkan pada penggunaan pengkodean
metode ASCII, representasi 10 hurup membutuhkan 10 * 8
= 80 bit (10 byte). Untuk meminimumkan jumlah bit yang
dibutuhkan, panjang kode untuk setiap karakter sedapat
mungkin diperpendek, terutama untuk karakter yang
probabilitas kemunculannya besar. Hal inilah yang
mendasari munculnya pengkodean metode Huffman. Misalnya
pada pesan MISSISIPPI, probabilitas kemunculan I adalah
4, S adalah 3, P adalah 2 dan M adalah 1.
Tabel 2.2 Tabel probabilitas dan kode Huffman untuk string MISSISIPPI.
Karakter
Probabilitas
Peluang Kode Huffman
M 1 1/10 100
P 2 2/10 101
S 3 3/10 11
I 4 1/10 0
Dengan menggunakan kode Huffman ini, pesan
MISSISIPPI dipresentasikan menjadi rangkaian bit
1000111101101011010. Jadi dengan menggunakan kode
Huffman ini, jumlah bit yang dibutuhkan untuk string
19
MISSISIPPI hanya 19 bit. Karakter yang sering muncul
direpresentasikan dengan kode yang lebih pendek
daripada karakter yang lain. Kode untuk setiap karakter
tidak boleh merupakan awalan dari karakter yang lain
sebab akan menimbulkan keraguan dalam proses decoding.
Pengkodean dengan metode Huffman dibangun dari
panjang variabel kode-kode yang disusun dari bit-bit
karakter dengan nilai probabilitas tertinggi akan
memperoleh kode terpendek, sedangkan karakter dengan
probabilitas terendah akan memperoleh kode terpanjang.
Penelusuran pada kode Huffman dilakukan dari simpul
daun ke simpul akar, dari setiap bit akan diperoleh
kode Huffman dan penelusuran selesai jika berakhir pada
akar. Setelah penelusuran selesai, selanjutnya akan
menutup jalur yang telah ditelusuri.
20
Gambar 2.4 Diagram alir pohon Huffman
Adapun langkah-langkah penelusuran pohon tersebut
adalah sebagai berikut:
1. Inputkan teks/karakter yang akan dikompresi.
Contoh: MISSISIPPI
2. Hitung karakter inputan dan urutkan inputan
berdasarkan probabilitas kemunculan tiap karakter.Tabel 2.3. Contoh inputan
KarakterProbabil
itas Kode Huffman
M 1/10 100
P 2/10 101
21
S 3/10 11
I 4/10 0
3. Buatlah node dari tiap karakter serta urutkan
karakter dari probabilitas terkecil sampai
probabilitas yang paling besar. Untuk karakter yang
memiliki probabilitas sama, maka disusun berdasarkan
susunan dalam standar ASCII.
Gambar 2.5 Pembuatan node
4. Buat pohon Huffman dari karakter yang sudah
diurutkan tadi, dengan cara mengambil dua node
karakter yang paling kecil lalu gabungkan keduanya
dan tambahkan probabilitasnya. Hasil penggabungan
dijadikan akar sedangkan daunnya adalah masing-
masing karakter. Lakukan langkah kedua dan ketiga
secara terus-menerus sehingga seluruh karakter
tergabung menjadi akar dengan akumulatif
probabilitasnya.
Dari langkah ini akan terbentuk pohon Huffman
(Gambar 2.6).
22
Gambar 2.6 Dua node anak yang membentuk node orang tua
5. Setelah pohon terbentuk maka selanjutnya beri tanda
tiap daun sebelah kanan dengan 1, dan sebelah kiri
dengan angka 0. (Gambar 2.7 dan Gambat 2.8).
Gambar 2.7 Pohon Huffman yang terbentuk
23
Gambar 2.8 Pohon Huffman yang telah diberi tanda
6. Untuk memperoleh kode hasil kompresi, baca pohon
yang terbentuk berdasarkan karakter yang dicari dari
akar sampai daun hingga ditemukan karakter tersebut,
ikuti tiap node perjalanannya dan catat angka-angka
yang dilalui. Sehingga akan terbentuk deretan angka
nol dan satu. Setelah menelusuri pohon yang
terbentuk pada Gambar 2.6 maka diperoleh kode
berikut: I = 0, M = 100, P = 101, S = 11. Dengan
kode baru yang dihasilkan ini maka ukuran awalnya
yang 80 bit menjadi 19 bit. Ini jelas akan menghemat
61 bit.Tabel 2.4. Perbandingan Kode ASCII dan Kode Huffman
Karakter Kode ASCII Kode Huffman
M 01001101 100
P 01010000 101
S 01010011 11
I 01001001 0
Dengan demikian didapat kode Huffman dari kata
MISSISIPI adalah 1000111101101011010 yang akan diurai
dengan menambahkan 24 bit untuk header, 8 bit untuk
jumlah jenis karakter, 8 bit untuk kode ASCII masing-
masing karakter, serta jumlah hasil kompresi pesan.
24
Untuk lebih jelasnya perhatikan Gambar 2.9 di bawah
ini:
000000000000
00000000000000000100 01001101 01010000 01010011 0100100
1000111101
101011010
Header 24 bitJenis
KarakterAscii M Ascii P Ascii S Ascii I Isi Pesan
Gambar 2.9 Struktur SMS setelah dikompresi
Keterangan:
a. Header 24 bit menunjukkan jumlah karakter yang
dikirim.
b. Jenis karakter merupakan jumlah jenis karakter
yang digunakan pada penulisan pesan.
c. Ascii I merupakan kode Ascii dari karakter I.
d. Ascii S merupakan kode Ascii dari karakter S.
e. Ascii P merupakan kode Ascii dari karakter P.
f. Ascii M merupakan kode Ascii dari karakter M.
g. Isi pesan merupakan jumlah karakter yang
digunakan pada penulisan
pesan.
7. Lakukan langkah ini sampai seluruh karakter
mendapatkan kode biner yang baru.
Dengan langkah-langkah diatas, akan diperoleh hasil
kompresi. Dengan demikian kompresi data selesai. Gambar
2.2 adalah diagram alir pohon Huffman, dan Gambar 2.10
adalah diagram alir kompresi data.
25
Gambar 2.10 Diagram alir kompresi algoritma Huffman
2.4 Dekompresi Algoritma Huffman
Jika ingin melakukan proses dekompresi, maka kode
isi pesan diurai ke dalam pohon Huffman, kemudian pohon
Huffman ditelusuri sampai semua kode isi pesan
berbentuk karakter yang sesuai dengan inputan.
Untuk melakukan proses pengembalian ke data asli
dengan algoritma ini, maka langkah-langkahnya adalah
sebagai berikut ini:
26
1. Buka dan baca data yang dikompresi.
2. Bentuk pohon Huffman.
3. Telusuri pohon Huffman untuk mendapatkan kode
Huffman masing-masing karakter.
4. Ubah hasil kompresi ke dalam karakter yang
sebenarnya.
Alur dekompresi ditunjukkan seperti pada gambar 2.11.
Gambar 2.11 Diagram alir dekompresi algoritma Huffman
2.10 Kriptografi
Kriptografi, secara umum adalah ilmu dan seni
untuk menjaga kerahasiaan berita (Scheneier,2005:22).
Selain pengertian tersebut terdapat pula pengertian
27
ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi seperti
kerahasiaan data, keabsahan data, integritas data,
serta autentikasi data. Tidak semua aspek keamanan
informasi ditangani oleh kriptografi.
Ada empat tujuan mendasar dari ilmu kriptografiini yang juga merupakan aspek keamanan informasiyaitu :
1. Kerahasiaan, adalah layanan yang digunakan untuk
menjaga isi dari informasi dari siapapun kecuali
yang memiliki otoritas atau kunci rahasia untuk
membuka/mengupas informasi yang telah disandi.
2. Integritas data, adalah berhubungan dengan
penjagaan dari perubahan data secara tidak sah.
Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi
data oleh pihak-pihak yang tidak berhak, antara
lain penyisipan, penghapusan, dan pensubsitusian
data lain kedalam data yang sebenarnya.
3. Autentikasi, adalah berhubungan dengan
identifikasi/pengenalan, baik secara kesatuan
sistem maupun informasi itu sendiri. Dua pihak
yang saling berkomunikasi harus saling
memperkenalkan diri. Informasi yang dikirimkan
melalui kanal harus diautentikasi keaslian, isi
datanya, waktu pengiriman, dan lain-lain.
28
4. Non-repudiasi., atau nirpenyangkalan adalah usaha
untuk mencegah terjadinya penyangkalan terhadap
pengiriman/tercipta nya suatu informasi oleh yang
mengirimkan/membuat.
2.10.1 Algoritma Sandi
Algoritma sandi adalah algoritma yang berfungsi
untuk melakukan tujuan kriptografis. Algoritma tersebut
harus memiliki kekuatan untuk melakukan :
1. Konfusi/pembingungan (confusion), dari teks terang
sehingga sulit untuk direkonstruksikan secara
langsung tanpa menggunakan algoritma dekripsinya
2. Difusi/peleburan (difusion), dari teks terang
sehingga karakteristik dari teks terang tersebut
hilang.
sehingga dapat digunakan untuk mengamankan informasi.
Pada implementasinya sebuah algoritmas sandi harus
memperhatikan kualitas layanan/Quality of Service atau
QoS dari keseluruhan sistem dimana dia
diimplementasikan. Algoritma sandi yang handal adalah
algoritma sandi yang kekuatannya terletak pada kunci,
bukan pada kerahasiaan algoritma itu sendiri. Teknik
dan metode untuk menguji kehandalan algoritma sandi
adalah kriptanalisa.
Dasar matematis yang mendasari proses enkripsi dan
dekripsi adalah relasi antara dua himpunan yaitu yang
berisi elemen teks terang /plaintext dan yang berisi
29
elemen teks sandi/ciphertext. Enkripsi dan dekripsi
merupakan fungsi transformasi antara himpunan-himpunan
tersebut. Apabila elemen-elemen teks terang dinotasikan
dengan P, elemen-elemen teks sandi dinotasikan dengan
C, sedang untuk proses enkripsi dinotasikan dengan E,
dekripsi dengan notasi D.
Enkripsi : E(P) = C (2.1)
Dekripsi : D(C) = P atau D(E(P)) = P
(2.2)
Secara umum berdasarkan kesamaan kuncinya,
algoritma sandi dibedakan menjadi :
1. kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
2. kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan
jamannya dibedakan menjadi :
1. algoritma sandi klasik classic cryptography
2. algoritma sandi modern modern cryptography
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
1. algoritma sandi kunci rahasia secret-key
2. algoritma sandi kunci publik publik-key
Pada skema kunci-simetris, digunakan sebuah kunci
rahasia yang sama untuk melakukan proses enkripsi dan
dekripsinya. Sedangkan pada sistem kunci-asimentris
digunakan sepasang kunci yang berbeda, umumnya disebut
30
kunci publik(public key) dan kunci pribadi (private
key), digunakan untuk proses enkripsi dan proses
dekripsinya. Bila elemen teks terang dienkripsi dengan
menggunakan kunci pribadi maka elemen teks sandi yang
dihasilkannya hanya bisa didekripsikan dengan
menggunakan pasangan kunci pribadinya. Begitu juga
sebaliknya, jika kunci pribadi digunakan untuk proses
enkripsi maka proses dekripsi harus menggunakan kunci
publik pasangannya.
2.10.2 Algoritma Kunci Simetris
Skema algoritma sandi akan disebut kunci-simetris
apabila untuk setiap proses enkripsi maupun dekripsi
data secara keseluruhan digunakan kunci yang sama.
Skema ini berdasarkan jumlah data per proses dan alur
pengolahan data didalamnya dibedakan menjadi dua kelas,
yaitu block-cipher dan stream-cipher.
a. Block-Cipher
Block-cipher adalah skema algoritma sandi yang akan
membagi-bagi teks terang yang akan dikirimkan dengan
ukuran tertentu (disebut blok) dengan panjang t, dan
setiap blok dienkripsi dengan menggunakan kunci yang
sama. Untuk menambah kehandalan model algoritma sandi
ini, dikembangkan pula beberapa tipe proses enkripsi,
yaitu :
31
1. ECB, Electronic Code Book2. CBC, Cipher Block Chaining3. OFB, Output Feed Back4. CFB, Cipher Feed Back
b. Stream-Cipher
Stream-cipher adalah algoritma sandi yang
mengenkripsi data persatuan data, seperti bit, byte,
nible atau per lima bit(saat data yang di enkripsi
berupa data Boudout). Setiap mengenkripsi satu satuan
data di gunakan kunci yang merupakan hasil pembangkitan
dari kunci sebelumnya.
2.10.3 Algoritma Kunci Asimetris
Skema ini adalah algoritma yang menggunakan kunci
yang berbeda untuk proses enkripsi dan dekripsinya.
Skema ini disebut juga sebagai sistem kriptografi kunci
publik karena kunci untuk enkripsi dibuat untuk
diketahui oleh umum (public-key) atau dapat diketahui
siapa saja, tapi untuk proses dekripsinya hanya dapat
dilakukan oleh yang berwenang yang memiliki kunci
rahasia untuk mendekripsinya, disebut private-key.
Keuntungan algoritma model ini, untuk berkorespondensi
secara rahasia dengan banyak pihak tidak diperlukan
kunci rahasia sebanyak jumlah pihak tersebut, cukup
membuat dua buah kunci, yaitu kunci publik bagi para
korensponden untuk mengenkripsi pesan, dan kunci privat
untuk mendekripsi pesan. Berbeda dengan skema kunci-
32
simetris, jumlah kunci yang dibuat adalah sebanyak
jumlah pihak yang diajak berkorespondensi.
Apabila pengirim dan penerima hendak bertukar
informasi, maka dilakukan langkah-langkah sebagai
berikut:
1. Pengirim dan Penerima masing-masing membuat 2 buahkunci a. Pengirim membuat dua buah kunci, kunci-publik
Kpublik[pengirim] dan kunci-privat Kprivat[pengirim]
b. Penerima membuat dua buah kunci, kunci-publikKpublik[penerima] dan kunci-privat Kprivate[penerima]
2. Mereka berkomunikasi dengan cara: a. Pengirim dan Penerima saling bertukar kunci-
publik. Penerima mendapatkan Kpublik[pengirim] daripengirim, dan Pengirim mendapatkan Kpublik[penerima]
dari penerima.b. Pengirim mengenkripsi plaintext P ke penerima
dengan fungsi C = E(P, Kpublik[penerima]) (2.3)
c. Pengirim mengirim teks-sandi C ke penerimad. Penerima menerima C dari pengirim dan membuka
plaintext dengan fungsi P = D(C, Kprivate[penerima])(2.4)
2.11 Kriptografi Vigenere
Sandi Vigenère adalah metode menyandikan teks
alfabet dengan menggunakan deretan sandi Caesar
berdasarkan huruf-huruf pada kata kunci. Sandi Vigenère
merupakan bentuk sederhana dari sandi substitusi
polialfabetik. Kelebihan sandi ini dibanding sandi
33
Caesar dan sandi monoalfabetik lainnya adalah sandi ini
tidak begitu rentan terhadap metode pemecahan sandi
yang disebut analisis frekuensi.
Sandi ini dikenal luas karena cara kerjanya mudah
dimengerti dan dijalankan, dan bagi para pemula sulit
dipecahkan. Metode pemecahan sandi ini baru ditemukan
pada abad ke-19. Pada tahun 1854, Charles Babbage
menemukan cara untuk memecahkan sandi Vigenère. Metode
ini dinamakan tes Kasiski karena Friedrich Kasiski-lah
yang pertama mempublikasikannya.
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, sebagaimana
terlihat pada Gambar 2.12. 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.
34
Gambar 2.12 : Table Vigenere
Misalnya, plaintext 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 plaintext:
PIZZAPIZZAP
Huruf pertama pada plaintext, S, disandikan dengan
menggunakan baris berjudul P, huruf pertama pada kata
kunci. Pada baris P dan kolom S di tabel Vigenère,
terdapat huruf H. Demikian pula untuk huruf kedua,
35
digunakan huruf yang terletak pada baris I (huruf kedua
kata kunci) dan kolom E (huruf kedua teks terang),
yaitu huruf M. Proses ini dijalankan terus sehingga
Plaintext: Serbuberlin
Kata kunci: PIZZAPIZZAP
Chipertext: HMQAUQMQKIC
Proses dekripsi dilakukan dengan mencari huruf teks
bersandi pada baris berjudul huruf dari kata kunci.
Misalnya, pada contoh diatas, untuk huruf pertama, kita
mencari huruf H (huruf pertama teks tersandi) pada
baris P (huruf pertama pada kata kunci), yang terdapat
pada kolom S, sehingga huruf pertama adalah S. Lalu M
terdapat pada baris I di kolom E, sehingga diketahui
huruf kedua teks terang adalah E, dan seterusnya hingga
didapat perintah "serbuberlin".Enkripsi (penyandian)
dengan sandi Vigenère juga dapat dituliskan secara
matematis, dengan menggunakan penjumlahan dan operasi
modulus, yaitu:
Ci = (Pi + Ki) mod 26 (2.5)
dan dekripsi,
Pi = (Ci - Ki) mod 26 (2.6)
36
dengan:
- Ci adalah huruf ke-i pada teks chipertext, - Pi adalah huruf ke-i pada plaintext, - Ki adalah huruf ke-i pada kata kunci, dan - mod adalah operasi modulus (sisa pembagian).
BAB III
METODE PENELITIAN
3.1 Metode Penelitian
Langkah-langkah dalam menyelesaikan penelitian ini
di perlihatkan pada gambar 3.1. Prinsip pengerjaannya
menggunakan metode waterfall yaitu pengerjaan dari atas
ke bawah secara berurutan, dengan rincian perencanaan
sebagai beriku :
37
Studi pustaka
Perancangan dan pengembangan perangkat lunak
Uji coba dan evaluasi
Penulisan laporan
Gambar 3.1 : Langkah-langkah penelitian.
1. Studi pustaka adalah mempelajari teori-teori yang
perlu di pahami untuk mendukung kelancaran
penelitian ini. Berikut adalah teori-teori yang
pendukung yang dimaksud :
a. Mempelajari tentang kriptografi khususnya
vigenere, untuk mengetahui bagaimana seluk
beluk dan algoritma kriptografi vigenere dan
bagaimana mengimplementasikannya kedalam
aplikasi.
b. Mempelajari tentang algoritma Kompresi Huffman
dan bagaimana untuk mengimplementasikan kedalam
aplikasi.
c. mempelajari proses pengiriman dan penerimaan
SMS dengan J2ME.
2. Perancangan dan pengembangan perangkat lunak.
Lebih detailnya disajikan pada bagian 3.2.
3. Uji coba dan evaluasi diperlukan untuk melihat
sejauh mana aplikasi yang dibuat berhasil dalam
melakukan enkripsi dan dekripsi teks SMS dan juga
kompresi dan dekompresi teks SMS.
38
4. Penulisan laporan dilakukan untuk
mendokumentasikan semua kegiatan-kegiatan dan
temuan-temuan selama pelaksanaan penelitian.
3.2. Rancangan Algoritma
Gambar 3.2 : Proses enkripsi-kompresi SMS
Gambar 3.3 : Proses dekompresi-dekripsi SMS
Gambar 3.2 menunjukkan proses yang dilakukan
untuk enkripsi-kompresi teks SMS. Proses dimulai dari
39
teks SMS Enkripsi kompresi
kirim SMS
teks SMS dekompresiHuffman
Dekripsi
plain teks
tampilkan
proses enkripsi yang kemudian dilanjutkan dengan
kompresi, sedangkan gambar 3.3 merupakan proses yang
menggambarkan dekompresi-dekripsi teks SMS yang
diterima. Proses ini merupakan dimulai dengan
dekompresi, karena teks SMS yang diterima merupakan
teks yang telah dikompresi. Langkah selanjutnya adalah
mendekripsi teks SMS yang sudah di dekompresi tadi.
3.3 Jadwal Kegiatan
Pada tabel 3.1 ini akan diperlihatkan rencana
jadwal kegiatan selama penelitian, jadwal disajikan
perbulan selaman 5 bulan.
Tabel 3.1. Perencanaan Jadwal Kegiatan
Jenis Kegiatan
Bulan
April Mei Juni Juli Agustus
Studi Pustaka
Perancangan dan pengembangan perangkat lunak
Uji coba dan evaluasi
Penulisan Laporan
40
DAFTAR PUSTAKABodic, G.L., 2003, "Mobile Messaging Technologies And Services : SMS, EMS and MMS," John Wiley & Sons.
Bruce Schneier, 1997," Applied Cryptography, 2nd edition", New York: John-Wiley & Sons
Budi Raharja, Imam Heryanto, Arif Haryono,2010, "Tuntunan Pemrograman Java untuk Hanphone dan Alat Telekomunikasi Mobile Lainnya". Informatika Bandung
Huffman Coding "http://www.en.wikipedia.org/wiki/Huffman_coding".Diakses tanggal 5 April 2012
Linawati dan Panggabean, H.P., 2004, "Perbandingan Kinerja Algoritma Kompresi Huffman, Lzw, Dan Dmc Pada Berbagai Tipe File".
Practical Huffman Coding " http://www.compressconsult.com/huffman". diakses tanggal 5 April 2012
Piroumian Vartan, 2002, "Wireless J2ME Platform Programming". Prentice Hall PTR.
Stalling. William, 2002, "Kriptografi dan keamanan Jaringan", Mc Graw Hill
41