Anda di halaman 1dari 10

INTEGRAL, Vol. 9 No.

1, Maret 2004

PERBANDINGAN KINERJA ALGORITMA


KOMPRESI HUFFMAN, LZW, DAN DMC PADA
BERBAGAI TIPE FILE
Linawati dan Henry P. Panggabean
Jurusan Ilmu Komputer, FMIPA Universitas Katolik Parahyangan Bandung 40141
e-mail : linawati_id@yahoo.com, henrypp@home.unpar.ac.id

Intisari
Makalah ini membahas perbandingan kinerja tiga algoritma kompresi yang
masing-masing menggunakan teknik pengkodean yang berbeda, yaitu
algoritma Huffman, LZW (Lempel-Ziv-Welch), dan DMC (Dynamic Markov
Compression). Ketiga algoritma tersebut diimplementasikan ke dalam
sebuah perangkat lunak dan diujikan terhadap 12 golongan kasus uji, lalu
kinerjanya diukur berdasarkan rasio ukuran file hasil kompresi terhadap file
awal dan kecepatan kompresi. Disimpulkan bahwa dalam hal rasio hasil
kompresi, secara rata-rata DMC merupakan yang terbaik dan Huffman
merupakan yang terburuk, sedangkan dari sisi kecepatan kompresi, LZW
merupakan yang terbaik dan DMC merupakan yang terburuk. Terdapat
beberapa jenis file yang tidak tepat untuk dikompresi dengan metode tertentu
karena justru menghasilkan file hasil kompresi yang berukuran lebih besar.

Kata kunci : kompresi data, algoritma Huffman, algoritma LZW, algoritma


DMC

Abstract
This paper presents performance comparison of three compression
algorithms, each of which uses different coding technique: Huffman, LZW
(Lempel-Ziv-Welch), and DMC (Dynamic Markov Compression). These three
algorithms are implemented into a computer program, tested upon 12 classes
of test case, and their performances are measured in terms of size ratio
between compressed file and initial file, and compression speed. It can be
concluded that in terms of compression ratio, in average DMC is the best
and Huffman is the worst, meanwhile in terms of compression speed, LZW is
the best and DMC is the worst. There are several file types that are not
suitable to be compressed by certain algorithm, because the compressed file
becomes bigger in size.

Keywords : data compression, Huffman algorithm, LZW algorithm, DMC


algorithm

Diterima : 8 Juli 2003


Disetujui untuk dipublikasikan : 26 Maret 2004

1. Pendahuluan tempat penyimpanan dan waktu untuk


Kompresi ialah proses pengubahan transmisi data [1]. Saat ini terdapat
sekumpulan data menjadi suatu bentuk berbagai tipe algoritma kompresi [2,3],
kode untuk menghemat kebutuhan antara lain: Huffman, LIFO, LZHUF,

7
INTEGRAL, Vol. 9 No. 1, Maret 2004

LZ77 dan variannya (LZ78, LZW, dengan indeks lokasi dari


GZIP), Dynamic Markov Compression karakter/fragmen tersebut dalam
(DMC), Block-Sorting Lossless, Run- sebuah kamus (dictionary), contoh:
Length, Shannon-Fano, Arithmetic, PPM algoritma LZW.
(Prediction by Partial Matching), (c) Metode predictive : menggunakan
Burrows-Wheeler Block Sorting, dan model finite-context atau finite-state
Half Byte. untuk memprediksi distribusi
probabilitas dari simbol-simbol
Berdasarkan tipe peta kode yang selanjutnya; contoh: algoritma DMC.
digunakan untuk mengubah pesan awal
(isi file input) menjadi sekumpulan Ada beberapa faktor yang sering menjadi
codeword, metode kompresi terbagi pertimbangan dalam memilih suatu
menjadi dua kelompok, yaitu : metode kompresi yang tepat, yaitu
(a) Metode statik : menggunakan peta kecepatan kompresi, sumber daya yang
kode yang selalu sama. Metode ini dibutuhkan (memori, kecepatan PC),
membutuhkan dua fase (two-pass): ukuran file hasil kompresi, besarnya
fase pertama untuk menghitung redundansi, dan kompleksitas algoritma.
probabilitas kemunculan tiap Tidak ada metode kompresi yang paling
simbol/karakter dan menentukan peta efektif untuk semua jenis file.
kodenya, dan fase kedua untuk Dalam penelitian ini,
mengubah pesan menjadi kumpulan diimplementasikan tiga buah metode
kode yang akan ditransmisikan. kompresi, yaitu algoritma Huffman,
Contoh: algoritma Huffman statik. LZW, dan DMC, yang masing-masing
(b) Metode dinamik (adaptif) : mewakili sebuah kategori teknik
menggunakan peta kode yang dapat pengkodean, dalam bentuk sebuah
berubah dari waktu ke waktu. perangkat lunak. Ketiga metode ini
Metode ini disebut adaptif karena diujikan untuk mengkompresi dan
peta kode mampu beradaptasi mendekompresi berbagai tipe dan ukuran
terhadap perubahan karakteristik isi file yang berbeda. Lalu dilakukan analisis
file selama proses kompresi statistik untuk membandingkan kinerja
berlangsung. Metode ini bersifat one- setiap metode berdasarkan dua faktor,
pass, karena hanya diperlukan satu yaitu rasio/perbandingan ukuran file hasil
kali pembacaan terhadap isi file. kompresi terhadap file asli dan kecepatan
Contoh: algoritma LZW dan DMC. kompresinya.

Berdasarkan teknik 2. Dasar Teori


pengkodean/pengubahan simbol yang 2.1 Algoritma Huffman
digunakan, metode kompresi dapat dibagi Algoritma Huffman, yang dibuat oleh
ke dalam tiga kategori, yaitu : seorang mahasiswa MIT bernama David
(a) Metode symbolwise : menghitung Huffman, merupakan salah satu metode
peluang kemunculan dari tiap simbol paling lama dan paling terkenal dalam
dalam file input, lalu mengkodekan kompresi teks. Algoritma Huffman
satu simbol dalam satu waktu, menggunakan prinsip pengkodean yang
dimana simbol yang lebih sering mirip dengan kode Morse, yaitu tiap
muncul diberi kode lebih pendek karakter (simbol) dikodekan hanya
dibandingkan simbol yang lebih dengan rangkaian beberapa bit, dimana
jarang muncul, contoh: algoritma karakter yang sering muncul dikodekan
Huffman. dengan rangkaian bit yang pendek dan
(b) Metode dictionary : menggantikan karakter yang jarang muncul dikodekan
karakter/fragmen dalam file input dengan rangkaian bit yang lebih panjang.

15
INTEGRAL, Vol. 9 No. 1, Maret 2004

Algoritma Huffman secara lengkap diberikan pada Gambar 1.

1. Pass pertama
Baca (scan) file input dari awal hingga akhir untuk menghitung frekuensi
kemunculan tiap karakter dalam file. n Å jumlah semua karakter dalam file input.
T Å daftar semua karakter dan nilai peluang kemunculannya dalam file input.
Tiap karakter menjadi node daun pada pohon Huffman.
2. Pass kedua
Ulangi sebanyak (n -1) kali :
a. Item m1 dan m2 Å dua subset dalam T dengan nilai peluang yang terkecil.
b. Gantikan m1 dan m2 dengan sebuah item {m1,m2} dalam T, dimana nilai peluang
dari item yang baru ini adalah penjumlahan dari nilai peluang m1 dan m2.
c. Buat node baru {m1, m2} sebagai father node dari node m1 dan m2 dalam pohon
Huffman.
3. T sekarang tinggal berisi satu item, dan item ini sekaligus menjadi node akar pohon
Huffman.
Panjang kode untuk suatu simbol adalah jumlah berapa kali simbol tersebut
bergabung dengan item lain dalam T.

Gambar 1. Algoritma kompresi Huffman

Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan


representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut:

01000001 01000010 01000001 01000011 01000011 01000100 01000001


A B A C C D A
Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat
dipersingkat, terutama untuk karakter yang frekuensi kemunculannya besar. Pada string
di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan
menggunakan algoritma di atas diperoleh kode Huffman seperti pada Tabel 1.

Tabel 1. Kode Huffman untuk “ABACCDA”


Simbol Frekuensi Peluang Kode Huffman
A 3 3/7 0
B 1 1/7 110
C 2 2/7 10
D 1 1/7 111

Dengan menggunakan kode Huffman ini, Karena tiap kode Huffman yang
string “ABACCDA” direpresentasikan dihasilkan unik, maka proses dekompresi
menjadi rangkaian bit : 0 110 0 10 10 111 dapat dilakukan dengan mudah. Contoh:
0. Jadi, jumlah bit yang dibutuhkan saat membaca kode bit pertama dalam
hanya 13 bit. Dari Tabel 1 tampak bahwa rangkaian bit “011001010110”, yaitu bit
kode untuk sebuah simbol/karakter tidak “0”, dapat langsung disimpulkan bahwa
boleh menjadi awalan dari kode simbol kode bit “0” merupakan pemetaan dari
yang lain guna menghindari keraguan simbol “A”. Kemudian baca kode bit
(ambiguitas) dalam proses dekompresi selanjutnya, yaitu bit “1”. Tidak ada kode
atau decoding. Huffman “1”, lalu baca kode bit
selanjutnya, sehingga menjadi “11”.

9
INTEGRAL, Vol. 9 No. 1, Maret 2004

Tidak ada juga kode Huffman “11”, lalu ini melakukan kompresi dengan
baca lagi kode bit berikutnya, sehingga menggunakan dictionary, di mana
menjadi “110”. Rangkaian kode bit fragmen-fragmen teks digantikan dengan
“110” adalah pemetaan dari simbol “B”. indeks yang diperoleh dari sebuah
“kamus”. Prinsip sejenis juga digunakan
Metode Huffman yang diterapkan dalam dalam kode Braille, di mana kode-kode
penelitian ini adalah tipe statik, dimana khusus digunakan untuk
dilakukan dua kali pembacaan (two-pass) merepresentasikan kata-kata yang ada.
terhadap file yang akan dikompresi;
pertama untuk menghitung frekuensi Pendekatan ini bersifat adaptif dan
kemunculan karakter dalam pembentukan efektif karena banyak karakter dapat
pohon Huffman, dan kedua untuk dikodekan dengan mengacu pada string
mengkodekan simbol dalam kode yang telah muncul sebelumnya dalam
Huffman. teks. Prinsip kompresi tercapai jika
referensi dalam bentuk pointer dapat
2.2 Algoritma LZW disimpan dalam jumlah bit yang lebih
Algoritma LZW dikembangkan dari sedikit dibandingkan string aslinya.
metode kompresi yang dibuat oleh Ziv Algoritma kompresi LZW diberikan pada
dan Lempel pada tahun 1977. Algoritma Gambar 2.

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada :


{‘A’..’Z’,’a’..’z’,’0’..’9’}.
2. P Å karakter pertama dalam stream karakter.
3. C Å karakter berikutnya dalam stream karakter.
4. Apakah string (P + C) terdapat dalam dictionary ?
• Jika ya, maka P Å P + C (gabungkan P dan C menjadi string baru).
• Jika tidak, maka :
i. Output sebuah kode untuk menggantikan string P.
ii. Tambahkan string (P + C) ke dalam dictionary dan berikan nomor/kode
berikutnya yang belum digunakan dalam dictionary untuk string tersebut.
iii. P Å C.
5. Apakah masih ada karakter berikutnya dalam stream karakter ?
• Jika ya, maka kembali ke langkah 2.
• Jika tidak, maka output kode yang menggantikan string P, lalu terminasi proses
(stop).
Gambar 2. Algoritma kompresi LZW

Sebagai contoh, string “ABBABABAC” akan Kolom dictionary menyatakan string baru
dikompresi dengan LZW. Isi dictionary pada yang sudah ditambahkan ke dalam dictionary
awal proses diset dengan tiga karakter dasar dan nomor indeks untuk string tersebut ditulis
yang ada: “A”, “B”, dan “C”. Tahapan proses dalam kurung siku. Kolom output menyatakan
kompresi ditunjukkan pada Tabel 3. Kolom kode output yang dihasilkan oleh langkah
posisi menyatakan posisi sekarang dari stream kompresi. Hasil proses kompresi ditunjukkan
karakter dan kolom karakter menyatakan pada Gambar 3.
karakter yang terdapat pada posisi tersebut.

15
INTEGRAL, Vol. 9 No. 1, Maret 2004

Tabel 3. Tahapan proses kompresi LZW


Langkah Posisi Karakter Dictionary Output
1. 1 A [4] A B [1]
2. 2 B [5] B B [2]
3. 3 B [6] B A [2]
4. 4 A [7] A B A [4]
5. 6 A [8] A B A C [7]
6. 9 C --- [3]

stream karakter : a b b ab aba c

kode output : [1] [2] [2] [4] [7] [3]

frasa baru yang 4 5 6 7 8


Gambar
ditambahkan ke 3. Hasil
= =kompresi
= beserta
= = isi dictionary
dictionary ab bb ba aba abac

Proses dekompresi pada LZW dilakukan dalam dictionary. Tahapan proses dekompresi
dengan prinsip yang sama seperti proses ini ditunjukkan pada Tabel 4.
kompresi. Algoritma diberikan pada Gambar
4. Pada awalnya, dictionary diinisialisasi Metode LZW yang diterapkan dalam
dengan semua karakter dasar yang ada. Lalu penelitian ini bertipe dinamik, dimana hanya
pada setiap langkah, kode dibaca satu per satu dilakukan satu kali pembacaan (one-pass)
dari stream kode, dikeluarkan string dari terhadap file yang akan dikompresi.
dictionary yang berkorespondensi dengan Pengkodean data dilakukan secara on the fly,
kode tersebut, dan ditambahkan string baru ke bersamaan dengan proses penambahan string
baru ke dalam dictionary.

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.


2. CW Å kode pertama dari stream kode (menunjuk ke salah satu karakter dasar).
3. Lihat dictionary dan output string dari kode tersebut (string.CW) ke stream karakter.
4. PW Å CW; CW Å kode berikutnya dari stream kode.
5. Apakah string.CW terdapat dalam dictionary ?
‰ Jika ada, maka :
i. output string.CW ke stream karakter
ii. P Å string.PW
iii. C Å karakter pertama dari string.CW
iv. tambahkan string (P+C) ke dalam dictionary
‰ Jika tidak, maka :
i. P Å string.PW
ii. C Å karakter pertama dari string.PW
iii. output string (P+C) ke stream karakter dan tambahkan string tersebut ke dalam
dictionary (sekarang berkorespondensi dengan CW);
6. Apakah terdapat kode lagi di stream kode ?
‰ Jika ya, maka kembali ke langkah 4.
‰ Jika tidak, maka terminasi proses (stop).

11
INTEGRAL, Vol. 9 No. 1, Maret 2004

Gambar 4. Algoritma dekompresi LZW


Tabel 4. Tahapan proses dekompresi LZW
Langkah Kode Output Dictionary
1. [1] A ---
2. [2] B [4] A B
3. [2] B [5] B B
4. [4] AB [6] B A
5. [7] ABA [7] A B A
6. [3] C [8] A B A C

2.3 Algoritma DMC


Algoritma DMC merupakan teknik pemodelan
0/5 2
yang didasarkan pada model finite-state
(model Markov). DMC membuat probabilitas 0/3
1/2
dari karakter biner berikutnya dengan 1 3
menggunakan pemodelan finite-state, dengan 1/1
1/4 0/2
model awal berupa mesin FSA dengan transisi
0/1 dan 1/1, seperti ditunjukkan pada Gambar 1/2 4
0/3
5. DMC merupakan teknik kompresi yang
adaptif, karena struktur mesin finite-state Gambar 6. Sebuah model yang diciptakan oleh
berubah seiring dengan pemrosesan file. metode DMC [2]
Kemampuan kompresinya tergolong amat
baik, meskipun waktu komputasi yang Secara umum, transisi ditandai dengan 0/p atau
dibutuhkan lebih besar dibandingkan metode 1/q dimana p dan q menunjukkan jumlah
lain [2]. transisi dari state dengan input 0 atau 1. Nilai
probabilitas bahwa input selanjutnya bernilai 0
adalah p/(p+q) dan input selanjutnya bernilai 1
0/1 1 1/1
adalah q/(p+q). Lalu bila bit sesudahnya
ternyata bernilai 0, jumlah bit 0 di transisi
Gambar 5. Model awal DMC [2] sekarang ditambah satu menjadi p+1. Begitu
pula bila bit sesudahnya ternyata bernilai 1,
Pada DMC, simbol alfabet input diproses per jumlah bit 1 di transisi sekarang ditambah satu
bit, bukan per byte. Setiap output transisi menjadi q+1. Algoritma kompresi DMC
menandakan berapa banyak simbol tersebut diberikan pada Gambar 7.
muncul. Penghitungan tersebut dipakai untuk
memperkirakan probabilitas dari transisi. Masalah tidak terdapatnya kemunculan suatu
Contoh: pada Gambar 6, transisi yang keluar bit pada state dapat diatasi dengan
dari state 1 diberi label 0/5, artinya bit 0 di menginisialisasi model awal state dengan satu.
state 1 terjadi sebanyak 5 kali. Probabilitas dihitung menggunakan frekuensi
relatif dari dua transisi yang keluar dari state
yang baru.

1. s Å 1 /* jumlah state sekarang */


2. t Å 1 /* state sekarang */
3. T[1][0] = T[1][1] Å 1 /* model inisialisasi */
4. C[1][0] = C[1][1] Å 1 /* inisialisasi untuk menghindari masalah frekuensi nol */
5. Untuk setiap input bit e :
i. u Å t
ii. t Å T[u][e] /*ikuti transisi*/
iii. Kodekan e dengan probabilitas : C[u][e] / (C[u][0] + C[u][1])
iv. C[u][e] Å C[u][e]+1
v. Jika ambang batas cloning tercapai, maka :
‰ s Å s + 1 /* state baru t’ */
‰ T[u][e] Å s ; T[s][0] Å T[t][0] ; T[s][1] Å T[t][1]
‰ Pindahkan beberapa dari C[t] ke C[s]

15
INTEGRAL, Vol. 9 No. 1, Maret 2004

Gambar 7. Algoritma kompresi DMC

Jika frekuensi transisi dari suatu state t ke state ‰ Jumlah transisi yang keluar dari t’ harus
sebelumnya, yaitu state u, sangat tinggi, maka mempunyai rasio yang sama (antara 0 dan
state t dapat di-cloning. Ambang batas nilai 1) dengan jumlah transisi yang keluar dari
cloning harus disetujui oleh encoder dan t.
decoder. State yang di-cloning diberi simbol t’ ‰ Jumlah transisi yang keluar dari t dan t’
(lihat Gambar 8). Aturan cloning adalah diatur supaya mempunyai nilai yang sama
sebagai berikut : dengan jumlah transisi yang masuk [2].
‰ Semua transisi dari state u dikirim ke
state t’. Semua transisi dari state lain ke
state t tidak berubah.

0 0 0 0
A C D
A C D
1

1 1 0
1
1
B C’ E
B E

(a) sebelum cloning (b) setelah cloning

Gambar 8. Model Markov sebelum dan setelah cloning [8]

Metode DMC yang diterapkan dalam 1. Calgary Corpus, merupakan kasus uji
penelitian ini bertipe dinamik, dimana hanya benchmark yang berisi koleksi dari 14
dilakukan satu kali pembacaan terhadap file teks, yang sudah secara luas digunakan
input. Kalkulasi dilakukan secara on the fly untuk mengevaluasi metode kompresi.
(proses perhitungan probabilitas dilakukan Corpus ini dapat di-download di:
bersamaan dengan pengkodean data). ftp://ftp.cpsc.ucalgary.ca/pub/ projects/
text.compression.corpus.
3. Implementasi dan Pengujian 2. Canterbury Corpus, ditujukan untuk
Untuk menghasilkan pengukuran kinerja yang menggantikan Calgary Corpus yang telah
valid, ketiga algoritma di atas dikompilasi berumur 10 tahun lebih. Corpus ini dapat
menggunakan compiler bahasa pemrograman di-download di :
yang sama (C++ Builder 5.0) dengan setting http://corpus.canterbury.ac.nz/ftp/
optimasi yang sama. Implementasi dan large.zip.
pengujian perangkat lunak ini dilakukan dalam 3. File aplikasi (Excel, Acrobat Reader,
lingkungan perangkat keras sbb.: prosesor Flash, Corel Draw, PowerPoint, Font
Intel Pentium IV 1.5 GHz, memori 128MB Window, dan Help)
RAM, harddisk Maxtor 20 GB, dan 4. File yang telah dikompresi sebelumnya
motherboard Intel D850GB. Kecepatan 5. File object/file biner (file com, file sistem,
kompresi dari sebuah algoritma ditentukan dari file hasil kompilasi C, Pascal, dan Java,
ukuran file input dibagi dengan waktu file DLL)
komputasi yang dibutuhkan, dan ditulis dalam 6. File basis data (Access, DBase, Paradox,
satuan KByte/sec. MySQL)
7. File executable, baik dalam lingkungan
3.1 Kasus Uji DOS maupun Windows
Dalam penelitian ini, digunakan 12 golongan 8. File gambar: file jpg, file bitmap, file gif,
besar kasus uji yang dipandang cukup file png, file ani, dan file wmf.
memadai untuk mewakili sebagian besar tipe
file yang ada, yaitu:
13
INTEGRAL, Vol. 9 No. 1, Maret 2004

9. File multimedia (file asf, file mpeg/mpg, Hasil pengukuran statistik terhadap rasio hasil
file mp3, file mov, file midi, file avi, file kompresi dan kecepatan kompresi dari ketiga
wav) metode di atas pada semua kasus uji
10. File source code (pascal, html, c, cpp, dirangkum dalam bentuk box plot pada
java, prolog, css, vbs, js, xml, php, lisp) Gambar 9 dan 10. Grafik perbandingan rasio
11. File teks (file rtf, file doc, file inf, file txt, kompresi dan kecepatan kompresi dari ketiga
file ini – konfigurasi Windows) metode tersebut dalam masing-masing kasus
12. File pada sistem operasi Unix (berekstensi uji ditunjukkan secara lengkap dalam Gambar
1 – file help, file kernel, file program) 11 dan 12.

Gambar 9. Box Plot Rasio Kompresi Ketiga Algoritma

Gambar 10. Box Plot Kecepatan Kompresi Ketiga Algoritma

15
INTEGRAL, Vol. 9 No. 1, Maret 2004

Grafik Rasio Kompresi


Rasio Kompresi (%) Huffman LZW DMC
125.5

100.3 104.4
96.8
92.9
80.1 77.8 77.9 79.9
75.7
67.3 68.3 71.7 72.7 71.4
63.8 60.2
59.1 55.7 56.3
48.5 48.1 53.4 48.4 46.9
43.9 44.5 45.0 41.5
35.4 33.4 35.4
26.0 28.3
25.8 24.0 22.1 21.7
20.7

UNIX Teks source code aplikasi executable data/object/sistem gambar database multimedia hasil kompresi Canterbury Corpus Rata-Rata
Calgary Corpus
Kategori

Gambar 11. Grafik perbandingan rasio kompresi

Grafik Kecepatan Kompresi


Huffman LZW DMC
Kecepatan Kompresi (KB/sec)

1342,7 1343,5 1307,3


1282,1 1237,9 1225,5
1163,6 1139,0
1064,4 1084,1
1017,6
846,2
753,6
624,0 666,1
609,4 604,2
544,6 534,5 525,9 530,5 532,8 555,8
500,3 493,1 504,7

251,4 249,0 266,3 242,6 243,1 270,2 259,1 255,2 264,4 218,1
131,1 104,2
80,8
IX

le

us

an
ks

us
de

i
a
se
em
i

es
as

ba

i
ab

ed
ba

rp

rp
Te

uh
co
N

pr
lik

ist

m
ut

tim

Co

Co
U

ta

ur
m
ga
ce

t/s
ap

ec

da

ko

el
ul
ur

ry
ec
ex

es
ar
m
so

sil

bu
bj

K
lg
/o

ha

er
Ca
ta

nt
da

Ca

Kategori

Gambar 12. Grafik perbandingan kecepatan kompresi

4. Kesimpulan merupakan file hasil kompresi juga, dan


Dari penelitian ini dapat disimpulkan beberapa hasil kompresi DMC terhadap file yang
hal mengenai perbandingan kinerja ketiga telah terkompresi sebelumnya memang
metode kompresi yang telah kurang baik.
diimplementasikan, yaitu : 3. Hasil kompresi Huffman lebih baik
1. Secara rata-rata algoritma DMC dibandingkan LZW hanya pada kasus file
menghasilkan rasio file hasil kompresi biner, file multimedia, file gambar, dan file
yang terbaik (41.5% ± 25.9), diikuti hasil kompresi. Algoritma Huffman
algoritma LZW (60.2% ± 28.9) dan memberikan hasil yang relatif hampir
terakhir algoritma Huffman (71.4% ± sama untuk setiap kasus uji, sedangkan
15.4). LZW memberikan hasil kompresi yang
2. Untuk kategori file teks, source code, file buruk (dapat > 100%) untuk file
aplikasi, dan file basis data, DMC multimedia dan file hasil kompresi.
memberikan hasil kompresi yang baik 4. Secara rata-rata algoritma LZW
sekali. Sedangkan untuk file multimedia, membutuhkan waktu kompresi yang
hasil kompresinya buruk (dapat > 100 %), tersingkat (kecepatan kompresinya = 1139
karena pada umumnya file multimedia KByte/sec ± 192,5), diikuti oleh algoritma
15
INTEGRAL, Vol. 9 No. 1, Maret 2004

Huffman (555,8 KByte/sec ± 55,8), dan [2] Witten, I.H, et al., “Managing Gigabytes”,
terakhir DMC (218,1 KByte/sec ± 69,4). Van Nostrand Reinhold, New York, 1994.
DMC mengorbankan kecepatan kompresi [3] Ben Zhao, et al., “Algorithm in the Real
untuk mendapatkan rasio hasil kompresi World - (Compression) Scribe Notes”,
yang baik. File yang berukuran sangat http://www-2.cs.cmu.edu/~guyb/real-
besar membutuhkan waktu yang sangat world/class-notes/all/, 1998, [17 Jan 2002]
lama bila dikompresi dengan DMC [4] Compression Team, “The LZW
(contoh: file multimedia dengan ukuran 59 Algorithm”, Data Compression Reference
MB membutuhkan waktu kompresi 12,3 Center,
menit). http://www.rasip.fer.hr/research/compress/
5. Kecepatan kompresi algoritma LZW algorithms/fund/lz/LZW.html, 1997, [17
secara signifikan berkurang pada file Jan 2002]
UNIX, file executable, file gambar, file [5] Ziviani, N., de Moura, E. S.,
multimedia, dan file hasil kompresi. “Compression: A Key for Next Generation
Kecepatan kompresi algoritma DMC Text Retrieval System”, Department of
berkurang pada file gambar dan file hasil Computer Science Univ. Federal de Minas
kompresi, bahkan untuk file multimedia Gerais, Brazil, 2000.
kecepatan kompresi berkurang lebih dari [6] University of Calgary, Calgary Corpus,
sepertiga kalinya dibandingkan kecepatan http://links.uwaterloo.ca/calgary.corpus.ht
kompresi rata-rata. Kecepatan kompresi ml, [26 Maret 2002]
algoritma Huffman hampir merata untuk [7] University of Canterbury, “The
semua kategori file. Canterbury Corpus”,
http://corpus.canterbury.ac.nz, [26 Feb
5. Daftar Pustaka 2002]
[1] Howe, D., “Free On-line Dictionary of [8] Cormack, G.V., Horspool, R.N., “Data
Computing”, http://www.foldoc.org/, Compression Using Dynamic Markov
1993. Compression”, University of Waterloo
and University of Victoria, 1986.

16

Anda mungkin juga menyukai