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
Pada bab sebelumnya telah dijelaskan bahwa algoritma Shannon-Fano yang akan diterapkan untuk kompresi audio. Kompresi pada audio yang digunakan berjenis file
mp3, dimana jenis audio ini sekarang lebih sering digunakan karena data yang disimpan menyerupai data yang asli pada saat direkam serta memiliki ukuran yang
tidak terlalu besar dibandingkan format lain. Algoritma Shannon-Fano menggunakan struktur data string sebagai data
masukan serta struktur data binary tree sebagai pembentukan pohon biner. Pada proses kompresi algoritma Shannon-Fano audio, data yang akan dikompresi adalah
sampel sampel audio yang berupa bilangan heksadesimal yang berada di bagian main data audio.
Algoritma Shannon-Fano bekerja dengan memperkecil bit untuk kata yang sering muncul dan memperbesar bit yang jarang muncul. Algoritma ini menggunakan
metode lossless yaitu awalnya data akan dipecah menjadi ukuran yang lebih kecil dan pada akhirnya data disatukan kembali sehingga tidak ada informasi yang hilang.
Adapun gambaran kompresi algoritma Shannon-Fano dapat dilihat pada Gambar 3.1.
Universitas Sumatera Utara
29
Mulai
Input sampel audio
Menghitung frekuensi kemunculan simbol
Mengurutkan frekuensi simbol secara descending
Membagi menjadi dua bagian jumlah frekuensi simbol yang sama atau
hampir sama
Memberi label pada sisi kiri 0 dan sisi kanan 1
Simbol tidak dapat dibagi
Output kode shannon-fano
Selesai
Ya Tidak
Gambar 3.1 Proses Kompresi Algoritma Shannon-Fano
Universitas Sumatera Utara
30 3.1.1 Deskripsi Kompresi Algoritma Shannon-Fano
Langkah-langkah algoritma kompresi Shannon-Fano pada audio adalah sebagai berikut Pu, 2006:
1. Menghitung frekuensi kemunculan masing-masing simbol pada sampel dalam audio.
2. Mengurutkan frekuensi kemunculan simbol dari simbol yang terbesar sampai yang terkecil secara topdown.
3. Membagi menjadi dua buah bagian, dengan jumlah frekuensi kemunculan simbol yang sama atau hampir mendekati sama antara node yang satu dengan node yang
lainnya.
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 ke daun. Barisan label label pada sisi pohon dari akar ke daun menyatakan kode Shannon-Fano untuk simbol yang bersesuaian.
Untuk lebih jelasnya langkah-langkah untuk kompresi algoritma Shannon-Fano dapat dilihat pada pseudocode berikut:
Input
: A sorted list of n input symbols S = {s1,s2,…, sn}with frequencies
of occurrence F = { �1, �2,…, �n}, where �� ≤ � + , �, ≤ � ≤ �
Output: n variable-length codewords C = {cs
�, cs�,…,csn} 1: cs
� ,� , ≤ � ≤ n 2: Shannon-Fano-SplitS
3: procedure Shannon-Fano-SplitS
4:
if |s| 1 then
5: split S to s1 and S2 with approximately the same sum of frequency 6:
cs1 cs1+ 0, s1 S1 7:
cs2 cs2+ 0, s2 S2
Universitas Sumatera Utara
31
8: Shannon-Fano
-SplitS1 9:
Shannon-Fano -SplitS2
10:
end if 11: end procedure
3.1.2 Deskripsi Dekompresi Algoritma Shannon-Fano 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.
3.2 Perancangan Aplikasi