• Tidak ada hasil yang ditemukan

Analisis Perbandingan Kinerja Algoritma Shannon-Fano, Arithmetic Coding, Dan Huffman Pada Kompresi Berkas Teks Dan Berkas Citra Digital

N/A
N/A
Protected

Academic year: 2019

Membagikan "Analisis Perbandingan Kinerja Algoritma Shannon-Fano, Arithmetic Coding, Dan Huffman Pada Kompresi Berkas Teks Dan Berkas Citra Digital"

Copied!
15
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN KINERJA ALGORITMA SHANNON-FANO,

ARITHMETIC CODING, DAN HUFFMAN PADA KOMPRESI

BERKAS TEKS DAN BERKASCITRA DIGITAL

SKRIPSI

SYARIFAH KEUMALA ANDRIATY

091401084

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

ANALISIS PERBANDINGAN KINERJA ALGORITMA SHANNON-FANO, ARITHMETIC CODING, DAN HUFFMAN PADA KOMPRESI

BERKAS TEKS DAN BERKASCITRA DIGITAL

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

SYARIFAH KEUMALA ANDRIATY 091401084

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : ANALISIS PERBANDINGAN KINERJA

ALGORITMA SHANNON-FANO, ARITHMETIC CODING, DAN HUFFMAN PADA KOMPRESI BERKAS TEKS DAN BERKAS CITRA DIGITAL

Kategori : SKRIPSI

Nama : SYARIFAH KEUMALA ANDRIATY

Nomor Induk Mahasiswa : 091401084

Program Studi : S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, 24 Juli 2013

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Syahriol Sitorus, S.SI, MIT Drs. James Pieter Marbun, M.Kom NIP. 19710310 199703 1 004 NIP. 19580611 198603 1 002

Diketahui/disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

ANALISIS PERBANDINGAN KINERJA ALGORITMA SHANNON-FANO, ARITHMETIC CODING, DAN HUFFMAN PADA KOMPRESI

BERKAS TEKS DAN BERKAS CITRA DIGITAL

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Juli 2013

(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan ke hadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya, serta segala sesuatu dalam hidup, sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI), Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc.(CTM). Sp.A(K) selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fasilkom-TI Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M. Kom. selaku Ketua Program Studi S1 Ilmu Komputer dan Dosen Penguji I.

4. Ibu Maya Silvi Lydia, B.Sc. M.Sc. selaku Sekretaris Program Studi S1 Ilmu Komputer dan Dosen Penguji II.

5. Bapak Drs. James Pieter Marbun, M. Kom. selaku Dosen Pembimbing I. 6. Bapak Syahriol Sitorus, S.Si., MIT. selaku Dosen Pembimbing II.

7. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

8. Ayahanda Said Adnan dan Ibunda Darmiaty yang selalu memberikan dukungan, perhatian, dan doa tanpa henti kepada penulis.

9. Kakanda penulis Syarifah Dian Andriaty, SE, Ak., dr. Syarifah Nora Andriaty, Syarifah Lisa Andriati, SH, M.Hum., dan Syarifah Lia Andriaty, S.Hut. yang telah memberikan motivasi dan dukungan tanpa henti kepada penulis.

10.Muhammad Aidil Akbar, S.Kom. yang telah memberikan bimbingan, dukungan, dan perhatian kepada penulis.

11.Teman-teman sekaligus keluarga besar Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

(6)

Medan, Juli 2013 Penulis,

(7)

ABSTRAK

Kompresi data merupakan proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat (compact) namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut. Proses kompresi data sangat diperlukan pada dunia komputerisasi, yaitu pada proses pengiriman data, dan pada penyimpanan data tersebut. Kompresi data dapat dilakukan secara lossy dan lossless. Pada kompresi data yang bersifat lossy, data dapat dimampatkan dan didekompresi dengan perubahan informasi di dalamnya, sehingga data asli berbeda dengan data hasil. Pada kompresi data yang bersifat lossless, data dapat dimampatkan dan didekompresi tanpa kehilangan informasi, sehingga metode kompresi dengan sifat

lossless dapat diterapkan pada keperluan medis dan lain sebagainya. Pada penelitian

ini dilakukan implementasi beberapa algoritma kompresi yang bersifat lossless, yaitu Shannon-Fano, Arithmetic Coding dan Huffman yang bertujuan untuk mengetahui algoritma paling optimal di antara ketiga algoritma tersebut. Parameter perbandingan kinerja algoritma yang digunakan adalah waktu kompresi, rasio kompresi, faktor kompresi, saving percentage, dan kompleksitas algoritma (Big-O). Aplikasi pendukung yang dibangun pada penelitian ini adalah suatu aplikasi kompresi dengan berkas teks dengan format *.txt dan berkas citra digital dengan format *.bmp. Berdasarkan percobaan pada lima buah berkas teks dan lima buah berkas citra digital, diketahui bahwa algoritma Shannon-Fano merupakan algoritma teroptimal dibandingkan Arithmetic Coding dan Huffman, notasi Big-O dari algoritma Shannon-Fano dan Arithmetic Coding adalah O(n), sedangkan nilai notasi Big-O dari algoritma Huffman adalah O(n2).

(8)

COMPARATIVE PERFORMANCE ANALYSIS OF COMPRESSION

ALGORITHMS SHANNON-FANO, ARITHMETIC CODING, AND

HUFFMAN IN TEXT FILE AND DIGITAL FILE IMAGE

ABSTRACT

Data compression is process of reducing the size of data to produce a digital representation of a compressed or compact but still be able to represent the quantity of information that contained in the data. Data compression is required in computerization, which in the process of data sending, and in data storage. Data compression can be implemented in lossy method or lossles method. In lossy data compression, data can be compressed and decompressed with some differences of information between original data and result data. In lossless data compression, data can be compressed and decompressed without lossing any information, so that nature of lossless compression method can be applied to medical purposes and so on. In this research, algorithms of compression data implemented with lossless method, which are Shannon-Fano, Arithmetic Coding, and Huffman that aims to find the most optimal algorithm between them. The comparison parameters of the performance of the algorithms used are compression time, compression ratio, compression factor, saving percentage of memory, and algorithmic complexity (Big-O). Supporting application that built in this research is a compression application with text file formatted in *.txt and digital image file formatted in *.bmp. Based on experiments on five text files and five image files, concluded that Shannon-Fano algorithm is the most optimal algorithm compared to Arithmetic Coding and Huffman, Big-O notation from Shannon-Fano and Arithmetic Coding algorithm is O(n), and Big-O notation from Huffman algorithm is O(n2).

(9)

DAFTAR ISI

2.10 Algoritma Shannon-Fano 12

2.11 Algoritma Arithmetic Coding 12

2.12 Algoritma Huffman 13

2.13 Kompleksitas Algoritma (Notasi Big-O) 14

2.14 Evaluasi Kinerja Algoritma 15

2.15 Penelitian yang Relevan 16

2.15.1 Studi perbandingan kinerja algoritma kompresi 16 Shannon-Fano dan Huffman pada citra digital

2.15.2 Analisis kinerja dan implementasi algoritma kompresi 16 Arithmetic Coding pada file teks dan citra digital

2.15.3 Implementasi Algoritma Huffman pada Kompresi Citra BMP

(10)

Hal. 2.15.4 Analisis Perbandingan Teknik Kompresi Menggunakan

Algoritma Shannon-Fano, dan Run Length Encoding pada Citra Berformat BMP dan PNG

17

Bab 3 Analisis Dan Perancangan Sistem

3.1 Analisis Sistem 18 Bab 4 Implementasi Dan Pengujian

4.1 Implementasi Algoritma Shannon-Fano 54

4.1.1 Kompresi algoritma Shannon-Fano 54

4.1.2 Dekompresi algoritma Shannon-Fano 57 4.1.3 Kompleksitas waktu algoritma Shannon-Fano 57 4.2 Implementasi Algoritma Arithmetic Coding 61 4.2.1 Kompresi algoritma Arithmetic Coding 61 4.2.2 Dekompresi algoritma Arithmetic Coding 64 4.2.3 Kompleksitas waktu algoritma Arithmetic Coding 68

4.3 Implementasi Algoritma Huffman 73

(11)

Hal.

Daftar Pustaka 133

Lampiran Listing Program A-1

(12)

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

3.1 Penyebab dan Akibat 19

3.2 Dokumentasi Naratif Use Case Kompresi 22 3.3 Dokumentasi Naratif Use Case Dekompresi 23 3.4 Dokumentasi Naratif Use Case Tentang Aplikasi 24

4.1 Pendataan Karakter Shannon-Fano 54

4.2 Pengurutan Frekuensi Shannon-Fano 55

4.3 Pembagian Bobot Frekuensi I 55

4.4 Pembagian Bobot Frekuensi II 55

4.5 Pembagian Bobot Frekuensi III 56

4.6 Pembagian Bobot Frekuensi IV 56

4.7 Codebook Shannon-Fano 56

4.8 Kompleksitas Waktu Kompresi Algoritma Shannon-Fano 58 4.9 Kompleksitas Waktu Dekompresi Algoritma Shannon-Fano 60

4.10 Pendataan Karakter Arithmetic Coding 61

4.11 Probabilitas Frekuensi Kemunculan Setiap Karakter 61

4.12 Jangkauan Setiap Karakter 62

4.13 Kompresi Arithmetic Coding 62

4.14 Library Arithmetic Coding 65

4.15 Kompleksitas Waktu Kompresi Algoritma Arithmetic Coding 69 4.16 Kompleksitas Waktu Dekompresi Algoritma Arithmetic

Coding

71

4.17 Pendataan Karakter Huffman 73

4.18 Pengurutan Frekuensi Huffman I 73

4.19 Frekuensi Huffman I 74

4.20 Pengurutan Frekuensi Huffman II 74

4.21 Frekuensi Huffman II 74

4.22 Pengurutan Frekuensi Huffman III 75

4.23 Frekuensi Huffman III 75

4.24 Pengurutan Frekuensi Huffman IV 75

4.25 Codebook Huffman 76

4.26 Kompleksitas Waktu Kompresi Algoritma Huffman 78 4.27 Kompleksitas Waktu Dekompresi Algoritma Huffman 81

4.28 Berkas Teks Uji 94

4.29 Berkas Citra Uji 94

4.30 Properties Berkas Teks satu.txt 96

(13)

Nomor

Tabel Nama Tabel Halaman

4.36 Analisis Kompresi Berkas Teks Algoritma Arithmetic Coding 103 4.37 Analisis Kompresi Berkas Teks Algoritma Huffman 105 4.38 Analisis Algoritma Kompresi pada Berkas Teks 107 4.39 Kompleksitas Waktu Algoritma Shannon-Fano pada Berkas

Teks

109 4.40 Kompleksitas Waktu Algoritma Arithmetic Coding pada

Berkas Teks

110 4.41 Kompleksitas Waktu Algoritma Huffman pada Berkas Teks 111 4.42 Kompleksitas Waktu Algoritma Shannon-Fano, Arithmetic

Coding, dan Huffman pada Berkas Teks

112

4.43 Properties Berkas Citra bee.bmp 114

4.44 Properties Berkas Citra bow.bmp 115

4.45 Properties Berkas Citra butterfly.bmp 116 4.46 Properties Berkas Citra flower.bmp 117 4.47 Properties Berkas Citra rainbow.bmp 118 4.48 Analisis Kompresi Berkas Citra Algoritma Shannon-Fano 119 4.49 Analisis Kompresi Berkas Citra Algoritma Arithmetic Coding 121 4.50 Analisis Kompresi Berkas Citra Algoritma Huffman 123 4.51 Analisis Algoritma Kompresi pada Berkas Citra 125 4.52 Kompleksitas Waktu Algoritma Shannon-Fano pada Berkas

Citra

127 4.53 Kompleksitas Waktu Algoritma Arithmetic Coding pada

Berkas Citra

128 4.54 Kompleksitas Waktu Algoritma Huffman pada Berkas Citra 129 4.55 Kompleksitas Waktu Algoritma Shannon-Fano, Arithmetic

Coding, dan Huffman pada Berkas Citra

(14)

DAFTAR GAMBAR

Nomor

Gambar Nama Gambar Halaman

2.1 Model Dasar Sistem Informasi 5

2.2 Model Pengembangan Sistem Informasi 5

2.3 Susunan Data 6

2.4 Ilustrasi Kompresi Lossless 9

2.5 Ilustrasi Kompresi Lossy 9

2.6 Nilai-nilai pada Piksel 10

3.1 Diagram Ishikawa 19

3.2 Use Case Diagram pada Aplikasi Kompresi 21

3.3 Diagram Aktivitaspada Aplikasi Kompresi 25

3.4 Diagram SekuensialProses Kompresi 27

3.5 Diagram SekuensialProses Dekompresi 27

3.6 Flowchart Pembacaan Berkas 29

3.7 Flowchart Pengurutan Frekuensi Karakter 30

3.8 Flowchart Kompresi Algoritma Shannon-Fano 1 32

3.9 Flowchart Kompresi Algoritma Shannon-Fano 2 33

3.10 Flowchart Dekompresi Algoritma Shannon-Fano 35 3.11 Flowchart Kompresi Algoritma Arithmetic Coding 1 38 3.12 Flowchart Kompresi Algoritma Arithmetic Coding 2 39 3.13 Gambar 3.13 Flowchart Method FindDecimal() 39

3.14 Flowchart Method FindBinary() 40

3.15 Flowchart Dekompresi Algoritma Arithmetic Coding 1 42 3.16 Flowchart Dekompresi Algoritma Arithmetic Coding 2 43

3.17 Flowchart Method FindLowest() 1 46

3.18 Flowchart Method FindLowest() 2 47

3.19 Flowchart Kompresi Algoritma Huffman 48

3.20 Flowchart Dekompresi Algoritma Huffman 50

3.21 Struktur Menu Aplikasi Kompresi 51

3.22 Rancangan Halaman Utama 52

3.23 Rancangan Halaman Kompresi 52

3.24 Rancangan Halaman Dekompresi 53

3.25 Rancangan Halaman About 53

4.1 Rescaling Bilangan Desimal I 63

4.2 Rescaling Bilangan Desimal II 63

4.3 Rescaling Bilangan Desimal III 64

4.4 Rescaling Library Arithmetic Coding 66

(15)

No

Gambar Nama Gambar Halaman

4.11 Treeδ 76

4.12 Huffman’s Tree 76

4.13 Tampilan Halaman Utama 83

4.14 Tampilan Halaman Kompresi 83

4.15 Tampilan Dialog Pilih Berkas Kompresi 84

4.16 Tampilan Properties Berkas I 84

4.17 Tampilan Berkas “bab4.txt” 85

4.18 Tampilan Kompresi Algoritma Shannon-Fano 85

4.19 Tampilan Berkas “bab4.sh” 86

4.20 Tampilan Kompresi Algoritma Arithmetic Coding 87

4.21 Tampilan Berkas “bab4.ar” 88

4.22 Tampilan Kompresi Algoritma Huffman 89

4.23 Tampilan Berkas “bab4.hf” 89

4.24 Tampilan Halaman Dekompresi 90

4.25 Tampilan Dialog Pilih Berkas Dekompresi 91

4.26 Tampilan Properties Berkas II 91

4.27 Tampilan Dekompresi Algoritma 92

4.28 Tampilan Halaman Tentang Aplikasi 93

4.29 Pengujian Berkas Teks satu.txt 96

4.30 Pengujian Berkas Teks bab4.txt 97

4.31 Pengujian Berkas Teks excel.txt 98

4.32 Pengujian Berkas Teks data.txt 99

4.33 Pengujian Berkas Teks flower.txt 100

4.34 Grafik Analisis Algoritma Shannon-Fano pada Berkas Teks 102 4.35 Grafik Analisis Algoritma Arithmetic Coding pada Berkas

Teks

104 4.36 Grafik Analisis Algoritma Huffman pada Berkas Teks 106 4.37 Grafik Analisis Algoritma Shannon-Fano, Arithmetic

Coding, dan Huffman pada Berkas Teks

108

4.38 Pengujian Berkas Citra bee.bmp 114

4.39 Pengujian Berkas Citra bow.bmp 115

4.40 Pengujian Berkas Citra butterfly.bmp 116

4.41 Pengujian Berkas Citra flower.bmp 117

4.42 Pengujian Berkas Citra rainbow.bmp 118 4.43 Grafik Analisis Algoritma Shannon-Fano pada Berkas Citra 120 4.44 Grafik Analisis Algoritma Arithmetic Coding pada Berkas

Citra

122 4.45 Grafik Analisis Algoritma Huffman pada Berkas Citra 124 4.46 Grafik Analisis Algoritma Shannon-Fano, Arithmetic

Coding, dan Huffman pada Berkas Citra

Gambar

Tabel 3.1
Tabel 4.36
Gambar 2.1
Gambar 4.11 Tree δ

Referensi

Dokumen terkait

Kemampuan transfer daya nyata dari pengontrol seri-seri terpadu, mengacu pada Interline Power Flow Controller (IPFC), memungkinkan untuk menyeimbangkan aliran daya nyata

Berdasarkan hasil analisis bivariabel pelayanan MTBS yang standar terhadap kesembuhan pneumonia pada anak balita memberi peluang dengan nilai RR = 3,75 (1,87-7,52) dengan nilai

Dalam perancangan sistem monitoring menggunakan Nagios dengan NagiosQL yang menggunakan sistem operasi LINUX CentOS5.6 diperlukan adanya suatu server atau sebuah

Relasi ini digunakan apabila terdapat dua atau lebih aktor melakukan hal yang sama (use case yang sama). Use case tersebut kemudian dipisahkan dan dihubungkan dengan

P SURABAYA 03-05-1977 III/b DOKTER SPESIALIS JANTUNG DAN PEMBULUH DARAH RSUD Dr.. DEDI SUSILA, Sp.An.KMN L SURABAYA 20-03-1977 III/b ANESTESIOLOGI DAN

Metode yang digunakan dalam proyek perencanaan bisnis adalah alat-alat (tools) manajemen secara komprehensif, holistik dan integratif, sehingga diharapkan mahasiswa

Apakah terdapat perbedaan CR sesudah dan sebelum penerapan ESOP

Selain analisa linkungan, analisa manusia kerusakan pada gedung, analisa terhadap pengguna gedung, dan analisa fungsi ruang juga perlu di analisa sehingga didapatkan fungsi