• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
29
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Pengertian Audio Digital

Suara yang kita dengar sehari-hari adalah merupakan gelombang analog. Gelombang ini berasal dari tekanan udara yang ada di sekeliling kita, yang dapat kita dengar dengan bantuan gendang telinga. Gendang telinga ini bergetar, dan getaran ini dikirim dan diterjemahkan menjadi informasi suara yang dikirimkan ke otak, sehingga kita dapat mendengarkan suara. Suara yang kita hasilkan sewaktu berbicara berbentuk tekanan suara yang dihasilkan oleh pita suara. Pita suara ini akan bergetar, dan getaran ini menyebabkan perubahan tekanan udara, sehingga kita dapat mengeluarkan suara (Binanto, 2010).

Komputer hanya mampu mengenal sinyal dalam bentuk digital. Bentuk digital yang dimaksud adalah tegangan yang diterjemahkan dalam angka “0” dan “1”, yang juga disebut dengan istilah “bit”. Tegangan ini berkisar 5 volt bagi angka “1” dan mendekati 0 volt bagi angka “0”. Dengan kecepatan perhitungan yang dimiliki komputer, komputer mampu melihat angka “0” dan “1” ini menjadi kumpulan bit-bit dan menerjemahkan kumpulan bit-bit tersebut menjadi sebuah informasi yang bernilai.

Cara untuk memasukkan suara analog ini sehingga dapat dimanipulasi oleh peralatan elektronik adalah transducer. Dalam hal ini, transducer adalah istilah untuk menyebut sebuah peralatan yang dapat mengubah tekanan udara (yang kita dengar sebagai suara) ke dalam tegangan elektrik yang dapat dimengerti oleh perangkat elektronik, serta sebaliknya. Contoh transducer adalah mikrofon dan speaker. Mikrofon dapat mengubah tekanan udara menjadi tegangan elektrik, sementara

speaker melakukan pekerjaan sebaliknya (Binanto, 2010).

Tegangan elektrik diproses menjadi sinyal digital oleh sound card. Ketika Anda merekam suara atau musik ke dalam komputer, sound card akan mengubah gelombang suara (bisa dari mikrofon atau stereo set) menjadi data digital, dan ketika suara itu dimainkan kembali, sound card akan mengubah data digital menjadi suara yang kita dengar (melalui speaker), dalam hal ini gelombang analog. Proses pengubahan gelombang suara menjadi data digital ini dinamakan Analog-to-Digital

(2)

Conversion (ADC), dan kebalikannya, pengubahan data digital menjadi gelombang

suara dinamakan Digital-to-Analog Conversion (DAC).

Proses pengubahan dari tegangan analog ke data digital ini terdiri atas beberapa tahap yang ditunjukkan pada Gambar 2.1, yaitu:

1. Membatasi frekuensi sinyal yang akan diproses dengan Low Pass Filter. 2. Mencuplik sinyal analog ini (melakukan sampling) menjadi beberapa

potongan waktu.

3. Cuplikan-cuplikan ini diberi nilai eksak, dan nilai ini diberikan dalam bentuk data digital.

Gambar 2.1 Konversi Sinyal Analog ke Digital (Binanto, 2010).

Proses sebaliknya, yaitu pengubahan dari data digital menjadi tegangan analog juga terdiri atas beberapa tahap, yang ditunjukkan pada Gambar 2.2, yaitu:

1. Menghitung data digital menjadi amplitudo -amplitudo analog. 2. Menyambung amplitudo analog ini menjadi sinyal analog.

3. Memfilter keluaran dengan Low Pass Filter sehingga bentuk gelombang keluaran menjadi lebih mulus.

Gambar 2.2 Konversi Sinyal Digital ke Analog (Binanto, 2010).

Proses pengubahan sinyal analog menjadi digital harus memenuhi sebuah kriteria, yaitu kriteria Nyquist. Kriteria ini mengatakan bahwa untuk mencuplik sebuah sinyal yang memiliki frekuensi X Hertz, maka harus mencupliknya minimal

(3)

dua kali lebih rapat, atau 2X Hertz. Jika tidak, sinyal tidak akan dapat dikembalikan ke dalam bentuk semula.

2.2 Kelebihan Audio Digital

Kelebihan audio digital adalah kualitas reproduksi yang sempurna. Kualitas reproduksi yang sempurna yang dimaksud adalah kemampuannya untuk menggandakan sinyal audio secara berulang-ulang tanpa mengalami penurunan kualitas suara (Adhitama, 2009).

Kelebihan lain dari audio digital adalah ketahanan terhadap noise (sinyal yang tidak diinginkan). Pada saat transmisi data dan pemrosesan dengan komponen-komponen elektrik, pada sinyal analog sangat mudah sekali terjadi gangguan-gangguan berupa noise. Suara desis pada kaset rekaman merupakan salah satu contoh terjadinya noise berupa gangguan pada frekuensi tinggi.

Audio digital akan mempermudah pemrosesan sinyal, karena proses-proses

pengolahan sinyal digital dapat dilakukan dengan menggunakan operasi-operasi matematis yang diimplementasikan dalam bentuk digital signal processor atau melalui software. Operasi-operasi tersebut antara lain meliputi mixing, filtering,

volume control, equalizing, noise reduction, high frequency rebirth, DC offset correction, pengaturan tempo, penambahan efek dan sebagainya.

2.3 Istilah dalam Audio Digital

Dalam dunia audio digital, ada beberapa istilah yaitu channel (jumlah kanal),

sampling rate (laju pencuplikan), bandwidth, bit per sample (banyaknya bit dalam

satu sample), bit rate (laju bit) (Adhitama, 2009).

2.3.1 Jumlah Kanal (Channel)

Jumlah kanal menentukan banyaknya kanal audio yang digunakan. Audio satu kanal dikenal dengan mono, sedangkan audio dua kanal dikenal dengan strereo. Saat ini untuk audio digital standar, biasanya digunakan dua kanal, yaitu kanal kiri dan kanal kanan. Audio untuk penggunaan theater digital menggunakan lebih banyak kanal. Ada yang menggunakan tiga kanal, yaitu 2 kanal depan dan surround. Ada yang menggunakan 6 kanal (dikenal dengan format audio 5.1) yaitu terdiri dari 2 kanal

(4)

depan dan 2 kanal surround, 1 kanal tengah dan 1 kanal subwoofer. Bahkan ada yang menggunakan 8 kanal (format audio 7.1) yaitu terdiri dari 2 kanal depan dan 2 kanal

surround, 1 kanal tengah dan 1 kanal subwoofer dan ditambah 2 buah speaker EX

(Environmental Extended) untuk menghasilkan suara dari belakang.

2.3.2 Laju Pencuplikan (Sampling Rate)

Ketika sound card mengubah audio menjadi data digital, sound card akan memecah suara tadi menurut nilai menjadi potongan-potongan sinyal dengan nilai tertentu. Proses sinyal ini bisa terjadi ribuan kali dalam satuan waktu. Banyak pemotongan dalam satu satuan waktu ini dinamakan sampling rate (laju pencuplikan). Satuan

sampling rate yang biasa digunakan adalah KHz (kilo Hertz).

Kerapatan laju pencuplikan ini menentukan kualitas sinyal analog yang akan diubah menjadi data digital. Makin rapat laju pencuplikan ini, kualitas suara yang dihasilkan akan makin mendekati suara aslinya. Sebagai contoh, lagu yang disimpan dalam Compact Disc Audio (CDA) memiliki sampling rate 44.1 KHz, yang berarti lagu ini dicuplik sebanyak 44100 kali dalam satu detik untuk memastikan kualitas suara yang hampir sama persis dengan aslinya. Sebagaimana dapat dilihat pada table 2.1

Tabel 2.1 Frekuensi Sampling dan Kualitas Suara yang Dihasilkan (Gunawan, 2005)

Sampling Rate (KHZ) Aplikasi

8 Telepon

11,025 Radio AM

16 Kompromi antara 11,025 dan 22,025 KHz

22,025 Mendekati Radio FM

32,075 Lebih baik dari Radio FM

44,1 Compact Disc Audio (CDA)

48 Digital Audio Tape (DAT)

Sampling rate yang umumnya digunakan antara lain 8 KHz, 11 KHz, 16 KHz,

22 KHz, 24 KHz, 44 KHz, 88 KHz. Makin tinggi sampling rate, semakin baik kualitas audio. Teori Nyquist menyatakan bahwa sampling rate yang diperlukan minimal 2

(5)

kali bandwidth sinyal. Hal ini berkaitan dengan kemampuan untuk merekonstruksi ulang sinyal audio.

2.3.3 Bandwidth

Bandwitdth adalah selisih antara frekuensi tertinggi dan frekuensi terendah yang akan

diolah. Misalnya sinyal audio pada telepon yang digunakan untuk menyampaikan sinyal dengan frekuensi 300 – 3400 Hz (ucapan manusia), berarti bandwidth-nya adalah 3100 Hz (3400 dikurangi 300). Maka sampling rate minimum yang diperlukan adalah 2 kali yaitu 6,2 KHz. Demikian pula dengan frekuensi suara secara umum, frekuensi yang dapat didengar manusia adalah 20 – 20.000 Hz, dengan bandwidth 19.980. Berarti sampling rate minimum yang digunakan adalah 39.960 Hz. Jadi frekuensi sampling yang mencukupi adalah 44.100 Hz (Gunawan, 2005).

2.3.4 Banyaknya Bit dalam Satu Sampel (Bit Per Sample)

Bit per sample menyatakan seberapa banyak bit yang diperlukan untuk menyatakan

hasil sample tersebut, hal ini berkaitan dengan proses kuantisasi. Bit rate yang digunakan adalah 8 bit per sample atau 16 bit per sample. Proses kuantisasi akan mengubah amplitudo sinyal audio menjadi suatu level sinyal tertentu. Dengan 8 bit

per sample akan ada 256 level pilihan sedangkan 16 bit per sample akan ada 65.536 level pilihan. Makin tinggi bit per sample makin teliti proses kuantisasi. Dalam contoh

ini, penggunaan 16 bit per sample dibandingkan penggunaan 8 bit per sample akan mempertinggi ketelitian kualitas kuantisasi sebanyak 256 kali.

2.3.5 Bit Rate (Laju Bit )

Istilah bit rate merupakan gabungan dari istilah sampling rate dan bit per sample. Bit

rate menyatakan banyaknya bit yang diperlukan untuk menyimpan audio selama satu

detik, satuannya adalah bit per detik. Bit rate (dengan satuan bit per detik) diperoleh dengan rumus yang sederhana yaitu perkalian antara jumlah kanal, sampling rate (dengan satuan Hertz) dan bit per sample (dengan satuan bit). Sebagaimana dapat dilihat pada table 2.2

Tabel 2.2 Tabel Penyimpanan Berbagai Konfigurasi Audio Digital (Gunawan, 2005)

(6)

Sampling rate Bit per sample Jumlah kanal

Bit rate Byte rate (1 byte = 8 bit) Byte rate per menit 12 kHz 8 1 96.000 12.000 720 KB 12 kHz 8 2 192.000 24.000 1,44 MB 12 kHz 16 1 192.000 24.000 1,44 MB 12 kHz 16 2 348.000 48.000 2,88 MB 24 kHz 8 1 192.000 24.000 1,44 MB 24 kHz 8 2 348.000 48.000 2,88 MB 24 kHz 16 1 348.000 48.000 2,88 MB 24 kHz 16 2 768.000 96.000 5,76 MB 44.1 kHz 8 1 352.800 44.100 2,646 MB 44.1 kHz 8 2 705.600 88.200 5,292 MB 44.1 kHz 16 1 705.600 88.200 5,292 MB 44.1 kHz 16 2 1.411.200 176.400 10,584 MB

Audio sekualitas CD Audio menggunakan sampling rate 44,1 kHz, 16 bit per sample, 2 kanal. Total media yang diperlukan untuk menyimpan data audio ini

perdetik adalah 176.400 byte, untuk durasi 1 menit diperlukan 10,584 MB. Jika rata-rata durasi satu lagu selama 5 menit, maka dibutuhkan tempat lebih dari 50 MB untuk menyimpan data audio lagu tersebut jika diasumsikan 1 KB = 1.000 byte dan 1 MB = 1.000 KB = 1.000.000 byte.

2.4 Data Audio

Salah satu tipe data multimedia adalah audio yang berupa suara ataupun bunyi, data

audio sendiri telah mengalami perkembangan yang cukup pesat seiring dengan

semakin umumnya orang dengan perangkat multimedia. Tentunya yang merupakan syarat utama supaya komputer mampu menjalankan tipe data tersebut adalah adanya

speaker yang merupakan output untuk suara yang dihasilkan dan untuk menghasilkan

maupun mengolah data suara yang lebih kompleks seperti *.WAV, *.MIDI tersebut tentunya sudah diperlukan perangkat yang lebih canggih lagi yaitu sound card (Gunawan, 2005).

(7)

Tipe dari pelayanan audio memerlukan format yang berbeda untuk informasi

audio dan teknologi yang berbeda untuk menghasilkan suara. Windows menawarkan

beberapa tipe dari pelayanan audio :

1. Pelayanan audio Wavform menyediakan playback dan recording untuk perangkat keras digital audio. Waveform digunakan untuk menghasilkan non-musikal audio seperti efek suara dan suara narasi. Audio ini mempunyai keperluan penyimpanan yang sedang dan keperluan untuk tingkat transfer paling kecil yaitu 11 K/detik.

2. Midi Audio, menyediakan pelayanan file MIDI dan MIDI playback melalui synthesizer internal maupun eksternal dan perekaman MIDI. MIDI digunakan

untuk aplikasi yang berhubungan dengan musik seperti komposisi musik dan program MIDI sequencer. Karena memerlukan tempat penyimpanan lebih kecil dan tingkat transfer yang lebih kecil daripada Waveform audio, maka sering digunakan untuk keperluan background.

3. Compact Disc Audio (CDA) menyediakan pelayanan untuk playback informasi Red Book Audio dalam CD dengan drive CD-ROM pada komputer multimedia.

CD menawarkan kualitas suara tertinggi, namun juga memerlukan daya penyimpanan yang paling besar pula, sekitar 176 KB/detik.

4. Wav Audio merupakan kreasi perusahaan raksasa perangkat lunak Microsoft

yang berasal dari standar RIFF (Resource Interchange File Format). Wav audio ini telah menjadi standar format file audio komputer dari suara sistem dan

games sampai CD Audio. File Wav diidentifikasikan dengan nama yang

berekstensi *.WAV. Format asli dari tipe file tersebut sebenarnya berasal dari bahasa C.

2.5 Struktur File Wav

Aplikasi multimedia seperti diketahui memerlukan manajemen penyimpanan dari sejumlah jenis data yang bervariasi, termasuk bitmap, data audio, data video, informasi mengenai kontrol device periperal. Rule Interchange File Format (RIFF) menyediakan suatu cara untuk menyimpan semua jenis data tersebut. Tipe data pada sebuah file RIFF dapat diketahui dari ekstensi filenya (Gunawan, 2005). Sebagai contoh jenis-jenis file yang disimpan dalam bentuk format RIFF adalah sebagai berikut:

(8)

1. Audio/visual interleaved data (.AVI) 2. Wavform data (.WAV)

3. Bitmapped data (.RDI) 4. MIDI information (.RMI) 5. Color palette (.PAL) 6. Multimedia Movie (.RMN) 7. Animated cursor (.ANI)

Pada saat ini, file *.AVI merupakan satu-satunya jenis file RIFF yang telah secara penuh diimplementasikan menggunakan spesifikasi RIFF. Meskipun file *.WAV juga menggunakan spesifikasi RIFF, karena struktur file *.WAV ini begitu sederhana maka banyak perusahaan lain yang mengembangkan spesifikasi dan standar mereka masing-masing.

Format file WAV seperti yang diketahui, merupakan bagian dari spesifikasi RIFF Microsoft yang digunakan sebagai penyimpan data digital audio. Format file ini merupakan salah satu format file audio pada PC. Seiring dengan popularitas Windows maka banyak aplikasi yang mendukung format file ini. Karena bekerja pada lingkungan Windows yang menggunakan prosesor Intel, maka format data dari file WAV disimpan dalam format urutan little-endian (least significant byte) dan sebagian dalam urutan big-endian.

File WAV menggunakan struktur standar RIFF yang mengelompokkan isi file

(sampel format, sampel digital audio, dan lain sebagainya) menjadi “chunk” yang terpisah, setiap bagian mempunyai header dan byte data masing-masing. Header

chunck menetapkan jenis dan ukuran dari byte data chunk. Dengan metoda pengaturan

seperti ini maka program yang tidak mengenali jenis chunk yang khusus dapat dengan mudah melewati bagian chunk ini dan melanjutkan langkah memproses chunk yang dikenalnya. Jenis chunk tertentu mungkin terdiri atas sub-chunk. Sebagai contoh, pada gambar 2.3 dapat dilihat chunk “fmt ” dan “data” sebenarnya merupakan sub-chunk dari chunk “RIFF”.

Chunk pada file RIFF merupakan suatu string yang harus diatur untuk tiap

kata. Ini berarti ukuran total dari chunk harus merupakan kelipatan dari 2 byte (seperti 2, 4, 6, 8 dan seterusnya). Jika suatu chunk terdiri atas jumlah byte yang ganjil maka

(9)

harus dilakukan penambahan byte (extra padding byte) dengan menambahkan sebuah nilai nol pada byte data terakhir. Extra padding byte ini tidak ikut dihitung pada ukuran chunk. Oleh karena itu sebuah program harus selalu melakukan pengaturan kata untuk menentukan ukuran nilai dari header sebuah chunk untuk mengkalkulasi

offset dari chunk berikutnya. Sebagaimana dapat dilihat pada gambar 2.3

Gambar 2.3 Layout File Wav (Gunawan, 2005)

2.5.1 Header File Wav

Header file Wav mengikuti struktur format file RIFF standar. Delapan byte pertama

dalam file adalah header chunk RIFF standar yang mempunyai chunk ID “RIFF” dan ukuran chunk didapat dengan mengurangkan ukuran file dengan 8 byte yang digunakan sebagai header. Empat byte data yaitu kata “RIFF” menunjukkan bahwa

file tersebut merupakan file RIFF. File Wav selalu menggunakan kata “WAV” untuk

membedakannya dengan jenis file RIFF lainnya sekaligus digunakan untuk mendefinisikan bahwa file tersebut merupakan file audio wavform. Sebagaimana dapat dilihat pada table 2.3

(10)

Tabel 2.3 Nilai Jenis Chunk RIFF (Gunawan, 2005) Offset Ukuran Deskripsi Nilai

0x00 4 Chunk ID "RIFF" (0x52494646) 0x04 4 Ukuran Data Chunk (ukuran file) - 8

0x08 4 Jenis RIFF "WAV" (0x57415645)

0x10 Chunk WAV

2.5.2 Chunk File WAV

Ada beberapa jenis chunk untuk menyatakan file Wav. Kebanyakan file Wav hanya terdiri atas 2 buah chunk, yaitu Chunk Format dan Chunk Data. Dua jenis chunk ini diperlukan untuk menggambarkan format dari sampel digital audio. Meskipun tidak diperlukan untuk spesifikasi file Wav yang resmi, lebih baik menempatkan Chunk

Format sebelum Chunk Data. Kebanyakan program membaca chunk tersebut dengan

urutan di atas dan jauh lebih mudah dilakukan streaming digital audio dari sumber yang membacanya secara lambat dan linear seperti Internet. Jika Chunk Format lebih dulu ditempatkan sebelum Chunk Data maka semua data dan format harus di-stream terlebih dahulu sebelum dilakukan playback. Sebagaimana dapat dilihat pada table 2.4

Tabel 2.4 Format Chunk RIFF (Gunawan, 2005) Offset Ukuran* Deskripsi

0x00 4 Chunk ID

0x04 4 Ukuran Data Chunk 0x08 Byte Data Chunk

* dalam satuan byte

(11)

Chunk format terdiri atas informasi tentang bagaimana suatu data wavform disimpan

dan cara untuk dimainkan kembali, termasuk jenis kompresi yang digunakan, jumlah kanal, laju pencuplikan (sampling rate), jumlah bit tiap sampel dan atribut lainnya.

Chunk format ini ditandai dengan chunnk ID “fmt “. Sebagaimana dapat dilihat pada

table 2.5

Tabel 2.5 Nilai-Nilai Chunk Format File Wav (Gunawan, 2005)

Offset Ukuran Deskripsi Nilai

0x00 4 Chunk ID "fmt " (0x666D7420) 0x04 4 Ukuran Data Chunk 16 + extra format bytes

0x08 2 Kode Kompresi 1 - 65,535

0x0a 2 Jumlah Kanal 1 - 65,535

0x0c 4 Laju Pencuplikan 1 - 0xFFFFFFFF 0x10 4 Jumlah rata-rata byte tiap detik 1 - 0xFFFFFFFF

0x14 2 Block align 1 - 65,535

0x16 2 Bit Significant tiap sampel 2 - 65,535 0x18 2 Extra format bytes 0 - 65,535

0x1a Extra format bytes

A. Chunk ID dan Ukuran Data

Chunk ID selalu ditandai dengan kata “fmt “ (0x666D7420) dan ukurannya

sebesar data format Wav (16 byte) ditambah dengan extra format byte yang diperlukan untuk format Wav khusus, jika tidak terdiri atas data PCM tidak terkompresi. Sebagai catatan string chunk ID ini selalu diakhir dengan karakter spasi (0x20). Chunk ID “fmt “ digunakan sebagai informasi file Wav, informasi ini berupa: Compression Code, Number of Channels, Sample Rate, Average Bytes per

(12)

B. Kode Kompresi (Compression Code)

Setelah chunk ID dan ukuran data chunk maka bagian pertama dari format data

file Wav menyatakan jenis kompresi yang digunakan pada data Wav. Daftar kode

kompresi yang digunakan dapat dilihat pada table 2.6

Tabel 2.6 Kode Kompresi Wav (Gunawan, 2005)

Kode Deskripsi 0 (0x0000) Tidak Diketahui 1 (0x0001) PCM / Tidak Terkompresi 2 (0x0002) Microsoft ADPCM 6 (0x0006) ITU G.711 a-law 7 (0x0007) ITU G.711 µ-law 17 (0x0011) IMA ADPCM

20 (0x0016) ITU G.723 ADPCM (Yamaha) 49 (0x0031) GSM 6.10

64 (0x0040) ITU G.721 ADPCM 80 (0x0050) MPEG

65,536 (0xFFFF) Tahap Uji Coba

C. Jumlah Kanal (Number of Channels)

Jumlah kanal menyatakan berapa banyak signal audio terpisah yang di-encode dalam chunk data Wav. Nilai 1 (satu) berarti merupakan signal mono, nilai 2 (dua) berarti signal stereo dan seterusnya.

(13)

Menyatakan jumlah potongan sampel tiap detik. Nilai ini tidak dipengaruhi oleh jumlah kanal.

E. Jumlah Rata-Rata Byte Tiap Detik (Average Bytes Per Second)

Nilai ini mengindikasikan berapa besar byte data Wav harus di-stream ke konverter D/A (Digital Audio) tiap detik sewaktu suatu file Wav dimainkan. Informasi ini berguna ketika terjadi pengecekan apakah data dapat di-stream cukup cepat dari suatu sumber agar sewaktu playback pembacaan data tidak terhenti. Nilai ini dapat dihitung dengan menggunakan rumus di bawah ini:

... (2.1) F. Block Align

Menyatakan jumlah byte tiap potongan sampel. Nilai ini tidak dipengaruhi oleh jumlah kanal dan dapat dikalkulasi dengan rumus di bawah ini:

... (2.2) G. Bit Signifikan Tiap Sampel (Significant Bits Per Sample)

Nilai ini menyatakan jumlah bit yang digunakan untuk mendefinisikan tiap sampel. Nilai ini biasanya berupa 8, 16, 24 atau 32 (merupakan kelipatan 8). Jika jumlah bit tidak merupakan kelipatan 8 maka jumlah byte yang digunakan tiap sampel akan dibulatkan ke ukuran byte paling dekat dan byte yang tidak digunakan akan diset 0 (nol) dan diabaikan.

H. Extra Format Byte

Nilai ini menyatakan berapa banyak format byte tambahan. Nilai ini tidak ada jika kode kompresi adalah 0 (file PCM yang tidak terkompresi). Jika terdapat suatu nilai pada bagian ini maka ini digunakan untuk menentukan jenis file Wav yang memiliki kompresi dan ini memberikan informasi mengenai jenis kompresi apa yang diperlukan untuk men-decode data Wav. Jika nilai ini tidak dilakukan word

aligned (merupakan kelipatan 2), penambahan byte (padding) pada bagian akhir

data ini harus dilakukan.

2.5.4 Chunk Data

AvgBytesPerSec = SampleRate * BlockAlign

(14)

Chunk ini ditandai dengan adanya string “data”. Chunk Data pada file Wav terdiri atas sampel digital audio yang mana dapat didecode kembali menggunakan metoda

kompresi atau format biasa yang dinyatakan dalam chunk format Wav. Jika kode kompresinya adalah 1 (jenis PCM tidak terkompresi), maka “Data Wav” terdiri atas nilai sampel mentah (raw sample value). Sebagaimana dapat dilihat padatabel 2.7

Tabel 2.7 Format Data Chunk (Gunawan, 2005) Offset Ukuran Tipe Deskripsi Nilai

0x00 4 char[4] chunk ID "data" (0x64617461)

0x04 4 dword Ukuran chunk Tergantung pada panjang sampel dan jenis kompresi

0x08 Sampel data

Sampel digital audio multi-channel disimpan dalam bentuk Data Wav

Interlaced. File Wav multi-channel (seperti stereo dan surround) disimpan dengan

mensiklus tiap kanal sampel audio sebelum melakukan pembacaan lagi untuk tiap waktu cuplik berikutnya. Dengan cara seperti ini maka file audio tersebut dapat dimainkan atau di-stream tanpa harus membaca seluruh isi file. Lebih praktis dengan cara seperti ini ketika sebuah file Wav dengan ukuran yang besar dimainkan dari disk (mungkin tidak dapat dimuat seluruhnya ke dalam memori) atau ketika melakukan

streaming sebuah file Wav melalui jaringan Internet.

Seperti dikemukan di atas, semua chunk pada RIFF (termasuk chunk Wav “data”) harus di-word align. Jika data sampel menggunakan byte angka ganjil, maka dilakukan penambahan sebuah byte dengan nilai nol yang ditempatkan pada bagian akhir sampel data. Ukuran Header chunk “data” tidak termasuk byte ini.

2.5.5 Format Wav PCM

Jenis format Wav ini merupakan jenis file Wav yang paling umum dan hampir dikenal oleh setiap program. Format Wav PCM (Pulse Code Modulation) adalah file wav yang

(15)

tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang. Format file Wav PCM (Gunawan, 2005) dapat dilihat pada gambar 2.4

(16)

Penjelasan mengenai struktur file Wav yang dimulai dengan header RIFF dapat dilihat pada table 2.8

Tabel 2.8 Penjelasan Struktur File Wav (Gunawan, 2005) Offset Size Nama Field Deskripsi

0 4 ChunkID Terdiri atas kata “RIFF” dalam bentuk ASCII (0x52494646 dalam bentuk big-endian). 4 4 Chunksize 36 + SubChunk2Size atau lebih tepatnya:

4 + (8 + SubChunk1Size) + (8 + SubChunk2Size). Ini adalah besar seluruh file dalam byte dikurangi 8

byte untuk 2 field yang tidak termasuk dalam

hitungan: ChunkID dan ChunkSize

8 4 Format Terdiri atas kata “WAV” (0x57415645 dalam bentuk big-endian).

12 4 SubChunk1ID Terdiri atas kata “fmt “ (0x666d7420 dalam bentuk

big-endian).

16 4 SubChunk1Size 16 untuk jenis PCM.

20 2 AudioFormat PCM = 1 (Linear quantization). Nilai lebih dari 1 mengindikasikan file Wav kompresi.

22 2 NumChannels Mono = 1, Stereo = 2 dan seterusnya

24 4 SampleRate 8000, 44100, dan seterusnya dalam satuan Hz 28 4 ByteRate = SampleRate * NumChannels * BitsPerSample / 8 32 2 BlockAlign = NumChannels * BitsPerSample / 8

Jumlah byte untuk satu sampel termasuk semua

channel.

34 2 BitsPerSample 8 bits = 8, 16 bits = 16, dan seterusnya.

36 4 SubChunk2ID Terdiri atas kata “data” (0x64617461 dalam bentuk

big-endian).

40 4 SubChunk2Size = NumSamples * NumChannels * BitsPerSample / 8

(17)

Keterangan: Format “WAV” terdiri atas 2 buah SubChunk2: “fmt ” dan “data”. SubChunk “fmt “ menggambarkan format data sound.

SubChunk “data” terdiri atas ukuran besar data dan data sound sebenarnya.

Sebagai contoh, berikut ini merupakan 72 byte pertama dari sebuah file Wav yang ditampilkan dalam heksadesimal:

52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d

Berikut ini (Gambar 2.5) interpretasi dari tiap byte pada file Wav di atas:

Gambar 2.5 Interpretasi Tiap Byte pada File Wav

Selain bentuk standar dari file Wav di atas, seperti yang dikemukakan sebelumnya file

Wav dapat ditambahkan chunk-chunk lain. Penambahan ini tidak berpengaruh sebab

suatu program yang membaca file Wav jika tidak memerlukan informasi pada chunk ini akan mengabaikannya dan mencari chunk lain yang diperlukannya. Sebuah file

(18)

Tabel 2.9 Penambahan Chunk Lain Pada File Wav (Binanto, 2010) Start

Byte

Chunk Chunk Field Name contents contents (HEX)

bytes format

0 RIFF name "RIFF" 52 49 46 46 4 ASCII

4 size 176444 3C B1 02 00 4 uInt32

8 WAV name "WAV" 57 41 56 45 4 ASCII 12 Fmt name "fmt " 66 6D 74 20 4 ASCII 16 size 16 10 00 00 00 4 uInt32 20 wFormatTag 1 01 00 2 uInt16 22 nChannels 2 02 00 2 uInt16 24 nSamplesPerSec 44100 44 AC 00 00 4 uInt32 28 nAvgBytesPerSec 176400 10 B1 02 00 4 uInt32 32 nBlockAlign 4 04 00 2 uInt16 34 nBitsPerSample 16 10 00 2 uInt16

36 Rgad name "rgad" 72 67 61 64 4 ASCII

40 size 8 08 00 00 00 4 uInt32

44 fPeakAmplitude 1 00 00 80 3F 4 float32

48 nRadioRgAdjust 10822 46 2A 2 uInt16

50 nAudiophileRgAdjust 18999 37 4A 2 uInt16 52 Data name "data" 64 61 74 61 4 ASCII

56 size 176400 10 B1 02 00 4 uInt32

60 wavform data ... ... 176400 Int16

2.6 Hubungan Multimedia dengan Aplikasi Windows

Arsitektur dari pelayanan multimedia dirancang berdasarkan konsep dari extensibilitas (ekstensibility) dan device independence (kebebasan alat). Berdasarkan kata

(19)

multimedia dapat diasumsikan bahwa multimedia merupakan suatu wadah atau

penyatuan beberapa media menjadi satu (Gunawan, 2005).

Elemen-elemen dalam pembentukan aplikasi multimedia adalah teks, gambar, suara dan video. Untuk itu ekstensibilitas memungkinkan arsitektur perangkat lunak dengan mudah mengakomodasikan lebih canggih dalam teknologi tanpa perubahan pada arsitektur itu sendiri. Kebebasan alat memungkinkan aplikasi multimedia menjadi lebih mudah dikembangkan yang akan berjalan pada perangkat keras yang berbeda-beda. 3 (tiga) elemen desain dari perangkat lunak sistem mendukung ekstensibilitas dan kebebasan alat yaitu:

1. Lapisan translasi (MMSystem) yang mengisolasikan aplikasi dari driver peralatan dan memusatkan pada kode kebebasan alat.

2. Hubungan run-time yang memungkinkan lapisan translasi untuk menghubungkan dengan driver yang dibutuhkan.

3. Suatu bentuk yang diatur sesuai dan driver konsisten interface yang meminimalkan kode khusus dan membuat instalasi dan meningkatkan proses menjadi lebih mudah.

Untuk lebih jelasnya maka digambarkan bagaimana lapisan translasi menterjemahkan sebuah fungsi multimedia menjadi panggilan kepada driver alat

audio:

Gambar 2.6 Lapisan-Lapisan Multimedia dengan Windows

2.7 Binary Tree

Suatu binary tree memiliki tipikal sebagai berikut (Zakaria, 2005): a. Sebuah root

b. Terdapat node yang disebut sebagai parent atau child

Level

Level Translasi

(20)

c. Parent masing-masing memiliki maksimum 2 buah child d. Node yang tidak memiliki child disebut dengan leaf

Untuk lebih jelasnya tipikal dari binary tree diperlihatkan pada Gambar 2.7 berikut ini. Root A B C E D H I Parent Parent child child K F G leaf leaf leaf leaf leaf leaf J

Gambar 2.7 Contoh Binary Tree (Zakaria, 2005)

Child dari A: {B, C} Descendant dari A: {B, C, D, E, F, G, H, I, J, K} Child dari B: {D, E} Descendant dari B: {D, E, H, I, J, K} Child dari C: {F, G} Child dari D: {H, I} Child dari E: {J, K}

Dilihat dari kepemilikan node pada masing-masing parent dan tinggi tree, maka pohon biner (binary tree) dibedakan menjadi dua yaitu pohon biner lengkap dan pohon biner sempurna. Pohon biner lengkap (completely binary tree), yakni masing-masing node memiliki 2 buah anak atau tidak memiliki anak sama sekali (Gambar 2.8).

(21)

A B C E D H I F G

Gambar 2.8 Contoh Completely Binary Tree (Zakaria, 2005)

Sebuah pohon biner sempurna (perfect binary tree) adalah pohon biner yang lengkap yang masing-masing node memiliki 2 buah anak dan mempunyai kedalaman yang sama (jarak dari akar atau biasanya disebut juga dengan height). Gambar 2.9 memperlihatkan contoh dari pohon biner sempurna.

A

B C

E

D F G

H I J K L M N O

Gambar 2.9 Contoh Perfect Binary Tree (Zakaria, 2005)

2.7.1 Metode Untuk Menyimpan Pohon Biner

Pohon biner dapat dikonstruksi dari bahasa pemrograman primitif dengan beberapa cara. Pada suatu bahasa dengan record dan referensi, pohon biner secara tipikal dikonstruksi dengan sebuah struktur pohon node yang terdiri dari beberapa data dan referensi pada node anak sisi kiri dan node anak sisi kanan. Kadang-kadang juga

(22)

terdiri atas sebuah referensi pada parent-nya yang unik. Jika suatu node mempunyai lebih dari dua anak, beberapa pointer dari anak mungkin diset ke suatu nilai null khusus, atau ke node sentinel khusus (Zakaria, 2005).

Pohon biner juga dapat disimpan dengan array, dan jika pohon merupakan suatu pohon biner lengkap, metode ini tidak memborosokan ruang penyimpanan. Dengan pengaturan kompak tersebut, jika suatu node yang mempunyai indeks i, anak-anaknya dapat ditemukan pada indeks (2i + 1) ke sisi kiri dan (2i + 2) ke sisi kanan, sementara parent-nya ditemukan pada indeks floor ((i−1)/2) dengan asumsi akar mempunyai indeks nol. Metode ini menguntungkan sebab lebih kompak dari segi penyimpanan dan referensi lokasi yang lebih baik, terutama selama pemindahan pada urutan awal. Bagaimanapun juga, ini memerlukan memori yang saling berdampingan, sulit bertambah, dan menghabiskan ruang proporsional sebesar 2h − n untuk sebuah pohon dengan height (h) dan node (n).

Array disusun atau ditempatkan secara level order traversal seperti terlihat

pada Gambar 2.10 berikut ini.

A

B C

E

(23)

2.8 Kompresi Data

Kompresi data dilakukan untuk mereduksi ukuran data atau file. Dengan melakukan kompresi atau pemadatan data maka ukuran file atau data akan lebih kecil sehingga dapat mengurangi waktu transmisi sewaktu data dikirim dan tidak banyak banyak menghabiskan ruang media penyimpan.

2.8.1 Teori Kompresi Data

Dalam makalahnya di tahun 1948, “A Mathematical Theory of Communication”, Claude E. Shannon merumuskan teori kompresi data. Shannon membuktikan adanya batas dasar (fundamental limit) pada kompresi data jenis lossless. Batas ini, disebut dengan entropy rate dan dinyatakan dengan simbol H. Nilai eksak dari H bergantung pada informasi data sumber, lebih terperinci lagi, tergantung pada statistikal alami dari data sumber. Adalah mungkin untuk mengkompresi data sumber dalam suatu bentuk lossless, dengan laju kompresi (compression rate) mendekati H. Perhitungan secara matematis memungkinkagambar 2.11

Gambar 2.11 Claude E. Shannon

Shannon juga mengembangkan teori mengenai kompresi data lossy. Ini lebih dikenal sebagai rate-distortion theory. Pada kompresi data lossy, proses dekompresi data tidak menghasilkan data yang sama persis dengan data aslinya. Selain itu, jumlah

distorsi atau nilai D dapat ditoleransi. Shannon menunjukkan bahwa, untuk data

sumber (dengan semua properti statistikal yang diketahui) dengan memberikan pengukuran distorsi, terdapat sebuah fungsi R(D) yang disebut dengan rate-distortion

(24)

function. Pada teori ini dikemukakan jika D bersifat toleransi terhadap jumlah distorsi,

maka R(D) adalah kemungkinan terbaik dari laju kompresi.

Ketika kompresi lossless (berarti tidak terdapat distorsi atau D = 0), kemungkinan laju kompresi terbaik adalah R(0) = H (untuk sumber alphabet yang terbatas). Dengan kata lain, laju kompresi terbaik yang mungkin adalah entropy rate. Dalam pengertian ini, teori rate-distortion adalah suatu penyamarataan dari teori kompresi data lossless, dimana dimulai dari tidak ada distorsi (D = 0) hingga terdapat beberapa distorsi (D > 0).

Teori kompresi data lossless dan teori rate-distortion dikenal secara kolektif sebagai teori pengkodean sumber (source coding theory). Teori pengkodean sumber menyatakan batas fundamental pada unjuk kerja dari seluruh algoritma kompresi data. Teori tersebut sendiri tidak dinyatakan secara tepat bagaimana merancang dan mengimplementasikan algoritma tersebut. Bagaimana pun juga algoritma tersebut menyediakan beberapa petunjuk dan panduan untuk memperoleh unjuk kerja yang optimal. Dalam bagian ini, akan dijelaskan bagaimana Shannon membuat model dari sumber informasi dalam istilah yang disebut dengan proses acak (random process). Di bagian selanjutnya akan dijelaskan mengenai teorema pengkodean sumber lossless Shannon, dan teori Shannon mengenai rate-distortion. Latar belakang mengenai teori probabilitas diperlukan untuk menjelaskan teori tersebut.

2.8.2 Algoritma Kompresi Huffman

Algoritma kompresi Huffman dinamakan sesuai dengan nama penemunya yaitu David Huffman, seorang profesor di MIT (Massachusets Instuate of Technology). Kompresi Huffman merupakan algoritma kompresi lossless dan ideal untuk mengkompresi teks atau file program. Ini yang menyebabkan mengapa algoritma ini banyak dipakai dalam program kompresi (Wibowo, 2012).

Kompresi Huffman termasuk dalam algoritma keluarga dengan variable

codeword length. Ini berarti simbol individual (karakter dalam sebuah file teks sebagai

contoh) digantikan oleh urutan bit yang mempunyai suatu panjang yang nyata (distinct

length). Jadi simbol yang muncul cukup banyak dalam file akan memberikan urutan

yang pendek sementara simbol yang jarang dipakai akan mempunyai urutan bit yang lebih panjang. Contoh praktis berikut ini menunjukkan cara kerja dari algoritma Huffman. Misalkan akan dikompresi potongan data seperti berikut ini:

(25)

ACDABA

Distribusi frekuensi untuk karakter di atas seperti berikut ini: Karakter A B C D

Frekuensi 3 1 1 1

Selanjutnya dibentuk node seperti bentuk berikut ini berdasarkan frekuensi di atas, disusun mulai dari frekuensi terbesar hingga terkecil. Kemudian dibentuk pohon Huffman agar didapat kode simbol atau kode pengganti untuk karakter-karakter di atas. A 3 B 1 C 1 D 1

Kemudian diurutkan dari node dengan frekuensi terkecil hingga terbesar

A 3 B 1 C 1 D 1

Selanjutnya dua buah node terkecil digabung membentuk satu node baru dimana frekuensinya merupakan penjumlahan dari keduanya seperti pada Gambar 2.12. D 1 A 3 C 1 B 1 2

Gambar 2.12 Penggabungan dua node terkecil

Setelah itu diurutkan kembali berdasarkan frekuensi tiap node secara urutan menaik seperti pada Gambar 2.13.

. D 1 A 3 C 1 B 1 2

(26)

Kemudian dua buah node terkecil digabung menjadi satu kembali untuk membentuk node baru seperti pada Gambar 2.14.

D 1 A 3 C 1 B 1 2 3

Gambar 2.14 Penggabungan dua node terkecil kembali

Setelah itu diurutkan kembali berdasarkan frekuensi tiap node secara urutan menaik seperti pada Gambar 2.15.

D 1 A 3 C 1 B 1 2 3

Gambar 2.15 Pengurutan Frekuensi secara menaik kembali

Kemudian dua node terakhir ini digabung membentuk satu pohon tunggal yang disebut dengan pohon Huffman dengan node paling atas merupakan root seperti pada Gambar 2.16.

(27)

D 1 A 3 C 1 B 1 2 3 6

Gambar 2.16 Penggabungan dua node terakhir membentuk pohon tunggal

Langkah terakhir adalah memberikan label bit “0” untuk setiap sisi kiri dari pohon dan label bit “1” untuk setiap sisi kanan dari pohon seperti pada Gambar 2.17.

. D 1 A 3 C 1 B 1 2 3 6 0 0 0 1 1 1

Gambar 2.17 Pemberian label bit

Karena potongan data tersebut terdiri atas 6 karakter, maka teks tersebut terdiri atas 6 byte atau 48 bit. Dengan Huffman encoding, akan dicari simbol yang paling sering muncul (dalam kasus ini adalah karakter ‘A’ muncul sebanyak 3 kali). dan kemudian sebuah pohon (tree) akan dibentuk untuk menggantikan simbol dengan urutan bit yang lebih pendek. Pada kasus khusus ini, algoritma akan menggunakan tabel pengganti sebagai berikut: A = 1, B = 010, C = 011, D = 00. Jika code word

(28)

dipakai untuk mengkompresi file, maka data yang telah dikompresi akan terlihat seperti berikut ini. ACDABA.

10110010101

Ini berarti hanya 11 bit yang dipakai selain 48 bit, berarti rasio kompresi adalah 4 : 1 untuk file tersebut.

Huffman encoding dapat dioptimalkan dengan dua cara yang berbeda yaitu sebagai berikut:

1. Adaptive Huffman Code secara dinamis mengubah code word menurut

perubahan dari probabilitas dari simbol.

2. Extended Huffman Compression dapat meng-encode grup dari simbol daripada

pada melakukan encode pada simbol tunggal.

Algoritma kompresi Huffman secara umum efisien dalam mengkompresi teks atau file program. Untuk file image biasanya dipakai algoritma yang lain. Kompresi Huffman secara umum dipakai dalam program kompresi seperti PKZip, LHA, GZ, ZOO, dan ARJ. Algoritma ini juga dipakai dalam kompresi JPEG dan MPEG.

Adapun bentuk algoritma dari Huffman dalam membentuk sebuah pohon biner adalah sebagai berikut:

1. Dimulai dengan penyusunan frekuensi simbol sebagai frekuensi dari pohon 2. Jika terdapat lebih dari satu pohon:

a. Carilah dua pohon dengan jumlah weight yang paling kecil

b. Gabungkan dua pohon tersebut menjadi satu dan mempunyai nilai setara dengan jumlah keduanya, atur salah satunya yang bernilai paling kecil sebagai child sisi kiri dan yang lainnya sebagai child sisi kanan

3. Lakukan langkah di atas hingga membentuk satu pohon biner tunggal

4. Untuk setiap child sisi kiri beri simbol ‘0’ dan beri simbol ‘1’ untuk merepresentasi child sisi kanan.

(29)

2.9 Penelitian Terdahulu

Penelitian terdahulu tentang algoritma Huffman juga telah dilakukan. Penelitian ini berfungsi sebagai bahan referensi dalam pengompresan file audi WAV agar lebih optimal. Berbagai penelitian terdahulu dapat dilihat pada table 2.10.

Tabel 2.10 Penelitian Terdahulu

No Judul Pengarang Tahun Kelebihan

1. Kompresi teks menggunakan metode

Huffman untuk menghemat karakter

pada short message service(SMS)

Ahmadu Malik Dana Logistia

2010 Untuk menghemat biaya pemakaian sms. Dengan menggunakan aplikasi kompresi SMS dan menghemat biaya pemakain samapi 35% 2. Aplikasi kompresi citra dengan algoritma Huffman menggunakan borland delphi 7 Dyah Kusuma Ningrum 2010 Untuk mengimplementasikan algoritma Huffman pada proses kompresi

dan dekompresi data yang berupa citra kedalam program aplikasi 3. Perbandingan algoritma Huffman Static dengan algoritma Huffman Adaptif pada kompresi data teks

Danny Dinas Sulistio

2010 Waktu iterasi yang diperlukan oleh alggo ritma Huffman

Static untuk melakukan kompresi dan dekompresi adalah

cenderung lebih kecil dibanding algoritma

Gambar

Gambar 2.1  Konversi Sinyal Analog ke Digital (Binanto, 2010).
Tabel  2.1   Frekuensi Sampling dan Kualitas Suara yang Dihasilkan   (Gunawan, 2005)
Gambar  2.3   Layout File Wav (Gunawan, 2005)
Tabel  2.3   Nilai Jenis Chunk RIFF (Gunawan, 2005)  Offset  Ukuran  Deskripsi  Nilai
+7

Referensi

Dokumen terkait

Dalam situasi-situasi tertentu, akuntansi aktivitas yaitu suatu cara dari penggunaan informasi mengenai biaya tidak langsung, dapat memberikan wawasan penting dengan cara

Dalam Panel Files terdapat toolbar yang membantu anda dalam membengun web. Dalam panel ini, Anda dapat melihat deretan file-file yang ada dalam web anda dan

Magic Bytes atau magic number atau dikenal juga dengan sebutan signature file adalah kumpulan byte-byte pada sebuah file yang dapat membedakan antara jenis file yang

Kompresi metode RLE adalah menjumlahkan pengulangan byte atau karakter yang sama berturut-turut dan menampilkan hanya sebuah karakter yang mengalami pengulangan disertai

Faktor penting kompresi data, terdapat empat faktor penting yang perlu diperhatikan, yaitu: Time Process (waktu yang dibutuhkan dalam menjalankan proses), Completeness

Proses kompresi merupakan proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat namun tetap dapat mewakili kuantitas informasi

Ketersediaan berbagai jenis informasi yang lengkap dan up to date mengenai produk O.P.I dalam blog tersebut akan membuat konsumen dan masyarakat makin mengenal produk O.P.I

(2005: 179-180), terdapat tiga langkah dalam mengembangkan suatu daftar mengenai apa yang dibutuhkan oleh sistem untuk menyimpan sebuah informasi. Langkah pertama