Implementasi Metode Punctured Elias Codes Pada Kompresi File Text

  

IMPLEMENTASI METODE PUNCTURED ELIAS CODES PADA

KOMPRESI FILE TEXT

SKRIPSI

REZA ANDIKA

121421031

  

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014

  IMPLEMENTASI METODE PUNCTURED ELIAS CODES PADA KOMPRESI FILE TEXT SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah

  Sarjana Ilmu Komputer REZA ANDIKA

  121421031 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN

  2014

  

PERSETUJUAN

  Judul : IMPLEMENTASI METODE PUNCTURED ELIAS

CODES PADA KOMPRESI FILE TEXT

  Kategori : SKRIPSI Nama : REZA ANDIKA Nomor Induk Mahasiswa : 121421031 Program Studi : EKSTENSI S1 ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

  UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Herriyance, ST, M.Kom Drs. Marihat Situmorang, M.Kom NIP. 19801024 201012 1 002 NIP. 19631214 198903 1 001 Diketahui/disetujui oleh Program Studi Ekstensi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 19620217 199103 1 001

  

PERNYATAAN

  IMPLEMENTASI METODE PUNCTURED ELIAS CODES PADA KOMPRESI FILE TEXT SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

  Medan, Juli 2014 Reza Andika NIM. 121421031

  

PENGHARGAAN

  Puji Syukur Alhamdulillah Penulis ucapkan ke hadirat Allah SWT, yang masih memberikan kesempatan dan kesehatan sehingga akhirnya Skripsi ini dapat diselesaikan dalam waktu yang telah ditetapkan.

  Dalam menyelesaikan Skripsi ini juga, penulis banyak mendapatkan bimbingan dan bantuan dari berbagai pihak baik berupa dukungan moril maupun materil. Pada kesempatan ini penulis ingin mengucapkan banyak terima kasih yang sebesar-sebesarnya kepada:

  1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.

  2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

  3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

  4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

  5. Bapak Drs. Marihat Situmorang, M.Kom selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

  6. Bapak Herriyance, ST, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

  7. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembanding I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

  8. Bapak Jos Timanta Tarigan, S.Kom, M.Sc selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

  9. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

10. Terkhusus penulis ucapkan terima kasih yang sebesar-besarnya kepada kedua

  Orang Tua penulis, Rusdianto (Ayahanda) dan Susilawati (Ibunda) yang dengan keikhlasan dan ketulusan hatinya membesarkan, mendidik, memberikan doa restu, cinta kasih, pengorbanan, dan dukungan, baik dukungan moril maupun materil yang diberikan kepada penulis. Kepada Abang dan Kakakku tersayang, Richi Fadil dan Kusmarini.

  11. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk 2012 yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.

  12. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini sehingga dapat bermanfaat bagi kita semuanya.

  Medan, Juli 2014 Penulis, ( Reza Andika )

  

ABSTRAK

  Penelitian ini bertujuan untuk merancang sebuah aplikasi berbasis desktop yang dapat mengkompresi file teks dan mengukur kinerja metode Punctured Elias Codes. Pada Metode Punctured Elias Codes terdapat dua kode yaitu P1 dan P2. Kompresi file teks dilakukan dengan membaca input String pada file teks (*.txt dan *.doc) dan mengkodekan String menggunakan Punctured Elias Code P1 atau P2, kemudian melakukan proses kompresi. Hasil akhir dari kompresi adalah file berekstensi *.header sebagai informasi kode dan karakter dari string dan *.pec yang merupakan String bit hasil kompresi yang dapat didekompresi. Keluaran dari hasil dekompresi adalah sebuah file asli yang disimpan dengan ekstensi file *.txt atau *.doc sesuai pada file nama ekstensi file sebelum *.pec. Variabel yang digunakan dalam pengukuran kinerja metode kompresi adalah Compression ratio (C r ), Ratio of compression (R c ),

  (R ), waktu kompresi (ms) dan waktu dekompresi (ms). Sampel yang

  Redundancy d

  digunakan pada proses pengujian yaitu String yang terdiri dari satu jenis karakter (String Homogen) dan String yang terdiri dari beberapa jenis karakter (String Heterogen) yang tersimpan pada file teks yang berekstensi *.txt atau *.doc. Hasil Penelitian menunjukkan bahwa kinerja metode Punctured Elias Code P1 lebih baik dibandingkan dengan P2 dalam proses kompresi String Homogen dengan kompresi rasio rata-rata sebesar 42.39 % dan kinerja metode Punctured Elias Code P2 lebih baik dibandingkan P1 dalam proses kompresi String Heterogen kompresi rasio rata- rata sebesar 84.36 %.

  Kata Kunci : Kompresi File Teks, Punctured Elias Codes.

  

THE IMPLEMENTATION OF METHOD PUNCTURED ELIAS

CODES IN TEXT FILE COMPRESSION

  ABSTRACT This research aims to design a desktop based application that can compress text files and measure the performance of the method punctured Elias Codes. In method punctured Elias Codes there are two codes, namely P1 and P2. Compression is done by reading input string in a text file (*.txt and *.doc) and encode string using punctured Elias Code P1 or P2, then do the compression process. The end result of compression are the file which contain extension *. header as information of code and character of the string and *. pec as a string of bits of compression results that can be decompressed. Output of the decompression is an original file that is saved with the file extension *. txt or *. doc depend on the file name before the file extension *. pec. The variables used in measuring the performance of the compression method is the Compression ratio (C r ), Ratio of compression (R c ), Redundancy (R d ), compression time (ms) and the decompression time (ms). The samples used in the testing process is a String consisting of one kind of character (Homogeneous String) and String consisting of several kinds of characters (String Heterogeneous) stored in a text file with extension *. txt or *. doc. The result of research show that the performance of the method punctured Elias Code P1 is better than P2 in the compression process of Homogeneous String with the average of compression ratio is 42.39 % and the performance of the method punctured Elias Code P2 is better than P1 in compression process of Heterogeneous String with the average of compression ratio is 84.36 %.

  Keywords: File Text Compression, Punctured Elias Codes.

DAFTAR ISI

  Halaman Persetujuan ii

  Pernyataan iii

  Penghargaan iv

  Abstrak vi

  Abstract

  vii Daftar Isi viii

  Daftar Tabel x

  Daftar Gambar xi

  Daftar Lampiran xiii

BAB 1 PENDAHULUAN

  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 Metodologi Penelitian

  4

  1.7 Sistematika Penulisan

  5 BAB 2TINJAUAN PUSTAKA

  2.1 Kompresi Data

  6

  2.1.1. Teknik Kompresi Data

  7

  2.1.2. Konsep Kompresi Data

  8

  2.1.3. Pengukuran Kinerja Kompresi Data

  10

  2.2 Punctured Elias Codes

  11

  2.3 File Text

  12

  2.3.1. Format Teks

  13

  2.4 Bahasa Pemrograman Java

  14

  2.5 UML (Unified Modelling Language)

  15

  2.5.1. Use Case

  15

  2.5.2. Activity Diagram

  16

  2.5.3. Sequence Diagram

  17

  2.5.4. Class Diagram

  18 BAB 3 ANALISIS DAN PERANCANGAN SISTEM

  3.1 Analisis Sistem

  19

  3.1.1. Analisis Masalah

  19

  3.1.2. Analisis Kebutuhan Sistem

  20

  3.1.3. Analisis Proses

  21

  3.2 Pemodelan Sistem

  27

  3.2.1. Use Case Diagram

  27

  3.2.2. Activity Diagram

  32

  3.2.3. Sequence Diagram

  37

  3.2.4. Class Diagram

  38

  3.3 Perancangan Sistem

  39

  3.3.1. Perancangan Alur Proses Sistem Secara Umum

  40

  3.3.2. Perancangan Alur Proses Untuk Membangkitkan Kode

  Punctured Elias Codes

  41

  3.3.3. Perancangan Alur Proses Kompresi dan Dekompresi

  44

  3.3.4. Perancangan Antarmuka Sistem

  48 BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

  4.1. Implementasi Sistem

  54

  4.1.1. Form Halaman Utama

  54

  4.1.2. Form Compression

  55

  4.1.3. Form Decompression

  55

  4.1.4. Form Profil

  56

  4.2. Pengujian Sistem

  56

  4.2.1. Pengujian Proses Kompresi

  57

  4.2.2. Pengujian Proses Dekompresi

  60

  4.3. Hasil Pengujian

  62 BAB 5 KESIMPULAN DAN SARAN

  5.1. Kesimpulan

  73

  5.2. Saran

  74 Daftar Pustaka

  75 DAFTAR TABEL Halaman

Tabel 2.1 Tabel Punctured Elias Codes

  32 Tabel 3.14 Spesifikasi Use Case Clear

  68 Tabel 4.4 Hasil Pengujian String Heterogen Dengan P2

  64 Tabel 4.3 Hasil Pengujian String Heterogen Dengan P1

  63 Tabel 4.2 Hasil Pengujian String Homogen Dengan P2

  48 Tabel 4.1 Hasil Pengujian String Homogen Dengan P1

  47 Tabel 3.21 Pseudocode Untuk Decode

  46 Tabel 3.20 Pseudocode Untuk Encode

  46 Tabel 3.19 Pseudocode Untuk Padding

  45 Tabel 3.18 Pseudocode Untuk Flagging

  43 Tabel 3.17 Pseudocode Menghitung Jumlah dan Frekuensi Karakter

  42 Tabel 3.16 Pseudocode Untuk Kode Punctured P2

  32 Tabel 3.15 Pseudocode Untuk Kode Punctured P1

  31 Tabel 3.13 Spesifikasi Use Case Decompress

  12 Tabel 3.1 String Yang belum Dikompresi

  31 Tabel 3.12 Spesifikasi Use Case Open File Header

  30 Tabel 3.11 Spesifikasi Use Case Save File Text

  30 Tabel 3.10 Spesifikasi Use Case Open File Compressed

  29 Tabel 3.9 Spesifikasi Use Case Compress

  29 Tabel 3.8 Spesifikasi Use Case Choose Code

  29 Tabel 3.7 Spesifikasi Use Case Save File Compressed

  28 Tabel 3.6 Spesifikasi Use Case Open File Text

  28 Tabel 3.5 Spesifikasi Use Case Decompression

  24 Tabel 3.4 Spesifikasi Use Case Compression

  23 Tabel 3.3 String yang dikompresi dengan Kode Punctured (P2)

  22 Tabel 3.2 String yang dikompresi dengan Kode Punctured (P1)

  69 DAFTAR GAMBAR Halaman

Gambar 2.1 Komresi Lossless

  39 Gambar 3.14 Flowchart SistemSecara Umum

  56 Gambar 4.5 Tampilan Open File Dialog Untuk Input File Teks

  56 Gambar 4.4 Tampilan Form Profil

  55 Gambar 4.3 Tampilan Form Decompression

  55 Gambar 4.2 Tampilan Form Compression

  53 Gambar 4.1 Tampilan Form Halaman Utama

  51 Gambar 3.22 Form Halaman Profil

  50 Gambar 3.21 Form Halaman Decompression

  49 Gambar 3.20 Form Halaman Compression

  47 Gambar 3.19 Form Halaman Utama

  44 Gambar 3.18 Flowchart Proses Dekompresi

  43 Gambar 3.17 Flowchart Proses Kompresi

  41 Gambar 3.16 Flowchart Kode Punctured P2

  40 Gambar 3.15 Flowchart Kode Punctured P1

  38 Gambar 3.13 Class Diagram Pada Sistem

  7 Gambar 2.2 Kompresi Lossy

  37 Gambar 3.12 Sequence Diagram Pada Proses Dekompresi

  36 Gambar 3.11 Sequence Diagram Pada Proses Kompresi

  36 Gambar 3.10 Activity Diagram Proses Decompress

  35 Gambar 3.9 Activity Diagram Proses Open File Header

  35 Gambar 3.8 Activity Diagram Proses Save File Text

  34 Gambar 3.7 Activity Diagram Proses Open File Compressed

  34 Gambar 3.6 Activity Diagram Proses Compress

  33 Gambar 3.5 Activity Diagram Proses Choose Code

  33 Gambar 3.4 Activity Diagram Proses Save File Compressed

  27 Gambar 3.3 Activity Diagram Proses Open File Text

  20 Gambar 3.2 Use Case Diagram Pada Sistem

  9 Gambar 3.1 Diagram Ishikawa untuk Analisis Masalah

  8 Gambar 2.3 Proses Kompresi dan Dekompresi

  57

Gambar 4.6 Tampilan Save File Dialog Untuk Hasil Kompresi

  65 Gambar 4.17 Grafik Redundancy terhadap String Homogen

  71 Gambar 4.24 Grafik Waktu Dekompresi terhadap String Heterogen

  71 Gambar 4.23 Grafik Waktu Kompresi terhadap String Heterogen

  70 Gambar 4.22 Grafik Redundancy terhadap String Heterogen

  70 Gambar 4.21 Grafik Compression Ratio terhadap String Heterogen

  67 Gambar 4.20 Grafik Ratio Of Compression terhadap String Heterogen

  66 Gambar 4.19 Grafik Waktu Dekompresi terhadap String Homogen

  66 Gambar 4.18 Grafik Waktu Kompresi terhadap String Homogen

  65 Gambar 4.16 Grafik Compression Ratio terhadap String Homogen

  58 Gambar 4.7 Tampilan Aplikasi Setelah File Input dan Output ditentukan

  62 Gambar 4.15 Grafik Ratio Of Compression terhadap String Homogen

  62 Gambar 4.14 Tampilan Informasi Hasil Dekompresi

  61 Gambar 4.13 Tampilan Open File Dialog Untuk File Header

  61 Gambar 4.12 Tampilan Save File Dialog Hasil Dekompresi

  60 Gambar 4.11 Tampilan Open File Dialog Untuk File PEC

  59 Gambar 4.10 File PEC Hasil Kompresi

  59 Gambar 4.9 FileHeader Hasil Kompresi

  58 Gambar 4.8 Tampilan Informasi Hasil Kompresi

  72 DAFTAR LAMPIRAN Halaman A Listing Program

  76 B Tabel ASCII

  93 C Curriculum Vitae

  94