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.