TINJAUAN PUSTAKA
Pada dasarnya data apapun sebenarnya adalah 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 dan video, dalam data audio suatu rangkaian bit tertentu
mewakili satu nada, sedangkan dalam data video suatu rangkaian bit mewakili suatu
stream video, dimana dalam stream video terdapat image dalam satu pixel. Semakin
kompleks suatu data, ukuran rangkaian bit yang diperlukan semakin panjang, dengan
demikian ukuran keseluruhan data juga semakin besar [4].
Dalam penyimpanan dan pengiriman data komputer, selain isi dari data
tersebut parameter yang tidak kalah pentingnya adalah ukurannya. Kerap 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.
Ada banyak sekali teori dan metode untuk kompresi data. Salah satu teori yang
cukup sederhana adalah dengan menggunakan kode Huffman (Huffman coding).
Dalam enkoding kode Huffman, digunakan konsep struktur data pohon biner (binary
tree). Teori kode Huffman ini sendiri tidak hanya ada satu, tetapi ada beberapa variasi,
optimasi, dan kombinasinya. Dalam ilmu sains komputer kompresi data adalah seni
dalam merepresentasikan sumber data digital dan lainnya ke dalam bentuk yang lebih
compact. Istilah lain dari kompresi data adalah pemampatan data.
Berikut ini beberapa defenisi dari kompresi data:
Data tidak hanya disajikan dalam bentuk audio (bunyi, suara, musik) maupun video
teks, tetapi juga dapat berupa teks dan citra. Keempat macam data tersebut sering
disebut dengan multimedia. Pada umumnya representasi data digital membutuhkan
memori yang besar, disisi lain kebanyakan data misalnya citra (image) 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, citra banyak mengandung
bagian (region) yang sama, sehingga bagian yang sama ini tidak perlu dikodekan
berulang kali. Saat ini, kebanyakan aplikasi menginginkan representasi dengan
memori yang lebih sedikit. Pemampatan data atau kompresi data (data 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 daripada
representasi data digital semula.
Data digital yang telah dikompresi dapat dikembalikan ke bentuk data digital
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 digital semula
(dekompresi) namun terdapat juga suatu aplikasi yang dapat mengkompresi namun
ketika dekompresi dapat menggunakan aplikasi lain contohnya aplikasi winzip dengan
aplikasi winrar.
Kompresi data sangat populer sekarang ini karena dua alasan yaitu :
1. Orang – orang lebih suka mengumpulkan data. Tidak peduli seberapa besar
media penyimpanan yang dimilikinya. Akan tetapi cepat atau lambat akan
terjadi overflow.
2. Orang – orang benci menunggu waktu yang lama untuk memindahkan data.
Misalnya ketika duduk di depan komputer untuk menunggu halaman Web
terbuka atau men-download sebuah file [7].
Rasio kompresi data adalah ukuran persentase data yang telah berhasil
dimampaatkan.Secara matematis rasio pemampatan data ditulis sebagai berikut :
Misalkan rasio kompresi adalah 25%, artinya 25 % data semula telah berhasil
dimampatkan [9].
Metode pemampatan data atau kompresi data dapat dikelompokan dalam dua
kelompok besar yaitu metode lossless dan metode lossy yaitu:
1. Metode lossless.
Lossless data kompresi adalah kelas dari algoritma data kompresi yang
memungkinkan data yang asli dapat disusun kembali dari data kompresi. Lossless data
kompresi digunakan dalam berbagai aplikasi seperti format ZIP dan GZIP. Lossless
juga sering digunakan sebagai komponen dalam teknologi kompresi data lossy.
Kompresi Lossless digunakan ketika sesuatu yang penting pada kondisi asli. Beberapa
format gambar seperti PNG atau GIF hanya menggunakan kompresi lossless,
sedangkan yang lainnya sperti TIFF dan MNG dapat menggunakan metode lossy atau
lossless.
Metode lossless menghasilkan data yang identik dengan data aslinya, hal ini
dibutuhkan untuk banyak tipe data, contohnya: executable code, word processing
files, tabulated numbers dan sebagainya. Misalnya pada citra atau gambar dimana
metode ini akan menghasilkan hasil yang tepat sama dengan citra semula, pixel per
pixel sehingga tidak ada informasi yang hilang akibat kompresi. Namun ratio
kompresi (rasio kompresi yaitu, ukuran file yang dikompresi dibanding yang tak
terkompresi dari file) dengan metode ini sangat rendah. Metode ini cocok untuk
kompresi citra yang mengandung informasi penting yang tidak boleh rusak akibat
kompresi, misalnya gambar hasil diagnosa medis. Contoh metode lossless adalah
Aritmetic Coding, Run-Length, Huffman, Delta dan LZW.
Lossy kompresi adalah suatu metode untuk mengkompresi data dan men-
dekompresinya, data yang diperoleh mungkin berbeda dari yang aslinya tetapi cukup
dekat perbedaaanya. Lossy kompresi ini paling sering digunakan untuk kompres data
multimedia (suara atau gambar diam). Sebaliknya, kompresi lossless diperlukan untuk
data teks dan file, seperti catatan bank, artikel teks dan lainnya.
Metode ini menghasilkan rasio kompresi yang lebih besar daripada metode
lossless. Misal terdapat image asli berukuran 12,249 bytes, kemudian dilakukan
kompresi dengan JPEG kualitas 30 dan berukuran 1,869 bytes berarti image tersebut
85% lebih kecil dan rasio kompresi 15%. Contoh metode lossy adalah metode CS&Q
(coarser sampling and/or quantization), JPEG, dan MPEG.
a. Lossy transform codec, sampel suara atau gambar yang diambil, di potong ke
segmen kecil, diubah menjadi ruang basis yang baru, dan kuantisasi. hasil nilai
kuantisasi menjadi entropy coded.
Dalam beberapa sistem kedua teknik digabungkan, dengan mengubah codec yang
digunakan untuk mengkompresi kesalahan sinyal yang dihasilkan dari tahapan
prediksi.
Keuntungan dari metode lossy atas lossless adalah dalam beberapa kasus
metode lossy dapat menghasilkan file kompresi yang lebih kecil dibandingkan dengan
metode lossless yang ada, ketika masih memenuhi persyaratan aplikasi. Metode lossy
sering digunakan untuk mengkompresi suara, gambar dan video. karena data tersebut
dimaksudkan kepada human interpretation dimana pikiran dapat dengan mudah
“mengisi bagian-bagian yang kosong” atau melihat kesalahan masa lalu sangat kecil
atau inkonsistensi. Idealnya lossy adalah kompresi transparan, yang dapat diverifikasi
dengan tes ABX. Sedangkan lossless digunakan untuk mengkompresi data untuk
diterima ditujuan dalam kondisi asli seperti dokumen teks. Lossy akan mengalami
generation loss pada data sedangkan pada lossless tidak terjadi karena data yang hasil
dekompresi sama dengan data asli [2].
Audio (suara) adalah fenomena fisik yang dihasilkan oleh getaran suatu benda yang
berupa sinyal analog dengan amplitudo yang berubah secara kontinyu terhadap waktu
yang disebut frekuensi [1].
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. Contoh suara periodik
adalah instrumen musik, nyanyian burung sedangkan contoh suara non periodik
adalah batuk, percikan ombak dan lain-lain [1].
A
M
P
L
I
T
U
Waktu/det D
O
1 Periode
Teknik sampling yang umum pada file audio seperti Nyquist Sampling Rate
dimana untuk memperoleh representasi akurat dari suatu sinyal analog secara lossless,
amplitudonya harus diambil sample-nya setidaknya pada kecepatan (rate) sama atau
lebih besar dari 2 kali lipat komponen frekuensi maksimum yang akan didengar.
Mis : Untuk sinyal analog dengan bandwith 15 Hz – 10 kHz → sampling rate = 2 x
10 KHz = 20 kHz
AAC [ .m4a ] bersifat lossy compression dimana data hasil kompresi tidak bisa
dikembalikan lagi ke data sebelum dikompres secara sempurna, karena setelah
dikompres terdapat data yang hilang. AAC merupakan audio codec yang
menyempurnakan MP3 dalam hal medium dan high bit rates [1].
Cara kerja:
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 2GB.
Secara umum data audio digital memiliki karakteristik yang dapat dinyatakan dengan
parameter-parameter berikut:
a. Laju sampel (sampling rate) dalam sampel/detik, misalnya 22050 atau 44100
sampel/detik.
b. Jumlah bit tiap sampel, misalnya 8 atau 16 bit.
c. Jumlah kanal, yaitu 1 untuk mono dan 2 untuk stereo.
Field Keterangan
MPEG-1 audio layer III atau yang lebih dikenal dengan MP3, adalah salah satu dari
pengkodean dalam digital audio dan juga 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.
Sejarah MP3 dimulai dari tahun 1991 saat proposal dari Phillips (Belanda),
CCET (Perancis), dan Institut für Rundfunktechnik (Jerman) memenangkan proyek
untuk DAB (Digital Audio Broadcast). Produk mereka seperti Musicam (akan lebih
dikenal dengan layer 2) terpilih karena kesederhanaan, ketahanan terhadap kesalahan,
dan perhitungan komputasi yang sederhana untuk melakukan pengkodean yang
menghasilkan keluaran yang memiliki kualitas tinggi. Pada akhirnya ide dan teknologi
yang digunakan dikembangkan menjadi MPEG-1 audio layer 3.
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/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.
1. Terdapat beberapa suara yang tidak dapat didengar oleh manusia (diluar
jangkauan frekuensi 30-30.000 Hz).
2. Terdapat beberapa suara yang dapat terdengar lebih baik bagi pendengaran
manusia dibandingkan suara lainnya.
3. Bila terdapat dua suara yang dikeluarkan secara simultan, maka pendengaran
manusia akan mendengar yang lebih keras sedangkan yang lebih pelan akan tidak
terdengar.
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 dari CD dan keberadaan file MP3 yang
bersifat ubiquitos (kosmopolit).
Pada perbandingan kualitas suara antara beberapa format kompresi audio hasil
yang dihasilkan bervariasi pada bitrate yang berbeda, perbandingan berdasarkan
codec (hasil pengkodean) yang digunakan. Pada 128 kbit/s, LAME MP3 unggul
sedikit dibandingkan dengan Ogg Vorbis, AAC, MPC and WMA Pro. Kemudian pada
64 kbit/s,AAC-HE dan mp3pro menjadi yang teratas diantara codec lainnya. Dan
untuk diatas 128 kbit/s tidak terdengar perbedaan yang signifikan. Pada umumnya
format MP3 sekarang menggunakan 128 kbit/s dan 192 kbit/s sehingga hasil yang
dihasilkan cukup baik [1].
MIDI adalah singkatan dari Musical Instrument Digital Interface yang merupakan
standar perangkat keras dan perangkat lunak internasional untuk bertukar data seperti
kode musik dan MIDI Event diantara perangkat musik elektronik dan komputer dari
merek yang berbeda. MIDI data sebenarnya merupakan sekumpulan instruksi dan
bukanlah versi digital dari rekaman suara. Roos (2009) memberikan pendapat bahwa
MIDI bukanlah sebuah musik, tidak berisi suara aktual/nyata, dan bukanlah format
file musik digital, seperti MP3 atau WAV.
Struktur data pada file audio berbeda-beda tergantung format audio-nya. Misalnya file
Wav memiliki struktur seperti pada Gambar 2.4 [1].
Data audio yang di-encoding terdiri dari 576 baris frekuensi tiap channel dan bagian
kecil yang disimpan sebagai 16 bit signed integer. Sebagai contoh diberi sebuah
spektrum frekuensi pada file audio berformat wav yang dapat dilihat pada Gambar 2.5
[5].
Amplitudo
Waktu
(D tik)
Pada file suara yang terkuantisasi dilakukan encoding yang menghasilkan nilai integer
yang merupakan nilai frekuensi dari sampel audio. Sampel audio yang di-encoding
dapat dilihat pada Gambar 2.6 [5].
Algoritma aritmetic coding melakukan penggantian satu deretan simbol input dengan
sebuah bilangan floating point. Semakin panjang dan semakin kompleks pesan yang
dikodekan, akan semakin banyak bit yang diperlukan untuk keperluan tersebut. Output
dari pengkodean Aritmetic Coding adalah satu angka yang lebih kecil dari angka 1 dan
lebih besar atau sama dengan 0. Angka ini secara unik dapat dapat didekoding
sehingga menghasilkan deretan simbol yang dipakai untuk menghasilkan angka
tersebut. Untuk menghasilkan angka output tersebut, tiap simbol yang akan di-encode
diberi satu set nilai probabilitas. Contohnya andaikan pada sampel audio “00 3e 1f 00
9a 00 1f 9a 00 3e 00 1f 00 3e 1f” akan di-encode, maka akan diperoleh tabel
probabilitas seperti Tabel 2.2.
Setelah probabilitas tiap karakter diketahui, tiap simbol/karakter akan diberikan range
tertentu yang nilainya berkisar antara 0 dan 1, sesuai dengan probabilitas yang ada.
Dalam hal ini tidak ada ketentuan urutan penentuan segmen, asalkan antara encoder
dan decoder melakukan hal yang sama. Selanjutnya akan diperoleh tabel Range
Probabilitas seperti Tabel 2.3.
0,0 ≤ 00 <0,4 : Nilai “00” memiliki range dari 0,0 sampai dengan 0,4
0,4 ≤ 1f <0,7 : Nilai “1f” memiliki range dari 0,4 sampai dengan 0,7
0,7 ≤ 9a <0,8 : Nilai “9a” memiliki range dari 0,7 sampai dengan 0,8
0,8 ≤ 3e <1,0 : Nilai “3e” memiliki range dari 0,8 sampai dengan 1,0
Satu hal yang perlu dicatat dari tabel ini adalah tiap karakter melingkupi range yang
disebutkan, kecuali bilangan yang tinggi. Jadi, simbol “3e” sesungguhnya mempunyai
range mulai dari 0,8 sampai dengan 0,9999… Selanjutnya, untuk melakukan proses
encoding, algoritma berikut dipakai.
Pada algoritma di atas low, hight dan CR berturut-turut menyatakan batas bawah,
batas atas dan jangkauan interval dari setiap simbol (character). Pada tahap awal low
dan high di inisialisasi dengan nilai 0 dan 1 kemudian pada proses selanjutnya kedua
nilai tersebut diperbaharui dengan rumus :
Windows API adalah sekumpulan fungsi-fungsi eksternal yang terdapat dalam file-file
perpustakaan Windows (library windows) atau file library lainnya yang dapat
digunakan dalam pembanguna program. Fungsi ini dapat menangani semua yang
berhubungan dengan Windows seperti pengaksesan disk, interface printer, grafik
Windows, kotak dialog, Windows shell, memainkan musik dan sebagainya [3].
Pada pemrograman Visual Basic, untuk bisa memutar sebuah file suara (WAV)
atau file musik (MP3) harus menggunakan Windows API yaitu file winmm.dll. File ini
terlebih dahulu dideklarasikan atau dikenalkan ke bahasa pemrograman yang sedang
digunakan dengan cara sebagai berikut:
Keterangan :
1. Declare merupakan fungsi reserved word, kata yang telah baku disediakan oleh
Visual Basic untuk menyatakan pendeklarasian prosedur API.
2. Function merupakan fungsi untuk menghasilkan suatu nilai sebagai hasil dari
sebuah aksi.
3. mciSendStringA merupakan sebuah nama fungsi yang terdapat pada suatu file
pustaka prosedur (*.dll). Setelah penulisan nama fungsi ini, proses harus
dilanjutkan dengan nama file pustaka prosedur dimana fungsi tersebut berada.
4. Lib “winmm” adalah tempat untuk memberitahukan Visual Basic letak fungsi
mciSendStringA berada, yaitu pada library sistem. File winmm.dll disebut
sebagai pustaka prosedur karena di dalamnya terdapat puluhan bahkan ratusan
macam fungsi. Penulisan string “32” pada beberapa pustaka sistem prosedur,
mengacu pada terminologi Win32-Based Application, yaitu sebuah teknologi
sistem operasi berbasis 32-bit yang dikembangkan oleh Microsoft dan telah
digunakan hampir semua pengguna Windows saat ini. Untuk generasi terbaru,
Microsoft telah mengeluarkan teknologi 64-bit, dan sebelumya microsoft telah
mengeluarkan sistem operasi berbasis 16-bit. Pada lingkungan Windows 16-bit,
pustaka prosedur sistem tidak memiliki string “32” atau “16”.