PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA ALGORITMA DEFLATE SKRIPSI MUHAMMAD SOLIHIN 111421078
PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI
DATA TEKS DENGAN FIBONACCI ENCODING DAN
ALGORITMA SHANNON-FANO SERTA
ALGORITMA DEFLATE
SKRIPSI
MUHAMMAD SOLIHIN
111421078
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA
ALGORITMA DEFLATE SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer MUHAMMAD SOLIHIN
111421078 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN
2013
PERSETUJUAN
Judul : PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA ALGORITMA DEFLATE
Kategori : SKRIPSI Nama : MUHAMMAD SOLIHIN Nomor Induk Mahasiswa : 111421078 Program Studi : EKSTENSI S1 ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Dian Rachmawati, S.Si, M.Kom Ade Candra, ST, M.Kom NIP. 19830723 200912 2 004 NIP. 19790904 200912 1 002 Diketahui/disetujui oleh Program Studi Ekstensi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 19620217 199103 1 001 PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA
ALGORITMA DEFLATE SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Oktober 2013 Muhammad Solihin 111421078
PENGHARGAAN
Alhamdulillahirrabbila’lamin. Segala dan puji syukur penulis panjatkan hanya kepada
Allah SWT, Pemelihara dan pengatur seluruh alam semesta, karena atas limpahan rahmat, taufik dan hidayah-Nya, penulis mampu menyelesaikan Skripsi ini, serta shalawat dan beriring salam penulis ucapakan kepada Nabi Besar Muhammad SAW.
Skripsi ini dikerjakan sebagai salah satu syarat guna memperoleh gelar Sarjana Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Penulis menyadari bahwa terselesaikannya skripsi ini tentunya tak lepas dari dorongan dan bantuan berbagai pihak. Oleh karena itu, dengan segala kerendahan hati penulis mengungkapkan rasa terima kasih dan penghargaan kepada : 1.
Bapak Ade Candra, ST, M.Kom, selaku Dosen Pembimbing I yang telah memberikan banyak sekali arahan, masukan, bimbingan, saran, serta motivasi yang membangun untuk penulis sehingga penulis dapat menyelesaikan skripsi ini dengan baik.
2. Ibu Dian Rachmawati, S.Si, M,Kom, selaku pembimbing II yang telah memberikan masukan, bimbingan, saran dan motivasi kepada penulis, serta sabar memberikan bantuan sehingga penulis dapat menyelesaikan skripsi ini dengan baik.
3. Bapak Dr. Poltak Sihombing, M, Kom selaku Ketua Program Studi Ilmu Komputer sekaligus sebagai Dosen Pembanding I, yang telah memberikan kritik dan saran yang membangun bagi penulis
4. Bapak Drs. Marihat Situmorang, M.Kom sebagai Dosen Pembanding II yang telah memberikan kritik dan saran yang membangun bagi penulis.
5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara berserta para pegawai yang bertugas di Program Studi Ilmu Komputer FASILKOM-TI USU.
6. Orang tua tercinta, Ayahanda Sabirin, S.Pd dan Ibunda Rosyidah, atas semua doa, dukungan, dan motivasi yang tak ternilai harganya.
7. Keluarga besar Ekstensi Ilmu Komputer, khususnya semua teman dan sahabat angkatan 2011 yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran, dan kerja samanya selama ini. Semoga Allah SWT membalas semua kebaikan yang telah kalian berikan.
Penulis, (Muhammad Solihin)
ABSTRAK
Penelitian ini bertujuan untuk merancang sebuah aplikasi komputer yang dapat mengamankan sekaligus mengkompresi ukuran teks. Pengamanan teks dilakukan dengan mengkodekan teks menggunakan Fibonacci Encoding, kemudian hasil pengkodean Fibonacci Encoding dikompresi menggunakan algoritma Shannon-Fano, lalu hasil kompresi menggunakan algoritma Shannon-Fano dikompresi menggunakan algoritma Deflate, hasil kompresi menggunakan algoritma Deflate adalah hasil akhir proses pengamanan dan kompresi data. Keluaran dari aplikasi ini adalah sebuah file baru yang terdiri dari file header serta file body yang berisi kode-kode hasil pengkodean dan kompresi file teks asli. Rasio kompresi rata-rata antara file input dengan file output untuk file dokumen input dengan ekstensi *.doc adalah 43,653%, sedangkan untuk file teks input dengan ekstensi *.txt adalah 78,444%. Waktu rata-rata yang dibutuhkan untuk melakukan kompresi pada file dokumen input dengan ekstensi
- .doc adalah 5328,2 milisecond, sedangkan untuk file teks input dengan ekstensi *.txt adalah 15837,5 milisecond.
Kata kunci: kompresi teks, Fibonacci Encoding, algoritma Shannon-Fano,
algoritma Deflate
DESIGNING TEXT DATA SECURITY AND COMPRESSION SYSTEM
WITH FIBONACCI ENCODING, SHANNON-FANO ALGORITHM,
AND DEFLATE ALGORITHM
ABSTRACT
This research aimed to constructing a computer application that securing and also compressing the size of text. Text securing was done by text encoding using Fibonacci Encoding, then the result of Fibonacci Encoding was compressed using Shannon-Fano algorithm, then the result of compression using Shannon-Fano algorithm was compressed using Deflate algorithm, the Deflate compression result is the final result of text securing and compression. The output of this application is a new file that consists of file header and file body that contains the encoding and compression codes of original text file. The average of compreesion ratio between the input file and the
output file for document file with *.doc extension is 43,653%, otherwise the average
of compression ratio fot text file with *.txt extension is 78,444%. The average of compression time for document input file with *.doc extension is 5328,2 miliseconds, otherwise for text input file with *,txt extension is 15837,5 miliseconds.
Keywords: text compression, Fibonacci Encoding, Shannon-Fano algorithm,
Deflate algorithm
DAFTAR ISI
Hal.PERSETUJUAN ii
PERNYATAAAN iii
PENGHARGAAN iv
ABSTRAK vi
ABSTRACT vii
DAFTAR ISI viii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
BAB 1 PENDAHULUAN
1.1 Latar Belakang
1
1.2 Rumusan Masalah
2
1.3 Batasan Masalah
2
1.4 Tujuan Penelitian
3
1.5 Manfaat Penelitian
3
1.6 Metodologi Penelitian
4
1.7 Sistematika Penulisan
5 BAB 2 TINJAUAN PUSTAKA
6
2.1 Kompresi Data
6
2.2 File Teks
8
2.3 Fibonacci Encoding
10
2.4 Algoritma Shannon-Fano
12
2.5 Algoritma Deflate
13 BAB 3 ANALISIS DAN PERANCANGAN SISTEM
15
53
3.5 Pembuatan Rancangan Tampilan Aplikasi
50
3.5.1 Rancangan Form Splash Screen
50
3.5.2 Rancangan Form Tab Menu Kompresi
51
3.5.3 Rancangan Form Tab Menu Dekompresi
52
3.5.4 Rancangan Form Tab Menu Tentang Aplikasi
3.5.5 Rancangan Form Dialog Ringkasan
3.4.5 Penerapan Algoritma Deflate
53 BAB 4 IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
56
4.1.1 Implementasi Encoding Dan Decoding File Teks Maupun Dokumen Menggunakan Fibonacci Encoding
Pada Aplikasi
62
4.1.2 Implementasi Kompresi Dan Dekompresi Menggunakan Algoritma Shannon-Fano
69
4.1.3 Implementasi Kompresi Dan Dekompresi Menggunakan Algoritma Deflate
43
34
3.1 Analisis Masalah
3.3.3 Class Diagram
15
3.2 Analisis Kebutuhan Sistem
16
3.3 Pemodelan Aplikasi
17
3.3.1 Use-Case Diagram
18
3.3.2 Activity Diagram
18
23
3.4.4 Alur Proses Kompresi Dan Dekompresi Dengan Algoritma Shannon-Fano
3.3.4 Sequence Diagram
24
3.4 Perancangan Sistem
25
3.4.1 Pembuatan Algoritma Program
25
3.4.2 Alur Proses Sistem Secara Umum
25
3.4.3 Alur Proses Encoding Dan Decoding Dengan Fibonacci Encoding
28
76
4.2 Pengujian Aplikasi
79
4.2.1 Pengujian Kompresi Dalam Aplikasi
80
4.2.2 Proses Dekompresi Dalam Aplikasi
83
4.3 Hasil Pengujian
86 BAB 5 KESIMPULAN DAN SARAN 100
5.1 Kesimpulan 100
5.2 Saran 101
Lampiran A: Questioner 102
Lampiran B: Listing Program 112
DAFTAR TABEL
Hal.4.2 Kemunculan Masing-Masing Bilangan Byte Dalam Array Byte Fibonacci
45
3.12 Kode Program Untuk Kompresi Dengan Algoritma Deflate
48
3.13 Kode Program Untuk Dekompresi Dengan Algoritma Deflate
49
4.1 Kode Fibonacci Dari Masing-Masing Karakter Dalam String Input
56
58
44
4.3 Kode Shannon-Fano Untuk Byte Dalam Array Byte Fibonacci
59
4.4 Kode Program Untuk Membuat File Fibonacci Dari File Teks Maupun Dokumen Input Dan Sebaliknya
65
4.5 Kode Program Untuk Membuat File Shannon-Fano Dari File Fibonacci Dan Sebaliknya
72
4.6 Kode Program Untuk Membuat File Output Dari File Shannon-Fano Dan Sebaliknya
77
3.11 Kode Huffman
3.10 Dekompresi Teks Menggunakan Algoritma LZ77
2.1 Proses Pembentukan Kode Fibonacci
34
11
3.1 Hasil Fibonacci Encoding
28
3.2 Kode Program Untuk Encoding
30
3.3 Kode Program Untuk Decoding
33
3.4 Frekuensi Kemunculan Karakter
3.5 Kode Shannon-Fano
43
36
3.6 Kode Program Untuk Membuat Tabel Kemunculan Karakter
38
3.7 Kode Program Untuk Membuat Tabel Frekuensi
39
3.8 Kode Program Untuk Membuat Kode Shannon-Fano
41
3.9 Kompresi Teks Menggunakan Algoritma LZ77
4.7 Hasil Pengujian Untuk Kompresi File Dokumen Dengan
Ekstensi Doc
86
4.8 Hasil Pengujian Untuk Dekompresi File Dokumen Dengan Ekstensi Doc
87
4.9 Hasil Pengujian Untuk Kompresi File Teks Dengan Ekstensi Txt
93
4.10 Hasil Pengujian Untuk Dekompresi File Teks Dengan Ekstensi Txt
94
DAFTAR GAMBAR
Hal.3.16 Diagram Blok Proses Kompresi Dan Dekompresi Algoritma Shannon-Fano
29
3.12 Flowchart Proses Encoding Dengan Fibonacci Encoding
30
3.13 Flowchart Proses Decoding Dengan Fibonacci Encoding
32
3.14 Proses Partisi Dan Pembentukan Kode Shannon-Fano Secara Manual
35
3.15 Pohon Shannon-Fano Yang Terbentuk
35
37
27
3.17 Flowchart Proses Kompresi Dengan Algoritma Shannon-Fano
38
3.18 Struktur File Hasil Kompresi Dengan Algoritma Shannon-Fano
43
3.19 Pohon Huffman
44
3.20 Flowchart Kompresi Deflate
45
3.21 Flowchart Dekompresi Deflate
3.11 Diagram Blok Proses Fibonacci Encoding
3.10 Flowchart Decoding Dan Dekompresi File Teks Maupun Dokumen
2.1 Diagram Blok Proses Kompresi Dan Dekompresi Data
3.4 Activity Diagram Fibonacci Processor
7
2.2 File Teks Sederhana
9
3.1 Diagram Ishikawa
15
3.2 Use-Case Diagram Pada Sistem
18
3.3 Activity Diagram Pada Sistem
19
20
26
3.5 Activity Diagram Shannon-Fano Processor
21
3.6 Activity Diagram Deflate Processor
22
3.7 Class Diagram Pada Sistem
23
3.8 Sequence Diagram Pada Sistem
24
3.9 Flowchart Encoding Dan Kompresi File Teks Maupun Dokumen
46
3.22 Diagram Blok Proses Kompresi Dan Dekompresi Algoritma Deflate
78
73
4.9 File Shannon-Fano Untuk File Dokumen Dengan Ekstensi Doc
74
4.10 File Fibonacci Hasil Dekompresi Untuk File Teks Dengan Ekstensi Txt
75
4.11 File Fibonacci Hasil Dekompresi Untuk File Dokumen Dengan Ekstensi Doc
75
4.12 File Output Untuk File Teks Dengan Ekstensi Txt
77
4.13 File Output Untuk File Dokumen Dengan Ekstensi Doc
4.14 File Shannon-Fano Hasil Dekompresi Untuk File Teks Dengan Ekstensi Txt
68
79
4.15 File Shannon-Fano Hasil Dekompresi Untuk File Dokumen Dengan Ekstensi Doc
79
4.16 Splash Screen Aplikasi
80
4.17 Tab Menu Kompresi
80
4.18 Open File Dialog Pilih File Input Kompresi
81
4.19 Save File Dialog Untuk File Tujuan Output Kompresi
82
4.8 File Shannon-Fano Untuk File Teks Dengan Ekstensi Txt
4.7 File Dokumen Hasil Decoding Dengan Ekstensi Doc
47
3.28 Rancangan Form Dialog Ringkasan
3.23 Struktur File Output Aplikasi
50
3.24 Rancangan Form Splash Screen
50
3.25 Rancangan Form Tab Menu Kompresi
51
3.26 Rancangan Form Tab Menu Dekompresi
52
3.27 Rancangan Form Tab Menu Tentang Aplikasi
53
54
68
4.1 Hasil Kompresi Ditampilkan Dengan Penyunting Teks
61
4.2 File Teks Input Dengan Ekstensi Txt
66
4.3 File Dokumen Input Dengan Ekstensi Doc
66
4.4 File Fibonacci Pada File Teks Input Dengan Ekstensi Txt
67
4.5 File Fibonacci Pada File Dokumen Input Dengan Ekstensi Doc
67
4.6 File Teks Hasil Decoding Dengan Ekstensi Txt
4.20 Tampilan Tab Menu Kompresi Setelah File Input Dan Output
Ditentukan
89
4.36 Grafik Perbandingan Antara File Input, File Output, Dan File Hasil Dekompresi Untuk File Teks Dengan Ekstensi Txt
98
4.35 Grafik Perbandingan Antara File Shannon-Fano, File Output, Dan File Hasil Dekompresi Deflate Untuk File Teks Dengan Ekstensi Txt
97
4.34 Grafik Perbandingan Antara File Fibonacci, File Shannon-Fano, Dan File Hasil Dekompresi Shannon-Fano Untuk File Teks Dengan Ekstensi Txt
96
4.33 Grafik Perbandingan Antara File Teks Input, File Fibonacci, Dan File Hasil Decoding Untuk File Teks Dengan Ekstensi Txt
93
4.32 Grafik Perbandingan Antara Waktu Yang Dibutuhkan Untuk Kompresi dan Dekompresi Pada File Dokumen Dengan Ekstensi Doc
4.31 Grafik Perbandingan Antara File Input, File Output, Dan File Hasil Dekompresi Untuk File Dokumen Dengan Ekstensi Doc 92
91
4.30 Grafik Perbandingan Antara File Shannon-Fano, File Output, Dan File Hasil Dekompresi Deflate Untuk File Dokumen Dengan Ekstensi Doc
90
4.29 Grafik Perbandingan Antara File Fibonacci, File Shannon-Fano, Dan File Hasil Dekompresi Shannon-Fano Untuk File Dokumen Dengan Ekstensi Doc
4.28 Grafik Perbandingan Antara File Dokumen Input, File Fibonacci, Dan File Hasil Decoding Untuk File Dokumen Dengan Ekstensi Doc
82
86
4.27 Dialog Ringkasan Dekompresi
85
4.26 Save File Dialog File Tujuan Output Dekompresi
85
4.25 Dialog Konfirmasi Ekstensi File Output Dekompresi
84
4.24 Tampilan Tab Menu Dekompresi Setelah File Input Ditentukan
84
4.23 Open File Dialog Pilih File Input Dekompresi
83
4.22 Tampilan Tab Menu Dekompresi
83
4.21 Dialog Ringkasan Kompresi
99
4.37 Grafik Perbandingan Antara Waktu Yang Dibutuhkan Untuk Kompresi dan Dekompresi Pada File Teks Dengan Ekstensi Txt 100