IMPLEMENTASI ALGORITMA HUFFMAN UNTUK KOMPRESI DAN DEKOMPRESI GAMBAR DIGITAL KOMPETENSI JARINGAN KOMPUTER [SKRIPSI] ISABELLA JUDITHIO NIM. 0608605070 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA 2011 i
IMPLEMENTASI ALGORITMA HUFFMAN UNTUK KOMPRESI DAN DEKOMPRESI GAMBAR DIGITAL KOMPETENSI JARINGAN KOMPUTER [SKRIPSI] ISABELLA JUDITHIO NIM. 0608605070 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA 2011
IMPLEMENTASI ALGORITMA HUFFMAN UNTUK KOMPRESI DAN DEKOMPRESI GAMBAR DIGITAL KOMPETENSI JARINGAN KOMPUTER [SKRIPSI] Sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Udayana Tulisan ini merupakan hasil penelitian yang belum pernah dipublikasikan. ISABELLA JUDITHIO NIM. 0608605070 Pembimbing I Pembimbing II Drs. I Wayan Santiyasa, M.Si I Ketut Gede Suhartana, S.Kom, M.Kom NIP. 19670414 199203 1002 NIP. 19720110 200812 1001 ii
LEMBAR PENGESAHAN TUGAS AKHIR Judul : Implementasi Algoritma Huffman untuk Kompresi dan Dekompresi Gambar Digital Kompetensi : Jaringan Komputer Nama : Isabella Judithio NIM : 0608605070 Tanggal Seminar : 20 Juli 2011 Disetujui oleh : Pembimbing I Penguji I Drs. I Wayan Santiyasa, M.Si Cokorda Rai Adi Pramartha, ST, MM NIP. 19670414 199203 1002 NIP. 19780621 200604 1002 Pembimbing II Penguji II I Ketut Gede Suhartana, S.Kom, M.Kom IB Gd Dwidasmara, S.Kom, M.Cs NIP. 19720110 200812 1001 NIP. 19850315 201012 1007 Penguji III I Gede Arta Wibawa, ST NIP. 19831022 200812 1001 iii
Judul : Implementasi Algoritma Huffman untuk Kompresi dan Dekompresi Gambar Digital Nama : Isabella Judithio (0608605070) Dosen Pembimbing : 1. Drs. I Wayan Santiyasa, M.Si 2. I Ketut Gede Suhartana, S.Kom, M.Kom ABSTRAK Pada umumnya representasi gambar digital membutuhkan memori yang cukup besar. Sehingga hal ini menimbulkan masalah jika gambar digital disimpan dalam database yang memiliki keterbatasan media penyimpanan. Permasalahan lain yang sering timbul adalah ketika dilakukan proses upload dan download melalui media komunikasi atau internet. Ini tentu akan membutuhkan waktu yang cukup lama. Salah satu cara untuk mengurangi ukuran data adalah dengan menggunakan kompresi data pada data yang disimpan. Kompresi adalah proses pemampatan sesuatu yang berukuran besar sehingga menjadi kecil. Algoritma Huffman merupakan salah satu teknik kompresi yang seringdigunakan hingga sekarang. Algoritma Huffman termasuk jenis kompresi lossless yang berarti bahwa kompresi dilakukan tanpa kehilangan informasi (yaitu pada proses dekompresi menghasilkan file sebenarnya). Pengimplementasian algoritma Huffman ini bertujuan untuk melakukan proses kompresi dan dekompresi terhadap file gambar grayscale berformat.bmp. Dari hasil penelitian ini, algoritma Huffman dapat mengkompresi dan dekompresi gambar digital yang memiliki jumlah warna tidak terlalu banyak dan terdapat warna dengan frekwensi yang dominan. Waktu proses kompresi/dekompresi file tergantung pada ukuran dan jumlah warna file yang akan di kompresi/dekompresi. Perbedaan dimensi gambar pada gambar dengan jumlah warna yang sama, tidak banyak mempengaruhi nilai rasio kompresi. Kata Kunci : Gambar Digital, Algoritma Huffman, Kompresi, Dekompresi iv
Title : The Implementation of Huffman Algorithm for Digital Image Compression and Decompression Student Name : Isabella Judithio (0608605070) Supervisor : 1. Drs. I Wayan Santiyasa, M.Si 2. I Ketut Gede Suhartana, S.Kom, M.Kom ABSTRACT In general, the representation of digital images requires considerable memory. So this creates a problem if the digital images are stored in a database that has limited storage media. Another problem that often arises is when upload and download process was conducted via the communications media or the Internet. This will certainly require a long time. One way to reduce the size of the data is to use data compression on data that is stored. Compression is the process of squishing something large to become small. Huffman algorithm is a compression technique that is often used today. Huffman algorithm is the type of lossless compression which means that compression without loss of information (i.e. the decompression process of generating the actual files). Huffman algorithm implementation aims to make the process of compression and decompression of the bmp.formatted grayscale image file. From these results, Huffman algorithm can compress and decompress digital image that has limited number of colors and there is a color with the dominant frequency. The processing time compression / decompression of files depend on the file size and number of colors that will be in compression / decompression. Differences dimensional image on the image with the same number of colors, not much affect the value of the compression ratio. Keywords : Digital Image, Huffman Algorithm, Compression, Decompression v
vi
KATA PENGANTAR Puji syukur penulis panjatkan kehadapan Tuhan Yang Maha Esa karena atas berkat dan rahmat-nyalah Tugas Akhir yang berjudul Implementasi Algoritma Huffman untuk Kompresi dan Dekompresi Gambar Digital ini dapat terselesaikan tepat pada waktunya. Penulis sepenuhnya menyadari bahwa di dalam penyusunan Tugas Akhir ini tentunya tidak akan dapat diselesaikan tanpa adanya bantuan dari berbagai pihak dan pada kesempatan ini perkenankanlah penulis mengucapkan Terima Kasih kepada : 1. Bapak Drs. I Wayan Santiyasa, M.Si, selaku Ketua Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam (MIPA) Universitas Udayana, sekaligus sebagai pembimbing I yang telah membantu, menuntun, memeriksa dan menyempurnakan Tugas Akhir ini. 2. Bapak I Ketut Gede Suhartana, S.Kom, M.Kom, selaku pembimbing II yang telah membantu, menuntun, memeriksa dan menyempurnakan Tugas Akhir ini. 3. Kedua Orang Tua dan adik-adik yang telah memberikan doa, dukungan serta semangat dalam menyelesaikan Tugas Akhir ini. 4. Dosen-dosen Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Udayana dan teman-teman Ilkom 2006 yang telah membantu dan memberikan semangat dan motivasi serta bersedia meluangkan waktu untuk turut memberikan saran dan masukan dalam penyempurnaan Tugas Akhir ini. Penulis menyadari bahwa penyusunan Tugas Akhir ini masih jauh dari sempurna mengingat keterbatasan kemampuan penulis dalam banyak hal. Untuk itu penulis mengharapkan kritik dan saran yang sifatnya membangun dari pembaca dan semoga laporan ini dapat bermanfaat bagi pembaca. vi
Penulis menyampaikan permohonan maaf apabila terdapat kesalahan dalam penulisan. Akhir kata, Penulis mengucapkan terima kasih atas segala perhatian dan bantuannya. Bukit Jimbaran, Juni 2011 Penulis vii
DAFTAR ISI Halaman Judul... i Halaman Pernyataan... ii Halaman Pengesahan... iii Abstrak... iv Kata Pengantar... vi Daftar Isi... viii Daftar Tabel... x Daftar Gambar... xi Daftar Lampiran... xii BAB I PENDAHULUAN 1.1 Latar Belakang... 1 1.2 Perumusan Masalah... 2 1.3 Batasan Masalah... 2 1.4 Tujuan Penelitian... 3 1.5 Manfaat Penelitian... 3 BAB II TINJAUAN PUSTAKA 2.1 Gambar Digital... 4 2.1.1 Representasi Gambar Digital... 4 2.1.2 Warna pada Gambar Digital... 5 2.2 Pixel... 5 2.3 Gambar Grayscale... 6 2.4 BMP (Bitmap)... 7 2.5 Kompresi Data... 8 2.6 Dekompresi... 10 2.7 Algoritma Kompresi Huffman... 10 2.7.1 Pembentukan Pohon Huffman... 11 2.7.2 Proses Encoding... 13 2.7.3 Proses Decoding... 14 viii
2.8 Siklus Hidup Pengembangan Sistem (SDLC)... 16 2.9 Bahasa Pemrograman Delphi... 16 2.10 Black Box Testing... 17 BAB III METODOLOGI PENELITIAN 3.1 Objek Penelitian... 18 3.2 Metode Penelitian... 18 3.2.1 Perencanaan Aplikasi... 18 3.2.2 Analisis Sistem... 19 3.2.3 Perancangan Aplikasi... 20 3.2.4 Implementasi... 22 3.2.5 Pengujian... 22 3.3 Dokumentasi... 24 BAB IV HASIL DAN PEMBAHASAN 4.1 Pengembangan Program Aplikasi... 25 4.2 Tahap Pengujian... 27 4.2.1 Pengujian Sistem dengan Metode Black Box... 27 4.2.2 Pengujian Hasil... 28 4.2.2.1 Pengujian Kecepatan Proses Kompresi dan Dekompresi Algoritma Huffman... 29 4.2.2.2 Pengujian Rasio Kompresi Gambar dengan resolusi sama tetapi jumlah warna berbeda.. 31 4.2.2.3 Pengujian Nilai MSE... 33 BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan... 35 5.2 Saran... 35 DAFTAR PUSTAKA... 37 LAMPIRAN ix
DAFTAR TABEL Tabel 2.2 Kode Huffman untuk karakter ABCD... 13 4.1 Pengujian Black Box... 25 4.2 Waktu proses Kompresi dan Dekompresi Gambar Dimensi Sama... 29 4.3 Waktu proses Kompresi dan Dekompresi Gambar Dimensi Berbeda 30 4.4 Rasio Kompresi Gambar Dimensi Sama... 31 4.5 Rasio Kompresi Gambar Dimensi Berbeda... 32 4.6 Nilai MSE Gambar Dimensi Sama... 33 4.7 Nilai MSE Gambar Dimensi Berbeda... 33 x
DAFTAR GAMBAR Gambar 2.1 Gambar Grayscale... 7 2.2 Pohon Huffman untuk Karakter ABACCDA... 12 2.3 Proses Decoding dengan Menggunakan Pohon Huffman... 15 2.4 System Development Life Cycle... 16 3.1 Skema global aplikasi Kompresi... 21 3.2 Skema global aplikasi Dekompresi... 21 4.1 Tampilan Form Kompresi dan Dekompresi... 26 4.2 Form Input Gambar... 27 xi
DAFTAR LAMPIRAN Lampiran 1. Pseudocode 2. Tampilan Antar Muka Aplikasi 3. Gambar Uji Berdimensi Sama 300 x 300 4. Gambar Uji dengan Jumlah Warna Sama xii
ix