LECTURE NOTES
Perancangan Analisis dan
Algoritma
Minggu 8
Sesi 12
Huffman Code and Graph
Coloring
COMP6127 - Algorithm Design and Analysis
LEARNING OUTCOMES
1. Mahasiswa mampu memahami konsep penerapan dari
algoritma Welsh – Powell pada permasalahan Graph
Coloring
2. Mahasiswa mampu memahami penerapan algoritma
Huffman Code
OUTLINE MATERI (Sub-Topic):
Huffman Code
Graph Coloring
Kesimpulan
COMP6127 - Algorithm Design and Analysis
ISI MATERI
A. Huffman Code
Huffman Code merupakan salah satu teknik kompresi yang ditemukan
oleh David A. Huffman pada tahun 1952. Pada bagian ini kita akan membahas
latihan soal agar dapat memahami cara kerja Huffman Code dengan lebih baik.
Perhatikan soal berikut :
BINA NUSANTARA ONLINE LEARNING
Dari kalimat diatas kita akan mencari Huffman Codenya. Berikut adalah
prosesnya :
1. Membentuk Tabel Frekuensi
Tabel frekuensi dibentuk dari frekuensi kemunculan karakter dalam
sebuah file.
B I N A U S T R O L E G Sp
1 3 7 5 1 1 1 2 1 2 2 1 3
Hasil tersebut nantinya akan diurutkan menjadi berikut
B U S T O G R L E I Sp A N
1 1 1 1 1 1 2 2 2 3 3 5 7
Pembentukan ini melihat urutan kemunculan kata.
2. Membentuk Huffman Tree
Pembentukan Huffman Tree akan berdasar pada penggabungan kolom
demi kolom. Berikut simulasinya.
B U S T O G R L E I Sp A N
1 1 1 1 1 1 2 2 2 3 3 5 7
COMP6127 - Algorithm Design and Analysis
*1 2
B 1 U 1
S T O G B,U R L E I Sp A N
1 1 1 1 2 2 2 2 3 3 5 7
*2 2
S 1 T 1
O G B,U S,T R L E I Sp A N
1 1 2 2 2 2 2 3 3 5 7
*3 2
O 1 G 1
B,U S,T O,G R L E I Sp A N
2 2 2 2 2 2 3 3 5 7
*4 4
*1 2 *2 2
B 1 U 1 S 1 T 1
O,G R L E I Sp B,U,S,T A N
2 2 2 2 3 3 4 5 7
*5 4
*3 2 R 2
O 1 G 1
COMP6127 - Algorithm Design and Analysis
L E I Sp B,U,S,T O,G,R A N
2 2 3 3 4 4 5 7
*6 4
L 2 E 2
I Sp B,U,S,T O,G,R L,E A N
3 3 4 4 4 5 7
*7 6
I 3 Sp 3
B,U,S,T O,G,R L,E A I,Sp N
4 4 4 5 6 7
*8 8
*4 4
*5 4
*1 *2 *3 2 R 2
2
B 1 U 1 S 1 T 1 O 1 G 1
L,E A I,Sp N B,U,S,T,O,G,R
4 5 6 7 8
*9 9
*6 4 A 5
L 2 E 2
COMP6127 - Algorithm Design and Analysis
I,Sp N B,U,S,T,O,G,R L,E,A
6 7 8 9
*10 13
*7 6 N 7
I 3 Sp 3
B,U,S,T,O,G,R L,E,A I,Sp,N
8 9 13
*11 17
*8 8 *9 9
*4 4 *6 A 5
*5 4 4
*1 2 *2 2 *3 2 R 2 L 2 E 2
B 1 U 1 S 1 T 1 O 1 G 1
I,Sp,N B,U,S,T,O,G,R,L,E,A
13 17
COMP6127 - Algorithm Design and Analysis
*12 30
*10 13 *11 17
*8 8 *9 9
*7 6 N 7
I 3 Sp 3 *4 4 *6 A 5
*5 4 4
*1 2 *2 2 *3 2 R 2 L 2 E 2
B 1 U 1 S 1 T 1 O 1 G 1
B,U,S,T,O,G,R,L,E,A,I,Sp,N
30
3. Setelah Huffman Tree dibentuk maka proses selanjutnya adalah
menentukan Huffman Code. Pembentukan Huffman Code akan
menggantikan nilai bit ASCII dari masing – masing karakter dimana
pemberian nilai akan dilihat dari jalur tree ke node tersebut kiri bernilai
0 dan kanan bernilai 1.
Character ASCII Value Huffman Code
B 01000010 10000
U 01010101 10001
S 01010011 10010
T 01010100 10011
O 01001111 10100
G 01000111 10101
R 01010010 1011
L 01001100 1100
E 01000101 1101
I 01001001 000
COMP6127 - Algorithm Design and Analysis
Sp 00100000 001
A 01000001 111
N 01001110 01
4. Kemudian kita akan hitung compression rate dari fungsi tersebut.
Compression Rate = (1 - ∑ (bit in Huff. code x freq. of appearance) :
∑ (bit in ASCII x freq. of appearance)) x 100%
Total Compression Rate = (1 - 101 / 240) x 100%
Total Compression Rate = 57.92%
B. Graph Coloring
Graph Coloring merupakan metode pewarnaa graph dimana terbagi
menjadi pewarnaa node, edge, dan region. Metode ini akan menggunakan
algoritma Welsh – Powell. Berikut adalah pembahasan soal.
Perhatikan graph berikut.
7
A B
5
6
8
3
C D
Berikut merupakan tahapannya:
1. Menentukan degree dari masing – masing node.
A:3
B:2
C:2
D:3
COMP6127 - Algorithm Design and Analysis
2. Urutkan berdasarkan Freq. Degree tertinggi.
A:3
D:3
B:2
C:2
3. Kemudian berikan pewarnaan dimulai dari node dengan degree
tertinggi dan lakukan pengecekan apakah warna pada node tersebut
sama dengan warna pada node lain. Warna yang diberikan adalah
warna terkecil yang tersedia.
A:1
D : 2 (Karena D terhubung dengan node A maka warna terkecil yang
tersedia adalah 2)
B : 3 (Karena B terhubung dengan node A dan D)
C : 3 (Karena C terhubung dengan node A dan D tapi tidak terhubung
dengan node B)
4. Setelah proses tersebut maka kita dapat menentukan nilai kromatisnya
dimana nilai kromatis merupakan jumlah kombinasi warna yang
digunakan. Dalam hal ini nilai kromatis graph diatas adalah 3.
COMP6127 - Algorithm Design and Analysis
KESIMPULAN
Pada pertemuan ini kita akan membahas latihan dari Huffman Code dan
Graph Coloring untuk memahami cara kerja dari algoritma yang digunakan.
COMP6127 - Algorithm Design and Analysis
DAFTAR PUSTAKA
1. Sridhar, S., (2015), Design and Analysis of Algorithm. Delhi: Oxford University
Press.
2. Horowitz, E., Sahni, S., & Rajasekaran, S., (1997), Computer Algorithms C++.
New York: Computer Science Press.
COMP6127 - Algorithm Design and Analysis