Top Banner
IMPLEMENTASI METODE HUFFMAN UNTUK KOMPRESI CITRA DIGITAL BERBASIS ANDROID Prasetyo Wildan Aulia Teknik Informatika S-1 Fakultas Komputer Universitas Kuningan ABSTRACT Compression aims to reduce the number of data which is used to represent a file or picture without reducing the quality of original data. Compression is done by reducing the number of bit data which is needed to save the digital image. In this research the author uses Huffman method to compress the image. Huffman method is one of the compression methods which is lossless, it means that the decompression file result from the compressed file is same as the original file. Huffman method uses the principle of arranging frequency of occurrence of each color symbols which often occurs in the image and will be decoded in less number of bit. In this research, Huffman method for compressing digital image is implemented for file type such as png and jpg. The result of the research shows that the size of file which is compressed is smaller than the size of the original file where the perimeter used to measure the work of this method is the ratio of the compression result. Based on the experiment, the result of image compression using Huffman method can reach 80% file that can be used if the image which is decompressed has various colors duplication. Keywords: File Compression, Digital Image, Huffman Method. 1. PENDAHULUAN Teknologi gadget atau lebih dikenal dengan nama smartphone kini semakin canggih. Smartphone ini merupakan telepon genggam yang mempunyai kemampuan tingkat tinggi, dengan fungsi yang menyerupai komputer. Sebuah smartphone akan sukses jika mampu menyajikan kemudahan akses fitur yang paling sering dimanfaatkan pengguna. Selain jejaring sosial, pengguna smartphone juga perlu IM (instant messaging), internet, dan
20
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

IMPLEMENTASI METODE HUFFMAN UNTUK KOMPRESI CITRA DIGITAL BERBASIS ANDROIDPrasetyo Wildan AuliaTeknik Informatika S-1

Fakultas Komputer Universitas KuninganABSTRACTCompression aims to reduce the number of data which is used to represent a file or picture without reducing the quality of original data. Compression is done by reducing the number of bit data which is needed to save the digital image. In this research the author uses Huffman method to compress the image. Huffman method is one of the compression methods which is lossless, it means that the decompression file result from the compressed file is same as the original file. Huffman method uses the principle of arranging frequency of occurrence of each color symbols which often occurs in the image and will be decoded in less number of bit.

In this research, Huffman method for compressing digital image is implemented for file type such as png and jpg. The result of the research shows that the size of file which is compressed is smaller than the size of the original file where the perimeter used to measure the work of this method is the ratio of the compression result.

Based on the experiment, the result of image compression using Huffman method can reach 80% file that can be used if the image which is decompressed has various colors duplication.

Keywords: File Compression, Digital Image, Huffman Method.1. PENDAHULUANTeknologi gadget atau lebih dikenal dengan nama smartphone kini semakin canggih. Smartphone ini merupakan telepon genggam yang mempunyai kemampuan tingkat tinggi, dengan fungsi yang menyerupai komputer. Sebuah smartphone akan sukses jika mampu menyajikan kemudahan akses fitur yang paling sering dimanfaatkan pengguna. Selain jejaring sosial, pengguna smartphone juga perlu IM (instant messaging), internet, dan multimedia. Internet memberikan peran yang sangat penting untuk menjalin pertukaran informasi yang cepat. Pertukaran informasi ini dapat berupa perpaduan teks, suara, dan citra.

Dalam dunia internet, citra merupakan salah satu komponen yang banyak digunakan karena citra dapat membuat informasi yang disajikan menjadi lebih menarik dan lebih mudah dipahami. Namun jika dibandingkan dengan teks, citra digital membutuhkan ruang penyimpanan yang besar serta waktu pengiriman yang lama. Oleh sebab itu diperlukan cara untuk memperkecil ukuran citra sehingga dapat menghemat ruang penyimpanan dan mempercepat waktu pengirimannya.

Solusi yang dapat diambil untuk menangani permasalahan tersebut adalah dengan melakukan pemampatan atau kompresi terhadap citra digital sebelum ditransmisikan. Terdapat dua tipe kompresi citra, yaitu kompresi tipe lossless dan kompresi tipe lossy. Kompresi tipe lossy adalah kompresi di mana terdapat data yang hilang selama proses kompresi. Akibatnya kualitas citra yang dihasilkan jauh lebih rendah daripada kualitas citra asli. Sementara itu, kompresi tipe lossless tidak menghilangkan informasi setelah proses kompresi terjadi, akibatnya kualitas citra hasil kompresi tidak menurun. Salah satu contoh dari kompresi tipe lossless adalah Metode Huffman [1].2. LANDASAN TEORI2.1 Kompresi Citra

Kompresi citra merupakan aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untuk mengurangi redundansi dari data-data yang terdapat dalam citra sehingga dapat disimpan atau ditransmisikan secara efisien. Adapun teknik yang dapat dilakukan dalam melakukan kompresi citra, yaitu [3]:

a. Lossless Compression

Lossless Compression merupakan kompresi citra di mana hasil dekompresi dari citra yang terkompresi sama dengan citra aslinya, tidak ada informasi yang hilang. Namun rasio kompresi citra dengan menggunakan teknik ini sangat rendah. Contoh teknik kompresi lossless adalah Run Length Encoding (RLE), Entropy Encoding (Huffman), dan Adaptive Dictionary Based (LZW).b. Lossy Compression

Lossy Compression adalah kompresi citra di mana hasil dekompresi dari citra yang trerkompresi tidak sama dengan citra aslinya karena ada informasi yang hilang, namun hal ini masih bisa ditolerir oleh persepsi mata. Mata tidak dapat membedakan perubahan kecil pada gambar. Teknik ini menghasilkan rasio kompresi yang lebih tinggi daripada teknik kompresi lossless. Contohnya adalah Colo reduction, chroma subsampling, dan transform coding, seperti transformasi Fourier, Wavelet, dan lain-lain.

2.2 Metode Huffman

Metode Huffman merupakan salah satu teknik kompresi dengan cara melakukan pengkodean dalam bentuk bit untuk mewakili data karakter. Algoritma Huffman dikembangkan oleh David A Huffman saat di bangku kuliah di Massachusetts Institute Technology. Algoritma ini merupakan karya ilmiah dari Huffman yang ditulis pada tahun 1952 dengan judul A method for the Construction of Minimum Redundancy Codes. Kode Huffman merupakan hasil pengembangan dari algoritma yang sebelumnya dikembangkan oleh Claude Shannon dan R. M Fano pada tahun 1950-an yang dikenal sebagai Shannon-Fano Coding. Perbedaan algoritma ini terdapat dalam teknik pembentukan pohonnya. Algoritma Huffman termasuk teknik kompresi lossless. Yang artinya bahwa kompresi dilakukan tanpa terjadinya kehilangan informasi.

Metode pemampatan Huffman menggunakan prinsip bahwa nilai (atau derajat) keabuan yang sering muncul di dalam citra akan dikodekan dengan jumlah bit yang lebih sedikit sedangkan nilai keabuan yang frekuensi kemunculannya sedikit dikodekan dengan jumlah bit yang lebih panjang.

Misalkan sebuah sumber menghasilkan empat simbol berbeda a1, a2, a3, a4 dengan probabilitas 0.4, 0.35, 0.2, 0.05. Membuat pohon biner dari kiri ke kanan.

Gambar 2.1 Membuat Pohon Biner.Ambil dua buah simbol yang memiliki probabilitas paling rendah, dijumlahkan menjadi probabilitas dua simbol tadi, ulangi sampai hanya ada satu simbol di kanan. Baca pohon terbalik dari kanan ke kiri sambil memberikan kode biner berbeda pada tiap cabang.3. ANALISIS DAN PERANCANGAN3.1 AnalisisMetode Huffman termasuk teknik kompresi lossless, Yang artinya bahwa kompresi dilakukan tanpa terjadinya kehilangan informasi di mana pada proses dekompresi menghasilkan file yang sebenarnya. Kelebihan algoritma ini terletak pada kebanyakan file data mengandung redundansi. Huffman menemukan cara untuk memanfaatkan redundansi pada suatu file sehingga mengecilkan ukuran file tanpa kehilangan informasi yang terkandung di dalamnya.Secara umum urutan langkah yang dilakukan untuk kompresi file citra dengan algoritma Huffman adalah sebagai berikut:

1. Baca data citra masukan.

2. Tentukan frekuensi kemunculan masing-masing simbol pada citra.

3. Urutkan secara menaik (ascending order) simbol citra berdasarkan frekuensi kemunculannya (dari yang terkecil ke yang terbesar). Masing-masing simbol direpresentasikan sebagai sebuah simpul.

4. Gabung dua simpul bebas yang mempunyai frekuensi kemunculan paling kecil pada kumpulan simpul. Kemudian dibuat simpul pertama pada pohon Huffman (parent node) di mana simpul tersebut mempunyai frekuensi yang merupakan hasil penjumlahan dari dua simpul penyusunnya.

5. Masukkan simpul pertama (parent node) ke dalam kumpulan simpul dan urutkan kembali berdasarkan frekuensi kemunculannya, dari yang terkecil ke yang terbesar. Kemudian hapus simpul tersebut dari kumpulan simpul.

6. Ulangi langkah c e sampai tersisa hanya satu pohon biner. Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka semua pohon yang ada selalu terurut menaik berdasarkan frekuensi.

7. Beri label setiap sisi pada pohon biner. Dengan cara sisi kiri pohon diberi label 0 dan sisi kanan pohon diberi label 1.

8. Telusuri pohon biner dari akar ke daun. Barisan label-label sisi dari akar ke daun menyatakan kode Huffman untuk simbol yang bersesuaian.3.2 Perancangan Sistem Perancangan adalah tahap mengimplementasikan hasil analisis yang dilakukan sebelumnya. Perancangan digunakan untuk memberikan gambaran yang jelas dan lengkap mengenai aplikasi yang akan dibangun, maka perlu dibuat rancangan aplikasi berupa rancangan dalam bentuk UML (Unified Modeling Language).

3.2.1 Use Case DiagramSecara umum, untuk sistem proses kompresi dan dekompresi file citra yang akan dibangun dapat digambarkan dalam use case berikut:

Gambar 3.1 Use Case Kompresi dan Dekompresi File Citra.

Keterangan use case:

a. User menginputkan file citra yang akan dikompresi.b. User melakukan kompresi dari file citra yang telah diinputkan.c. User menginputkan file .huff (file hasil kompresi) yang akan didekompresi.d. User melakukan dekompresi dari file .huff yang telah diinputkan.3.2.2 Activity Diagram3.2.2.1 Activity Diagram Input File CitraDiagram activity untuk use case input file citra dapat dilihat pada gambar 3.2.

Gambar 3.2 Diagram Activity Untuk Use Case Input File Citra 3.2.2.2 Activity Diagram Kompresi FileDiagram activity untuk use case kompresi file dapat dilihat pada gambar 3.3.

Gambar 3.3 Diagram Activity Untuk Use Case Kompresi File

3.2.2.3 Activity Diagram Input File .HuffDiagram activity untuk use case input file .huff dapat dilihat pada gambar 3.4.

Gambar 3.4 Diagram Activity Untuk Use Case Input File .Huff3.2.2.4 Activity Diagram Kompresi FileDiagram activity untuk use case dekompresi file dapat dilihat pada gambar 3.5.

Gambar 3.5 Diagram Activity Untuk Use Case Dekompresi File4. HASIL DAN PEMBAHASAN4.1 Tab KompresiTampilan tab kompresi dapat dilihat pada gambar 4.1.

Gambar 4.1 Tab Kompresi.

Keterangan:

1. Tombol Pilih Gambar adalah tombol di mana proses penginputan gambar dilakukan.

2. Tombol adalah tombol refresh yang digunakan untuk mengetahui informasi gambar yang telah diinputkan.3. Tombol Lakukan Kompresi adalah tombol di mana proses kompresi gambar dilakukan.4.2 Tab Dekompresi

Tampilan tab dekompresi dapat dilihat pada gambar 4.2.

Gambar 4.2 Tab Dekompresi.

Keterangan:

1. Tombol Pilih .Huff adalah tombol di mana proses penginputan file hasil kompresi, yaitu file .huff dilakukan.

2. Tombol Lakukan Dekompresi adalah tombol di mana proses dekompresi file .huff dilakukan.4.3 Hasil PercobaanUntuk mengetahui seberapa besar kemampuan metode Huffman dalam mengkompresi citra, penulis melakukan model uji coba dengan menggunakan beberapa citra yang berukuran sama tetapi jumlah warna yang ada dalam citra berbeda satu sama lain. Tabel berikut ini memperlihatkan hasil kompresi menggunakan metode Huffman.

Tabel 4.1 Hasil Kompresi Citra

No.Nama CitraResolusi (W x H)Ukuran Citra Asli (byte)Hasil Kompresi (byte)Rasio Kompresi

1Test1.png8x82.95189530,33%

2Test2.png8x82.9691.00833,95%

3Test2.jpg8x812.26610248.34%

4Test3.png8x82.95181627,65%

5Test3.jpg8x812.6619117,19%

Tabel 4.1 di atas merupakan hasil uji perbandingan kompresi citra dengan jumlah warna yang sama dan format citra yang berbeda, yaitu JPG dan PNG. Dari hasil tersebut dapat disimpulkan bahwa hasil kompresi citra pada format JPG lebih baik daripada hasil kompresi citra pada format PNG, dimana kedua file citra tersebut memiliki jumlah warna yang sama.

Gambar 4.3 Ukuran Gambar Test1.png Sebelum Di Kompresi.

Gambar 4.4 Ukuran Gambar Test1.png Setelah Dikompresi.

Gambar 4.5 Ukuran Gambar Test2.png Sebelum Dikompresi.

Gambar 4.6 Ukuran Gambar Test2.png Setelah Di Kompresi.

Gambar 4.7 Ukuran Gambar Test2.jpg Sebelum Di Kompresi.

Gambar 4.8 Ukuran Gambar Test2.jpg Setelah Di Kompresi.

Gambar 4.9 Ukuran Gambar Test3.png Sebelum Di Kompresi.

Gambar 4.10 Ukuran Gambar Test3.png Setelah Di Kompresi.

Gambar 4.11 Ukuran Gambar Test3.jpg Sebelum Di Kompresi.

Gambar 4.12 Ukuran Gambar Test3.jpg Setelah Di Kompresi.5. KESIMPULAN DAN SARAN5.1Kesimpulan

Berdasarkan pembahasan pada bab-bab sebelumnya dan berdasarkan hasil dari perancangan dan implementasi yang telah dilakukan dapat ditarik kesimpulan:

1. Aplikasi kompresi dan dekompresi citra digital menggunakan metode Huffman dapat diimplementasikan menggunakan bahasa pemrograman java.

2. File hasil kompresi dapat di dekompresi kembali menjadi file citra.3. Citra sebelum dan sesudah dekompresi tidak mengalami perubahan.4. File hasil kompresi berukuran lebih kecil dari citra semula.

5.2 Saran

Dalam proses dekompresi dengan metode Huffman ini masih terdapat beberapa aspek yang dapat dikembangkan lebih lanjut. Beberapa diantaranya yaitu:

1. Citra digital yang dipakai juga dapat ditambah lagi tidak mencakup citra .jpg atau .png saja. Misalnya menambah citra .bmp, .gif dan lain sebagainya.

2. Bagaimana menulis kode program yang baik (beauty code) dan program yang bersih (cleaning code) dengan struktur data dan orientasi objek.

DAFTAR PUSTAKASari, I.D.R. dan Munawaroh, N. (2008). Implementasi Metode Huffman untuk Kompresi Ukuran File Citra Bitmap 8 Bit menggunakan Borland Delphi 6.0, Jurnal Ilmiah Teknologi dan Informasi ASIA. 3 (1), 5-9.

Lestari, S. dan Dapi, R. (2010). Perancangan Perangkat Lunak Sistem Informasi Kepangkatan Pegawai Perumnas Regional IV Bandung. Simposium Nasional RAPI IX 2010. ISSN: 1412-9612.

Sutoyo, T. et. al. (2009). Teori Pengolahan Citra Digital. Yogyakarta. Andi.Setyawan S, I. (2011). Aplikasi Kompresi Citra Menggunakan Kode HUFFMAN Berbasis Java.

Tama, P.Y. (2013). Perbandingan Algoritma Huffman, LZW, dan BWT dalam Kompresi Pesan Tersembunyi pada SMS berbasis Android.

Wijanarko, L. (2010). Cara Menghitung Ukuran File Gambar dan Foto Digital.Putra Darma. (2009). Pengolahan Citra Digital. Yogyakarta. Andi.

Putra, S.D.P. (2013). Analisis Perbandingan Metode LZW dan Huffman dalam Kompresi File Teks. [Online]. Tersedia: http://www.slideshare.net/dewa89s/stmik-stikom-indonesia-denpasar-dewa-purnama-sidi-putra. [10 Maret 2014].Mps. (2013). Huffmans Algorithm. [Online]. Tersedia: http://planetmath.org/huffmansalgorithm. [10 Maret 2014].