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

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

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

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

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

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

BAB 2 Tinjauan Teoritis

Analisa Perbandingan Rasio Kecepatan Kompresi Algoritma Dynamic Markov Compression Dan Huffman

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Teknik Kompresi Citra Menggunakan Metode Huffman

BAB 2 LANDASAN TEORI

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA

Penerapan Pengkodean Huffman dalam Pemampatan Data

Kode Huffman dan Penggunaannya dalam Kompresi SMS

Penerapan Pohon Biner Huffman Pada Kompresi Citra

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

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

PENDAHULUAN 1.1. Latar belakang

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

1. PENDAHULUAN 1.1. Latar Belakang Masalah

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

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

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


Teknik Pembangkitan Kode Huffman

Kompresi. Definisi Kompresi

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

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

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

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

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

BAB 1 PENDAHULUAN. Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa

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

KINERJA DAN PERFORMA ALGORITMA KOMPRESSI LOSSLESS TERHADAP OBJEK CITRA DIGITAL

BAB 2 LANDASAN TEORI

IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Algoritma Huffman dan Kompresi Data

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

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

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

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

BAB II DASAR TEORI. 2.1 Pendahuluan

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO

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

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

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB 3 ANALISA DAN PERANCANGAN SISTEM. semakin meluas pada berbagai kalangan. File-file tersebut ada kalanya semakin

Penerapan Algoritma LZW (Lempel-Ziv-Welch) pada Program Pemampat File

Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif

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

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

ANALISA DAN PERBANDINGAN ALGORITMA RUN LENGTH ENCODING DAN ALGORITMA LZW ( LEMPEL ZIV WECH ) DALAM PEMAMPATAN TEKS

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

BAB II LANDASAN TEORI. Data disimpan di dalam komputer pada main memory untuk diproses.

Kompresi Data dengan Kode Huffman dan Variasinya

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN Latar Belakang

Kinerja Dan Performa Algoritma Kompressi Lossless Terhadap Objek Citra Digital

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

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

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

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

BAB III LANDASAN TEORI. Kompresi data merupakan proses mengkonversi input data stream (aliran

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

BAB 1 PENDAHULUAN Latar Belakang

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

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

BAB III ANALISA DAN DESAIN SISTEM. Analisa masalah yang didapat dari penelitian ini adalah membuat data

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

JURNAL IT STMIK HANDAYANI

Pemampatan Data Sebagai Bagian Dari Kriptografi

>>> Kompresi Data dan Teks <<<

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

BAB 1 PENDAHULUAN. tertulis, audio dan video. Objek-objek tersebut yang sebelumnya hanya bisa

BAB IV HASIL DAN UJI COBA

IMPLEMENTASI ALGORITMA RUN LENGTH ENCODING UNTUK PERANCANGANAPLIKASI KOMPRESI DAN DEKOMPRESI FILE CITRA

TEKNIK KOMPRESI LOSSLESS TEXT

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

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

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

BAB II DASAR TEORI Teknik Kompresi Data

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

BAB III ANALISIS DAN PERANCANGAN

KONSEP. Tujuan Kompresi:

Penggunaan Pohon Huffman pada Algoritma Deflate

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

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

ANALISIS ENKRIPSI CITRA DIGITAL MENGGUNAKAN ALGORITMA LOGISTIC MAP DENGAN ALGORITMA KOMPRESI LAMPEL-ZIV-WELCH (LZW)

Transkripsi:

Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC Roy Indra Haryanto - 13508026 Fakultas Sekolah Teknik Elektro dan Informatika Program Studi Teknik Informatika Institut Teknologi Bandung Jalan Ganesha No. 10, Bandung, 40132 e-mail: royindrah@gmail.com ABSTRAK Makalah ini membahas tentang kompresi data dengan algoritma Huffman dan membandingkannya dengan kompresi data menggunakan algoritma lain seperti algoritma LZW (Lempel-Ziv-Welch) dan DZW (Dynamic Markov Compression). Dalam makalah ini dijelaskan mengenai cara kerja algoritma Huffman, LZW dan DMC dalam melakukan kompresi data. Kompresi data merupakan proses yang penting dalam dunia informatika dan algoritma Huffman merupakan salah satu algoritma yang telah digunakan secara luas untuk mengompresi data dalam berbagai bahasa pemrograman. Kata kunci: Algoritma Huffman, Kata LZW (Lempel- Ziv-Welch), DZW (Dynamic Markov Compression, kompresi data. 1. PENDAHULUAN Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data [1]. Saat ini terdapat berbagai tipe algoritma kompresi [2], antara lain: Huffman, 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. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua kelompok, yaitu : (a) Metode statik : Menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two-pass): Fase pertama untuk menghitung probabilitas kemunculan tiap simbol/karakter dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Contoh: algoritma Huffman statik. (b) Metode dinamik (adaptif) : Menggunakan peta kode yang dapat berubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap perubahan karakteristik isi file selama proses kompresi berlangsung. Metode ini bersifat onepass, karena hanya diperlukan satu kali pembacaan terhadap isi file. Contoh: algoritma LZW dan DMC. 2. METODE 2.1 Algoritma algoritma dalam Kompresi Data Dalam pengkompresian data, ada bermacam macam algoritma yang dapat digunakan. Dalam upabab kali ini, akan dijelaskan tentang algoritma Huffman, LZW, dan DMC. 2.1.1 Algoritma Huffman Algoritma Huffman ditemukan oleh David Huffman pada tahun 1952. Algoritma ini menggunakan pengkodean yang mirip dengan kode Morse. Berdasarkan tipe kode yang digunakan algoritma Huffman termasuk metode statistic. Sedangkan berdasarkan teknik pengkodeannya menggunakan metode symbolwise. Algoritma Huffman merupakan salah satu algoritma yang digunakan untuk mengompres teks. Algoritma Huffman secara lengkap [5] : 1. Pilih dua simbol dengan peluang (probability) paling kecil (pada contoh di atas simbol B dan D). Kedua simbol tadi dikombinasikan sebagai simpul orangtua dari simbol B dan D sehingga menjadi simbol BD MAKALAH IF2091 STRATEGI ALGORITMIK TAHUN 2009

dengan peluang 1/7 + 1/7 = 2/7, yaitu jumlah peluang kedua anaknya. 2. Selanjutnya, pilih dua simbol berikutnya, termasuk simbol baru, yang mempunyai peluang terkecil. 3. Ulangi langkah 1 dan 2 sampai seluruh simbol habis. Sebagai contoh, dalam kode ASCII string 7 huruf ABACCDA membutuhkan representasi 7 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut: 01000001 01000010 01000001 01000011 01000011 A B A C C 01000100 01000001 D A Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat dipersingkat, terutama untuk karakter yang frekuensi kemunculannya besar. Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan menggunakan algoritma di atas diperoleh kode Huffman seperti pada Tabel 1. Gambar 1. Pohon Huffman untuk ABACCDA Tabel 1 Kode Huffman Karakter Frekuensi Peluang Kode Huffman A 3 3/7 0 B 1 1/7 110 C 2 2/7 10 D 1 1/7 111 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 dari yang seharusnya dibutuhkan 56 bit. Untuk menguraikan kembali data yang sudah dikodekan sebelumnya dengan algoritma Huffman, dapat digunakan cara sebagai berikut : 1. Baca bit pertama dari string biner masukan 2. Lakukan traversal pada pohon Huffman mulai dari akar sesuai dengan bit yang dibaca. Jika bit yang dibaca adalah 0 maka baca anak kiri, tetapi jika bit yang dibaca adalah 1 maka baca anak kanan. 3. Jika anak dari pohon bukan daun (simpul tanpa anak) maka baca bit berikutnya dari string biner masukan. 4. Hal ini diulang (traversal) hingga ditemukan daun. 5. Pada daun tersebut simbol ditemukan dan proses penguraian kode selesai. 6. Proses penguraian kode ini dilakukan hingga keseluruhan string biner masukan diproses. 2.1.2 Algoritma LZW (Lempel-Ziv-Welch) Algoritma LZW dikembangkan oleh Terry A.Welch dari metode kompresi sebelumnya yang ditemukan oleh Abraham Lempel dan Jacob Ziv pada tahun 1977. Algortima ini menggunakan teknik dictionary dalam kompresinya. Dimana string karakter digantikan oleh kode table yang dibuat setiap ada string yang masuk. Tabel dibuat untuk referensi masukan string selanjutnya. Ukuran tabel dictionary pada algoritma LZW asli adalah 4096 sampel atau 12 bit, dimana 256 sampel pertama digunakan untuk table karakter single (Extended ASCII), dan sisanya digunakan untuk pasangan karakter atau string dalam data input. [4] Algoritma LZW melakukan kompresi dengan mengunakan kode table 256 hingga 4095 untuk mengkodekan pasangan byte atau string. Dengan metode ini banyak string yang dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Algoritma kompresi LZW secara lengkap : 1. KAMUS diinisialisasi dengan semua karakter dasar yang ada : { A.. Z, a.. z, 0.. 9 }. 2. W karakter pertama dalam stream karakter. 3. K karakter berikutnya dalam stream karakter. 4. Lakukan pengecekan apakah (W+K) terdapat dalam KAMUS Jika ya, maka W W + K (gabungkan W dan K menjadi string baru). Jika tidak, maka : Output sebuah kode untuk menggantikan string W. Tambahkan string (W+ K) ke dalam dictionary dan berikan nomor/kode berikutnya yang belum digunakan dalam dictionary untuk string tersebut. W K.

Lakukan pengecekan apakah masih adaa karakter berikutnya dalam stream karakter Jika ya, maka kembali ke langkah 2. Jika tidak, maka output kode yang menggantikan string W, lalu terminasi proses (stop). Gambar 2. Flowchart Algoritma LZW dalam kurung siku. Kolom output menyatakan kode output yang dihasilkan oleh langkah kompresi. Hasil proses kompresi ditunjukkan pada Gambar 2. Gambar 3. Hasil Prosess Kompresi Proses dekompresi data pada algoritma LZW tidak jauh berbeda dengan proses kompresinya. Pada dekompresi LZW, juga dibuat tabel dictionary dari data input kompresi, sehingga tidak diperlukan penyertaan tabel dictionary ke dalam data kompresi. Berikut algoritma dekompresi LZW : Sebagai contoh, string ABBABABAC akan dikompresi dengan LZW. Isi dictionary padaa awal proses diset dengan tiga karakter dasar yang ada: A, B, dan C. Tahapan proses kompresi ditunjukkan pada Tabel 2. Tabel 2 Tahapan Kompresi LZW Langkah Posisi Karakter Dictionary Output 1 1 A [4] A B [1] 2 2 B [5] B B [2] 3 3 B [6] B A [2] 4 4 A [7] A B A [4] 5 6 A [8] A B A C [7] 6 9 C - [3] Kolom posisi menyatakan posisi sekarang dari stream karakter dan kolom karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom dictionary menyatakan string baru yang sudah ditambahkan ke dalam dictionary dan nomor indeks untuk string tersebut ditulis 1. Dictionary diinisialisasi dengan semua karakter dasar yang ada : { A.. Z, a.. z, 0.. 9 }. 2. CW kode pertama dari stream kode (menunjuk ke salah satu karakter dasar). 3. Lihat dictionary dan output string dari kode tersebut (string.cw) ke stream karakter. 4. PW CW; CW kode berikutnya dari stream kode. 5. Apakah string.cw terdapat dalam dictionary? Jika ada, maka : Output string.cw ke stream karakter P string.pw C karakter pertama dari string.cw Tambahkan string (P+C) ke dalam dictionary Jika tidak, maka : P string.pw C karakter pertama dari string.pw Output string (P+C) ke stream karakter dan tambahkan string tersebut ke dalam dictionary (sekarang berkorespondensi dengan CW); 6. Apakah terdapat kode lagi di stream kode? Jika ya, maka kembali ke langkah 4. Jika tidak, maka terminasi proses (stop). 2.1.3 Algoritma DMC Algoritma DMC (Dynamic Markov Compression) adalah algoritma kompresi data lossless dikembangkan oleh Gordon Cormack dan Nigel Horspool. Algoritma ini menggunakan pengkodean aritmetika mirip dengan prediksi oleh pencocokan sebagian (PPM), kecuali bahwa input diperkirakan satu bit pada satu waktu (bukan dari satu byte pada suatu waktu). DMC memiliki rasio kompresi yang baik dan kecepatan moderat, mirip dengan PPM, tapi memerlukan sedikit lebih banyak memori dan tidak diterapkan secara luas. Beberapa implementasi baru-

baru ini mencakup program kompresi eksperimental pengait oleh Nania Francesco Antonio, ocamyd oleh Frank Schwellinger, dan sebagai submodel di paq8l oleh Matt Mahoney. Ini didasarkan pada pelaksanaan tahun 1993 di C oleh Gordon Cormack. Pada DMC, simbol alfabet input diproses per bit, bukan per byte. Setiap output transisi menandakan berapa banyak simbol tersebut muncul. Penghitungan tersebut dipakai untuk memperkirakan probabilitas dari transisi. Contoh: pada Gambar 3, transisi yang keluar dari state 1 diberi label 0/5, artinya bit 0 di state 1 terjadi sebanyak 5 kali. Gambar 4. Sebuah model yang diciptakan oleh metode DMC Masalah tidak terdapatnya kemunculan suatu bit pada state dapat diatasi dengan menginisialisasi model awal state dengan satu. Probabilitas dihitung menggunakan frekuensi relatif dari dua transisi yang keluar dari state yang baru. Jika frekuensi transisi dari suatu state t ke state sebelumnya, yaitu state u, sangat tinggi, maka state t dapat di-cloning. Ambang batas nilai cloning harus disetujui oleh encoder dan decoder. State yang di-cloning diberi simbol t (lihat Gambar 4 dan 5). Aturan cloning adalah sebagai berikut : Semua transisi dari state u dikirim ke state t. Semua transisi dari state lain ke state t tidak berubah. Jumlah transisi yang keluar dari t harus mempunyai rasio yang sama (antara 0 dan 1) dengan jumlah transisi yang keluar dari t. Jumlah transisi yang keluar dari t dan t diatur supaya mempunyai nilai yang sama dengan jumlah transisi yang masuk [2]. Gambar 5. Model Markov sebelum cloning Secara umum, transisi ditandai dengan 0/p atau 1/q dimana p dan q menunjukkan jumlah transisi dari state dengan input 0 atau 1. Nilai probabilitas bahwa input selanjutnya bernilai 0 adalah p/(p+q) dan input selanjutnya bernilai 1 adalah q/(p+q). Lalu bila bit sesudahnya ternyata bernilai 0, jumlah bit 0 di transisi sekarang ditambah satu menjadi p+1. Begitu pula bila bit sesudahnya ternyata bernilai 1, jumlah bit 1 di transisi sekarang ditambah satu menjadi q+1. Algoritma kompresi DMC : 1. s 1 ( jumlah state sekarang) 2. t 1 (state sekarang) 3. T[1][0] = T[1][1] 1 (model inisialisasi) 4. C[1][0] = C[1][1] 1 (inisialisasi untuk menghindari masalah frekuensi nol) 5. Untuk setiap input bit e : u t t T[u][e] (ikuti transisi) Kodekan e dengan probabilitas : C[u][e] / (C[u][0] + C[u][1]) C[u][e] C[u][e]+1 Jika ambang batas cloning tercapai, maka : s s + 1 (state baru t ) T[u][e] s ; T[s][0] T[t][0] ; T[s][1] T[t][1] Pindahkan beberapa dari C[t] ke C[s] Gambar 6. Model Markov setelah cloning MAKALAH STRUKTUR DISKRIT, TEKNIK INFORMATIKA ITB, DESEMBER 2009

2.2 Perbandingan Kinerja Algoritma Huffman dengan Algoritma LZW dan DMC Gambar 9. Grafik Perbandingan Rasio Kompresi Algoritma Huffman, LZW dan DMC Jika kinerja algoritma Huffman dibandingkan dengan Algoritma LZW dan DMC, maka akan diperoleh hasil seperti dibawah ini [6] : Gambar 7. Box Plot Rasio Kompresi Algoritma Huffman, LZW dan DMC Gambar 10. Grafik Perbandingan Kecepatan Kompresi Algoritma Huffman, LZW dan DMC Gambar 8. Box Plot Kecepatan Kompresi Algoritma Huffman, LZW dan DMC Dari grafik di atas, dapat kita lihat bahwa secara ratarata algoritma DMC menghasilkan rasio file hasil kompresi yang terbaik (41.5% ± 25.9), diikuti algoritma LZW (60.2% ± 28.9) dan terakhir algoritma Huffman (71.4% ± 15.4). Dan dari grafik di atas juga, dapat kita lihat bahwa secara rata-rata algoritma LZW membutuhkan waktu kompresi yang tersingkat (kecepatan kompresinya = 1139 KByte/sec ± 192,5), diikuti oleh algoritma Huffman (555,8 KByte/sec ± 55,8), dan terakhir DMC (218,1 KByte/sec ± 69,4). DMC mengorbankan kecepatan kompresi untuk mendapatkan rasio hasil kompresi yang baik. File yang berukuran sangat besar membutuhkan waktu yang sangat lama bila dikompresi dengan DMC. MAKALAH STRUKTUR DISKRIT, TEKNIK INFORMATIKA ITB, DESEMBER 2009

3. KESIMPULAN Dari makalah ini, dapat diambil kesimpulan sebagai berikut : 1. Algoritma Huffman dapat digunakan sebagai dasar untuk kompresi data, dan pengaplikasiannya cukup mudah serta dapat digunakan dalam berbagai jenis data. 2. Secara rata-rata algoritma DMC menghasilkan rasio file hasil kompresi yang terbaik (41.5% ± 25.9), diikuti algoritma LZW (60.2% ± 28.9) dan terakhir algoritma Huffman (71.4% ± 15.4) 3. Secara rata-rata algoritma LZW membutuhkan waktu kompresi yang tersingkat (kecepatan kompresinya = 1139 KByte/sec ± 192,5), diikuti oleh algoritma Huffman (555,8 KByte/sec ± 55,8), dan terakhir DMC (218,1 KByte/sec ± 69,4). DMC mengorbankan kecepatan kompresi untuk mendapatkan rasio hasil kompresi yang baik. File yang berukuran sangat besar membutuhkan waktu yang sangat lama bila dikompresi dengan DMC. 4. Jika dibandingkan dengan algoritma LZW dan DMC, dalam kompresi data, algoritma Huffman masih kalah dalam hal rasio kompresi data maupun kecepatan kompresinya. Tanggal Akses 18 Desember 2009 23.05 [4]http://www.ittelkom.ac.id/library/index.php?view=article&cat id=20%3ainformatika&id=478%3aalgoritma-lzw-lempleziv-welch&option=com_content&itemid=15 Tanggal Akses 18 Desember 2009 23.16 [5] Rinaldi Munir, 2003, Diktat Kuliah Matematika Diskrit, Penerbit ITB. [6] Linawati. Perbandingan Kinerja Algoritma Kompresi Huffman, LZW, dan DMC pada Berbagai Tipe File, 2004. 4. UCAPAN TERIMA KASIH Makalah ini dibuat untuk memenuhi tugas mata kuliah Struktur Diskrit. Pertama tama Penulis mengucapkan terima kasih kepada dosen pengajar mata kuliah Struktur Diskrit yang telah memberikan ilmu yang sangat bermanfaat untuk penulis. Tanpa ilmu yang diberikan, tidak mungkin penulis mampu menulis makalah ini. Penulis juga memberikan ucapan terima kasih kepada setiap pihak yang telah membantu dalam menyelesaikan makalah ini. Terutama kepada setiap institusi pendidikan yang telah bersedia memberikan sarana dalam internet untuk memberikan data yang berhubungan dengan makalah ini. Ucapan terima kasih ini penulis berikan karena tanpa bantuan mereka semua, penulis tidak mungkin dapat menyelesaikan makalah ini. REFERENSI [1] Howe, D., Free Online Dictionary of Computing, http://www.foldoc.org/ Tanggal Akses 18 Desember 2009 21.27 [2] Ben Zhao, et al., Algorithm in the Real World - (Compression) Scribe Notes, http://www-2.cs.cmu.edu/~guyb/realworld/ class-notes/all/ Tanggal Akses 18 Desember 2009 22.35 [3]http://www.ittelkom.ac.id/library/index.php?view=article&cat id=20%3ainformatika&id=188%3aalgoritma-huffman-danshannon-fano&option=com_content&itemid=15 MAKALAH STRUKTUR DISKRIT, TEKNIK INFORMATIKA ITB, DESEMBER 2009