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