• Tidak ada hasil yang ditemukan

LAPORAN TUGAS AKHIR IMPLEMENTASI ALGORITMA HUFFMAN PADA APLIKASI AUDIO COMPRESSOR FILE WAVE

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAPORAN TUGAS AKHIR IMPLEMENTASI ALGORITMA HUFFMAN PADA APLIKASI AUDIO COMPRESSOR FILE WAVE"

Copied!
115
0
0

Teks penuh

(1)

LAPORAN TUGAS AKHIR

IMPLEMENTASI ALGORITMA HUFFMAN PADA

APLIKASI AUDIO COMPRESSOR FILE WAVE

Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan

program srudi Teknik Informatika S-1 pada Fakultas Ilmu Komputer Universitas Dian Nuswantoro

Disusun oleh :

Nama

:

Yani

Widyarti

NIM

:

A11.2008.04249

Program Studi

: Teknik Informatika

FAKULTAS ILMU KOMPUTER

UNIVERSITAS DIAN NUSWANTORO

SEMARANG

2012

(2)

Nama Pelaksana : Yani Widyarti

NIM : A11.2008.04249

Program Studi : Teknik Informatika

Fakultas : Ilmu Komputer

Judul Tugas Akhir : Implementasi Algoritma Huffman Pada Aplikasi Audio Compressor File Wave

Tugas Akhir ini telah diperiksa dan disetujui,

Semarang, September 2012

Menyetujui : Pembimbing

Dra, Yuniarsi Rahayu, M.Kom

Mengetahui :

Dekan Fakultas Ilmu Komputer

Dr. Ir Dwi Eko Waluyo

(3)

Nama Pelaksana : Yani Widyarti

NIM : A11.2008.04249

Program Studi : Teknik Informatika

Fakultas : Ilmu Komputer

Judul Tugas Akhir : Implementasi Algoritma Huffman Pada Aplikasi Audio Compressor File Wave

Tugas akhir ini telah diujikan dan dipertahankan dihadapan Dewan Penguji pada Sidang Tugas Akhir tanggal 19 September 2012. Menurut pandangan kami, tugas

akhir ini memadai dari segi kualitas maupun kuantitas untuk tujuan penganugrahan gelar Sarjana Komputer (S.Kom)

Semarang, September 2012

Dewan Penguji :

Budi Widjajanto, M.Kom Feri Agustina, M.Kom

Anggota Anggota

T Sutojo, S.Si, M.Kom

Ketua

Dekan Fakultas Ilmu Komputer

Dr. Ir Dwi Eko Waluyo

(4)

Sebagai mahasiswa Universitas Dian Nuswantoro, yang tertanda tangan di bawah ini, saya:

Nama Pelaksana : Yani Widyarti

NIM : A11.2008.04249

Menyatakan bahwa karya ilmiah saya yang berjudul:

IMPLEMENTASI ALGORITMA HUFFMAN PADA APLIKASI AUDIO COMPRESSOR FILE WAVE

merupakan karya asli saya (kecuali cuplikan dan ringkasan yang masing-masing telah saya jelaskan sumbernya dan perangkat pendukung seperti web cam dll). Apabila dikemudian hari, karya saya disinyalir bukan merupakan karya asli saya, yang disertai dengan bukti-bukti yan cukup, maka saya bersedia untuk dibatalkan gelar saya beserta hak dan kewajiban yang melekat pada gelar tersebut. Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Semarang

Pada tanggal : September 2012

Yang menyatakan

( Yani Widyarti)

(5)

Sebagai mahasiswa Universitas Dian Nuswantoro, yang tertanda tangan di bawah ini, saya:

Nama Pelaksana : Yani Widyarti

NIM : A11.2008.04249

Demi mengembangkan Ilmu Pengetahuan, menyetujui untuk memberikan kepada Universitas Dian Nuswantoro Hak Bebas Royalti Non-Eksklusif (Non-exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul:

“Implementasi Algoritma Huffman pada Aplikasi Audio Compressor File Wave” beserta perangkat yang diperlukan (bila ada). Dengan Hak Bebas Royalti Non-Eksklusif ini Universitas Dian Nuswantoro berhak untuk menyimpan, mencopy ulang (memperbanyak), menggunakan, mengelolanya dalam bentuk pangkalan data

(database), dan mendistribusikannya dan menampilkan/mempublikasikannya di

internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis/pencipta.

Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas Dian Nuswantoro, segala bentuk tuntutan hukum yang timbul atas pelangaran Hak Cipta dalam karya ilmiah saya ini.

Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Semarang

Pada tanggal : September 2012

Yang menyatakan

( Yani Widyarti) 

(6)

Bismillahirrahmannirrahim,

Hanya kepada Allah SWT segala puji kita panjatkan. Puji syukur atas Rahmat dan KaruniaNya sehingga penulis dapat menyelesaikan skripsi ini dengan

judul “IMPLEMENTASI ALGORITMA HUFFMAN PADA APLIKASI AUDIO

COMPRESSOR FILE WAVE” pada waktu yang telah ditetapkan. Laporan skripsi

ini tidak mungkin bisa selesai dengan baik, jika tidak ada bantuan dari berbagai pihak. Oleh karena itu penulis menyampaikan terima kasih kepada :

1. Dr.Ir. Edi Noersasongko, M.Kom. Selaku Rektor Universitas Dian Nuswantoro Semarang.

2. Dr.Ir. Dwi Eko Waluyo, MM selaku Dekan Fakultas Ilmu Komputer. 3. Ayu Pertiwi, S. Kom, MT, selaku Ka. Progdi Teknik Informatika-S1. 4. Feri Agustina, M.Kom, Selaku Koordinator Tugas Akhir.

5. Dra, Yuniarsi Rahayu, M.Kom. Selaku dosen pembimbing tugas akhir yang memberikan ide penelitian, memberikan informasi referensi yang penulis butuhkan dan bimbingan yang berkaitan dengan penelitian penulis.

6. Orang tua tercinta Ayahanda dan Ibunda atas kasih sayang, do’a dan dukungannya.

7. Adek tersayang Khoir Hermansyah.

8. Orang tua ke dua penulis Mbak list dan mas Ibnu Nadhir.

9. Teman-teman BAI UDINUS yang telah memberikan dorongan, motivasi, doa, dukungan material dan spiritual, yang telah mendukung penulis dalam pembuatan laporan tugas akhir ini.

10. Edi Faisal, M.Kom, selaku dosen wali yang telah membimbing penulis selama menempuh pendidikan di UDINUS. Sumardi, M.Kom, Dra. Yuniarsi Rahayu, M.Kom, T Sutojo, S.Si, M.Kom dan seluruh dosen-dosen yang telah memberikan pengajaran akademis, memberikan informasi, support, dan doa kepada penulis.

11. Mbak Fa, Fang-fang, Mamal, Mbak Na, Tika, Qori, Mbak Euis, Bang Zaen, Bang Anjar, Dika dan seluruh teman-teman yang tidak bisa penulis sebutkan

vi   

(7)

satu persatu, terima kasih telah menjadi keluarga ke-2 bagi penulis dan berjuang bersama demi menyelesaikan pendidikan di UDINUS tercinta.

12. Serta pihak-pihak yang telah banyak membantu penulis, sehingga tidak bisa penulis sebutkan namanya satu-persatu.

Akhir kata, Penulis berharap semoga laporan Tugas Akhir ini bermanfaat bagi siapapun yang membacanya. Semoga Allah SWT senantiasa memberikan rahmat dan hidayah kepada kita semua. Amin

Semarang, September 2012

(8)

Kelemahan format audio digital Wave adalah besarnya kapasitas penyimpanan yang akan ditampung di dalam media penampung . Oleh karena itu, perlu diciptakan suatu teknologi kompresi audio digital. 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 menghabiskan ruang media penyimpan. Pada penelitian ini penulis menggunakan

algoritmaHuffman yang merupakan salah satu teknik kompresi citra yang bersifat

lossless. Konsep dasar dari metode Huffman adalah dengan membangun sebuah

skema atau tabel yang berisikan frekuensi kemunculan masing-masing simbol. Dari tabel tersebut kemudian dibangun suatu node-node unik untuk mengidentifikasikan masing-masing simbol. Berdasarkan penentuan input, output, pemilihan metode serta algoritma yang digunakan dalam system yang penulis buat, ada tiga proses utama yang dapat di identifikasi, yaitu proses compress,

uncompress, dan playing file wave. Pada proses compress file wave akan dilakukan pemampatan file sehingga ukuran file ter-compress lebih kecil dibandingkan dengan file asli. Sedangkan pada prose uncompress untuk mengembalikan ukuran file ter-compress ke ukuran file aslinya. Selanjutnya untuk

playing, bisa memainkan file wave yang masuk ke list file baik itu file yang

ter-compress maupun file yang ter-uncompress. Dari hasil pengujian proses kompresi didapat bahwa rasio mempunyai range antara 87,07% untuk nilai terendah dan tertinggi 98,97%. Jika dicari hasil rasio kompresi tersebut secara rata-rata adalah sebesar 94,38%. Ini berarti ukuran file hasil adalah 0,9438 kali ukuran file semula dan pengurangan ukuran file sebesar (100% − 94,38%) = 5,62%.

Kata kunci : Kompresi, Loosless, Algoritma Huffman, Audio, FileWAVE

vii   

(9)

viii   

HALAMAN SAMPUL DALAM ... i

HALAMAN PERSETUJUAN ... ii

HALAMAN PENGESAHAN ... iii

HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR ... iv

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ... v

HALAMAN UCAPAN TERIMA KASIH ... vi

HALAMAN ABSTRAK ... vii

DAFTAR ISI ... viii

DAFTAR TABEL ... xiii

DAFTAR GAMBAR ... xv

BAB I : PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah... 2

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian ... 3

BAB II : LANDASAN TEORI ... 5

2.1 Pengertian Audio Digital... 5

(10)

ix   

2.1.4 Bit Per Sample ( Banyaknya Bit dalam Satu Sampel) ... 9

2.1.5 Bit Rate (Laju Bit) ... 9

2.2 Data Audio ... 11

2.3 Struktur File Wave ... 12

2.3.1 Header File Wave ... 14

2.3.2 Chunk File Wave ... 15

2.3.3 Chunk Format ... 15

2.3.4 Chunk Data ... 19

2.3.5 Format Wave PCM ... 20

2.4 Algoritma Kompresi Huffman ... 23

2.5 Kompresi Data ... 27

2.5.1 Perbedaan Antara Lossless dan Lossy Compression ... 27

2.5.2 Perbedaan Antara Compression Rate dan Compression Ratio 28 2.5.3 Jenis-jenis Algoritma Kompresi Data ... 29

2.6 Tool Pemrograman ... 29

2.6.1 Visual Basic 6.0 ... 29

2.7 Metode Pendekatan dan Pengembangan Sistem ... 34

2.7.1 Metode Pendekatan Sistem ... 34

(11)

x   

2.8.2 UML (Unified Modelling Language)... 35

2.9 Pengujian Perangkat Lunak ... 41

2.9.1 BlackBox Testing ... 41

BAB III : METODOLOGI PENELITIAN ... 44

3.1 Jenis Penelitian ... 44

3.2 Desain Penelitian ... 44

3.2 Jenis Data ... 45

3.3 Metode Pengumpulan Data ... 46

3.4 Tahap-tahap Pengembangan Sistem ... 46

BAB IV : HASIL PENELITIAN DAN PEMBAHASAN ... 51

4.1 Analisa Masalah dan Kebutuhan ... 51

4.1.1 Analisa Masalah ... 51

4.1.2 Analisa Kebutuhan ... 51

4.2 Perancangan Sistem ... 54

4.2.1 Use Case Diagram ... 54

4.2.2 Skenario Use Case... 56

4.2.3 Sequence Diagram Use Case ... 65

4.2.4 Activity Diagram ... 69

(12)

xi   

4.5 Implementasi Sistem ... 83

4.5.1 Cara Instalasi ... 83

4.5.2 Cara Penggunaan Program ... 84

4.6 Pengujian Program ... 91

4.6.1 Pengujian Black Box ... 91

4.6.2 Hasil Pengujian ... 92

4.6.3 Hasil Pengujian ... 92

4.7 Hasil Penelitian ... 93

BAB V : KESIMPULAN DAN SARAN ... 96

5.1 Kesimpulan ... 96

5.2 Saran ... 96

(13)

xiii   

Tabel 2.1 Hasil Frekuensi Sampling dan Kualitas Suara ... 9

Tabel 2.2 Tabel Penyimpanan Berbagai Konfigurasi Audio Digital ... 10

Tabel 2.3 Nilai Jenis Chunk RIFF ... 15

Tabel 2.4 Nilai-Nilai Chunk Format File Wave ... 15

Tabel 2.5 Kode Kompresi Wave ... 17

Tabel 2.6 Format Data Chunk ... 19

Tabel 2.7 Penjelasan Struktur File Wave ... 20

Tabel 2.8 Contoh Cara Kerja Huffman ... 23

Tabel 2.9 Simbol Diagram Use Case ... 36

Tabel 2.10 Contoh Scenario Use Case ... 37

Tabel 2.11 Simbol Activity Diagram ... 38

Tabel 4.1 Skenario Use Case File ... 56

Tabel 4.2 Skenario Use Case Action... 57

Tabel 4.3 Skenario Use Case Audio ... 57

Tabel 4.4 Skenario Use Case Add File ... 58

Tabel 4.5 Skenario Use Case Select File ... 59

Tabel 4.6 Skenario Use Case Remove File ... 59

Tabel 4.7 Skenario Use Case Compress ... 60

(14)

xiv   

Tabel 4.11 Skenario Use Case Stop ... 62

Tabel 4.12 Skenario Use Case Next ... 63

Tabel 4.13 Skenario Use Case Previous ... 63

Tabel 4.14 Skenario Use Case Open File... 64

Tabel 4.15 Skenario Use Case List File ... 65

Tabel 4.16 Skenario Use Case List File ... 65

Tabel 4.17 Tabel Distribusi Frekuensi ... 73

Tabel 4.18 Bit Code Hasil Pohon Huffman ... 78

Tabel 4.19 Hasil Compress Dan Uncompress File ... 92

Tabel 4.20 Tabel Hasil File Ter-Compress ... 93

Tabel 4.21 Tabel Perbandingan Ukuran File ... 94

Tabel 4.22 Tabel Hasil File Yang Telah Di Uncompress ... 95

(15)

xv   

Gambar 2.1 Konversi Sinyal Analog ke Digital ... 6

Gambar 2.2 Konversi Sinyal Digital ke Analog ... 7

Gambar 2.3 Layout File Wave ... 13

Gambar 2.4 Diagram Format File Wave ... 20

Gambar 2.5 Interpretasi Tiap Byte pada File Wave ... 22

Gambar 2.6 Membentuk Node ... 23

Gambar 2.7 Pengurutan Node ... 23

Gambar 2.8 Penggabungan Node ... 23

Gambar 2.9 Pengurutan Node Secara Menaik ... 24

Gambar 2.10 Penggabungan Dua Buah Node... 24

Gambar 2.11 Pengurutan Node Kembali ... 24

Gambar 2.12 Penggabungan Dua Node Terakhir ... 25

Gambar 2.13 Pemberian Label Bit ... 25

Gambar 2.14 Tampilan Menu Bar pada Visual Basic 6.0 ... 29

Gambar 2.15 Tampilan Tool Bar pada Visual Basic 6.0 ... 30

Gambar 2.16 Tampilan Tool Box pada Visual Basic 6.0 ... 30

Gambar 2.17 Project Explorer pada Visual Basic 6.0 ... 31

Gambar 2.18 Properties Windows pada Visual Basic 6.0 ... 31

(16)

xvi   

Gambar 2.22 Metode Pengembangan Waterfall ... 34

Gambar 2.23 Activity Diagram ... 40

Gambar 4.1 Aktor dalam Use Case ... 52

Gambar 4.2 Use Case Diagram ... 54

Gambar 4.3 Sequence Diagram Add File / Add Folder ... 66

Gambar 4.4 Sequence Diagram List File ... 67

Gambar 4.5 Sequence Diagram Compress... 67

Gambar 4.6 Sequence Diagram Uncompress ... 68

Gambar 4.7 Sequence Diagram Play Audio ... 69

Gambar 4.8 Activity Diagram Compress File Wave ... 70

Gambar 4.9 Activity Diagram Uncompress File Wave ... 71

Gambar 4.10 Activity Diagram Memainkan File Wave ... 72

Gambar 4.11 Perancangan Antar Muka ... 73

Gambar 4.12 Gambar Contoh I ... 74

Gambar 4.13 Gambar Contoh II... 74

Gambar 4.14 Gambar Contoh III ... 74

Gambar 4.15 Gambar Contoh IV ... 75

Gambar 4.16 Gambar Contoh V ... 75

(17)

xvii   

Gambar 4.20 Gambar Contoh IX ... 76

Gambar 4.21 Gambar Contoh X ... 77

Gambar 4.22 Gambar Contoh XI ... 78

Gambar 4.23 Digram Alir Pembacaan File Wave ... 79

Gambar 4.24 Digram Alir Proses Kompresi dan Dekompresi File Wave ... 80

Gambar 4.25 Digram Alir Memainkan File Wave ... 82

Gambar 4.26 Tampilan Utama ... 84

Gambar 4.27 Tampilan Memilih File Wave Tunggal ... 86

Gambar 4.28 Tampilan Memilih File Wave Melalui Folder ... 86

Gambar 4.29 List File Wave dalam Program ... 87

Gambar 4.30 Memilih dan Menghapus File dalam List ... 87

Gambar 4.31 Tampilan Browse Foler Output ... 89

Gambar 4.32 Tampilan Proses Kompresi ... 89

Gambar 4.33 Tampilan Form Frekuensi ... 90

Gambar 4.34 Tampilan Author ... 91

(18)

PENDAHULUAN

1.1 Latar Belakang

Pada saat sekarang ini, komputer multimedia telah menjadi hal yang amat populer dan diminati oleh banyak orang, terutama dalam bidang

audio processing. Hal ini berupa pengkonversian suara analog menjadi digital, atau dengan kata lain suara yang didengar oleh manusia dapat disimpan ke dalam media digital seperti hard disk dan media penyimpanan yang paling populer pada saat ini adalah Compact Disk atau CD.

Sebelum teknologi ini ada, perekaman suara dilakukan pada media pita kaset. Tetapi lifetime dari pita kaset ini rendah sehingga suara yang dihasilkan semakin lama semakin buruk. Oleh karena itu munculah teknologi CD Audio, tapi teknologi ini juga masih memiliki kelemahan. Kelemahan yang terbesar adalah format DAT yang ada di dalamnya memiliki kapasitas yang besar sehingga sangat memboroskan media penyimpanannya. Kelemahan yang sama juga dialami oleh format suara digital yang lain, yaitu WAV. Oleh karena itu, perlu diciptakan suatu teknologi kompresi suara digital, salah satu format kompresi yang terkenal saat ini adalah MP3.

Padahal salah satu file format suara yang banyak dipakai dalam sistem operasi Windows adalah format Wave (*.WAV). Format ini banyak digunakan untuk keperluan game dan multimedia. Wave sebenarnya merupakan format kasar (raw format) dimana signal suara langsung direkam dan dikuantisasi menjadi data digital. Format dasar dari file ini secara default tidak mendukung kompresi dan dikenal dengan nama PCM (Pulse Code Modulation).

Jika direkam suatu lagu sekualitas CD Audio menggunakan

sampling rate 44,1 kHz, 16 bit per sample, 2 kanal (stereo), maka total

(19)

media yang diperlukan untuk menyimpan data audio ini per detik adalah 176.400 byte sehingga 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. Ini tentunya sangat memboroskan media penyimpanan seperti hard disk meskipun saat ini telah tersedia kapasitas hard disk yang besar. Masalah tersebut dapat diatasi bila file Wave tersebut dikompresi untuk mengurangi ukurannya.

Berdasarkan dari masalah di atas, maka akan dibuat sebuah perangkat lunakyang dapat melakukan kompresi pada file Wave sekaligus mampu memainkan kembali file Wave terkompresi tersebut. Maka dalam Tugas Akhir ini penulis mengambil judul “Implementasi Algoritma Huffman pada Aplikasi Audio Compressor File Wave”.

1.2 Rumusan Masalah

Sesuai dengan latar belakang pemilihan judul di atas, maka yang menjadi masalah dalam Tugas Akhir ini adalah bagaimana merancang suatu perangkat lunak yang dapat melakukan kompresi pada file Wave

dengan algoritma Huffman.

1.3 Batasan Masalah

Oleh karena besarnya permasalahan dan keterbatasan waktu serta pengetahuan penulis maka agar pembahasan tidak menyimpang dari tujuan dilakukan pembatasan masalah sebagai berikut:

1. File Input hanya berupa file format Wave.

2. Program tidak dapat melakukan pengubahan jumlah kanal (channel),

bit per sample, dan sampling ratefileWave

3. Program dapat memainkan kembali file Wave terkompresi tersebut dengan pilihan Play, Stop, Pause, Next dan Previous.

4. Perancangan dan pembuatan perangkat lunak ini menggunakan bahasa Microsoft Visual Basic 6.0

(20)

1.4 Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah merancang suatu perangkat lunak yang dapat melakukan kompresi pada file Wave sehingga dapat menghemat kapasitas media penyimpanan dalam menyimpan file Wave tersebut.

1.5 Manfaat Penelitian

Manfaat dari penyusunan tugas akhir (skripsi) ini yaitu : a. Bagi Telsa TV

Sebagai referensi, bahan pertimbangan dan masukan bagi instansi dalam mengambil keputusan untuk mengembangkan dan memperbaiki perusahaan serta dapat menyelesaikan masalah-masalah perusahaan dalam hal ini adalah pemampatan (kompresi)

file Wave. b. Bagi Penulis

1. Menerapkan teori yang penulis dapatkan di bangku kuliah pada kehidupan dan manfaat yang nyata.

2. Dapat menambah dan memperdalam ilmu tentang Algoritma

Huffman. c. Bagi Akademik

Dapat menjadi tambahan informasi, pengetahuan, serta referensi bagi akademik guna peningkatan pengajaran dan sebagai tolak ukur keberhasilan pengajaran yang dilaksanakan di bangku kuliah.

d. Bagi Pembaca

1. Output dari perangkat lunak ini meliputi file Wave yang terkompresi sehingga menghemat kapasitas media penyimpan karena pada suatu fileWave banyak terdapat redudansi data serta untuk mempersingkat waktu transmisi sewaktu file tersebut dikirim atau di-download melalui jaringan Internet.

(21)

untuk file Wave yang terkompresi karena player audio yang umum tidak mendukung fileWave yang terkompresi.

(22)

2.1 Pengertian Audio Digital

Suara yang di dengar sehari-hari adalah merupakan gelombang

analog. Gelombang ini berasal dari tekanan udara yang ada di sekeliling manusia , yang dapat di dengar dengan bantuan gendang telinga. Gendang telinga ini bergetar, dan getaran ini dikirim dan diterjemahkan menjadi informasi suara yang dikirimkan ke otak, sehingga manusia dapat mendengarkan suara. Suara yang manusia hasilkan sewaktu berbicara berbentuk tekanan suara yang dihasilkan oleh pita suara. Pita suara ini akan bergetar, dan getaran ini menyebabkan perubahan tekanan udara, sehingga manusia dapat mengeluarkan suara.

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.

Alat yang diperlukan untuk memasukkan suara analog sehingga dapat dimanipulasi oleh peralatan elektronik adalah transducer. Dalam hal ini, transducer adalah istilah untuk menyebut sebuah peralatan yang dapat mengubah tekanan udara (yang manusia 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.

(23)

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 manusia dengar (melalui

speaker), dalam hal ini gelombang analog. Proses pengubahan gelombang suara menjadi data digital ini dinamakan Analog-to-Digital 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 [1]

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.

(24)

Gambar 2.2 Konversi Sinyal Digital ke Analog [1]

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 dua kali lebih rapat, atau 2X Hertz. Jika tidak, sinyal tidak akan dapat dikembalikan ke dalam bentuk semula. [1]

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).

2.1.1 Channel (Jumlah Kanal)

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 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

(25)

2.1.2 Sampling Rate (Laju Pencuplikan)

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. [1]

Tabel 2.1 Hasil Frekuensi Sampling dan Kualitas Suara [1] 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

(26)

menyatakan bahwa sampling rate yang diperlukan minimal 2 kali

bandwidth sinyal. Hal ini berkaitan dengan kemampuan untuk

merekonstruksi ulang sinyal audio.

2.1.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.

2.1.4 Bit Per Sample (Banyaknya Bit Dalam Satu Sampel)

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 persample 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

(27)

2.1.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).

Tabel 2.2 Tabel Penyimpanan Berbagai Konfigurasi Audio Digital

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

(28)

MB untuk menyimpan data audio lagu tersebut jika diasumsikan 1 KB = 1.000 byte dan 1 MB = 1.000 KB = 1.000.000 byte. [1]

2.2 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.

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 Waveform 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,

(29)

namun juga memerlukan daya penyimpanan yang paling besar pula, sekitar 176 KB/detik.

4. Wave Audio merupakan kreasi perusahaan raksasa perangkat lunak

Microsoft yang berasal dari standar RIFF (Resource Interchange File Format). Wave audio ini telah menjadi standar format file audio

komputer dari suara sistem dan games sampai CD Audio. File Wave

diidentifikasikan dengan nama yang berekstensi *.WAV. Format asli dari tipe file tersebut sebenarnya berasal dari bahasa C. [7]

2.3 Struktur File Wave

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

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

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

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 WAVE 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

(30)

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 WAVE disimpan dalam format urutan little-endian (least significant byte) dan sebagian dalam urutan big-endian.

File WAVE 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 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. [7]

(31)

Gambar 2.3 Layout File Wave [7]

2.3.1 Header File Wave

Header file Wave 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 Wave

selalu menggunakan kata “WAVE” untuk membedakannya dengan jenis file RIFF lainnya sekaligus digunakan untuk mendefinisikan bahwa file tersebut merupakan file audio waveform. [7]

Tabel 2.3 Nilai Jenis Chunk RIFF [7]

Offset Ukuran Deskripsi Nilai

0x00 4 Chunk ID "RIFF" (0x52494646)

0x04 4 Ukuran Data Chunk (ukuran file) – 8

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

(32)

2.3.2 Chunk File WAVE

Ada beberapa jenis chunk untuk menyatakan file Wave. Kebanyakan file Wave 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 Wave 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. [7]

Tabel 2.3 Format Chunk RIFF [7]

Offset Ukuran* Deskripsi

0x00 4 Chunk ID

0x04 4 Ukuran Data Chunk

0x08 Byte Data Chunk

* dalam satuan byte

2.3.3 Chunk Format

Chunk format terdiri atas informasi tentang bagaimana

suatu data waveform 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 “.[6]

(33)

Tabel 2.4 Nilai-Nilai Chunk Format File Wave [6]

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

Chunk ID dan Ukuran Data

Chunk ID selalu ditandai dengan kata “fmt “

(0x666D7420) dan ukurannya sebesar data format Wave (16

byte) ditambah dengan extra format byte yang diperlukan untuk format Wave 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 Wave, informasi ini berupa:

Compression Code, Number of Channels, Sample Rate,

Average Bytes per Second, Block Align, Significant Bits per Sample, Extra Format Bytes.

Kode Kompresi (Compression Code)

Setelah chunk ID dan ukuran data chunk maka bagian pertama dari format data file Wave menyatakan jenis kompresi

(34)

yang digunakan pada data Wave. Berikut ini daftar kode kompresi yang digunakan sekarang ini.

Tabel 2.5 Kode Kompresi Wave [6]

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

Jumlah Kanal (Number of Channels)

Jumlah kanal menyatakan berapa banyak signal audio

terpisah yang di-encode dalam chunk data Wave. Nilai 1 (satu) berarti merupakan signal mono, nilai 2 (dua) berarti signal

stereo dan seterusnya.

Laju Pencuplikan (Sampling Rate)

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

(35)

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

Nilai ini mengindikasikan berapa besar byte dataWave

harus di-stream ke konverter D/A (Digital Audio) tiap detik sewaktu suatu file Wave 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:

AvgBytesPerSec = SampleRate * BlockAlign

Block Align

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

BlockAlign = SignificantBitsPerSample / 8 * NumChannels

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.

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

(36)

Wave yang memiliki kompresi dan ini memberikan informasi mengenai jenis kompresi apa yang diperlukan untuk

men-decode data Wave. Jika nilai ini tidak dilakukan word aligned

(merupakan kelipatan 2), penambahan byte (padding) pada bagian akhir data ini harus dilakukan. [6]

2.3.4 Chunk Data

Chunk ini ditandai dengan adanya string “data”. Chunk Data pada file Wave terdiri atas sampel digital audio yang mana dapat didecode kembali menggunakan metoda kompresi atau format biasa yang dinyatakan dalam chunk format Wave. Jika kode kompresinya adalah 1 (jenis PCM tidak terkompresi), maka “Data Wave terdiri atas nilai sampel mentah (raw sample value).

Tabel 2.6 Format Data Chunk [6]

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 digitalaudio multi-channel disimpan dalam bentuk Data Wave Interlaced.File Wave 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 Wave

(37)

dapat dimuat seluruhnya ke dalam memori) atau ketika melakukan

streaming sebuah file Wave melalui jaringan Internet.

Seperti dikemukan di atas, semua chunk pada RIFF (termasuk chunk Wave “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. [6]

2.3.5 Format Wave PCM

Jenis format Wave ini merupakan jenis file Wave yang paling umum dan hampir dikenal oleh setiap program. Format

Wave PCM (Pulse Code Modulation) adalah file wave yang tidak terkompresi, akibatnya ukuran file sangat besar jika file mempunyai durasi yang panjang. Berikut ini diagram (Gambar 2.4) yang menggambarkan format file Wave PCM. [6]

Gambar 2.4 Diagram Format File Wave [6]

Berikut ini penjelasan mengenai struktur file Wave yang dimulai dengan header RIFF:

(38)

Tabel 2.7 Penjelasan Struktur File Wave [7] 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 “WAVE” (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 fileWave 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 *

(39)

44 * Data Data Sound sebenarnya.

Keterangan: Format “WAVE” 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 fileWave 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 Wave di atas:

Gambar 2.5 Interpretasi Tiap Byte pada File Wave [7]

2.4 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.

(40)

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:

ACDABA

Distribusi frekuensi untuk karakter di atas seperti berikut ini: Tabel 2.8 Contoh Cara Kerja Huffman

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

Gambar 2.6 Membentuk Node

Kemudian diurutkan dari node dengan frekuensi terkecil hingga terbesar. A 3 B 1 C 1 D 1

Gambar 2.7 Pengurutan Node

Selanjutnya dua buah node terkecil digabung membentuk satu node

(41)

Gambar 2.8 Penggabungan Node

Setelah itu diurutkan kembali berdasarkan frekuensi tiap

node secara urutan menaik.

Gambar 2.9 Pengurutan Node Secara Menaik

Kemudian dua buah node terkecil digabung menjadi satu kembali untuk membentuk node baru.

D 1 A 3 C 1 B 1 2 3

Gambar 2.10 Penggabungan Dua Buah Node

Setelah itu diurutkan kembali berdasarkan frekuensi tiap node

(42)

Gambar 2.11 Pengurutan Node Kembali

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

Gambar 2.12 Penggabungan Dua Node Terakhir

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

(43)

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 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

(44)

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

2.5 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. [9]

2.5.1 Perbedaan Antara Lossless dan Lossy Compression

Dalam kompresi data lossless, data yang dikompresi dan didekompresi mempunyai replikasi yang sama dengan data asli. Sedangkan pada kompresi data lossy, data yang didekompresi dapat berbeda dari data asli. Secara tipikal, ada beberapa distorsi antara data asli dan signal yang direproduksi.

Program kompresi data populer seperti WinZip, WinRar, WinAce, dan PkZip merupakan salah satu contoh data kompresi data lossless. JPEG merupakan salah satu contoh dari kompresi data lossy. [9]

2.5.2 Perbedaan Antara Compression Rate Dan Compression Ratio Terdapat dua jenis utama dalam aplikasi kompresi data yaitu transmisi dan penyimpanan. Suatu contoh dari yang terlebih dahulu adalah speech compression untuk transmisi secara real time

melalui jaringan digital selular. Contoh untuk kasus yang kedua adalah kompresi file (contoh seperti program DriveSpace dan DoubleSpace).

(45)

Istilah “compression rate” dipakai dalam transmisi, sementara istilah “compression ratio” berasal dari istilah teknik penyimpanan data.

Compression rate atau laju kompresi adalah laju dari data yang dikompresi. Secara tipikal, satuannya adalah bit/sampel, bits/karakter, bits/piksel, atau bit/detik. Compression ratio atau rasio kompresi adalah rasio atau perbandingan antara ukuran atau laju data yang dikompresi dengan ukuran atau laju dari data asli.

Compression Ratio = size or rate of compressed data x 100% size or rate of original data

Sebagai contoh, jika suatu image gray-scale aslinya direpresentasi oleh 8 bits /pixel (bpp) dan jika dikompresi hingga 2 bpp, maka dapat dikatakan rasio kompresinya adalah 1 banding 4 (1 : 4).

Laju kompresi merupakan istilah yang mutlak, sementara rasio kompresi merupakan istilah yang relatif. Sebagai catatan dalam suatu aplikasi tertentu keduanya dapat dipertimbangkan untuk transmisi dan penyimpanan (storage). Sebagai contoh, suatu gambar format JPEG yang terdapat pada website. Ini tidak hanya menghemat ruang penyimpan pada disk lokal, gambar tersebut juga menambah kecepatan transmisi ketika dikirim sebagai image

melalui internet. [9]

2.5.3 Jenis-Jenis Algoritma Kompresi Data

Algoritma kompresi untuk jenis kompresi lossless (tanpa kehilangan data) yang banyak digunakan diantaranya : Huffman, RLE, LZ77, LZ78 dan LZW. Sedangkan untuk jenis kompresi

lossy (kehilangan beberapa bagian data), algoritma yang banyak digunakan antara lain: Differential Modulation, Adaptive Coding

(46)

2.6 Tool Pemrograman

Tool yang digunakan dalam membuat aplikasi surat masuk dengan menggunakan visual Basic 6.0

2.6.1 Visual Basic 6.0

Visual Basic 6.0 merupakan salah satu bahasa pemrograman visual yang sudah sangat dikenal di dunia. Baik itu karena kemudahannya dalam pengembangan aplikasi maupun kemampuannya yang beragam. Selain itu, Visual Basic 6.0 didukung oleh berbagai fasilitas dalam pengembangan aplikasi. Salah satunya adalah pengembangan aplikasi database.

a) Integrated Development Environment (IDE) Visual Basic 6.0

Merupakan tampilan antar muka program dengan pengguna yang sudah bersifat GUI (Graphical User Interface), menyajikan banyak kemudahan bagi

programmer untuk membuat aplikasi. IDE pada Visual

Basic 6.0 dibagi menjadi delapan bagian besar, yaitu

Menu Bar, Tool Bar, Tool Box, Project Explorer,

Properties Window, Form Layout Window, Form, dan

Code editor.

a. Menu Bar

Memiliki kegunaan seperti menu windows pada umumnya. Melalui menu kita dapat melakukan proses penyimpanan file, editing file dan lain-lain. Sebagian fungsi pada Visual Basic 6.0 terdapat pada menu bar. Pada bagian menu terdapat tiga belas menu utama, yaitu menu

File, Edit, View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-Ins, Window, dan

(47)

mengklik pada menu utama kemudian memilih pada submenu.

Gambar 2.14 Tampilan Menu Bar Pada Visual Basic 6.0

b. Tool Bar

Dikenal juga dengan istilah Speed

Bar,merupkan kumpulan tombol yang sering dipakai dalam proses pembuatan program. Tool bar fungsinya sama seperti fungsi dari menu, hanya saja pada tool bar pilihan-pilihan berbentuk icon

.

Gambar 2.15 Tampilan Tool Bar Pada Visual Basic 6.0 c. Tool Box

Merupakan tempat di mana kontrol-kontrol diletakkan. Kontrol-kontrol yang terdapat pada tool box dipakai dalam pembuatan program aplikasi.

(48)

Gambar 2.16 Tampilan Toolbox Pada Visual Basic 6.0 d. Project Explorer

Project explorer adalah tempat untuk

melihat daftar dari form dan modul yang digunakan dalam proyek. Melalui project explorer juga dapat memilih form yang akan dipakai.

Gambar 2.17 Project Explorer Pada Visual Basic 6.0 e. Properties Window

Merupakan tempat untuk properti dari setiap objek kontrol. Properties window juga

(49)

dipakai untuk mengatur properti dari objek kontrol yang dipakai.

Gambar 2.18 Properties Window Pada Visual Basic 6.0

f. Form Layout Window

Form layout window berfungsi untuk

melihat dan mengubah posisi form pada layar monitor pada waktu program dieksekusi.

(50)

g. Form

Merupakan tempat untuk membuat tampilan ( user interface ) bagi program aplikasi.

Gambar 2.20 Tampilan Form Pada visual Basic 6.0 Sumber : Dani Okianto, 2005

h. Code Editor

Merupakan tempat untuk meletakkan atau menuliskan kode program dari program aplikasi. Tempat dimana seorang

programmer menuliskan kode program.

(51)

2.7 Metode Pendekatan dan Pengembangan Sistem

Metode pendekatan dan pengembangan sistem digunakan untuk memenuhi kebutuhan pengembangan sistem sehingga sistem yang dihasilkan akan sesuai dengan yang diharapkan.

2.7.1 Metode Pendekatan Sistem

Melalui pendekatan terstruktur, permasalahan yang komplek di organisasi dapat dipecahkan dan hasil dari sistem akan mudah untuk dipelihara, fleksibel, lebih memuaskan pemakainya, mempunyai dokumentasi yang baik, tepat waktu, sesuai dengan anggaran biaya pengembangan, dapat meningkatkan produktivitas dan kualitasnya akan lebih baik. [3]

2.7.2 Metode Pengembangan Sistem

Menurut Jogiyanto ( 2005: 59 )Metode pengembangan sistem adalah metode, prosedur, konsep pekerjaan yang akan digunakan untuk mengembangkan suatu sistem informasi. Metodologi yang digunakan penulis dalam penulisan ini yaitu dengan menggunakan model waterfall. Metode pengembangan sistem waterfall merupakan urutan kegiatan/aktivitas yang dilakukan dalam pengembangan sistem mulai dari penentuan masalah, analisis kebutuhan, perancangan implementasi, integrasi, uji sistem, penerapan dan pemeliharaan. Dengan menggunakan waterfall, tahapan pengembangan perangkat lunak yang telah dijelaskan, dijalankan secara urut dari satu tahap ke tahap yang lain. [3]

(52)

Analisa Kebutuhan Desain Sistem Penulisan Kode Pengujian Implementasi

Gambar 2.22 Metode Pengembangan Waterfall [3]

2.8 Perancangan Sistem

2.8.1 Pengertian Perancangan Sistem

Perancangan sistem merupakan suatu alat yang dapat

menggambarkan logika mengenai suatu alur kegiatan atau proses

baik yang dilakukan secara manual maupun komputer, sehingga

kegiatan yang akan dilakukan lebih terkontrol dan terstruktur.

2.8.2 UML (Unified Modelling Language)

Unified Modelling Language adalah sebuah "bahasa" yg

telah menjadi standar dalam industri untuk visualisasi, merancang

dan mendokumentasikan sistem piranti lunak. UML menawarkan

sebuah standar untuk merancang model sebuah sistem.

Dengan menggunakan UML kita dapat membuat model

(53)

dapat berjalan pada piranti keras, sistem operasi dan jaringan

apapun, serta di itulis dalam bahasa pemrograman apapun. Tetapi

karena UML juga menggunakan class dan operation dalam

konsep dasarnya, maka ia lebih cocok untuk penulisan piranti

lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java,

C# atau VB.NET. Walaupun demikian, UML tetap dapat

digunakan untuk modeling aplikasi prosedural dalam VB atau C.

a) Diagram Use Case

Diagram Use Case adalah diagram yang

menunjukkan fungsionalitas suatu sistem atau kelas dan

bagaimana sistem tersebut berinteraksi dengan dunia luar dan

menjelaskan sistem secara fungsional yang terlihat user.

Biasanya dibuat pada awal pengembangan. Use case diagram

menggambarkan fungsionalitas yang diharapkan dari sebuah

sistem. Yang ditekankan adalah “apa” yang diperbuat sistem,

dan bukan “bagaimana”. Sebuah use case merepresentasikan

sebuah interaksi antara aktor dengan sistem.

Seorang/sebuah aktor adalah sebuah entitas manusia

atau mesin yang berinteraksi dengan system untuk melakukan

pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat

membantu bila kita sedang menyusun requirement sebuah

sistem, mengkomunikasikan rancangan dengan klien, dan

merancang test case untuk semua feature yang ada pada

(54)

use case lain sebagai bagian dari proses dalam dirinya. Secara

umum diasumsikan bahwa use case yang di-include akan

dipanggil setiap kali use case yang meng-include dieksekusi

secara normal. Sebuah use case dapat di-include oleh lebih

dari satu use case lain, sehingga duplikasi fungsionalitas

dapat dihindari dengan cara menarik keluar fungsionalitas

yang common. Sebuah use case juga dapat meng-extend use

case lain dengan behaviour-nya sendiri. Sementara hubungan

generalisasi antar use case menunjukkan bahwa use case

yang satu merupakan spesialisasi dari yang lain. Adapun

simbol-simbol yang digunakan adalah sebagai berikut :

Tabel 2.9 Simbol Diagram Use Case

Simbol Keterangan

Actor Seorang / sebuah aktor adalah

sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.

Case Menggambarkan deskripsi yang

melibatkan actor

Unidirectional Association Relasi yang digunakan jika use case yang satu mirip dengan use case yang lain.

(55)

Dependency Relasi jika terdapat perilaku yang mirip dengan beberapa use case.

Sumber : Analisis dan Desain Sistem Informasi Pedekatan

Terstruktur, Jogiyanto,HM,2001

b) Skenario Use Case

Bagian ini diisi dengan skenario (flow of event) untuk

beberapa use case utama, yang menggambarkan urutan

interaksi actor dengan use case, dari awal sampai akhir.

Tabel 2.10 Contoh scenario use case

Identifikasi Nama Use Case

Deskripsi Aktor

Kondisi Awal Kondisi Akhir

Skenario

No Aksi Aktor Aksi Sistem

1 2 3 4

c) Activity Diagram

Activity diagram adalah representasi grafis dari alur

kerja tahapan aktifitas. Diagram ini mendukung pilihan

tindakan, iterasi dan concurrency. Pada pemodelan UML,

(56)

dan alur kerja operasional secara step-by-step dari komponen

suatu sistem. Activity diagram menunjukkan keseluruhan dari

aliran kontrol. Simbol-simbol yang digunakan adalah :

Tabel 2.11 Simbol Activity Diagram

Simbol Keterangan Start Point End Point Activities Fork (Percabangan) Join (Penggabungan) Decision

Swimlane Sebuah cara untuk mengelompokkan activity

berdasarkan Actor

(mengelompokkan activity dalam sebuah urutan yang sama)

Sumber : Analisis dan Desain Sistem Informasi Pedekatan Terstruktur, Jogiyanto,HM,2001

d) Sequence Diagram

Sequence diagram merupakan diagram yang

(57)

saling mempengaruhi menurut urutan waktu. Sebuah object

berinteraksi dengan object lain melalui pengiriman pesan

(messages). Sequence diagram digunakan untuk

menunjukkan urutan – urutan operasi dari sistem yang

melibatkan object–object yang berhubungan dan

mengilustrasikan sebuah use case.Sequence Diagram

digambarkan dalam sebuah chart dua dimensi yang terdiri

dari sumbu vertikal yang menunjukkan kerangka dari time

(waktu) dan sumbu horizontal menunjukkan sekumpulan dari

object – object yang saling berinteraksi. Elemen dari sebuah

sequence diagram yaitu object (active object) dan message

(pesan). Object adalah sebuah object yang memiliki suatu

peran dalam sebuah sistem yang dapat berupa sebuah object

instance atau actor. Nama dari objek ini ditulis dengan

menggunakan garis bawah seperti misalnya nama object.

Dan object digunakan untuk menggambarkan komunikasi

diantara active object dalam sebuah sequence diagram

(58)

2.9 Pengujian Perangkat Lunak

Aplikasi penguji dapat memberikan informasi tentang kualitas produk atau jasa di uji dan juga memberikan kualitas independen, dan objektifitas perangkat lunak yang memungkinkan para user untuk mengerti, menghargai dan memahami risiko ketika menjalankan aplikasi.

Aplikasi penguji, tergantung pada metode penguji yang digunakan, bisa diterapkan pada ketika saat dibuat. Tetapi, sebagian besar pengujian terjadi setelah persyaratan yang telah dibuat dan proses pengkodean selesai. Dengan demikian, metodologi tes diatur oleh metodologi pengembangan perangkat lunak dipakai. Model pengembangan perangkat lunak yang berbeda-beda akan memfokuskan upaya pengujian pada titik-titik yang berbeda dalam proses pembuatan.

2.9.1 BlackBox Testing

Black-box testing adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja. Pengujian kasus dibangun di sekitar spesifikasi dan persyaratan. Menggunakan deskripsi eksternal perangkat lunak, termasuk spesifikasi, persyaratan, dan desain untuk menurunkan uji kasus. Tes ini dapat menjadi fungsional atau non-fungsional, meskipun biasanya fungsional. Perancang uji memilih input yang valid dan tidak valid dan menentukan output yang benar. Tidak ada pengetahuan tentang struktur internal benda uji itu.

Metode uji dapat diterapkan pada semua tingkat pengujian perangkat lunak: unit, integrasi, fungsional, sistem dan penerimaan.Ini biasanya terdiri dari kebanyakan jika tidak semua pengujian pada tingkat yang lebih tinggi, tetapi juga bisa mendominasi unit testing juga.

Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karna itu uji coba blackbox memungkinkan pengembang software untuk membuat himpunan

Gambar

Tabel 2.2  Tabel Penyimpanan Berbagai Konfigurasi Audio Digital
Tabel  2.4   Nilai-Nilai Chunk Format File Wave [6]
Gambar 2.4  Diagram Format File Wave [6]
Gambar 2.19 Form Layout Window pada Visual Basic 6.0
+7

Referensi

Dokumen terkait

Masalah kecantikan dipandang sebagai salah satu kebutuhan pokok yang pada saat-saat tertentu harus dipenuhi, tidak hanya wanita bahkan saat ini kaum pria pun

Penelitian ini dilakukan untuk meneliti pengaruh sudut kemiringan ( slant angle = ) terhadap peningkatan perpindahan panas pada penukar kalor pipa konsentrik dengan

Nilai yang diperoleh siswa pada evaluasi hasil belajar kemudian dibandingkan dengan Kriteria Ketuntasan Minimal (KKM) pada materi hak anak di rumah dan disekolah

Bekasi di Kementerian Perhubungan yang terdiri dari Tim Pengarah, Tim Kerja, dan Sekretariat dengan susunan keanggotaan sebagaimana tercantum dalam Lampiran yang

BTS 2G, 3G and Transmissions • Mini CME 2006 2007 2009 2013 2014 2008 2005 2006 NSN TELKOMSEL PROJECT 2005- 2012 • Installation and commissioning. BTS 2G, 3G and Transmissions •

Dalam pelaksanaan penerapan layanan buleleng.dukcapil.online, perlunya dukungan dari segenap pegawai Dinas Kependudukan dan Pencatatan Sipil Kabupaten Buleleng dalam

Tujuan penelitian ini adalah untuk mengetahui perbedaan kadar CO dan SO2 di udara berdasarkan volume lalu lintas dan banyaknya pohon di Jl.. Mansyur

Bahwa, pemeriksaan tersebut dilakukan dengan cara melihat dan menghitung barang, menyesuaikan barang dengan berita acara penerimaan barang yang berlokasi di SMAN 1 Tanjung Raja