20 4. Berilah label pada setiap sisi pohon biner, sisi kiri dilabeli dengan 0 dan sisi kanan
dilabeli dengan 1.
5. Ulangi langkah 3 sampai node tidak dapat dibagi lagi.
6. Telusuri pohon biner dari akar sampai ke daun. Barisan label label pada sisi pohon dari akar ke daun menyatakan kode Shannon-Fano untuk symbol yang
bersesuaian. Jika ingin mengembalikan audio yang terkompresi menjadi audio ukuran asli
maka harus dilakukan proses dekompresi. Langkah-langkah dekompresi menggunakan algoritma Shannon-Fano adalah
sebgai berikut:
1. Membaca bit pertama dari kode yang dihasilkan. 2. Jika bit pertama ada dalam tabel kode Shannon-Fano, maka bit tersebut
diterjemahkan menjadi simbol yang sesuai dengan bit tersebut. 3. Jika bit tersebut tidak ada dalam tabel kode Shannon-Fano, gabungkan bit tersebut
dengan bit selanjutya, kemudian cocokkan dengan tabel hasil pengkodean. 4. Ulangi langkah 3 sampai ada rangkaian bit yang cocok dengan tabel kode
Shannon-Fano, terjemahkan rangkaian bit tersebut menjadi simbol yang sesuai. 5. Jika terdapat simbol yang sesuai, maka baca bit selanjutnya dan ulangi langkah 2,
3, dan 4 sampai rangkaian kode habis.
2.5 Binary Tree
Suatu binary tree memiliki ciri ciri sebagi berikut:
a. Sebuah root b. Terdapat node yang disebut parent atau child
c. Parent masing-masing memiliki maksimum 2 buah child d. Node yang tidak memiliki child disebut leaf
Universitas Sumatera Utara
21 Untuk lebih jelasnya pembuatan contoh binary tree dapat dilihat pada Gambar 2.6
berikut.
Root A
B C
E D
H I
Parent Parent
child child
K F
G leaf
leaf
leaf leaf
leaf leaf
J
Gambar 2.6 Contoh Binary Tree
Child dari A: {B, C} Descendant dari A: {B, C, D, E, F, G, H, I, J, K}
Child dari B: {D, E} Descendant dari B: {D, E, H, I, J, K}
Child dari C: {F, G} Child dari D: {H, I}
Child dari E: {J, K} Dilihat dari kepemilikan node pada masing-masing parent dan tinggi tree,
maka pohon biner binary tree dibedakan menjadi dua yaitu pohon biner lengkap dan pohon biner sempurna. Pohon biner lengkap completely binary tree, yakni masing-
masing node memiliki 2 buah anak atau tidak memiliki anak sama sekali.
A B
C E
D H
I F
G
Gambar 2.7 Contoh Completely Binary Tree
Universitas Sumatera Utara
22 Sebuah pohon biner sempurna perfect binary tree adalah pohon biner yang
lengkap yang masing-masing node memiliki 2 buah anak dan mempunyai kedalaman yang sama jarak dari akar atau biasanya disebut juga dengan height.
A B
C
E D
F G
H I
J K
L M
N O
Gambar 2.8 Contoh Perfect Binary Tree
Berikut ilustrasi untuk memperjelas cara kerja algoritma Shannon-Fano serta pembentukan pohon biner. Diambil suatu sampel data audio yang dinyatakan dalam
bentuk heksadesimal.
1. Misalnya file audio dalam bentuk heksadesimal sebagai berikut: FE 3F 02 00 FE 3F 02 FF 7C 3F
2. Langkah awal adalah membentuk tabel distribusi frekuensi seperti terlihat pada Tabel 2.4.
Tabel 2.4 Tabel Distribusi Frekuensi Karakter
Frekuensi
3F 3
FE 2
02 2
00 1
FF 1
7C 1
Universitas Sumatera Utara
23 3. Kemudian dibentuk node pohon untuk tiap karakter beserta nilai frekuensinya
masing-masing. Pengurutan dilakukan secara menurun descending dari nilai frekuensi terbesar hingga terkecil dan frekuensi yang sama didahulukan sesuai
dengan urutan yang pertama muncul dapat dilihat pada Gambar 2.9.
3F 3
02 2
FE 2
00 1
7C 1
FF 1
Gambar 2.9 Contoh Pengurutan Frekuensi Secara Descending
4. Setelah itu, dibagi menjadi dua buah bagian node dengan jumlah frekuensi kemunculan simbol yang sama atau hampir mendekati sama antara node yang satu
dengan node yang lainnya seperti Gambar 2.10.
3F FE 5
02 00 FF 7C 5
Gambar 2.10 Contoh Pembagian Menjadi Dua Node
5. Berikutnya dengan mengulangi langkah 4, yaitu membagi menjadi dua buah node dengan jumlah frekuensi kemunculan simbol yang sama atau hampir mendekati
sama pada salah satu node di node sebelah kiri.
3F FE 5
3F 3
FE 2
02 00 FF 7C 5
Gambar 2.11 Contoh Pembagian Menjadi Dua Node Kedua
6. Untuk node yang di sebelah kiri, node tidak bisa lagi dibagi sehingga dilanjutkan pada node sebelah kanan. Pada node sebelah kanan, ulangi langkah 5 yaitu
membagi jumlah frekuensi kemunculan simbol yang sama atau hampir mendekati sama pada salah satu node dapat dilihat pada Gambar 2.12.
Universitas Sumatera Utara
24
3F FE 5
3F 3
FE 2
02 00 FF 7C 5
02 2
00 FF 7C 3
Gambar 2.12 Contoh Pembagian Menjadi Dua Node Ketiga
7. Node sebelah kanan dapat dibagi lagi maka lakukan langkah seperti langkah 6, dapat dilihat pada Gambar 2.13.
3F FE 5
3F 3
FE 2
02 00 FF 7C 5
02 2
00 FF 7C 3
00 FF 2
7C 1
Gambar 2.13 Contoh Pembagian Menjadi Dua Node Keempat
8. Kemudian lakukan langkah langkah seperti diatas sampai semua node tidak dapat dibagi lagi. Hasil dari perulangan dapat dilihat pada Gambar 2.14.
3F FE 5
3F 3
FE 2
02 00 FF 7C 5
02 2
00 FF 7C 3
00 FF 2
7C 1
00 1
FF 1
Gambar 2.14 Contoh Pembagian Menjadi Dua Node Kelima
Universitas Sumatera Utara
25 9. Setelah semua node tidak dapat dibagi lagi dan membentuk pohon biner, maka
tambahkan label pada setiap sisi pohon biner, sisi kiri dilabeli dengan 0 dan sisi kanan dilabeli dengan 1. Kemudian telusuri pohon biner dari akar hingga ke daun.
Barisan label label pada sisi pohon dari akar ke daun menyatakan kode Shannon- Fano untuk simbol yang bersesuaian dapat dilihat pada Gambar 2.15.
3F FE 5
3F 3
FE 2
02 00 FF 7C 5
02 2
00 FF 7C 3
00 FF 2
7C 1
00 1
FF 1
3F FE 02 00 FF 7C 10
1
1 1
1
1
Gambar 2.15 Contoh Pembagian Menjadi Dua Node Keenam
10. Pada Gambar 2.15 dapat dilihat tiap karakter telah memiliki kode Shannon-Fano Penelusuran dari akar ke daun dari atas ke bawah menghasilkan kode Shannon-
Fano dengan kode bit untuk tiap karakter seperti pada Tabel 2.5.
Tabel 2.5 Tabel Hasil Kode Shannon-Fano
Simbol Frekuensi
Kode Bit
3F 3
00 2 bit FE
2 01 2 bit
02 2
10 2 bit 00
1 1100 4 bit
FF 1
1111 4 bit 7C
1 111 3 bit
Universitas Sumatera Utara
26 11. Maka file audio untuk FE 3F 02 00 FE 3F 02 FF 7C 3F hasil kode bit adalah
0100101100100101110111100 dengan jumlah bit hasil kompresi 25 bit dan
jumlah sebelum dikompresi yaitu jumlah karakter dalam byte 8 bit = 10 8 bit
= 80 bit.
Jika ingin mengembalikan audio yang terkompresi menjadi audio ukuran asli maka harus dilakukan proses dekompresi.
Sebagai contoh untuk menulis kembali file audio asli dari bilangan heksa
pengganti 4B 25 DE 00 maka hal pertama yang perlu dilakukan adalah
mengubahnya kembali ke kode bit.
Tabel 2.6 Tabel Pengubahan Heksadesimal ke Biner Kode Heksadesimal
Kode Biner
4B 01001011
25 00100101
DE 11011110
00 00000000
Setelah didapat kode bit pengganti seperti gambar di atas, kemudian diambil informasi dari header audio untuk mengecek apakah sebelumnya dilakukan
penambahan bit. Jika dilakukan adanya penambahan bit, maka kode pengganti tersebut harus dikurangi sebanyak bit yang ditambah pada bit belakang. Misalkan
sebelumnya kode bit 01001011001001011101111000000000 ditambah 7 bit maka kode bit ini juga harus dikurangi sebanyak tujuh bit dari belakang menjadi
0100101100100101110111100. Setelah itu, dilakukan langkah langkah proses dekompresi dengan
menggunakan tabel kode Shannon-Fano sebelumnya, dari tabel tersebut dibaca bit
pertama dari kode yang dihasilkan 0100101100100101110111100.
Universitas Sumatera Utara
27
Tabel 2.7 Tabel Kode Shannon-Fano
Simbol Frekuensi
Kode Bit
3F 3
00 2 bit FE
2 01 2 bit
02 2
10 2 bit 00
1 110 3 bit
FF 1
1110 4 bit 7C
1 1111 4 bit
Bit pertama adalah 0, dicocokkan pada tabel kode Shannon-Fano diatas. Jika tidak ada simbol yang bersesuaian maka baca bit selanjutnya yaitu 01 dimana terdapat
pada tabel kode Shannon-Fano yang merupakan kode dari bilangan heksa FE. Begitu seterusnya sampai akhir rangkaian kode bit sehingga diperoleh kembali bahwa sampel
audio semula adalah FF 3F 02 00 FE 3F 02 FF 7C 3F.
Universitas Sumatera Utara
BAB 3
ANALISIS DAN PERANCANGAN
Bab ini secara garis besar membahas analisis algoritma Shannon-Fano untuk kompresi file audio dan tahap-tahap yang akan dilakukan dalam perancangan aplikasi
yang akan dibangun.
3.1 Analisis Algoritma