IMPLEMENTASI ALGORITMA HUFFMAN DAN ALGORITMA
CIPHER SUBSTITUSI ALFABET TUNGGAL PADA TEKS SMS
SKRIPSI
RAMAHADI SATRIA PERDANA PURBA
051401057
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2009
IMPLEMENTASI ALGORITMA HUFFMAN DAN ALGORITMA CIPHER SUBSTITUSI ALFABET TUNGGAL PADA TEKS SMS
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
RAMAHADI SATRIA PERDANA PURBA 051401057
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2009
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA HUFFMAN DAN ALGORITMA CIPHER SUBSTITUSI ALFABET TUNGGAL PADA TEKS SMS
Kategori : SKRIPSI
Nama : RAMAHADI SATRIA PERDANA PURBA Nomor Induk Mahasiswa : 051401057
Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 7 September 2009 Komisi Pembimbing :
Pembimbing II, Pembimbing I,
M. Andri B., S.T., M.Comp.Sc., M.E.M. Syahriol Sitorus, S.Si., M.I.T. NIP. 132 352 703 NIP. 132 148 612
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Prof. Dr. Muhammad Zarlis NIP 131 570 434
PERNYATAAN
IMPLEMENTASI ALGORITMA HUFFMAN DAN ALGORITMA CIPHER SUBSTITUSI ALFABET TUNGGAL PADA TEKS SMS
SKRIPSI
Penulis mengakui bahwa skripsi ini adalah hasil karya penulis sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 7 September 2009
Ramahadi Satria Perdana Purba 051401057
PENGHARGAAN
Alhamdulillah wa syukrilah, puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat dan ridho-Nya serta segala sesuatunya dalam hidup, sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara. Shalawat dan Salam penulis hadiahkan kepada Nabi Besar Muhammad SAW.
Ucapan terima kasih yang sebesar-besarnya penulis sampaikan kepada Bapak Syahriol Sitorus, S.Si., M.I.T. sebagai Dosen Pembimbing I dan Bapak M. Andri B., S.T., M.Comp.Sc., M.E.M. sebagai Dosen Pembimbing II atas bimbingan, saran, masukan kepada penulis untuk menyempurnakan skripsi ini. Panduan ringkas, padat dan profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan tugas ini. Selanjutnya kepada para Dosen Penguji Bapak Dr. Tulus, M.Si. dan Ibu Maya Silvi Lydia, B.Sc., M.Sc. atas saran dan kritikan yang sangat berguna bagi Penulis. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus, S.Si., M.I.T., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Program Studi S1 Ilmu Komputer FMIPA USU dan semua pegawai di Program Studi S1 Ilmu Komputer USU.
Seluruh proses pengerjaan skripsi ini tidak akan dapat dilalui tanpa dukungan kedua orangtua dan keluarga. Skripsi ini penulis persembahkan untuk Bapak Syahruddin Purba dan Mama Sri Alika, yang telah memberikan segalanya dalam hidup, dan juga untuk adik penulis yaitu Dwi Hamzah Dermawan dan Permata Ismawarni Putri serta kepada seluruh keluarga besar penulis. Semoga Allah SWT akan membalasnya. Selanjutnya kepada sahabat-sahabat terbaik, Panca, Mario, Aldo, Andri, Jaya, Chandra, Fadlan, Indra P., Puput, Pipit, dan semua teman-teman yang tidak tersebutkan namanya terima kasih atas motivasi dan perhatiannya. Terima kasih kepada seluruh angkatan 2005 serta seluruh mahasiswa Ilkom USU dan semua pihak-pihak yang tidak dapat penulis sebutkan satu persatu, terima kasih atas ide, saran, dan kerja sama yang baik. Terimakasih kepada seluruh staff tata usaha Ilkom Kak Ayi, Pak Sugi, Ibu Mega dan semua yang tidak tersebutkan namanya. Terimakasih kepada kepada Reto, Bang Febri, Bang Irwan dan semua teman-teman di komunitas Medan Linux, dan di berbagai forum java programming yang telah memberi banyak ide di skripsi saya. Terimakasih kepada Ibu Fitri, Ibu Yosi, Bang Jimmy, Bang Darlee dan seluruh teman-teman staf ahli di Dinas Infokom Pemko Medan yang selalu memberikan dukungan kepada saya untuk menyelesaikan tugas akhir. Tak lupa kepada Suryawani Siregar, terima kasih atas semangat, motivasi dan perhatiannya selama ini sehingga penulis bisa menyelesaikan skripsi ini dengan baik.
Penulis menyadari bahwa laporan skripsi ini masih jauh dari kesempurnaan, karena kesempurnaan hanya milik Allah, kekurangan adalah milik penulis. Oleh karena itu, penulis menerima saran dan kritik yang bersifat membangun demi kesempurnaan laporan skripsi ini. Semoga dapat bermanfaat bagi kita semua.
ABSTRAK
Penggunaan handphone sebagai media komunikasi sudah umum dijumpai dalam masyarakat saat ini. Komunikasi antar keduanya dapat dengan mudah dilakukan dengan jarak yang hampir tidak terbatas dengan menggunakan handphone. Aplikasi SMSKlasikHuffman dibuat agar pengirim dapat melakukan pengiriman pesan dengan 2 tipe berbeda, yaitu kompresi serta kompresi dan enkripsi. Algoritma kompresi yang digunakan pada penulisan tugas akhir ini adalah algoritma Huffman dan algoritma kriptografi substitusi Alfabet Tunggal. Aplikasi ini dibuat dengan menggunakan bahasa Java yaitu J2ME dan berjalan pada ponsel berbasis JAVA MIDP 2.0. Pengirim dan penerima bisa berkomunikasi apabila aplikasi SMSKlasikHuffman sudah terinstal di handphone keduanya. Tahapan yang dilakukan untuk melakukan proses pembangunan aplikasi tersebut meliputi tahapan analisis permasalahan dan kebutuhan, perancangan aplikasi dan desain antar muka aplikasi, sehingga aplikasi yang terbentuk menjadi mudah dipergunakan dan memiliki fungsi yang optimal dalam mengirimkan SMS.
AN IMPLEMENTATION OF HUFFMAN’S ALGORITHM AND SINGLE ALPHABET SUBSTITUTION ALGORITHM IN SHORT MESSAGE
SERVICE
ABSTRACT
The use of mobilephones as media of communication is not unusual in modern lifestyles. With mobilephones, communication between two persons of distant places can be delivered effortlessly via voices or SMS. In this final project, an application called SMSKlasikHuffman is implemented so that a plain SMS may be sent either compressed or both compressed-and-encrypted. The compression algorithm used is Huffman's Algorithm, while the cryptographic part employs Single Alphabet Substitution Algorithm. The application is built in J2ME and runs in any mobilephones with JAVA MIDP 2.0 installed. In order to take advantage of this application, it has to be installed on both the sender's and the receiver's mobilephones. The report elaborates phases of problems identification, analysis of identified problems, design of application, and design of user interface for ease of use.
DAFTAR ISI Halaman HALAMAN PERSETUJUAN ii PERNYATAAN iii PENGHARGAAN iv ABSTRAK v ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL ix DAFTAR GAMBAR x Bab 1 PENDAHULUAN 1.1 Latar Belakang 1 1.2 Perumusan Masalah 3 1.3 Batasan Masalah 3 1.4 Tujuan Penelitian 4 1.5 Manfaat Penelitian 4 1.6 Metode Penelitian 5 1.7 Sistematika Penulisan 5
Bab 2 LANDASAN TEORI 2.1 Global Sistem for Mobile communications (GSM) 7
2.1.1 Sejarah 7
2.1.2 Arsitektur GSM 8
2.2 Short Messaging Service (SMS) 10
2.2.1 Sejarah 10
2.2.2 Definisi 10
2.2.3 Arsitektur Layanan SMS pada Jaringan GSM 13
2.2.4 Sistem Kerja SMS 17 2.3 Pemampatan Data 18 2.3.1 Sejarah 18 2.3.2 Definisi 19 2.4 Agoritma Huffman 20 2.5 Kriptografi Klasik 26 2.5.1 Sejarah 26
2.5.2 Definisi dan Terminologi 27
2.5.2.1 Cipher Substitusi 29
2.5.2.2 Chipher Transposisi 31
2.6 Java 2 Micro Edition 32
2.6.2 Definisi 33
2.6.3 Arsitektur J2ME 33
2.6.4 Siklus Hidup Aplikasi J2ME 36
2.6.5 Aplikasi SMS pada J2ME 37
Bab 3 ANALISIS DAN PERANCANGAN 3.1 Analisis 40
3.1.1 Analisis Algoritma Huffman 41
3.1.2 Analisis Algoritma Cipher Substitusi 45
3.2 Perancangan 48
3.2.1 Rancangan Pesan Kompresi 48
3.2.2 Pesan Kompresi dan Enkripsi 48
3.2.3 Rancangan Pengiriman dan Penerimaan SMS Beserta Class yang Digunakan 52
3.3 Rancangan User Interface 57
3.3.1 Tampilan Awal Aplikasi SMS 57
3.3.2 Tampilan Splash Screen Aplikasi 58
3.3.3 Tampilan Menu Utama Aplikasi 58
3.3.4 Tampilan Menu Pesan Aplikasi 59
3.3.5 Tampilan Masukan Pesan Kompresi pada Aplikasi SMS 60
3.3.6 Tampilan Masukan Pesan Kompresi+Enkripsi pada Aplikasi SMS 61
3.3.7 Tampilan Kotak Masuk pada Aplikasi SMS 62
Bab 4 IMPLEMENTASI 4.1 Implementasi 63
4.2 Persiapan Teknis 63
4.3 Proses Instalasi 63
4.4 Tampilan Aplikasi SMSKlasikHuffman 64
4.4.1 Tampilan Awal Aplikasi SMSKlasikHuffman 64
4.4.2 Tampilan Splash Screen Aplikasi SMSKlasikHuffman 65
4.4.3 Tampilan Menu Utama Aplikasi SMSKlasikHuffman 66
4.4.4 Tampilan Menu Pesan Baru Aplikasi SMSKlasikHuffman 67
4.4.5 Tampilan Pesan Mode Kompresi Aplikasi SMSKlasikHuffman 68
4.4.6 Tampilan Pesan Mode Kompresi Enkripsi Aplikasi SMSKlasikHuffman 70
4.4.7 Tampilan Tanda Pesan Masuk Aplikasi SMSKlasikHuffman 73 4.4.8 Tampilan Kotak Masuk Aplikasi SMSKlasikHuffman 74
4.4.9 Tampilan Petunjuk Aplikasi SMSKlasikHuffman 75
4.4.10 Tampilan Tentang Aplikasi SMSKlasikHuffman 76
4.5 Pengujian Keamanan Aplikasi SMSKlasikHuffman 76
4.6 Pengujian Rasio Kompresi 80
Bab 5 PENUTUP
5.1 Kesimpulan 83
5.2 Saran 84
DAFTAR PUSTAKA 85
DAFTAR TABEL
Halaman
Tabel 2.1 Substitusi 29
Tabel 2.2 Perbandingan CLCD dan CDC 35
Tabel 3.1 Kode Huffman 42
Tabel 3.2 Hasil Substitusi 44 Tabel 3.3 Rancangan Substitusi Tahap Awal 45 Tabel 3.4 Rancangan Substitusi Tahap Kedua 46 Tabel 3.5 Rancangan Format Kunci Pengaman 48 Tabel 3.6 Rancangan Format PlainteksPlus 49
DAFTAR GAMBAR
Halaman Gambar 2.1 Layout generic dari jaringan GSM 8 Gambar 2.2 Metode Siaran (Broadcast) 12 Gambar 2.3 Metode Point to Point 12 Gambar 2.4 Arsitektur Layanan SMS 13 Gambar 2.5 Store and Forward 18 Gambar 2.6 Pembentukan pohon Huffman 1 21 Gambar 2.7 Pembentukan pohon Huffman 2 21 Gambar 2.8 Pembentukan pohon Huffman 3 22 Gambar 2.9 Pembentukan pohon Huffman 4 22 Gambar 2.10 Pembentukan pohon Huffman 5 23 Gambar 2.11 Pembentukan pohon Huffman 6 23 Gambar 2.12 Pembentukan pohon Huffman 7 24 Gambar 2.13 Bagian-bagian di dalam platform J2ME 34 Gambar 2.14 Lingkup Configuration 34 Gambar 2.15 Siklus hidup MIDlet 37 Gambar 3.1 Flowchart Sistem Kompresi-Dekompresi Citra 40 Gambar 3.2 Rancangan Pegiriman SMS Kompresi 47 Gambar 3.3 Rancangan Pengirima SMS Kompresi+Ekripsi 47 Gambar 3.4 Rancangan Pengiriman dan Penerimaan SMS Beserta Class yang
Digunakan 50
Gambar 3.5 Flowchart prosedur gantichar 53 Gambar 3.6 Flowchart prosedur ggchar 54 Gambar 3.7 Tampilan Awal Aplikasi SMS 56 Gambar 3.8 Tampilan Splash Screen Aplikasi SMS 56 Gambar 3.9 Tampilan Menu Utama Aplikasi SMS 57 Gambar 3.10 Tampilan Menu Pesan Aplikasi SMS 58 Gambar 3.11 Tampilan Masukan Pesan Jenis Kompresi pada Aplikasi SMS 59 Gambar 3.12 Tampilan Masukan Pesan Jenis Kompresi+Enkripsi pada Aplikasi
SMSKlasikHuffman 60
Gambar 3.13 Tampilan Kotak Masuk pada Aplikasi SMS 61 Gambar 4.1 Tampilan Awal Aplikasi SMSKlasikHuffman 63 Gambar 4.2 Tampilan Splash Screen Aplikasi SMSKlasikHuffman 64 Gambar 4.3 Tampilan Menu Utama Aplikasi SMSKlasikHuffman 65 Gambar 4.4 Tampilan Menu Pesan Baru Aplikasi SMSKlasikHuffman 66 Gambar 4.5 Tampilan Pesan Mode Kompresi Aplikasi SMSKlasikHuffman 67 Gambar 4.6 Tampilan Informasi Hasil Kompresi SMSKlasikHuffman 68
Gambar 4.7 Tampilan Masukkan Nomor Tujuan Aplikasi SMSKlasikHuffman 69 52
Gambar 4.8 Tampilan Pesan Mode Kompresi dan Enkripsi Aplikasi
SMSKlasikHuffman 70 Gambar 4.9 Tampilan Masukkan Kunci Aplikasi SMSKlasikHuffman 71 Gambar 4.10 Tampilan Masukkan Nomor Tujuan Aplikasi SMSKlasikHuffman 72 Gambar 4.11 Tampilan Tanda Pesan Masuk Aplikasi SMSKlasikHuffman 73 Gambar 4.12 Tampilan Kotak Masuk Aplikasi SMSKlasikHuffman 74 Gambar 4.13 Tampilan Petunjuk Aplikasi SMSKlasikHuffman 75 Gambar 4.14 Tampilan Tentang Aplikasi SMSKlasikHuffman 76 Gambar 4.15 Tampilan SendSMSRama 77 Gambar 4.16 Tampilan ReceiveSMSRama 78 Gambar 4.17 Tampilan Pengiriman dan Penerimaan pesan dengan aplikasi
SendSMSRama dan ReceiveSMSRama 79 Gambar 4.18 Tampilan Penerimaan Pesan dengan Aplikasi ReceiveSMSRama 80