APLIKASI KOMPRESI FILE AUDIO MENGGUNAKAN ALGORITMA DEFLATE | Patanan | semanTIK 1 PB
semanTIK, Vol.3, No.2, Jul-Des 2017, pp. 209-218
ISSN : 2502-8928 (Online)
209
APLIKASI KOMPRESI FILE AUDIO
MENGGUNAKAN ALGORITMA DEFLATE
Jelyzer Patanan*1, Sutardi2, Rizal Adi Saputra3
Jurusan Teknik Informatika, Fakultas Teknik, Universitas Halu Oleo, Kendari
e-mail : *[email protected],[email protected], [email protected]
*1,2,3
Abstrak
Seiring dengan semakin berkembangnya bentuk data yang diolah melalui perangkat komputer,
maka semakin besar pula ukuran dari data yang diolah tersebut. Data yang berukuran besar akan
sangat menyita ruang penyimpanan yang dimiliki, serta akan sangat memakan waktu jika
dipertukarkan dengan pengguna lainnya dalam jaringan komputer. Untuk itu perlu dilakukan
pemampatan data atau kompresi data untuk bisa meminimalkan ukuran dari data yang akan
digunakan.
Pada penelitian ini dilakukan untuk membandingkan rasio kompresi dan waktu kompresi file
wav dan mp3. Ada 2 file yang diujikan, yaitu file audio berekstensi *.wav dan *.mp3. Pengujian
aplikasi kompresi ini dilakukan dengan menguji file yang mempunyai ukuran berbeda-beda dengan 5
sample rate berbeda yaitu 8.000 Hz, 11.025 Hz, 22.050 Hz, 44.100 Hz dan 48.000 Hz.
Hasil pengujian diperoleh, rata-rata rasio kompresi terbaik terdapat pada pengujian file wav
dengan sample rate 44.100 Hz yaitu dengan rata-rata rasio sebesar 39,12 % dan rasio terkecil pada
pengujian file mp3 dengan sample rate 48.000 Hz dengan rata-rata rasio 1,9 %. File dengan
pengujian waktu tercepat terjadi pada file mp3 di sample rate 11.025 Hz dimana waktu terbaik
pengujian dengan rata-rata 187 milisecond. Sedangkan waktu terlama saat pengujian terjadi pada
pengujian file wav di sample rate 48.000 Hz dengan waktu kompresi rata-rata 4328 milisecond.File
audio dengan ukuran yang besar membutuhkan waktu lebih lama dalam melakukan proses kompresi.
Kata kunci—Audio, Kompresi, Dekompresi, Algoritma Deflate, Lossless, WAV, MP3.
Abstract
Along with the growing form of data processed by using computer, the size of the data itself are
getting bigger. Large data will greatly take more storage space and will take longer time in the data
exchange process with other users. Based on the given fact, the author thinks that collecting and
compressing those data in order to reduce its size will become a very good solution.
This study was conducted to compare the compression ratio and compression time between wav
and mp3 files. In this study, the author using *.wav and *mp3 files as the samples. In this study, the
author tested five different samples (in size) by using five sample rate : 8000 Hz, 11.025 Hz, 22.050
Hz, 44.100 Hz and 48.000 Hz.
Based on the test results, the author obtained the highest average value of compression ratio
lies in the .wav file with 44.100 Hz sample rate(average ratio 39,12%) whereas the lowest one lies in
the .mp3 file with 48.000 Hz sample rate (average ratio 1,9%). Mp3 file with 11.025 Hz sample rate
has the fastest testing time with average time 187 milisecond whereas .mp3 file with 48.000 Hz takes
more time (longest time) with average time 4328 milisecond. The larger the file, the longer the
compression process.
Keywords— Audio, Compression, Decompression, Deflate Algorithm, Losless, WAV, MP3
Received June 1st ,2012; Revised June 25th, 2012; Accepted July 10th, 2012
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
210
1. PENDAHULUAN
P
emanfaatan teknologi sebagai bagian
kehidupan dalam dasawarsa terakhir
berkembang dengan pesat. Hal tersebut
berpengaruh kepada meningkatnya kebutuhan
akan media penyimpanan data. Data berupa
file teks, gambar, suara, video ataupun file
yang
mempunyai
fungsi
tertentu
membutuhkan lokasi sebagai wadah yang
dapat dihitung dalam satuan byte. Masalah
dalam biaya penyimpanan, biaya dan waktu
pentransmisian data mengharuskan adanya
suatu pemecahan[1].
File audiodigital memiliki ukuran (size)
yang lebih besar dibandingkan dengan file
teks. Jadi untuk mengurangi ukurannya dapat
dilakukan
dengan
cara
kompresi.
Fileaudio dengan format WAV memiliki data
yang tidak terkompres sehingga seluruh
sampelaudiodisimpan
semuanya
diharddisk. Fileaudioini
jarang
sekali
digunakan di internet karena ukurannya yang
relatif besar dengan batasan maksimal untuk
file WAV adalah 2GB. Sedangkan, Sebuah file
MP3 mempunyai bit rates mulai dari yang
rendah yaitu 32 kbits/detik hingga 320
kbits/detik. Format File MP3 merupakan yang
paling terkenal di kalangan umum, karena
ukuran file nya yang kecil tapi dengan kualitas
suara yang masih terjaga dengan baik. Selain
itu, format file MP3 banyak didukung
pemutar-pemutar musik yang banyak beredar
di pasaran, sehingga MP3 lebih dikenal dan
sering digunakan[2].
Kompresi data adalah proses yang
mengkonversi sebuah masukan berupa aliran
data (the source atau data asli mentah) menjadi
suatu aliran data lain (the output, aliran bit
atau aliran sudah dikompres) yang memiliki
ukuran lebih kecil. Terdapat dua golongan
besar pada teknik kompresi ketika berhadapan
dengan kemungkinan merekonstruksi kembali
data yang telah dikompres menjadi data
original,
yaitu
Lossless
dan
LossyCompression. Pada penelitian ini akan
digunakan kompresi tipe lossless, hal ini
karena lossless compression memungkinkan
rekonstruksi data kembali sama persis dengan
data original dengan cara mendekompresinya
dan tidak ada kerusakan pada data.Berbeda
dengan tipe lossycompression, data yang
diperoleh akan berbeda dari data yang aslinya
karena tipe lossy membuang sebagian bit
dalam data[3].
Algoritma yang termasuk golongan
lossless adalah Huffman, varian Lempel-Ziv
(LZ), Deflate, Arithmetic, Run Length
Encoding (RLE) dan lain-lain. Berbagai jenis
algoritma tersebut berkembang dengan
pendekatan, kelebihan juga kekurangan yang
berbeda satu sama lain. Banyak pihak berusaha
mengembangkan algoritma baru dengan
didasari algoritma yang sudah ada atau
berusaha mengkombinasikan dua atau lebih
algoritma. Dalam ruang lingkup metode
kompresi General-purpose, Algoritma Deflate
hadir dengan mengkombinasikan Algoritma
LZ77 dan Huffman. Algoritma Deflate
mengambil berbagai kelebihan dari masingmasing metode, sliding-window pada metode
LZ77 dan prefix-tree pada metode Huffman.
Hal ini menjadikan performa Algoritma
Deflate layak dibandingkan dengan berbagai
metode kompresi terbaik[4].
2. METODE PENELITIAN
2.1
Audio
Audio adalah fenomena fisik yang
dihasilkan oleh getaran suatu benda yang
berupa sinyal analog dengan amplitudo yang
berubah secara kontinyu terhadap waktu yang
disebut frekuensi. Selama
bergetar,
perbedaan
tekanan
terjadi
di udara
sekitarnya. Pola osilasi yang terjadi dinamakan
sebagai gelombang. Gelombang mempunyai
pola sama yang berulang pada interval
tertentu, yang disebut sebagai periode [5].
Sebuah format berkas audio adalah
format berkas untuk menyimpan data audio
digital pada sistem komputer. Data inidapat
disimpan tidak dikompresi, atau kompresi
untuk mengurangi ukuran berkas.
2.2
Format Audio WAVe form audio (*.wav)
WAV adalah singkatan dari istilah
dalam bahasa Inggris WAVeform audio format
merupakan standar format berkas audio yang
dikembangkan oleh Microsoft dan IBM. WAV
merupakan standar format container file yang
digunakan oleh windows. WAV umumnya
digunakan untuk menyimpan audio tak
termampatkan, berkas suara berkualitas CD,
yang berukuran besar (sekitar 10 MB per
menit). berkas WAV juga dapat berisi data
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
terkodekan dengan beraneka ragam codec
untuk mengurangi ukuran file.
File WAV menggunakan struktur
standar RIFF dengan mengelompokan isi file
ke dalam bagian-bagian seperti format WAV
dan data digital audio. Setiap bagian memiliki
header-nya sendiri-sendiri beserta dengan
ukurannya.
Struktur
RIFF
(Resource
Interchange File Format) ini merupakan
struktur yang biasa digunakan untuk data
multimedia dalam Windows. Struktur ini
mengatur data dalam file ke dalam bagianbagian yang masing-masing memiliki header
dan ukurannya sendiri dan disebut sebagai
chunk. Struktur ini memungkinkan bagi
program bila tidak mengenali bagian tertentu
untuk melompati bagian tersebut dan terus
memproses bagian yang dikenal. Data dari
suatu bagian bisa memiliki sub-bagian dan
seluruh data dalam file berstruktur RIFF selalu
merupakan sub bagian dari suatu bagian yang
memiliki header “RIFF”. Gambar 1
menunjukkan struktur file audio wav [5].
211
The “fmt” sub-Chunk menggambarkan
format informasi suara di dalam subChunk.
SubCunk1ID terdiri dari kata “fmt”,
subChunk1size ukuranya sebesar data format
wav “16 byte” ditambah dengan ekstra format
byte yang diperlukan untuk format wav
khusus, Audio Format bernilai pcm = 1(linear
quantitation)
jika
nilai
lebih
dari
1mengindikasikan
file
wav
kompresi,
NumChanel menunjukkan jumlah chanel yang
digunakan
dalam
file,
Samplerate
menunjukkan jumlah samplerate dalam file,
Byterate mengindikasikan berapa besar byte
data wav harus di-stream ke converter digital
audio tiap detik sewaktu file dimainkan,
Blockalign menunjukkan jumlah byte tiap
potong sample dan Bitpersample menunjukkan
jumlah
bit
yang
digunakan
untuk
mendefinisikan tiap sample.
The “data” SubChunk2ID berisi ukuran
dari informasi suara dan terdiri dari data suara
mentah. SubChunk2ID terdiri dari kata “data”,
SubChunk2Size menunjukkan besar ukuran
data dan data berisi data audio sebenarnya [5].
2.3
Gambar 1 Strukur Wav
The
“RIFF”
Chunk
descriptor
menunjukkan file format wav yang terdiri dari
2 subChunk yaitu “fmt” dan “data”. ChunkID
menunjukkan terdiri dari kata “RIFF” dalam
bentuk ASCII, Chunk size menunjukkan
besarnya ukuran file dalam byte dikurangi 8
byte untuk 2 field yang tidk termaksut dalam
hitungan, yaitu ChunkID dan Chunk size dan
format terdiri dari kata “wav” dalam bentuk
ASCII.
Algoritma LZ77
Algoritma LZ77 (Lempel Ziv 1977)
merupakan algoritma kompresi yang bersifat
Loseless, yang dikembangkan oleh Abraham
Lempel dan Jacob Ziv pada tahun 1977.
MetodeKompresi LZ77 merupakan metode
kompresi Sliding Windows Compression,
struktur data yang berupa text windows akan
dibagi menjadi 2 bagian, terdiri dari teks yang
sudah dikodekan (history buffer) dan bagian
lain dari teks yang akan dikodekan (lookahead
buffer). Ukuran buffer dari masing-masing
ditetapkan sebelumnya dalam implementasi,
history buffer akanmemiliki panjang hingga
beberapa ribu byte dan lookahead buffer
memiliki panjang hanya puluhan byte [6].
Dalam melakukan kompresi LZ77, ada
beberapa tahapan yang harus dilakukan. Pada
awalnya harus ditentukan dulu besar history
buffer dan besar lookahead buffer. Kemudian
isikan barisan karakter inputan ke dalam ruang
yang tersedia di lookahead buffer. Apabila
history buffer masih kosong atau tidak ada
karakter pola yang sama di dalam lookahead
buffer dibandingkan dengan history buffer,
maka keluarkan token dengan format offset
bernilai 0, length match bernilai 0, lalu diikuti
1 karakter missmatch di awal lookahead
buffer. Namun apabila ditemukan pola maka
Title of manuscript is short and clear, implies research results (First Author)
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
212
keluarkan token dengan format offset bernilai
jarak dari historybuffer ditemukannya pola,
length match bernilai panjang pola yang
ditemukan sama, dankarakter missmatch diisi
1 karakter diluar dari pola yang ditemukan.
Kemudian potong karakter yang sudah diubah
menjadi token tersebut dari lookahead buffer
dan diisikan ke dalam historybuffer, yang
menandakan karakter tersebut telah diproses
kompresi. Isi lookahead buffer hinggapenuh
dari barisan inputan yang tersisa, dan lakukan
proses pencocokan pola karakter seperti tadi
hingga ditemukan end of file. Apabila sudah
ditemukan end of file dan lookahead buffer
sudah tidak terdapat karakter tersisa, maka
akan didapatkan token hasil kompresi LZ77
[6].
Contoh penerapan kompresi pada LZ77
tepatnya tentang pembuatan token akan
dijelaskan di sini. Diketahui terdapat barisan
data
string
sebagai
berikut,“Data_ini_representasi_input_dari_per
geseran_input_pertama_kali_dilakukan”.
Misalkan di barisan tersebut telah dilakukan
proses
kompresi
hingga
string
“Data_ini_representasi_input_dari_pergeseran
”. Dengan kata lain, barisan string tersebut
berada di history buffer, barisan sisanya akan
berada di lookahead buffer dan data inputan.
Mari perhatikan Gambar 2, yang merupakan
tampilan dari jendela LZ77 yang diterapkan.
Gambar 2 Jendela Kompresi LZ77
Dari Gambar 2 tepatnya pada lookahead
buffer, dapat dilihat terdapat pola kesamaan
dengan history buffer sepanjang 7 karakter
yaitu barisan string “_input_”. Maka keluarkan
nilai token dari pola yang ditemukan tersebut.
Formatnya akan dituliskan seperti ini (22,7,p)
yang berasal dari 22 yang merupakan nilai
offset, 7 yang merupakan panjang pola, dan p
adalah karakter missmatch. Kemudian
dilakukan pergeseran jendela hingga menjadi
terlihat seperti pada Gambar 3
Dari Gambar 3 terlihat history buffer
dan lookahead buffer bergeser sepanjang token
pola yang ditemukan pada Gambar 3. Pada
lookahead buffer juga diisi kembali sebanyak
ruang yang tersedia, dengan mengambil data
dari sisa inputan. Setelah itu dilakukan proses
pembentukan token lagi, yang diketahui pada
Gambar 3 akan menghasilkan token (17,2,t).
Lalu lakukan pergeseran dan pembentukan
token lagi hingga lookahead buffer berisi end
of file [6].
2.4
Algoritma Huffman
Algoritma Huffman pada awalnya
diperkenalkan oleh David Huffman pada tahun
1952, yang mana metode ini merupakan
metode yang paling terkenal di dalam
kompresi teks. Metode Kompresi Huffman
melakukan penganalisaan terlebih dahulu
terhadap string masukan yang akan diproses
kompresi, selanjutnya nanti akan dibuat pohon
Huffman yang merupakan pohon biner dengan
kode pengganti yang optimal untuk simbolsimbol dengan probabilitas kemunculan yang
lebih tinggi [7].
Tahap kompresi Algoritma Huffman
dimulai dengan melakukan pembentukan
pohon biner Huffman. Adapun langkah
pembentukkan pohon Huffman sebagai
berikut:
1. Membaca seluruh karakter unik di dalam
barisan inputan dan hitung frekuensi
kemunculannya.
2. Mengurutkan
karakter
berdasarkan
frekuensi yang terkecil hingga terbesar.
3. Mengambil 2 karakter yang memiliki
probabilitas frekuensi terkecil dan jadikan
ke dalam 1 node. Dalam node tersebut
nilai probabilitas frekuensi dari kedua
karakter akan dijumlahkan.
4. Mengulangi pengambilan 2 karakter
seperti pada poin 3, hingga seluruh
karakter dikenai proses tersebut dan
menjadi pohon biner.
5. Memberikan nilai setiap simpul kiri pohon
binerdengan 0 dan setiap simpul kanan
dengan 1.
6. Proses pembentukan pohon Huffman
selesai dan untuk melakukan pembacaan
dilakukan dari root atau puncak pohon
hingga menemukan karakter yang dicari di
daun.
Gambar 3 Pergeseran Jendela Kompresi LZ77
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
Contoh penerapan Algoritma Huffman
adalah sebagai berikut, misal terdapat barisan
karakter “abibadibib”. Diketahui bahwa setiap
karakter di dalam komputer dikodekan dalam
1 Byte atau sebesar 8 bit. Barisan karakter
“abibadibib” tersebut terdapat 10 karakter
maka dapat dihitung menjadi: 10 x 8 bit = 80
bit. Barisan karakter tersebut dapat dikatakan
membutuhkan ruang penyimpanan sebesar 80
bit atau setara dengan 8 Byte. Karakterkarakter “abibadibib” tersebut memiliki
rincian kode bit yang dikenali komputer
ditunjukkan pada Tabel 1.
Tabel
1
Kode
“abibadibib”
Karakter
A
B
I
B
A
D
I
B
I
B
ASCII
Representasi
Kode Representasi
01100001
01100010
01101001
01100010
01100001
01100100
01101001
01100010
01101001
01100010
Setelah mengetahui pemborosan bit
tersebut, maka diterapkan kompresi Huffman
pada barisan tersebut. Maka langkah yang
perlu dilakukan adalah menerapkan langkahlangkah kompresi yaitu pembentukan pohon
Huffman sebagai berikut :
1. Cek karakter unik dalam barisan dan
hitung frekuensi kemunculannya. Urutkan
dari frekuensi yang terkecil. Diketahui [d]
memiliki 1 kemunculan, [a] memiliki 2
kemunculan, [i] memiliki 3 kemunculan,
dan [b] memiliki 4 kemunculan.
2. Ambil 2 node terkecil yakni karakter [d]
dan [a], gabung jadi 1 node [da].
3. Ambil 2 node terkecil yakni [da] dan [i],
gabung jadi 1 node [dai].
4. Ambil 2 node terkecil yakni [dai] dan [b],
gabung jadi 1 node [daib].
5. Beri nilai tiap simpul kiri dengan 0 dan
tiap simpul kanan dengan 1.
Langkah-langkah pembentukan pohon
Huffman yang diterapkan pada barisan
“abibadibib” dapat dilihat pada Gambar 4
213
Gambar 4 Pembentukan Pohon Huffman
barisan “abibadibib”.
Dengan menerapkan pohon Huffman
akan menghasilkan penghematan terhadap bit
yang seharusnya dimiliki tiap karakter yang
ada pada barisan “abibadibib”. Hal tersebut
ditunjukkan pada Tabel 2.
Tabel 2 KodeHuffman untuk “abibadibib”
Karakter
a
b
d
i
Kode Representasi
001
1
000
01
Dengan melakukan pengkodean ulang
terhadap barisan karakter “abibadibib” maka
akan
didapatkan
barisan
bit:
0011011001000011011. Diketahui bahwa
karakter [b] yang pada pengkodean ASCII
membutuhkan ruang sebesar 8 bit sekarang
hanya membutuhkan 1 bit, maka panjang bit
karakter [b] yang terdapat di “abibadibib”
awalnya sebesar 4*8bit = 32bit menjadi hanya
sebesar 4*1bit = 4 bit saja. Baris karakter
“abibadibib” yang mulanya membutuhkan
ruang sebesar 80 bit sekarang hanya
membutuhkan sebesar 19 bit [7].
2.5
Algoritma Deflate
Algoritma Deflate merupakan algoritma
persilangan antara Algoritma Huffman dan
Algoritma LZ77. Dalam proses kompresinya,
Algoritma Deflate ini terlebih dahulu
melakukan proses pengelompokan karakter
dengan menggunakan Algoritma LZ77.
Kemudian hasil dari pengelompokan karakter
tersebut dikompresi lagi dengan menggunakan
Algoritma
Huffman
(Huffman
Tree).
Algoritma Deflate ini bersifat loseless
Compression. Hal ini karena Algoritma
Deflate ini menggabungkan dua algoritma
kompresi yang bersifat loseless.
Title of manuscript is short and clear, implies research results (First Author)
214
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
Penggunaan kompresi LZ77 sebelumnya
melihat teks sebagai sebuah kamus. Kompresi
ini menggantikan frasa variable-length dalam
teks
input
dengan
pointer
dengan nilai tetap kedalam kamus untuk
mencapai
kompresi.
Jumlah
yang
dikompresitergantung dari seberapa panjang
frasa yang ada dalam kamus, seberapa besar
windowdalam teks yang terlihat, dan entropi
dari teks asal sesuai dengan model LZ77.
Struktur data utama dalam LZ77 adalah
sebuah window teks, dipisahkan ke dalam dua
bagian. Bagian pertama berisikan sebuah blok
dari teks yang baru dikodekan. Bagian
yang kedua biasanya yang lebih kecil adalah
look-ahead
buffer.
Look-ahead
buffer
berisi karakter-karakter yang dibaca dari
stream input namun belum dikodekan.
Ukuran normal dari window teks adalah
beberapa ribu karakter. Look-ahead buffer
umumnya lebih kecil, mungkin sepuluh
sampai seratus karakter saja. Algoritma ini
mencoba untuk mencocokan isi dari lookahead buffer menjadi sebuah String di
dalam kamus.
Algoritma dekompresi untuk LZ77
bahkan lebih sederhana, karena tidak perlu
melakukan perbandingan. Algoritma ini
membaca sebuah token, output dari frasa
yang bersangkutan, output dari karakter itu,
kemudian geser dan ulangi. Algoritma ini
tetap menjaga window-nya, tapi tidak bekerja
dengan pembandingan String.
Kode Huffman, dinamai atas penemunya
yaitu D. A. Huffman, menghasilkan
jumlah
minimum
dari
kemungkinan
kerangkapan dari sebuat set variable-length
code dengan ukuran yang tetap. Ini tidak
berarti bahwa algoritma Huffman adalah
sebuah metode pengkodean yang optimal,
namun dapat diartikan bahwa algoritma ini
menghasilkan pendekatan terbaik untuk
simbol-simbol kode ketika menggunakan
kode dengan besar yang tetap.
encoding Algoritma Deflate ini adalah berupa
karakter yang telah disingkat yang merupakan
hasil dari encoding Algoritma LZ77 dan
memiliki kode biner yang lebih pendek yang
merupakan hasil dari encoding Algoritma
Huffman.
b. Decoding
Proses decoding pada Algoritma Deflate
merupakan kebalikan dari proses encodingnya.
Langkah pertama adalah melakukan proses
decoding dengan menggunakan Algoritma
Huffman. Kemudian langkah kedua adalah
mengambil hasil dari proses decoding dengan
menggunakan Algoritma Huffman dan
melakukan proses decoding kembali dengan
menggunakan Algoritma LZ77.
3. HASIL DAN PEMBAHASAN
Hasil pengujian sistem dapat dilihat
pada perubahan ukuran file sebelum
dikompresi dan sesudah dikompresi, apakah
sama atau terjadi perubahan ukuran file pada
saat dikompresi. Dan perubahan spesifikasi
yang terjadi pada file wav dan mp3 ketika
sebelum dan sesudah dikompresi dengan
metodeDeflateyang mana terdapat waktu
terbaik hasil kompresi dan rasio kompresi
antara file wav dan mp3
Skenario percobaan ini dilakukan pada 5
sampling rate yang berbeda. Yakni sampling
rate 8.000 Hz, 11.025 Hz, 22.050 Hz, 44.100
Hz, dan 48.000 Hz. Masing-masing skenario
sampling rate akan menguji 5 file wav dan 5
file mp3. Tujuan percobaan ini dilakukan
untuk mengetahui perbedaan rasio kompresi
masing-masing sampling rate antara file wav
dan mp3. Berikut adalah tabel perbedaan
antara file wav dan mp3 sebelum dikompresi
dengan file wav dan mp3 sesudah dikompresi.
3.1
Perbandingan Kecepatan kompresi File
Wav dan Mp3.
1. Sampling rate 8.000 Hz.
Gambar 5 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
2. Sampling rate 11.025 Hz.
Gambar 6 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
3. Sampling rate 22.050 Hz.
Gambar 3.3 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
a. Encoding
Proses encoding dari Algoritma Deflate ini
dilakukan pada dua tahap. Tahap pertama
adalah melakukan proses pembuatan blok-blok
atau
penyingkatan
karakter
dengan
menggunakan Algoritma LZ77. Tahap kedua
adalah mengambil hasil penyingkatan karakter
dari algoritma LZ77 dan melakukan proses
kompresi dengan menggunakan Huffman Tree
terhadap karakter tersebut. Hasil dari proses
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
215
5. Sampling rate 48.000 Hz.
Gambar 9 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
Gambar 5 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (8.000 Hz).
Gambar 9 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (48.000 Hz).
3.2
Gambar 6 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (11.025 Hz)
Gambar 7 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (22.050 Hz)
4. Sampling rate 44.100 Hz.
Gambar 8 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
Gambar 8 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (44.100 Hz).
Perbandingan Rasio Kompresi File Wav
dan Mp3.
1. Sampling rate 8.000 Hz.
Gambar 10 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 8.000 Hz.
Gambar 10 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (8.000 Hz)
2. Sampling rate 11.025 Hz.
Gambar 11 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 11.025 Hz.
Gambar 11 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (11.025 Hz)
Title of manuscript is short and clear, implies research results (First Author)
216
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
3. Sampling rate 22.050 Hz.
Gambar 12 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 22.050 Hz.
Gambar 12 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (22.050 Hz)
rate dan perbandingan kecepatan kompresi 5
sample rate.
Gambar 15 Grafik Perbandingan
Kompresi 5 Sample Rate
Rasio
4. Sampling rate 44.100 Hz.
Gambar 13 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 44.100 Hz.
Gambar 16 Grafik Perbandingan Kecepatan
Kompresi 5 Sample Rate
Gambar 13 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (44.100 Hz)
Sampling rate 48.000 Hz.
Gambar 14 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 48.000 Hz.
5.
Gambar 14 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (48.000 Hz)
3.3
Grafik Perbandingan Rasio Kompresi
dan Kecepatan Kompresi 5 Sample Rate.
Gambar 15 dan 16 menunjukkan
perbandingan antara rasio kompresi 5 sample
3.4
Analisis Pengujian
Dari beberapa file yang telah diuji
kedalam sistem dapat disimpulkan bahwa,file
dengan pengujian waktu tercepat terjadi pada
file mp3 di sample rate 11.025 Hz dimana
waktu terbaik pengujian adalah dengan ratarata187milisecond. Sedangkan waktu terlama
saat pengujian terjadi pada pengujian file wav
di sample rate 48.000 Hz yaitu dengan waktu
kompresi dengan rata-rata 4328 milisecond,
hal ini membuktikan bahwa semakin tinggi
ukuran file akan memerlukan waktu yang
banyak untuk melakukan proses kompresi.
Selain itu dalam pengujian sistem juga
di temukan bahwafile wav dengan 5 sample
rate rata-rata rasio kompresinya lebih tinggi
dibandingkan dengan file mp3 yang rata-rata
rasio kompresinya rendah.Hal tersebut
terjadikarena file wav merupakan file audio
yang belum terkompres, sedangkan file mp3
merupakan file audio yang sudah terkompres
(lossy). Rasio kompresi terbaik terdapat pada
pengujian file wav dengan sample rate 44.100
Hz, yaitu dengan rasio sebesar 39,12% dan
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
rasio terkecil pada pengujian filemp3 di
sample rate 48.000 Hz dengan rasio 1,9%.
Penelitian
sebelumnya
mengenai
kompresi fileaudio wav dan mp3 yang
berjudul Analisis dan Implementasi Kompresi
File Audio Dengan Menggunakan Algoritma
Run Length Encoding (RLE) (Rahandi, 2013),
minimum rasio kompresi untuk file wav yaitu
13,83% dan file mp3 yaitu 0,46%. Jika
dibandingkan
penelitian
ini
dengan
menggunakan Algoritma Deflate maka bisa
217
disimpulkan bahwa kompresi Algoritma
Deflate lebih baik dan dinyatakan sukses
untuk mengkompres fileaudio wav dan mp3.
Hal ini dibuktikan dengan rasio kompresi file
wav yaitu 39,12% dan file mp3 yaitu 1,9%.
Dan untuk membuktikan kualitas awal audio
dan kualitas audio sesudah didekompresi
apakah kualitasnya masih sama atau tidak
maka akan dibuktikan dengan menggunakan
aplikasi Audacity 2.1.0 dan hasilnya
ditunjukkan pada Gambar 17.
Gambar 17 Perbandingan kualitas awal audio dan sesudah didekompresi
Keterangan :
A. Data awal file audio wav sebelum
dikompresi.
B. Data
file
audio
wav
sesudah
didekompresi.
Dari Gambar 17 tersebut dapat dilihat
bahwa data awal file audio dan sesudah
didekompresi ternyata kualitasnya masih sama
dan tidak ada data yang berubah sedikitpun
karena aplikasi kompresi ini menggunakan
Algoritma Deflate yang dimana Algoritma
Deflate merupakan kompresi data tipe lossless.
2.
3.
4. KESIMPULAN
Berdasarkan pengujian dan hasil
penelitian yang dilakukan terhadap aplikasi
kompresi file audio dengan Algoritma Deflate,
maka dapat disimpulkan:
1. Algoritma
Deflate
dapat
diimplementasikan pada proses kompresi
4.
dan dekompresi file audio berekstensi
*.wav dan *.mp3.
Kecepatan proses kompresi file mp3 lebih
cepat dibandingkan dengan file wav,
dimana waktu tercepat terjadi pada file
mp3 di sample rate 11.025 hz adalah
dengan rata-rata187milisecond dan waktu
terlama terjadi pada file wav di sample
rate 48.000 hz yaitu dengan rata-rata
4328 milisecond.
Rasio kompresi file wav lebih tinggi
dibandingkan dengan file mp3, dimana
rasio kompresi tertinggi terdapat pada file
wav dengan sample rate 44.100 hz, yaitu
dengan rata-rata rasio sebesar 39,12%
dan rasio terkecil pada filemp3 di sample
rate 48.000 hz dengan rata-rata rasio
1,9%.
Algoritma Deflate optimal dalam
melakukan kompresi file wav dengan
sample rate 8.000 hz dengan rata-rata
rasio 32,60%, 44.100 hz dengan rata-rata
rasio 39,12% dan 48.000 hz dengan ratarata rasio 36,45%.
Title of manuscript is short and clear, implies research results (First Author)
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
218
5.
Aplikasi kompresi ini menghasilkan file
audiodengan format *.def dan *.deff yang
dapat dijalankan setelah didekompresi
terlebih dahulu. Hal tersebut dikarenakan
terjadi perubahan struktur pada file wav
dan mp3 setelah melewati proses
kompresi.
[5]
Nugraha, C. P. (2014). Perbandingan
Metode LZ77, Metode Huffman dan
Metode Deflate Terhadap Kompresi
DataTeks, Skripsi, Fakultas Teknologi
Informasi, Universitas Kristen Duta
Wacana, Yogyakarta.
[6]
Salomon,
D.
(2007).
Data
Compression The Complete Reference
4th
Edition,
Springer-Verlag, London.
[7]
Sayood,
K.
(2003),
Lossless
Compression Handbook, Academic
Press, California.
5. SARAN
Berikut adalah saran yang dapat penulis
berikan untuk pengembangan terhadap
penelitian Tugas Akhir ini :
1. Dilakukan penelitian lebih lanjut untuk
membandingkan antara kompresi Deflate
dengan metode kompresi yang lain
sehingga akan diperoleh sebuah metode
kompresi yang benar-benar memiliki
kinerja optimal dalam melakukan
kompresi.
2. Agar
Algoritma
Deflate
dapat
diimplementasikan untuk proses kompresi
file audio berekstensi lainnya seperti
*.oog, *.m4a, dan pada file lainnya seperti
file citra dan file teks maupun video.
DAFTAR PUSTAKA
[1]
Adiarnasa,
R.
(2011). Aplikasi
Kompresi Data Dengan Format
Berkas ZIP Menggunakan Metode
Deflate, Doctoral dissertation, STMIK
AKAKOM, Yogyakarta.
[2]
Anton., (2009). Kompresi dan Teks,
Fakultas
Teknik
Informatika,
Universitas Kristen Duta Wacana,
http://lecturer.ukdw.ac.id/anton/downl
oad/multimedia6.pdf, diakses : 23
Agustus 2016.
[3]
Fitriansah, A. (2006). Analisis Kinerja
Algoritma Kompresi LZW, Huffman
dan Deflate Pada Berbagai Jenis File,
Skripsi, Fakultas Teknik Elektro,
Universitas Telkom, Bandung.
[4]
Lubis, N. F. (2012), Penggunaan
Pohon Huffman Pada Algoritma
Deflate, Sekolah Teknik Elektro
&Informatika, Institut Teknologi
Bandung, Bandung.
IJCCS Vol. x, No. x, July 201x : first_page – end_page
ISSN : 2502-8928 (Online)
209
APLIKASI KOMPRESI FILE AUDIO
MENGGUNAKAN ALGORITMA DEFLATE
Jelyzer Patanan*1, Sutardi2, Rizal Adi Saputra3
Jurusan Teknik Informatika, Fakultas Teknik, Universitas Halu Oleo, Kendari
e-mail : *[email protected],[email protected], [email protected]
*1,2,3
Abstrak
Seiring dengan semakin berkembangnya bentuk data yang diolah melalui perangkat komputer,
maka semakin besar pula ukuran dari data yang diolah tersebut. Data yang berukuran besar akan
sangat menyita ruang penyimpanan yang dimiliki, serta akan sangat memakan waktu jika
dipertukarkan dengan pengguna lainnya dalam jaringan komputer. Untuk itu perlu dilakukan
pemampatan data atau kompresi data untuk bisa meminimalkan ukuran dari data yang akan
digunakan.
Pada penelitian ini dilakukan untuk membandingkan rasio kompresi dan waktu kompresi file
wav dan mp3. Ada 2 file yang diujikan, yaitu file audio berekstensi *.wav dan *.mp3. Pengujian
aplikasi kompresi ini dilakukan dengan menguji file yang mempunyai ukuran berbeda-beda dengan 5
sample rate berbeda yaitu 8.000 Hz, 11.025 Hz, 22.050 Hz, 44.100 Hz dan 48.000 Hz.
Hasil pengujian diperoleh, rata-rata rasio kompresi terbaik terdapat pada pengujian file wav
dengan sample rate 44.100 Hz yaitu dengan rata-rata rasio sebesar 39,12 % dan rasio terkecil pada
pengujian file mp3 dengan sample rate 48.000 Hz dengan rata-rata rasio 1,9 %. File dengan
pengujian waktu tercepat terjadi pada file mp3 di sample rate 11.025 Hz dimana waktu terbaik
pengujian dengan rata-rata 187 milisecond. Sedangkan waktu terlama saat pengujian terjadi pada
pengujian file wav di sample rate 48.000 Hz dengan waktu kompresi rata-rata 4328 milisecond.File
audio dengan ukuran yang besar membutuhkan waktu lebih lama dalam melakukan proses kompresi.
Kata kunci—Audio, Kompresi, Dekompresi, Algoritma Deflate, Lossless, WAV, MP3.
Abstract
Along with the growing form of data processed by using computer, the size of the data itself are
getting bigger. Large data will greatly take more storage space and will take longer time in the data
exchange process with other users. Based on the given fact, the author thinks that collecting and
compressing those data in order to reduce its size will become a very good solution.
This study was conducted to compare the compression ratio and compression time between wav
and mp3 files. In this study, the author using *.wav and *mp3 files as the samples. In this study, the
author tested five different samples (in size) by using five sample rate : 8000 Hz, 11.025 Hz, 22.050
Hz, 44.100 Hz and 48.000 Hz.
Based on the test results, the author obtained the highest average value of compression ratio
lies in the .wav file with 44.100 Hz sample rate(average ratio 39,12%) whereas the lowest one lies in
the .mp3 file with 48.000 Hz sample rate (average ratio 1,9%). Mp3 file with 11.025 Hz sample rate
has the fastest testing time with average time 187 milisecond whereas .mp3 file with 48.000 Hz takes
more time (longest time) with average time 4328 milisecond. The larger the file, the longer the
compression process.
Keywords— Audio, Compression, Decompression, Deflate Algorithm, Losless, WAV, MP3
Received June 1st ,2012; Revised June 25th, 2012; Accepted July 10th, 2012
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
210
1. PENDAHULUAN
P
emanfaatan teknologi sebagai bagian
kehidupan dalam dasawarsa terakhir
berkembang dengan pesat. Hal tersebut
berpengaruh kepada meningkatnya kebutuhan
akan media penyimpanan data. Data berupa
file teks, gambar, suara, video ataupun file
yang
mempunyai
fungsi
tertentu
membutuhkan lokasi sebagai wadah yang
dapat dihitung dalam satuan byte. Masalah
dalam biaya penyimpanan, biaya dan waktu
pentransmisian data mengharuskan adanya
suatu pemecahan[1].
File audiodigital memiliki ukuran (size)
yang lebih besar dibandingkan dengan file
teks. Jadi untuk mengurangi ukurannya dapat
dilakukan
dengan
cara
kompresi.
Fileaudio dengan format WAV memiliki data
yang tidak terkompres sehingga seluruh
sampelaudiodisimpan
semuanya
diharddisk. Fileaudioini
jarang
sekali
digunakan di internet karena ukurannya yang
relatif besar dengan batasan maksimal untuk
file WAV adalah 2GB. Sedangkan, Sebuah file
MP3 mempunyai bit rates mulai dari yang
rendah yaitu 32 kbits/detik hingga 320
kbits/detik. Format File MP3 merupakan yang
paling terkenal di kalangan umum, karena
ukuran file nya yang kecil tapi dengan kualitas
suara yang masih terjaga dengan baik. Selain
itu, format file MP3 banyak didukung
pemutar-pemutar musik yang banyak beredar
di pasaran, sehingga MP3 lebih dikenal dan
sering digunakan[2].
Kompresi data adalah proses yang
mengkonversi sebuah masukan berupa aliran
data (the source atau data asli mentah) menjadi
suatu aliran data lain (the output, aliran bit
atau aliran sudah dikompres) yang memiliki
ukuran lebih kecil. Terdapat dua golongan
besar pada teknik kompresi ketika berhadapan
dengan kemungkinan merekonstruksi kembali
data yang telah dikompres menjadi data
original,
yaitu
Lossless
dan
LossyCompression. Pada penelitian ini akan
digunakan kompresi tipe lossless, hal ini
karena lossless compression memungkinkan
rekonstruksi data kembali sama persis dengan
data original dengan cara mendekompresinya
dan tidak ada kerusakan pada data.Berbeda
dengan tipe lossycompression, data yang
diperoleh akan berbeda dari data yang aslinya
karena tipe lossy membuang sebagian bit
dalam data[3].
Algoritma yang termasuk golongan
lossless adalah Huffman, varian Lempel-Ziv
(LZ), Deflate, Arithmetic, Run Length
Encoding (RLE) dan lain-lain. Berbagai jenis
algoritma tersebut berkembang dengan
pendekatan, kelebihan juga kekurangan yang
berbeda satu sama lain. Banyak pihak berusaha
mengembangkan algoritma baru dengan
didasari algoritma yang sudah ada atau
berusaha mengkombinasikan dua atau lebih
algoritma. Dalam ruang lingkup metode
kompresi General-purpose, Algoritma Deflate
hadir dengan mengkombinasikan Algoritma
LZ77 dan Huffman. Algoritma Deflate
mengambil berbagai kelebihan dari masingmasing metode, sliding-window pada metode
LZ77 dan prefix-tree pada metode Huffman.
Hal ini menjadikan performa Algoritma
Deflate layak dibandingkan dengan berbagai
metode kompresi terbaik[4].
2. METODE PENELITIAN
2.1
Audio
Audio adalah fenomena fisik yang
dihasilkan oleh getaran suatu benda yang
berupa sinyal analog dengan amplitudo yang
berubah secara kontinyu terhadap waktu yang
disebut frekuensi. Selama
bergetar,
perbedaan
tekanan
terjadi
di udara
sekitarnya. Pola osilasi yang terjadi dinamakan
sebagai gelombang. Gelombang mempunyai
pola sama yang berulang pada interval
tertentu, yang disebut sebagai periode [5].
Sebuah format berkas audio adalah
format berkas untuk menyimpan data audio
digital pada sistem komputer. Data inidapat
disimpan tidak dikompresi, atau kompresi
untuk mengurangi ukuran berkas.
2.2
Format Audio WAVe form audio (*.wav)
WAV adalah singkatan dari istilah
dalam bahasa Inggris WAVeform audio format
merupakan standar format berkas audio yang
dikembangkan oleh Microsoft dan IBM. WAV
merupakan standar format container file yang
digunakan oleh windows. WAV umumnya
digunakan untuk menyimpan audio tak
termampatkan, berkas suara berkualitas CD,
yang berukuran besar (sekitar 10 MB per
menit). berkas WAV juga dapat berisi data
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
terkodekan dengan beraneka ragam codec
untuk mengurangi ukuran file.
File WAV menggunakan struktur
standar RIFF dengan mengelompokan isi file
ke dalam bagian-bagian seperti format WAV
dan data digital audio. Setiap bagian memiliki
header-nya sendiri-sendiri beserta dengan
ukurannya.
Struktur
RIFF
(Resource
Interchange File Format) ini merupakan
struktur yang biasa digunakan untuk data
multimedia dalam Windows. Struktur ini
mengatur data dalam file ke dalam bagianbagian yang masing-masing memiliki header
dan ukurannya sendiri dan disebut sebagai
chunk. Struktur ini memungkinkan bagi
program bila tidak mengenali bagian tertentu
untuk melompati bagian tersebut dan terus
memproses bagian yang dikenal. Data dari
suatu bagian bisa memiliki sub-bagian dan
seluruh data dalam file berstruktur RIFF selalu
merupakan sub bagian dari suatu bagian yang
memiliki header “RIFF”. Gambar 1
menunjukkan struktur file audio wav [5].
211
The “fmt” sub-Chunk menggambarkan
format informasi suara di dalam subChunk.
SubCunk1ID terdiri dari kata “fmt”,
subChunk1size ukuranya sebesar data format
wav “16 byte” ditambah dengan ekstra format
byte yang diperlukan untuk format wav
khusus, Audio Format bernilai pcm = 1(linear
quantitation)
jika
nilai
lebih
dari
1mengindikasikan
file
wav
kompresi,
NumChanel menunjukkan jumlah chanel yang
digunakan
dalam
file,
Samplerate
menunjukkan jumlah samplerate dalam file,
Byterate mengindikasikan berapa besar byte
data wav harus di-stream ke converter digital
audio tiap detik sewaktu file dimainkan,
Blockalign menunjukkan jumlah byte tiap
potong sample dan Bitpersample menunjukkan
jumlah
bit
yang
digunakan
untuk
mendefinisikan tiap sample.
The “data” SubChunk2ID berisi ukuran
dari informasi suara dan terdiri dari data suara
mentah. SubChunk2ID terdiri dari kata “data”,
SubChunk2Size menunjukkan besar ukuran
data dan data berisi data audio sebenarnya [5].
2.3
Gambar 1 Strukur Wav
The
“RIFF”
Chunk
descriptor
menunjukkan file format wav yang terdiri dari
2 subChunk yaitu “fmt” dan “data”. ChunkID
menunjukkan terdiri dari kata “RIFF” dalam
bentuk ASCII, Chunk size menunjukkan
besarnya ukuran file dalam byte dikurangi 8
byte untuk 2 field yang tidk termaksut dalam
hitungan, yaitu ChunkID dan Chunk size dan
format terdiri dari kata “wav” dalam bentuk
ASCII.
Algoritma LZ77
Algoritma LZ77 (Lempel Ziv 1977)
merupakan algoritma kompresi yang bersifat
Loseless, yang dikembangkan oleh Abraham
Lempel dan Jacob Ziv pada tahun 1977.
MetodeKompresi LZ77 merupakan metode
kompresi Sliding Windows Compression,
struktur data yang berupa text windows akan
dibagi menjadi 2 bagian, terdiri dari teks yang
sudah dikodekan (history buffer) dan bagian
lain dari teks yang akan dikodekan (lookahead
buffer). Ukuran buffer dari masing-masing
ditetapkan sebelumnya dalam implementasi,
history buffer akanmemiliki panjang hingga
beberapa ribu byte dan lookahead buffer
memiliki panjang hanya puluhan byte [6].
Dalam melakukan kompresi LZ77, ada
beberapa tahapan yang harus dilakukan. Pada
awalnya harus ditentukan dulu besar history
buffer dan besar lookahead buffer. Kemudian
isikan barisan karakter inputan ke dalam ruang
yang tersedia di lookahead buffer. Apabila
history buffer masih kosong atau tidak ada
karakter pola yang sama di dalam lookahead
buffer dibandingkan dengan history buffer,
maka keluarkan token dengan format offset
bernilai 0, length match bernilai 0, lalu diikuti
1 karakter missmatch di awal lookahead
buffer. Namun apabila ditemukan pola maka
Title of manuscript is short and clear, implies research results (First Author)
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
212
keluarkan token dengan format offset bernilai
jarak dari historybuffer ditemukannya pola,
length match bernilai panjang pola yang
ditemukan sama, dankarakter missmatch diisi
1 karakter diluar dari pola yang ditemukan.
Kemudian potong karakter yang sudah diubah
menjadi token tersebut dari lookahead buffer
dan diisikan ke dalam historybuffer, yang
menandakan karakter tersebut telah diproses
kompresi. Isi lookahead buffer hinggapenuh
dari barisan inputan yang tersisa, dan lakukan
proses pencocokan pola karakter seperti tadi
hingga ditemukan end of file. Apabila sudah
ditemukan end of file dan lookahead buffer
sudah tidak terdapat karakter tersisa, maka
akan didapatkan token hasil kompresi LZ77
[6].
Contoh penerapan kompresi pada LZ77
tepatnya tentang pembuatan token akan
dijelaskan di sini. Diketahui terdapat barisan
data
string
sebagai
berikut,“Data_ini_representasi_input_dari_per
geseran_input_pertama_kali_dilakukan”.
Misalkan di barisan tersebut telah dilakukan
proses
kompresi
hingga
string
“Data_ini_representasi_input_dari_pergeseran
”. Dengan kata lain, barisan string tersebut
berada di history buffer, barisan sisanya akan
berada di lookahead buffer dan data inputan.
Mari perhatikan Gambar 2, yang merupakan
tampilan dari jendela LZ77 yang diterapkan.
Gambar 2 Jendela Kompresi LZ77
Dari Gambar 2 tepatnya pada lookahead
buffer, dapat dilihat terdapat pola kesamaan
dengan history buffer sepanjang 7 karakter
yaitu barisan string “_input_”. Maka keluarkan
nilai token dari pola yang ditemukan tersebut.
Formatnya akan dituliskan seperti ini (22,7,p)
yang berasal dari 22 yang merupakan nilai
offset, 7 yang merupakan panjang pola, dan p
adalah karakter missmatch. Kemudian
dilakukan pergeseran jendela hingga menjadi
terlihat seperti pada Gambar 3
Dari Gambar 3 terlihat history buffer
dan lookahead buffer bergeser sepanjang token
pola yang ditemukan pada Gambar 3. Pada
lookahead buffer juga diisi kembali sebanyak
ruang yang tersedia, dengan mengambil data
dari sisa inputan. Setelah itu dilakukan proses
pembentukan token lagi, yang diketahui pada
Gambar 3 akan menghasilkan token (17,2,t).
Lalu lakukan pergeseran dan pembentukan
token lagi hingga lookahead buffer berisi end
of file [6].
2.4
Algoritma Huffman
Algoritma Huffman pada awalnya
diperkenalkan oleh David Huffman pada tahun
1952, yang mana metode ini merupakan
metode yang paling terkenal di dalam
kompresi teks. Metode Kompresi Huffman
melakukan penganalisaan terlebih dahulu
terhadap string masukan yang akan diproses
kompresi, selanjutnya nanti akan dibuat pohon
Huffman yang merupakan pohon biner dengan
kode pengganti yang optimal untuk simbolsimbol dengan probabilitas kemunculan yang
lebih tinggi [7].
Tahap kompresi Algoritma Huffman
dimulai dengan melakukan pembentukan
pohon biner Huffman. Adapun langkah
pembentukkan pohon Huffman sebagai
berikut:
1. Membaca seluruh karakter unik di dalam
barisan inputan dan hitung frekuensi
kemunculannya.
2. Mengurutkan
karakter
berdasarkan
frekuensi yang terkecil hingga terbesar.
3. Mengambil 2 karakter yang memiliki
probabilitas frekuensi terkecil dan jadikan
ke dalam 1 node. Dalam node tersebut
nilai probabilitas frekuensi dari kedua
karakter akan dijumlahkan.
4. Mengulangi pengambilan 2 karakter
seperti pada poin 3, hingga seluruh
karakter dikenai proses tersebut dan
menjadi pohon biner.
5. Memberikan nilai setiap simpul kiri pohon
binerdengan 0 dan setiap simpul kanan
dengan 1.
6. Proses pembentukan pohon Huffman
selesai dan untuk melakukan pembacaan
dilakukan dari root atau puncak pohon
hingga menemukan karakter yang dicari di
daun.
Gambar 3 Pergeseran Jendela Kompresi LZ77
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
Contoh penerapan Algoritma Huffman
adalah sebagai berikut, misal terdapat barisan
karakter “abibadibib”. Diketahui bahwa setiap
karakter di dalam komputer dikodekan dalam
1 Byte atau sebesar 8 bit. Barisan karakter
“abibadibib” tersebut terdapat 10 karakter
maka dapat dihitung menjadi: 10 x 8 bit = 80
bit. Barisan karakter tersebut dapat dikatakan
membutuhkan ruang penyimpanan sebesar 80
bit atau setara dengan 8 Byte. Karakterkarakter “abibadibib” tersebut memiliki
rincian kode bit yang dikenali komputer
ditunjukkan pada Tabel 1.
Tabel
1
Kode
“abibadibib”
Karakter
A
B
I
B
A
D
I
B
I
B
ASCII
Representasi
Kode Representasi
01100001
01100010
01101001
01100010
01100001
01100100
01101001
01100010
01101001
01100010
Setelah mengetahui pemborosan bit
tersebut, maka diterapkan kompresi Huffman
pada barisan tersebut. Maka langkah yang
perlu dilakukan adalah menerapkan langkahlangkah kompresi yaitu pembentukan pohon
Huffman sebagai berikut :
1. Cek karakter unik dalam barisan dan
hitung frekuensi kemunculannya. Urutkan
dari frekuensi yang terkecil. Diketahui [d]
memiliki 1 kemunculan, [a] memiliki 2
kemunculan, [i] memiliki 3 kemunculan,
dan [b] memiliki 4 kemunculan.
2. Ambil 2 node terkecil yakni karakter [d]
dan [a], gabung jadi 1 node [da].
3. Ambil 2 node terkecil yakni [da] dan [i],
gabung jadi 1 node [dai].
4. Ambil 2 node terkecil yakni [dai] dan [b],
gabung jadi 1 node [daib].
5. Beri nilai tiap simpul kiri dengan 0 dan
tiap simpul kanan dengan 1.
Langkah-langkah pembentukan pohon
Huffman yang diterapkan pada barisan
“abibadibib” dapat dilihat pada Gambar 4
213
Gambar 4 Pembentukan Pohon Huffman
barisan “abibadibib”.
Dengan menerapkan pohon Huffman
akan menghasilkan penghematan terhadap bit
yang seharusnya dimiliki tiap karakter yang
ada pada barisan “abibadibib”. Hal tersebut
ditunjukkan pada Tabel 2.
Tabel 2 KodeHuffman untuk “abibadibib”
Karakter
a
b
d
i
Kode Representasi
001
1
000
01
Dengan melakukan pengkodean ulang
terhadap barisan karakter “abibadibib” maka
akan
didapatkan
barisan
bit:
0011011001000011011. Diketahui bahwa
karakter [b] yang pada pengkodean ASCII
membutuhkan ruang sebesar 8 bit sekarang
hanya membutuhkan 1 bit, maka panjang bit
karakter [b] yang terdapat di “abibadibib”
awalnya sebesar 4*8bit = 32bit menjadi hanya
sebesar 4*1bit = 4 bit saja. Baris karakter
“abibadibib” yang mulanya membutuhkan
ruang sebesar 80 bit sekarang hanya
membutuhkan sebesar 19 bit [7].
2.5
Algoritma Deflate
Algoritma Deflate merupakan algoritma
persilangan antara Algoritma Huffman dan
Algoritma LZ77. Dalam proses kompresinya,
Algoritma Deflate ini terlebih dahulu
melakukan proses pengelompokan karakter
dengan menggunakan Algoritma LZ77.
Kemudian hasil dari pengelompokan karakter
tersebut dikompresi lagi dengan menggunakan
Algoritma
Huffman
(Huffman
Tree).
Algoritma Deflate ini bersifat loseless
Compression. Hal ini karena Algoritma
Deflate ini menggabungkan dua algoritma
kompresi yang bersifat loseless.
Title of manuscript is short and clear, implies research results (First Author)
214
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
Penggunaan kompresi LZ77 sebelumnya
melihat teks sebagai sebuah kamus. Kompresi
ini menggantikan frasa variable-length dalam
teks
input
dengan
pointer
dengan nilai tetap kedalam kamus untuk
mencapai
kompresi.
Jumlah
yang
dikompresitergantung dari seberapa panjang
frasa yang ada dalam kamus, seberapa besar
windowdalam teks yang terlihat, dan entropi
dari teks asal sesuai dengan model LZ77.
Struktur data utama dalam LZ77 adalah
sebuah window teks, dipisahkan ke dalam dua
bagian. Bagian pertama berisikan sebuah blok
dari teks yang baru dikodekan. Bagian
yang kedua biasanya yang lebih kecil adalah
look-ahead
buffer.
Look-ahead
buffer
berisi karakter-karakter yang dibaca dari
stream input namun belum dikodekan.
Ukuran normal dari window teks adalah
beberapa ribu karakter. Look-ahead buffer
umumnya lebih kecil, mungkin sepuluh
sampai seratus karakter saja. Algoritma ini
mencoba untuk mencocokan isi dari lookahead buffer menjadi sebuah String di
dalam kamus.
Algoritma dekompresi untuk LZ77
bahkan lebih sederhana, karena tidak perlu
melakukan perbandingan. Algoritma ini
membaca sebuah token, output dari frasa
yang bersangkutan, output dari karakter itu,
kemudian geser dan ulangi. Algoritma ini
tetap menjaga window-nya, tapi tidak bekerja
dengan pembandingan String.
Kode Huffman, dinamai atas penemunya
yaitu D. A. Huffman, menghasilkan
jumlah
minimum
dari
kemungkinan
kerangkapan dari sebuat set variable-length
code dengan ukuran yang tetap. Ini tidak
berarti bahwa algoritma Huffman adalah
sebuah metode pengkodean yang optimal,
namun dapat diartikan bahwa algoritma ini
menghasilkan pendekatan terbaik untuk
simbol-simbol kode ketika menggunakan
kode dengan besar yang tetap.
encoding Algoritma Deflate ini adalah berupa
karakter yang telah disingkat yang merupakan
hasil dari encoding Algoritma LZ77 dan
memiliki kode biner yang lebih pendek yang
merupakan hasil dari encoding Algoritma
Huffman.
b. Decoding
Proses decoding pada Algoritma Deflate
merupakan kebalikan dari proses encodingnya.
Langkah pertama adalah melakukan proses
decoding dengan menggunakan Algoritma
Huffman. Kemudian langkah kedua adalah
mengambil hasil dari proses decoding dengan
menggunakan Algoritma Huffman dan
melakukan proses decoding kembali dengan
menggunakan Algoritma LZ77.
3. HASIL DAN PEMBAHASAN
Hasil pengujian sistem dapat dilihat
pada perubahan ukuran file sebelum
dikompresi dan sesudah dikompresi, apakah
sama atau terjadi perubahan ukuran file pada
saat dikompresi. Dan perubahan spesifikasi
yang terjadi pada file wav dan mp3 ketika
sebelum dan sesudah dikompresi dengan
metodeDeflateyang mana terdapat waktu
terbaik hasil kompresi dan rasio kompresi
antara file wav dan mp3
Skenario percobaan ini dilakukan pada 5
sampling rate yang berbeda. Yakni sampling
rate 8.000 Hz, 11.025 Hz, 22.050 Hz, 44.100
Hz, dan 48.000 Hz. Masing-masing skenario
sampling rate akan menguji 5 file wav dan 5
file mp3. Tujuan percobaan ini dilakukan
untuk mengetahui perbedaan rasio kompresi
masing-masing sampling rate antara file wav
dan mp3. Berikut adalah tabel perbedaan
antara file wav dan mp3 sebelum dikompresi
dengan file wav dan mp3 sesudah dikompresi.
3.1
Perbandingan Kecepatan kompresi File
Wav dan Mp3.
1. Sampling rate 8.000 Hz.
Gambar 5 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
2. Sampling rate 11.025 Hz.
Gambar 6 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
3. Sampling rate 22.050 Hz.
Gambar 3.3 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
a. Encoding
Proses encoding dari Algoritma Deflate ini
dilakukan pada dua tahap. Tahap pertama
adalah melakukan proses pembuatan blok-blok
atau
penyingkatan
karakter
dengan
menggunakan Algoritma LZ77. Tahap kedua
adalah mengambil hasil penyingkatan karakter
dari algoritma LZ77 dan melakukan proses
kompresi dengan menggunakan Huffman Tree
terhadap karakter tersebut. Hasil dari proses
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
215
5. Sampling rate 48.000 Hz.
Gambar 9 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
Gambar 5 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (8.000 Hz).
Gambar 9 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (48.000 Hz).
3.2
Gambar 6 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (11.025 Hz)
Gambar 7 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (22.050 Hz)
4. Sampling rate 44.100 Hz.
Gambar 8 menunjukkan perbandingan
antara kecepatan kompresi file wav dan mp3.
Gambar 8 Grafik Perbandingan Kecepatan
kompresi file wav dan mp3 (44.100 Hz).
Perbandingan Rasio Kompresi File Wav
dan Mp3.
1. Sampling rate 8.000 Hz.
Gambar 10 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 8.000 Hz.
Gambar 10 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (8.000 Hz)
2. Sampling rate 11.025 Hz.
Gambar 11 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 11.025 Hz.
Gambar 11 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (11.025 Hz)
Title of manuscript is short and clear, implies research results (First Author)
216
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
3. Sampling rate 22.050 Hz.
Gambar 12 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 22.050 Hz.
Gambar 12 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (22.050 Hz)
rate dan perbandingan kecepatan kompresi 5
sample rate.
Gambar 15 Grafik Perbandingan
Kompresi 5 Sample Rate
Rasio
4. Sampling rate 44.100 Hz.
Gambar 13 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 44.100 Hz.
Gambar 16 Grafik Perbandingan Kecepatan
Kompresi 5 Sample Rate
Gambar 13 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (44.100 Hz)
Sampling rate 48.000 Hz.
Gambar 14 menunjukkan perbandingan
antara rasio kompresi file wav dan mp3 yang
di-input dengan sampling rate 48.000 Hz.
5.
Gambar 14 Grafik Perbandingan Rasio
kompresi File wav dan mp3 (48.000 Hz)
3.3
Grafik Perbandingan Rasio Kompresi
dan Kecepatan Kompresi 5 Sample Rate.
Gambar 15 dan 16 menunjukkan
perbandingan antara rasio kompresi 5 sample
3.4
Analisis Pengujian
Dari beberapa file yang telah diuji
kedalam sistem dapat disimpulkan bahwa,file
dengan pengujian waktu tercepat terjadi pada
file mp3 di sample rate 11.025 Hz dimana
waktu terbaik pengujian adalah dengan ratarata187milisecond. Sedangkan waktu terlama
saat pengujian terjadi pada pengujian file wav
di sample rate 48.000 Hz yaitu dengan waktu
kompresi dengan rata-rata 4328 milisecond,
hal ini membuktikan bahwa semakin tinggi
ukuran file akan memerlukan waktu yang
banyak untuk melakukan proses kompresi.
Selain itu dalam pengujian sistem juga
di temukan bahwafile wav dengan 5 sample
rate rata-rata rasio kompresinya lebih tinggi
dibandingkan dengan file mp3 yang rata-rata
rasio kompresinya rendah.Hal tersebut
terjadikarena file wav merupakan file audio
yang belum terkompres, sedangkan file mp3
merupakan file audio yang sudah terkompres
(lossy). Rasio kompresi terbaik terdapat pada
pengujian file wav dengan sample rate 44.100
Hz, yaitu dengan rasio sebesar 39,12% dan
IJCCS Vol. x, No. x, July 201x : first_page – end_page
Patanan, Sutardi, SaputraIJCCSISSN: 1978-1520
rasio terkecil pada pengujian filemp3 di
sample rate 48.000 Hz dengan rasio 1,9%.
Penelitian
sebelumnya
mengenai
kompresi fileaudio wav dan mp3 yang
berjudul Analisis dan Implementasi Kompresi
File Audio Dengan Menggunakan Algoritma
Run Length Encoding (RLE) (Rahandi, 2013),
minimum rasio kompresi untuk file wav yaitu
13,83% dan file mp3 yaitu 0,46%. Jika
dibandingkan
penelitian
ini
dengan
menggunakan Algoritma Deflate maka bisa
217
disimpulkan bahwa kompresi Algoritma
Deflate lebih baik dan dinyatakan sukses
untuk mengkompres fileaudio wav dan mp3.
Hal ini dibuktikan dengan rasio kompresi file
wav yaitu 39,12% dan file mp3 yaitu 1,9%.
Dan untuk membuktikan kualitas awal audio
dan kualitas audio sesudah didekompresi
apakah kualitasnya masih sama atau tidak
maka akan dibuktikan dengan menggunakan
aplikasi Audacity 2.1.0 dan hasilnya
ditunjukkan pada Gambar 17.
Gambar 17 Perbandingan kualitas awal audio dan sesudah didekompresi
Keterangan :
A. Data awal file audio wav sebelum
dikompresi.
B. Data
file
audio
wav
sesudah
didekompresi.
Dari Gambar 17 tersebut dapat dilihat
bahwa data awal file audio dan sesudah
didekompresi ternyata kualitasnya masih sama
dan tidak ada data yang berubah sedikitpun
karena aplikasi kompresi ini menggunakan
Algoritma Deflate yang dimana Algoritma
Deflate merupakan kompresi data tipe lossless.
2.
3.
4. KESIMPULAN
Berdasarkan pengujian dan hasil
penelitian yang dilakukan terhadap aplikasi
kompresi file audio dengan Algoritma Deflate,
maka dapat disimpulkan:
1. Algoritma
Deflate
dapat
diimplementasikan pada proses kompresi
4.
dan dekompresi file audio berekstensi
*.wav dan *.mp3.
Kecepatan proses kompresi file mp3 lebih
cepat dibandingkan dengan file wav,
dimana waktu tercepat terjadi pada file
mp3 di sample rate 11.025 hz adalah
dengan rata-rata187milisecond dan waktu
terlama terjadi pada file wav di sample
rate 48.000 hz yaitu dengan rata-rata
4328 milisecond.
Rasio kompresi file wav lebih tinggi
dibandingkan dengan file mp3, dimana
rasio kompresi tertinggi terdapat pada file
wav dengan sample rate 44.100 hz, yaitu
dengan rata-rata rasio sebesar 39,12%
dan rasio terkecil pada filemp3 di sample
rate 48.000 hz dengan rata-rata rasio
1,9%.
Algoritma Deflate optimal dalam
melakukan kompresi file wav dengan
sample rate 8.000 hz dengan rata-rata
rasio 32,60%, 44.100 hz dengan rata-rata
rasio 39,12% dan 48.000 hz dengan ratarata rasio 36,45%.
Title of manuscript is short and clear, implies research results (First Author)
Aplikasi Kompresi File Audio Menggunakan Algoritma Deflate…
218
5.
Aplikasi kompresi ini menghasilkan file
audiodengan format *.def dan *.deff yang
dapat dijalankan setelah didekompresi
terlebih dahulu. Hal tersebut dikarenakan
terjadi perubahan struktur pada file wav
dan mp3 setelah melewati proses
kompresi.
[5]
Nugraha, C. P. (2014). Perbandingan
Metode LZ77, Metode Huffman dan
Metode Deflate Terhadap Kompresi
DataTeks, Skripsi, Fakultas Teknologi
Informasi, Universitas Kristen Duta
Wacana, Yogyakarta.
[6]
Salomon,
D.
(2007).
Data
Compression The Complete Reference
4th
Edition,
Springer-Verlag, London.
[7]
Sayood,
K.
(2003),
Lossless
Compression Handbook, Academic
Press, California.
5. SARAN
Berikut adalah saran yang dapat penulis
berikan untuk pengembangan terhadap
penelitian Tugas Akhir ini :
1. Dilakukan penelitian lebih lanjut untuk
membandingkan antara kompresi Deflate
dengan metode kompresi yang lain
sehingga akan diperoleh sebuah metode
kompresi yang benar-benar memiliki
kinerja optimal dalam melakukan
kompresi.
2. Agar
Algoritma
Deflate
dapat
diimplementasikan untuk proses kompresi
file audio berekstensi lainnya seperti
*.oog, *.m4a, dan pada file lainnya seperti
file citra dan file teks maupun video.
DAFTAR PUSTAKA
[1]
Adiarnasa,
R.
(2011). Aplikasi
Kompresi Data Dengan Format
Berkas ZIP Menggunakan Metode
Deflate, Doctoral dissertation, STMIK
AKAKOM, Yogyakarta.
[2]
Anton., (2009). Kompresi dan Teks,
Fakultas
Teknik
Informatika,
Universitas Kristen Duta Wacana,
http://lecturer.ukdw.ac.id/anton/downl
oad/multimedia6.pdf, diakses : 23
Agustus 2016.
[3]
Fitriansah, A. (2006). Analisis Kinerja
Algoritma Kompresi LZW, Huffman
dan Deflate Pada Berbagai Jenis File,
Skripsi, Fakultas Teknik Elektro,
Universitas Telkom, Bandung.
[4]
Lubis, N. F. (2012), Penggunaan
Pohon Huffman Pada Algoritma
Deflate, Sekolah Teknik Elektro
&Informatika, Institut Teknologi
Bandung, Bandung.
IJCCS Vol. x, No. x, July 201x : first_page – end_page