BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Kinerja Algoritma Arithmetic coding
Dalam penelitian ini akan dilakukan analisis dan perancangan perangkat lunak pengkompresian file audio yang bertipe wav, MP3 serta Midi dengan menggunakan metode Arithmetic coding. Proses kompresi data didasarkan pada kenyataan bahwa pada hampir semua jenis data selalu terdapat pengulangan pada komponen data yang dimilikinya, misalnya di dalam suatu data audio akan terdapat pengulangan penggunaan angka dari huruf 0 sampai 9 atau dari a sampai dengan huruf z. Kompresi data melalui proses encoding berusaha untuk menghilangkan unsur pengulangan ini dengan mengubahnya sedemikian rupa sehingga ukuran data menjadi lebih kecil.
Proses pengurangan unsur pengulangan ini dapat dilakukan dengan memakai beberapa teknik kompresi. Misalnya jika suatu komponen muncul berulang kali dalam suatu data, maka komponen tersebut tidak harus dikodekan berulang kali pula tapi dapat dikodekan dengan menulis frekuensi munculnya komponen dan di mana komponen tersebut muncul. Teknik kompresi data lainnya, berusaha untuk mencari suatu bentuk kode yang lebih pendek untuk suatu komponen yang sering muncul.
Keberhasilan pengkompresian data tergantung dari besarnya data itu sendiri dan tipe data yang memungkinkan untuk dikompresi. Biasanya beberapa komponenkomponen di dalam data yang sifatnya lebih umum dari yang lainnya banyak dipakai pada algoritma kompresi data yang memanfaatkan sifat ini. Hal ini dinamakan redundancy. Makin besar redundancy di dalam data semakin tinggi pula tingkat keberhasilan kompresi data. Dalam proses kompresi data, terdapat konsep umum probabilitas yang menunjukkan suatu ukuran berapa banyak informasi yang terdapat dalam suatu rangkaian data atau yang disebut dengan entropy yang dapat direpresentasikan secara matematis.
Algoritma kompresi Arithmetic Coding menggantikan suatu deret simbol input dalam suatu file data dengan sebuah bilangan menggunakan proses aritmatika. Semakin panjang dan semakin kompleks pesan yang dikodekan, semakin banyak bit yang diperlukan untuk proses kompresi dan dekompresi data. Output dari Arithmetic Coding ini adalah satu angka yang lebih kecil dari 1 dan lebih besar atau sama dengan 0. Angka ini secara unik dapat didekompresikan sehingga menghasilkan deretan simbol yang dipakai untuk menghasilkan angka tersebut. Untuk menghasilkan bilangan output tersebut, tiap simbol yang akan dikompresi diberi satu set nilai probabilitas.
3.1.1
Pembacaan File Audio
Sebelum file audio dikompresi, terlebih dahulu dilakukan pembacaan file audio untuk mendapatkan data berupa header dalam ukuran byte (8 bit) bentuk pasangan bilangan heksadesimal.
a. Audio Format WAV
File wav adalah file audio hasil perekaman yang belum terkompresi yang terdiri dari header-header yang berisi informasi tentang file audio. Sebagai contoh data header yang diperoleh dari file audio format WAV seperti pada Gambar 3.1.
52 48 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 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 c0 1a 0d 00 7f 11 00 22 07 3d 3d 0 3d 0 2 9a 2a 4f 3e 3d 00 10 10 10 03 3d 10 10 2 f 10 10 12 00 12 10 25 23 13 00 04 11 23 00 00 12 11 32 2a 2a 9f 25 10 -10 02 12 10 53 13 00 a6 11 12 23 00 0f 10 10 10 12 10 5d 23 13 70 11 26 23 00 01 13 9a 2a 2f 10 10 10 12 10 53 90 56 11 23 00 01 13 0e 22 52 9a 2a 10 3d 10 02 2f 10 10 10 12 -10 11 33 13 00 07 3d 10 02 3f 10 10 12 12 53 13 30 30 37 07 13 3d 10 02 f 0 10 10 12 -10 53 14 13 00 07 3d 10 02 f 0 10 00 12 26 25 Gambar 3.1 Data File Audio WAV Dalam Hexa
Dari file audio dengan format WAV di atas :
a. Empat byte pertama selalu berisi 52 48 46 46 (hexa) yang jika di konvensi mempunyai arti R =52, I =48, F= 46, F = 46 sama dengan RIFF.
b. Empat byte berikutnya berisi 24 08 00 00 menyatakan ukuran file audio yaitu 24=36, 08=8, 00=0, 00=0 yang sama dengan 36800, maka ukuran filenya adalah 36800 kb – I kb = 36799 kb. c. Empat byte berikutnya 57 41 56 45 menyatakan jenis file: 57=W, 41=A, 56=V, 45=E.
d. Empat byte berikutnya adalah 66 6d 74 20 menyatakan ID “fmt”, 66=f, 6d=m, 74=t dan 20=spasi kosong. e.
Empat byte berikutnya adalah 10 00 00 00 yang menyatakan panjang informasi, 10 = 16, 00=0, 00=0, 00=0 semuanya bernilai 16.
f. Empat byte berikutnya adalah 01 00 02 00 yang bernilai 1 dan 2 channel (stereo). g. Empat byte berikutnya adalah 22 56 00 00 yang menyatakan sample rate dengan nilai 22=”, 56=V, 00=0, 00=0. h. Empat byte berikutnya adalah 88 58 01 00 yang menyatakan byte rate dengan nilai 22=”, 56=V, 00=0, 00=0. i. Dua byte berikutnya adalah BlockAlign yang bernilai 04 00 yang menyatakan yang menyatakan ukuran data untuk satu sample penuh dalam byte. Yang dimaksud dengan satu sample penuh adalah satu sample yang mewakili nilai dari sample pada semua channel pada suatu waktu. j. Dua byte berikutnya adalah nilai bit per sampel (BitsPerSample) yang bernilai 10 00 adalah 16 dan 00 = 16 bit per sampel untuk sampel right channel maupun untuk sampel left channel.
k. Empat byte berikutnya adalah 64 61 74 61 yang menyatakan ID dengan nilai 64=d, 61=a, 74=t, 61=a dengan arti “data” yang menyatakan data sampel digital audio.
l. Enam belas (16) byte berikutnya adalah sampel audio right channel sampel 1 sampai sampel ke 4 dengan nilai 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9. m. Enam belas (16) byte berikutnya adalah sampel audio left channel sampel 5 sampai sampel ke 8 dengan nilai 34 e7 23 a6 3c f2 24 f2 11 c0 1a 0d 00 7f 11 00. n. Lanjutkan sampai semua data sampel audio diperoleh.
b. Audio Format MIDI Suatu file MIDI pada dasarnya terdiri dari :
1. Header chunks hanya satu yang berisi informasi file format dan lainnya.
2. Track chunks ada beberapa adalah sama seperti track pada multi-track tape deck, satu track untuk tiap voice, tiap staf, tiap instrument atau apapun yang diinginkan. Tidak seperti digital audio files antara lain .wav, .aiff maupun MP3, file MIDI tidak perlu meng-capture dan men-store sound sesungguhnya. File midi merupakan kumpulan daftar pesan dan instruksi untuk memainkan alat musik. Ini membuat ukuran file MIDI jauh lebih kecil dibanding ukuran file audio lainnya. Event pada file MIDI dapat diedit, musiknya juga dapat di-rearrange, diedit dan dapat dibuat lebih interaktif jika diinginkan.
Struktur data file MIDI adalah:
+[+ ... dan seterusnya].
4D 54 72 6B 00 00 00 06 ff ff nn nn dd dd 11 c0 1a 0d 00 7f 11 00 22 07 3d 3d 0 3d 0 2 9a 2a 4f 3e 3d 00 10 10 10 03 3d 10 10 2 f 10 10 12 00 12 10 25 23 13 00 04 11 23 00 00 12 11 32 2a 2a 9f 25 10 -10 02 12 10 53 13 00 a6 11 12 23 00 0f 10 10 10 12 10 5d 23 13 70 11 26 23 00 01 13 9a 2a 2f 10 10 10 12 10 53 90 56 11 23 00 01 13 0e 22 52 9a 2a 10 3d 10 02 2f 10 10 10 12 -10 11 33 13 00 07 3d 10 02 3f 10 10 12 12 53 13 30 30 37 07 13 3d 10 02 f 0 10 10 12 -10 53 14 13 00 07 3d 10 02 f 0 10 00 12
Gambar 3.2 Data File Audio MIDI Dalam Hexa File midi terdiri dari header chunk akan selalu tampak seperti: 4D 54 72 6B 00 00 00 06 ff ff nn nn dd dd. Header chunk selalu berada pada awal dari suatu file dan mendeskripsikan file dalam tiga cara :
1. 4 kode ASCII pertama dibaca sebagai MThd.
2. Setelah MThd, ada 4-byte size yang menunjukkan header length yang selalu tampak seperti 00 00 00 06.
3. Selanjutnya adalah header information yang sesungguhnya berupa 6 bytes : a. ff ff adalah file format. Ada 3 macam format yaitu 0-single-track, 1multiple tracks synchronous, 2-multiple tracks, asynchronous. b. Nn nn adalah jumlah tracks dalam file midi. c. dd dd adalah jumlah dari delta-time ticks per quarter note. Header untuk satu track akan tampak seperti: 4D 54 72 6B xx xxxxxx, dimana 4 kode ASCII pertama dibaca sebagai MTrk. Setelah MTrk ada 4-byte yang menunjukkan panjang dari satu track tidak termasuk track header. Setelah xx xxxxxx, adalagi serangkaian track event.
c.
Audio Format MP3
MP3 adalah salah satu dari pengkodean dalam digital audio yang terdiri dari spesifikasi dari layer-layer sebagai berikut :
4.
Layer 1: pada 384 kbit/s
5.
Layer 2: pada 256...384 kbit/s
6.
Layer 3: pada 224...320 kbit/s
File MP3 terdiri dari header chunk akan selalu diawali dengan: 4D 50 03 00 06 00 00 00 00 00 00. Header chunk selalu berada pada awal dari suatu file dan mendeskripsikan file dalam tiga cara :
1. 4 kode Hexa pertama dibaca sebagai MP30.
2. Setelah MP30, ada 4-byte size yang menunjukkan header length yang tampak seperti 06 00 00 00. 3. Selanjutnya adalah header information yang berupa 4 bytes: 00 00 00 00 adalah file format.
Data file audio MP3 hasil pembacaan terdiri dari pasangan bilangan hexadicimal seperti pada Gambar 3.3.
4D 50 03 00 06 00 00 00 00 00 00 11 c0 1a 0d 00 7f 11 00 22 07 3d 3d 0 3d 0 2 9a 2a 4f 3e 3d 00 10 10 10 03 3d 10 10 2 f 10 10 12 00 12 10 25 23 13 00 04 11 23 00 00 12 11 32 2a 2a 9f 25 10 -10 02 12 10 53 13 00 a6 11 12 23 00 0f 10 10 10 12 10 5d 23 13 70 11 26 23 00 01 13 9a 2a 2f 10 10 10 12 10 53 90 56 11 23 00 01 13 0e 22 52 9a 2a 10 3d 10 02 2f 10 10 10 12 -10 11 33 13 00 07 3d 10 02 3f 10 10 12 12 53 13 30 30 37 07 13 3d 10 02 f 0 10 10 12 -10 53 14 13 00 07 3d 10 02 f 0 10 00 12
Gambar 3.3 Data File Audio MP3 Dalam Hexa
3.1.2 Langkah-Langkah Kompresi Arithmetic Coding
Secara umum langkah–langkah yang dilakukan untuk kompresi file audio dengan metode Arithmetic Coding adalah sebagai berikut :
1. Buka file audio untuk membaca header-header dan sample audio. 2. Baca file audio untuk mendapatkan data sample. 3. Ambil nilai sample audio ke 1 sampai ke n. 4. Susun nilai sample audio pada senarai berantai dengan karakter khusus pembatas antara data sample audio (#).
Sebagai contoh pada file audio diperoleh sample audio yang akan di-encoding seperti pada Gambar 3.4.
52 48 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 -1 10 -1 0 07 3d 0 -1 0 07 07 1 -1 3d 0 #2 07 3d 3d 0 3d 0 2 9a 2a 4f 3e 3d 0 0 -1-10 -1 #3 3d 10 0 2 f 10 10 -1 0 12 -10 5 -3 13 0 0 #4 11 23 0 0 0 -1 -1 -3 -2 9a 2a 9 f #5 10 -1 0 12 -10 5 -3 13 0 0 -6 11 #6 23 0 f 10 10 -1 0 12 -10 5 -3 13 #7 0 -6 11 6 23 0 0 0 -1 -1 -3 -2 #8 9a 2a f 10 10 -1 0 12 -10 5 -3 #9 0 -6 11 23 0 0 0 -1 -1 -3 0 -3 -2 9a 2a #10 3d 10 0 2 f 10 10 -1 0 12 -10 #11 -3 13 0 0 - 07 3d 10 0 2 f 10 10 #12
Gambar 3.4 Nilai Sample Audio Keterangan :
1. Data audio dengan tulisan miring (italic) adalah sample audio yang dikompres. 2. Data audio dengan tulisan normal adalah header-header file audio.
Dari data hasil pembacaan sample audio diperoleh data mulai dari sample ke 1 dengan tanda #1 sampai sample ke 12 dengan tanda #12 pada blok terakhir data sample audio.
Misalnya dari nilai sample 1 audio (#1) di atas yang akan di-encoding adalah : -1, 10, -1, 0, 07, 3d, 0, -1, 0, 07, 07, -1, -1, 3d dan 0.
Dari data yang akan di-encoding di atas, maka akan dapat dibuat
sebuah tabel
probabilitas seperti Tabel 3.1.
Tabel 3.1 Tabel Probabilitas No 1 2 3 4 5
Nilai -1 10 07 3d 0
Frekuensi 5 1 3 2 4
Probabilitas 5/15=0,33 1/15=0,06 3/15=0,20 2/15=0,13 4/15=0,26
Selanjutnya akan diperoleh tabel range probabilitas seperti Tabel 3.2.
Tabel 3.2 Tabel Range Probabilitas No 1 2 3 4 5
Nilai -1 10 07 3d 0
Frekuensi Probabilitas 5 5/15=0,33 1 1/15=0,06 3 3/15=0,20 2 2/15=0,13 4 4/15=0,26
Range 0,0 ≤ -1 < 0,33 0,33 ≤ 10 < 0,39 0,39 ≤ 07 < 0,59 0,59≤ 3d < 0.72 0,72 ≤ 0 < 0,98
Keterangan : 0,0 ≤ -1 < 0,33
: Nilai “-1” memiliki range dari 0,0 sampai dengan 0,33
0,33 ≤ 10 < 0,39 : Nilai “10” memiliki range dari 0,33 sampai dengan 0,39 0,39 ≤ 07 < 0,59 : Nilai “07” memiliki range dari 0,39 sampai dengan 0,59 0,59≤ 3d < 0.72 : Nilai “3d” memiliki range dari 0,59 sampai dengan 0,72 0,72 ≤ 0 < 0,98
: Nilai “0” memiliki range dari 0,72 sampai dengan 0,98
Untuk angka -1, 10, -1, 0, 07, 3d, 0, -1, 0, 07, 07, -1, -1, 3d dan 0 dari sampel audio dilakukan proses Arithmetic encoding sebagai berikut :
a. Perhitungan Nilai -1
Low = 0,0 High = 1,0 CR = High - Low = 1,0 - 0,0 =1 High_range (-1) = 0,33 Low_range (-1) = 0,0 Kemudian, didapat nilai-nilai berikut. High
= Low + CR * High_Range (-1) = 0,0 + 1 * 0,33 = 0,33
Low
= Low + CR * Low_Range (-1)
= 0,0 + 1 * 0,0 =0
b. Perhitungan Nilai Sampel 10
Low(-1) = 0 High(-1) = 0,33 CR = High(-1) – Low (-1) = 0,33 - 0 = 0,33 High_range (10) = 0,39 Low_range (10) = 0,33 Kemudian, didapat nilai-nilai berikut. High
= low(-1) + CR* high_range (10) = 0 + 0,33 * 0,39 = 0,1287
Low
= low(-1) + CR * low_range (10) = 0 + 0,33 * 0,33 = 0,1089
c. Perhitungan Nilai Sampel 07
Low(10) = 0,1089 High(10) = 0,1287 CR = High - Low = 0,1287– 0,1089 = 0,0198 High_range (07) = 0,59 Low_range (07) = 0,39 Kemudian, didapat nilai-nilai berikut. High
= low(10) + CR* high_range (07) = 0,1089 + 0,0198 * 0,59 = 0,120582
Low
= low(10) + CR * low_range (07) = 0,1089 + 0,0198 * 0,39 = 0,116622
d. Perhitungan Nilai Sampel 3d
Low = 0,116622 High = 0,120582 CR = High - Low = 0,120582 – 0,116622 = 0,00396 High_range (3d) = 0,72 Low_range (3d) = 0,59 Kemudian, didapat nilai-nilai berikut. High
= low + CR* high_range (15) = 0,116622 + 0,00396 * 0,72 = 0,1194732
Low
= low + CR * low_range (15) = 0,116622 + 0,00396 * 0,59 = 0,1189584
e. Perhitungan Nilai Sampel 0
Low = 0,1189584 High = 0,1194732 CR = High - Low = 0,1194732 – 0,1189584 = 0,0005148 High_range (0) = 0,98 Low_range (0) = 0,72 Kemudian, didapat nilai-nilai berikut. High
= low + CR* high_range (0) = 0,1189584 + 0,0005148 * 0,98 = 0,119462904
Low
= low + CR * low_range (0) = 0,1189584 + (0,0005148 * 0,72) = 0,119329056
Dalam bentuk tabel data hasil encoding dapat dilihat seperti pada Tabel 3.3.
Tabel 3.3 Hasil Encoding Sampel Audio No
Nilai
Awal
Low
High
CR
0
1
1
1
-1
0,0
0,33
1
2
10
0,1089
0,1287
0,33
3
07
0,116622
0,120582
0,0198
4
3d
0,1189584
0,1194732
0,00396
5
0
0,119329056
0,119462904
0,0005148
Dari proses ini, nilai low untuk data terakhir adalah :
nilai low = 0,119329056 yang akan digunakan untuk menggantikan sample audio yang telah di-encoding yaitu nilai sample audio -1, 10, -1, 0, 07, 3d, 0, -1, 0, 07, 07, -1, -1, 3d dan 0. Selanjutnya sample 1 adalah #1 -1 10 -1 0 07 3d 0 -1 0 07 07 -1 -1 3d 0 berubah menjadi #1 0,119329056 Selanjutnya untuk sample 2 gantikan dengan nilai low menjadi #2 0,xxxxxxxxx dan selanjutnya.
Bentuklah senarai yang didahului dengan nilai probabilitas sample 1 sebagai berikut : #0,0≤-1<0,33#0,33≤10<0,39#0,39≤07<0,59#0,59≤ 3d<0.72#0,72≤0<0,98#|#1 0,119329056
Nilai Probabilitas Sample 1
simbol sample 1
Tabel nilai probabilitas dan simbol sample 1 akan disimpan dalam format teks sebagai sumber data pada proses dekoding untuk sample 1 yang akan digantikan dengan data sample 1.
3.1.3 Langkah-Langkah Dekompresi Arithmetic Coding
Untuk melakukan melakukan dekompresi file audio, maka dilakukan proses decoding, dengan cara :
1: ambil encoded symbol (ES) 2: repeat 3: cari range dari simbol yang melingkupi encoded symbol (ES) 4: cetak simbol 5: CodeRange ← high_range – low_range 6: ES = ES – low_range 7: ES = ES/CodeRange 8: until simbol habis
Dalam hal ini simbol habis dapat ditandai dengan dengan simbol khusus yang dalam penelitian ini digunakan tanda #. Untuk pesan yang telah di-encode, proses decoding berikut dilakukan.
ES = 0,119329056
Bandingkan nilai ini dengan range simbol berikut dengan Tabel Range Probabilitas berikut ini : Tabel 3.4 Tabel Range Probabilitas No 1 2 3 4 5
Nilai -1 10 07 3d 0
Frekuensi 5 1 3 2 4
Probabilitas 5/15=0,33 1/15=0,06 3/15=0,20 2/15=0,13 4/15=0,26
Range 0,0 ≤ -1 < 0,33 0,33 ≤ 10 < 0,39 0,39 ≤ 07 < 0,59 0,59 ≤ 3d < 0.72 0,72 ≤ 0 < 0,98
Nilai ES = 0,119329056, didapatkan range simbol yang pertama, yaitu simbol/angka “-1”.
Low_range = 0,0 High_range = 0,33 CR = high_range – low_range 0,33 – 0,0 = 0,33 ES = ES – low_range = 0,119329056 – 0,0 = 0,119329056 ES = ES / CR = 0,119329056 / 0,33 = 0,3616032
Nilai ES = 0,3616032, didapatkan range simbol angka yang kedua, yaitu nilai “10”.
Low_range = 0,33 High_range = 0,39
CR = high_range – low_range = 0,39 – 0,33 = 0,06 ES = ES – low_range = 0,3616032 – 0,33 = 0,0316032 ES = ES / CR = 0,0316032 / 0,06 = 0,52672
Nilai ES = 0,52672, didapatkan range simbol angka yang kedua, yaitu nilai “07”.
Low_range = 0,39 High_range = 0,59 CR = high_range – low_range 0,59 – 0,39 = 0,2 ES = ES – low_range = 0,52672– 0,39 = 0,13672 ES = ES / CR = 0,13672/ 0,2 = 0,6836
Nilai ES = 0,6836, didapatkan range simbol angka yang kedua, yaitu nilai “3d”.
Low_range = 0,59 High_range = 0,72 CR = high_range – low_range 0,72 – 0,59 = 0,13 ES = ES – low_range = 0,6836– 0,59 = 0,0936
ES = ES / CR = 0,0936/ 0,13 = 0,72
Nilai ES = 0,72, didapatkan range simbol angka yang kedua, yaitu nilai “0”.
Low_range = 0,72 High_range = 0,98 CR = high_range – low_range 0,98 – 0,72 = 0,26 ES = ES – low_range = 0,72– 0,72 =0 ES = ES / CR = 0/ 0,26 =0
Sampai disini perhitungan dihentikan karena diperoleh nilai ES = 0.
Hasil perhitungan di atas dapat dilihat pada Tabel 3.5.
Tabel 3.5 Hasil Decoding Sampel Audio No
ES
Nilai
Low
High
CR
1
0,3616032
-1
0,0
0,33
0,33
2
0,52672
10
0,33
0,39
0,06
3
0,6836
07
0,39
0,59
0,2
4
0,72
3d
0,59
0,72
0,13
5
0 (Finish)
0
-
-
-
Maka diperoleh ES = 0,3616032 yang sesuai dengan nilai sample #1 audio “-1, 10, 1, 0, 07, 3d, 0, -1, 0, 07, 07, -1, -1, 3d dan 0”
3.2
Perancangan Sistem
Usulan dalam perancangan perangkat lunak kompresi audio dengan metode Arithmetic Coding adalah dalam model diagram konteks dan dalam model Data Flow Diagram yang terdiri dari proses-proses yang digambarkan secara rinci serta rancangan antarmuka (interface) yang terdiri dari tampilan sebagai perantara antara sistem dengan User (pengguna).
3.2.1 Rancangan Diagram Konteks Sistem / Aplikasi
Rancangan Diagram Konteks Kompresi adalah diagram menggambarkan aliran data audio dari User (eksternal entiti) ke sistem kompresi secara global. Pada sistem kompresi terdapat proses-proses pengolahan audio untuk mendapatkan data dan proses kompresi dengan algoritma Arithmetic Coding. Selanjutnya audio hasil kompresi akan kembali ke User. Rancangan Diagram Konteks Kompresi dapat dilihat pada Gambar 3.5.
File Audio
File Audio Terkompresi USER
Kompresi/ Dekompresi File Audio
File Audio Terkompresi File Audio
Gambar 3.5 Diagram Konteks Kompresi Audio
Keterangan:
Dari diagram konteks di atas dapat dilihat hanya ada satu entitas pada sistem kompresi yaitu User sebagai pengguna sistem dimana User memberikan data berupa file audio yang berformat wav, Midi maupun MP3.
3.2.2 Rancangan DFD Level 0 Proses Kompresi
Rancangan DFD berfungsi untuk menggambarkan sistem dalam melakukan kompresi yang terdiri dari proses Reading yaitu pembacaan header-header pada file Audio, proses Encoding untuk mendapatkan simbol (nilai Low) serta proses Replacing Sample yaitu mengganti nilai sample audio dengan nilai Low perhitungan.
Rancangan DFD Level 0 Kompresi dapat dilihat pada Gambar 3.6.
File Audio K-1.0 Reading
USER
File Audio Terkompresi
P-3.x Replacing Sample
Sampel Audio
Nilai Low
Gambar 3.6 DFD Level 0 Proses Kompresi
K-2.x Encoding
3.2.3
Rancangan DFD Level 0 Proses Dekompresi
Rancangan DFD berfungsi untuk menggambarkan sistem dalam melakukan dekompresi yang terdiri dari proses Baca file Audio untuk mendapatkan nilai Low dari sample audio, proses Decoding untuk mengubah nilai Low menjadi nilai sample audio kembali serta proses Replacing Low yaitu mengganti nilai Low dengan nilai sample audio. Rancangan DFD Level 0 Dekompresi sample audio dapat dilihat pada Gambar 3.7.
File Audio Terkompresi D-1.0 Reading
USER
File Audio Nilai Low
Nilai Sampel Audio D-3.x Replacing Low
D-2.x Decoding
Gambar 3.7 DFD Level 0 Proses Dekompresi
3.2.4 Rancangan DFD Level 1 Proses K-2.x Encoding
Rancangan DFD ini berfungsi untuk menggambarkan proses encoding sample audio hasil pembacaan untuk mendapatkan simbol (ES) setiap sample. Pada rancangan ini terdapat empat proses yaitu proses K-2.1 Baca Data Sample, K-2.2 Kalkulasi Frekuensi Sample, K-2.3 Kalkulasi Probabilitas, K-2.4 Kalkukasi Low.
Rancangan DFD Level 1 Proses K-2.x Encoding dapat dilihat pada Gambar 3.8.
Sample Audio Sample Audio
K-2.4 Kalkulasi Low
K-2.1 Baca Data Sample
Nilai Low sample Nilai Low hasil encoding sample audio
Nilai sample
Nilai Probabilitas sample
K-.2.3 Kalkulasi Probabilitas
Frekuensi sample
K-.2.2 Kalkulasi Frekuensi Sample
Gambar 3.8 DFD Level 1 Proses K-2.x Encoding
3.2.5 Rancangan DFD Level 1 Proses K-3.x Replacing Sample
Rancangan DFD ini berfungsi untuk menggambarkan proses penggantian nilai sample audio dengan hasil encoding sample audio yaitu nilai low hasil proses Encoding. Pada rancangan ini terdapat tiga proses yaitu proses K-3.1 Baca Data Sample, K-3.2 Ganti Nilai Sample dan K-3.3 Tutup File audio. Rancangan DFD Level 1 Proses K-3.x Replacing Sample dapat dilihat pada Gambar 3.9.
K-3.1 Baca Data Sample
USER
File Audio Terkompresi
K-3.3 Tutup File Audio
Nilai Low hasil encoding sample audio
Nilai Low
Frekuensi sample
Nilai sample
K-3.2 Ganti nilai Sample
Gambar 3.9 DFD Level 1 Proses K-3.x Replacing Sample
3.2.6 Rancangan DFD Level 1 Proses D-2.x Decoding
Rancangan DFD ini berfungsi untuk menggambarkan proses Decoding sample audio hasil pembacaan untuk mendapatkan nilai Low dari setiap sample. Rancanga DFD Level 2 Proses P-2.0 terdiri dari tiga proses yaitu D-2.1 Proses Baca Data Sample, D2.2 proses Kalkulasi Nilai ES serta proses D-2.3 Tentukan Nilai Sample. Rancangan DFD Level 1 Proses D-2.x Decoding dapat dilihat pada Gambar 3.10. Nilai Low Sample Audio Terkompresi
D-2.1 Baca Tabel Probabilitas
Nilai Sample Perhitungan
Range Nilai Low
Nilai Sample
D-2.3 Tentukan Nilai Sample
Nilai ES Low
D-2.2 Kalkulasi Nilai ES
Gambar 3.10 DFD Level 1 Proses D-2.x Decoding
3.2.7 Rancangan DFD Level 1 Proses D-3.0 Replacing Low
Rancangan DFD ini berfungsi untuk menggambarkan proses penggantian nilai Low dengan nilai sample perhitungan (hasil decoding low). Rancangan DFD Level 1 Proses D-3.x Replacing Low terdiri dari tiga proses, yaitu proses D-3.1 Baca Nilai Low Data Sample, proses D-3.2 Ganti Nilai Low Sample, D-3.3 Tutup File Audio. Rancangan DFD Level 1 Proses D-3.x Replacing Low dapat dilihat pada Gambar 3.11.
P-3.1 Baca Nilai Low Data Sample
USER
File Audio
P-3.3 Tutup File Audio
Nilai Sample Perhitungan Nilai Sample
Sample Audio
Nilai Low sample
P-3.2 Ganti Nilai Low Sample
Gambar 3.11 DFD Level 2 Proses P-3.0 Replacing Low
3.2.8 Skema Proses Kompresi dan Dekompresi
Skema proses kompresi/dekompresi file audio adalah gambaran alur proses encoding file audio mulai dari pembentukan tabel range probabilitas yang diperoleh dari frekuensi nilai sample, perhitungan nilai low sampai proses replacing nilai low ke dalam sample audio. Skema proses kompresi dapat dilihat pada Gambar 3.12.
Sample Audio #1 01 20 3e 2g #2 00 00 23 3e #3 03 4e 3e 23 #4 00 5d 23 4e Sample Audio #5 72 5a 3e 2f (kompres) #1 0,1111000 #2 0,1223000 #3 0,1223000 #4 0,1223000 #5 0,1223000
Buat Tabel
Tabel Range Probabilitas Sample 1 0,0≤ 01<0,4 0,4≤ 20<0,7 0,7≤3e<0,8 Sample 0,8≤2g< 1,0Low
Hitung Low
Nilai Low Sample 1 0,1111000 ReplacingSample 2 0,1223000 Sample 3 Sample Audio 0,1410000 #1 01 20 3e 2g #2 00 00 23 3e #3 03 4e 3e 23 #4 00 5d 23 4e #5 72 5a 3e 2f
Gambar 3.12 Skema Proses Kompresi
Skema proses dekompresi file audio adalah gambaran alur proses decoding file audio terkompresi mulai dengan membaca nilai low dari sample audio dan pembacaan tabel range probabilitas untuk memperoleh nilai sample. Nilai low yang diperoleh digunakan untuk menghitung nilai ES dalam mendapatkan range simbol. Dari range simbol yang diperoleh dapat ditentukan nilai sample audio berdasarkan tabel range probabilitasnya. Skema proses dekompresi dapat dilihat pada Gambar 3.13.
Sample Audio #1 0,1111000 #2 0,1223000 #3 0,1223000 #4 0,1223000 #5 0,1223000
Baca Tabel
Tabel Range Probabilitas Sample 1 0,0≤ 01<0,4 0,4≤ 20<0,7 0,7≤3e<0,8 0,8≤2g< 1,0 Sample Audio (Dekompres) #1 01 20 3e 2g #2 00 00 23 3e #3 03 4e 3e 23 #4 00 5d 23 4e #5 72 5a 3e 2f
Hitung ES
Baca Range Tentukan Nilai Sample
Gambar 3.13 Skema Proses Dekompresi
Nilai ES Sample 1 0,1111000 Nilai ES Sample 2 0,1223000 Sample 3
3.2.9
Perancangan Prosedural
Perancangan prosedural akan dibantu dengan menggunakan bagan alir (flowchart). Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Model dasar sistem yang akan dibuat pada tugas akhir ini dapat digambarkan pada flowchart berikut ini.
Mulai
Mulai
Input File (File Asli)
Input File (File Kompresi)
Kompresi (Encoding)
Dekompresi (Encoding)
Output (File Kompresi)
Output (File Rekonstruksi)
Selesai
Selesai
Gambar 3.14 Flowchart sistem kompresi dan dekompresi secara umum
3.2.9.1 Proses Kompresi Mulai
Buka file audio Baca header file Baca file untuk mendapatkan sample audio Low High
0.0 1.0
Simbol input masih ada
Selesai Tidak
Ya Ambil Simbol Input
CR
High
Low
high - low
low + CR * high range (symbol)
low + CR * low range (symbol)
Cetak low
Gambar 3.15 Flowchart proses encoding Arithmetic Coding
3.2.9.2 Proses Dekompresi Mulai
Ambil encoded Simbol (ES)
Cari range symbol yang melingkupi ES
Cetak Simbol
CR
high range – low range
ES
ES – low range
ES
Tidak
ES / CR
Simbol Habis Ya Selesai
Gambar 3.16 Flowchart proses decoding Arithmetic Coding
3.2.10 Rancangan Antarmuka (User Interface)
Rancangan antarmuka adalah penghubung antara perangkat lunak dengan pengguna yang melakukan proses kompresi/dekompresi file audio. Rancangan antarmuka terdiri dari rancangan Menu Utama yang berisi sub menu File yang berfungsi memanggil program Kompresi/Dekompresi, Hasil Pengujian, About serta rancangan Help.
3.2.10.1 Rancangan Menu Utama
Rancangan Menu Utama terdiri dari menu File, Hasil Pengujian, Help, About dan Quit. Pada bagian atas menu ini terdapat empat sub menu, yaitu :
a. Sub menu File b. Sub menu Help c. Sub Menu Hasil Pengujian d. Sub menu About e. Sub menu Quit
Rancangan Menu Utama dapat dilihat pada Gambar 3.17 berikut ini.
File 1
Hasil Pengujian Help 2
3
About 4
Quit 5
TAMPILAN JUDUL SKRIPSI
6
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX
TAMPILAN GAMBAR LATAR BELAKANG 7
Gambar 3.17 Rancangan Menu Utama
Keterangan :
1. Menu File yang memanggil program Kompresi/Dekompresi. 2. Hasil Pengujian yang memanggil Hasil Pengujian Sistem. 3. Menu About untuk membuka halaman About. 4. Menu Help untuk membuka halaman Help. 5. Menu Quit untuk menjalankan program Quit. 6. Label tempat menampilkan judul tugas akhir. 7. Picture Box tempat menampilkan gambar latar.
3.2.10.2 Rancangan Kompresi/Dekompresi
Rancangan Kompresi/Dekompresi terdiri dari lima sub menu yaitu menu Buka File Audio, Buka File, Kompresi File Audio, Dekompresi File AAC dan Quit. Rancangan Kompresi dapat dilihat pada Gambar 3.18.
File Audio
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1
File kompresi
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2
File Dekompresi
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3
Informasi Hasil Kompresi Ukuran Awal
9999
4
Ukuran Proses
999
5
Ratio
999
Waktu Proses
999
Progress
999
Tampilan Sample Audio
6
Tampilan Frekuensi Sample Audio
7 8
Load
Compress
Decompres
Cancel
Reset Hasil
9
10
11
12
13
Quit
Gambar 3.18 Rancangan Kompresi
14
Keterangan :
1. Text Box untuk menampilkan nama file audio. 2. Text Box untuk menampilkan nama file audio hasil kompresi. 3. Text Box untuk menampilkan nama file audio hasil dekompresi. 4. Text Box untuk menampilkan ukuran awal file audio. 5. Text Box untuk menampilkan ukuran sesudah file audio terkompresi 6. Text Box untuk menampilkan rasio hasil kompresi file audio 7. Text Box untuk menampilkan waktu proses kompresi file audio 8. Text Box untuk menampilkan progres waktu proses kompresi file audio 9. Command button untuk tombol pemanggilan file audio. 10. Command button untuk tombol kompresi file audio. 11. Command button untuk tombol Dekompresi file audio. 12. Command button untuk tombol pembatalan proses kompresi file audio. 13. Command button untuk tombol untuk Reset Hasil Proses. 14. Command button untuk tombol untuk menutup halaman kompresi.
3.2.10.3 Rancangan Help
Rancangan Help berfungsi untuk menampilkan informasi Judul Skripsi dan Proses yang terjadi pada kompresi/Dekompresi file Audio. Rancangan Help dapat dilihat pada Gambar 3.19.
XXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX
2
3
Gambar 3.19 Rancangan Help
Keterangan :
1. Label untuk menampilkan Judul Skripsi. 2. Label untuk menampilkan Proses kompresi/dekompres file audio. 3. Command Button, tombol untuk keluar dari halaman Help dan kembali ke Menu Utama.
3.2.10.4 Rancangan About
Rancangan About berfungsi untuk menampilkan informasi judul skripsi, nama penulis, NIM, dan nama perguruan tinggi penulis. Rancangan About dapat dilihat pada Gambar 3.20.
XXXXXXXXXXXXXXXXXX
1
XXXXXXXXXXXXXXXXX
2
XXXXXXXXXXXXXXXXXXX
3
4
Gambar 3.20 Rancangan About Keterangan :
1. Label untuk menampilkan Judul Skripsi 2. Label untuk menampilkan nama penulis. 3. Label untuk menampilkan nama perguruan tinggi penulis 4. Command Button, tombol untuk keluar dari halaman About dan kembali ke menu utama.
3.2.10.5 Rancangan Hasil Pengujian Sistem
Rancangan Hasil Pengujian Sistem berfungsi untuk menampilkan informasi Pengujian Kompresi/Dekompresi file audio. Rancangan About dapat dilihat pada Gambar 3.21.
HASIL PENGUJIAN SISTEM Proses : xxxxxxxx No
Nama File
UkuranAwal (Kb)
UkuranAkhir (Kb)
Rasio (%)
Waktu(Det)
1
Xxxxxxxx
9999
9999
99
99
2
Xxxxxxxx
9999
9999
99
99
3
Xxxxxxxx
9999
9999
99
99
Rasio Rata-rata : 99.99 % Waktu Rata-rata :99.99 Det
Gambar 3.21 Rancangan Hasil Pengujian Sistem Keterangan : Rasio rata-rata adalah : total rasio kompresi / jumlah proses Waktu rata-rata adalah : total waktu kompresi / jumlah proses
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi
Implementasi perangkat lunak adalah tampilan hasil rancangan dari penulisan kode program dimulai dari program Menu Utama, Kompresi, Help dan About.
4.1.1
Tampilan Menu Utama
Tampilan Menu Utama merupakan tampilan yang muncul setelah menjalankan program Utama. Tampilan ini berisi judul skripsi, gambar latar serta tampilan menu. Tampilan Menu terdiri dari File, Help, About. Pada menu File terdapat dua sub menu yaitu Kompresi dan Quit untuk menutup halaman menu utama. Tampilan Menu Utama dapat dilihat pada Gambar 4.1.
Gambar 4.1 Tampilan Menu Utama
4.1.2
Tampilan Kompresi
Tampilan Kompresi merupakan tampilan berguna untuk melakukan proses kompresi dan dekompresi file audio. Tampilan Kompresi dapat dilihat pada Gambar 4.2.
Gambar 4.2 Tampilan Awal Kompresi
Tampilan Awal Kompresi adalah tampilan program kompresi yang masih kosong yang terdiri dari tombol Load, Compress, Decompress, Cancel dan Quit. Untuk melakukan kompresi file audio, maka pilih tombol Load dan hasilnya dapat dilihat seperti Gambar 4.3.
Gambar 4.3 Tampilan Load
Setelah memilih file audio yang akan dikompresi, maka hasilnya dapat dilihat pada Gambar 4.4.
Gambar 4.4 Tampilan Pemilihan File Audio
Untuk melakukan proses kompresi file audio, maka pilih tombol Compress dan selanjutnya akan melakukan proses perhitungan nilai sample audio untuk mendapatkan rasio kompresi serta lama proses seperti pada Gambar 4.5.
Gambar 4.5 Tampilan Hasil Kompresi File Audio
4.1.3
Tampilan Help
Tampilan Help berfungsi untuk menampilkan penjelasan proses-proses yang terjadi pada proses kompresi/dekompresi file audio. Tampilan Help dapat dilihat pada Gambar 4.6.
Gambar 4.6 Tampilan Help
4.1.4
Tampilan About
Tampilan About berfungsi untuk menampilkan keterangan tentang penulis skripsi kompresi/dekompresi file audio dengan algoritma Arithmetic Coding. Tampilan About dapat dilihat pada Gambar 4.7.
Gambar 4.7 Tampilan About
4.2 Tampilan Hasil Pengujian Sistem
Hasil pengujian sistem kompresi file audio dengan algoritma Arithmetic Coding berfungsi untuk menampilkan hasil proses kompresi dan dekompresi. Tampilan Hasil Pengujian Sistem dapat dilihat pada Gambar 4.8.
Gambar 4.8 Tampilan Hasil Pengujian Sistem
Tampilan Hasil Pengujian Sistem untuk proses kompresi dan dekompresi file audio yang berformat *.wav, *.mp3 dan *.mid dapat dilihat pada Gambar 4.9.
Gambar 4.9 Tampilan Hasil Pengujian Sistem Proses Kompresi dan Dekompresi WAV
Gambar 4.10 Tampilan Hasil Pengujian Sistem Proses Kompresi dan Dekompresi MP3
Gambar 4.11 Tampilan Hasil Pengujian Sistem Proses Kompresi dan Dekompresi MIDI
4.3 Grafik Hasil Pengujian Sistem
Hasil pengujian sistem kompresi file audio dengan algoritma Arithmetic Coding yang berformat *.wav, *.mp3 dan *.mid dapat digambarkan dalam bentuk grafik sebagai berikut :
Gambar 4.12 Grafik Kompresi File WAV Berdasarkan Ukuran File
Gambar 4.13 Grafik Dekompresi File WAV Berdasarkan Ukuran File
Gambar 4.14 Grafik Kompresi dan Dekompresi File WAV Berdasarkan Rasio(%) dan Waktu (Det)
Gambar 4.15 Grafik Kompresi File MP3 Berdasarkan Ukuran File
Gambar 4.16 Grafik Dekompresi File MP3 Berdasarkan Ukuran File
Gambar 4.17 Grafik Kompresi dan Dekompresi File MP3 Berdasarkan Rasio (%) dan Waktu (Det)
Gambar 4.18 Grafik Kompresi File MIDI Berdasarkan Ukuran File
Gambar 4.19 Grafik Dekompresi File MIDI Berdasarkan Ukuran File
;
Gambar 4.20 Grafik Kompresi dan Dekompresi File MIDI Berdasarkan Rasio(%) dan Waktu (Det)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pembahasan dan evaluasi dari bab – bab sebelumnya dan analisis terhadap file audio uji, maka dapat ditarik kesimpulan sebagai berikut :
1. Kompresi yang terbaik adalah yang memiliki rasio kompresi rata-rata terbesar dan waktu yang sedikit yaitu untuk jenis file midi dengan rasio rata-rata : 18,60 % dan waktu rata-rata : 17,63 detik.
2. Dekompresi yang terbaik adalah yang memiliki rasio dekompresi rata-rata terbesar dan waktu yang sedikit yaitu untuk jenis file midi dengan rasio rata-rata : 26,06 % dan waktu rata-rata : 0,02 detik. 3. Kompresi file audio yang berformat *.mp3 memiliki ratio rata-rata sangat kecil yaitu 0,26 % namun membutuhkan waktu rata-rata cukup lama sekitar 55,06 detik.
4. File audio yang umumnya berformat *.wav, *. mp3 maupun *.mid yang sangat sensitif akan kehilangan data, dengan menggunakan algoritma arithmetic coding file Audio sebelum dan sesudah proses dekompresi tidak mengalami perubahan, suara file yang telah di dekompresi sama persis seperti file aslinya.
5.2 Saran
Berikut adalah saran – saran untuk pengembangan lebih lanjut terhadap penelitian Tugas akhir ini :
1.
Untuk
kedepannya
diharapkan
algoritma
Arithmetic
Coding
dapat
diimplementasikan dengan baik pada kompresi data tidak hanya pada file audio melainkan pada file lainnya.
2.
Untuk kedepannya diharapkan algoritma Arithmetic Coding dapat di bandingkan dengan algoritma lain seperti Huffman, LZW, RLE dan lain-lain