SHANNON-FANO UNTUK KOMPRESI FILE TEKS
SKRIPSI
NURHENNIDA BR SITEPU
101401097
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
SHANNON-FANO UNTUK KOMPRESI FILE TEKS
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
NURHENNIDA BR SITEPU 101401097
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
PERSETUJUAN
Judul : PERBANDINGAN ALGORITMA ELIAS
GAMMA CODE DENGAN SHANNON-FANO UNTUK KOMPRESI FILE TEKS
Kategori : SKRIPSI
Nama : NURHENNIDA BR SITEPU
Nomor Induk Mahasiswa : 101401097
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, 21 Agustus 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Jos Timanta Tarigan, M.sc Drs. Marihat Situmorang, M.Kom
NIP. - NIP. 19631214 198903 1 001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
PERBANDINGAN ALGORITMA ELIAS GAMMA CODE DENGAN SHANNON-FANO UNTUK KOMPRESI FILE TEKS
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 21 Agustus 2014
Nurhennida Br Sitepu
101401097
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT atas nikmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada :
1. Bapak Prof.Dr.dr.Syahril Pasaribu, DTM&H, MSc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara
2. Bapak Prof.Dr.Muhammad Zarlis, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara
3. Bapak Dr.Poltak Sihombing, M.Kom, selaku Ketua Program studi S1 Ilmu Komputer Universitas Sumatera Utara dan sebagai dosen pembanding I yang telah memberikan kritikan dan saran guna memperbaiki kesalahan yang ada pada skripsi ini
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc, selaku Sekretaris Program studi S1 Ilmu Komputer Universitas Sumatera Utara dan dosen pembanding II pada seminar proposal yang telah memberikan kritikan dan saran guna memperbaiki kesalahan yang ada pada skripsi ini
5. Bapak Drs. Marihat Situmorang, M.Kom, selaku dosen pembimbing I yang telah memberikan bimbingan, kritik, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini
6. Bapak Jos Timanta Tarigan, M.Sc, selaku dosen pembimbing II yang memberikan bimbingan, kritik, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini
7. Bapak M.Andri Budiman, ST, M.Comp.Sc,MEM, selaku dosen pembanding II yang telah memberikan kritik dan saran yang sangat membangun serta telah membimbing penulis dari awal hingga penulis dapat menyelesaikan skripsi ini
8. Ibu Dian Rachmawati, S.Si., M.Kom. yang telah menjadi dosen pembimbing akademik yang telah membimbing saya dari awal perkuliahan hingga tahap pengambilan judul skripsi.
10.Ayahanda Izin Sitepu yang telah memberikan kenangan nasihat yang selalu membuat penulis dapat terus semangat, Ibunda Relahati Br Ginting, kakanda Irma Supriyanti Br Sitepu, A.Md, adinda Aisyah Muhseliani Br Sitepu dan Desmi Fitri Syahdani Br Sitepu yang telah memberikan dukungan dan doa kepada penulis dalam menyelesaikan skripsi ini
11.Azizah Mei Sari Sebayang, Yayang Kurniati, Hayatun Nufus, dan Fanny Fairina N sahabat yang selalu memberikan motivasi dan semangat baru untuk penulis dalam menyelesaikan skripsi ini.
12.Saddam Husein S, Agung Putu Yoga, Fitriyati, dan Amalia Chairy yang telah memberikan semangat dan telah membantu dalam pengerjaan skripsi ini.
13.Rekan-rekan ruang teknisi yang selalu ceria Bg Ahmad Royhan, Cholik Indriyanto, Bg Febri, Septia Mega Rasinta Br Ginting, Desy Anggraini, Raihan Jannah, Pratiwi Indayani dan Wirda Harisa terima kasih untuk semangat dan motivasi yang telah diberikan kepada penulis
14.Rekan-rekan Stambuk 2010, KomDis, IMILKOM, Relawan TIK, IKLC, UKMI Al-Khuwarizmi, UKM Robotik SIKONEK yang tidak dapat penulis sebutkan namanya satu persatu terima kasih untuk dukungan yang telah diberikan dalam pengerjaan skripsi ini
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna untuk itu penulis menerima kritik dan saran yang membangun agar dapat menyempurnakan skripsi ini. Semoga Allah memberikan nikmat dan karunia kepada seluruh pihak yang membantu penulis dalam menyelesaikan skripsi ini
Medan, 21 Agustus 2014
Penulis
ABSTRAK
Perpindahan informasi berupa data saat ini sangat berkembang pesat. Semakin banyak informasi maka akan semakin besar kapasitas data dan tempat penyimpanan yang dibutuhkan. Algoritma kompresi dibutuhkan untuk mengurangi ukuran data sehingga mempercepat perpindahan data dan mengurangi tempat penyimpanan. Penelitian ini bertujuan untuk merancang aplikasi yang dapat membandingkan algoritma kompresi Elias Gamma Code dengan Shannon-Fano. File yang dikompresi adalah file teks .txt. Parameter yang digunakan dalam membandingkan kedua algoritma ini adalah rasio kompresi, waktu kompresi, redundancy data dan waktu dekompresi. Pada proses pengujian untuk jumlah 34 karakter yang berbeda, algoritma Elias Gamma Code menghasilkan rasio 1%, waktu kompresi 0.033 detik, redundancy data 0 dan waktu dekompresi 0.022 detik sedangkan Shannon-Fano secara berurut 1.48%, 0.054 detik, 32.35 dan 0.020 detik. Algoritma kompresi dipengaruhi oleh frekuensi kemunculan karakter dan jumlah variasi karakter. Algoritma Elias Gamma Code memiliki batasan karakter yang bisa dikompresi, jika karakter yang berbeda diatas 35 dan kemunculan hanya sekali maka hasil redundancy data akan bernilai negatif.
THE COMPARISON OF ELIAS GAMMA CODE AND SHANNON-FANO ALGORITHM FOR FILE TEXT COMPRESSION
ABSTRACT
The transfer of information grows rapidly nowadays. The more information needed, the larger data capacity and storage are required. Compression algorithm is needed to reduce the size of data thus speeding up the transfer of data and reducing storage space. This study aims to design an application which can compare compression algorithms between Elias Gamma Code and Shannon-Fano. Files to be compressed are .txt files. The parameters used in comparing the two algorithms are the compression ratio, compression time, data redundancy, and decompression time. In the process of testing for the number of 34 different characters, Elias Gamma Code algorithm produces a ratio of 1%, the compression time 0.033 seconds, redundancy of data 0 and the decompression time 0.022 seconds, and correspondingly, the Shannon-Fano parameters are: 1.48%, 0.054 seconds, 32.35 and 0.020 seconds. The compression algorithm is influenced by the frequency of occurrence of the characters and the amount of variation of characters. Elias Gamma Code has a limit of number of characters that can be compressed: if over 35 unique characters and each character occurs only once then the result of the data redundancy is negative.
Keywords : Elias Gamma Code, Shannon-Fano, Compression, Decompression, Ratio, Data Redundancy, Compression Time, Decompression Time, Lossless Compression, .txt Text Files.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xii
Bab I Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 2
1.6 Metode Penelitian 3
1.7 Sistematika Penulisan 4
Bab II Landasan Teori
2.1 Kompresi 5
2.2.1 Pengertian dekompresi 7
2.2.2 Tujuan dekompresi 8
2.7 Algoritma Shannon-Fano 13
2.7.1 langkah-langkah kompresi algoritma shannon-fano 13 2.7.2 langkah-langkah dekompresi algoritma shannon-fano 16
Bab III Analisis dan Perancangan
3.1 Analisis Sistem 18
3.1.1 Analisis Masalah 18
3.1.4 Pseudocode 24
3.1.4.1 Pseudocode pembaca karakter dan frekuensi 24
3.2 Perancangan Sistem 29
3.2.1 Kompresi-Home 29
3.2.2 Kompresi-Elias 30
3.2.3 Kompresi-Shannon 31
3.2.4 Kompresi-Help 32
3.2.5 Kompresi-About 33
3.2.6 Kompresi-Exit 34
Bab IV Implementasi dan Pengujian
4.1 Implementasi Sistem 35
4.1.1 Form Kompresi-Home 35
4.2 Pengujian Sistem 40
4.2.1 Pengujian algoritma elias gamma code 40
4.2.2 Pengujian algoritma shannon-fano 45
4.2.3 Isi File Pengujian 45
4.2.4 Hasil pengujian elias gamma code 47
4.2.6 Grafik pengujian elias gamma code 50
4.2.7 Grafik pengujian shannon-fano 53
4.2.8 Grafik gabungan pengujian elias gamma code dan shannon-fano 51 4.2.9 Grafik gabungan pengujian karakter yang berulang elias gamma
code dan Shannon-fano 58
Bab V Kesimpulan dan Saran
5.1 Kesimpulan 61
5.2 Saran 62
Daftar Pustaka 63
DAFTAR TABEL
Nomor
Tabel Nama Tabel Halaman
2.1 2.2 2.3 2.4 4.1
4.2 4.3 4.4 4.5 4.6
Frekuensi Kemunculan Simbol Pembagian Pertama
Pembagian Kedua
Kode dan Panjang Kode Shannon-Fano
Isi File .txt 100 Karakter dengan Penambahan 1 Variasi Karakter
Isi File .txt 36 Variasi Karakter Kelipatan 36 Karakter Hasil Pengujian Penambahan Variasi Karakter
Hasil Pengujian Perulangan Karakter
Hasil Pengujian Penambahan Variasi Karakter Hasil Pengujian Penambahan Variasi Karakter
14 15 15 16 45
DAFTAR GAMBAR
Ilustrasi kompresi lossy Ilustrasi kompresi lossless Daftar Elias Gamma Code
Diagram Ishikawa analisis masalah Use case diagram sistem
Activity Diagram sistem Sequence diagram sistem Flowchart sistem
Perancangan form kompresi-home Perancangan form kompresi-elias Perancangan form kompresi-shannon Perancangan form kompresi-help Perancangan form kompresi-about Tampilan form kompresi-home (beranda)
Tampilan form kompresi-elias (submenu elias gamma code) Tampilan form kompresi-shannon (submenu shannon-fano) Tampilan form kompresi-help (bantuan)
Tampilan form kompresi-about (tentang) Tampilan isi file .txt berhasil dibaca
Tampilan setelah memilih tombol kompresi Tampilan setelah memilih tombol dekompresi Tampilan file berhasil disimpan
Tampilan tombol kosongkan aktif
Tampilan saat tombol kosongkan ditekan Grafik pengujian jumlah karakter dengan rasio
Grafik pengujian jumlah karakter dengan waktu kompresi Grafik pengujian jumlah karakter dengan redundancy data Grafik pengujian jumlah karakter dengan waktu dekompresi Grafik pengujian jumlah karakter dengan rasio
Grafik pengujian jumlah karakter dengan waktu kompresi Grafik pengujian jumlah karakter dengan redundancy data Grafik pengujian jumlah karakter dengan waktu dekompresi Grafik pengujian jumlah karakter dengan rasio
Grafik pengujian jumlah karakter dengan redundancy data Grafik pengujian jumlah karakter dengan waktu kompresi Grafik pengujian jumlah karakter dengan waktu dekompresi Grafik jumlah karakter dengan rasio
Grafik jumlah karakter dengan waktu kompresi Grafik jumlah karakter dengan redundancy data Grafik jumlah karakter dengan waktu dekompresi
DAFTAR LAMPIRAN
Listing Program 65