Analisis Algoritma Implementasi Algoritma Shannon-Fano Pada Kompresi Audio

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