APLIKASI KOMPRESI FILE MENGGUNAKAN KOMBINASI ALGORITMA LZ77 DAN HUFFMAN
APLIKASI KOMPRESI FILE MENGGUNAKAN KOMBINASI ALGORITMA LZ77 DAN HUFFMAN SKRIPSI
Oleh :
YUSUF FERYANTO 0834010211 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS PEMBANGUNAN NASIONAL
“VETERAN” J AWA TIMUR 2012 AAa APLIKASI KOMPRESI FILE MENGGUNAKAN KOMBINASI ALGORITMA LZ77 DAN HUFFMAN SKRIPSI
Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika Oleh :
YUSUF FERYANTO 0834010211 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS PEMBANGUNAN NASIONAL
“VETERAN” J AWA TIMUR 2012
LEMBAR PENGESAHAN
APLIKASI KOMPRESI FILE MENGGUNAKAN
KOMBINASI ALGORITMA LZ77 DAN HUFFMAN
Disusun oleh :
YUSUF FERYANTO
0834010211
Telah disetujui mengikuti Ujian Negara Lisan Gelombang V ( lima) Tahun Akademik 2011 / 2012
Pembimbing I
Nur Cahyo Wibowo, S.Kom, M.Kom NPT. 379 030 040 1971
Pembimbing II
Ir .Sutiyono, MT NIP.19600731 198703 1 001
Mengetahui, Ketua Program Studi Teknik Informatika
Fakultas Teknologi Industri Universitas Pembangunan Nasional ”Veteran” Jawa Timur
Dr . Ir . Ni Ketut Sar i, M.T NPT. 19650731 199203 2001
SKRIPSI
APLIKASI KOMPRESI FILE MENGGUNAKAN
KOMBINASI ALGORITMA LZ77 DAN HUFFMANDisusun Oleh :
YUSUF FERYANTO
0834010211
Telah dipertahankan dan diterima oleh Tim Penguji Skripsi Program Studi Teknik Informatika Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur Pada Tanggal 13 April 2012
Pembimbing : Tim Penguji : 1.
1. Nur Cahyo Wibowo, S.Kom, M.Kom
Dr . Ir .Ni Ketut Sar i, MT
NIP. 3790 03040 197 NPT. 19650731 199203 2001 2.
2. Basuk i Rachmat, S. Si, MT NPT. 36907 060 209
Ir .Sutiyono, MT
NIP.19600731 198703 1 001 3.
Rinci Kembang Hapsar i, S.Si, M.Kom
NIDN.071 212 7701 Mengetahui, Dekan Fakultas Teknologi Industri Universitas Pembangunan Nasional ”Veteran” Jawa Timur
Ir . Sutiyono, MT
NIP.19600731 198703 1 001 J udul : Pembuatan Aplikasi Kompr esi File Menggunakan Kombinasi Algor itma Huffman Dan LZ77
Dosen Pembimbing I : Nur Cahyo Wibowo, S.Kom, M.Kom Dosen Pembimbing II : Ir .Sutiyono, MT. Penyusun : Yusuf Fer yanto
ABSTRAK Perkembangan penggunaan komputer yang semakin meningkat dalam berbagai bidang berkontribusi pada semakin bervariasinya format data yang disimpan oleh pengguna. Format data tersebut meliputi data teks, audio dan video serta kombinasi diantara ketiganya yang lazim disebut data multimedia.
Disamping itu frekuensi penggunaan data secara bersama-sama turut serta membantu pengembangan jaringan komputer menjadi semakin kompleks pada sehingga penggunaan bandwith menjadi semakin sempit untuk saling berkirim data. Kondisi yang sering ditemui adalah pada saat mengirim data atau file tentu akan menggunakan bandwidth yang besar apabila ukuran file yang akan dikirim juga besar, sehingga proses pengiriman data akan mempengaruhi kesibukan dan akan membuat pengiriman data atau file menjadi lama. Sehubungan dengan permasalahan yang telah dipaparkan maka diperlukan sebuah aplikasi untuk mengecilkan atau mengkompresi ukuran data atau file tersebut agar dapat menghemat pemakaian bandwidth.
Berdasarkan uraian tersebut, pada Tugas Akhir ini akan diciptakan sebuah aplikasi kompresi dan dekompresi file yang mudah di gunakan oleh user lain. Aplikasi ini menggunakan kombinasi Algoritma LZ77 dan Huffman. Aplikasi kompresi dapat menghemat ruang penyimpanan file secara optimal. proses dekompresinya dapat mengembalikan file seperti semula isi file pun tidak mengalami perubahan atau corrupt.
Kata kunci : kompresi, dekompresi, LZ77 dan Huffman
KATA PENGANTAR
Segala puji dan syukur semata di tujukan ke hadirat Allah SWT, yang telah
memberikan rahmat serta hidayah-Nya, sehingga memungkinkan penulis untuk
menyelesaikan Proyek Akhir yang berjudul:“ PEMBUATAN APLIKASI KOMPRESI FILE MENGGUNAKAN KOMBINASI ALGORITMA LZ77 DAN HUFFMAN” Buku Proyek Akhir ini disusun dan diajukan sebagai syarat untuk
menyelesaikan program Sarjana pada Program Studi Teknik Informatika Fakultas
Teknologi Industri di Universitas Pembangunan Nasional ”Veteran” Jawa Timur.Dalam penyusunan Proyek Akhir ini, penulis berusaha menerapkan ilmu yang
di dapat selama menjalani proses perkuliahan yang tentu saja tidak terlepas dari
petunjuk, bimbingan, bantuan dan dukungan dari berbagi pihak.Dengan tidak lupa akan kodratnya sebagai manusia, Penulis menyadari
bahwa karya Proyek Akhir ini masih jauh dari kesempurnaan dan mengandung
banyak kekurangan, sehingga dengan segala kerendaha hati, Penulis mengharapkan
saran dan kritik yang membangun dari pembaca.Surabaya April 2012 Penulis
DAFTAR ISI
KATA PENGANTAR ......................................................................................... i UCAPAN TERIMA KASIH............................................................................... ii DAFTAR ISI ..................................................................................................... iv DAFTAR GAMBAR......................................................................................... vi DAFTAR TABEL ........................................................................................... viii
BAB I PENDAHULUAN
1.1 Latar Belakang ..................................................................................... 1
1.2 Perumusan Masalah .............................................................................. 2
1.3 Batasan Masalah ................................................................................... 3
1.4 Tujuan ................................................................................................. 3
1.5 Manfaat................................................................................................. 4
1.6 Metode Penelitian ................................................................................. 4
1.7 Sistematika Penulisan ........................................................................... 5
BAB II TINJAUAN PUSTAKA
2.1 Algorithma Dan Pemrograman ............................................................... 6
2.1.1 Internal Subrountines ............................................................... 7
2.1.2 External Subrountines .............................................................. 7
2.1.1 Pendeketan Top Down ............................................................. 7
2.2 Kompresi File ...................................................................................... 10
2.3 Jenis-Jenis Kompresi File..................................................................... 12
2.4 Metode Kompresi File ......................................................................... 12
2.5 Teknik Kompresi File .......................................................................... 14
2.6 Algoritma Huffman .............................................................................. 15
2.7 Algoritma LZ77 ................................................................................... 18
2.8 Kombinasi Algoritma LZ77 Dan Huffman ........................................... 20
2.9 Flow Map ............................................................................................ 23
2.10 Unified Modelling Language ............................................................... 24
2.11 Sistematika Dalam UML ...................................................................... 29
2.12 Notasi Dalam UML............................................................................ 321
2.12.1 Actor ................................................................................... 31
2.12.2 Use Case.............................................................................. 31
2.12.3 Class .................................................................................... 32
2.12.4 Interface .............................................................................. 33
2.12.5 Interaction ........................................................................... 33
2.12.6 Note .................................................................................... 33
2.12.7 Dependency ......................................................................... 34
2.12.8 Association .......................................................................... 34
2.12.9 Generalization ..................................................................... 35
2.12.10 Realization .......................................................................... 35
2.13 Interaksi Manusia Dan Komputer ......................................................... 35
2.14 Embarcadero RAD Studio .................................................................... 39
BAB III ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem .................................................................................... 44
3.2 Analisis Masalah .................................................................................. 45
3.3 Analisis Proses Kompresi Dengan Literal Karakter .............................. 46
3.4 Use Case Diagram Aplikasi Kompresi ............................................... 50
3.5 Squence Diagram ................................................................................ 50
3.6 Perancangan Sistem ........................................................................... 52
BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Prosedur Kompresi ......................................................... 55
4.2. Implementasi Prosedur Dekompresi ..................................................... 57
4.3. Pengujian Aplikasi ............................................................................... 58
4.3.1 Pengujian Kompresi File ......................................................... 59
4.3.2 Pengujian Kompresi Multi File ................................................ 62
4.3.3 Pengujian Dekompresi ........................................................... 65
4.4. Analisa Hasil Uji Coba ......................................................................... 67
BAB V PENUTUP
5.1 Kesimpulan ......................................................................................... 69
5.2 Saran ................................................................................................... 70 DAFTAR PUSTAKA ....................................................................................... 71
DAFTAR GAMBAR
Gambar 2.1 Representasi Teks ABACCDA ............................................... 16Gambar 2.2 Pohon Huffman Untuk Teks ABACCDA ............................... 16Gambar 2.3 Metode UML .......................................................................... 26Gambar 2.4 Notasi Actor ........................................................................... 31Gambar 2.5 Notasi Use Case...................................................................... 31Gambar 2.6 Notasi Class ............................................................................ 32Gambar 2.7 Notasi Interface ...................................................................... 33Gambar 2.8 Notasi Interaction ................................................................... 33Gambar 2.9 Notasi Note ............................................................................ 33Gambar 2.10 Notasi dependency.................................................................. 34Gambar 2.11 Notasi Asociation ................................................................... 34Gambar 2.12 Notasi Generalization ............................................................. 35Gambar 2.13 Notasi Realization .................................................................. 35Gambar 2.14 Hubungan Antar Muka Manusia Dan Komputer .................... 36Gambar 2.15 Tampilan Awal Delphi ............................................................ 40Gambar 2.16 Daftar Komponen Palet Standart Delphi ................................. 41Gambar 2.17 Daftar Komponen Palet Additional ......................................... 41Gambar 2.18 Daftar Komponen Palet Win 32 ............................................. 42Gambar 2.19 Daftar Komponen Palet Sistem ............................................... 42Gambar 2.20 Daftar Komponen Palet Dialog ............................................... 42Gambar 2.21 Membuat Aplikasi Sederhana Delphi ...................................... 43Gambar 3.1 Pohon Huffman ...................................................................... 49Gambar 3.2 Use Case Aplikasi Kompresi .................................................. 50Gambar 3.3 Squence Diagram Proses Kompresi ........................................ 51Gambar 3.4 Squence Diagram Proses Dekompresi ..................................... 52Gambar 3.5 Tampilan awal Program .......................................................... 53Gambar 3.6 From Utama Program Kompresi ............................................. 54Gambar 4.1 Daftar Nama File Yang Menjadi Bahan Pengujian ................. 58Gambar 4.2 Percobaan Dengan Single File ................................................ 59Gambar 4.3 Penentuan Lokasi Penyimpanan .............................................. 59Gambar 4.4 Hasil Proses Kompresi File Huffman.txt ................................. 60Gambar 4.5 Isi Hasil Proses Kompresi File Huffman.txt ............................ 60Gambar 4.6 Hasil Proses Kompresi File Blutut.pdf .................................... 60Gambar 4.7 Isi Hasil Proses Kompresi File Blutut.pdf ............................... 61Gambar 4.8 Hasil Proses Kompresi File Info.doc ....................................... 61Gambar 4.9 Isi Hasil Proses Kompresi File Info.doc .................................. 61Gambar 4.10 Hasil Proses Kompresi File Man.ppt ..................................... 62Gambar 4.11 Isi Hasil Proses Kompresi File Man.ppt .................................. 62Gambar 4.12 Percobaan Kompresi Multiple File .......................................... 63Gambar 4.13 Hasil Proses Kompresi Multiple File....................................... 63Gambar 4.14 Isi Hasil Proses kompresi multiple File .................................. 64Gambar 4.15 Proses Dekompresi File Hasil NewBox.zip ............................ 65Gambar 4.16 Pemilihan Lokasi Dekompresi ................................................ 65Gambar 4.17 Hasil Proses Dekompresi File Kedua.zip ................................ 65Gambar 4.18 Isi Hasil Proses dekompresi multiple File .............................. 66DAF TAR TABEL
Tabel 2.1 Kode Huffman Untuk ABACCDA............................................... 17Tabel 2.2 Pencatatan Codewords Prefiks Huffman Statis Untuk LDL ......... 22Tabel 2.3 Pencatatan Affiks Codewords Huffman Statis .............................. 22Tabel 2.4 Pencatatan Codewords huffman Statis untuk Indikasi Jarak ......... 23Tabel 3.1 Kode Dictionary huffman ............................................................ 49Tabel 4.1 Pencatatan analisa File Asli Dan Hasil Kompresi ......................... 68BAB I PENDAHULUAN 1.1. Latar Belakang Perkembangan penggunaan komputer yang semakin meningkat dalam berbagai bidang berkontribusi pada semakin bervariasinya format data yang disimpan oleh pengguna. Format data tersebut meliputi data teks, audio dan video serta kombinasi diantara ketiganya yang lazim disebut data multimedia.
Disamping itu frekuensi penggunaan data secara bersama-sama turut serta membantu pengembangan jaringan komputer menjadi semakin kompleks pada sehingga penggunaan bandwith menjadi semakin sempit untuk saling berkirim data. Kondisi yang sering ditemui adalah pada saat mengirim data atau file tentu akan menggunakan bandwidth yang besar apabila ukuran file yang akan dikirim juga besar, sehingga proses pengiriman data akan mempengaruhi kesibukan pada jaringan dan akan membuat pengiriman data atau file menjadi lama. Hal ini akan menjadi permasalah yang serius dan berkepanjangan dan mengganggu sistem jaringan. Sehubungan dengan permasalahan yang telah dipaparkan maka diperlukan sebuah aplikasi untuk mengecilkan atau mengkompresi ukuran data atau file tersebut agar dapat menghemat pemakaian bandwidth.
Secara spesifik, kompresi data atau file bertujuan untuk mereduksi tempat (space) penyimpanan data atau file dan mereduksi waktu untuk mentransmisikan data atau file yang memiliki kapasitas besar. Dengan
1
2
memanfaatkan teknik kompresi ini, maka proses pengiriman data atau file akan menjadi lebih maksimal dan mereduksi waktu transfer file.
Sejak era 1940-an, mulai dipikirkannya suatu metode untuk memperkecil ukuran data atau kompresi. Hal ini menunjukkan bahwa di masa lalu, para pakar juga telah memprediksi pertumbuhan data yang akan semakin besar.
Terdapat banyak metode kompresi, tetapi secara umum mempunyai teknik yang terbagi menjadi dua kategori yaitu lossy compression dan lossless
compression . Masing-masing teknik tersbut mempunyai kekhasan sendiri terhadap data yang menjadi obyek kompresinya.
Pada teknik lossy compression, lebih tepat digunakan pada obyek data audio, video dan citra digital, sedangkan teknik lossless compression lebih tepat digunakan pada data dokumen yang banyak mengandung teks daripada data multimedia karena mampu mempertahankan kebutuhan informasi yang dikandung oleh data.
Berdasarkan uraian tersebut, pada Tugas Akhir ini akan dirancang sebuah aplikasi kompresi dan dekompresi data secara dengan menggunakan Algoritma kombinasi LZ77 dan Huffman pada localhost. Penggunaan kedua algoritma ini karena sifatnya yang Loseless dimana data atau file hasil kompresi dapat didekompres lagi dan hasilnya tepat sama seperti data atau file sebelum proses kompresi.
1.2. Perumusan Masalah
Rumusan masalah yang digunakan dalam tugas akhir ini adalah :
3
Bagaimana membuat aplikasi kompresi data atau file dengan menggunakan kombinasi algorithma LZ77 dan Huffman ?
1.3. Batasan Masalah Dalam tugas akhir ini batasan masalah yang dipergunakan yaitu : a.
Algoritma yang digunakan adalah Kombinasi Algoritma LZ77 dan Huffman.
b.
Diterapkan pada localhost c. Data atau file yang dikirim akan terkompresi.
d.
Data atau file diproses secara antrian (FIFO).
e.
Karena bersifat lossless, data yang dikompresi ditujukan pada data dokumen (file teks, office document dan pdf) bukan format data yangg termasuk dalam citra digital, maupun video.
1.4. Tujuan Tujuan yang ingin dicapai pada pengerjaan tugas akhir ini adalah: a.
Membangun perangkat lunak dengan kombinasi algoritma LZ77 dan Huffman untuk mencapai hasil yang optimal.
b.
Menciptakan perangkat lunak yang dapat menghemat ruang penyimpanan data atau menperkecil ukuaran file dan mudah di operasikan.
c.
Menbangun perangkat lunak yang dapat Mengkompresi dan Dekompresi.
4
1.5. Manfaat Adapun manfaat yang ingin diperoleh dari pengerjaan tugas akhir ini adalah dapat membuat perangkat lunak untuk mempermudah pengguna menyimpan data dengan menghemat ruang penyimpan dan mempercepat proses transfer file.
1.6. Metode Penelitian Adapun metode penelitian yang dipergunakan dalam pengerjaan tugas akhir ini adalah : a.
Studi Literatur Mencari referensi dan bahan pustaka tentang teori-teori yang berhubungan dengan permasalahan yang akan dikerjakan dalam tugas akhir ini.
b.
Studi Kasus Mencari contoh-contoh kasus serupa yang berhubungan dengan permasalahan dalam tugas akhir ini.
c.
Analisa Permasalahan Dan Perancangan Sistem Melakukan analisa permasalahan dan membuat perancangan sistem yang termasuk rancangan form atau antar muka d.
Implementasi Dan Pengujian Menerapkan hasil perancangan ke dalam pembuatan sistem (coding) dan melakukan pengujian untuk mengetahui validitas hasil.
e.
Evaluasi Melakukan evaluasi hasil implementasi dan pengujian dalam bentuk kesimpulan dan saran.
5
1.7. Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN Bab ini berisi latar belakang masalah, identifikasi masalah, maksud dan tujuan yang ingin dicapai, batasan masalah, metodologi penelitian yang diterapkan dalam memperoleh dan mengumpulkan data, waktu dan tempat penelitian, serta sistematika penulisan.
BAB II TINJ AUAN PUSTAKA Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik masalah yang diambil dan hal-hal yang berguna dalam proses analisis permasalahan.
BAB III ANALISIS DAN PERANCANGAN Menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar proses yang diteliti serta model matematis untuk analisisnya.
BAB IV IMPLEMENTASI DAN PENGUJ IAN Membahas mengenai pengimplementasian aplikasi yang telah dibuat ke perangkat yang akan digunakan serta melakukan pengujian terhadap aplikasi yang telah diimplementasikan tersebut.
BAB V PENUTUP Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir.