ANALISIS DAN IMPLEMENTASI ALGORITMA KOMPRESI SUBEXPONENTIAL CODES DAN INVERTED ELIAS DELTA PADA FILE TEKS SKRIPSI DEA YULIANDA PRATIWI 141421105 PROGRAM STUDI EKSTENSI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
ANALISIS DAN IMPLEMENTASI ALGORITMA KOMPRESI SUBEXPONENTIAL CODES DAN INVERTED ELIAS DELTA PADA FILE TEKS SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer DEA YULIANDA PRATIWI 141421105 PROGRAM STUDI EKSTENSI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
ii PERSETUJUAN Judul : ANALISIS DAN IMPLEMENTASI ALGORITMA KOMPRESI SUBEXPONENTIAL CODES DAN INVERTED ELIAS DELTA PADA FILE TEKS Kategori : SKRIPSI Nama : DEA YULIANDA PRATIWI Nomor Induk Mahasiswa : 141421105 Program Studi : EKSTENSI S-1 ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Pembimbing 2 Pembimbing 1 M. Andri Budiman, S.T., M.Comp.Sc.M.E.M Dr. Syahril Efendi, S.Si., M.IT NIP. 19751008 200801 1 001 NIP. 19671110 199602 1 001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001
iii PERNYATAAN ANALISIS DAN IMPLEMENTASI ALGORITMA KOMPRESI SUBEXPONENTIAL CODES DAN INVERTED ELIAS DELTA PADA FILE TEKS SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing - masing telah disebutkan sumbernya. Medan, Mei 2016 Dea Yulianda Pratiwi NIM.141421105
iv PENGHARGAAN Alhamdulillah segala puji dan syukur atas nikmat kepada Allah Yang Maha Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S-1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. Pada kesempatan ini penulis mengucapkan terima kasih kepada pihak yang telah banyak membimbing, mengarahkan, membantu, dan memberikan dukungan semangat dan kasih sayang dalam menyelesaikan skripsi ini. Penulis mengucapkan terima kasih kepada : 1. Bapak Prof. DR. Runtung Sitepu, SH, MHum selaku Rektor Universitas Sumatera Utara. 2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc 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 S-1 Ilmu Komputer. 5. Bapak Dr. Syahril Efendi, S.Si., M.IT selaku Dosen Pembimbing I yang telah memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini. 6. M. Andri Budiman, S.T.,M.Comp.Sc.M.E.M selaku Dosen Pembimbing II yang telah memberikan arahan, waktu, tenaga, pikiran, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini. 7. Bapak Drs. Agus Salim Harahap, M.Si selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan laporan skripsi serta mendukung penuh dalam penyusunan skiripsi 8. Bapak Drs. Marihat Situmorang, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 9. Semua dosen dan semua pegawai di Program Studi S-1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. 10. Teristimewa kepada kedua orang tua saya A. Boni Siswanto dan Loly Erwita yang senantiasa memberikan doa, dukungan moril dan materil, motivasi, semangat dan kasih sayang yang tiada henti kepada penulis sehingga penulis dapat menyelesaikan skripsi ini. 11. Teman-teman mahasiswa Ekstensi S-1 Ilmu Komputer stambuk 2014, yang telah memberikan dukungan dan kerja sama yang baik kepada penulis pada masa perkuliahan hingga penyelesaian skripsi ini.
v 12. Sahabat hidup saya, Widyana Paramita, Annisa Sadjidah, dan Rafika Hani yang telah memberikan dukungan dan semangat hingga penyelesaian skripsi ini. 13. Sahabat seperjuangan saya, Ogiana, Desy H Husni, Nadra Katika Lingga, Agus Manur, Iqbal Habibie yang telah memberikan semangat untuk cepat tamat dan menjadi teman diskusi dalam penyelesaian skripsi ini. 14. Dan 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, Mei 2016 Penulis.
vi ABSTRAK Ukuran data atau file yang besar akan mempengaruhi jaringan, jaringan akan menjadi sibuk dan jalur komunikasi menjadi lambat sehingga menghabiskan waktu yang lama. Kompresi data bertujuan untuk mengurangi jumlah bit yang digunakan dalam penyimpanan atau pun pengiriman data. Penelitian ini bertujuan untuk merancang sebuah aplikasi berbasis desktop yang dapat mengkompresi file teks dan mengukur kinerja dari algoritma Subexponential Codes dan Inverted Elias Delta. Pengukuran kinerja dari masing-masing algoritma berdasarkan ratio yaitu, CR(Compression Ratio) dan RC (Ratio Of Compression), Space Saving (SS), dan Time Process (waktu yang berjalan selama proses kompresi dan dekompresi). Kompresi file teks dilakukan dengan membaca input String pada file teks yang berekstensi (*.txt). 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. Hasil pengujian menyatakan bahwa algoritma Subexponential Codes tidak lebih baik dari algoritma Inverted Elias Delta. waktu kompresi dan dekompresi yang dihasilkan algoritma Subexponential Codes relative lebih besar dibandingkan dengan algoritma Inverted Elias Delta. Kata Kunci : Kompresi File Teks, Algoritma Subexponential Codes dan Algoritma Inverted Elias Delta.
vii ANALYSIS AND IMPLEMENTATION OF ALGORITHMS SUBEXPONENTIAL CODES AND INVERTED ELIAS DELTA IN TEXT FILE COMPRESSION ABSTRACT Large file size will affect the network, the network will be busy and the lines of communication becomes slow so spending a long time. Data Compression aims to decrease the amount of bits used in storage or data transmission. The purpose of this study was to design a desktop based application that can compress text files, and measure the performance of the algorithm Subexponential Codes and Inverted Elias Delta. Measurement of the performance of each algorithm based on the ratio that is, CR (Compression Ratio) and RC (Ratio Of Compression), Space Saving (SS), and Time Process (the elapsed time during the process of compression and decompression). The compression process is to read the text file on a String input text file extension (*.txt). The samples used in the testing process is a string composed of one type of character (Homogeneous String) and a string composed of several types of characters (String Heterogeneous) that are stored in a text file. Results of test on the system that Subexponential Codes algorithm is not better than the algorithm Inverted Elias Delta. Time of compression and decompression algorithms Subexponential Codes is generated relative larger than the algorithm Inverted Elias Delta. Keywords: Text File Compression Algorithm, Algorithm Subexponential Codes and Algorithm Inverted Elias Delta.
viii DAFTAR ISI Halaman Persetujuan Pernyataaan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv vi vii viii x xi BAB 1 PENDAHULUAN 1 1.1. Latar Belakang 1 1.2. Rumusan Masalah 2 1.3. Batasan Masalah 3 1.4. Tujuan Penelitian 3 1.5. Manfaat Penelitian 4 1.6. Metodologi Penelitian 4 1.7. Sistematika Penulisan 5 BAB 2 TINJAUAN PUSTAKA 7 2.1. Kompresi Data 7 2.1.1. Teknik Kompresi Data 8 2.1.2. Konsep Kompresi Data 9 2.1.3. Parameter Analisis Kinerja Algoritma Kompresi 10 2.2. Dekompresi Data 12 2.3. Algoritma 12 2.4. Algoritma Subexponential Codes 12 2.5. Algoritma Inverted Elias Delta 14 2.6. File Teks 17 2.7. Unified Modeling Language (UML) 18 2.8. Bahasa Pemograman C# 19 2.9. Penelitian Yang Relevan 20 BAB 3 ANALISIS DAN PERANCANGAN SISTEM 21 3.1. Analisis Sistem 21 3.1.1. Analisis Permasalahan Pada Sistem 21 3.1.2. Analisis Kebutuhan Pada Sistem 22 3.1.2.1. Kebutuhan Fungsional 23 3.1.2.2. Kebutuhan Non-Fungsional 23 3.1.3. Analisis Proses Pada Sistem 24
ix 3.1.3.1. Analisis Proses Kompresi Pada Algoritma Subexponential Codes 24 3.1.3.2. Analisis Proses Kompresi Pada Algoritma Inverted Elias Delta 39 3.1.3.3. Analisis Proses Dekompresi Pada Algoritma Subexponential Codes dan Inverted Elias Delta 45 3.1.4. Pemodelan Terhadap Sistem 47 3.1.4.1. Use Case Diagram 47 3.1.4.2. Activity Diagram 51 3.1.4.2.1. Activity Diagram Pada Proses Kompresi 51 3.1.4.2.2. Activity Diagram Pada Proses Dekompresi 53 3.1.4.3. Sequence Diagram 55 3.1.4.3.1. Sequence Diagram Proses Kompresi 55 3.1.4.3.2. Sequence Diagram Proses Dekompresi 55 3.1.4.3. Class Diagram 57 3.2. Perancangan Sistem 58 3.2.1. Perancangan Alur Proses Sistem Secara Umum 58 3.2.2. Perancangan Alur Proses Kompresi Dan Dekompresi 61 3.2.2.1. Perancangan Alur Proses Kompresi 61 3.2.2.1. Perancangan Alur Proses Dekompresi Algoritma Subexponential Codes dan Inverted Elias Delta 63 3.2.3. Perancangan Antarmuka Sistem 64 BAB 4 Implementasi dan Pengujian Sistem 71 4.1. Implementasi Sistem 71 4.1.1. Form Home 71 4.1.2. Form Compression 72 4.1.3. Form Decompression 73 4.1.4. Form Help 73 4.1.5. Form About 74 4.2. Pengujian Sistem 74 4.2.1. Pengujian Proses Kompresi 74 4.2.2. Pengujian Proses Dekompresi 78 4.3. Hasil Pengujian 82 BAB 5 KESIMPULAN DAN SARAN 88 5.1 Kesimpulan 88 5.2 Saran 89 DAFTAR PUSTAKA LAMPIRAN
x DAFTAR TABEL Halaman Tabel 2.1. Tabel Kode k Subexponential Codes 13 Tabel 2.2. Tabel Kode Elias Delta Code 15 Tabel 2.3. Tabel Kode Inverted Elias Delta 16 Tabel 3.1. Tabel Kode k Subeksponential Codes 25 Tabel 3.2. Tabel Ukuran String Subexponential Codes Sebelum Dikompres 26 Tabel 3.3. Tabel Ukuran String Sebelum Dikompres Yang Telah Diurutkan Secara Descending 27 Tabel 3.4. Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 0 27 Tabel 3.5. Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 1 29 Tabel 3.6. Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 2 30 Tabel 3.7. Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 3 31 Tabel 3.8. Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 4 33 Tabel 3.9. Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 5 34 Tabel 3.10. Tabel Ukuran String Inverted Elias Delta Sebelum di Kompres 39 Tabel 3.11. Tabel Ukuran String Sebelum di Kompres Yang Telah Diurutkan Secara Descending 40 Tabel 3.12. Tabel Kode Inverted Elias Delta 42 Tabel 3.13. Tabel Total Bit Setelah Dikompres Menggunakan Tabel 3.14. Inverted Elias Delta Tabel Total Bit Setelah Dikompres Menggunakan Subexponential Codes untuk nilai k = 0 45 Tabel 3.15. Tabel Spesifikasi Use Case Kompresi 49 Tabel 3.16. Tabel Spesifikasi Use Case Dekompresi 49 Tabel 3.17. Tabel Spesifikasi Use Case Pilih Algoritma 49 Tabel 3.18. Tabel Spesifikasi Use Case Pilih File 49 Tabel 3.19. Tabel Spesifikasi Use Case Pilih Pengkodean 50 Tabel 3.20. Tabel Spesifikasi Use Case Pilih Simpan 50 Tabel 3.21. Tabel Spesifikasi Use Case Pilih Ekstrak File 50 Tabel 4.1. Hasil Pengujian 1 String Homogen Dengan Subexponential Codes 82 Tabel 4.2. Hasil Pengujian 1 String Homogen Dengan Inverted Elias Delta 82 Tabel 4.3. Hasil Pengujian 2 String Heterogen Dengan Subexponential Codes 83 Tabel 4.4. Hasil Pengujian 2 String Heterogen Dengan Inverted Elias Delta 83
xi DAFTAR GAMBAR Halaman Gambar 2.1. Diagram Blok Proses Kompresi Dan Dekompresi Data 8 Gambar 2.2. Gambar Proses Kompresi dari Algoritma Inverted Elias Delta Codes 15 Gambar 2.3. Gambar Proses Dekompresi Algoritma Elias Delta 16 Gambar 2.4. Gambar Text File Sederhana 17 Gambar 2.5. Gambar Tampilan Awal Microsoft Visual Studio 2010 19 Gambar 3.1. Gambar Cause and Effect Diagram 22 Gambar 3.2. Grafik perbandingan jumlah string bit setelah di kompres berdasarkan nilai k 35 Gambar 3.3. Gambar Use-Case Diagram Pada Aplikasi Yang Akan Dirancang 48 Gambar 3.4. Gambar Activity Diagram Pilih Algoritma 51 Gambar 3.5. Gambar Activity Diagram File 52 Gambar 3.6. Gambar Activity Diagram Pengkodean 52 Gambar 3.7. Gambar Activity Diagram Simpan 53 Gambar 3.8. Gambar Activity Diagram Pilih File Pada Proses Dekompresi 53 Gambar 3.9. Gambar Activity Diagram Pengkodean Pada Proses Dekompresi 54 Gambar 3.10. Gambar Activity Diagram Simpan Pada Proses Dekompresi 54 Gambar 3.11. Gambar Sequence Diagram Pada Proses Kompresi Menggunakan Algoritma Subexponential Codes 55 Gambar 3.12. Gambar Sequence Diagram Pada Proses Kompresi Menggunakan Algoritma Inverted Elias Delta 56 Gambar 3.13. Gambar Sequence Diagram Pada Proses Dekompres 56 Gambar 3.14. Gambar Class Diagram Pada Sistem 57 Gambar 3.15. Gambar Flowchart Dengan Metode Subexponential Codes Secara Umum Pada Sistem 59 Gambar 3.16. Gambar Flowchart Dengan Metode Inverted Elias Delta Secara Umum Pada Sistem 60 Gambar 3.17. Gambar Flowchart Kompresi Algoritma Subexponential Codes 61 Gambar 3.18. Gambar Flowchart Kompresi Algoritma Inverted Elias Delta 62 Gambar 3.19. Gambar Flowchart Dekompresi Algoritma Subexponential Codes Dan Inverted Elias Delta 63 Gambar 3.20. Gambar Form Home 64 Gambar 3.21. Gambar Form Compression 65 Gambar 3.22. Gambar Form Decompression 67 Gambar 3.23. Gambar Form Help 68 Gambar 3.24. Gambar Form About 69 Gambar 4.1. Gambar Tampilan Form Home 72 Gambar 4.2. Gambar Tampilan Form Compression 72 Gambar 4.3. Gambar Tampilan Form Decompression 73 Gambar 4.4. Gambar Tampilan Form Help 73 Gambar 4.5. Gambar Tampilan Form About 74 Gambar 4.6. Gambar Tampilan Open Dialog File 75
xii Gambar 4.7. Gambar Tampilan Setelah Input File 75 Gambar 4.8. Gambar Tampilan Setelah Save Dialog File 76 Gambar 4.9. Gambar Tampilan Pada Masing-Masing Text Field 76 Gambar 4.10. Gambar Tampilan Hasil Parameter Pada Proses Kompresi 77 Gambar 4.11. Gambar Tampilan File *.iedc Hasil Dari Proses Kompresi 77 Gambar 4.12. Gambar Tampilan Open Dialog File Proses Decompression 78 Gambar 4.13. Gambar Tampilan Setelah File dipilih Untuk Proses Dekompresi 78 Gambar 4.14. Gambar Tampilan Pada Teks Box Area Proses Dekompresi 79 Gambar 4.15. Gambar Tampilan Save Dialog File Proses Dekompresi 79 Gambar 4.16. Gambar Tampilan Pada Masing-Masing Teks Field 80 Gambar 4.17. Gambar Tampilan Time Process Decompress 80 Gambar 4.18. Gambar Tampilan Ukuran File Asli 81 Gambar 4.19. Gambar Tampilan Ukuran File Setelah dikompresi 81 Gambar 4.20. Gambar Tampilan Ukuran File Setelah didekompresi 81 Gambar 4.21. Grafik Ratio Of Compression Terhadap String Homogen 83 Gambar 4.22. Grafik Compression Ratio Terhadap String Homogen 83 Gambar 4.23. Grafik Space Saving Terhadap String Homogen 84 Gambar 4.24. Grafik Waktu Kompresi Terhadap String Homogen 84 Gambar 4.25. Grafik Waktu Dekompresi Terhadap String Homogen 84 Gambar 4.26. Grafik Ratio Of Compression Terhadap String Heterogen 86 Gambar 4.27. Grafik Compression Ratio Terhadap String Heterogen 86 Gambar 4.28. Grafik Space Saving Terhadap String Hoterogen 86 Gambar 4.29. Grafik Waktu Kompresi Terhadap String Heterogen 87 Gambar 4.30. Grafik Waktu Dekompresi Terhadap String Heterogen 87