Rancang Bangun Aplikasi Kompresi Audio Berbasis

advertisement
1
Rancang Bangun Aplikasi Kompresi Audio Berbasis
Android Menggunakan Algoritma Huffman
Rendra Warsita1, Rahmat Agus Setiawan2, Yoannita3
STMIK Global Informatika MDP, Jalan Rajawali No. 14 Palembang, 0711-376400
Program Studi Teknik Informatika
Email : [email protected], [email protected], [email protected]
123
Abstrak
File audio merupakan salah satu file multimedia yang berkembang pesat, terutama pada
industri music yang semakin maju membuat banyak sekali ekstensi file audio yang berukuran
besar, untuk itu diperlukan adanya aplikasi kompresi audio untuk memampatkan ukuran file
audio. Ukuran audio yang lebih kecil akan mengurangi delay time pada pengiriman data
sehingga pengiriman data akan lebih cepat, selain itu dengan adanya aplikasi ini juga dapat
mengefisiensi ruang penyimpanan pada perangkat ponsel. Algoritma Huffman merupakan salah
satu algoritma yang digunakan dalam mengkompresi data. Algoritma Huffman bisa diterapkan
dalam kompresi file audio, sehingga bisa mengkompres file audio menjadi lebih kecil dari
ukuran semula tanpa mengurangi informasi yang terkandung dalam file audio. Aplikasi
kompresi ini dikembangkan pada sistem operasi Android dengan aplikasi Android Developer
Tools. Analisis dan kebutuhan aplikasi bagi pengguna dikembangkan dengan metodologi
prototyping. Dari hasil pengujian dapat disimpulkan bahwa Algoritma Huffman dapat
diterapkan untuk kompresi file audio, rasio hasil kompresi berbeda-beda sesuai dengan ekstensi
dan ukuran file. Waktu kompresi juga ditentukan berdasarkan besarnya ukuran dan ekstensi file.
Kata kunci : Kompresi, Audio, Algoritma Huffman, Android, Prototyping.
Abstract
Audio file is one of the rapidly growing multimedia files, especially in the music
industry that makes a lot of more advanced audio file extensions that are large, it is necessary
for the application of audio compression to compress the audio file size. Smaller size audio will
reduce the time delay on the transmission of data so that the data transmission will be faster,
with this audio compression storage space can be more efficient in mobile devices. Huffman is
one of the algorithms used in compressing the data. Huffman algorithm can be applied in a
compressed audio file, it can compress audio files to be smaller than the original size without
reducing the information contained in the audio file. This compression applications developed
on the Android operating system with the Android Developer Tools. Analysis and application
requirements for users developed with prototyping methodology. From the test results it can be
concluded that the Huffman algorithm can be applied to compressed audio files, the
compression ratio of the results vary according to the extension and file size. Time compression
is also determined based on the large size and the file extension.
Keywords : Compression, Audio, Huffman Algorithm, Android, Prototyping.
2
1. PENDAHULUAN
K
ompresi data merupakan salah satu kajian ilmu komputer yang bertujuan untuk
mengurangi ukuran file sebelum menyimpan atau memindahkan data tersebut ke
dalam media penyimpanan Shelly Arysanti[1]. Proses kompresi merupakan proses reduksi
ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat (compact)
namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut Dharma
Putra[2]. Pada citra, video, dan audio, kompresi mengarah pada minimalisasi jumlah bit rate
untuk representasi digital [2]. Pada beberapa literatur, istilah kompresi sering disebut juga data
compression, bandwidth compression, dan signal compression[2].
Saat ini terdapat banyak algoritma kompresi, antara lain Dynamic Markov Compression
(DMC), Run Length Encoding (RLE), Lempel Ziv Welch (LZW), Arithmetic coding dan lainlain. Berdasarkan beberapa penelitian terdahulu Algoritma Huffman lebih cepat dalam
melakukan kompresi, dan baik dalam kompresi audio, menurut D.Venkataswkhar, P.Aruna
(2012) “Algoritma Huffman lebih baik, cepat, dan menghasilkan PSNR yang tinggi dari
Arithmetic coding dalam melakukan kompresi”[3]. menurut Linawati, Henry P. Panggabean
(2004) “Hasil kompresi Huffman lebih baik dibandingkan LZW dan DMC pada kasus file biner,
file multimedia, file gambar dan file hasil kompresi”[4].
File audio merupakan sampel suara, setiap fraksi n dalam satu detik, sampel suara
diambil dan disimpan sebagai informasi digital dalam bit dan byte Tay Vaughan[5]. File audio
merupakan salah satu file multimedia yang berkembang pesat terutama pada industri music yang
semakin maju membuat banyak sekali ekstensi file audio yang berukuran besar, untuk itu
diperlukan adanya aplikasi kompresi audio untuk mempercepat pengiriman data.
Pengiriman data dapat melalui beberapa perangkat, salah satunya adalah perangkat
mobile berbasis Android. Android merupakan platform yang telah menjelma menjadi sistem
operasi mobile terpopuler di dunia, karena Android menyediakan platform terbuka bagi para
pengembang untuk menciptakan aplikasi mereka sendiri yang digunakan oleh bermacam peranti
bergerak. Android adalah sistem berbasis Linux yang digunakan untuk telepon seluler (mobile)
seperti telepon pintar (smartphone) dan komputer tablet (PDA) Yosef Murya[6].
Berdasarkan latar belakang diatas maka penulis membuat aplikasi kompresi audio
berbasis android menggunakan algoritma huffman, agar dapat mengurangi ukuran file audio
sehingga dapat memaksimalkan ruang penyimpanan di smartphone.
2. METODOLOGI PENELITIAN
Dalam mengembangkan aplikasi ini, digunakanlah metodologi penelitian yang
sistematis dimana didalamnya penulis menggunakan metode prototipe. Menurut Janner
Simarmata (2010, H. 62-63) Sebuah Prototipe adalah bagian dari produk yang mengekspresikan
logika maupun fisik antarmuka eksternal yang ditampilkanp[7]. Konsumen potensial
menggunakan prototipe dan menyediakan masukan untuk tim pengembang sebelum
pengembangan skala besar dimulai. Melihat dan mempercayai menjadi hal yang diharapkan
untuk dicapai dalam prototipe dengan menggunakan pendekatan ini konsumen dan tim
pengembang dapat mengklarifikasi kebutuhan dan interpretasi mereka. Berikut ini adalah
tahapan-tahapan dalam prototyping tersebut adalah sebagai berikut :
2.1 Mengumpulkan dan menganalisis kebutuhan
Pada tahap ini penulis mengumpulkan semua kebutuhan yang diperlukan dengan
membaca buku tentang algoritma huffman, teknik kompresi, dan teori teori lain yang terkait,
serta penulis telah mempelajari penelitian-penelitian dan jurnal terdahulu dan
membandingkannya serta mencari beberapa aplikasi sejenis untuk menjadi acuan dalam
pembuatan aplikasi seperti pada Tabel 1 :
3
Basis
Desain
Penyimpanan
Fitur
Kompresi
Dekompresi
Tabel 1 Perbandingan Aplikasi Sejenis
Rar for Android
WinRar
Android
Desktop
Desain menarik dan mudah digunakan.
Desain menarik dan mudah
digunakan.
Penyimpanan file dapat dipilih sendiri oleh Penyimpanan
file
dapat
user, atau default.
dipilih sendiri oleh user, atau
default.
- Dapat membuat password
- Dapat membuat password
- History
- File backup
- File dapat langsung dikompres tanpa - File
dapat
langsung
harus membuka aplikasi
dikompres tanpa harus
membuka aplikasi
Melakukan kompresi dengan mudah
Melakukan kompresi dengan
mudah
Melakukan kompresi dengan mudah
Melakukan kompresi dengan
mudah
2.2 Membangun sebuah prototipe
Pada tahap ini, prototyping didesain dengan membuat perancangan sementara yang
berfokus pada penyajian aplikasi kompresi audio. Dengan tahapan kerja yang dilakukan
meliputi :
a. Mengidentifikasi alur struktur sistem yang berjalan dalam perancangan aplikasi sementara
b. Menganalisis kebutuhan yang akan digunakan dalam membangun rancangan aplikasi
kompresi audio.
c. Merancang alur jalannya aplikasi kompresi audio dari awal sampai akhir.
d. Desain dibuat dalam bahasa pemrograman Java yang dapat dimengerti oleh smartphone yang
berbasis Android.
2.3 Evaluasi Prototipe
Pada tahap ini dilakukan evaluasi untuk mengetahui apakah rancangan aplikasi yang
dibuat sesuai dengan yang diharapkan. Jika tidak, akan diperbaiki dengan perubahan desain dan
prototipe. Apabila aplikasi sesuai dengan yang diharapkan, maka pengembangan produk dapat
dimulai.
Dengan tahapan kerja yang dilakukan yaitu :
a. Memperlihatkan apakah rancangan aplikasi kompresi audio sudah memenuhi atau belum.
b. Jika belum sesuai dengan kebutuhan pengguna maka rancangan diperbaiki kembali sesuai
dengan kebutuhan pengguna hingga sesuai kebutuhan.
2.4 Membangun Sistem
Pada tahap ini, setelah prototyping yang sebelumnya sudah dirancang dan dievaluasi
tampilan yang sesuai kebutuhan, maka setelah itu dibangun kembali menjadi sebuah sistem atau
aplikasi dengan memberi kode program.
Dengan tahapan kerja yang dilakukan yaitu :
a. Mengembangkan kembali rancangan sebelumnya sesuai kebutuhan dan keinginan dan
kebutuhan user berdasarkan GUI (Graphic User Interface).
b. Pengkodean aplikasi kompresi audio dengan menggunakan bahasa pemrograman java
berbasis Android menggunakan Eclipse, SDK, dan ADT. Menurut Wahana Komputer[9]
Eclipse yaitu IDE (Integrated Development Environment) untuk mengembangkan perangkat
lunak dan dapat dijalankan di semua platform (platform independent). Menurut Yosef
Murya[6] Android Software Development Kit adalah tools API ( Application Programing
Interfaces ) yang diperlukan untuk pengembangan aplikasi pada platform Android, atau
4
dapat dikatakan sebagai perangkat lunak yang digunakan dalam pengembangan aplikasi pada
Android. Menurut Yosef Murya[6] Android Developer Tools adalah plug-in yang digunakan
untuk membuat project berbasis Android. ADT wajib diinstal sehingga IDE Eclipse yang
sudah terinstal di komputer dapat digunakan sebagai tempat atau media untuk melakukan
pemrograman Android.
2.5 Pengujian Program
Pada tahap ini, pengujian dilakukan terhadap kinerja dari aplikasi kompresi audio
sejauh mana aplikasi ini dapat digunakan sesuai dengan yang diharapkan.Dengan tahapan kerja
yang dilakukan yaitu :
a. Menguji sejauh mana aplikasi kompresi audio yang dibuat dapat bekerja secara maksimal.
b. Menguji apakah aplikasi kompresi audio masih terdapat kesalahan atau tidak.
3. HASIL DAN PEMBAHASAN
3.1 Flowchart
Flowchart adalah bagan (chart) yang menunjukan alir (flow) didalam program atau
prosedur sistem secara logika Jogiyanto [8]. Bagan alir program (program flowchart)
merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program.
3.1.1 Flowchart Menu Utama
Gambar 3.1 Flowchart Menu Utama
Keterangan :
1. Pada tampilan menu utama terdapat 4 menu, yaitu kompresi dan dekompresi, tentang,
petunjuk, dan keluar.
2. Menu kompresi dan dekompresi merupakan menu untuk melakukan kompresi dan
dekompresi file audio.
3. Menu tentang merupakan menu untuk melihat profil pembuat aplikasi.
4. Menu petunjuk merupakan menu untuk memandu pemakai dalam menggunakan aplikasi.
5. Pada saat memilih menu keluar, muncul konfirmasi ya/tidak. Jika “ya” makan akan keluar
dari aplikasi, tetapi jika “tidak” maka akan tetap tampil menu utama.
5
3.1.2 Flowchart Pengujian Kompresi
Gambar 3.2 Flowchart Pengujian Kompresi
Keterangan :
1. Pada pengujian kompresi, masukkan file audio yang akan dikompresi.
2. Pada saat file audio diuji, ada beberapa proses yang akan dilakukan secara bertahap, yaitu
preprocessing, create tree, code tree, ouput.
3. Preprocessing merupakan proses cek ukuran file, inisialisasi file, menghitung statistik
karakter, dan sorting kemunculan tiap karakter.
4. Create tree merupakan proses membuat pohon huffman.
5. Code tree merupakan proses encoding setelah pohon biner huffman terbentuk, data asli
diganti dengan kode bit berdasarkan pohon biner.
3.1.3 Flowchart Preprocessing
Gambar 3.3 Flowchart Preprocessing
Keterangan :
1. Pada tahap preprocessing, file akan di cek ukurannya.
2. Inisialisasi file merupakan proses inisialisasi file apakah file tersebut akan di encoding atau
decoding
3. Count file yaitu merupakan hitung banyak karakter dan jumlah dari masing – masing tiap
karakter.
4. Sorting & Probabilitas, yaitu mengurutkan dan menghitung kemunculan tiap karakter.
5. Daftar simpul frekuensi adalah hasil dari sorting.
6
3.1.4 Flowchart Create Tree
Gambar 3.4 Flowchart Create Tree
Keterangan :
1. Create tree merupakan proses pembentukan pohon huffman sebagai mengkodekan data
berdasarkan pada frekuensi kemunculannya.
2. Membuat simpul merupakan tahap pertama dengan mengambil 2 simpul dengan frekuensi
terkecil dari daftar frekuensi.
3. Simpul > 1 merupakan kondisi dimana simpul lebih dari 1 dan akan digabung lagi dengan
penjumlahan 2 frekuensi terkecil. Dan ulangi seterusnya.
3.1.5 Flowchart Dekompresi
Gambar 3.5 Flowchart Dekompresi
Keterangan :
1. Pada pengujian dekompresi, masukkan file audio yang akan di dekompresi.
2. Pada saat file audio diuji, ada beberapa proses yang akan dilakukan secara bertahap, yaitu
preprocessing, dan Uncode.
3. Preprocessing merupakan proses cek ukuran file, inisialisasi file.
4. Uncode yaitu merupakan menyusun kembali data dari bit biner menjadi sebuah karakter
kembali.
7
3.2 Tampilan Antarmuka Aplikasi
Rancangan antarmuka merupakan tampilan layar yang didesain dari sistem yang
dibangun. Rancangan interface digunakan sebagai penghubung antara user dengan sistem,
sehingga user lebih mudah dan nyaman dalam mengakses sistem.
3.2.1 Tampilan Splash Screen
Halaman ini merupakan tampilan berdurasi 3 detik sebelum menampilkan halaman
menu. Tampilan Splash Screen dapat dilihat pada gambar 3.6.
Gambar 3.6 Tampilan Splash Screen
3.2.2 Tampilan Halaman Utama
Halaman ini merupakan tampilan menu utama. Didalam halaman menu utama terdapat
menu Kompresi, Tentang dan Petunjuk serta menu Keluar. Tampilan Menu Utama dapat dilihat
pada gambar 3.7.
Gambar 3.7 Tampilan Halaman Utama
3.2.3 Tampilan Halaman Kompresi
Halaman ini merupakan tampilan menu Kompresi. Pada menu ini terdapat button Cari
mencari file, button Cari untuk menyimpan file yang akan dikompresi atau didekompresi.
Terdapat juga dua button yaitu button Kompresi dan Dekompresi. Tampilan Halaman Kompresi
dapat dilihat pada gambar 3.8.
8
Gambar 3.8 Tampilan Halaman Kompresi
3.2.4 Tampilan Halaman Pencarian File
Halaman ini merupakan tampilan pencarian file yang akan dikompres, pencarian file
akan mengakses eksternal dan internal memori pada peramgkat ponsel Android. Tampilan
halaman pencarian file dapat dilihat pada gambar 3.9.
Gambar 3.9 Tampilan Halaman Pencarian File
3.2.5 Tampilan Halaman Tentang
Halaman ini merupakan halaman yang berisi tentang informasi versi aplikasi dan
pengembang aplikasi. Tampilan halaman Tentang dapat dilihat pada gambar 3.10.
Gambar 3.10 Tampilan Halaman Tentang
9
3.2.6 Tampilan Halaman Petunjuk
Halaman ini merupakan halaman bantuan yang berisi tentang cara menjalankan aplikasi
kompresi audio berbasis Android dengan algoritma Huffman. Tampilan halaman About dapat
dilihat pada gambar 3.11.
Gambar 3.11 Tampilan Halaman Petunjuk
3.3 Hasil Pengujian
Hasil pengujian didapat setelah melakukan proses yang telah diterangkan pada bab
sebelumnya metodologi penelitian, pada tahap ini akan dilakukan pengujian terhadap
keseluruhan unit-unit program yang disatukan. Program akan diimplementasikan ke smartphone
untuk selanjutnya dilakukan. Menurut Roger S.Pressman[10] Pengujian kotak hitam / blackbox
testing juga disebut pengujian perilaku, berfokus pada persyaratan fungsional perangkat lunak.
Artinya pengujian kotak hitam memungkinkan anda untuk membuat beberapa kumpulan kondisi
masukan yang sepenuhnya akan melakukan semua kebutuhan fungsional untuk program.
pengujian agar dapat diketahui apakah program berjalan dengan baik.pengujian dilakukan
proses kompresi dan dekompresi pada 30 data sampel untuk melihat hasil rasio dan waktu,
berikut hasil uji coba disajikan pada tabel 1 dan tabel 2:
Tabel 2 Hasil Uji Coba Rasio dan Waktu Kompresi File Audio
Nama File
Ukuran File
Ukuran File
Rasio
Asli (Byte)
Kompres(Byte)
(%)
John Legend - All of Me.aac
7,464,845
7,205,536
3
onclassical chopin scherzo.flac
3,227,325
3,222,628
1
onclassical ensemble la tempesta
9,342,209
9,341,102
1
porpora.flac
Caminhando.midi
1,589,142
1,576,355
1
ding-dong.midi
1,540,138
1,527,001
1
hallowed.midi
102,922
66,906
35
La bamba base.midi
41,466
32,269
22
nao-a-outro.midi
8,940,160
8,924,190
1
Kenny G You Raise Me Up.mp3
3,951,245
3,947,637
1
Kenny G-Endless Love.mp3
4,260,591
4,224,143
1
MCR Welcome to my black
6,749,974
6,729,656
1
parade.mp3
Romance D'amour
4,933,604
4,906,720
1
(Instrumental).mp3
Together Forever Sad Inspiring
4,049,638
4,042,466
1
Romantic Piano Beat.mp3
Yiruma Kiss The Rain.mp3
4,172,808
4,125,221
1
Waktu(
ms)
4582
2393
4953
1172
1122
457
395
6570
7060
2468
5063
3463
2234
2408
10
Yiruma River Flow in You Sungha Jung (Piano).mp3
bbm_end_call.wav
bbm_incoming_call.wav
bbm_outgoing_call.wav
bbm_tone.wav
onclassical demicheli
geminiani_pieces_allegro.wav
onclassical luisi bach partita.wav
onclassical luisi chopin
scherzo.wav
onclassical riva froberger
tombeau.wav
10,421,056
10,152,788
3
6237
28,844
445,590
297,515
384,044
18,468,976
24,277
402,395
264,490
279,180
16,023,340
16
10
11
27
13
265
515
546
682
14559
17,307,760
18,301,724
15,365,597
15,587,199
11
15
11570
12144
17,994,452
15,135,793
16
11544
Tabel 3 Hasil Uji Coba Waktu Dekompresi File Audio
Nama File
Ukuran File
Ukuran File
Kompres
Dekompres
John Legend - All of Me.bhfm
7,205,536
7,464,845
onclassical chopin scherzo. bhfm
3,222,628
3,227,325
onclassical ensemble la tempesta
9,341,102
9,342,209
porpora. bhfm
Caminhando. bhfm
1,576,355
1,589,142
ding-dong. bhfm
1,527,001
1,540,138
hallowed. bhfm
66,906
102,922
La bamba base. bhfm
32,269
41,466
nao-a-outro. bhfm
8,924,190
8,940,160
Kenny G You Raise Me Up.bhfm
3,947,637
3,951,245
Kenny G-Endless Love.bhfm
4,224,143
4,260,591
MCR Welcome to my black
6,729,656
6,749,974
parade.bhfm
Romance D'amour
4,906,720
4,933,604
(Instrumental).bhfm
Together Forever Sad Inspiring
4,042,466
4,049,638
Romantic Piano Beat.bhfm
Yiruma Kiss The Rain.bhfm
4,125,221
4,172,808
Yiruma River Flow in You - Sungha
10,152,788
10,421,056
Jung (Piano).bhfm
bbm_end_call.bhfm
24,277
28,844
bbm_incoming_call.bhfm
402,395
445,590
bbm_outgoing_call.bhfm
264,490
297,515
bbm_tone.bhfm
279,180
384,044
onclassical demicheli
16,023,340
18,468,976
geminiani_pieces_allegro.bhfm
onclassical luisi bach partita.bhfm
15,365,597
17,307,760
onclassical luisi chopin scherzo.bhfm
15,587,199
18,301,724
onclassical riva froberger
15,135,793
17,994,452
tombeau.bhfm
Waktu(s)
18340
7816
22412
4133
4345
429
542
22757
9640
10204
18168
11901
10028
12120
25136
305
1428
1077
1138
39747
37265
40467
39287
 11
4. KESIMPULAN
Dari hasil aplikasi yang telah dibuat, maka penulis dapat menyimpulkan bahwa:
1. Algoritma Huffman dapat diterapkan dalam pembuatan Aplikasi Kompresi File Audio
Berbasis Android Menggunakan Algoritma Huffman.
2. Berdasarkan hasil ujicoba, rasio hasil kompresi dan dekompresi file audio yang dilakukan
pada tiga jenis ponsel menghasilkan rasio kompresi yang sama.
3. Berdasarkan hasil ujicoba, waktu kompresi dan dekompresi file audio yang dilakukan pada
tiga jenis ponsel menghasilkan waktu kompresi yang berbeda tergantung pada spesifikasi
RAM, CPU dan OS ponsel.
4. Berdasarkan hasil evaluasi yang telah penulis lakukan terhadap 30 responden, Aplikasi
Kompresi File Audio Berbasis Android Menggunakan Algoritma Huffman mudah
digunakan, tampilan yang menarik, fitur yang lengkap dan membantu dalam mengkompres
file audio.
5. SARAN
Saran yang dapat direkomendasikan oleh penulis dalam menyelesaikan skripsi ini adalah :
1. Aplikasi Kompresi File Audio Berbasis Android Menggunakan Algoritma Huffman ini
dapat dikembangkan lagi dengan menstabilkan proses kompresi agar persentase
peningkatan dapat mencapai > 16% karena berdasarkan hasil pengujian aplikasi mampu
mengkompresi file audio dengan persentase 1%-16%.
2. Aplikasi Kompresi File Audio Berbasis Android Menggunakan Algoritma Huffman ini
dapat dikembangkan lagi dengan menambahkan fitur untuk mengkompresi file video dan
file multimedia yang lain.
6. DAFTAR PUSTAKA
[1]
Arysanti Shelly, L.Z. Livianty Indah 2011, Analisis Metode Huffman untuk Kompresi
Data Citra dan Teks pada Aplikasi Kompresi Data, STMIK GI MDP, Palembang.
[2] Putra, Dharma 2010, Pengolahan Citra Digital, Andi, Yogyakarta.
[3] Venkatasekhar D., Aruna P 2012, A Fast Fractal Image Compression Using Huffman
Coding. Dept of Computer Science & Engg., Annamalai University, Annamalai Nagar,
India.
[4] Sutoyo T 2009, Teori Pengolahan Citra Digital, Andi, Yogyakarta.
[5] Vaughan, Tay 2006, Multimedia:Making It Work, Andi Offset, Yogyakarta.
[6] Murya, Yosef 2013, Pemrograman Android Black Box, Jasakom, Jakarta.
[7] Simarmata, Janner 2010, Rekayasa Perangkat Lunak, Andi, Yogyakarta.
[8] Jogiyanto, H.M 2005, Analisis dan Desain Sistem Informasi : Pendekatan Terstruktur
Teori dan Praktek Aplikasi Bisnis, Andi Offset, Yogyakarya.
[9] Komputer, Wahana 2013, Android Programming with Eclipse, Andi. Yogyakarta.
[10] Pressman, Roger S 2012, Rekayasa Perangkat Lunak, Andi Offset, Yogyakarta.
Download