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 Codes32 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 Lossless39 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 Kompresi65 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