KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

dokumen-dokumen yang mirip
KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data


Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

BAB 2 LANDASAN TEORI

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

Kode Huffman dan Penggunaannya dalam Kompresi SMS

Penerapan Pohon Biner Huffman Pada Kompresi Citra

Algoritma Huffman dan Kompresi Data

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

PENINGKATAN EFISIENSI KODE HUFFMAN (HUFFMAN CODE) DENGAN MENGGUNAKAN KODE HUFFMAN KANONIK (CANONICAL HUFFMAN CODE)

Teknik Pembangkitan Kode Huffman

Teknik Kompresi Citra Menggunakan Metode Huffman

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Analisa Perbandingan Rasio Kecepatan Kompresi Algoritma Dynamic Markov Compression Dan Huffman

BAB II TINJAUAN PUSTAKA

1. PENDAHULUAN 1.1. Latar Belakang Masalah

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Penerapan Pengkodean Huffman dalam Pemampatan Data

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

Kata kunci: pohon biner, metode Huffman, metode Kanonik Huffman, encoding, decoding.

PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE. Irwan Munandar

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

BAB IV HASIL DAN UJI COBA

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE BERBASIS ANDROID DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

PEMAMPATAN DATA DENGAN KODE HUFFMAN (APLIKASI POHON BINER)

BAB 2 LANDASAN TEORI

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT

BAB 2 LANDASAN TEORI

Kode Huffman. Arya Tri Prabawa Program Studi Teknik Informatika ITB, Bandung 40116,

BAB 2 LANDASAN TEORI

MULTIMEDIA system. Roni Andarsyah, ST., M.Kom Lecture Series

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

PENERAPAN ALGORITMA HUFFMAN DALAM DUNIA KRIPTOGRAFI

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

BAB I PENDAHULUAN. Dalam bidang teknologi informasi, komunikasi data sangat sering

BAB II LANDASAN TEORI. Kompresi data atau pemampatan data adalah suatu proses pengubahan

BAB 2 LANDASAN TEORI

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

PENDAHULUAN 1.1. Latar belakang

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu

ANALISIS DAN IMPLEMENTASI PERBANDINGAN KINERJA ALGORITMA KOMPRESI HUFFMAN, LZW, DAN DMC PADA BERBAGAI TIPE FILE

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

Analisis Algoritma Huffman Statis Dalam Kompresi Teks Pada Short Message Service (SMS)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KOMPRESI CITRA. Pertemuan 12 Mata Pengolahan Citra

IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING

Pemampatan Data Sebagai Bagian Dari Kriptografi

Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

PENGANTAR KOMPRESI DATA

Kompresi Data dengan Kode Huffman dan Variasinya

PERBANDINGAN KINERJA ALGORITMA KOMPRESI HUFFMAN, LZW, DAN DMC PADA BERBAGAI TIPE FILE

BAB I PENDAHULUAN. Saat ini perkembangan teknologi berkembang sangat cepat. Penyimpanan

Penggunaan Pohon Huffman pada Algoritma Deflate

Image Compression. Kompresi untuk apa?

Pemampatan dengan Menggunakan Algoritma Huffman Dinamik : Algoritma FGK dan Algoritma Vitter

TEKNIK KOMPRESI LOSSLESS TEXT

SKRIPSI KOMPRESI DATA TEKS MENGGUNAKAN ALGORITMA PPM (PREDICTION BY PARTIAL MATCHING)

JURNAL IT STMIK HANDAYANI

Kompresi. Definisi Kompresi

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT

BAB II DASAR TEORI. 2.1 Pendahuluan

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

BAB 2 TINJAUAN PUSTAKA

Implementasi Algoritma Greedy pada Permainan Ludo

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480 : 640 x 480 = 4800 karakter 8 x 8

KINERJA DAN PERFORMA ALGORITMA KOMPRESSI LOSSLESS TERHADAP OBJEK CITRA DIGITAL

DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM

Aplikasi Algoritma Greedy dalam Kompresi Dokumen Teks

Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks

BAB I PENDAHULUAN. halaman khusus untuk pengaksesan dari handphone. Semakin baik informasi akan

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

PEMAMPATAN DATA DIGITAL MENGGUNAKAN METODA RUN-LENGTH

Aplikasi Algoritma Greedy untuk Optimasi Sistem Booking Hotel Online

Design and Analysis Algorithm

BAB II TINJAUAN PUSTAKA. Terdapat beberapa literatur yang mengulas kembali algoritma JBE (Sadiq, et

Algoritma Greedy (Bagian 2) IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

BAB 2 TINJAUAN PUSTAKA

Entropy Naskah Bahasa Sunda Dan Bahasa Jawa Untuk Kompresi Teks Menggunakan Algoritma Binary Huffman Code

MODIFIKASI ALGORITMA J-BIT ENCODING UNTUK MENINGKATKAN RASIO KOMPRESI

Transkripsi:

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN Nama : Irfan Hanif NIM : 13505049 Program Studi Teknik Informatika Institut Teknologi Bandung Jalan Ganesha No 10 Bandung E-mail : if15049@students.if.itb.ac.id Abstrak Algoritma Huffman adalah salah satu algoritma kompresi. Algoritma huffman merupakan algoritma yang paling terkenal untuk mengompres teks. Terdapat tiga fase dalam menggunakan algoritma Huffman untuk mengompres sebuah teks, pertama adalah fase pembentukan pohon Huffman, kedua fase encoding dan ketiga fase decoding. Prinsip yang digunakan oleh algoritma Huffman adalah karakter yang sering muncul di -encoding dengan rangkaian bit yang pendek dan karakter yang jarang muncul di-encoding dengan rangkaian bit yang lebih panjang. Teknik kompresi algoritma Huffman mampu memberikan penghematan pemakaian memori sampai 30%. Algoritma Huffman mempunyai kompleksitas O(n log n) untuk himpunan dengan n karakter. Kata kunci: algoritma Huffman, pohon Huffman, encoding, decoding Abstract Huffman s al gorithm is one of compression algorithm. Huffman s algorithm is the most famous algorithm for compressing text. There are three phase in use Huffman s algorithm, first is forming Huffman tree phase,second is ecoding phase, third is decoding phase. Principal which used by Huffman s algorithm is shorter codes are assigned to the most frequently used symbols, and longer codes to the symbols which appear less ffrequently in the string. Huffman algorithms technique can save consuption memory until 30%. Complexity Huffman s Algorithm is O(n log n) for association which have n character Keywords : Huffman s algorithm, Huffman tree, encoding, decoding 1.Pendahuluan Teks adalah kumpulan dari karakter karakter atau string yang menjadi satu kesatun. Teks yang memuat banyak karakter didalamnya selalu menimbulkan masalah pada media penyimpanan dan kecepatan waktu pada saat transmisi data. Media penyimpanan yang terbatas, membuat semua orang mencoba berpikir untuk menemukan sebuah cara yang dapat digunakan untuk mengompres teks. Walaupun pada saat ini terdapat banyak algoritma untuk mengompres data termasuk teks, seperti LIFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block -Sorting Lossless, Run-Length, Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte. Namun penulis menggunakan algoritma Huffman, karena algoritma ini banyak digunakan dan mudah - 1 -

diimplementasikan dalam proses pengompresan teks. Kompresi adalah proses pengubahan sekumpulan data menjadi bentuk kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data[1].dengan menggunakan algoritma Huffman, proses pengompresan teks dilakukan dengan menggunakan prinsip pengkodean, yaitu tiap karakter dikodekan dengan rangkaian beberapa bit sehingga menghasilkan hasil yang lebih optimal. Tujuan dari penulisan makalah ini adalah untuk mengetahui keefektifan algoritma Huffman dalam kompresi teks dan memaparkan cara-cara mengompresi teks dengan menggunakan algoritma Huffman. Untuk mencapai tujuan diatas penulis melakukan serangkaian kegiatan yaitu mengumpulkan data dan referensi-referensi yang ada, serta melakukan studi pustaka. - 2 -

2. Dasar Teori 2.1 Algoritma Huffman Algoritma Huffman, yang dibuat oleh seorang mahasiswa MIT bernama David Huffman pada tahun 1952, merupakan salah satu metode paling lama dan paling terkenal dalam kompresi teks [2]. Algoritma Huffman menggunakan prinsip pengkodean yang mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul dikodekan.dengan rangkaian bit yang lebih panjang. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi data yang diinputkan) menjadi sekumpulan codeword, algoritma Huffman termasuk kedalam kelas algoritma yang menggunakan metode statik. Metoda statik adalah metoda yang selalu menggunakan peta kode yang sama, metoda ini membutuhkan dua fase (two-pass): fase pertama untuk menghitung probabilitas kemunculan tiap simbol dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan di taransmisikan. Sedangkan berdasarkan teknik pengkodean simbol yang digunakan, algoritma Huffman menggunakan metode symbolwise. Metoda symbolwise adalah metode yang menghitung peluang kemunculan dari setiap simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang jarang muncul. 2.1.1 Pembentukan Pohon Huffman Kode Huffman pada dasarnya merupakan kode prefiks (prefix code). Kode prefiks adalah himpunan yang berisi sekumpulan kode biner, dimana pada kode prefik ini tidak ada kode biner yang menjadi awal bagi kode biner yang lain. Kode prefiks biasanya direpresentasikan sebagai pohon biner yang diberikan nilai atau label. Untuk cabang kiri pada pohon biner diberi label 0, sedangkan pada cabang kanan pada pohon biner diberi label 1. Rangkaian bit yang terbentuk pada setiap lintasan dari akar ke daun merupakan kode prefiks untuk karakter yang berpadanan. Pohon biner ini biasa disebut pohon Huffman. Langkah-langkah pembentukan pohon Huffman adalah sebagai berikut [3] : 1. Baca semua karakter di dalam teks untuk menghitung frekuensi kemunculan setiap karakter. Setiap karakter penyusun teks dinyatakan sebagai pohon bersimpul tunggal. Setiap simpul di-assign dengan frekuensi kemunculan karakter tersebut. 2. Terapkan strategi algoritma greedy sebagai berikut : Gabungkan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar. Setelah digabungkan akar tersebut akan mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon-pohon penyusunnya. 3. Ulangi langkah 2 sampai hanya tersisa satu buah pohon Huffman. Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka semua yang ada selalu terurut menaik berdasarkan frekuensi. Sebagai contoh, dalam kode ASCII string 7 huruf ABACCDA membutuhkan representasi 7 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut: A = 01000001 B = 01000010 A = 01000001 C = 01000011 C = 01000011 D = 01000100 A = 01000001 Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, Untuk lebih jelas mengenai proses pembentukkan pohon hufman, dapat dilihat ilustrasi pembuatan pohonnya dibawah ini: - 3 -

1. 3. 2. 4. Gambar 1. Pohon H uffman untuk Karakter ABACCDA - 4 -

2.1.2 Proses Encoding Encoding adalah cara menyusun string biner dari teks yang ada. Proses encoding untuk satu karakter dimulai dengan membuat pohon Huffman terlebih dahulu. Setelah itu, kode untuk satu karakter dibuat dengan menyusun nama string biner yang dibaca dari akar sampai ke daun pohon Huffman. Langkah-langkah untuk men-encoding suatu string biner adalah sebagai berikut : 1. Tentukan karakter yang akan di-encoding 2. Mulai dari akar, baca setiap bit yang ada pada cabang yang bersesuaian sampai ketemu daun dimana karakter itu berada adalah sebagai berikut : 1. Baca sebuah bit dari string biner. 2. Mulai dari akar 3. Untuk setiap bit pada langkah 1, lakukan traversal pada cabang yang bersesuaian. 4. Ulangi langkah 1, 2 dan 3 sampai bertemu daun. Kodekan rangkaian bit yang telah dibaca dengan karakter di daun. 5. Ulangi dari langkah 1 sampai semua bit di dalam string habis. Sebagai contoh kita akan men-decoding string biner yang bernilai 111 3. Ulangi langkah 2 sampai seluruh karakter diencoding Sebagai contoh kita dapat melihat tabel dibawah ini, yang merupakan hasil encoding untuk pohon Huffman pada gambar 1, Karakter String Biner Huffman A 0 B 110 C 10 D 111 Tabel 1. Kode Huffman untuk Karakter ABCD Dengan menggunakan kode Huffman ini, string ABACCDA direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. 2.1.3 Proses Decoding Decoding merupakan kebalikan dari encoding. Decoding berarti menyusun kembali data dari string biner menjadi sebuah karakter kembali. Decoding dapat dilakukan dengan dua cara, yang pertama dengan menggunakan pohon Huffman dan yang kedua dengan menggunakan tabel kode Huffman. Langkah-langkah men -decoding suatu string biner dengan menggunakan pohon Huffman Gambar 2. Proses Decoding dengan Menggunakan Pohon Huffman setelah kita telusuri dari akar, maka kita akan menemukan bahwa string yang mempunyai kode Huffman 111 adalah karakter D. - 5 -

Cara yang kedua adalah dengan menggunakan tabel kode Huffman. Sebagai contoh kita akan menggunakan kode Huffman pada Tabel 1 untuk merepresentasikan string ABACCDA. Dengan menggunakan Tabel 1 string tersebut akan direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 1110. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. Dari Tabel 1 tampak bahwa kode untuk sebuah simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding. Karena tiap kode Huffman yang dihasilkan unik, maka proses decoding dapat dilakukan dengan mudah. Contoh: saat membaca kode bit pertama dalam rangkaian bit 011001010110, yaitu bit 0, dapat langsung disimpulkan bahwa kode bit 0 merupakan pemetaan dari simbol A. Kemudian baca kode bit selanjutnya, yaitu bit 1. Tidak ada kode Huffman 1, lalu baca kode bit selanjutnya, sehingga menjadi 11. Tidak ada juga kode Huffman 11, lalu baca lagi kode bit berikutnya, sehingga menjadi 110. Rangkaian kode bit 110 adalah pemetaan dari simbol B. 2.1.4 Kompleksitas Algoritma Huffman Algoritma Huffman mempunyai kompleksitas waktu O(n log n), karena dalam melakukan sekali proses itersi pada saat penggabungan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar membutuhkan waktu O(log n), dan proses itu dilakukan berkali-kali sampai hanya tersisa satu buah pohon Huffman itu berarti dilakukan sebanyak n kali[4]. 2.2 Algoritma Greedy Algoritma greedy adalah salah satu algoritma yang digunakan untuk menyelsaikan persoalan optimasi, artinya persoalan yang menuntut pencarian solusi optimum, baik masalah maksimasi (maximization ) atau minimasi (Minimization). Algoritma greedy adalah algoritma yang mecahkan masalah langkah per langkah, pada setiap langkahnya algoritma greedy melakukan [3] : 1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip take what you can get now! ) 2. Berharap bahwa dengan memilih optimum local pada setiap langkah akan berakhir dengan optimum global. 2.2.1 Hubungan Algoritma Greedy dengan Algoritma Huffman Pada awalnya David Huffman hanya menencoding karakter dengan hanya menggunakan pohon biner biasa, namun setelah itu David Huffman menemukan bahwa penggunaan algoritma greedy dapat membentuk kode prefiks yang optimal. Penggunaan algoritma greedy pada algoritma Huffman adalah pada saat pemilihan dua pohon dengan frekuensi terkecil dalam membuat pohon Huffman. Algoritma greedy ini digunakan pada pembentukan pohon Huffman agar meminimumkan total cost yang dibutuhkan. Cost yang digunakan untuk menggabungkan dua buah pohon pada akar setara dengan jumlah frekuensi dua buah pohon yang digabungkan, oleh karena itu total cost pembentukan pohon Huffman adalah jumlah total seluruh penggabungan. penggabungan dua buah pohon dilakukan setiap langkah dan algoritma Huffman selalu memilih dua buah pohon yang mempunyai frekuensi terkecil untuk meminimumkan total cost. Oleh karena itu algoritma Huffman adalah salah satu contoh algoritma yang menggunaan dari algoritma greddy. Sebagai contoh terdapat sebuah teks yang terdiri dari 120 karakter, yang masing-masing karakter mempunyai cost. Tujuan kita adalah menghitung total cost yang dikeluarkan untuk membentuk teks tersebut. Karakter cost Kode Huffman Total cost A 10 000 10x3=30 B 15 010 15x3=45 C 5 0010 5x5=25 D 15 011 15x3=45 E 20 111 20x3=60-6 -

F 5 00110 5x5=25 G 15 110 15x3=45 H 30 10 30x2=60 I 5 00111 5x5=25 Total Cost 360 Tabel 2. Contoh Perhitungan Total Cost pada Suatu Teks - 7 -

3. Pengujian Algoritma Huffman Pada pengujian digunakan, kita akan menencoding sebuah teks yang berisi 100.000 string, diantaranya 45.000 karakter g, 13.000 karakter o, 12.000 karakter p, 16.000 karakter h, 9.000 karakter e, dan 5.000 karakter r dengan menggunakan 3 cara, yaitu dengan menggunakan kode ASCII, kode 3-bit dan kode Huffman. Setelah itu ketiga kode tersebut akan dibandingkan satu sama lainnya. a. Kode ASCII Karakter ASCII Biner g 103 1100111 o 111 1101111 p 112 1110000 h 104 1101000 e 101 1100101 r 114 1110010 Tabel 3. Kode ASCII untuk karakter g,o,p,h,e,r, Untuk meng-encoding teks tersebut kita membutuhkan sebanyak: untuk karakter g 45.000 x 8 bit (1100111) = 360.000 bit untuk karakter o 13.000 x 8bit (1101111) = 104.000 bit untuk karakter p 12.000 x 8bit (1110000) = 96.000 bit untuk karakter h 16.000 x 8bit (1101 000 ) = 128.000 bit untuk karakter e 9.000 x 8bit (1100101) = 72.000 bit untuk karakter r 5.000 x 8bit (1110010) = 40.000 bit Jumlah bit yang digunakan Kode ASCII untuk karakter g,o,p,h,e,r, = 360.000 + 104.000 + 96.000 + 128.000 + 72.000 + 40.000 = 800.000 bit b. 3-bit Kode Karakter Kode Biner g 0 000 o 1 001 p 2 010 h 3 011 e 4 100 r 5 101 Tabel 4. 3-bit Kode untuk karakter g,o,p,h,e,r Untuk meng-encoding teks tersebut kita membutuhkan sebanyak: untuk karakter g 45.000 x 3 bit (000) = 135.000 bit untuk karakter o 13.000 x 3bit (001) = 39.000 bit untuk karakter p 12.000 x 3bit (010) = 36.000 bit untuk karakter h 16.000 x 3bit (011) = 48.000 bit untuk karakter e 9.000 x 3bit (100) = 27.000 bit untuk karakter r 5.000 x 3bit (101) = 15.000 bit Jumlah bit yang digunakan 3-bit kode untuk karakter g,o,p,h,e,r, = 135.000 + 39.000 + 36.000 + 48.000 + 27.000 + 15.000 = 300.000 bit c. Kode Huffman Karakter Frekuensi Peluang Kode Huffman g 45.000 45/100 0 o 13.000 13/100 101 p 12.000 12/100 100 h 16.000 16/100 111 e 9.000 9/100 1101 r 5.000 5/100 1100-8 -

Tabel 5. Kode Huffman untuk Karakter g,o,p,h,e,r, Untuk meng-encoding teks tersebut kita membutuhkan sebanyak: untuk karakter g 45.000 x 1 bit (0) = 45.000 bit untuk karakter o 13.000 x 3bit (101) = 39.000 bit untuk karakter p 12.000 x 3bit (110) = 36.000 bit untuk karakter h 16.000 x 3bit (111) = 48.000 bit untuk karakter e 9.000 x 4bit (1101) = 36.000 bit untuk karakter r 5.000 x 4bit (1100) = 20.000 bit Jumlah bit yang digunakan kode huffman untuk karakter g,o,p,h,e,r, = 45.000 + 39.000 + 36.000 + 48.000 + 36.000 + 20.000 = 224.000 bit Dari data diatas kita dapat lihat bahwa dengan menggunakan kode ASCII untuk meng encoding teks tersebut membutuhkan 800.000 bit, sedangkan dengan menggunakan 3-bit kode dibutuhkan 300.000 bit dan dengan menggunakan kode Huffman hanya membutuhkan 224.000. Jadi, untuk kasus tersebut algoritma huffman dapat mengompres teks sebesar 70% dibandingkan kita menggunakan kode ASCII dan sebesar 25,3% dibandingkan kita menggunakan 3-bit kode. - 9 -

4. Kesimpulan dan Saran Pengembangan 4.1 Kesimpulan 1. Algoritma Huffman adalah salah satu algoritma kompresi, yang banyak digunakan dalam kompresi teks. 2. Terdapat 3 tahapan dalam menggunakan algoritma Huffman, yaitu: membentuk pohon Huffman melakukan encoding dengan menggunakan pohon Huffman, dan melakukan decoding 3. Algoritma Huffman mempunyai kompleksitas waktu O(n log n). 4. Algoritma Huffman adalah salah satu algoritma yang menggunakan prinsip algoritma greedy dalam penyusunan pohon Huffman 5. Dari hasil pengujian yang dilakukan, algoritma Huffman dapat mengompres teks sekitar 70% jika dibandingkan dengan menggunakan kode ASCII dan sekitar 25% jika dibandingkan dengan kita menggunakan 3-bit kode. 4.2 Saran Pengembangan Untuk dapat lebih melihat dan membuktikan keefektifan, kelebihan dan kelemahan dari algoritma Huffman, perlu diadakannya sebuah penelitian yang bertujuan membandingkan seluruh algoritma kompresi dalam mengompres berbagai data atau file. - 10 -

Daftar Pustaka [1]Howe, D., Free On-line Dictionary of Computing, http://www.foldoc.org/,1993. [2]Huffman Coding http://www.en.wikipedia.org/wiki/huffman_c oding [3] Rinaldi Munir, 2005, Diktat Kuliah IF2251 Strategi Algoritmik, Penerbit ITB. [4] Data Structures and Algorithms: Introduction http://ciips.ee.uwa.edu.au/~morris/year2/pls2 10/introduction.html [5] Practical Huffman Coding http://www.compressconsult.com/huffman/ [6] Huffman algorithm, making codes from probabilities http://www.arturocampos.com/ - 11 -