Perkembangan teknologi informasi telah membuat kebutuhan akan informasi semakin cepat, dalam dunia teknologi informasi dikenal istilah dengan transmisi data atau pertukaran data, pertukaran data ini dapat ditingkatkan dengan menggunakan teknik pemampatan data atau yang lebih dikenal dengan kompresi data.
Metode kompresi data ada bermacam-macam diantar metode-metode itu adalah metode LZW dan metode Huffman yang merupakan metode kompresi data lossless. Kinerja dari metode-metode ini dapat dihitung dengan menggunakan ratio kompresi dan integritas data setelah dekompresi.
Dari hasil pengujian didapatkan bahwa metode LZW dan metode Huffman dapat digunakan dengan baik dalam proses kompresi data file teks, metode Huffman lebih cepat tetapi mempunyai ratio kompresi yang kurang dibandingkan dengan metode LZW, kedua metode juga dapat mengembalikan data ke bentuk semula dengan dibuktikan dengan lolosnya cek integritas data dengan CRC32
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
1. TUGAS AKHIR
ANALISIS PERBANDINGAN METODE LZW DAN
HUFFMAN DALAM KOMPRESI FILE TEKS
DEWA PURNAMA SIDI PUTRA
NIM 08101018
Dosen Pembimbing:
I PUTU GEDE BUDAYUSA, SST.Par., M.T.I
TEKNIK INFORMATIKA
PROGRAM STUDI TEKNIK INFORMATIKA
STMIK STIKOM INDONESIA
DENPASAR 2013
2. ii
HALAMAN PERSETUJUAN
Judul : ANALISIS PERBANDINGAN
METODE LZW DAN HUFFMAN
DALAM KOMPRESI FILE TEKS
Nama Mahasiswa : Dewa Purnama Sidi Putra
NIM : 08101018
Program Studi : Teknik Informatika
Telah diperiksa dan disetujui sebagai Tugas Akhir mahasiswa Program
Studi Teknik Informatika STMIK STIKOM Indonesia
Menyetujui:
Pembimbing
I Putu Gede Budayasa, SST.Par., M.T.I
NIDN. 0820068402
Mengetahui:
Kepala Program Studi Teknik Informatika
I Putu Gede Budayasa, SST.Par., M.T.I
NIDN. 0820068402
4. iv
HALAMAN PENGESAHAN
Judul : ANALISIS PERBANDINGAN
METODE LZW DAN HUFFMAN
DALAM KOMPRESI FILE TEKS
Nama Mahasiswa : Dewa Purnama Sidi Putra
NIM : 08101018
Program Studi : Teknik Informatika
Telah berhasil dipertahankan di hadapan Dewan Penguji dan diterima
sebagai bagian persyaratan yang diperlukan untuk memperoleh gelar
Sarjana Komputer pada Program Studi Teknik Informatika, STMIK
STIKOM Indonesia.
Dibuat di : Denpasar
Pada tanggal : 30 Agustus 2013
DEWAN PENGUJI
Pembimbing : I Putu Gede Budayasa, SST.Par., M.T.I ( )
Penguji : Aniek Suryanti Kusuma, M.Kom ( )
Penguji : I Dewa Made Adi Baskara Joni, M.Kom ( )
6. vi
HALAMAN PERNYATAAN ORISINALITAS
Judul : ANALISIS PERBANDINGAN
METODE LZW DAN HUFFMAN
DALAM KOMPRESI FILE TEKS
Nama Mahasiswa : Dewa Purnama Sidi Putra
NIM : 08101018
Program Studi : Teknik Informatika
Dengan ini saya menyatakan bahwa Tugas Akhir ini merupakan hasil
karya saya sendiri, semua sumber baik yang dikutip maupun dirujuk
telah saya cantumkan dengan benar dan sepanjang sepengetahuan saya
juga tidak terdapat karya yang pernah ditulis atau diterbitkan orang lain.
Denpasar, 30 Agustus 2013
( Dewa Purnama Sidi Putra )
8. viii
HALAMAN PERNYATAAN PERSETUJUAN
PUBLIKASI TUGAS AKHIR UNTUK KEPENTINGAN
AKADEMIS
Sebagai civitas akademik STMIK STIKOM Indonesia, saya yang
bertanda tangan dibawah ini:
Nama : Dewa Purnama Sidi Putra
NIM : 08101018
Program Studi : Teknik Informatika
Jenis Karya : Tugas Akhir
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan
kepada STMIK STIKOM Indonesia Hak Bebas Royalti Nonekslusif
(Non-exclusive Royalty-Free Right) atas tugas akhir saya yang
berjudul:
ANALISIS PERBANDINGAN METODE LZW DAN HUFFMAN
DALAM KOMPRESI FILE TEKS
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas
Royalti Non-ekskutif ini STMIK STIKOM Indonesia berhak
menyimpan, mengalihmedia/formatkan, mengelola dalam bentuk
pangkalan data (database). Merawat, dan mempublikasikan karya akhir
saya tanpa meminta izin dari saya selama tetap mencantumkan saya
sebagai penulis/pencipta dan sebagai pemilik Hak Cipta.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Denpasar
Pada tanggal : 30 Agustus 2013
Yang menyatakan
( Dewa Purnama Sidi Putra )
10. x
ABSTRAK
ANALISIS PERBANDINGAN METODE LZW DAN
HUFFMAN DALAM KOMPRESI FILE TEKS
Nama Mahasiswa : Dewa Purnama Sidi Putra
NIM : 08101018
Program Studi : Teknik Informatika
Dosen Pembimbing : I Putu Gede Budayasa,SST.Par.,
M.T.I
abstrak
Perkembangan teknologi informasi telah membuat
kebutuhan akan informasi semakin cepat, dalam dunia teknologi
informasi dikenal istilah dengan transmisi data atau pertukaran
data, pertukaran data ini dapat ditingkatkan dengan menggunakan
teknik pemampatan data atau yang lebih dikenal dengan kompresi
data.
Metode kompresi data ada bermacam-macam diantar
metode-metode itu adalah metode LZW dan metode Huffman yang
merupakan metode kompresi data lossless. Kinerja dari metode-
metode ini dapat dihitung dengan menggunakan ratio kompresi dan
integritas data setelah dekompresi.
Dari hasil pengujian didapatkan bahwa metode LZW dan
metode Huffman dapat digunakan dengan baik dalam proses
kompresi data file teks, metode Huffman lebih cepat tetapi
mempunyai ratio kompresi yang kurang dibandingkan dengan
metode LZW, kedua metode juga dapat mengembalikan data ke
bentuk semula dengan dibuktikan dengan lolosnya cek integritas
data dengan CRC32
Kata kunci : Kompresi, Huffman, LZW, Ratio, Integritas ,
CRC32
12. xii
ABSTRACT
ANALISIS PERBANDINGAN METODE LZW DAN
HUFFMAN DALAM KOMPRESI FILE TEKS
Nama Mahasiswa : Dewa Purnama Sidi Putra
NIM : 08101018
Program Studi : Teknik Informatika
Dosen Pembimbing : I Putu Gede Budayasa,SST.Par.,
M.T.I
Abstract
Development in Information Technology is rapidly
increasing, in technology information there is data transmission,
data transmission effectivity can be increased using data
compression.
There is many data compression method, as example in
lossless compression is Huffman method and LZW method, that can
be measured using compression ratio and data integrity check after
compressing and decompressing.
From this research Huffman method and LZW method can
be used in text compression, while Huffman method is more faster
the LZW method give better compression ratio, both method also
pass the integrity check using the CRC32 method.
Key word : Compression, Huffman, LZW, Ratio,
Integrity,CRC32
14. xiv
KATA PENGANTAR
Puji Syukur kepada Tuhan Yang Maha Esa atas segala berkat,
rahmat, kasih, karunia, dan anugerah yang diberikan kepada penulis
selama pembuatan tugas akhir yang berjudul “Analisis Perbandingan
Metode LZW dan Metode Huffman Dalam Kompresi File Teks” dengan
baik. Laporan ini dibuat penulis dengan tujuan memenuhi salah satu
syarat untuk mencapai gelar sarjana komputer.
Penulis sangat menyadari bahwa tanpa bantuan tenaga, pikiran,
dukungan, serta bimbingan dari berbagai pihak maka tugas akhir ini
tidak akan mungkin dapat terselesaikan. Oleh karena itu, pada
kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-
besarnya kepada:
1. Bapak I Dewa Made Khrisna Muku, S.T, M.T., selaku Direktur
STMIK STIKOM Indonesia yang telah menyelenggarakan
program pendidikan pendidikan Teknik Informatika dengan
kosentrasi Manajemen Teknik Informatika.
2. Bapak I Putu Gede Budayasa SST.Par, M.T.I., selaku Ka. Prodi
Teknik Informatika yang telah banyak membantu penulis
dalam penyusunan laporan ini.
3. Seluruh Dosen STMIK STIKOM Indonesia atas motivasi dan
bimbingannya serta semua pihak yang tidak dapat disebutkan
satu persatu yang telah memberi motivasi dan dukungan
kepada penulis
4. Kedua orang tua dan keluarga yang telah banyak memberikan
semangat dan dukungan bik materi dan non materil sehingga
penulis dapat menyelesaikan laporan ini dengan baik.
5. Kepada 2 kakak tercinta, Dyah Ayu Brahmasari Dan Delly Oka
Aryawati, berserta keluarga, Akhirnya saya bisa menyusul
mereka.
6. Teman-teman mahasiswa dan mahasiswi di STMIK STIKOM
Indonesia yang telah banyak memberikan semangat dan
membantu penulis dalam mengerjakan tugas akhir ini.
7. Kepada Indosat – Telkomsel – XL dan juragan SSH serta
pembuat injek-an, internet gratis ini buat kita pintar oooy.
Semoga langgeng triknya.
15. xv
Apabila dalam laporan tugas akhir ini terdapat kekurangan atau
kesalahan yang tidak disadari oleh penulis, penulis mohon maaf dan
mengharapkan kritik dan saran terhadap laporan ini sebagai masukan
yang bermanfaat bagi penulis.
Denpasar, 23 Agustus 2013
Penulis
16. xvi
DAFTAR ISI
Halaman Persetujuan ................................................................... ii
Halaman Pengesahan....................................................................iv
Halaman Peryataan Orisinalitas..................................................vi
Halaman Persetujuan Publikasi .................................................viii
Abstrak............................................................................................x
Abstract......................................................................................... xii
Kata Pengantar ............................................................................xiv
Daftar Isi.......................................................................................xvi
Daftar Gambar............................................................................xviii
Daftar Tabel ..................................................................................xx
1. BAB I...............................................................................................1
1.1 Latar belakang............................................................................1
1.2 Rumusan Masalah......................................................................2
1.3 Batasan Masalah ........................................................................2
1.4 Tujuan Penelitian .......................................................................3
1.5 Manfaat Penelitian .....................................................................3
1.6 Metode Penelitian ......................................................................3
1.7 Sistematika Penulisan.................................................................4
2. BAB II Landasan Teori .................................................................7
2.1 State Of The Arts .......................................................................7
2.2 Kompresi Data ...........................................................................7
2.2.1 Klasifikasi Kompresi........................................................10
2.3 Metode LZW.............................................................................12
2.4 Metode Huffman.......................................................................15
2.5 File Teks....................................................................................19
2.6 ASCII ........................................................................................20
2.7 Parameter Analisis ....................................................................25
3. BAB III Perancangan Sistem ......................................................31
3.1 Instrumen Penelitian..................................................................31
3.1.1 Hardware................................................................................31
3.1.2 Software .................................................................................31
3.2 Rancangan Sistem.....................................................................32
3.2.1 Fungsi Pengecekan Data Input .........................................32
3.2.2 Fungsi Kompresi LZW.....................................................33
3.2.3 Fungsi Dekompresi LZW .................................................34
3.2.4 Fungsi Kompresi Huffman ...............................................36
17. xvii
3.2.5 Fungsi Dekompresi Huffman........................................... 37
3.2.6 Fungsi Penulisan Data Output ......................................... 38
3.2.7 Fungsi Pengujian Ratio Kompresi ................................... 39
3.2.8 Fungsi Pengujian Waktu Kompresi ................................. 39
3.2.9 Fungsi Pengecekan CRC32.............................................. 40
3.3 Flowchart Sistem...................................................................... 40
3.4 Rancangan Antarmuka ............................................................. 53
4. BAB IV Analisis Dan Pembahasan ............................................. 59
4.1 Implementasi Sistem ................................................................ 59
4.2 Implementasi Interface ............................................................. 59
4.3 Pengujian Sistem ...................................................................... 64
4.4 Pengujian Analisis.................................................................... 70
5. BAB V Kesimpulan Dan Saran................................................... 81
5.1 Kesimpulan............................................................................... 81
5.2 Saran......................................................................................... 81
6. Daftar Pustaka.............................................................................. 83
7. Lampiran....................................................................................... 85
18. xviii
DAFTAR GAMBAR
Gambar 2.1 Proses Kompresi Data........................................................9
Gambar 2.2 Proses Dekompresi Data ....................................................9
Gambar 2.3 Proses Kompresi Huffman................................................17
Gambar 2.4 Pohon Huffman.................................................................18
Gambar 2.5 Psuedocode Kompresi Huffman .......................................18
Gambar 2.6 Proses Dekompresi Huffman ............................................19
Gambar 2.7 Hasil Rasio Kompresi Winrar...........................................27
Gambar 2.8 Operasi XOR.....................................................................29
Gambar 2.9 Perhitungan CRC ..............................................................29
Gambar 3.1 Flowchart Pengecekan File Input......................................41
Gambar 3.2 Flowchart Kompresi LZW................................................42
Gambar 3.3 Flowchart Subproses Kompresi LZW...............................43
Gambar 3.4 Flowchart Dekompresi LZW ............................................44
Gambar 3.5 Flowchart Subproses Dekompresi LZW...........................45
Gambar 3.6 Flowchart Kompresi Huffman ..........................................47
Gambar 3.7 Flowchart Subproses Kompresi Huffman.........................48
Gambar 3.8 Flowchart Dekompresi Huffman.......................................49
Gambar 3.9 Flowchart Subproses Dekompresi Huffman .....................50
Gambar 3.10 Flowchart Perbandingan Metode ....................................51
Gambar 3.11 Flowchart Perhitungan CRC32 .......................................52
Gambar 3.12 Rancangan Form Utama..................................................53
Gambar 3.13 Interface Kompresi LZW................................................54
Gambar 3.14 Interface Dekompresi LZW ............................................55
Gambar 3.15 Interface Kompresi Huffman ..........................................56
Gambar 3.16 Interface Dekompresi Huffman.......................................57
Gambar 3.17 Interface Perbandingan Metode ......................................58
Gambar 4.1 Tampilan Form Utama......................................................59
Gambar 4.2 Form Kompresi LZW .......................................................60
Gambar 4.3 Form Dekompresi LZW....................................................61
Gambar 4.4 Form Kompresi Huffman..................................................62
Gambar 4.5 Form Perbandingan Metode..............................................63
Gambar 4.6 Form Bantuan....................................................................64
Gambar 4.7 Deteksi File Teks Unicode................................................65
Gambar 4.8 Deteksi File Dengan Format UTF-8 .................................66
Gambar 4.9 Deteksi Besar Ukuran File Input.......................................67
Gambar 4.10 Proses Kompresi dan Informasinya ................................68
Gambar 4.11 File Output ......................................................................68
19. xix
Gambar 4.12 Nilai CRC32 Dengan Hashtab 5.1.................................. 69
Gambar 4.13 Hasil CRC32 Dari Sistem............................................... 70
Gambar 4.14 Grafik Perbandingan Ukuran File Output ...................... 76
Gambar 4.15 Grafik Perbandingan Waktu Kompresi .......................... 77
Gambar 4.16 Grafik Perbandingan Waktu Dekompresi....................... 78
20. xx
DAFTAR TABEL
Tabel 2.1 Contoh 1 Kompresi LZW .....................................................13
Tabel 2.2 Contoh 1 Dekompresi LZW .................................................13
Tabel 2.3 Contoh 2 Kompresi LZW .....................................................14
Tabel 2.4 Contoh 2 Dekompresi LZW .................................................14
Tabel 2.5 Contoh Karakter Dan Frekuensinya......................................16
Tabel 2.6 Pengurutan Karakter ............................................................16
Tabel 2.7 Karakter ASCII Bagian 1......................................................21
Tabel 2.8 Karakter ASCII Bagian 2......................................................22
Tabel 2.9 Polinomial Standar................................................................28
Tabel 4.1 Analisis Metode LZW ..........................................................71
Tabel 4.2 Analisis Metode LZW 2 .......................................................72
Tabel 4.3 Analisis Metode Huffman 1..................................................73
Tabel 4.4 Analisis Metode Huffman 2..................................................74
Tabel 4.5 Hasil CRC32 Metode LZW dan Huffman............................78
22. BAB I
PENDAHULUAN
1.1. Latar Belakang
Kemajuan di bidang Teknologi Informasi kini telah berkembang
semakin pesat, dimulai dengan adanya perkembangan di bidang hardware
komputer yang dimulai dengan adanya perkembangan processor dan
kemudian di ikuti dengan perkembangan peripheral lainnya sebagai
pendukung kinerja sebuah sistem, hingga perkembangan softwarenya
sendiri dalam bentuk operating system. Dalam perkembangan ini tujuan
tentunya tujuan utamanya adalah peningkatan efisiensi dalam kinerja
sebuah sistem. Karena sistem bekerja berdasarkan pada adanya data, maka
untuk mencapai peningkatan kinerja, data pun ikut dikembangkan, salah
satu pengembangan tingkat efisiensi data adalah dengan melakukan proses
kompresi data atau pemampatan data, yaitu sebuah proses untuk
memperkecil ukuran sebuah data sehingga proses transfer bisa dipercepat.
Teknologi Informasi dapat berkembang pesat dikarenakan oleh
mudahnya pendistribusian data dan mudahnya untuk melakukan
penyimpanan data jika dibandingkan dengan penyimpanan data secara
fisik, selain tidak memerlukan tempat penyimpanan yang luas
penyimpanan digital ini juga memudahkan saat kita akan mencari data
tersebut, sehingga kinerja proses dapat ditingkatkan. proses pendistribusian
data lebih dikenal dengan transmisi data, hal yang sangat berpengaruh
dalam penentuan kinerjanya adalah ukuran data dan kecepatan transmisi
data. Kinerja proses tentunya dapat ditingkatkan apabila ukuran data bisa
diperkecil sehingga waktu transmisi dapat diperkecil, selain itu
peningkatan kinerja dapat diperoleh dengan penambahan bandwidth untuk
transmisi data, akan tetapi peningkatan bandwidth ini tentunya akan
menambah biaya dalam proses pengadaannya.
Salah satu solusi peningkatan kinerja untuk proses transmisi ini
adalah dengan melakukan proses pemampatan data atau kompresi data,
kompresi pada dasarnya adalah melakukan penyusunan ulang struktur data
digital yang dimaksud dengan membuang unsur data yang berulang,
sehingga ukuran file atau data bisa diperkecil, dengan ukuran file yang
lebih kecil ini tentunya proses transmisi data dapat dipercepat. Dalam
proses kompresi data unsur terpenting adalah rasio kompresi dan waktu
kompresi, rasio adalah perbandingan ukuran data asli dengan ukuran data
setelah proses kompresi sedangkan waktu tentunya adalah seberapa lama
23. 2
proses kompresi itu berlangsung, apakah semakin memperlambat kinerja
atau sebaliknya.
Untuk melakukan proses kompresi terutama data teks, adalah
beberapa metode yang dapat digunakan yang pertama adalah metode LZW
yaitu sebuah metode yang digunakan dalam proses pemampatan atau
kompresi data, metode ini merupakan metode pengembangan dari LZ77
serta LZ78 dan merupakan metode kompresi data yang bekerja berdasarkan
dictionary atau kamus data. Metode yang kedua adalah metode Huffman
encoding, yaitu metode kompresi data lossless yang telah lama digunakan
yang diperkenalkan oleh David A. Huffman yang mengimplementasikan
penggunaan binary tree untuk proses kompresi data metode ini bekerja
berdasarkan kelas Statistik method.Karena ketertarikan akan metode-
metode tersebut maka dengan latar belakang keinginan untuk menguji
tingkat kehandalan penggunaan metode ini terutama rasio kompresi dan
waktu kompresi serta integritas data yang dihasilkan maka penulis
mengambil judul “ANALISIS PERBANDINGAN METODE LZW, DAN
HUFFMAN DALAM KOMPRESI FILE TEKS” sebagai bahan untuk
pembuatan laporan.
1.2. Rumusan Masalah
Berdasarkan latar belakang yang telah disampaikan maka dapat
dirumuskan permasalahan tentang bagaimana kinerja metode LZW dan
metode Huffman dalam melakukan kompresi file teks.
1.3. Batasan Masalah
Batasan digunakan untuk membuat laporan bisa lebih fokus dan
dan digunakan untuk menghindari beban yang terlalu berlebihan dalam
proses pembuatan laporan. Dalam pembuatan laporan dan pengujian
aplikasi ini beberapa batasan yang ada antara lain.
1. File dengan format teks tersebut juga mempunyai batasan yaitu
harus hanya memuat karakter ASCII dan tidak memuat karakter
unicode.
2. Laporan hanya bertujuan untuk menganalisis proses dan kinerja
metode kompresi ini, dan tidak ditujukan untuk meningkatkan
proses kinerja yang dihasilkan, sehingga kemungkinan
kemungkinan pengunaan metode lainnya tidak disebutkan.
3. Karena proses kompresi membutuhkan banyak langkah dan untuk
mempercepat proses maka ukuran file yang akan digunakan untuk
24. 3
menguji metode juga harus dibatasi, ukuran file yang digunakan
adalah file teks yang tidak lebih besar daripada 1 Mega Bytes.
4. Kinerja diukur dengan menggunakan parameter rasio kompresi
dan integritas data ( Hashing ), serta dengan waktu kompresi dan
dekompres file teks.
1.4. Tujuan Penelitian
Tujuan dari penelitian ini adalah mengetahui tingkat kinerja dari
metode LZW dan metode Huffman dalam melakukan proses kompresi file
teks ASCII.
1.5. Manfaat Penelitian
Penelitian ini tentunya mempunai suatu manfaat yang nantinya
penulis harapkan dapat berguna bagi para pembacanya, terutama kalangan
mahasiswa dari almamater penulis. Beberapa manfaat yang penulis
harapkan adalah
1. Laporan dapat digunakan sebagai bahan acuan apabila pembaca
ingin mengambil tema yang serupa dan ingin mendalami lebih
lanjut mengenai berbagai metode kompresi lainnya.
2. Laporan dapat digunakan untuk menambah wawasan pembaca
akan bagaimana sebuah kompresi data dapat dilakukan dan
bagaimana sebenarnya prosedur kompresi data yang ada.
3. Dapat digunakan sebagai arsip untuk almamater sehingga
menambah koleksi perpustakaan dan tentunya menambah
pengetahuan bagi penulis sendiri dan pembaca lainnya.
1.6. Metode Penelitian
1. Studi Literatur
Studi literatur mengenai berbagai macam teknik
kompresi yang digunakan dengan cara mencari makalah dan
berbagai jurnal serta sumber data literatur lainnya seperti buku,
dan berbagai artikel di Internet.
25. 4
2. Analisis Data
Analisis data yang akan digunakan sebagai bahan
pembuatan program dan berbagai data pendukung lainnya, apakah
cocok untuk dipakai atau tidak.
3. Perancangan Program
Perancangan program dilakukan untuk membuat
gambaran akan fitur dan pembuatan desain interface dari program
itu sendiri, interface program dan data masukan serta keluaran
dari program.
4. Pembuatan Program
Pembuatan program dilakukan dengan melihat dari
rancangan dan dengan menggunakan data-data yang telah
diperoleh dalam tahapan perancangan, studi literatur, dan tahapan
analisis data.
5. Uji Coba Dan Evaluasi
Pengujian dilakukan untuk mengetahui kekurangan
program dan berbagai masalah kesalahan pada proses pembuatan
program, sehingga bisa dilakukan evaluasi terhadap program yang
telah dibuat pada proses sebelumnya
6. Pembuatan Laporan
Setelah pembuatan dan evaluasi program maka laporan
yang berkaitan dengan program tersebut maka laporan mengenai
program dapat dituliskan.
1.7. Sistematika Penulisan
Sistematika penulisan laporan yang diguanakan adalah dengan
format sebagai berikut :
BAB I : PENDAHULUAN
Bab ini berisikan uraian singkat mengenai latar belakang dan berbagai
masalah yang ada, pada bab ini juga terdapat proses pemilihan judul,
manfaat pembuatan laporan, dan berisi berbagai batasan masalah yang
digunakan untuk membatasi ruang pengerjaan laporan.
BAB II : LANDASAN TEORI
Bab ini digunakan sebagai informasi mengenai berbagai topik bahasan
yang digunakan dalam penulisan laporan, baik itu mengenai berbagai
penjelasan tentang metode kompresi data yang digunakan dan juga
mengenai dasar teori kompresi data.
26. 5
BAB III : METODOLOGI PENULISAN
Bab ini digunakan untuk proses perancangan program dan alur
yang digunakan dalam pembuatan program, dalam bab ini berbagai
dijelaskan secara singkat bagaimana alur proses algoritma berbagai metode
kompresi data yang digunakan dan berbagai fungsi lainnya yang
menunjang jalannya program atau aplikasi, selain itu pada bab ini juga
berisikan tentang gambaran interface aplikasi yang ada.
BAB IV : IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisikan proses pembuatan dan pengujian sistem yang akan dibuat,
yang bertujuan untuk mengetahui kinerja metode LZW, dan metode
Huffman dalam melakukan proses kompresi file teks, pengujian akan
dilakukan pada file-file teks yang telah disediakan atau dapat diinputkan
secara manual pada sistem. Kinerja proses akan dihitung berdasarkan ratio
kompresi dan integristas data pada setiap metode.
BAB V : KESIMPULAN DAN SARAN
Kesimpulan yang telah dihasilkan dalam hasil pengujian sitem akan
dituliskan pada bab ini begitu juga saran-saran yang berguna untuk
mengembangkan sistem lebih lanjut juga dituliskan pada bab ini.
28. BAB II
LANDASAN TEORI
2.1. State Of The Arts
Penulisan laporan dengan tema kompresi dan analisis metode
kompresi juga sudah banyak dilakukan diberbagai universitas lain,
diantaranya ada sebagian yang menginspirasi dan sebagian yang membantu
dalam proses penyusunan laporan ini, beberapa laporan lain dengan tema
serupa yang dapat ditemukan adalah. Aplikasi kompresi citra dengan
mentode Huffman pernah dilakukan oleh Ivan Setiawan, aplikasi ini
berbasiskan Java, selain itu aplikasi kompresi LZW juga pernah dilakukan
oleh Fahrur Razy, namun topik penelitiannya adalah analisis pengaruh
panjang Bit Code pada algoritma tersebut. Penulisan kompresi file dengan
menggunakan metode LZW juga pernah dilakukan oleh Fuad Subarkah,
sedangkan dari semua contoh tersebut, penulisan laporan ini akan lebih
membahas bagaimana perbandingan kinerja algoritma Huffman dan
algoritma LZW baik dalam rasio kompresi dan waktu kompresi serta
integritas data.
2.2. Kompresi Data
Kompresi data merupakan suatu cabang ilmu pengetahuan yang
bersumber dari teori informasi, dan menggunakan bantuan berbagai teori
matematika dan perhitungan statistik untuk digunakan dalam pemampatan
ukuran data. Sedangkan menurut pakar dan sumber data lainnya
pengertian kompresi data adalah sebagai berikut. Menurut Salomon
(2007:4) Kompresi data adalah proses pengubahan stream atau aliran data
input menjadi stream output yang mana stream output akan memiliki
ukuran file yang lebih kecil dari ukuran semula, sedangkan pengertian
stream sendiri bisa berupa file atau buffer dalam memory komputer.
Sedangkan Sayood (2006:1) kompresi data adalah sebuah seni
dalam ilmu pengetahuan yang digunakan untuk merepresentasikan data ke
dalam bentuk yang lebih compact.
Menurut Anton ( Jurnal Multimedia, 2005/2006 ) Kompresi data
adalah proses mengkodekan informasi menggunakan bit atau information-
bearing unit yang lain yang lebih rendah daripada representasi data yang
tidak terkodekan dengan suatu sistem encoding tertentu.
Berdasarkan beberapa pengertian tersebut maka jelaslah bahwa
kompresi data adalah sebuah proses yang membuat ukuran data asli atau
29. 8
data input menjadi data output yang dapat berupa file yang mempunyai
ukuran yang lebih kecil. Contoh sederhana dalam kehidupan sehari-hari
adalah penggunaan singkatan untuk kata-kata tertentu misalnya ‘yth’
digunakan untuk merepresentasikan penggunaan kata yang terhormat, dan
berbagai macam singkatan kata lainnya yang lazim digunakan.
Dalam penerapannya ke dunia komputer teknik kompresi data
sebenarnya didasari dan dapat digambarkan dengan ide frekuensi
kemunculan karakter alphabet dalam setiap data, misalnya saja huruf vokal
tentunya memiliki frekuensi kemunculan yang lebih tinggi dalam
kebanyakan kalimat, misalnya frekuensi kemunculan huruf vokal ‘a’ dalam
alphabet tentunya lebih tinggi dari frekuensi kemunculan huruf ‘z’, jadi
prinsip inilah yang digunakan dalam penerapan kompresi data di dunia
komputer, yaitu menggantikan redudancy data atau kemunculan data yang
berulang dengan satu data lain yang memiliki panjang data yang lebih
pendek.
Dalam prosesnya kompresi data tidak semudah yang dibayangkan,
beberapa masalah tentunya muncul, menurut Mengyi Pu ( 2006:3 )
diantaranya adalah menemukan algoritma untuk melakukan kompresi data
yang efisien, untuk menghilangkan data berulang dari type file tertentu, dan
berapa bit lebih kecil data yang akan dihasilkan, karena tentunya setiap tipe
data mempunyai karakteristik sendiri, apakah banyak data yang berulang
atau tidak, masalah yang lainnya adalah proses dekompresi data ke bentuk
semula.
Dekompresi data merupakan proses yang mana digunakan untuk
mengembalikan data kedalam bentuk semula, proses ini tentunya berbeda
untuk setiap algoritma, sehingga proses dekompresi data algoritma satu
dengan yang lainnya akan berbeda pula, dekompresi data hanya dapat
dilakukan apabila data dikompres dengan format kompresi data lossless
atau tidak ada informasi atau bagian data yang hilang, sehingga proses
pengembalian data kebentuk semula dapat dilakukan. Berikut adalah
sebuah gambar penjelasan proses kompresi data maupun dekompresi data
30. 9
Gambar 2.1 : Proses Kompresi Data
Gambar 2.2 : Proses Dekompresi Data
•Data
Input Source
File
•LZW
•Huffman
•LZMA
•Arithmatic Coding
Algoritma
Kompresi •Data Terkompres
Output Stream
•Data Terkompress
Input Source
File
•LZW
•Huffman
•LZMA
•Arithmatic Coding
Algoritma
Decompresi •Data Semula
Output Stream
31. 10
2.2.1. Klasifikasi Kompresi Data
A. Berdasarkan Teknik Kompresi
Dapat dibedakan menjadi (Anton:2005) :
a. Entropy Coding adalah teknik kompresi yang
menggunakan proses lossless. Tekniknya tidak
berdasarkan pada media dengan spesifikasi dan
karakteristik tertentu namun berdasarkan urutan data
serta tidak memperhatikan semantik data.
b. Source Coding adalah teknik kompresi dengan
menggunakan proses lossy teknik ini berkaitan dengan
data semantik ( arti data ) dan media.
c. Hybrid Coding adalah teknik kompresi dengan
menggunakan kombinasi gabungan dari entropy coding
dan source coding.
B. Berdasarkan Outputnya
Dapat dibedakan menjadi (Sayood:2006) :
a. Kompresi Lossless
Kompresi data dengan kriteria lossless artinya
adalah bahwa tidak sedikitpun informasi atau data yang
hilang dari suatu file, kompresi lossless menjamin
bahwa file asli dapat dihasilkan kembali dengan proses
dekompresi, salah satu kelemahan kriteria lossless
adalah bahwa kita harus melakukan proses dekompresi
terlebih dahulu supaya data asli dapat dibaca, sangat
berbeda dengan kompresi lossy, yang mana
kemungkinan melakukan proses dekompresi tidak
dilakukan karena data sudah dalam format yang sama
dengan data aslinya. Kompresi lossless pada umumnya
digunakan dalam kompresi data teks, gambar dan video.
Beberapa contoh algoritma kompresi data lossless
adalah algoritma Huffman untuk kompresi data teks
ataupun video, algoritma FLAC ( Free Lossless Audio
Codec ), algoritma LZW, LZMA, RAR dan algoritma
lainnya.
b. Kompresi Loosy
Kompresi lossy berbeda dengan kompresi data
lossless yang menjaga keaslian file, kompresi lossy tidak
dapat menjaga keaslian file karena adanya data atau
32. 11
informasi yang hilang selama proses kompresi, namun
salah satu kelebihan kompresi dengan kriteria lossy
adalah memungkinkan data untuk langsung dibaca
seperti data layaknya data asli tanpa memerlukan proses
dekompresi, salah satu contoh algoritma kompresi lossy
untuk audio adalah MP3, sedangkan untuk file dengan
format gambar ada kompresi JPEG, untuk format video
ada berbagai macam teknik kompresi lossy salah satunya
adalah MPEG, H263, H264. Untuk data dengan format
teks kompresi dengan kriteria lossy tidak layak karena
informasi asli dari data tidak dapat diberikan karena
adanya kehilangan data dalam proses kompresi.
c. Kompresi Lossless Vs Lossy
Kelebihan utama dari kompresi data lossy dari
kompresi data lossless adalah file hasil kompresi bisa
jauh lebih kecil dari file yang dihasilkan dengan metode
lossless dan masih bisa digunakan untuk memenuhi
kebutuhan aplikasi yang memakainya.
Kompresi lossy pada umumnya digunakan
dalam kompresi data audio, ataupun video, dengan
menggunakan teknik kompresi data lossy seperti
algoritma mp3 kita dapat menghasilkan file audio yang
mirip dengan aslinya tanpa kita ketahui atau tanpa
perbedaan yang signifikan dalam kualitas meskipun file
hasil kompresi berbeda dengan file aslinya secara data.
Sedangkan kompresi lossless sendiri pada
umumnya menghasilkan file dengan hasil kompresi yang
lebih besar ukurannya sizenya daripada kompresi lossy,
namun salah satu keunggulan kompresi teknik lossless
adalah kemampunan mengembalikan data kebentuk
aslinya seperti sebelum dilakukan proses kompresi.
C. Berdasarkan Teknik Pengkodean
Dapat dibedakan menjadi ( Linawati dan
Pangabean:2004) :
a. Metode Symbolwise : Menghitung peluang kemunculan
dari tiap simbol dalam file input, lalu mengkodekan satu
simbol dalam satu waktu, dimana simbol yang lebih
sering muncul diberi kode lebih pendek dibandingkan
33. 12
simbol yang lebih jarang muncul. Contoh algoritma
Huffman
b. Metode dictionary : Menggunakan penggantian
karakter/fragment dalam file input dengan indeks lokasi
dari karakter/fragment dalam sebuah tabel atau kamus
data. Contoh : algoritma LZW.
c. Metode Predictive : Menggunakan model finite context
atau finite state untuk memprediksi distribusi
probabilitas dari simbol-simbol berikutnya. Contoh
algoritma DMC
2.3. Metode LZW
LZW merupakan teknik kompresi data lossless yang ditemukan
dan dinamai sesuai dengan penemunya yaitu A. Lempel, J. Ziv, dan Terry
A. Welch pada tahun 1984 sebagai pengembangan dari algorima LZ77 dan
LZ78. Algoritma ini sangat dikenal karena kemampunan untuk melakukan
kompresi data dengan format teks dan format executable code, yang rata-
rata dapat melakukan kompresi dengan skala perbandingan 5:1 dari ukuran
teks aslinya ( Smith:2011). Metode ini menggunakan teknik dictionary
dalam proses kompresinya, untuk memahami algoritma ini sebaiknya kita
mengandaikan sebuah dictionary atau kamus sebagai sebuah tree, dan
berisikan sebuah array dengan panjang string yang bervariasi (Salomon:
2007).
Metode ini dimulai dengan mengisi semua variable array dengan huruf
alphabet. Data ini akan digunakan untuk membaca karakter input atau pola
karakter baru yang masuk sehingga dapat dikodekan, data alphabet yang
dimasukan disini adalah data alphabet dengan kode ASCII 0 – 255
sehingga pada proses encoding selanjutnya semua karakter input ASCII
dapat ditemukan dalam dictionary atau kamus data. Berikut adalah
algoritma singkat kompresi LZW (Nelson:1995)
Sebagai contoh berikut adalah penggunaan algoritma LZW untuk
melakukan kompresi data dengan inputan huruf “ WED WE WEE WEB
WET”
Tabel 2.1 : Contoh 1 Kompresi LZW
N Character Code New Code &
34. 13
o Input Output Value
1 " W" "" 256 = " W"
2 "E" "W" 257 = "WE"
3 "D" "E" 258 = "ED"
4 "" "D" 259 = "D "
5 "WE" "256" 260 = "WE"
6 "" "E" 261 = "E"
7 "WEE" "260" 262 = "WEE"
8 " W" "261" 263 = "E W"
9 "EB" "257" 264 = "WEB"
10 "" "B" 265 = "B"
11 "WET" "260" 266 = "WET"
12 <EOF> "T"
Dari proses kompresi teks diatas, diperoleh output atau hasil
berupa urutan “WED<256>E<260><261><257>B<260>T”, dari hasil
output ini maka proses dekompresi dengan menggunakan algoritma LZW
dapat dijelaskan dengan menggunakan tabel berikut.
Tabel 2.2 : Contoh 1 Dekompresi LZW
Input/ New
Code
Old
Code
String
Output
Chara
cter
New Table
Entry
"" "" ""
"W" "" "W" "W" 256 = "W"
"E" "W" "E" "E" 257 = "WE"
"D" "E" "D" "D" 258 = "ED"
256 "D" " W" "" 259 = "D"
"E" 256 "E" "E" 260 = "WE"
260 "E" "WE" "" 261 = "E"
261 260 "E" "E" 262 = "WEE"
35. 14
257 261 "WE" "W" 263 = "E W"
"B" 257 "B" "B" 264 = "WEB"
260 "B" "WE" "" 265 = "B"
"T" 260 "T" "T"
266 = "
WET"
Berikut adalah contoh kedua untuk proses kompresi dan
dekompresi metode LZW yang diambil dari Jurnal INTEGRAL,Vol 9,2004
Contoh string “ABBABABAC” akan dilakukan proses kompresi
dengan menggunakan metode LZW, langkah awal adalah dengan
melakukan set dictionary dengan menggunakan karakter-karakter yang ada
pada teks inputan yaitu karakter “A”,”B”, dan karakter “C”, yang masing-
masing menempati indek 1,2, dan 3.Tahapan proses kompresi ini dapat
digambarkan dengan menggunakan tabel berikut
Tabel 2.3 – Contoh 2 Kompresi LZW
Langkah Posisi Karakter Dictionary Output
1 1 A [4]AB [1]
2 2 B [5]BB [2]
3 3 B [6]BA [2]
4 4 A [7]ABA [4]
5 6 A [8]ABAC [7]
6 9 C ……. [3]
Proses ini akan menghasilkan frase output berupa indek karakter
yaitu [1],[2],[2],[4],[7],[3] atau “ABBABABAC”. Sedangkan untuk proses
dekompresi dapat digambarkan dengan menggunakan tabel dibawah ini.
Tabel 2.4 : Contoh 2 Dekompresi LZW
Langkah Kode Output Dictionary
1 [1] A …..
2 [2] B [4]AB
3 [2] B [5]BB
4 [4] AB [6]BA
5 [7] ABA [7]ABA
6 [3] C [8]ABAC
36. 15
2.4. Metode 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.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 transmisikan.
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.
Untuk lebih memahami bagaimana proses kompresi dan
dekompresi dengan menggunakan algoritma Huffman, berikut diberikan
sebuah contoh. Misalkan kita memiliki sebuah string atau kata “BILL
BEATS BEN”, untuk mempermudah prosesnya maka kita abaikan tanda
spasi dalam kata tersebut, maka dari kata tersebut kita dapatkan frekuensi
kemunculan tiap huruf pada kata contoh tersebut adalah
Tabel 2.5 : Contoh Karakter Dan Frekuensinya
B I L E A T S N
3 1 2 2 1 1 1 1
Dari hasil tersebut maka akan kita urutkan berdasarkan frekuensi
terbesar ke frekuensi terkecil, sehinggga didapatkan hasil seperti pada tabel
dibawah.
37. 16
Tabel 2.6 : Pengurutan Karakter Berdasarkan Frekuensinya
B L E I A T S N
3 2 2 1 1 1 1 1
Langkah Selanjutnya adalah pembentukan pohon biner, pohon
biner yang dipilih adalah pohon biner dengan pendekatan 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.
Pohon dapat dibentuk secara berurut dari besar ke kecil (
descending ) atau dari kecil ke besar ( ascending ) berdasarkan
frekuensinya, dari contoh diatas pohon secara descending dipilih untuk
38. 17
dibuatkan pohonnya untuk lebih memudahkan menampilkan frekuensi
terkecil pada sisi sebelah kanan,
Gambar 2.3 – Proses Kompresi Huffman
Dari langkah langkah tersebut, langkah selanjutnya adalah
pemberian prefix untuk setiap cabang pohon, hal ini dilakukan dengan cara
menambahkan angka 0 pada sisi kiri cabang, dan angka 1 pada sisi kanan
cabang, sehingga dihasilkan pohon yang sudah berisi prefix, pohon yang
sudah berisi atau sudah dibebani prefix ini kemudian disebut sebagai pohon
Huffman , atau Huffman Tree.
39. 18
Gambar 2.4 : Pohon Huffman
Berdasarkan pada langkah-langkah dan proses yang telah
dijelaskan diatas maka secara singkat proses kompresi data atau encoding
dengan metode Huffman dapat dituliskan sebagai berikut.
Gambar 2.5 – Pseudo Code Kompresi Huffman
Sedangkan pada proses dekompresi, hal yang perlu dilakukan
adalah membaca pohon Huffman dari puncak ke cabang-cabangnya,
misalkan saja dari contoh diatas kita diminta untuk melakukan proses
40. 19
decoding atau decompress data 00000100001 maka langkah-langkah yang
untuk melakukan proses decoding sebagian data adalah sebagai berikut,
Gambar 2.6 – Proses Dekompresi Huffman
Dari gambar sebagian proses diatas didapatkan bahwa, urutan data
yang diminta setelah dilakukan proses decoding atau dekompres menjadi
urutan data S,E, dan N.
2.5. File Teks
File teks adalah file penganti format flatfile yang digunakan
sebagai penyimpanan data teks, dalam kenyataannya, format teks dapat
direpresentasikan dalam berbagai macam format, diantaranya adalah
41. 20
format data dalam ASCII, format MIME ( ), UTF-8, dan dengan format
.TXT. ASCII adalah format standard yang hanya memperbolehkan isi file
teks dengan format karakter dengan kode 0-255, atau ASCII only, format
ini dapat digunakan untuk data file teks dalam UNIX, Machintosh,
Microsoft Windows, DOS, dan system lainnya.
(http://en.wikipedia.org/wiki/Text_file).
Sedangkan format UTF-8 adalah format yang hampir sama
dengan format ASCII hanya saja dapat berisikan karakter lain selain
karakter Inggris. Sedangkan MIME (Multipurpose Internet Mail
Extensions) adalah sebuah format yang digunakan dalam teknik mailing,
MIME untuk file teks biasanya ditandai dengan type “teks/plain” MIME
mensupport format ASCII dan selain ASCII.
Format .TXT adalah format standar untuk penyimpanan data teks,
dalam system operasi Windows, format ini menggunakan tambahan dua
karakter untuk menunjukan tanda pergantian baris atau disebut CR dan LF
yang masing-masing mempunyai kode ASCII 13 dan 10.
2.6. ASCII
Kode Standar Amerika untuk Pertukaran Informasi atau ASCII
(American Standard Code for Information Interchange) merupakan suatu
standar internasional dalam kode huruf dan simbol seperti Hex dan
Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk
karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain
untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi
bilangan biner sebanyak 7 bit. Namun, ASCII disimpan sebagai sandi 8 bit
dengan menambakan satu angka 0 sebagai significant bit paling tinggi.
Bit tambahan ini sering digunakan untuk uji prioritas. Karakter
control pada ASCII dibedakan menjadi 5 kelompok sesuai dengan
penggunaan yaitu berturut-turut meliputi logical communication, Device
control, Information separator, Code extention, dan physical
communication. Code ASCII ini banyak dijumpai pada papan ketik
(keyboard) komputer atau peralatan-peralatan digital.
Jumlah kode ASCII adalah 256 kode. Kode ASCII 0..127
merupakan kode ASCII untuk manipulasi teks; sedangkan kode ASCII
128..255 merupakan kode ASCII untuk manipulasi grafik. Kode ASCII
sendiri dapat dikelompokkan lagi kedalam beberapa bagian:
Kode yang tidak terlihat simbolnya seperti Kode 10(Line Feed),
13(Carriage Return), 8(Tab), 32(Space).Kode yang terlihat simbolnya
seperti abjad (A..Z), numerik (0..9), karakter khusus
42. 21
(~!@#$%^&*()_+?:”{}). Kode yang tidak ada di keyboard namun dapat
ditampilkan. Kode ini umumnya untuk kode-kode grafik.
Kode ASCII ini sangat berguna untuk menampilkan karakter-
karakter khusus yang tidak terdapat pada tombol keyboard. Untuk
menunjukan kode-kode ASCII secara lengkap berikut ini adalah tabel kode
ASCII beserta karakter yang diwakilinya yang diambil dari
(http://www.ascii-code.com/).
Tabel 2.7 – Karakter ASCII Bagian 1
D
E
C
O
C
T
H
E
X
BI
N
Sym
bol
Descripti
on
2-
De
c
2-
Oc
t
HE
X2
BI
N2
SYMB
OL2
Descriptio
n 2
0 0 0 0 NUL Null char 16 20 10 100
00
DLE Data Line
Escape
1 1 1 1 SOH Start of
Heading
17 21 11 100
01
DC1 Device
Control 1
(oft. XON)
2 2 2 10 STX Start of
Text
18 22 12 100
10
DC2 Device
Control 2
3 3 3 11 ETX End of
Text
19 23 13 100
11
DC3 Device
Control 3
(oft.
XOFF)
4 4 4 10
0
EOT End of
Transmiss
ion
20 24 14 101
00
DC4 Device
Control 4
5 5 5 10
1
ENQ Enquiry 21 25 15 101
01
NAK Negative
Acknowled
gement
6 6 6 11
0
ACK Acknowle
dgment
22 26 16 101
10
SYN Synchrono
us Idle
7 7 7 11
1
BEL Bell 23 27 17 101
11
ETB End of
Transmit
Block
8 10 8 10
00
BS Back
Space
24 30 18 110
00
CAN Cancel
9 11 9 10
01
HT Horizonta
l Tab
25 31 19 110
01
EM End of
Medium
43. 22
10 12 0A 10
10
LF Line Feed 26 32 1A 110
10
SUB Substitute
11 13 0B 10
11
VT Vertical
Tab
27 33 1B 110
11
ESC Escape
12 14 0C 11
00
FF Form
Feed
28 34 1C 111
00
FS File
Separator
13 15 0D 11
01
CR Carriage
Return
29 35 1D 111
01
GS Group
Separator
14 16 0E 11
10
SO Shift Out
/ X-On
30 36 1E 111
10
RS Record
Separator
15 17 0F 11
11
SI Shift In /
X-Off
31 37 1F 111
11
US Unit
Separator
Tabel 2.8 – Karakter ASCII Bagian 2
Decimal Hex Binary Value Decimal Hex Binary Value
032 020 00100000 (space) 080 050 01010000 P
033 021 00100001 ! 081 051 01010001 Q
034 022 00100010 " 082 052 01010010 R
035 023 00100011 # 083 053 01010011 S
036 024 00100100 $ 084 054 01010100 T
037 025 00100101 % 085 055 01010101 U
038 026 00100110 & 086 056 01010110 V
039 027 00100111 ' 087 057 01010111 W
040 028 00101000 ( 088 058 01011000 X
041 029 00101001 ) 089 059 01011001 Y
042 02A 00101010 * 090 05A 01011010 Z
043 02B 00101011 + 091 05B 01011011 [
044 02C 00101100 , 092 05C 01011100
045 02D 00101101 - 093 05D 01011101 ]
046 02E 00101110 . 094 05E 01011110 ^
047 02F 00101111 / 095 05F 01011111 _
048 030 00110000 0 096 060 01100000 `
049 031 00110001 1 097 061 01100001 a
050 032 00110010 2 098 062 01100010 b
051 033 00110011 3 099 063 01100011 c
44. 23
052 034 00110100 4 100 064 01100100 d
053 035 00110101 5 101 065 01100101 e
054 036 00110110 6 102 066 01100110 f
055 037 00110111 7 103 067 01100111 g
056 038 00111000 8 104 068 01101000 h
057 039 00111001 9 105 069 01101001 i
058 03A 00111010 : 106 06A 01101010 j
059 03B 00111011 ; 107 06B 01101011 k
060 03C 00111100 < 108 06C 01101100 l
061 03D 00111101 = 109 06D 01101101 m
062 03E 00111110 > 110 06E 01101110 n
063 03F 00111111 ? 111 06F 01101111 o
064 040 01000000 @ 112 070 01110000 p
065 041 01000001 A 113 071 01110001 q
066 042 01000010 B 114 072 01110010 r
067 043 01000011 C 115 073 01110011 s
068 044 01000100 D 116 074 01110100 t
069 045 01000101 E 117 075 01110101 u
070 046 01000110 F 118 076 01110110 v
071 047 01000111 G 119 077 01110111 w
072 048 01001000 H 120 078 01111000 x
073 049 01001001 I 121 079 01111001 y
074 04A 01001010 J 122 07A 01111010 z
075 04B 01001011 K 123 07B 01111011 {
076 04C 01001100 L 124 07C 01111100 |
077 04D 01001101 M 125 07D 01111101 }
078 04E 01001110 N 126 07E 01111110 ~
079 04F 01001111 O 127 07F 01111111 DEL
128 80 10000000 € 190 BE 10111110 ¾
129 81 10000001 191 BF 10111111 ¿
130 82 10000010 ‚ 192 C0 11000000 À
131 83 10000011 ƒ 193 C1 11000001 Á
132 84 10000100 „ 194 C2 11000010 Â
133 85 10000101 … 195 C3 11000011 Ã
47. 26
B. Rasio Kompresi
Rasio Kompresi adalah perbandingan besar file setelah
dikompresi dengan file sebelum dikompresi, dimana rasio yang
baik dibuktikan dengan semakin kecil nilai rasionya, artinya
adalah ukuran file baru memiliki besar file yang semakin kecil
dibandingan degnan file aslinya. Secara matematis, rasio
kompresi dapat dituliskan dengan
Rasio Kompresi =
%
Misalkan saja kita mempunyai suatu file dengan ukuran
asli 1.075.226.237 sedangkan setelah dilakukan proses kompresi
dengan menggunakan program winrar maka didapatkan suatu file
baru yang mempunyai besar 697.215.367 maka dengan
menggunakan rumus di atas akan didapatkan rasio kompresi
sebesar 64% dari data asli, artinya, file baru tersebut hanya
mempunyai ukuran 0.64 dari ukuran file asli, atau dapat
menghemat sekitar 36% dari data asli.
48. 27
Gambar 2.7 : Hasil Rasio Kompresi Suatu File Dengan
WINRAR.
C. Integritas Data
Integritas data diukur dengan menggunakan salah satu
metode error detection dengan nama Cyclic Redudancy Check (
CRC ).CRC merupakan suatu algoritma yang digunakan untuk
mendeteksi kesalahan pada data digital tetapi tidak digunakan
untuk memperbaiki kesalahan tersebut. Teknik CRC juga
dipercaya baik untuk mendeteksi kesalahan pada data digital dan
cukup mudah diimplementasikan pada umumnya CRC berupa
CRC8, CRC16, dan yang paling umum digunakan adalah
CRC32.
CRC berdasarkan pada teori bilangan polinomial yang
berada pada GF2 ( Galois Field With 2 Elemens), atau bilangan
polinomial yang hanya boleh berisi satu variabel tunggal X yang
49. 28
hanya boleh berisi koefisien 0 atau 1, berikut adalah contoh CRC
yang direpresentasikan dengan menggunakan bilangan
polinomial GF2. Misal pesan 11001001 dapat direpresentasikan
dengan menggunakan bilangan polinomial GF2 + + +
1
Dalam prakteknya penentuan nilai polinomial ini juga
menemui banyak kendala, banyak standar yang diajukan dan
masing-masing berbeda satu dengan yang lainnya, seperti
misalnya standar untuk penentuan panjang polinomial, panjang
bit yang paling sering digunakan adalah :
9bit ( CRC8)
17bit (CRC16)
33bit (CRC32)
65bit (CRC64)
Sedangkan untuk penentuan nilai polinomialnya
beberapa standar yang sering dipakai diantaranya adalah :
Tabel 2.9 – Polinomial Standard
Dasar dari perhitungan CRC adalah operasi matematika
dengan mengunakan modulus 2 atau operasi Exclusive OR,
keduanya memberikan hasil yang sama, untuk binary operasi
exclusive or dapat dituliskan sebagai berikut
50. 29
Gambar 2.8 – Operasi Exclusive Or
Sedangkan contoh perhitungan untuk CRC dapat
dijelaskan sebagai berikut
Gambar 2.9 – Contoh Perhitungan Remainder ( CRC )
52. BAB 3
PERANCANGAN SISTEM
3.1. Instrumen penelitian
Instrumen penelitian adalah berbagai macam peralatan yang
diperlukan dalam perancangan sistem atau penelitian ini, instrumen ini
dapat dibedakan menjadi 2 yaitu instrumen yang berupa hardware dan
instrumen atau peralatan yang berupa software, hardware itu merupakan
tempat dimana sistem akan dijalankan dan tempat membuat sistem atau
penelitian, dan software adalah berbagai macam perangkat lunak yang
digunakan untuk membantu pembuatan sistem ini.
3.1.1. Hardware
Hardware yang dimaksud adalah perangkat keras atau
sistem komputer yang digunakan untuk pembuatan atau
pengujian penelitian, hal ini tentunya akan sangat diperlukan
untuk dituliskan, karena dengan komponen sistem hardware yang
berbeda maka hasil yang didapatkan juga akan berbeda, oleh
karena itu perlu untuk dicantumkan hardware yang digunakan
dalam penelitian. Berikut adalah daftar hardware yang digunakan
dalam penelitian ini,
Processor : Intel Core I3 @ 2ghz
RAM : Kingston DDR3 2GB
VGA : Intel Graphic
HDD : Seagate Barracuda ST3500418AS
ATA Device
3.1.2. Software
Komponen software yang digunakan dalam penelitian ini
meliputi bahasa pemprograman yang digunakan dan sistem
operasi dari hardware yang digunakan, berikut adalah daftar
software yang digunakan dalam penelitian ini,
Sistem Operasi : Windows 7 SP1 32bit
53. 32
Developer Tool : Visual Basic 6.0
3.2. Rancangan Sistem
Sistem analisis perbandingan kompresi file teks dengan metode
Huffman dan metode LZW ini mempunyai beberapa fungsi khusus yang
digunakan dalam sistem, secara singkat sistem meminta user untuk
menentukan file data uji, yang berupa teks yang mempunyai ukuran file
tidak lebih besar dari kriteria yang telah ditetapkan, jadi pada proses
pertama terjadi pengecekan file inputan apakah sesuai dengan format yang
telah ditentukan yaitu format .txt dan apakah sesuai dengan kriteria batasan
file yaitu 1MB, setelah tahapan file input ditentukan maka akan
berlangsung ke tahapan yang selanjutnya yaitu tahapan proses kompresi
yang melibatkan beberapa fungsi yang tertera dibawah, fungsi-fungsi ini
dapat dipanggil user dengan menggunakan tombol, jadi fungsi utama
adalah melakukan proses kompresi dengan metode Huffman, melakukan
kompresi dengan metode LZW, melakukan proses perbandigan kompresi
dengan metode Huffman dan metode LZW, dan selanjutnya fungsi-fungsi
untuk melakukan proses dekompesi.
Hasil output yang ada adalah file yang telah dilakukan proses
kompresi dengan metode Huffman atau dengan Metode LZW, dan apabila
user memilih proses untuk melakukan perbandingan metode kompresi
Huffman dan LZW maka hasil output adalah data-data terkait tentang lama
proses kompresi setiap metode, dan besar ratio kompresi setiap metode.
Sedangkan untuk proses dekompresi hasil output adalah data awal, sebelum
dilakukan proses kompresi dengan metode Huffman atau metode
LZW.Dari semua deskripsi uraian sistem maka terdapat beberapa prosedur
atau fungsi yang perlu digunakan dan dijelaskan lebih lanjut diantaranya
adalah beberapa fungsi berikut,
3.2.1. Fungsi Pengecekan Data Input
Fungsi ini digunakan untuk melakukan proses
pengecekan data inputan apakah sesuai dengan kriteria atau tidak,
proses ini perlu dibuatkan sebuah fungsi untuk mempermudah
proses pemanggilan kembali proses pengecekan data input ini,
secara umum fungsi ini bertugas untuk melakukan pengecekan
54. 33
data input apakah data input sesuai dengan kriteria data batasan
apa tidak, yaitu file teks yang mempunyai besar file tidak lebih
dari 1 MB dan hanya mengandung karakter-karakter ASCII
didalamnya, jika file inputan tidak sesuai dengan kriteria batasan
maka proses lebih lanjut data inputan tidak dapat dilakukan.
Selain itu fungsi ini juga bertugas untuk menentukan data inputan
apakah data sudah terkompres dengan metode LZW atau metode
Huffman, Berikut adalah pseudocode dari fungsi ini.
PEMBACAAN DATA INPUT
1 INPUT file teks dengan format ASCII
2 extensi <-- file get.extension()
3 besar <-- file.input getsize()
4 IF extensi = .huff OR extensi = .LZW THEN
5 lolos
6 ELSE
7 IF besar <= 1MB and FILE ASCII THEN
8 lolos
9 ELSE
10 tidak lolos
11 END IF
12 END IF
3.2.2. Fungsi Kompresi LZW
Fungsi ini diperlukan untuk melakukan proses kompresi
file teks dengan menggunakan metode LZW, fungsi ini
memerlukan inputan berupa file teks yang telah dipilih oleh user
dan telah memenuhi kriteria batasan yaitu file teks dengan ukuran
tidak lebih dari 1MB dan file ASCII, proses ini memiliki
pseudocode sebagai berikut
LZW encoding / kompresi dengan LZW
1 kata / word <-- ""
2 WHILE NOT EOF DO
3 x <-- baca karakter selanjunya ()
4 IF word + x ada dalam kamus THEN
55. 34
5 word <-- word + x
6 ELSE
7 tulis indek word + x ke kamus
8 tambahkan word + x ke kamus
9 word <-- x
10 END IF
11 END WHILE
12
output merupakan kamus yang berindek, dan deretan
indek karakter output
Alur kerja fungsi ini dijelaskan sebagai berikut, file yang
akan dilakukan proses kompresi adalah file yang telah lulus
fungsi pengecekan yang dilakukan pertama kali ketika user
memilih file inputan, setelah itu fungsi ini akan menjalankan
algoritma kompresi LZW, yaitu dengan dimulai dengan
pembentukan dictionary untuk melakukan proses kompresi,
dictionary dibuat dengan melakukan input seluruh karakter ASCII
dan kemudian akan bertambah seiring dengan pembacaan data,
jadi isi bit awal dictionary adalah seluruh jumlah karakter ASCII
yaitu sebanyak 0-255 karakter. Proses ini akan berlanjut dengan
pembacaan isi file, apabila karakter pada isi file yang dibaca ada
pada dictionary maka data atau karakter itu akan digantikan
dengan symbol penganti pada dictionary, sedangkan apabila
karakter atau karakter baru tidak ada pada dictionary maka index
atau symbol baru dibentuk pada dictionary yang berisikan data
atau karakter yang tidak ada pada dictionary tersebut, proses akan
berlangsung secara terus menerus hingga akhir file atau EOF (
End Of File ), jadi pada dasarnya semua karakter yang ada pada
file yang akan dilakukan proses kompresi akan digantikan dengan
index yang menunjuk kepada dictionary.
3.2.3. Fungsi Dekompresi LZW
Proses diawali dengan pengecekan data input apakah
data input ini sesuai dengan kriteria file yang telah dilakukan
proses kompresi dengan metode LZW, dan semua tugas
pengecekan ini dilakukan oleh fungsi pengecekan data input,
56. 35
setelah file lolos pengecekan maka fungsi dekompresi ini dapat
dijalankan pada file inputan tersebut
Secara garis besar proses dekompresi dengan metode
LZW ini dimulai dengan pembacaan dictionary, setelah semua
data dictionary dibaca, maka proses akan berlanjut ke pembacaan
isi data file, karena isi file merupakan sebuah deretan indeks maka
pembacaan index dilakukan, selanjutnya proses tinggal menganti
seluruh indek ini dengan isi pada dictionary yang ditunjukan oleh
index tersebut, misalnya pada data inputan terbaca angka 600 ,
maka program akan mengantinya dengan huruf atau kata
“WEIGH”, proses akan berlanjut hingga EOF ( end of file ) , dan
kemudian dilanjutkan dengan penulisan file output, dan
dilanjutkan dengan proses pengecekan data output apakah sama
dengan data sebelum dilakukan proses kompresi. Berikut adalah
psuedocode untuk proses dekompresi dengan menggunakan
metode LZW
LZW decoding / Dekompresi
baca sebuah token x dari file terkompresi
lihat di kamus apakah ada elemen x
output - elemen x
1 word <-- element
2 WHILE NOT EOF DO
3 baca x
4 lihat di kamus untuk elemen x
5 IF tidak ada elemen x dalam kamus THEN
6 elemen <-- word + karakter pertama word
7 END IF
8 output elemen
9
tambahkan word + karakter pertama dari elemen dari
kamus
10 word <-- element
11 END WHILE
57. 36
3.2.4. Fungsi Kompresi Huffman
Proses dimulai dengna pengecekan data input apakah
telah sesuai dengan kriteria batasan yang telah ditetapkan, setelah
proses pengecekan berhasil dan memenuhi kriteria maka barulah
proses ini / fungsi ini dapat dilakukan.
Fungsi kompresi dengan menggunakan metode Huffman
dimulai dengan pembacaan data inputan, dan kemudian
dilanjutkan dengan pembentukan statistik frekuensi kemunculan
tiap karakter dalam data inputan, setelah frekuensi kemunculan
karakter pada data inputan selesai dihitung, maka proses berlanjut
dengan melakukan sorting descending atau dari frekuensi
terbanyak ke frekuensi terendah, dengan tujuan untuk selalu
menempatkan karakter dengan frekuensi terendah disebelah
kanan, untuk memudahkan proses pembuatan pohon biner.
Proses berlanjut dengan pembuatan pohon biner dimana
pohon yang akan dibuat dimulai dengan memasukan 2 karakter
dengan frekuensi terendah, dan kemudian digabung menjadi suatu
indek karakter baru yang mempunyai frekuensi atau berat
sebanding dengan frekuensi karakter inputan 1 ditambah dengan
frekuensi karakter inputan 2, proses ini diakhiri dengan
penambahan karakter dengan indek baru dan frekuensi baru ini
kedalam urutan karakter sebelumnya, dan penghapusan dua
karakter inputan yang telah digabung menjadi karakter dengan
indek baru tersebut. Proses akan berulang dengan pengurutan
kembali frekuensi, dan pengabungan karakter, karena setiap
proses akan mengurangi satu list karakter, maka proses akan
berakhir hingga menyisakan satu karakter tunggal yaitu gabungan
karakter dengan karakter dengan frekuensi terbanyak.
Setelah pembuatan pohon selesai maka proses akan
berlanjut dengan penambahan berat pada masing-masing cabang
pohon, dimana untuk metode Huffman ini kita menggunakan
angka 0 untuk mengindikasikan cabang pohon sebelah kiri, dan
menggunakan angka 1 untuk mengindikasikan cabang pohon
sebelah kanan.
Pada prinsipnya kompresi dengan menggunakan metode
Huffman berusaha untuk menganti indek untuk karakter dengan
frekuensi terbanyak menjadi berjumlah bit atau sependek
mungkin, sehingga misalnya karakter dengan kode biner
58. 37
01010101 mempunyai frekuensi kemunculan terbanyak maka
karakter tersebut haruslah mempunyai indek bit yang paling
pendek, misalnya saja 0, sehingga penulisan 01010101 dapat
disingkat dengan hanya menuliskan angka 0 saja.
Berikut adalah proses pseudecode dari kompresi dengan
menggunakan metode Huffman, berserta inputan yang harus diisi
dan outputnya, sedangkan pada sistem yang akan dibuat input
merupakan file inputan user yang telah lolos cek inputan dan
memenuhi kriteria, sehingga dapat dilanjutkan dengan pembuatan
list data yang telah diurutkan frekuensi kemunculan setiap
karakternya.
Huffman Encoding / Kompresi Huffman
Input : list data yang telah diurutkan dengan kode (
t1,t2 …..,tn) untuk karakter alphabet ( a1,
a2,…….,an) dan dengan frekuensi ( f1,f2,……,fn)
Output : Kode Huffman dengan n karakter
1
buat list tree dengan ketentuan ( t1,t2,…..,tn) dan
dengan frekuensi ( f1,f2,…….,fn)
2 FOR k = I ; k < n, k = k + 1 DO
3
ambil dua pohon t1 dan t2, dengan frekuensi
terkecil ( w1 <= w2 )
4
t ← gabung (t1,t2) dengan frekuensi (w1+w2),
WHERE cabang kiri (t,t1) ← t1 dan cabang kanan (t,t2)
← t2 , dengan berat angka Huffman/edge (t,t1) ← 0 dan
(t,t2) ← 1
5 END FOR
6
keluaran merupakan sekumpulan karakter yang dibaca
dari puncak ke akar sebagai pengganti alphabet
inputan
3.2.5. Fungsi Dekompresi Huffman
Fungsi dekompresi Huffman berisikan algoritma
Huffman untuk melakukan proses dekompresi file yang
sebelumnya telah dilakukan proses kompresi dengan
menggunakan metode Huffman. Fungsi algoritma Huffman ini
dimulai dengan pembacaan pohon Huffman sebagai data untuk
melakukan proses dekompresi, setelah pohon Huffman terbaca
59. 38
maka proses dekompresi dapat dilakukan, proses dekompresi
dilakukan dengan membaca nilai-nilai file yang terkompresi.
Misalkan file terkompres memiliki angka atau nilai
0101000101001 , maka proses akan membaca file tersebut
dimulai dari angka pertama menyusuri pohon Huffman hingga
didapatkan cabang Huffman paling akhir untuk kemudian diambil
karakter apa yang berada pada cabang itu, jika karakter pertama
berhasil diambil atau diterjemahkan maka proses akan berulang
kembali ke puncak pohon dan membaca bit selanjutnya untuk
mendapatkan atau menterjemahkan karakter selanjutnya, proses
akan lebih mudah dijelaskan dengan menggunakan psuedocode
untuk algoritma dekompresi algoritma Huffman hasil akhir adalah
string atau file yang sudah tidak dikompresi dengan metode
Huffman.
Huffman Decoding / Dekompresi
Input : Pohon Huffman dan deretan angka 1-0 sebagai data
yang terkompres dengan metode Huffman
Output : string yang terdekompres
1 buat root atau akar P ← akar / root
2 WHILE NOT EOF DO
3 baca bit selanjutnya dengan kode b
4 IF b = 0 THEN
5 p ← left.child ( cabang kiri )
6 ELSE
7 p ← right.child ( cabang kanan )
8 END IF
9 IF p akhir cabang THEN
10 keluarkan symbol
11 p ← root
12 END IF
13 END WHILE
3.2.6. Fungsi Penulisan Data Output
Data output merupakan keluaran setiap proses
dekompresi dilakukan, karena ada dua metode kompresi yang
digunakan maka kita menggunakan 2 macam tipe ektensi file
yang akan digunakan, yaitu untuk file yang diproses dengan
menggunakan metode LZW akan menggunakan file tipe .LZW,
sedangkan untuk proses yang menggunakan metode Huffman
60. 39
untuk proses kompresinya akan menggunakan file dengan
ekstensi .huff sebagai filenya, isi dari kedua file adalah sama yaitu
file yang karakter-karekternya sudah dilakukan proses kompresi.
3.2.7. Fungsi Pengujian Ratio Kompresi
Fungsi ini diperlukan untuk melakukan perhitungan ratio
kompresi, yaitu ratio berapa besar file hasil kompresi dengan
besar file aslinya, hal inin digunakan untuk menghitung tingkat
keefektifan metode dan digunakan untuk membandingkan dua
metode yang digunakan untuk melakukan proses kompresi
terhadap file yang sama, fungsi ini memerlukan inputan berupa
file input yang akan dicari tahu berapa besar filenya dan file
output setelah dilakukan kompresi, ratio dihitung dengan
menggunakan rumus perhitungan ratio kompresi, yaitu besar file
setelah kompresi dibagi besar file sebelum dilakukan kompresi
setelah itu hasilnya dikalikan dengan 100%, pada umumnya
semakin kecil ratio file hasil kompresi terhadap besar file awal
adalah semakin baik, berikut adalah psuedocode untuk fungsi ini.
Perhitungan RATIO File
1 sizeawal <-- file.get.size(data input)
2 sizeakhir <-- file.get.size (data output kompresi)
3 RATIO <-- (sizeakhir/sizeawal)*100%)
4 output RATIO
3.2.8. Fungsi Pengujian Waktu Kompresi
Fungsi pengujian waktu kompresi digunakan untuk
menghitung berapa lama waktu yang diperlukan oleh suatu
metode kompresi untuk melakukan proses kompresi, hal ini
digunakan untuk mengetahui tingkat kehandalan setiap metode
kompresi, waktu dicatat ketika proses atau tombol kompresi
ditekan dan akan berakhir setelah proses atau file output keluar.
61. 40
3.2.9. Fungsi Pengujian Integritas Data ( CRC32 )
Fungsi pengujian dengan menggunakan CRC32 ini
dilakukan dengan memasukan data input yang berupa file lengkap
dengan tempat lokasi file inputan. Secara pseudocode algorithma
dari proses perhitungan CRC32 dapat dituliskan secara berikut.
1 Crc_value = 0FFFFFFFFh
2 Loop (for all the bytes in input)
3
Position = (byte_from_input XOR Crc_value)
AND 0FFh
4 Table_value = Crc32_table[position]
5 Crc_value = Crc_value >> 8
6 Crc_value = Crc_Value XOR table_value
7 Crc_value = Crc_value XOR 0FFFFFFFFh
3.3. Flowchart sistem
Flowchart sistem diawali dengan fungsi pengecekan file inputan,
file inputan dapat berupa file dengan extensi .txt atau teks file dengan
format ANSI / ASCII only, dan dapat berupa file dengan extensi .LZW dan
.huff, apabila file dengan extensi .txt dimasukan atau dipilih sebagai file
inputan maka proses akan melakukan pengecekan apakah file sesuai
dengan kriteria inputan yaitu apakah file memiliki besar kurang dari 1MB
dan apakah file memiliki format ASCII atau lainnya, apabila file memenuhi
kriteria maka proses dapat dilanjutkan, apabila tidak file inputan tidak bisa
diproses dan sistem akan meminta file inputan kembali.
62. 41
Gambar 3.1 : Flowchart Pengecekan File Input
Untuk file dengan kriteria .huff dan .LZW maka proses tidak
melakukan proses pengecekan apakah data kurang dari satu MB dan
apakah data inputan hanya memiliki format ANSI/ASCII, tetapi file
inputan langsung diterima dan siap ditulis informasi file seperti besar file,
lokasi file, nama file, tipe file, dan hash file atau checksum file.
63. 42
Gambar 3.2 : Flowchart Kompresi LZW
Pada proses kompresi LZW proses berjalan dimulai dengan
memasukan atau pemilihan file inputan, dimana file inputan ini harus
memiliki kriteria , file dengan extensi .txt , tidak lebih besar dari satu MB
dan harus memiliki format ASCII, proses pengecekan itu dilakukan oleh
fungsi pengecekan file inputan, kemudian dilanjutkan dengan proses
64. 43
pembacaan isi data dari file inputan, kemudian dilanjutkan dengan kompres
dengan metode LZW dan diakhiri dengan penulisan file output.
Gambar 3.3 – Flowchart Subproses Kompresi LZW
Pada subproses kompresi LZW ini proses dimulai dengan
pembacaan data inputan dan dilanjutkan konversi file inputan ke array
untuk diproses lebih lanjut, langkah selanjutnya adalah pembuatan kamus
atau dictionary yang akan diinialisasikan, kamus ini digunakan untuk
melakukan penyimpanan data apabila ada karakter baru atau susunan
karakter baru yang ditemukan dalam proses kompresi, proses berlanjut
dengan pembacaan karakter awal dan satu karakter setelah karakter awal,
apabila dua susunan karakter ini ada dalam kamus, maka hanya karakter
65. 44
awallah yang akan dituliskan sebagai output, sedangkan apabila susunan
dua karakter tersebut tidak terdapat dalam kamus maka akan dilanjutkan
dengan penulisan susunan dua karakter tersebut dalam kamus atau
dictionary, proses berlanjut hingga karakter-karakter terakhir dalam file
inputan terbaca, hasil akhir adalah susunan indek karakter yang sudah
terkompres dalam kamus data.
Gambar 3.4 : Flowchart Dekompresi LZW
66. 45
Proses dekompresi data juga memiliki proses yang hampir serupa
dengan proses kompresi file dengan menggunakan metode LZW, proses
dimulai dengan pembacaan file inputan, untuk proses ini file inputan harus
memiliki format .LZW dilanjutkan dengan proses pendeteksian file input
dan dilanjutkan dengan pembacaan data file input, setelah data terbaca baru
kemudian proses dilanjutkan dengan dekompresi file input dengan
menggunakan metode LZW dan diakhiri dengan penulisan file output
Gambar 3.5 – Flowchart Subproses Dekompresi LZW
67. 46
Pada proses dekompresi dengan menggunakan metode LZW
langkah pertama pada saat dekompresi adalah dengan memasukan file
inputan yang kemudian akan diterjemahkan menjadi data asli, proses
dekompresi LZW juga membuat dictionary selama prosesnya, hanya
bedanya dengan proses kompresi adalah bahwa dictionary dibuat tanpa
diinialisasikan terlebih dahulu, proses akan membaca karakter per karakter
apabila karakter pertama adalah X dan karakter pada posisi setelah X
adalah X2 maka proses dekompresi akan mengecek apakah kombinasi X +
X2 ada pada dictionary atau tidak, apabila tidak ada maka tambahkan pada
dictionary jika ada hanya karakter pertamalah yang akan menjadi output,
proses akan berulang hingga karakter terakhir terbaca atau EOF ( End Of
File ).
68. 47
Mulai
Baca Isi Data
Detek File Input
Check File Input ( lolos ? )
Output File
Input File .txt
Selesai
Tidak
Ya
Kompresi Huffman
Gambar 3.6 : Flowchart Kompresi Huffman
Sistem kompresi Huffman memerlukan inputan file berupa file
.txt yang akan proses dengan melakukan pengecekan terlebih dahulu
apakah file merupakan file dengan besar tidak lebih dari satu MB dan
apakah file berformat ASCII, bila proses pengecekan lolos maka proses
akan berlanjut dengan pembacaan data inputan, dan dilanjutkan dengan
proses kompresi Huffman, dan diakhiri dengan penulisan data output atau
data hasil kompresi.
69. 48
Gambar 3.7 – Flowchart Subproses Kompresi Huffman
Pada subproses kompresi Huffman maka proses dimulai dengan
inputan file yang kemudian akan dilakukan proses konversi atau disimpan
dalam format array, dilanjutkan dengan pencarian frekuensi masing-masing
karakter inputan dan kemudian dilakukan proses sorting dan kemudian
dilanjutkan dengan pembuatan binary tree, pohon Huffman adalah binary
tree yang telah dilengkapi berat untuk masing-masing cabangnya, jadi
proses selanjutnya adalah pembuatan pohon Huffman.
70. 49
Setelah pohoh Huffman terbentuk maka proses pengubahan
karakter inputan menjadi kode Huffman dimulai, proses akan berakhir
setelah semua tipe karakter inputan diubah menjadi kode Huffman.
Gambar 3.8 : Flowchart Dekompresi Huffman
Proses dekompresi Huffman juga memerlukan file inputan, yakni
file dengan extensi .huff yang akan dilakukan proses pengecekan data
inputan, dan akan dilanjutkan dengan proses pembacaan data dan
dilanjutkan dengan proses dekompresi data dan diakhiri dengan penulisan
output data atau file hasil dekompresi.
71. 50
Mulai
Input File
EOF???
Baca Bit Selanjutnya
Bit = 0 ??
Inialisasi P
P = Akar
P = left.Child(p) P = Right.child(p)
P = Daun / akhir
Tulis Karakter
Output
P = root
Selesai
Ya
Tidak
Tidak
Ya
Gambar 3.9 – Flowchart Subproses Dekompresi Huffman
Pada subproses dekompresi Huffman maka hal pertama yang
dilakukan adalah membaca data input, dan dilanjutkan dengan inialisasi
akar, yaitu proses untuk menunjuk bahwa posisi berada pada akar dari
pohon, proses dekompresi Huffman ini dilanjutkan dengan membaca setiap
bit karakter hingga daun atau pucuk dari pohon ditemui, yang artinya
adalah itu merupakan satu karakter yang dapat diterjemahkan, sehingga
dapat dituliskan outputnya, apabila satu karakter telah diterjemahkan maka
proses akan berlanjut dengan inialisasi kembali akar untuk mencari
karakter selanjutnya yang dapat diterjemahkan, namun apabila posisi pada
EOF ( End Of File ) maka proses akan berhenti.
72. 51
Gambar 3.10 : Flowchart Perbandingan Kompresi
Pada proses perbandingan metode Huffman dan metode LZW,
proses diawali dengan inputan data .txt yang dilanjutkan dengan proses
pengecekan data input, apabila file memenuhi kriteria maka proses akan
berlanjut dengan melakukan hash file input dengan menggunakan metode
CRC32 untuk mendapatkan checksum dari file input, hal ini digunakan
untuk menentukan apakah metode kompresi bisa mempertahankan
integritas datanya atau tidak, langkah selanjutnya adalah melukan proses
kompresi file dengan menggunakan metode LZW dan dilanjutkan dengan
menentukan informasi file output dari proses kompresi tersebut, proses
dilanjutkan dengan melakukan dekompresi dan diakhiri dengan melakukan
proses hash atau penghitungan nilai CRC32 dari file hasil dekompresi
apakah bernilai sama seperti sebelumdilakukan proses kompresi atau tidak,
proses akan berlanjut dengan menggunakan metode Huffman sebagai
73. 52
metode kedua untuk dilakukan proses serupa, dan diakhiri dengan
penulisan infomasi mengenai ratio, waktu, dan nilai hash yang dihasilkan.
Gambar 3.11 – Flowchart Subproses Perhitungan CRC32
Proses perhitungan CRC32 dimulai dengan pembacaan file
inputan dan kemudian diubah menjadi array yang berisikan data-data
inputan, apabila array kosong atau file inputan kosong maka akan meminta
file inputan baru, atau akan menghasilkan CRC32 kosong, proses berlanjut
dengan melakukan proses XOR dengan bilangan hexadecimal FFFFFFFF
untuk setiap elemen array, dan hasil akhir adalah bilangan hexadecimal
dengan panjang delapan karakter, yang mengidentifikasikan CRC32 dari
file inputan.
74. 53
3.4. Rancangan Antar Muka
Antar muka digunakan untuk memudahkan proses dan interaksi
sistem dengan pengguna, antar muka atau interface ini dirancang dengan
tujuan sistem dapat digunakan dengan baik dan dapat dengan mudah
dimengerti sehingga proses dan maksud dari sistem dapat disampaikan.
Sistem yang akan dirancang akan mempunyai form utama yang
digunakan sebagai interface utama untuk berinteraksi dengan pengguna,
menu-menu yang terdapat pada halaman utama ini antara lain adalah menu
file, metode LZW, metode Huffman, menu perbandingan metode , help
atau bantuan, dan about.
Menu file digunakan untuk keluar dari program, dan dapat
digunakan untuk menampung menu-menu tambahan yang sekiranya perlu
untuk ditambahkan seperti menu open untuk membuka atau memilih file
inputan. Menu metode LZW digunakan untuk menggunakan metode LZW
sebagai metode yang digunakan untuk melakukan proses, menu ini
memiliki sub menu yaitu pemilihan kompresi atau dekompresi
menggunakan metode LZW.
Gambar 3.12 : Rancangan Form Utama
75. 54
Menu metode Huffman digunakan untuk melakukan proses
dengan menggunakan metode Huffman, menu ini mempunyai sub menu
yaitu dekompresi atau kompresi dengan menggunakan metode Huffman,
Menu perbandingan metode digunakan untuk membukan form
yang digunakan untuk membandingkan metode LZW dan metode Huffman
dalam melakukan proses kompresi dan dekompresi terhadap file inputan
yang sama. Menu help atau bantuan digunakan untuk membuka form yang
berisikan informasi cara penggunaan program, form ini diperlukan
sehingga pengguna yang masih bingung dapat dibantu untuk menggunakan
program.
Menu terakhir adalah menu about, menu ini akan membuka
halaman atau form yang berisikan catatan pembuat program. Pada sub
menu metode LZW terdapat dua pilihan yaitu kompresi LZW atau
dekompresi LZW, rancangan antar muka atau interface untuk masing-
masing pilihan sub menu ini adalah seperti gambar 3.9 dibawah ini.
Interface mempunyai tombol yang akan digunakan untuk membuka atau
memilih file inputan yang akan dilakukan proses kompresi file dengan
menggunakan metode LZW, kemudian interface juga berisikan informasi
menggenai file inputan dan informasi mengenai data output seperti ratio
kompresi , dan ratio penghematan, serta waktu proses yang diperlukan.
Gambar 3.13 : Interface Kompresi LZW
76. 55
Pada sub menu dekompresi LZW rancangan antar muka yang
dibuat hampir sama dengan rancangan kompresi LZW, yaitu berisikan
tombol yang digunakan untuk membuka atau memilih file inputan, dan
informasi mengenai besar file inputan, tipe file inputan, dan alamat atau
lokasi file inputan, serta waktu proses yang diperlukan untuk melakukan
proses dekompresi.
Gambar 3.14 : Interface Dekompresi LZW
Menu metode Huffman juga mempunyai sub menu dekompresi
dan kompresi file dengan menggunakan metode Huffman, pada sub menu
kompresi file interface atau antar muka yang ada sama persis dengan yang
menggunakan metode LZW yaitu tombol yang digunakan untuk
menginputkan data dan tombol untuk melakukan proses kompresi file
inputan, antar muka juga memberikan informasi mengenai file inputan dan
mengenai file outputnya.
77. 56
Gambar 3.15 : Interface Kompresi Huffman
Menu dekompresi Huffman juga memiliki tombol untuk
melakukan input data dan tombol untuk melakukan proses dekompresi file
inputan, serta informasi mengenai file output dan inputan.
78. 57
Gambar 3.16 : Interface Dekompresi Huffman
Menu perbandingan metode mempunyai interface yang berisikan
tombol untuk memberikan data inputan, serta informasi mengenai file
inputan, informasi yang diberikan antara lain adalah mengenai besar file
inputan, nama file inputan, hashing atau checksum file inputan, kemudian
tombol untuk melakukan proses perbandingan metode, secara lengkap
interface untuk perbandingan metode Huffman dengan metode LZW ini
dapat dijelaskan dengan gambar 3.12 : Interface perbandingan metode
Huffman dan metode LZW.
80. BAB IV
ANALISIS DAN PEMBAHASAN
Bab ini akan membahas tentang analisis kinerja metode LZW dan
metode Huffman dalam melakukan kompresi file teks, dan pembahasan
tentang sistem yang telah dirancang untuk melakukan analisis.
4.1. Implementasi
Aplikasi diimplementasikan dengan menggunakan
bahasa pemprograman Visual Basic 6.0 dan dengan Sistem Operasi
Windows 7 32bit.
4.2. Implementasi Interface
Interface terbagi menjadi beberapa form yang akan dijelaskan satu
persatu.
A. Form utama
Pada bagian ini akan dijelaskan tentang semua interface
yang ada dalam sistem yang telah dirancang. Dimulai dengan
pembuatan form utama yang digunakan untuk menampung form-
form lainnya, form utama ini berisikan menu dan sub menu untuk
melakukan proses-proses yang lainnya.
Gambar 4.1 – Tampilan Form Utama
Pada menu utama ini terdapat sub menu antara lain
pemilihan menu metode LZW, menu ini mempunyai sub menu
yaitu kompresi LZW dan dekompresi LZW, selain itu terdapat
81. 60
juga menu metode Huffman, yang mempunyai sub menu
kompresi Huffman dan dekompresi Huffman, dan juga terdapat
menu untuk memilih perbandingan metode Huffman dan LZW,
Form bantuan, dan form about.
B. Form Kompresi LZW
Rancangan form kompresi LZW ini sesuai dengan
rancangan pada BAB III, dan diimplentasikan menjadi sesuai
gambar 4.2 – Form kompresi LZW
Gambar 4.2 – Form Kompresi LZW
Pada rancangan form ini terdapat tombol yang open yang
digunakan untuk melakukan inputan data, tombol ini akan
membuka dialog untuk membuka data, sedangkan data bisa
dimasukan adalah data yang hanya mempunyai ekstensi .txt dan
harus mempunyai besar kurang dari 1MB dan harus mempunyai
teks encoding ASCII atau ANSI. Tombol proses digunakan untuk
melakukan proses kompresi, dimana data akan disimpan dalam
folder yang sama dengan file inputan, form juga menampilkan
beberapa informasi mengenai informasi file inputan dan performa
dari proses kompresi, dan yang terkahir adalah tombol keluar
yang digunakan untuk keluar atau menutup form.
82. 61
C. Form Dekompresi LZW
For dekompresi LZW ini digunakan untuk melakukan
proses dekompresi dari file yang telah di proses dengan
menggunakan program ini, tombol open digunakan untuk
melakukan inputan berupa file dengan ekstensi .lzw dan
kemudian tombol dekompres digunakan untuk melakukan proses
dekompres, file output akan diletakan dalam folder yang sama
dengan file inputan.
Gambar 4.3 – Form Dekompresi LZW
Pada form juga terdapat beberapa informasi mengenai
file inputan dan kinerja dari proses dekompresi, beberapa
informasi itu adalah mengenai ukuran input dan ukuran output,
serta waktu yang diperlukan dalam proses kompresi.
D. Form Kompresi Huffman
Form kompresi Huffman digunakan untuk melakukan
proses kompresi dengan menggunakan metode Huffman, pada
form ini terdapat tombol dan beberapa label yang digunakan
untuk memberikan informasi mengenai file inputan dan mengenai
file output, secara keseluruhan form ini hampir sama persis
dengan form kompresi LZW, hanya saja form ini digunakan untuk
mengakses file inputan dengan menggunakan metode Huffman.
Berikut adalah tampilan dari form kompresi Huffman.
83. 62
Gambar 4.4 – Form Kompresi Huffman
E. Form Dekompresi Huffman
Form ini digunakan untuk melakukan proses dekompresi
Huffman, pada form ini juga terdapat beberapa informasi
mengenai file inputan, dan kinerja dari proses dekompresi
terhadap file inputan, file output akan berada dalam satu folder
dengan file inputan. Tombol keluar digunakan untuk menutup
form.
F. Form Perbandingan Metode
Pada form perbandingan metode, digunakan interface
yang cukup besar, form mempunyai tombol utama untuk proses
perbandingan metode, dan tombol yang digunakan untuk
melakukan proses inputan data serta tombol yang digunakan
untuk menutup form, proses yang berjalan pada form ini adalah
semua proses, baik itu kompresi Huffman ataupun LZW, serta
dekompresi Huffman atau LZW. Beberapa informasi juga akan
ditampilkan mengenai integritas data input, dan beberapa
84. 63
informasi mengenai file output, dan waktu yang diperlukan untuk
kompresi dan dekompresi setiap metode.
Gambar 4.5 – Form Perbandingan Metode
G. Form Bantuan
Form bantuan ini digunakan untuk memberikan sedikit
informasi mengenai program dan sedikit penjelasan mengenai
metode-metode yang digunakan dalam proses, form ini digunakan
untuk membantu pengguna untuk menjalankan aplikasi.
85. 64
Gambar 4.6 – Form Bantuan
4.3. Pengujian Sistem
Sistem diuji dengan melakukan proses kompresi terhadap file
inputan, pada proses kompresi sistem menguji metode dengan
membandingan ratio kompresi dan penghematan dari data inputan dengan
data output atau data setelah dilakukan proses kompresi, serta waktu yang
dibutuhkan untuk melakukan kompresi pada instrumen hardware yang
telah ditentukan, sedangkan pada proses dekompresi pengujian sistem
dilakukan dengan membandingkan apakah data output memiliki integritas
data yang sama atau apakah data sama persis seperti data inputan
sebelumnya, hal ini dilakukan dengan cara mengunakan metode CRC32
dalam menentukan apakah data memiliki integritas yang sama dengan data
inputan sebelum dilakukan proses kompresi, pengujian ini hanya ada pada
halaman perbandingan metode Huffman dan LZW, selain itu waktu yang
diperlukan untuk proses kompresi pada instrumen hardware yang
digunakan.
Pada pengujian file input maka hasil yang diharapkan adalah
sistem dapat mendeteksi file input sesuai dengan kriteria batasan yang telah
ada, yaitu file teks yang tidak lebih besar dari satu mega bytes dan harus
mempunyai format ASCII, dan tidak memuat karakter unicode, pengujian
sistem pada pendeteksian file input ini berjalan baik dengan dibuktikan
oleh gambar dari sistem dibawah ini.
86. 65
Gambar 4.7 – Deteksi File Teks Unicode
Pada gambar 4.7 diatas file inputan adalah file teks dengan format
unicode, oleh sebab itu sistem menolak file inputan, dan hal ini
membuktikan bahwa file unicode dapat dengan baik dideteksi sehingga
kriteria basaran dapat diterapkan unutk file unicode.
Pada gambar 4.8 sistem juga mendeteksi adanya file inputan
dengan format UTF-8, yang mana merupakan format yang lain dengan
format ASCII, sehingga sistem juga akan menolaknya sebagai file inputan,
sehingga kriteria batasan file inputan dapat dijaga.
87. 66
Gambar 4.8 – Deteksi File Dengan Format UTF-8
Untuk pengujian kriteria lebih lanjut adalah pengujian file inputan
yang memiliki besar file lebih dari satu mega bytes sistem juga dapat
mendeteksi dengan baik besar file inputan, yaitu dengan memberikan pesan
bahwa file inputan memiliki besar yang lebih dari batasan yang telah
ditetapkan, sehingga sistem dapat mempertahankan kriteria batasan dari
file inputan.
88. 67
Gambar 4.9 – Deteksi Besar Ukuran File Input
Pada proses kompresi dengan menggunakan metode LZW dan
Huffman, maka proses akan diuji apakah proses tersebut menghasilkan file
output yang sesuai dan dapat menghasilkan informasi seperti besar file
input, besar file output, ratio kompresi, dan waktu dari proses, proses
pengujian ini dapat lebih baik dijelaskan dengan menggunakan gambar,
yaitu dengan menggunakan gambar 4.10 yang mengambarkan proses
kompresi dan informasi yang dihasilkan.
89. 68
Gambar 4.10 – Proses Kompresi Dan Informasinya
Sedangkan untuk menguji apakah proses kompresi benar-benar
menghasilkan output yang sesuai maka, kita dapat membuka windows
explorer dan mencari file output yang telah dihasilkan, file output tersebut
berada dalam satu folder dengan file inputan, sehingga kita dapat
mencarinya di lokasi file inputan yang telah kita proses, file output yang
dihasilkan terlihat seperti gambar 4.11 dibawah ini
Gambar 4.11 – File output
90. 69
Pada proses pengujian perhitungan CRC32 sistem diharapkan
menghasilkan nilai CRC32 yang tepat, hal ini dapat dilakukan uji dengan
membandinkan hasil CRC32 yang dihasilkan oleh sistem dengan program
lain yaitu program Hashtab 5.1 yang digunakan untuk menghitung nilai
CRC32 dari suatu file.
Gambar 4.12 – Nilai CRC32 Dengan Hashtab 5.1
Sedangkan untuk file yang sama sistem menghasilkan CRC32
yang sama dengan hasil yang diperoleh oleh Hashtab 5.1, hal ini dapat
dibuktikan dengan gambar perbandingan kompresi dibawah ini.
91. 70
Gambar 4.13 – Hasil CRC32 Dari Sistem
`
4.4. Implementasi Analisis
Analisis ditujukan untuk mengetahui kinerja dari metode Huffman
dan metode LZW dalam kompresi file teks, dimana kinerja ini dihitung
dengan menggunakan ratio kompresi yang dihitung dengan menggunakan
rumus
Ratio Kompresi =
100%
Serta dihitung juga dengan menggunakan pengecekan kembali
integritas data apakah sama dengan data pada inputan awal atau data
mengalami perubahan dalam prosesnya. Proses pengecekan integritas data
ini menggunakan algorithma error detection CRC ( Cyclic Redundancy
Check ) dengan panjang 32 atau yang lebih dikenal dengan CRC32.
Sedangkan data uji yang digunakan adalah file dengan format text
yang didapat dari http://compression.ca/act/act-files.html yang berisikan
corpus dari project Gutenberg, Canterbury Corpus, dan Calgary Corpus
yang merupakan file-file yang digunakan untuk melakukan proses
92. 71
pengecekan kinerja kompresi data, namun hanya text file yang mempunyai
kriteria batasan saja yang diambil untuk dilakukan proses analisis,
selanjutnya file analisis juga berasal dari subtitle film dan text lainnya.
Dari pengujian dengan menggunakan metode LZW terhadap file-
file input maka dapat dihasilkan tabel yang memberikan informasi
mengenai ukuran file input, ukuran file output, ratio kompresi, ratio saving,
waktu kompresi, waktu dekompresi, dan CRC32 file akhir setelah
dilakukan dekompresi. Dari tabel dapat diperoleh bahwa ratio kompresi
rata-rata terhadap file uji coba adalah 52% dari ukuran asli file, artinya
saving rata rata adalah 48% dari file asli.
Tabel 4.1 – Analisis Metode LZW
Nama File
Ukuran
Asli
Byte
Ukuran
Output
Byte Ratio Saving
AKRONIM[afb3e598].txt 117126 60480 51.64% 48.36%
BOM wiki[aa734e09].txt 29187 16006 54.84% 45.16%
CERITA INDO - bukit mawar[4314c95a].txt 11752 7044 59.94% 40.06%
Empire.State.2013[6A20E0A5].txt 127444 63587 49.89% 50.11%
Empire14[cdf0e33c].txt 59932 30382 50.69% 49.31%
Iron.Man.3.2013.1080p[A090CE7C].txt 157607 80427 51.03% 48.97%
Lengkap text indo[fcc4db62].txt 128286 68198 53.16% 46.84%
Now.You.See.Me.2013[3D70AD7C].txt 167382 82982 49.58% 50.42%
nyai sobir[c2d8b561].txt 10235 6090 59.50% 40.50%
RM155[064b4206].txt 122085 61677 50.52% 49.48%
RM156[57ee46c1].txt 123057 63107 51.28% 48.72%
RM157[58cb8be1].txt 145930 71274 48.84% 51.16%
RM158[74d1c866].txt 137300 65991 48.06% 51.94%
Star.Trek.Into.Darkness.2013.1080p[BC0BE926].txt 158859 80525 50.69% 49.31%
UUD 22[ae190bd2].txt 278754 111283 39.92% 60.08%
alice29[66007dba].txt 152089 79429 52.23% 47.77%
anne11[3eaff861].txt 587053 316978 53.99% 46.01%
asyoulik[015e5966].txt 125179 68854 55.00% 45.00%
calgarybook1[24e19972].txt 768771 431514 56.13% 43.87%
calgarybook2[ba0f3f26].txt 610856 332490 54.43% 45.57%
lcet10[4d331faf].txt 426754 223279 52.32% 47.68%
plrabn12[a3247aeb].txt 481861 261317 54.23% 45.77%
93. 72
Untuk waktu proses kompresi dan waktu dekompresi serta hasil
CRC32 akhir. Dari tabel didapatkan bahwa rata-rata waktu kompresi yang
dibutuhkan oleh metode LZW adalah 14,5 detik, waktu terlama adalah 56,2
detik yaitu saat menggunakan metode LZW untuk melakukan proses
kompresi pada file “calgarybook1[24e19972].txt”, dan waktu tersingkat
adalah 0,298 detik yaitu saat melakukan proses kompresi pada file “nyai
sobir[c2d8b561].txt”, pada proses dekompresi dihasilkan rata-rata waktu
untuk melakukan dekompresi pada file-file uji adalah 0,238 detik,
sedangkan waktu dekompresi terlama adalah 0,84 detik yaitu saat
melakukan proses dekompresi file “calgarybook1[24e19972].txt”, dan
waktu dekompresi tercepat adalah 0.019 yaitu saat melakukan proses
dekompresi pada file “CERITA INDO - bukit mawar[4314c95a].txt”
Sedangkan untuk proses pencarian CRC32 hasil yang didapatkan
untuk semua file-file uji adalah mempunyai hasil CRC32 yang sama seperti
sebelum dilakukan proses kompresi, hasil ini membuktikan bahwa metode
LZW dapat mempertahankan integritas file inputan, selama melakukan
proses kompresi dan dikembalikan lagi dengan proses dekompresi.
Tabel 4.2 – Analisis Metode LZW 2
Nama File
Waktu
Detik
Waktu
Dekompresi
CRC32
Akhir
AKRONIM[afb3e598].txt 6.935 0.127 AFB3E598
BOM wiki[aa734e09].txt 1.88 0.041 AA734E09
CERITA INDO - bukit mawar[4314c95a].txt 0.401 0.019 4314C95A
Empire.State.2013[6A20E0A5].txt 7.431 0.159 6A20E0A5
Empire14[cdf0e33c].txt 3.345 0.068 CDF0E33C
Iron.Man.3.2013.1080p[A090CE7C].txt 9.212 0.167 A090CE7C
Lengkap text indo[fcc4db62].txt 8.36 0.144 FCC4DB62
Now.You.See.Me.2013[3D70AD7C].txt 9.584 0.168 3D70AD7C
nyai sobir[c2d8b561].txt 0.298 0.02 C2D8B561
RM155[064b4206].txt 7.288 0.13 063B4206
RM156[57ee46c1].txt 7.469 0.127 57EE46C1
RM157[58cb8be1].txt 8.45 0.149 58CB8BE1
RM158[74d1c866].txt 7.736 0.137 74D1C866
Star.Trek.Into.Darkness.2013.1080p[BC0BE926].txt 9.411 0.163 BC0BE926
UUD 22[ae190bd2].txt 12.301 0.236 AE190BD2
alice29[66007dba].txt 9.25 0.163 66007DBA
anne11[3eaff861].txt 40.6 0.631 3EAFF861
94. 73
asyoulik[015e5966].txt 8.994 0.144 015E5966
calgarybook1[24e19972].txt 56.2 0.84 24E19972
calgarybook2[ba0f3f26].txt 42.88 0.654 BA0F3F26
lcet10[4d331faf].txt 28.07 0.446 4D331FAF
plrabn12[a3247aeb].txt 33.75 0.517 A3247AEB
Sedangkan untuk metode Huffman hasil yang didapatkan adalah
sebagai berikut, rata-rata ratio kompresi yang didapatkan adalah 0.614 atau
61,4% dari ukuran file aslinya, sedangkan untuk rata-rata saving dari file-
file uji coba adalah 0,385 atau 38,5% dari ukuran asli file-file uji, ratio
kompresi terbaik adalah 55,8% dari ukuran asli file input, yaitu saat
melakukan proses kompresi file uji “nyai sobir[c2d8b561].txt”, sedangkan
untuk ratio kompresi terendah adalah 67,71% yaitu saat melakukan proses
kompresi file uji “BOM wiki[aa734e09].txt”
Tabel 4.3 – Analisis Metode Huffman 1
Nama File
Ukuran
Asli
Byte
Ukuran
Output
Byte Ratio Saving
AKRONIM[afb3e598].txt 117126 69220 59.10% 40.90%
BOM wiki[aa734e09].txt 29187 19762 67.71% 32.29%
CERITA INDO - bukit mawar[4314c95a].txt 11752 6693 56.95% 43.05%
Empire.State.2013[6A20E0A5].txt 127444 82513 64.74% 35.26%
Empire14[cdf0e33c].txt 59932 38510 64.26% 35.74%
Iron.Man.3.2013.1080p[A090CE7C].txt 157607 103905 65.93% 34.07%
Lengkap text indo[fcc4db62].txt 128286 74405 58.00% 42.00%
Now.You.See.Me.2013[3D70AD7C].txt 167382 110852 66.23% 33.77%
nyai sobir[c2d8b561].txt 10235 5715 55.84% 44.16%
RM155[064b4206].txt 122085 79557 65.17% 34.83%
RM156[57ee46c1].txt 123057 80299 65.25% 34.75%
RM157[58cb8be1].txt 145930 94074 64.47% 35.53%
RM158[74d1c866].txt 137300 88736 64.63% 35.37%
Star.Trek.Into.Darkness.2013.1080p[BC0BE926].txt 158859 106580 67.09% 32.91%
UUD 22[ae190bd2].txt 278754 161010 57.76% 42.24%
95. 74
alice29[66007dba].txt 152089 87931 57.82% 42.18%
anne11[3eaff861].txt 587053 338588 57.68% 42.32%
asyoulik[015e5966].txt 125179 76021 60.73% 39.27%
calgarybook1[24e19972].txt 768771 438652 57.06% 42.94%
calgarybook2[ba0f3f26].txt 610856 368614 60.34% 39.66%
lcet10[4d331faf].txt 426754 250838 58.78% 41.22%
plrabn12[a3247aeb].txt 481861 275861 57.25% 42.75%
Untuk waktu kompresi dan dekompresi serta hasil CRC32 akhir
dijelaskan dalam tabel berikut, waktu kompresi rata-rata untuk file-file uji
adalah 0,253 detik, sedangkan waktu terlama untuk proses kompresi adalah
0,825 detik yaitu saat melakukan proses kompresi pada file uji
“calgarybook1[24e19972].txt”, sedangkan waktu kompresi tercepat adalah
0.011 detik yaitu saat melakukan proses kompresi pada file “nyai
sobir[c2d8b561].txt”.
Waktu rata-rata dekompresi dari file-file uji adalah 0,151 detik,
sedangkan waktu dekompresi tercepat adalah 0,011 yaitu pada saat
melakukan proses dekompresi file uji “nyai sobir[c2d8b561].txt”, untuk
waktu dekompresi terlama adalah 0,489 detik yaitu pada saat melakukan
proses dekompresi file uji “calgarybook1[24e19972].txt”.
Pada pengujian CRC32 semua file uji mempunyai CRC32 akhir
yang sama dengan file sebelum dilakukan proses kompresi dan
dekompresi, hal ini membuktikan bahwa metode Huffman dapat menjaga
integritas data file inputan.
Tabel 4.4 – Analisis Metode Huffman 2
Nama File
Waktu
Detik
Waktu
Dekompr
esi
CRC32
Akhir
AKRONIM[afb3e598].txt 0.137 0.079 AFB3E598
BOM wiki[aa734e09].txt 0.04 0.024 AA734E09
CERITA INDO - bukit mawar[4314c95a].txt 0.019 0.013 4314C95A
Empire.State.2013[6A20E0A5].txt 0.155 0.096 6A20E0A5
Empire14[cdf0e33c].txt 0.076 0.044 CDF0E33C