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. 2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer. 4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer. 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 ), Redundancy (R d ), waktu kompresi (ms) dan waktu dekompresi (ms). Sampel yang 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 ratarata 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 Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran ii iii iv vi vii viii x xi 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 12 Tabel 3.1 String Yang belum Dikompresi 22 Tabel 3.2 String yang dikompresi dengan Kode Punctured (P1) 23 Tabel 3.3 String yang dikompresi dengan Kode Punctured (P2) 24 Tabel 3.4 Spesifikasi Use Case Compression 28 Tabel 3.5 Spesifikasi Use Case Decompression 28 Tabel 3.6 Spesifikasi Use Case Open File Text 29 Tabel 3.7 Spesifikasi Use Case Save File Compressed 29 Tabel 3.8 Spesifikasi Use Case Choose Code 29 Tabel 3.9 Spesifikasi Use Case Compress 30 Tabel 3.10 Spesifikasi Use Case Open File Compressed 30 Tabel 3.11 Spesifikasi Use Case Save File Text 31 Tabel 3.12 Spesifikasi Use Case Open File Header 31 Tabel 3.13 Spesifikasi Use Case Decompress 32 Tabel 3.14 Spesifikasi Use Case Clear 32 Tabel 3.15 Pseudocode Untuk Kode Punctured P1 42 Tabel 3.16 Pseudocode Untuk Kode Punctured P2 43 Tabel 3.17 Pseudocode Menghitung Jumlah dan Frekuensi Karakter 45 Tabel 3.18 Pseudocode Untuk Flagging 46 Tabel 3.19 Pseudocode Untuk Padding 46 Tabel 3.20 Pseudocode Untuk Encode 47 Tabel 3.21 Pseudocode Untuk Decode 48 Tabel 4.1 Hasil Pengujian String Homogen Dengan P1 63 Tabel 4.2 Hasil Pengujian String Homogen Dengan P2 64 Tabel 4.3 Hasil Pengujian String Heterogen Dengan P1 68 Tabel 4.4 Hasil Pengujian String Heterogen Dengan P2 69 DAFTAR GAMBAR
Halaman Gambar 2.1 Komresi Lossless 7 Gambar 2.2 Kompresi Lossy 8 Gambar 2.3 Proses Kompresi dan Dekompresi 9 Gambar 3.1 Diagram Ishikawa untuk Analisis Masalah 20 Gambar 3.2 Use Case Diagram Pada Sistem 27 Gambar 3.3 Activity Diagram Proses Open File Text 33 Gambar 3.4 Activity Diagram Proses Save File Compressed 33 Gambar 3.5 Activity Diagram Proses Choose Code 34 Gambar 3.6 Activity Diagram Proses Compress 34 Gambar 3.7 Activity Diagram Proses Open File Compressed 35 Gambar 3.8 Activity Diagram Proses Save File Text 35 Gambar 3.9 Activity Diagram Proses Open File Header 36 Gambar 3.10 Activity Diagram Proses Decompress 36 Gambar 3.11 Sequence Diagram Pada Proses Kompresi 37 Gambar 3.12 Sequence Diagram Pada Proses Dekompresi 38 Gambar 3.13 Class Diagram Pada Sistem 39 Gambar 3.14 Flowchart SistemSecara Umum 40 Gambar 3.15 Flowchart Kode Punctured P1 41 Gambar 3.16 Flowchart Kode Punctured P2 43 Gambar 3.17 Flowchart Proses Kompresi 44 Gambar 3.18 Flowchart Proses Dekompresi 47 Gambar 3.19 Form Halaman Utama 49 Gambar 3.20 Form Halaman Compression 50 Gambar 3.21 Form Halaman Decompression 51 Gambar 3.22 Form Halaman Profil 53 Gambar 4.1 Tampilan Form Halaman Utama 55 Gambar 4.2 Tampilan Form Compression 55 Gambar 4.3 Tampilan Form Decompression 56 Gambar 4.4 Tampilan Form Profil 56 Gambar 4.5 Tampilan Open File Dialog Untuk Input File Teks 57
Gambar 4.6 Tampilan Save File Dialog Untuk Hasil Kompresi 58 Gambar 4.7 Tampilan Aplikasi Setelah File Input dan Output ditentukan 58 Gambar 4.8 Tampilan Informasi Hasil Kompresi 59 Gambar 4.9 FileHeader Hasil Kompresi 59 Gambar 4.10 File PEC Hasil Kompresi 60 Gambar 4.11 Tampilan Open File Dialog Untuk File PEC 61 Gambar 4.12 Tampilan Save File Dialog Hasil Dekompresi 61 Gambar 4.13 Tampilan Open File Dialog Untuk File Header 62 Gambar 4.14 Tampilan Informasi Hasil Dekompresi 62 Gambar 4.15 Grafik Ratio Of Compression terhadap String Homogen 65 Gambar 4.16 Grafik Compression Ratio terhadap String Homogen 65 Gambar 4.17 Grafik Redundancy terhadap String Homogen 66 Gambar 4.18 Grafik Waktu Kompresi terhadap String Homogen 66 Gambar 4.19 Grafik Waktu Dekompresi terhadap String Homogen 67 Gambar 4.20 Grafik Ratio Of Compression terhadap String Heterogen 70 Gambar 4.21 Grafik Compression Ratio terhadap String Heterogen 70 Gambar 4.22 Grafik Redundancy terhadap String Heterogen 71 Gambar 4.23 Grafik Waktu Kompresi terhadap String Heterogen 71 Gambar 4.24 Grafik Waktu Dekompresi terhadap String Heterogen 72 DAFTAR LAMPIRAN
Halaman A Listing Program 76 B Tabel ASCII 93 C Curriculum Vitae 94