You are on page 1of 23

DASAR MULTIMEDIA

5
METODE KOMPRESI
(Huffman)
Algoritma Huffman
 Dibuat oleh seorang mahasiswa MIT bernama
David Huffman pada tahun 1952.
 Merupakan salah satu metode paling lama dan
paling terkenal dalam kompresi teks.
 Metode ini adalah suatu teknik kompresi secara
statistik yang bekerja dengan mereduksi panjang
kode rata-rata dan menghasilkan kode prefiks yang
digunakan untuk merepresentasikan simbol-
simbol dari suatu jenis huruf.
Pohon Huffman

 Algoritma Huffman menggunakan struktur pohon


dalam prosesnya.
 Dalam struktur pohon dikenal dengan terminologi
parent (orang tua) dan child (anak).
 Parent (orang tua) yaitu sebuah simpul yang memiliki
lintasan ke simpul lain dengan tingkatan (level) di
bawahnya.
 Child (anak) yaitu sebuah simpul yang memiliki
lintasan ke simpul lain dengan tingktan (level) di
atasnya.
Pohon Huffman(2)
 Beradasarkan jumlah anak pohon huffman
dikategorikan :
 Uner : pohon dengan orang tua yang
hanya memiliki satu anak
 Biner : pohon dengan orang tua yang
memiliki dua anak
Metode Kompresi Huffman

1.Urutkan nilai keabuan berdasarkan frekuensi


kemunculannya
2.Gabung dua pohon yang frekuensi kemunculannya
paling kecil
3.Ulangi langkah 2 di atas sampai tersisa satu pohon
biner
4.Beri label 0 untuk kiri dan 1 untuk pohon sisi kanan
5.Telusuri barisan label sisi dari akar ke daun yang
menyatakan kode Huffman
 Contoh, citra 64x64 dengan 8 derajat keabuan (k)
Contoh 2
 Misalkan : aabaaccccddbbbbef = 17 byte
 Pertama-tama hitung frekuensi masing-masing data :
 a  4, b  5, c  4, d  2, e  1, f  1
 Masing-masing data diberi kode bit data yang sering
muncul diberi kode lebih kecil dibandingkan dengan
yang jarang muncul.
 b  5, a  4, c  4, d  2, e  1, f  1

13
Huffman
17
Bit data akan dikodekan, sbb :
0 1
a  01,
b  00,
9 8 c  10,
d  110,
0 1 e  1110,
f 1111
4
0 1
0 1 Jadi data “aabaaccccddbbbbef”
akan dikodekan sbb:
2 01 01 00 01 01 10 10 10 10 110 110 00 00
00 00 1110 1111
0 1 = 40 bit  5 byte

5 4 4 2 1 1
b a c d e f
14
Contoh 3
 Mis: MAMA SAYA
 A = 4 -> 4/8 = 0.5
 M = 2 -> 2/8 = 0.25
 S = 1 -> 1/8 = 0.125
 Y = 1 -> 1/8 = 0.125
 Total = 8 karakter
Huffman Tree

Sehingga w(A) = 1, w(M) = 00, w(S) = 010, dan w(Y) = 011


Contoh 4
Contoh:
xi pi
-----------------------------
A 0,35
B 0,17
C 0,17
D 0,16
E 0,15
 Dari Huffman tree dapat dibuat tabel codeword:
A 1
B 011
C 010
D 001
E 000

LHuff = 0,35*1 + 0,17*3 + 0,17*3 + 0,16*3 + 0,15*3 = 2,3

H(S) = 2,23284

Efisiensi = (2,23284/2,3) x 100 % = 97,08%


Contoh
 Berikut ini adalah sebuah contoh cara pengkodean sebuah
string. Misalkan kita akan mengkodekan sebuah string
“AABCABC”.
 Dalam kode ASCII string 7 huruf “AABCABC”
membutuhkan representasi 7 × 8 bit = 56 bit (7 byte),
dengan rincian sebagai berikut:
 A = 01000001
 A = 01000001
 B = 01000010
 C = 01000011
 A = 01000001
 B = 01000010
 C = 01000011
Pemecahan Masalah
 Berdasarkan algoritma yang telah disebutkan
sebelumnya, maka kita pertama kali akan
menghitung frekuensi kemunculan dari setiap
karakater.
 String: AABCABC

Simbol Frekuensi
A 3
B 2
C 2
Pemecahan Masalah (2)
 Berdasarkan tabel maka dapat disusun
model pohon Huffman-nya:
Pemecahan Masalah (3)
 Berdasarkan pohon Huffman yang ditunjukan
pada hasil di atas maka dapat ditentukan kode
huffman untuk masing-masing setiap simbol yang
dalam string “AABCABC”.
Hasil Kompresi
 Berdasarkan tabel Huffman maka rangkaian
bit dari string AABCABC adalah:
0 0 10 11 0 10 11
 Jadi jumlah bit yang dipakai hanya 11 bit (2
byte), lebih hemat dari jumlah bit
sebelumnya (56 bit).

You might also like