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 HUFFMAN

  Disusun 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 .............................. 66

  DAF 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 ......................... 68

  BAB 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.