• Tidak ada hasil yang ditemukan

IMPLEMENTASI ALGORITMA HUFFMAN PADA KOMPRESI FILE WAVEDENGAN MENGGUNAKAN BORLAND DELPHI ABSTRACT

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI ALGORITMA HUFFMAN PADA KOMPRESI FILE WAVEDENGAN MENGGUNAKAN BORLAND DELPHI ABSTRACT"

Copied!
10
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA HUFFMAN PADA KOMPRESI FILE WAVEDENGAN MENGGUNAKAN BORLAND DELPHI

H. Akik Hidayat

Prodi Teknik Informatika, Departement Ilmu Komputer Fakultas MIPA UNPAD

Jl. Raya Bandung Sumedang KM 21 Jatinangor Sumedang 45363 E-mail: [email protected]

ABSTRACT

One sound file format that is widely used in the Windows operating system is the Wave format (*. WAV). Wave is a coarse file format (raw format) where the direct sound signal recorded and quantized into digital data. So a recorded track CD -quality audio it will require the storage media is large enough, and therefore we need a software that can reduce the file in order to save storage media.

The aim in this paper is to determine how the Huffman algorithm used in the compression wave files, and can generate a software that can compress a wave file, which saves storage capacity.

The steps taken in this are problem solvers library research or library research, to gather a variety of information related to the structure of the wave file and Huffman algorithms, and so designing a program interface.

File wave which has a large capacity can be compressed with the Huffman algorithm can generate a range ratio ranged from 20 % to 40 %. So it can be said with a compression ratio of Huffman's algorithm has been said to be good in terms of compressing files, especially files Wave.

Keyword : Sound, Wave, Huffman's Algorithm.

I. PENDAHULUAN

File wave merupakan file audio yang banyak ditemukan dalam kegiatan kita sehari-hari terutama dalam perangkat-perangkat multimedia, sebagai contoh untuk keperluan game, back sound dalam sistem operasi atau dalam aplikasi-aplikasi lainya yang menggunakan format file tersebut.

Format file Wave merupakan format kasar, karena format tersebut merupakan signal suara yang langsung dan dijadikan langsung data digital, yang mana format tersebut mempunyai format dasar yang dikenal dengan istilah PCM (Pulse Code Modulation). Sebagai contoh jika suatu lagu di rekam sekualitas CD Audio dengan

menggunakan sampling rate 44,1 kHz, 16 bit per sample, 2 kanal (stereo), maka ukurannya akan berkisar kurang lebih 176.400 byte sehingga untuk durasi 1 menit diperlukan 10,584 MB dan itu berarti membutuhkan media penyimpanan daya yang cukup besar karena untuk 5 menit saja akan membutuhkan sekitar 50 MB. Maka dari itu harus ada suatu program yang dapat mengecilkan file tersebut.

Supaya bisa menghemat media

penyimpanan data.

Maka dari masalah tersebut maka dibutuhkan sebuah perangkat lunak yang dapat melakukan kompresi pada file Wave sekaligus mampu memainkan kembali file Wave terkompresi tersebut. Maka dalam

(2)

Tugas Akhir ini penulis mengambil judul “Implementasi Algoritma Huffman Pada

Kompresi File Wave Dengan Menggunakan Borland Delphi 7”

II. LANDASAN TEORI

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

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.

Bagaimana caranya memasukkan suara analog ini sehingga dapat dimanipulasi oleh peralatan elektronik yang ada? Alat yang diperlukan untuk melakukan ini adalah transducer. Dalam hal ini, transducer adalah istilah untuk menyebut sebuah peralatan yang dapat mengubah tekanan udara (yang kita dengar sebagai suara) ke dalam tegangan elektrik yang dapat dimengerti oleh perangkat

elektronik, serta sebaliknya. Contoh transducer adalah mikrofon dan speaker. Mikrofon dapat mengubah tekanan udara menjadi tegangan elektrik, sementara speaker melakukan pekerjaan sebaliknya.

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

(3)

Gambar 2.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.

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

III. PERANCANGAN SISTEM

Algoritma atau encoding Huffman sebenarnya merupakan algoritma kompresi yang dapat diterapkan pada semua jenis baik untuk file biner maupun file teks. Algoritma ini efektif dengan rasio kompresi yang rendah jika terdapat banyak redundancy data atau perulangan data yang sama pada file.

Pada program ini hanya akan dibuat khusus untuk file audio berjenis Wave dan mempunyai audio format berjenis PCM (Pulse Code Modulation) dan hanya mendukung jumlah kanal maksimum 2

buah kanal (mono dan stereo). Untuk jenis Wave dengan Multi Channel tidak dapat dilakukan proses kompresi.

File Wave tersebut biasanya selalu berukuran besar untuk durasi waktu main yang lama. Sebagai contoh untuk jenis sample rate 44.100 Hz dengan jumlah kanal stereo dan bits per sample 16 bit untuk durasi selama 1 detik saja memerlukan kapasitas sebesar 44.100  2

 16 = 1.411.200 bit per detik = 176.400 byte per detik. Jadi untuk durasi lagu yang rata-rata 4 menit memerlukan kapasitas 176.400  4  60 = 42.336.000 byte.

Seperti halnya dengan struktur file yang lain, file Wave juga mempunyai struktur tersendiri. Struktur file Wave mengikuti standar RIFF dengan pengelompokkan informasi file atas chunk-chunk. Secara umum bagian dari file Wave dibagi atas bagian header dan bagian data. Bagian data menyimpan data Wave yang dapat di-playback kembali. Sedangkan bagian header berisi informasi mengenai

(4)

jenis file Wave, audio format, sample rate, byte rate, jumlah kanal, block align, bits per sample, dan lain-lain.

Berikut ini merupakan diagram alir dari program kompresi dan dekompresi file

Wave. Diagram pertama memperlihatkan proses pembacaan file untuk mendapatkan informasi file Wave. Diagram kedua berupa diagram untuk proses kompresi dan dekompresi.

End

Begin

Load File

Wave

Get File Wave

Header

RIFF And

WAVE ?

Add To List

Yes

No

Langkah pertama sebelum file Wave yang dimasukkan ke dalam list, maka terlebih dahulu file Wave di-load dan dibuka. Setelah itu lakukan pembacaan pada header file Wave. Selanjutnya pengecekan apakah merupakan string

“RIFF”, berikutnya adalah pengecekan apakah merupakan string “WAVE”. Jika keduanya benar maka file tersebut merupakan file Wave dan langsung ditambahkan di bagian list, jika tidak lakukan loading file berikutnya.

(5)

Begin

Checked ?

Get File Wave Audio Format

Audio Format = 1 (PCM) ? Yes

Yes Get File Wave

Chunk Data Audio Format = 88 ? No Yes Compress Chunk Data Wave Decompress Chunk Data Wave

Set Audio Format = 88 Calculate ChunkSize and SubChunk2Size

Set Audio Format = 1 Calculate ChunkSize and SubChunk2Size

Write To Output File Save File Wave

Information

End Last File in

List ? Process Next File

Yes No

No

No

Sebelum melakukan proses

kompresi file Wave maka pertama sekali adalah mengecek apakah file yang diproses tersebut ditandai pada bagian list. Jika tidak ada satu pun file yang ditandai maka proses kompresi tidak dilakukan. Sebaliknya jika terdapat satu atau beberapa file yang ditandai maka proses

dilakukan pada file pertama yang ditandai. File dibaca untuk mengambil nilai Audio Format, seluruh header file dan chunk data yang merupakan data audio. Jika bernilai 1 berarti file belum dikompresi maka dapat dilakukan proses kompresi. Kompresi dilakukan hanya pada bagian chunk data dengan algoritma Huffman. Hasil kompresi

(6)

berupa data yang dikompresi berikut pohon Huffman disimpan sekaligus akan ditulis ke file output. Setelah proses kompresi selesai informasi file yang diproses ditulis kembali ke file output berikut dengan pohon Huffman dan data hasil kompresi. Setelah itu lakukan perhitungan kembali nilai chunk size yaitu ukuran file output dikurangi dengan 8 byte dan perhitungan subchunk2 size yaitu ukuran data hasil kompresi berikut dengan pohon Huffman dalam satuan byte.

Untuk nilai audio format selain 1 dan 88 tidak akan diproses oleh program dan akan dilewatkan. Selanjutnya bila file tersebut selesai diproses maka akan dilanjutkan ke file berikutnya yang ditandai hingga file terakhir pada list.

Program dirancang mampu

memainkan file Wave. Fungsi untuk memainkan file Wave diproses dengan menggunakan fungsi API (Application Programming Interface) Multimedia Windows. Untuk memainkan file Wave terlebih dahulu file tersebut di-load dan dilakukan pengecekan terhadap nilai audio format. Bila bernilai 1 maka file akan langsung dimainkan, bila bernilai 88 maka program akan melakukan dekompresi ke memori sistem terlebih dahulu file tersebut baru kemudian dimainkan.

Program akan terus memonitor status dari file Wave yang dimainkan, bila

telah mencapai akhir file berarti proses playing akan selesai dan akan dilanjutkan memainkan file selanjutnya dari list hingga file terakhir dalam list.

Bila pada saat file Wave sedang dimainkan user menekan tombol “Pause” maka file tersebut akan dihentikan sejenak dan posisi playing diset ke posisi sekarang. Bila user menekan kembali tombol “Play” maka file akan dimainkan pada posisi terakhir sewaktu file di-pause. Sedangkan bila pada saat file dimainkan user menekan tombol “Stop” maka program akan menghentikan file Wave yang dimainkan.

IV. PEMBAHASAN

Program ini tidak memerlukan cara instalasi yang khusus, dengan alasan bahwa semua file yang dibutuhkan oleh aplikasi ini dapat dikompilasi menjadi satu file executeable. Jadi untuk instalasi program ini cukup dengan

meng-copyfileexecuteable-nya (Wave

Compressor.EXE) ke dalam lokasi folder yang dipilih pada harddisk. Jika program tidak dapat dijalankan lakukanlah instalasi dengan menjalankan file SETUP.EXE.

Untuk menjalankan program ini dapat dilakukan dengan mengklik pada fileWave Compressor.EXE. Setelah program di-load maka akan terlihat bentuk tampilan seperti gambar di bawah ini.

(7)

Langkah pertama yang dilakukan

untuk mengkompresi atau

mengdekompresi sebuah atau beberapa fileWave adalah me-load fileWave tersebut terlebih dahulu ke dalam list. Ini dapat dilakukan dengan mengklik pada tombol “Add File” untuk memilih sebuah file

tunggal dengan memunculkan sebuah kotak dialog untuk memilih satu buah fileWave. Sedangkan untuk memilih semua fileWave yang terdapat pada folder tertentu dapat dengan mengklik pada “Add Folder”.

Sebelum ditempatkan ke dalam list semua fileWave tersebut akan dicek dahulu apakah memang file tersebut merupakan jenis Wave. Pengecekan tidak dilakukan dengan mengecek ekstensi file saja tetapi dengan mengecek header dari fileWave tersebut. Jika header dari file tersebut bertanda “RIFF” dan “WAVE” maka file tersebut adalah fileWave. Jika ada file yang tidak mempunyai header seperti di atas maka file tersebut tidak akan ditambahkan ke list dan dimunculkan sebuah pesan kesalahan.

Selanjutnya adalah mengecek informasi dari tiap fileWave seperti tanggal pembuatan file, ukuran file asli, attribut file, audio format, jumlah kanal (number of channels), block align, sampling rate, byte

rate, bits per sample, dan durasi fileWave. Informasi tersebut secara otomatis akan ditampilkan ke dalam list untuk tiap-tiap file. Informasi-informasi tersebut berguna nantinya dalam proses kompresi dan dekompresi fileWave.

Setelah semua proses ini maka file akan didaftar seperti terlihat pada gambar di bawah ini. File dalam list ini akan diurutkan secara urutan menaik (ascending) sesuai dengan nama file. Jika user menginginkan pengurutan dengan urutan menurun (descending) maka dapat dilakukan dengan mengklik pada bagian column header “File Name”. Hal yang sama juga dapat dilakukan pada column header yang lain.

(8)

Sebelum memproses fileWave untuk dikompresi atau didekompresi maka file yang akan diproses harus dipilih dahulu dengan memberikan tanda cek pada file tersebut. Untuk memilih semua file sekaligus dapat dengan menekan tombol “Select All” sedangkan untuk meniadakan semua pilihan pada file dapat dengan menekan tombol “Deselect All”. Untuk menghilangkan file dari list maka file yang telah diberi tanda cek dapat dihapus dari list dengan menekan tombol “Remove”. Penekanan pada tombol “Remove All” akan menghapus semua file dari list.

Selanjutnya adalah memilih path output sebagai path keluar file yang diproses. Bila user menggunakan path yang sama dengan path fileWave sumber maka file hasil akan menimpa file sumber tanpa memberikan konfirmasi kepada user terlebih dahulu. Untuk lebih amannya sebaliknya path output dibuat berlainan dengan path file sumber. Untuk memilih path output dapat dengan menekan

tombol bergambar maka akan

(9)

Setelah itu user dapat menekan tombol “Compress” untuk melakukan proses kompresi pada fileWave. Semua file yang ditandai pada list akan diproses satu persatu. Setelah file selesai diproses maka status file berubah menjadi “Proceed” menandaikan file telah berhasil diproses. Jika file yang diproses ternyata telah pernah dikompresi maka program akan melewatkan (bypass) file tersebut. Semua ketentuan dalam mendekompresi fileWave

juga berlaku sepertinya pada proses kompresi. File yang tidak terkompresi akan dilaporkan melalui sebuah pesan kesalahan dan file tersebut akan dilewatkan. Untuk melalukan prose dekompresi fileWave

dapat dengan menekan tombol

“Uncompress”. Setelah proses selesai maka akan dimunculkan sebuah pesan bahwa proses telah selesai dilakukan, seperti terlihat pada gambar berikut ini .

Setelah ditekan tombol OK maka akan dimunculkan sebuah form yang memuat frekuensi karakter yang terdapat

pada data file Wave seperti terlihat pada gambar berikut ini.

File Wave yang ada di list baik yang terkompresi atau tidak dapat dimainkan secara langsung. Untuk melalukan ini user dapat mengaksesnya melalui tombol audio seperti “Play” untuk memainkan fileWave.

Tombol “Pause” untuk menghentikan fileWave yang sedang dimainkan sejenak, dan terakhir tombol “Stop” untuk menghentikan fileWave yang sedang dimainkan.

(10)

V. KESIMPULAN

1. Algoritma huffman bisa diartikan sebagai sebuah teknik kompresi dokumen yang menggunakan jumlah kemunculan relatif simbol-simbol karakter untuk menghasilkan presentasi jumlah biner dengan jumlah tertentu untuk tiap karakter;

2. Reduksi ukuran file yang diperoleh dengan algoritma Huffman ini berkisar dari range 20% hingga 40%. Jadi dapat dikatakan dengan rasio kompresi ini algoritma Huffman sudah dikatakan baik dalam hal mengkompresi file khususnya fileWave;

3. Tingkat kompresi dipengaruhi oleh banyaknya nada yang sama dalam file Wave;

4. Kecepatan proses tidak bergantung pada data yang diproses tetapi berbanding lurus dengan ukuran fileWave, artinya semakin besar ukuran fileWave yang diproses maka semakin lama waktu prosesnya;

5. File Wave yang telah dikompresi tersebut hanya dapat dimainkan dari program ini.

VI. DAFTAR PUSTAKA

Rosa, M. Salahudin, Struktur Data, Modula, Bandung, 2010;

Rosa, M. Salahudin, Algoritma Dan

Pemrograman, Modula, Bandung, 2010; Visual Basic 2010 Source Code, Wahana

Komputer 1010;

Basalamah, Affah, Teknologi Multimedia

MP3, PT. Elex Media Komputindo, Jakarta,

2001;

Hadi R, Pemrograman Windows API

dengan Microsoft Visual Basic, PT. Elex

Media Komputindo, Jakarta, 2001;

Halvorson M, Microsoft Visual Basic 6.0

Professional, Step by Step, PT. Elex Media

Komputindo, Jakarta, 2000;

Microsoft Developer Network (MSDN) Library Visual Studio 6.0, Microsoft

Corporation, 1998;

Shannon, C. E., A Mathematical Theory of

Communication, The Bell System Technical

Journal, Vol. 27;

Gambar

Gambar 2.1  Proses sebaliknya, yaitu pengubahan

Referensi

Dokumen terkait

yaitu dengan cara memberikan jasa pelayanan sesuai dengan yang diharapkan oleh pelanggan.. Kualitas pelayanan mempunyai hubungan yang erat dengan tingkat kepuasan

Pengenalan dan pemakaian basic tools pada adobe photoshop.

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

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

The product of the pozzolanic reaction (secondary C-S-H) can incorporate alkali metal ions into their structure and reduce the alkalinity of the pore solution. At the same time, the

Hasil penelitian ini menunjukkan bahwa karakteristik ibu hamil berdasarkan tingkat pengetahuan dalam kategori tinggi yaitu 24 orang (42,9%), jumlah bayi yang di lahirkan

Karya ilmiah ini harus dilaksanakan oleh dosen IKIP Padang dalam rangka meningkatkan mutu, baik sebagai dosen maupun sebagai peneli ti.. Oleh karena itu, Pusat

I ndofood Sukses Makm ur ( I NDF) akan m engerek har ga t epung t erigu karena sej ak Mei 2018 harga t epung t elah naik 10% sebagai dam pak kenaikan harga gandum di pasar global