Anda di halaman 1dari 5

Pelita Informatika Budi Darma, Volume : VI, Nomor: 2, April 2014

ISSN : 2301-9425

ANALISIS PERBANDINGAN ALGORITMA HUFFMAN DENGAN


ALGORITMA (LEMPEL-ZIP-WELCH ) PADA KOMPRESI
GAMBAR MENGGUNAKAN METODE EXPONENSIAL
Denni M. Rajagukguk (0911411)
Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma Medan
Jl. Sisingamangaraja No.338 Simpang Limun Medan
www.stmik-budidarma.ac.id //Email : rajdenni@yahoo.co.id
ABSTRAK
Citra atau gambar adalah alat yang manusia pakai untuk menyampaikan pesan kepada manusia
lainnya. Gambar atau citra telah berkembang seiring dengan perkembangan peradaban manusia. Bentuknya
tidak lagi hanya lukisan seperti zaman prasejarah. Kini ada foto, gambar yang dihasilkan dengan menangkap
cahaya pada medium yang telah dilapisi bahan kimia peka cahaya atau sensor digital, lalu ada film, gambar
yang bergerak.
Besarnya ukuran data yang harus dikirim melampaui kecepatan transmisi yang dimiliki oleh perangkat
keras yang ada, sehingga masih terdapat delay time yang relatif besar. Selain itu media penyimpanan seperti
floppy disk, hard disk, dan compact disk mempunyai kapasitas yang terbatas. Oleh karena itu, untuk mengatasi
masalah ini digunakanlah kompresi data.
Ada banyak sekali teori dan metode untuk kompresi data, di antaranya metode Huffman, Run-Length
Encoding (RLE), Lempel-Zip-Welch (LZW), Shanon-Fano, dan beberapa metode lainnya. Umtuk
membandingkan hasil dari kompresi citra algoritma Huffman dan algoritma LZW maka digunakan metode
eksponensial.
Kata Kunci : Citra, kompresi, algoritma Huffman, Algoritma LZW, Metode Eksponensial
seperti aslinya. Jika suatu file dikompresi, maka file
tersebut harus dapat dibaca kembali setelah file
1. Latar Belakang
tersebut didekompresi.
Gambar atau citra telah berkembang seiring
Ada dua teknik yang dapat dilakukan dalam
dengan perkembangan peradaban
manusia.
melakukan kompresi data yaitu Lossless
Bentuknya tidak lagi hanya lukisan seperti zaman
Compression dan Lossy Compression. Lossless
prasejarah. Kini ada foto, gambar yang dihasilkan
Compression merupakan kompresi data dimana
dengan menangkap cahaya pada medium yang telah
hasil dekompresi dari data yang terkompresi sama
dilapisi bahan kimia peka cahaya atau sensor
dengan data aslinya dan tidak ada informasi yang
digital, lalu ada film, gambar yang bergerak. Citra
hilang. Sedangkan Lossy Compression adalah
atau gambar adalah alat yang manusia pakai untuk
kompresi data di mana hasil dekompresi dari data
menyampaikan pesan kepada manusia lainnya.
yang terkompresi tidak sama dengan data aslinya
Hingga saat ini pengiriman informasi secara real
karena ada informasi yang hilang, tetapi masih
time masih mengalami kendala. Di antaranya
dapat ditolerir oleh persepsi mata. Ada banyak
adalah besarnya ukuran data yang harus dikirim
sekali teori dan metode untuk kompresi data, di
melampaui kecepatan transmisi yang dimiliki oleh
antaranya metode Huffman, Run-Length Encoding
perangkat keras yang ada, sehingga masih terdapat
(RLE), Lempel-Zip-Welch (LZW), Shanon-Fano,
delay time yang relatif besar. Selain itu media
dan beberapa metode lainnya.
penyimpanan seperti floppy disk, hard disk, dan
Algoritma Huffman adalah suatu algoritma
compact disk mempunyai kapasitas yang terbatas.
kompresi tertua yang disusun oleh David Huffman
Jika data yang akan disimpan pada media
pada tahun 1952. Algoritma tersebut digunakan
penyimpanan semakin bertambah dan berukuran
untuk membuat kompresi jenis lossy compression,
besar, maka media penyimpanan tidak dapat
yaitu pemampatan data dimana tidak ada satu byte
menyimpan data tersebut karena melebihi
pun data yang hilang sehingga data tersebut utuh
kapasitas. Oleh karena itu, untuk mengatasi
dan disimpan sesuai dengan aslinya.
masalah ini digunakanlah kompresi data. Kompresi
Lempel-ziv-Welch (LZW) adalah algoritma
data merupakan salah satu kajian di dalam ilmu
kompresi loseless universal yang diciptakan
komputer yang bertujuan untuk mengurangi ukuran
Ambraham Lempel, Jacob Ziv, dan Terry Welch.
file sebelum menyimpan atau memindahkan data
Diciptakan oleh Welch tahun 1984 sebagai
tersebut ke dalam media penyimpanan. Kompresi
implementasi dan pengembangan algoritma LZ78
data terdiri dari dua proses utama yaitu kompresi
yang diciptakan oleh Lempel dan Ziv pada tahun
dan dekompresi atau pemulihan data kembali
Analisis Perbandingan Algoritma Huffman Dengan Algoritma (Lempel-Zip-Welch ) Pada Kompresi 21
Gambar Menggunakan Metode Exponensial. Oleh : Denni M. Rajagukguk

Pelita Informatika Budi Darma, Volume : VI, Nomor: 2, April 2014

1978. Algoritma ini dirancang untuk cepat dalam


implementasi tetapi biasanya tidak optimal karena
hanya melakukan kompresi dengan hanya
menggunakan dictionary, dimana fragmen fragmen
teks digantikan dengan indeks yang diperoleh dari
sebuah kamus.
2. Landasan Teori
2.1 Algoritma Huffman
Algoritma Huffman adalah suatu algoritma
kompresi tertua yang disusun oleh David Huffman
pada tahun 1952. Algoritma tersebut digunakan
untuk membuat kompresi jenis lossy compression,
yaitu pemampatan data dimana tidak ada satu byte
pun data yang hilang sehingga data tersebut utuh
dan disimpan sesuai dengan aslinya. Pada
sejarahnya,
Huffman
sudah
tidak
dapat
membuktikan apapun tentang kode apapun yang
efisien, tapi ketika tugasnya hampir final ia
mendapatkan ide untuk menggunakan pohon binary
untuk menyelesaikan masalahnya untuk mencari
kode yang efisien. Pada dasarnya, algoritma
Huffman ini bekerja seperti mesin sandi morse,
yang membentuk suatu kode dari suatu karakter
sehingga karakter tersebut memiliki rangkaian bit
yang lebih pendek dibandingkan sebelumnya.
Tahapan proses kompresi algoritma Huffman :
1. Hitung banyaknya jenis karakter dan jumlah
dari masing masing karakter yang terdapat
dalam sebuah file.
2. Susun setiap jenis karakter dengan urutan
jenis karakter yang jumlahnya paling sedikit
ke yang jumlahnya paling banyak.
3. Buat pohon biner berdasarkan berdasarkan
urutan karakter dari yang jumlahnya terkecil
ke yang terbesar dan member kode untuk tiap
karakter.
4. Ganti data yang ada dengan kode bit
berdasarkan pohon biner.
5. Simpan jumlah bit untuk kode bit yang
terbesar, jenis karakter yang diurutkan dari
frekuensi keluarnya terbesar ke terkecil
beserta data yang sudah berubah menjadi kode
bit sebagai data hasil kompresi.
2.2 Algoritma LZW
Lempel-ziv-Welch (LZW) adalah algoritma
kompresi loseless universal yang diciptakan
Ambraham Lempel, Jacob Ziv, dan Terry Welch.
Diciptakan oleh Welch tahun 1984 sebagai
implementasi dan pengembangan algoritma LZ78
yang diciptakan oleh Lempel dan Ziv pada tahun
1978. Algoritma ini dirancang untuk cepat dalam
implementasi tetapi biasanya tidak optimal karena
hanya melakukan kompresi dengan hanya
menggunakan dictionary, dimana fragmen fragmen
teks digantikan dengan indeks yang diperoleh dari
sebuah kamus. Prinsip sejenis juga digunakan
dalam kode Braille, dimana kode kode khusus

ISSN : 2301-9425

digunakan untuk mempresentasikan kata kata yang


ada. Pendekatan ini bersifat adaptif dan efektif
karena banyak karakter dapat dikodekan dengan
mengacu pada string yang telah muncul
sebelumnya dalam teks. Prinsip kompresi tercapai
jika refrensi dalam bentuk pointer dapat disimpan
dalam jumlah bit yang lebih dibandingkan dengan
string aslinya.
2.3 Metode Eksponensial
Menurut Marimin (2005), yang dikutip oleh
Didie Nanda Pribadi (2011) Metode Perbandingan
Eksponensial (MPE) merupakan salah satu metode
untuk menentukan urutan prioritas alternatif
keputusan dengan kriteria jamak.
2.3.1 Prosedur
Metode
Perbandingan
Eksponensial
Dalam menggunakan Metode Perbandingan
Eksponensial ada beberapa tahap yang harus
dilakukan, yaitu:
a. Menyusun alternatif-alternatif keputusan yang
akan dipilih.
b. Menentukan kriteria atau perbandingan
keputusan yang penting untuk dievaluasi.
c. Menentukan tingkat kepentingan dari setiap
kriteria keputusan.
d. Melakukan penilaian terhadap semua alternatif
pada setiap kriteria.
e. Menghitung skor atau nilai total setiap
alternative.
f. Menentukan
urutan
prioritas keputusan
didasarkan pada skor atau nilai total masingmasing alternatif.
2.3.2 Formulasi
Matematika
Metode
Perbandingan Eksponensial
Menurut Marimin (2005:22), dikutip oleh
Didie Nanda Pribadi (2011) Formulasi perhitungan
skor untuk setiap alternative dalam metode
perbandingan eksponensial adalah sebagai berikut:

Eksponensial
Keterangan :
TNi
: Total nilai alternatif ke-i
RKij : Derajat kepentingan relatif kriteria ke-j
pada pilihan keputusan i
TKKj : Derajat kepentingan kriteria keputusan kej; TKKj > 0; bulat
m
: Jumlah kriteria keputusan
n
: Jumlah pilihan keputusan
j
: 1,2,3,m; m : Jumlah kriteria
i
:1,2,3,,n; n
: Jumlah pilihan
alternatif

Analisis Perbandingan Algoritma Huffman Dengan Algoritma (Lempel-Zip-Welch ) Pada Kompresi 22


Gambar Menggunakan Metode Exponensial. Oleh : Denni M. Rajagukguk

ISSN : 2301-9425

Pelita Informatika Budi Darma, Volume : VI, Nomor: 2, April 2014

3. Pembahasan
3.1. Analisa Perbandingan Algoritma Huffman
dan Algoritma LZW
Analisa
perbandingan
pada
algoritma
Huffman dan algoritma LZW dilakukan dengan
tujuan agar kualitas dari masing masing algoritma.
Jenis gambar yang akan dikompresi dengan format
bitmap dengan ekstensi .bmp.
3.1.1. Proses Cara Kerja Kompresi Citra
Cara kerja kompresi dilakukan dengan
penerapan yang dimilikinya dan mengkompresinya
dengan aturan aturan yang sesuai dengan algoitma
tersebut.
Dari hasil kompresi masing masing maka
didapat perbandingan kapasitas setelah dikompresi
maupun rasio setelah dilakukannya kompresi.
Proses cara kerja algoritma Huffman dan algoritma
LZW dilakukan citra berformat .bmp, hal ini untuk
mengetahui hasil perbandingan dari kompresi
Huffman dan LZW.
3.1.2.

Melakukan Kompresi dengan Huffman


Tree
Algoritma Huffman ini merupakan salah
satu teknik kompresi dengan cara melakukan
pengkodean dalam bentuk bit untuk mewakili data
karakter. Adapun cara kerja algoritma ini sebagai
berikut:
1. Menghitung banyaknya jenis karakter dan
jumlah dari masing masing karakter yang
terdapat dalam sebuah file.
2. Menyusun setiap karakter dengan urutan jenis
karakter yang jumlahnya paling sedikit ke
jumlahnya yang paling banyak.
3. Membuat pohon biner berdasarkan urutan
karakter dari yang jumlahnya yang terkecil ke
yang terbesar, dan member kode untuk tiap
karakter.
4. Mengganti data yang ada dengan kode bit
berdasarkan kode biner.
Menyimpan jumlah bit untuk kode bit yang
terbesar, jenis karakter yang diurutkan dari
frekuensi keluarnya terbesar ke terkecil beseta data
yang sudah berubah menjadi kode bit sebagai data
hasil kompresi.
.

190
175
184
186
177
128
223
202
211
184
147
203
186
192
172
235
189
196
204
209
Bila matriks ini sebuah citra gray-level
berukuran 5 x 5 pixel, maka nilai elemen matriks
(pixel), menyatakan tingkat keabuan citra. Tetapi
bila matriks ini mewakili sebuah citra berwarna,
maka nilai elemen matriksnya menyatakan warna.
Setiap pixel dalam sebuah citra yang dikode 8 bit,
berarti citra tersebut memiliki tingkat keabuan atau
memiliki 256 warna.
Dengan mengambil contoh diatas dan
dengan
menggunakan
algoritma
Huffman,
dikembangkan
sebuah
algoritma
untuk
mengkompres data citra sebagai berikut:
a. Buat data citra yang berupa data matriks
tesebut menjadi vector, sehingga didapat
vector[255,187,129,148,236,190,175,184,186,
177,128,223,202,211,184,147,203,186,192,17
2,235,189,196,204,209].
Besarnya data citra = 25 byte
b. Baca vector tersebut dan tentukan nilai warna
yang ada serta frekuensi munculnya. Hasilnya
adalah

Dat
a
186

Tabel 1 : Frekuensi dari data vector


Frekue
Frekue
Frekue
nsi
Data
nsi
Data
nsi
2
147
1
211
1

184

235

172

255

177

196

187

128

204

129

223

209

148

203

236

192

190

189

175

c.

d.

202
1
Urutkan warna dari yang fekuensinya terkecil
ke yang frekuensinya yang terbesar
186,184,255,187,129,148,236,190,175,177,12
8,223,202,211,147,203,192,172,235,189,196,
204,209
Mengganti data warna dengan kode bit
berdasarkan kode biner.
Table 2 : Kode Biner dari Karakter Citra

X
Gambar 1 : Citra 2D (Ukuran : 134 byte)
Matriks dari citra diatas adalah sebagai berikut
diperoleh dari aplikasi Matlab:
255
187
129
148
236

Data
186

Kode Bit
1

184

01

255

001

187

0001

129

00001

Analisis Perbandingan Algoritma Huffman Dengan Algoritma (Lempel-Zip-Welch ) Pada Kompresi 23


Gambar Menggunakan Metode Exponensial. Oleh : Denni M. Rajagukguk

Pelita Informatika Budi Darma, Volume : VI, Nomor: 2, April 2014

148

000001

236

0000001

202

0000000000001

190

00000001

211

00000000000001

175

000000001
147

000000000000001
0000000000000001

177

184
255
187
129
148
236
190
175

177
128
223

1
1
1

0000000001

128

00000000001

203

223

000000000001

192

00000000000000001

202

0000000000001
000000000000000001

1
1

211

00000000000001

172

147

000000000000001

235

0000000000000000001

203

0000000000000001
189

00000000000000000001

196

000000000000000000001
000000000000000000000
1
000000000000000000000
01

192

00000000000000001

172

000000000000000001

235

0000000000000000001

189

00000000000000000001

196

000000000000000000001

204

0000000000000000000001

209
00000000000000000000001
Sekarang
akan
dilakukan
tempat
penghitungan untuk tempat yang dibutuhkan
memori untuk file yang telah dikompresi.

Dat
a
186

ISSN : 2301-9425

Tabel 3 : Perhitungan Hasil Kompresi


Algoritma Template
Jumla Ukura
h
n
Citra
Kode Bit
1
2
1 bit
*2=2
01
2
2 bit
*2=4
001
1
3 bit
*1=3
0001
1
4 bit
*1=4
00001
1
5 bit
*1=5
000001
1
6 bit
*1=6
0000001
1
7 bit
*1=7
00000001
1
8 bit
*1=8
000000001
1
9 bit
*1=9
1
10 bit
*1=10
0000000001
1
11 bit
00000000001
*1=11
1
12bit
*1=12
000000000001

1
1
1

204
209

1
1

13 bit
*1=13
14 bit
*1=14
15 bit
*1=15
16 bit
*1=16
17 bit
*1=17
18 bit
*1=18
19 bit
*1=19
20 bit
*1=20
21 bit
*1=21
22 bit
*1=22
23 bit
*1=23

Untuk citra setelah dikompresi = 2 + 4 + 3


+ 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 1 2 + 1 3 + 14 +
15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23
Untuk citra setelah dikompresi = 279 bit
Ukuran citra semula sebelum dilakukan
kompresi file citra terdiri dari 5 x 5 pixel =25 byte
dimana dalam satuan bit menjadi 25 x 8 bit menjadi
200 bit.
Rasio = 100 - (ukuran citra hasil kompresi /
ukuran citra semula) x 100%
Rasio = 100 - (279/200) x 100%
Rasio = 100 - (1.395) x 100%
Rasio = 100 139,5%
Rasio = 39,5 %
Hasil :
1. Kecepatan
= 6 x iterasi
2. Ukuran
= 79 bit= 10 byte
3. Kualitas
= 39.5%
Bila
dilihat
perbandingan
sebelum
dikompresi, file citra terdiri dari 25 byte dimana
dalam satuan bit menjadi 25 x 8 bit menjadi 200 bit.
Tapi setelah dilakukan kompresi menjadi 279 bit
sehingga didapat besar rasio sebesar 39,5% yang
artinya 39,5% dari citra semula telah berhasil
dimampatkan.
4. Implementasi
4.1 Tampilan Main Menu
Berikut adalah tampilan utama dari analisis
perbandingan kompresi gambar.

Analisis Perbandingan Algoritma Huffman Dengan Algoritma (Lempel-Zip-Welch ) Pada Kompresi 24


Gambar Menggunakan Metode Exponensial. Oleh : Denni M. Rajagukguk

Pelita Informatika Budi Darma, Volume : VI, Nomor: 2, April 2014

ISSN : 2301-9425

bandingkan untuk membandingkan hasil kompresi


Huffman dengan kompresi LZW.

Gambar 2 : Tampilan Program Utama


4.2 Tampilan Input Gambar
Ini merupakan tampilan program untuk
menginput gambar dari directori penyimpanan
gambar bitmap dengan ekstensi .*bmp. Gambar
yang dapat dibuka oleh program ini adalah gambar
yang berekstensi .*bmp.

Gambar 3 : Tampilan Input Gambar


4.3 Tampilan Hasil
Ini merupakan hasil dari input gambar
maka kapasitas atau ukuran dari gambar itu akan
keluar, sehingga user mengetahui ukuran gambar
tersebut.

Gambar 4 : Tampilan Hasil Input Gambar

5. Kesimpulan
Berdasarkan analisa dan pembahasan yang
dilakukan, maka dapat disimpulkan sebagai berikut:
1. Algoritma LZW (Lempel Zip Welch)
menghasilkan performa waktu kompresi yang
kurang baik tetapi algoritma ini memiliki
kinerja kompresi yang tinggi pada format citra
bmp.
2. Tingkat efisiensi memori file hasil kompesi
dengan menggunakan algoritma Huffman dan
algoritma LZW diukur dari besarnya rasio
kompresi yang dihasilkan. Citra yang
mempunyai sebaran nilai pixel tidak merata
memiliki tingkat efisiensi lebih besar
dibandingkan dengan citra dengan nilai pixel
yang merata.
3. Jumlah iterasi dan kapasitas hasil kompresi
dibandingkan untuk mengetahui algoritma
mana yang lebih baik diantara algoritma
Huffman dan algoritma LZW.
Daftar Pustaka
[1]. Sarifuddin Madenda, Hayet L. dan I.
Bayu.Kompresi
Citra
Berwarna
Menggunakan
Metode
Pohon
Biner
Huffman. (Diakses tanggal )
[2]. Adytia Wijaya, Suryarini Widodo. Kinerja
dan Performa Algoritma Kompresi Lossless
Terhadap Objek Citra Digital.(Diakses
tanggal)
[3]. Linawati,
Henry
P.Panggabean.
2004.Perbandingan Kinerja Algoritma
Kompresi Huffman,LZW, Dan DMC Pada
Berbagai Tipe File. (Diakses tanggal)
[4]. Roy Indra Haryanto.2009. Kompresi Data
Dengan
Algoritma
Huffman
Dan
Perbandingannya Dengan Algoritma LZW
Dan DMC. (Diakses tanggal )
[5]. T.Sutoyo,S.Si dkk. Teori Pengolahan Citra
Digital. ANDI. Semarang, 2009.
[6]. Http://en.wikipedia.org/wiki/Huffman_codin
g, diakses 28 Mei 2013.
[7]. http://www.Replaygain.hydrogenaudio.org/fi
le format wav.html, diakses 30 Mei 2013
[8]. http://gpgpu.org/wp/wpcontent/uploads/2010/matlab_logo.gif,
diakses 30 Mei 2013
[9]. http://gpgpu.org/wp/wp-content, diakses 30
Mei 2013
[10]. http://www.mathworks.com, diakses 30 Mei
2013

Setelah proses input gambar dilakukan


maka gambar akan keluar dan kapasitas dari
gambar tersebut juga keluar. Langkah selanjutnya
yang dilakukan adalah menekan tombol kompresi
Huffman untuk melakukan kompresi Huffman dan
tombol kompresi LZW untuk melakukan kompresi
dengan algoritma LZW. Setelah itu, tekan tombol
Analisis Perbandingan Algoritma Huffman Dengan Algoritma (Lempel-Zip-Welch ) Pada Kompresi 25
Gambar Menggunakan Metode Exponensial. Oleh : Denni M. Rajagukguk

Anda mungkin juga menyukai