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
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
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,
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
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.
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,
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 (Cr), Ratio of compression (Rc),
Redundancy (Rd), 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 rata-rata sebesar 84.36 %.
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 (Cr), Ratio of compression (Rc), Redundancy (Rd), 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 %.
DAFTAR ISI
2.1.3. Pengukuran Kinerja Kompresi Data 10 2.2 Punctured Elias Codes 11
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem 19
3.1.2. Analisis Kebutuhan Sistem 20
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
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
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 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
Halaman
A Listing Program 76
B Tabel ASCII 93