STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS SKRIPSI NURFITA SARI HASIBUAN 051411012 PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2008
STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains NURFITA SARI HASIBUAN 051411012 PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2008
PERSETUJUAN Judul : STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS Kategori : SKRIPSI Nama : NURFITA SARI HASIBUAN Nomor Induk Mahasiswaa : 051411012 Program Studi : SARJANA (S1) MATEMATIKA Departemen Fakultas : MATEMATIKA : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Medan, Mei 2008 Komisi Pembimbing : Pembimbing 2, Pembimbing1, Drs. Bambang Irawan, M.Sc. Syahriol Sitorus, S.Si, M.IT. NIP. 130535840 NIP. 132174687 Diketahui/Disetujui oleh Departemen Matematika FMIPA USU Ketua, Dr. Saib Suwilo, M.Sc. NIP. 131796149
PERNYATAAN STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Mei 2008 Nurfita Sari Hasibuan 051411012
PENGHARGAAN Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpahan rahmat dan karunia-nya skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Ucapan terima kasih saya sampaikan kepada Bapak Syahriol Sitorus, S.Si, M.IT. dan Bapak Drs. Bambang Irawan, M.Sc., selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan skripsi ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Dr. Saib Suwilo, M.Sc. dan Bapak Drs. Henri Rani Sitepu, M.Si., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Matematika FMIPA USU, pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya, tidak terlupakan kepada bapak, ibu dan semua ahli keluarga yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa membalasnya.
ABSTRAK Pemampatan data bertujuan untuk mengurangi ukuran file sebelum menyimpan atau memindahkan data ke dalam media penyimpanan. Huffman dan Shannon-Fano adalah dua algoritma yang digunakan untuk proses pemampatan pada tugas akhir ini. Pemampatan data dengan ke dua algoritma tersebut digunakan pada pemampatan file teks. Pada dasarnya ke dua algoritma ini mempunyai cara kerja yang sama. Dimulai dengan pengurutan karakter berdasarkan frekuensinya, pembentukan pohon biner dan diakhiri dengan pembentukan kode. Pada algoritma Huffman, pohon biner dibentuk dari daun hingga akar dan disebut dengan pembentukan pohon dari bawah ke atas. Sebaliknya, pada Shannon-Fano pohon biner dibentuk dari akar hingga daun dan disebut dengan pembentukan pohon dari atas ke bawah. Pada tugas akhir ini dibuat perangkat lunak yang menggunakan bahasa pemrograman Visual Basic 6.0 untuk membandingkan ke dua algoritma pemampatan tersebut. Perbandingan dilakukan dalam hal rasio pemampatan dan kecepatan proses file teks hasil pemampatan. File teks yang diuji adalah 16 tipe file teks dengan berbagai ukuran. Disimpulkan bahwa, secara rata-rata algoritma Huffman menghasilkan rasio file hasil pemampatan yang terbaik (61,3%) dari pada algoritma Shannon-Fano (76,9%). Akan tetapi, algoritma Shannon-Fano membutuhkan waktu pemampatan yang tersingkat (kecepatan pemampatannya 157,7 KByte/s) dari pada algoritma Huffman (kecepatan pemampatannya 154,8 KByte/s). Terdapat beberapa file teks yang tidak tepat untuk dimampatkan dengan algoritma Shannon-Fano karena dapat menghasilkan file hasil pemampatan yang berukuran lebih besar.
STUDY OF COMPARISON OF HUFFMAN AND SHANNON-FANO ALGORITHMS IN COMPRESSION OF TEXT FILE ABSTRACT The aim of data compression is to reduce the file size before storing or transferring it in media storage. Huffman and Shannon-Fano are two algorithms used to data compression process in this paper. Data compression with these algorithms is used to compression of text file. Basically, these algorithms have the same way. Starting from sorting the character of a source which associates with its frequency, then build a binary tree and deriving the binary code from the binary tree. At Huffman algorithm, a binary tree is builded from the leaves up to the root and called bottom-up approach. On the contrary, in Shannon-Fano algorithm, a binary tree is builded from the root down to the leaves and called top-down approach. These algorithms are implemented by using Visual Basic 6.0 to compare the compression algorithms. The comparison is used in the case of ratio of compression and compression speed the text file of result of compression. The text file is tested upon 16 type of text file by various sizes. It can be concluded that in the Huffman algorithm yield the best file ratio compression (61,3%) than Shannon-Fano algorithm (76,9%). However, Shannon-Fano algorithm requires the brief compression time (its compression speed 157,7 KBytes/s) than Huffman algorithm (its compression speed is 154,8 KBytes/s). There are several text files that are not suitable to be compressed by Shannon-Fano algorithm, because the compressed file becomes bigger in size.
DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv v vi vii ix x Bab 1 Pendahuluan 1 1.1 Latar Belakang 1 1.2 Perumusan Masalah 3 1.3 Pembatasan Masalah 3 1.4 Tujuan Penelitian 3 1.5 Kontribusi Penelitian 4 1.6 Metode Penelitian 4 1.7 Tinjauan Pustaka 4 1.8 Diagram Konsepsi 7 Bab 2 Landasan Teori 8 2.1 Pengertian File Teks 8 2.1.1 Format Teks 9 2.1.2 Tipe Teks 10 2.2 Pohon (Tree) 11 2.3 Pohon Biner (Binary Tree) 11 2.4 Pemampatan Data 12 2.4.1 Pengertian Pemampatan Data 13 2.4.2 Metode Pemampatan 14 2.5 Algoritma Huffman 15 2.5.1 Kode Prefix (Prefix Code) 16 2.5.2 Algoritma Huffman 16 2.6 Algoritma Shannon-Fano 21 2.6.1 Algoritma Shannon-Fano 22
Bab 3 Pembahasan 26 3.1 Analisis Algoritma 26 3.2 Karakteristik Algoritma Huffman dan Shannon-Fano 27 3.3 Implementasi Pemampatan File Teks 28 3.3.1 Pemampatan File Teks dengan Algoritma Huffman 29 3.3.2 Pemampatan File Teks dengan Algoritma Shannon-Fano 32 3.4 Analisis Kebutuhan Perangkat Lunak 35 3.4.1 Perancangan Perangkat Lunak 35 3.4.2 Perancangan Flowchart 36 3.4.3 Halaman Utama 36 3.4.4 Halaman Hasil 37 3.4.5 Implementasi Prosedural 41 3.5 Hasil Analisis 46 3.5.1 Analisis Ukuran File 47 3.5.2 Analisis Kecepatan Proses 49 Bab 4 Kesimpulan dan Saran 51 4.1 Kesimpulan 51 4.2 Saran 51 Daftar Pustaka 52 Lampiran
DAFTAR TABEL Halaman Tabel 2.1 Frekuensi Kemunculan Karakter yang telah Diurutkan 18 Tabel 2.2 Tabel Kode Huffman untuk Masing-masing Karakter 20 Tabel 2.3 Frekuensi Kemunculan Karakter yang telah Diurutkan 23 Tabel 2.4 Tabel Kode Shannon-Fano untuk Masing-masing Karakter 24 Tabel 3.1 Karakter yang telah Diurutkan Berdasarkan Frekuensinya 29 Tabel 3.2 Kode Huffman yang telah Terbentuk 31 Tabel 3.3 Karakter yang telah Diurutkan Berdasarkan Frekuensinya 32 Tabel 3.4 Kode Shannon-Fano yang telah Terbentuk 34 Tabel 3.5 Pemampatan Beberapa Tipe File Teks dengan Algoritma Huffman dan Algoritma Shannon-Fano 47 Tabel 3.6 Waktu yang Digunakan (time spent) untuk Memampatkan Beberapa Tipe File Teks dengan Algoritma Huffman dan Shannon-Fano 49
DAFTAR GAMBAR Halaman Gambar 1.1 Diagram Konsepsi 7 Gambar 2.1 Karakter ASCII 9 Gambar 2.2 Pohon Berakar dengan v 1 Sebagai Akar 11 Gambar 2.3 Pohon Biner 12 Gambar 2.4 Pembentukan Pohon Huffman 20 Gambar 2.5 Pembentukan Pohon Shannon-Fano 24 Gambar 3.1 Pohon Huffman yang telah Terbentuk 30 Gambar 3.2 Pohon Shannon-Fano yang telah Terbentuk 33 Gambar 3.3 Flowchart Aplikasi Pemampatan File Teks 36 Gambar 3.4 Tampilan Halaman Utama 37 Gambar 3.5 Pemampatan File Teks dengan Algoritma Huffman 38 Gambar 3.6 Penirmampatan File Teks dengan Algoritma Huffman 38 Gambar 3.7 Pemampatan File Teks dengan Algoritma Shannon-Fano 39 Gambar 3.8 Penirmampatan File Teks dengan Algoritma Shannon-Fano 39 Gambar 3.9 File Teks yang akan Dimampatkan (Compression) 40 Gambar 3.10 File Teks yang telah Dinirmampatkan (Decompression) 40 Gambar 3.11 Grafik Perbandingan Rasio Pemampatan File Teks 47 Gambar 3.12 Grafik Perbandingan Kecepatan Pemampatan File Teks 49