Anda di halaman 1dari 37

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

PROGRAM STUDI TEKNIK INFORMATIKA


SEKOLAH TINGGI ILMU KOMPUTER PGRI
BANYUWANGI
2012

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 PADA
TELEPHON SELULER BERBASIS J2ME DENGAN
ALGORITMA HUFFMAN-VIGENERE CHIPER

Nama Mahasiswa : Trias Fahrudin


NIM : 1110000356
Pembimbing : 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 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

iii
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
DAFTAR ISI .........................................................................................................................v
DAFTAR GAMBAR .............................................................................................................vii
DAFTAR TABEL .................................................................................................................viii
BAB 1 PENDAHULUAN........................................................................................................1
1.1 Latar Belakang..........................................................................................................1
1.2. Perumusan Masalah................................................................................................2
1.3.Batasan Masalah......................................................................................................2
1.4. Tujuan dan Manfaat Penelitian...............................................................................2
BAB 2 KAJIAN PUSTAKA......................................................................................................3
2.1 Short Message Service (SMS)...................................................................................3
2.2 Teknologi Java 2.......................................................................................................4
2.3 Java 2 Micro Edition.................................................................................................4
2.3.1 Konfigurasi J2ME...............................................................................................4
2.3.2 Profil J2ME........................................................................................................5
2.4 MIDP dan MIDlet......................................................................................................5
2.4.1 Daur Hidup MIDlet...........................................................................................5
2.4.2 Antarmuka Pemakai..........................................................................................6
2.5 Wireless Messaging API (WMA)...............................................................................7
2.5.1 Interface TextMesage dan BinaryMessage........................................................8
2.5.2 Interface MessageConnection...........................................................................8
2.6 Mengirim SMS........................................................................................................10
2.7 Menerima SMS.......................................................................................................11
2.8 Kompresi Data........................................................................................................11
2.9 Kode Huffman........................................................................................................12
2.4 Dekompresi Algoritma Huffman.............................................................................18
2.10 Kriptografi............................................................................................................19
2.10.1 Algoritma Sandi.............................................................................................20
2.10.2 Algoritma Kunci Simetris...............................................................................22
2.10.3 Algoritma Kunci Asimetris.............................................................................22
2.11 Kriptografi Vigenere.............................................................................................23

v
BAB III METODE PENELITIAN............................................................................................26
3.1 Metode Penelitian................................................................................................26
3.2. Rancangan Algoritma............................................................................................27
3.3 Jadwal Kegiatan.....................................................................................................28
DAFTAR PUSTAKA............................................................................................................29

vi
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

DAFTAR TABEL

vii
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

viii
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 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

1
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-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.

2
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).
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).

3
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. 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 API-API dasar yang dapat digunakan dalam kelas
tertentu dari sebuah peralatan. Virtual machine pada J2ME berbeda dengan yang

4
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 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

5
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.

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 kelas yang diturunkan dari

6
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.
 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

7
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.

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 pesan
void 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 sebuah koneksi jaringan untuk

8
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)
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

9
bersangkutan dan akan dijalankan ketika terdapat pesan yang masuk. Berikut ini
gambar yang menunjukkan daftar interface pada paket WMA.

Connector

MessageConnection

MessageListener TextMessage BinaryMessage

Message

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 sent() dapat
langsung dipanggil untuk mengirimkan object TextMessage bersangkutan.

10
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 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

11
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 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

Karakte Kode ASCII


r

M 01001101

P 01010000

S 01010011

12
I 01001001

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
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

13
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.

Mulai

Buat node anak dari


karakter yg diinputkan

Ambil dua node


bebas dari node anak

Buat node orang


tua dari dua node anak

Node anak yg menuju


node orang tua diberi
nilai bit yg berbeda

Node bebas y
>= 2 ?

Selesai

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

Karakter Probabilitas Kode Huffman

14
M 1/10 100

P 2/10 101

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.

M=1 P=2 S=3 I=4

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).

MP = 3

M=1 P=2

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).

15
IMPS
= 10

I=4 MPS = 6

MP = 3 S=3

M=1 P=2

Gambar 2.7 Pohon Huffman yang terbentuk

IMPS
= 10

0 1

I=4 MPS = 6

0 1

MP = 3 S=3

0 1

M=1 P=2

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

16
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. Untuk lebih jelasnya perhatikan
Gambar 2.9 di bawah ini:

000000000000 100011110110
00000100 01001101 01010000 01010011 0100100
000000000000 1011010
Header 24 bit Jenis Karakter Ascii 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.

17
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.
Mulai

Teks/karakter
yang akan
dikompres

Baca teks/karakter

Peroleh kode Ascii dan


jumlah karakter

Urutkan kode karakter

Buat pohon Huffman

Telusuri pohon Huffman

Diperoleh kode
Huffman

Simpan Informasi kode


setiap karakter

Setiap t
karakter telah mendapat
kode Huffman ?

Selesai

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:
1. Buka dan baca data yang dikompresi.

18
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.

Mulai

Buka kode Huffman data


yang dikompresi

Pisahkan kode
Huffman dan modelnya

Ambil satu bit kode


kemudian bandingkan dengan
bit modelnya (sampai akhir)

Sesuai t
tablel kode ?

Lakukan pengembalian

Simpan karakter
Hasil pengembalian

Selesai

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 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 kriptografi ini yang juga
merupakan aspek keamanan informasi yaitu :

19
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.
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.

20
Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi
antara dua himpunan yaitu yang berisi elemen teks terang /plaintext dan yang
berisi 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 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.

21
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 :
1. ECB, Electronic Code Book
2. CBC, Cipher Block Chaining
3. OFB, Output Feed Back
4. 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

22
untuk mendekripsi pesan. Berbeda dengan skema kunci-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 buah kunci


a. Pengirim membuat dua buah kunci, kunci-publik Kpublik[pengirim] dan
kunci-privat Kprivat[pengirim]
b. Penerima membuat dua buah kunci, kunci-publik Kpublik[penerima] dan
kunci-privat Kprivate[penerima]
2. Mereka berkomunikasi dengan cara:
a. Pengirim dan Penerima saling bertukar kunci-publik. Penerima
mendapatkan Kpublik[pengirim] dari pengirim, 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 penerima
d. 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 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

23
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.

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

24
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, 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)

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

25
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 :

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.

26
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.
4. Penulisan laporan dilakukan untuk mendokumentasikan semua kegiatan-
kegiatan dan temuan-temuan selama pelaksanaan penelitian.

3.2. Rancangan Algoritma

teks SMS awal Enkripsi Vigenere kompresi Huffman

kirim SMS

Gambar 3.2 : Proses enkripsi-kompresi SMS

teks SMS diterima dekompresi Dekripsi Vigenere


Huffman

plain teks SMS

tampilkan SMS

Gambar 3.3 : Proses dekompresi-dekripsi SMS

Gambar 3.2 menunjukkan proses yang dilakukan untuk enkripsi-


kompresi teks SMS. Proses dimulai dari proses enkripsi yang kemudian

27
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

Bulan
Jenis Kegiatan
April Mei Juni Juli Agustus

Studi Pustaka 

Perancangan dan
pengembangan perangkat 
lunak

Uji coba dan evaluasi 

Penulisan Laporan 

28
DAFTAR PUSTAKA
Bodic, 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

29

Anda mungkin juga menyukai