Analisis Perbandingan Algoritma Huffman dan Run Length Encoding Pada Kompresi File Audio

BAB 2

LANDASAN TEORI

2.1. Kompresi File
Pada dasarnya semua data itu merupakan rangkaian bit 0 dan 1. Yang membedakan
antara suatu data tertentu dengan data yang lain adalah ukuran dari rangkaian bit dan
bagaimana 0 dan 1 itu ditempatkan dalam rangkaian bit tersebut. Misalnya data
berupa audio, dalam data audio suatu rangkaian bit tertentu mewakili satu nada.
Semakin kompleks suatu data, ukuran rangkaian bit yang diperlukan semakin panjang,
dengan demikian ukuran keseluruhan data juga semakin besar. Dalam penyimpanan
dan pengiriman data (transmisi), selain isi dari data tersebut parameter yang tidak
kalah pentingnya adalah ukurannya (size). Sering kali data yang disimpan dalam suatu
media penyimpanan berukuran sangat besar sehingga memerlukan tempat yang lebih
banyak dan tidak efisien. Apalagi bila data tersebut akan dikirim, semakin besar
ukurannya, waktu yang diperlukan untuk pengiriman akan lebih lama. Untuk itu,
diperlukan kompresi data (data compression) untuk memperkecil ukuran suatu data
tanpa merubah isi atau informasi yang terkandung dalam data tersebut (Munir, 2004).

Data tidak hanya disajikan dalam bentuk audio maupun video, tetapi juga
dapat berupa teks dan gambar. Keempat macam data tersebut sering disebut dengan

multimedia. Pada umumnya data digital membutuhkan memori yang besar, disisi lain
kebanyakan data misalnya gambar mengandung duplikasi. Duplikasi ini dapat berarti
dua hal yaitu pertama, besar kemungkinan suatu pixel dengan pixel lain tetangganya
memiliki intensitas yang sama, sehingga penyimpanan setiap pixel memboroskan
tempat. Kedua, gambar banyak mengandung bagian yang sama, sehingga bagian yang
sama ini tidak perlu dikodekan berulang kali. Saat ini, kebanyakan aplikasi
menginginkan representasi dengan memori yang lebih sedikit. Kompresi data (data

Universitas Sumatera Utara

7

compression) bertujuan meminimalkan kebutuhan memori untuk merepresentasikan
data digital. Prinsip umum yang digunakan pada proses kompresi adalah mengurangi
duplikasi data sehingga memori untuk merepresentasikan menjadi lebih sedikit dari
pada representasi data semula.

Data yang telah dikompresi dapat dikembalikan ke bentuk data semula
(dekompresi) dimana hal ini tergantung pada aplikasi software yang mendukung
kompresi tersebut. Ketika suatu aplikasi mampu menghilangkan atau mengkompresi

data yang tidak dibutuhkan maka aplikasi tersebut juga mampu mengembalikan data
yang dihilangkan tersebut sehingga menjadi data semula.

Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim atau yang
melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal
kompresi data. Pihak pengirim harus menggunakan algoritma kompresi data yang
sudah baku dan pihak penerima juga menggunakan teknik dekompresi data yang sama
dengan pengirim sehingga data yang diterima dapat dibaca/di-decode kembali dengan
benar.

2.2.

Jenis-Jenis Kompresi File

2.2.1. Lossy Compression
Kompresi Lossless memiliki batasan pada jumlah kompresi. Namun, dalam beberapa
situasi, kita bisa mengorbankan akurasi untuk meningkatkan tingkat kompresi.
Meskipun kita tidak mampu kehilangan informasi dalam kompresi teks, kita bisa
membelinya ketika kita mengompresi gambar, video, dan audio. Misalnya,
penglihatan manusia tidak dapat mendeteksi beberapa distorsi kecil yang dapat hasil

dari kompresi lossy dari suatu gambar (Munir, 2004).

2.2.2. Lossless compression
Dalam Lossless compresion, integritas data sangat terjaga karena algoritma kompresi
dan dekompresi invers tepat satu sama lain, tidak ada bagian dari data yang hilang

Universitas Sumatera Utara

8

dalam proses. Metode kompresi lossless biasanya digunakan ketika kita tidak ingin
kehilangan data apapun. Kompresi lossless juga diterapkan sebagai langkah terakhir
dalam beberapa prosedur kompresi lossy untuk mengurangi ukuran data. Empat
contoh metode kompresi lossless dalam bagian ini: Run Length Coding, Dictiinary
Coding, Huffman Coding, dan Arithmatic Coding (Munir, 2004).

2.3.

Jenis-Jenis File Audio


2.3.1. File *.wav
WAV adalah format audio standar Microsoft dan IBM untuk personal computer (PC),
biasanya menggunakan coding PCM (Pulse Code Modulation). WAV adalah data
tidak terkompres sehingga seluruh sampel audio disimpan semuanya di harddisk.
Software yang dapat menciptakan WAV dari analog sound misalnya adalah Windows
Sound Recorder. File audio ini jarang sekali digunakan di internet karena ukurannya
yang relatif besar dengan batasan maksimal untuk file WAV adalah 2 GB (Nugroho,
A. S & Wirayuda, 2013).

Parameter-parameter tersebut menyatakan setting yang

digunakan oleh

ADC

(Analog-to-Digital Converter) pada saat data audio direkam. Biasanya laju sampel
juga dinyatakan dengan satuan Hz atau kHz. Sebagai gambaran, data audio digital
yang tersimpan dalam CD audio memiliki karakteristik laju sampel 44100 Hz, 16 bit
per sampel, dan 2 kanal (stereo), yang berarti setiap satu detik suara tersusun dari
44100 sampel, dan setiap sampel tersimpan dalam data sebesar 16-bit atau 2 byte.

Laju sampel selalu dinyatakan untuk setiap satu kanal. Jadi misalkan suatu data audio
digital memiliki 2 kanal dengan laju sampel 8000 sampel/detik, maka sesungguhnya
di dalam setiap detiknya akan terdapat 16000 sampel (Nugroho, A. S & Wirayuda,
2013).

2.3.2. File *.mp3
MPEG (Moving Picture Expert Group)-1 audio layer III atau yang lebih dikenal
dengan mp3, adalah salah satu dari pengkodean dalam digital audio dan juga

Universitas Sumatera Utara

9

merupakan format kompresi audio yang memiliki sifat “menghilangkan”. Istilah
menghilangkan yang dimaksud adalah kompresi audio ke dalam format MP3
menghilangkan aspek-aspek yang tidak signifikan pada pendengaran manusia untuk
mengurangi besarnya file audio (Ruckert, 2005).

Kompresi yang dilakukan oleh mp3 seperti yang telah disebutkan diatas, tidak
mempertahankan bentuk asli dari sinyal input. Melainkan yang dilakukan adalah

menghilangkan suara-suara yang keberadaannya kurang atau tidak signifikan bagi
sistem pendengaran manusia. Proses yang dilakukan adalah menggunakan model dari
sistem pendengaran manusia dan menentukan bagian yang terdengar bagi sistem
pendengaran manusia. Setelah itu sinyal input yang memiliki domain waktu dibagi
menjadi blok-blok dan ditransformasi menjadi domain frekuensi. Kemudian model
dari sistem pendengaran manusia dibandingkan dengan sinyal input dan dilakukan
proses penyaringan yang menghasilkan sinyal dengan range frekuensi yang signifikan
bagi sistem pendengaran manusia. Proses diatas adalah proses konvolusi dua sinyal
yaitu sinyal input dan sinyal model sistem pendengaran manusia.

Langkah terakhir adalah kuantisasi data, dimana data yang terkumpul setelah
penyaringan akan dikumpulkan menjadi satu keluaran dan dilakukan pengkodean
dengan hasil akhir file dengan format mp3. Kepopuleran dari mp3 yang sampai saat
ini belum tersaingi disebabkan oleh beberapa hal. Pertama mp3 dapat didistribusikan
dengan mudah dan hampir tanpa biaya, walaupun sebenarnya hak paten dari mp3
telah dimiliki dan penyebaran mp3 seharusnya dikenai biaya. Walaupun begitu,
pemilik hak paten dari mp3 telah memberikan pernyataan bahwa penggunaan mp3
untuk keperluan perorangan tidak dikenai biaya. Keuntungan lainnya adalah
kemudahaan akses mp3, dimana banyak software yang dapat menghasilkan file mp3.


Dalam mengkompresi file audio, ada beberapa metode atau algoritma yang
bisa dipakai seperti algoritma Huffman dan algoritma Run Length Encoding.

Universitas Sumatera Utara

10

2.4.

Alat Bantu Perancangan Perangkat Lunak
Alat bantu yang digunakan dalam perancangan perangkat lunak ini adalah

sebagai berikut.

Flowcharting adalah suatu teknik untuk menyusun rencana program yang telah
diperkenalkan dan telah dipergunakan oleh kalangan pemrogram komputer sebelum
algoritma menjadi populer. Flowchart adalah untaian simbol gambar (chart) yang
menunjukkan aliran (flow) dari proses terhadap data (Suarga, 2012).

Ada dua kategori simbol flowchart menurut Dr. Suarga (2012), yaitu program

flowchart dan sistem flowchart, yakni:
1.

Program flowchart, yaitu simbol-simbol flowchart yang digunakan untuk
menggambarkan logik dari pemrosesan terhadap data. Adapun simbol-simbol
Program flowchart seperti pada Tabel 2.1 berikut.

Tabel 2.1. Simbol Program Flowchart
No

Simbol

Keterangan
Terminator, mulai atau selesai.

1

Proses, menyatakan proses terhadap data.
2


Input/Output, menerima atau menampilkan output

3

.

Universitas Sumatera Utara

11

Seleksi/Pilihan, memilih aliran berdasarkan syarat.
4

Predefined-Data, definisi awal dari variabel atau
data.
5

Predefined-Process, lambang fungsi atau subprogram.
6


Connector, penghubung.
7

2.

Sistem Flowchart, merupakan simbol-simbol peralatan sistem komputer yang
digunakan untuk menyatakan proses pengolahan data.

Tabel 2.2. Simbol Sistem Flowchart
No

Simbol

Keterangan

1

Manual input, Keyboard

2


File/ Storage

3

Display, Monitor

Universitas Sumatera Utara

12

4

Merge

5

Extract

6

Sorting

2.5. Algoritma
Beberapa definisi algoritma (Suarga, 2012), adalah sebagai berikut.
1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat
dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis.
2. Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan
menggunakan langkah-langkah tertentu dan terbatas jumlahnya.
3. Susunan langkah yang pasti, yang bila diikuti maka akan mentransformasi data
input menjadi output yang berupa informasi.

Berikut adalah penjelasan algoritma yang digunakan pada penelitian kompresi file,
yaitu.

2.5.1. Algoritma Huffman
Algoritma Huffman adalah salah satu algoritma kompresi tertua yang disusun oleh
David Huffman pada tahun 1952. Algoritma tersebut digunakan untuk membuat
kompresi jenis lossless compression, yaitu pemampatan data dimana tidak satu byte

Universitas Sumatera Utara

13

pun hilang sehingga data tersebut utuh dan disimpan sesuai dengan aslinya. Pada
dasarnya, algoritma Huffman ini bekerja seperti mesin sandi morse, dia membentuk
suatu kode dari suatu karakter. Sehingga karakter tersebut memiliki rangkaian bit yang
lebih pendek dibandingkan sebelumnya (Rajagukguk, 2014).

Pada awalnya David Huffman hanya meng-encoding karakter dengan hanya
menggunakan pohon biner biasa, namun setelah itu David Huffman menemukan
bahwa penggunaan algoritma greedy dapat membentuk kode prefiks yang optimal.
Penggunaan algoritma greedy pada algoritma Huffman adalah pada saat pemilihan dua
pohon dengan frekuensi terkecil dalam membuat pohon Huffman. Algoritma greedy
ini digunakan pada pembentukan pohon Huffman agar meminimumkan total cost yang
dibutuhkan. Cost yang digunakan untuk menggabungkan dua buah pohon pada akar
setara dengan jumlah frekuensi dua buah pohon yang digabungkan, oleh karena itu
total cost pembentukan pohon Huffman adalah jumlah total seluruh penggabungan.
penggabungan dua buah pohon dilakukan setiap langkah dan algoritma Huffman
selalu memilih dua buah pohon yang mempunyai frekuensi terkecil untuk
meminimumkan total cost (Wardoyo, Irwan et al, 2003).

Adapun tahapan dari algoritma Huffman adalah yang pertama membuat
sebuah pohon berupa simpul daun dan anak-anaknya yang memiliki probabilitas dari
seringnya munculnya karakter. Proses kedua adalah proses encoding, dari pohon
tersebut, tiap karakternya akan memiliki identitas berupa bilangan biner untuk
disimpan pada memori. Proses pembentukan dari karakter menjadi biner inilah yang
disebut dengan proses encoding. Untuk lebih jelasnya bagaimana encoding itu akan
diperjelas ketika pohon telah dibuat. Proses ketiga yaitu proses decoding adalah proses
kebalikan dari encoding, yaitu mengembalikan dari angaka-angka biner yang pendek
diubah lagi menjadi karakter yang panjang lagi dan tanpa ada kehilangan data dari
data asli.

Universitas Sumatera Utara

14

2.5.2. Algoritma RLE (Run Length Encoding)
Teknik run length ini bekerja berdasarkan sederetan karakter yang berurutan. Run
Length Encoding adalah suatu algoritma kompresi data yang bersifat lossless.
Algoritma ini mungkin merupakan algoritma yang mudah untuk dipahami dan
diterapkan untuk kompresi. Metode kompresi ini sangat sederhana, yaitu hanya
memindahkan pengulangan byte yang sama berturut-turut secara terus-menerus
(Rahandi, 2009).

2.6. Rasio Kompresi
Menurut David Salomon (2007), tingkat pengurangan data yang dicapai sebagai hasil
dari proses kompresi disebut rasio kompresi. Rasio ini merupakan perbandingan
antara panjang data asli dengan panjang data yang sudah dikompresi, seperti
dituliskan dalam persamaan berikut.

=

Jika dinyatakan dalam persentase maka dituliskan dalam persamaan berikut.

=

%

Yang berarti ukuran file berkurang sebesar P (dalam persentase) dari ukuran semula.
Semakin tinggi rasio tingkat suatu teknik kompresi data maka semakin efektif teknik
kompresi tersebut.

2.7. Kompleksitas Waktu
Perhitungan Kompleksitas waktu merupakan waktu yang dibutuhkan oleh sebuah
sistem untuk menginput file audio yang akan dikompresi sampai dengan selesainya
proses kompresi dan dekompresi.

Universitas Sumatera Utara