SlideShare a Scribd company logo
1 of 146
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
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
iii
Halaman Sengaja Dikosongkan
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 ( )
v
Halaman Sengaja Dikosongkan
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 )
vii
Halaman Sengaja Dikosongkan
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 )
ix
Halaman Sengaja Dikosongkan
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
xi
Halaman Sengaja Dikosongkan
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
xiii
Halaman Sengaja Dikosongkan
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.
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
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
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
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
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
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
xxi
Halaman Sengaja Dikosongkan
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
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
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.
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.
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.
6
Halaman Sengaja Dikosongkan
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
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
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
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
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
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 &
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"
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
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.
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
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.
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
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
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
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
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
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 Ã
24
134 86 10000110 † 196 C4 11000100 Ä
135 87 10000111 ‡ 197 C5 11000101 Å
136 88 10001000 ˆ 198 C6 11000110 Æ
137 89 10001001 ‰ 199 C7 11000111 Ç
138 8A 10001010 Š 200 C8 11001000 È
139 8B 10001011 ‹ 201 C9 11001001 É
140 8C 10001100 Œ 202 CA 11001010 Ê
141 8D 10001101 203 CB 11001011 Ë
142 8E 10001110 Ž 204 CC 11001100 Ì
143 8F 10001111 205 CD 11001101 Í
144 90 10010000 206 CE 11001110 Î
145 91 10010001 ‘ 207 CF 11001111 Ï
146 92 10010010 ’ 208 D0 11010000 Ð
147 93 10010011 “ 209 D1 11010001 Ñ
148 94 10010100 ” 210 D2 11010010 Ò
149 95 10010101 • 211 D3 11010011 Ó
150 96 10010110 – 212 D4 11010100 Ô
151 97 10010111 — 213 D5 11010101 Õ
152 98 10011000 ˜ 214 D6 11010110 Ö
153 99 10011001 ™ 215 D7 11010111 ×
154 9A 10011010 š 216 D8 11011000 Ø
155 9B 10011011 › 217 D9 11011001 Ù
156 9C 10011100 œ 218 DA 11011010 Ú
157 9D 10011101 219 DB 11011011 Û
158 9E 10011110 ž 220 DC 11011100 Ü
159 9F 10011111 Ÿ 221 DD 11011101 Ý
160 A0 10100000 222 DE 11011110 Þ
161 A1 10100001 ¡ 223 DF 11011111 ß
162 A2 10100010 ¢ 224 E0 11100000 à
163 A3 10100011 £ 225 E1 11100001 á
164 A4 10100100 ¤ 226 E2 11100010 â
165 A5 10100101 ¥ 227 E3 11100011 ã
166 A6 10100110 ¦ 228 E4 11100100 ä
167 A7 10100111 § 229 E5 11100101 å
168 A8 10101000 ¨ 230 E6 11100110 æ
25
169 A9 10101001 © 231 E7 11100111 ç
170 AA 10101010 ª 232 E8 11101000 è
171 AB 10101011 « 233 E9 11101001 é
172 AC 10101100 ¬ 234 EA 11101010 ê
173 AD 10101101 235 EB 11101011 ë
174 AE 10101110 ® 236 EC 11101100 ì
175 AF 10101111 ¯ 237 ED 11101101 í
176 B0 10110000 ° 238 EE 11101110 î
177 B1 10110001 ± 239 EF 11101111 ï
178 B2 10110010 ² 240 F0 11110000 ð
179 B3 10110011 ³ 241 F1 11110001 ñ
180 B4 10110100 ´ 242 F2 11110010 ò
181 B5 10110101 µ 243 F3 11110011 ó
182 B6 10110110 ¶ 244 F4 11110100 ô
183 B7 10110111 · 245 F5 11110101 õ
184 B8 10111000 ¸ 246 F6 11110110 ö
185 B9 10111001 ¹ 247 F7 11110111 ÷
186 BA 10111010 º 248 F8 11111000 ø
187 BB 10111011 » 249 F9 11111001 ù
188 BC 10111100 ¼ 250 FA 11111010 ú
189 BD 10111101 ½ 251 FB 11111011 û
252 FC 11111100 ü
253 FD 11111101 ý
254 FE 11111110 þ
255 FF 11111111 ÿ
2.7. Parameter Analisis
A. Waktu Proses
Waktu yang dimaksudkan disini adalah waktu yang
diperlukan salah satu algoritma untuk menyelesaikan proses
kompresi data yang sama, sehingga yang membedakan antara
satu metode kompresi dengan metode lainnya adalah berapa lama
waktu yang dibutuhkan untuk menyelesaikan proses kompresi
data tersebut.
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.
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
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
29
Gambar 2.8 – Operasi Exclusive Or
Sedangkan contoh perhitungan untuk CRC dapat
dijelaskan sebagai berikut
Gambar 2.9 – Contoh Perhitungan Remainder ( CRC )
30
Halaman Sengaja Dikosongkan
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
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
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
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,
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
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
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
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
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.
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.
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.
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
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
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
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
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 ).
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.
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.
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.
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.
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
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.
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
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
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.
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.
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.
58
Gambar 3.17 : Interface Perbandingan Metode Huffman dan LZW
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
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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
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%
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
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%
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
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra
STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra

More Related Content

Similar to STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra

Laporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudangLaporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudangILex Daud Basra
 
PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...
PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...
PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...Uofa_Unsada
 
Aplikasi sistem informasi akademik berbasis desktop
Aplikasi sistem informasi akademik berbasis desktopAplikasi sistem informasi akademik berbasis desktop
Aplikasi sistem informasi akademik berbasis desktopAriestya Permana
 
Tesis deal print ok 1
Tesis deal print ok 1Tesis deal print ok 1
Tesis deal print ok 1ym.ygrex@comp
 
MAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdf
MAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdfMAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdf
MAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdfIRWANYUDE
 
Skripsi structural equation_modeling
Skripsi structural equation_modelingSkripsi structural equation_modeling
Skripsi structural equation_modelingRahmatdi Black
 
Kurikulum if-2017update
Kurikulum if-2017updateKurikulum if-2017update
Kurikulum if-2017updateResty annisa
 
Jaringan Dasar
Jaringan DasarJaringan Dasar
Jaringan DasarlombkTBK
 
Analisis sistem informasi akademik online
Analisis sistem informasi akademik onlineAnalisis sistem informasi akademik online
Analisis sistem informasi akademik onlineukhti ziyah
 
Komputer Dan Kegunaanya dalam Kehidupan Manusia
Komputer Dan Kegunaanya dalam Kehidupan ManusiaKomputer Dan Kegunaanya dalam Kehidupan Manusia
Komputer Dan Kegunaanya dalam Kehidupan ManusiaYoshiie Srinita
 
Proposal ta bakat dan minat
Proposal ta bakat dan minatProposal ta bakat dan minat
Proposal ta bakat dan minatRio Putra
 
Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...
Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...
Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...Fendi Hidayat
 
Keamanan e learning menggunakan metode square
Keamanan e learning menggunakan metode squareKeamanan e learning menggunakan metode square
Keamanan e learning menggunakan metode squareAgreindra Helmiawan
 
Sejarah dan perkembangan TIK di dunia dan Indonesia
Sejarah dan perkembangan TIK di dunia dan IndonesiaSejarah dan perkembangan TIK di dunia dan Indonesia
Sejarah dan perkembangan TIK di dunia dan IndonesiaAni Mahisarani
 
PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...
PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...
PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...frengkysanctuary
 
Squid free bsd-unmuh-skripsi
Squid free bsd-unmuh-skripsiSquid free bsd-unmuh-skripsi
Squid free bsd-unmuh-skripsiArfan Semangat
 

Similar to STMIK Stikom Indonesia - Denpasar - Dewa Purnama Sidi Putra (20)

Laporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudangLaporan kerja praktek sistem informasi monitoring material gudang
Laporan kerja praktek sistem informasi monitoring material gudang
 
PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...
PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...
PENERAPAN ALGORITMA APRIORI DALAM MENEMUKAN HUBUNGAN DATA AWAL MASUK DENGAN D...
 
Ptk otomotif
Ptk otomotifPtk otomotif
Ptk otomotif
 
Aplikasi sistem informasi akademik berbasis desktop
Aplikasi sistem informasi akademik berbasis desktopAplikasi sistem informasi akademik berbasis desktop
Aplikasi sistem informasi akademik berbasis desktop
 
Tesis deal print ok 1
Tesis deal print ok 1Tesis deal print ok 1
Tesis deal print ok 1
 
MAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdf
MAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdfMAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdf
MAKALAH SIMULASI DIGITAL KELOMPOK 3 01.pdf
 
Skripsi structural equation_modeling
Skripsi structural equation_modelingSkripsi structural equation_modeling
Skripsi structural equation_modeling
 
1108014
11080141108014
1108014
 
Kurikulum if-2017update
Kurikulum if-2017updateKurikulum if-2017update
Kurikulum if-2017update
 
Jaringan Dasar
Jaringan DasarJaringan Dasar
Jaringan Dasar
 
Analisis sistem informasi akademik online
Analisis sistem informasi akademik onlineAnalisis sistem informasi akademik online
Analisis sistem informasi akademik online
 
Komputer Dan Kegunaanya dalam Kehidupan Manusia
Komputer Dan Kegunaanya dalam Kehidupan ManusiaKomputer Dan Kegunaanya dalam Kehidupan Manusia
Komputer Dan Kegunaanya dalam Kehidupan Manusia
 
Komputer dan kegunaannya
Komputer dan kegunaannyaKomputer dan kegunaannya
Komputer dan kegunaannya
 
Proposal ta bakat dan minat
Proposal ta bakat dan minatProposal ta bakat dan minat
Proposal ta bakat dan minat
 
Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...
Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...
Sistem Informasi Pengajuan Proposal Skripsi Mahasiswa Program Studi Sistem In...
 
Keamanan e learning menggunakan metode square
Keamanan e learning menggunakan metode squareKeamanan e learning menggunakan metode square
Keamanan e learning menggunakan metode square
 
Makalah ti
Makalah tiMakalah ti
Makalah ti
 
Sejarah dan perkembangan TIK di dunia dan Indonesia
Sejarah dan perkembangan TIK di dunia dan IndonesiaSejarah dan perkembangan TIK di dunia dan Indonesia
Sejarah dan perkembangan TIK di dunia dan Indonesia
 
PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...
PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...
PENERAPAN METODE TEXT MINING UNTUK MENDETEKSI KESAMAAN JUDUL TUGAS AKHIR PADA...
 
Squid free bsd-unmuh-skripsi
Squid free bsd-unmuh-skripsiSquid free bsd-unmuh-skripsi
Squid free bsd-unmuh-skripsi
 

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 Ã
  • 45. 24 134 86 10000110 † 196 C4 11000100 Ä 135 87 10000111 ‡ 197 C5 11000101 Å 136 88 10001000 ˆ 198 C6 11000110 Æ 137 89 10001001 ‰ 199 C7 11000111 Ç 138 8A 10001010 Š 200 C8 11001000 È 139 8B 10001011 ‹ 201 C9 11001001 É 140 8C 10001100 Œ 202 CA 11001010 Ê 141 8D 10001101 203 CB 11001011 Ë 142 8E 10001110 Ž 204 CC 11001100 Ì 143 8F 10001111 205 CD 11001101 Í 144 90 10010000 206 CE 11001110 Î 145 91 10010001 ‘ 207 CF 11001111 Ï 146 92 10010010 ’ 208 D0 11010000 Ð 147 93 10010011 “ 209 D1 11010001 Ñ 148 94 10010100 ” 210 D2 11010010 Ò 149 95 10010101 • 211 D3 11010011 Ó 150 96 10010110 – 212 D4 11010100 Ô 151 97 10010111 — 213 D5 11010101 Õ 152 98 10011000 ˜ 214 D6 11010110 Ö 153 99 10011001 ™ 215 D7 11010111 × 154 9A 10011010 š 216 D8 11011000 Ø 155 9B 10011011 › 217 D9 11011001 Ù 156 9C 10011100 œ 218 DA 11011010 Ú 157 9D 10011101 219 DB 11011011 Û 158 9E 10011110 ž 220 DC 11011100 Ü 159 9F 10011111 Ÿ 221 DD 11011101 Ý 160 A0 10100000 222 DE 11011110 Þ 161 A1 10100001 ¡ 223 DF 11011111 ß 162 A2 10100010 ¢ 224 E0 11100000 à 163 A3 10100011 £ 225 E1 11100001 á 164 A4 10100100 ¤ 226 E2 11100010 â 165 A5 10100101 ¥ 227 E3 11100011 ã 166 A6 10100110 ¦ 228 E4 11100100 ä 167 A7 10100111 § 229 E5 11100101 å 168 A8 10101000 ¨ 230 E6 11100110 æ
  • 46. 25 169 A9 10101001 © 231 E7 11100111 ç 170 AA 10101010 ª 232 E8 11101000 è 171 AB 10101011 « 233 E9 11101001 é 172 AC 10101100 ¬ 234 EA 11101010 ê 173 AD 10101101 235 EB 11101011 ë 174 AE 10101110 ® 236 EC 11101100 ì 175 AF 10101111 ¯ 237 ED 11101101 í 176 B0 10110000 ° 238 EE 11101110 î 177 B1 10110001 ± 239 EF 11101111 ï 178 B2 10110010 ² 240 F0 11110000 ð 179 B3 10110011 ³ 241 F1 11110001 ñ 180 B4 10110100 ´ 242 F2 11110010 ò 181 B5 10110101 µ 243 F3 11110011 ó 182 B6 10110110 ¶ 244 F4 11110100 ô 183 B7 10110111 · 245 F5 11110101 õ 184 B8 10111000 ¸ 246 F6 11110110 ö 185 B9 10111001 ¹ 247 F7 11110111 ÷ 186 BA 10111010 º 248 F8 11111000 ø 187 BB 10111011 » 249 F9 11111001 ù 188 BC 10111100 ¼ 250 FA 11111010 ú 189 BD 10111101 ½ 251 FB 11111011 û 252 FC 11111100 ü 253 FD 11111101 ý 254 FE 11111110 þ 255 FF 11111111 ÿ 2.7. Parameter Analisis A. Waktu Proses Waktu yang dimaksudkan disini adalah waktu yang diperlukan salah satu algoritma untuk menyelesaikan proses kompresi data yang sama, sehingga yang membedakan antara satu metode kompresi dengan metode lainnya adalah berapa lama waktu yang dibutuhkan untuk menyelesaikan proses kompresi data tersebut.
  • 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.
  • 79. 58 Gambar 3.17 : Interface Perbandingan Metode Huffman dan 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