Perbandingan Algoritma Elias Gamma Code Dengan Shannon-Fano Untuk Kompresi File Teks

PERBANDINGAN ALGORITMA ELIAS GAMMA CODE DENGAN
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
MEDAN
2014

Universitas Sumatera Utara

PERBANDINGAN ALGORITMA ELIAS GAMMA CODE DENGAN
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

Universitas Sumatera Utara

ii

PERSETUJUAN

Judul


:

Kategori
Nama
Nomor Induk Mahasiswa
Program Studi
Fakultas

:
:
:
:
:

PERBANDINGAN ALGORITMA ELIAS
GAMMA CODE DENGAN SHANNON-FANO
UNTUK KOMPRESI FILE TEKS
SKRIPSI
NURHENNIDA BR SITEPU
101401097

SARJANA (S1) ILMU KOMPUTER
ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI

Diluluskan di
Medan, 21 Agustus 2014
Komisi Pembimbing

:

Pembimbing 2

Pembimbing 1

Jos Timanta Tarigan, M.sc
NIP. -

Drs. Marihat Situmorang, M.Kom
NIP. 19631214 198903 1 001


Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M.Kom
NIP 19620317 199103 1 001

Universitas Sumatera Utara

iii

PERNYATAAN

PERBANDINGAN ALGORITMA ELIAS GAMMA CODE DENGAN SHANNONFANO 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

Universitas Sumatera Utara

iv
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.
9. Seluruh dosen dan pegawai Program studi S1 Ilmu Komputer Fasilkom-TI USU

Universitas Sumatera Utara


v

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

Universitas Sumatera Utara

vi

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.

Kata kunci : Elias Gamma Code, Shannon-Fano, Kompresi, Dekompresi, Rasio,
Redundancy data, Waktu kompresi, Waktu dekompresi, lossless kompresi, File teks
.txt

Universitas Sumatera Utara

vii

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


Universitas Sumatera Utara

viii

DAFTAR ISI

Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar
Daftar Lampiran

ii
iii
iv
vi
vii
viii
x
xi
xii

Bab I Pendahuluan
1.1 Latar Belakang
1.2 Rumusan Masalah
1.3 Batasan Masalah
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
1.6 Metode Penelitian
1.7 Sistematika Penulisan

1
2
2
2
2
3
4

Bab II Landasan Teori
2.1 Kompresi
2.1.1 Sejarah kompresi
2.1.2 Defenisi kompresi
2.1.3 Tujuan kompresi
2.1.4 Metode kompresi
2.2 Dekompresi
2.2.1 Pengertian dekompresi
2.2.2 Tujuan dekompresi
2.3 Rasio Kompresi
2.3.1 Pengertian rasio kompresi
2.3.2 Rumus rasio kompresi
2.4 Data Berlebihan (Data Redundancy)
2.5 Teknik Kompresi
2.5.1 Kompresi lossy (lossy compression)
2.5.2 Kompresi lossless (lossless compression)
2.6 Algoritma Elias Gamma Code
2.6.1 langkah-langkah kompresi algoritma elias gamma code
2.6.2 langkah-langkah dekompresi algoritma elias gamma code
2.7 Algoritma Shannon-Fano
2.7.1 langkah-langkah kompresi algoritma shannon-fano
2.7.2 langkah-langkah dekompresi algoritma shannon-fano
2.8 Penelitian yang relevan

5
5
5
6
7
7
7
8
8
8
8
8
9
10
10
11
12
12
13
13
16
16

Universitas Sumatera Utara

ix

Bab III Analisis dan Perancangan
3.1 Analisis Sistem
3.1.1 Analisis Masalah
3.1.2 Analisis Persyaratan
3.1.2.1 Analisis Fungsional
3.1.2.2 Analisis Nonfungsional
3.1.3 Analisis Proses
3.1.3.1 Use case diagram
3.1.3.2 Activity diagram
3.1.3.2 Sequence diagram
3.1.4 Pseudocode
3.1.4.1 Pseudocode pembaca karakter dan frekuensi
3.1.4.2 Pseudocode mengurutkan karakter berdasarkan frekuensi
3.1.4.3 Pseudocode kompresi shannon-fano
3.1.4.4 Pseudocode kompresi elias gamma code
3.1.4.5 Pseudocode dekompresi
3.1.4.6 Pseudocode perhitungan nilai parameter
3.1.5 Flowchart Sistem
3.2 Perancangan Sistem
3.2.1 Kompresi-Home
3.2.2 Kompresi-Elias
3.2.3 Kompresi-Shannon
3.2.4 Kompresi-Help
3.2.5 Kompresi-About
3.2.6 Kompresi-Exit
Bab IV Implementasi dan Pengujian
4.1 Implementasi Sistem
4.1.1 Form Kompresi-Home
4.1.2 Form Kompresi-Elias
4.1.3 Form Kompresi-Shannon
4.1.4 Form Kompresi-Help
4.1.5 Form Kompresi-About
4.1.6 Form Kompresi-Exit
4.2 Pengujian Sistem
4.2.1 Pengujian algoritma elias gamma code
4.2.2 Pengujian algoritma shannon-fano
4.2.3 Isi File Pengujian
4.2.4 Hasil pengujian elias gamma code
4.2.6 Grafik pengujian elias gamma code
4.2.7 Grafik pengujian shannon-fano
4.2.8 Grafik gabungan pengujian elias gamma code dan shannon-fano
4.2.9 Grafik gabungan pengujian karakter yang berulang elias gamma
code dan Shannon-fano
Bab V Kesimpulan dan Saran
5.1 Kesimpulan
5.2 Saran
Daftar Pustaka

18
18
19
19
20
20
21
22
23
24
24
25
25
26
26
26
27
29
29
30
31
32
33
34

35
35
36
37
38
39
40
40
40
45
45
47
50
53
51
58
61
62
63

Universitas Sumatera Utara

x

DAFTAR TABEL

Nomor
Tabel
2.1
2.2
2.3
2.4
4.1
4.2
4.3
4.4
4.5
4.6

Nama Tabel

Halaman

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
47
48
48
49
50

Universitas Sumatera Utara

xi

DAFTAR GAMBAR

Nomor
Gambar
2.1
2.2
2.3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27

Nama Gambar

Halaman

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

10
11
12
19
22
23
24
28
29
30
31
33
33
36
37
38
39
40
41
42
43
43
44
44
50
51
52
52
53
54
54
55
55
56
56
57
59
59
60
60

Universitas Sumatera Utara

xii

DAFTAR LAMPIRAN

Listing Program
Curriculum Vitae

65
82

Universitas Sumatera Utara