• Tidak ada hasil yang ditemukan

ANALISIS PERBANDINGAN ALGORITMA BOLDI VIGNA ζ1 CODE DAN ALGORITMA EVEN-RODEH CODE PADA KOMPRESI FILE TEKS SKRIPSI GALUH ATIKA NABILA

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS PERBANDINGAN ALGORITMA BOLDI VIGNA ζ1 CODE DAN ALGORITMA EVEN-RODEH CODE PADA KOMPRESI FILE TEKS SKRIPSI GALUH ATIKA NABILA"

Copied!
109
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN ALGORITMA BOLDI VIGNA ζ1 CODE DAN ALGORITMA EVEN-RODEH CODE PADA KOMPRESI FILE TEKS

SKRIPSI

GALUH ATIKA NABILA 151401136

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2019

(2)

ANALISIS PERBANDINGAN ALGORITMA BOLDI VIGNA ζ1 CODE DAN ALGORITMA EVEN-RODEH CODE PADA KOMPRESI FILE TEKS

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

GALUH ATIKA NABILA 151401136

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2019

(3)
(4)

PERNYATAAN

ANALISIS PERBANDINGAN ALGORITMA BOLDI VIGNA ζ1 CODE DAN ALGORITMA EVEN-RODEH CODE PADA KOMPRESI FILE TEKS

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Februari 2019

Galuh Atika Nabila 151401136

(5)

PENGHARGAAN

Puji syukur kita sampaikan kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat serta karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini dengan sebaik-baiknya.

Pada dasarnya penyusunan skripsi merupakan syarat mutlak yang harus dipenuhi untuk menyelesaikan pendidikan dan menyandang gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara.

Tidak dapat dipungkiri, skripsi ini dapat selesai karena bantuan, semangat, motivasi, dan kerjasama yang diterima penulis dari orang-orang terdekat terutama kedua orang tua penulis. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada berbagai pihak yang terkait, antara lain :

1. Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara.

2. Prof. Dr. Opim Salim Sitompul M.Sc 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 Fakultas Ilmu komputer dan Teknologi Informasi Universitas Sumatera Utara.

4. Bapak Dr. M.Andri Budiman, S.T., M.Comp.Sc., M.E.M, S.C.J.P selaku dosen pembimbing I yang senantiasa memberikan bimbingan, motivasi, kritik, dan saran kepada penulis selama proses pengerjaan skripsi ini.

5. Bapak Handrizal, S.Si, M.Comp.,Sc selaku dosen pembimbing II yang telah memberikan arahan dan bimbingan kepada penulis dalam penyempurnaan skripsi ini.

6. Bapak Dr. Poltak Sihombing, M.Kom selaku Dosen Pembanding I yang telah memberikan kritik dan saran untuk penyelesaian skripsi ini.

7. Bapak Herriyance, S.T., M.Kom selaku Dosen Pembanding II yang telah memberikan masukan dan saran untuk perbaikan skripsi ini.

8. Seluruh staf pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU.

(6)

9. Ayahanda Drs. Satriawan Taruna, M.Si, Ibunda tercinta Dini Sartika dan adinda Puan Abidah Nitisara yang tanpa lelah memberi kasih sayang, perhatian, dukungan, dan doa terbaik untuk penulis dalam pengerjaan skripsi.

10. Sahabat seperjuangan Khairunnada dan Rahmatunnisa Siregar yang menjadi tempat berkeluh-kesah, serta saling memberikan semangat selama mengerjakan skripsi.

11. Sahabat tercinta UNIFFEECA yang selalu memberikan memberikan semangat kepada penulis selama mengerjakan skripsi.

12. Teman - teman nongkrong di IKLC Irfan Lazuardi, Audhika Gaindata, Zikri Akmal Santoso, Dormen Hutagalung, Hairunnisa Lubis, Cindy Laurent Ginting yang telah memberikan semangat kepada penulis dalam pengerjaan skripsi.

13. Teman – teman seperjuangan Aftika Wulandari dan Mayrisa yang kerap menemani dan memberikan semangat selama pengerjaan skripsi

14. Abangda Rahmat Setyo Aji dan Abangda Muhari Akbar yang senantiasa membantu dan memberi dukungan dalam penulisan skripi ini.

15. Rekan – rekan asisten di Ilmu Komputer Laboratory Center (IKLC) USU yang tidak dapat disebutkan satu per satu.

16. Keluarga Kom A 2015 Ilmu Komputer Universitas Sumatera Utara yang banyak memberi motivasi kepada penulis dalam pengerjaan skripsi ini.

17. Teman-teman stambuk 2015, kakak abang senior dan adik-adik junior yang selalu memberi semangat kepada penulis

18. Dan semua pihak yang telah membantu yang tidak dapat disebutkan satu per satu.

Terima kasih kepada semua pihak, semoga semua kebaikan, perhatian, bantuan serta dukungan yang telah diberikan kepada penulis semoga mendapatkan balasan yang setimpal dari Allah swt. Semoga Skripsi ini dapat bermanfaat bagi orang banyak.

Medan, Februari 2019

Penulis

(7)

ABSTRAK

Penggunaan komputer sebagai media informasi digital merupakan salah satu cara untuk pengaksesan informasi di masyarakat. Informasi yang beredar dapat berupa teks, suara, dan citra yang dikemas secara digital. Tentunya hal ini akan memerlukan media penyimpanan yang lumayan besar. Oleh karena itu diperlukan alternatif dalam penyimpanan data yang dapat meningkatkan efisiensi dari penggunaan media penyimpanan. Salah satu cara yang dapat digunakan adalah teknik kompresi data.

Penelitian ini membandingkan dua algoritma kompresi, yaitu algoritma Boldi-Vigna ζ1 Code dan Even-Rodeh Code dalam hal kompresi file teks. Nilai Compression Ratio (CR), Space Savings (SS), Bit rate serta Running Time dihitung dalam pengujian sebagai bahan pertimbangan untuk membandingkan keunggulan dari kedua algoritma yang digunakan. Pengujian yang dilakukan menggunakan string homogen, string heterogen dan artificial corpus. Dalam kompresi string homogen maupun heterogen, algoritma Boldi-Vigna ζ1 Code lebih unggul karena nilai Bit rate yang lebih rendah serta Space Saving yang lebih besar untuk setiap jumlah string yang digunakan. Dari segi waktu kompresi, algoritma Boldi-Vigna ζ1 Code lebih cepat prosesnya daripada algoritma Even-Rodeh Code. Nilai kompleksitas algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code yang dihasilkan dalam penelitian ini sama besar yaitu 𝛳(𝑛).

Kata kunci: Boldi-Vigna ζ1 Code, Even-Rodeh Code, Kompresi, Dekompresi, File teks

(8)

ANALYSIS OF BOLDI VIGNA ζ1 CODE ALGORITHM AND EVEN-RODEH CODE ALGORITHM FOR COMPRESSION ON TEXT FILE

ABSTRACT

The use of computers as digital information media is one way to access information in society. It can be digitally packaged in the form of text, sound, and image. Surely this would requires a quite big storage. Therefore, it is required an alternative way in data storage that could increase the efficiency in using of storage media. One way that can be used is data compression techniques. This research compares two compression algorithms, Boldi-Vigna ζ1 Code algorithm and Even-Rodeh Code algorithm in text file compression. The value of Compression Ratio, Space Savings (SS), Bit Rate and Running Time are calculated in testing as consideration to compare the advantage of both algorithms. The testing is done using homogeneous string type, heterogeneous string type and artificial corpus. In compression of both homogeneous string type and heterogeneous string type, Boldi-Vigna ζ1 Code algorithm is superior to Even-Rodeh Code algorithm because of lower Bit Rate and greater Space Saving for each number of strings used. In terms of compression time, Boldi-Vigna ζ1 Code algorithm is faster than Even-Rodeh Code algorithm. The complexity of Boldi-Vigna ζ1 Code and Even-Rodeh Code algorithm produced in this research both are the same as θ(n).

Keywords: Boldi-Vigna ζ1 Code, Even-Rodeh Code, Compression, Decompression, Text File

(9)

DAFTAR ISI

Persetujuan ...ii

Pernyataan ...ii

Penghargaan ... iv

Abstrak ... vi

Abstract ... vii

Daftar Isi ... viii

Bab 1 Pendahuluan ...1

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 Metode Penelitian ... 4

1.7 Sistematika Penulisan ... 4

Bab 2 Landasan Teori ...6

2.1. Kompresi Data ... 6

2.2. Teknik Kompresi Data ... 7

2.2.1 Kompresi Lossless (Lossless Compression) ...7

2.2.2 Kompresi Lossy (Lossy Compression) ...8

2.3. Konsep Kompresi Data ... 8

2.4 Parameter Analisis Kinerja Kompresi ... 9

2.5 Algoritma ... 10

2.5.1. Algoritma Even-Rodeh Code ... 10

2.6.2 Algoritma Boldi-Vigna (ζ1) ... 16

2.7 Kompleksitas Algoritma ... 21

2.7.1. Big Theta ... 22

2.8 Penelitian yang Relevan ... 22

Bab 3 Analisis dan Perancangan Sistem ... 24 Halaman

(10)

3.1. Analisis Sistem ... 24

3.1.1. Analisis Masalah ... 24

3.1.2. Analisis Kebutuhan ... 25

3.2. Pemodelan Sistem ... 26

3.2.1. Use Case Diagram ... 27

3.2.2. Activity diagram pada proses kompresi Boldi-Vigna ζ1 Code ... 28

3.2.3. Activity diagram pada proses kompresi Even-Rodeh Code ... 29

3.2.4. Sequence Diagram ... 30

3.3. Pseudocode ... 31

3.3.1. Pseudocode Algoritma Boldi-Vigna ζ1 Code ... 32

3.3.2. Pseudocode Algoritma Even-Rodeh Code ... 32

3.4. Flowchart... 33

3.4.1. Flowchart sistem secara umum ... 33

3.4.2. Flowchart Algoritma Boldi-Vigna ζ1 Code ... 34

3.4.3. Flowchart Algoritma Even-Rodeh Code ... 35

3.5. Perancangan Antarmuka ... 36

3.5.1. Halaman Home ... 37

3.5.2. Form Compression ... 38

3.5.3. Form Decompression ... 39

3.5.4. Form Help ... 41

3.5.5. Form About ... 42

Bab 4 Implementasi dan Pengujian Sistem ... 43

4.1. Implementasi Algoritma ... 43

4.1.1. Implementasi Algoritma Boldi-Vigna ζ1 Code ... 43

4.1.2. Implementasi Algoritma Even-Rodeh Code ... 46

4.2. Implementasi Sistem ... 49

4.2.1. Form Home ... 49

4.2.2. Form Compression ... 50

4.2.3. Form Decompression ... 51

4.2.4. Form Help ... 52

4.2.5. Form About ... 53

4.3. Pengujian Sistem ... 53

4.3.1. Pengujian Proses Kompresi ... 53

(11)

4.3.3. Hasil Pengujian ... 58

4.3.4. Pengujian String Homogen ... 59

4.3.5. Pengujian String Heterogen... 64

4.3.6. Pengujian Corpus ... 69

4.4. Kompleksitas Algoritma ... 71

Bab 5 Kesimpulan dan Saran ... 75

5.1. Kesimpulan ... 75

5.2. Saran ... 76

DAFTAR PUSTAKA ... 77

(12)

DAFTAR TABEL

Tabel 2.1 Kode algoritma Even-Rodeh Code ... 11

Tabel 2.2 Jumlah Kode Algoritma Even-Rodeh Code Berdasarkan Variasi Karakter . 11 Tabel 2.3 String yang belum dikompresi ... 12

Tabel 2.4 String yang sudah dikompresi dengan Even-Rodeh Code ... 13

Tabel 2.5 Kode Daftar Boldi-Vigna ζ1 ... 17

Tabel 2.6 String yang belum dikompresi ... 18

Tabel 2.7 String yang telah dikompresi dengan Boldi-Vigna ζ1 Code ... 19

Tabel 4.1 Ukuran String Sebelum Dikompresi ... 43

Tabel 4.2 Ukuran String Setelah Dikompresi Dengan Boldi-Vigna ζ1 Code ... 44

Tabel 4.3 Ukuran String Setelah Dikompresi Dengan Even-Rodeh Code ... 47

Tabel 4.4 File Berisi String Homogen ... 58

Tabel 4.5 File Berisi String Heterogen ... 59

Tabel 4.6 Hasil Pengujian String Homogen dengan Boldi-Vigna ζ1 Code ... 60

Tabel 4.7 Hasil Pengujian String Homogen dengan Even-Rodeh Code ... 60

Tabel 4.8 Hasil Pengujian String Heterogen dengan Boldi-Vigna ζ1 Code ... 65

Tabel 4.9 Hasil Pengujian String Heterogen dengan Even-Rodeh Code ... 65

Tabel 4.10 File Uji Artificial Corpus ... 69

Tabel 4.11 Hasil Pengujian Boldi-Vigna ζ1 Code terhadap File Artificial Corpus ... 70

Tabel 4.12 Hasil Pengujian Even-Rodeh Code terhadap File Artificial Corpus ... 70

Tabel 4.13 Kompleksitas Algoritma Boldi-Vigna ζ1 Code ... 71

Tabel 4.14 Kompleksitas Algoritma Even-Rodeh Code ... 73 Halaman

(13)

DAFTAR GAMBAR

Gambar 2.1 Diagram Blok Proses Kompresi dan Dekompresi Data (Pu, 2005) ...6

Gambar 2.2 Diagram Blok Kompresi Lossless (Pu, 2005) ...7

Gambar 2.3 Diagram Blok Kompresi Lossy (Pu, 2005) ...8

Gambar 2.4 Grafik Θ (Cormen, et al., 2009) ... 22

Gambar 3.1 Diagram Ishikawa Analisis Masalah ... 25

Gambar 3.2 Use Case Diagram Pada Sistem ... 27

Gambar 3. 3 Activity Diagram proses Kompresi Boldi-Vigna ζ1 Code... 28

Gambar 3. 4 Activity Diagram proses Kompresi Even-Rodeh Code ... 29

Gambar 3.5 Sequence diagram proses kompresi ... 30

Gambar 3.6 Sequence diagram proses dekompresi ... 31

Gambar 3.7 Flowchart Sistem Secara Umum ... 33

Gambar 3.8 Flowchart algoritma Boldi-Vigna ζ1 Code... 34

Gambar 3. 9 Flowchart algoritma Even-Rodeh Code ... 36

Gambar 3.10 Rancangan Halaman Utama ... 37

Gambar 3.11 Form Compression pada sistem ... 38

Gambar 3.12 Form Decompression pada Sistem ... 40

Gambar 3.13 Form Help pada Sistem ... 41

Gambar 3.14 Form About pada Sistem ... 42

Gambar 4.1 Tampilan Halaman Awal Form Home ... 49

Gambar 4.2 Tampilan Form Compression ... 51

Gambar 4.3 Tampilan Form Decompression ... 52

Gambar 4.4 Tampilan Form Help ... 52

Gambar 4.5 Tampilan Form About ... 53

Gambar 4.6 Tampilan Proses Kompresi ... 54

Gambar 4.7 Tampilan Kotak Dialog Save File Pada Proses Kompresi ... 55

Gambar 4. 8 Proses Kompresi Setelah Di Atur Ulang ... 55

Gambar 4. 9 Tampilan Menu Dekompresi ... 56

Gambar 4.10 Tampilan Kotak Dialog Save File Pada Proses Dekompresi ... 57

Gambar 4.11 Proses Dekompresi ... 57 Halaman

(14)

Gambar 4.12 Grafik Compression Ratio terhadap String Homogen ... 61

Gambar 4.13 Grafik Bitrate terhadap String Homogen ... 62

Gambar 4.14 Grafik Space Savings terhadap String Homogen ... 62

Gambar 4.15 Grafik Waktu Kompresi terhadap String Homogen ... 63

Gambar 4.16 Grafik Waktu Dekompresi terhadap String Homogen ... 64

Gambar 4.17 Grafik Compression Ratio terhadap String Heterogen ... 66

Gambar 4.18 Grafik Bitrate terhadap String Heterogen ... 67

Gambar 4.19 Grafik Space Savings terhadap String Heterogen ... 67

Gambar 4.20 Grafik Waktu Kompresi terhadap String Heterogen ... 68

Gambar 4.21 Grafik Waktu Dekompresi terhadap String Heterogen ... 69

(15)

DAFTAR LAMPIRAN

Lampiran 1 LISTING PROGRAM ... A-1 Lampiran 2 CURRICULUM VITAE ... B-1 Halaman

(16)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Kebutuhan akan informasi sudah tak dapat dipisahkan dari kehidupan sehari-hari masyarakat umum. Penggunaan komputer sebagai media informasi digital merupakan salah satu cara untuk pengaksesan informasi di masyarakat. Informasi yang beredar dapat berupa teks, suara, dan citra yang dikemas secara digital. Tentunya hal ini akan memerlukan media penyimpanan yang lumayan besar. Oleh karena itu diperlukan alternatif dalam penyimpanan data yang dapat meningkatkan efisiensi dari penggunaan media penyimpanan. Salah satu cara yang digunakan untuk mengefisiensikan media penyimpanan adalah teknik kompresi data.

Kompresi data merupakan sebuah proses dimana terdapat pegubahan pada aliran data masukan (data asli) ke dalam aliran data yang lain dan mempunyai ukuran data yang lebih kecil (Salomon & Motta, 2010). Dengan melakukan kompresi data, maka kita dapat meminimalisir kebutuhan akan penyimpanan data, mempercepat pengiriman/transmisi data dan memperkecil kebutuhan bandwith.

Pada penelitian ini akan dilakukan perbandingan dari kedua algoritma kompresi yaitu algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code. untuk mengetahui algoritma mana yang lebih efisien dalam hal kompresi file teks. Kinerja algoritma tersebut akan diukur berdasarkan parameter Compression Ratio (CR), Space Saving (SS), bit rate, waktu kompresi dan dekompresi yang dihitung dalam satuan milisekon.

Algoritma Boldi-Vigna ζ1 Code dikenalkan oleh Paolo Boldi dan Sebastiano Vigna sebagai salah satu anggota variable-length code yang merupakan opsi terbaik dalam kompresi WebGraphs (Salomon, 2007). Algoritma ini dikembangkan pada suatu studi WebGraph yang sekarang dikenal sebagai World Wide Web (WWW) dengan tujuan untuk memperkecil kapasitas konten pada WebGraph tersebut. Sedangkan

(17)

sama dengan algoritma Elias Omega Code, namun perbedaan utamanya adalah panjang dari kodenya akan ditambahkan hingga 3 bit dan menjadi kelompok paling kiri dari kode (Salomon, 2007). Dalam pembangkitan kode algoritma kompresi data ini dilakukan dengan cara melakukan pengkodean terhadap setiap karakter dengan menggunakan beberapa rangkaian bit. Pembentukan bit yang merepresentase setiap karakter didasarkan pada frekuensi kemunculan tiap karakter. Berdasarkan pada penelitian terdahulu diantaranya seperti pada penelitian yang berjudul On Using Goldbach G0 Codes and Even-Rodeh Codes for Text Compression (M. A. Budiman dan D. Rachmawati, 2017) yang menunjukkan bahwa hasil dari penelitian tersebut adalah algoritma Even-Rodeh Code cenderung lebih efisien dari algoritma Golbach G0 Code.

Hal ini dikarenakan Even-Rodeh Code memiliki nilai Compression Ratio (CR) dan Space Saving yang lebih besar serta nilai Bitrate yang lebih rendah dari Goldbach G0 Code.

Berdasarkan latar belakang diatas, penulis ingin membandingkan tingkat efisiensi dari algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code dalam melakukan kompresi pada file teks.

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut, maka rumusan masalahnya yaitu bagaimana perbandingan kinerja penggunaan algoritma Boldi-Vigna ζ1 Code dan algoritma Even- Rodeh Code pada kompresi file teks .

1.3 Batasan Masalah

Dalam melakukan penelitian ini, peneliti membatasi ruang masalah yang akan diteliti agar tulisan ini tidak menyimpang dari ruang lingkup pembahasan diperlukan.

Batasan-batasan masalah yang digunakan adalah sebagai berikut:

1. Membandingkan dua algoritma kompresi data yaitu Boldi-Vigna ζ1 Code dan Even-Rodeh Code.

2. Kode Boldi-Vigna yang akan digunakan hanya Boldi-Vigna ζ1 Code.

3. Jenis data yang akan dikompresi adalah karakter ASCII sebanyak 256 karakter antara lain: huruf, angka, baris baru, tab, spasi dan simbol dalam file teks yang memiliki ekstensi *.txt

(18)

4. File uji yang akan dikompresi adalah string homogen, string heterogen dan dan artificial corpus.

5. Parameter yang digunakan dalam pengukuran kinerja algoritma ini adalah time (waktu kompresi(ms) dan waktu dekompresi(ms)), compression ratio (CR), space saving (SS), dan bit rate.

6. Implementasi dari penelitian ini berbasis pada bahasa pemrograman visual yaitu C#.

7. Pengukuran kompleksitas dari algoritma algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code menggunakan notasi Big θ (Theta).

1.4 Tujuan Penelitian

Berdasarkan rumusan masalah yang telah dirincikan sebelumnya, maka tujuan penelitian dari judul ini adalah untuk mengetahui algoritma mana yang lebih cocok dan efisien dalam kompresi file teks diantara algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dapat dihasilkan dari penelitian ini adalah sebagai berikut:

1. Menghemat ruang penyimpanan data dengan dilakukannya proses kompresi pada file teks dengan algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code.

2. Mengetahui proses kompresi dan dekompresi pada algoritma Boldi-Vigna ζ1

Code dan algoritma Even-Rodeh Code.

3. Mengetahui perbandingan kinerja terbaik dari algoritma mana diantara algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code yang lebih efisien dalam kompresi file teks.

4. Bermanfaat sebagai sumber rujukan dan referensi untuk penelitian selanjutnya terkait kompresi file teks menggunakan algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code.

(19)

1.6 Metode Penelitian

Metode penelitian yang dilakukan dalam penelitian ini adalah:

1. Studi Literatur

Penulis melakukan penelitian dimulai dengan mencari referensi dari berbagai sumber terpercaya dan melakukan peninjauan pustaka melalui buku-buku, artikel ilmiah, dan penelitian-penelitian lainnya dalam bentuk jurnal yang berhubungan dengan Algoritma Boldi-Vigna ζ1 Code dan Algoritma Even- Rodeh Code.

2. Analisa dan Perancangan

Berdasarkan ruang lingkup penelitian, penulis melakukan analisa terhadap apa saja yang akan dibutuhkan oleh sistem yang akan dibuat. Selain itu, penulis melakukan perancangan sistem dimulai dari desain interface, struktur data, diagram alir (flowchart) dan diagram Ishikawa

3. Implementasi

Melakukan proses pembangunan perangkat lunak/coding sebagai realisasi untuk diimplementasikan dalam sebuah sistem yang menggunakan bahasa pemrograman C# sesuai dengan diagram alir (flowchart) yang telah dirancang.

4. Pengujian

Pada tahap ini dilakukan uji coba terhadap sistem yang telah dikembangkan.

5. Dokumentasi

Pada tahap terakhir ini, penelitian yang telah dilakukan, didokumentasikan mulai dari tahap analisa sampai kepada pengujian dan akhirnya dibuat dalam bentuk skripsi.

1.7 Sistematika Penulisan

Sistematika dalam penulisan skripsi ini disusun menjadi beberapa bab, diantaranya yaitu:

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah dari penelitian judul skripsi

“Analisis Perbandingan Algoritma Boldi-Vigna ζ1 Code dan Algoritma Even-Rodeh Code pada Kompresi File Teks”, rumusan masalah, batasan

(20)

masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini berisi teori-teori yang digunakan sebagai pendukung dalam penulisan penelitian, selain itu dalam bab 2 juga dijelaskan mengenai metode yang digunakan dalam penelitian.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini terdiri dari tahap analisis sistem yang mencakup analisis masalah, analisis kebutuhan dan analisis proses kemudian desain/model perancangan dari program yang akan dibuat, dalam hal ini termasuk juga algoritma dari program tersebut.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi mengenai implementasi dan pengujian dari program yang sistemnya telah dirancang dan dianalisis sebelumnya.

BAB V KESIMPULAN DAN SARAN

Bab terakhir berisi kesimpulan dari hasil penelitian yang telah selesai dilakukan, juga saran atau rekomendasi yang bermanfaat guna pengembangan dan penelitian lebih lanjut.

(21)

BAB 2

LANDASAN TEORI

2.1. Kompresi Data

Dalam ilmu komputer, kompresi data merupakan ilmu atau seni dalam mengimplementasikan informasi pada suatu data ke dalam bentuk yang lebih padat (kecil) (Pu, 2005). Kompresi data merupakan seni atau ilmu yang merepresentasikan informasi dalam bentuk yang lebih ringkas. Data dapat berupa karakter dalam file teks, gambar atau urutan angka yang dihasilkan oleh proses lain. Dengan kata lain, menggunakan kompresi data, ukuran file tertentu dapat dikurangi.

Dengan merujuk pada beberapa definisi diatas, maka dapat disimpulkan bahwa kompresi adalah cara untuk memadatkan data sehingga hanya memerlukan ruang penyimpanan lebih kecil sehingga lebih efisien dalam penyimpanan maupun dalam proses transfer data pada jaringan. Prinsip dasar kompresi data adalah memperkecil besar bit data untuk merepresentasi tiap-tiap karakter pada teks yang ingin dikompresi (Jamaluddin, 2013).

Proses kompresi dan dekompresi pada data dapat ditunjukkan melalui diagram blok seperti pada Gambar 1.1

Gambar 2.1 Diagram Blok Proses Kompresi dan Dekompresi Data (Pu, 2005) Uncompressed Data

Compressed Data

Uncompressed Data Dekompresi

Kompresi Compressed

Data

(22)

2.2. Teknik Kompresi Data

Jika dilihat dari segi kemungkinan data/file yang telah dikompresi untuk dapat dikembalikan ke data/file aslinya, teknik kompresi data terbagi dua yaitu kompresi data Lossless dan kompresi data Lossy (Pu, 2005).

2.2.1 Kompresi Lossless (Lossless Compression)

Kompresi Lossless merupakan metode kompresi data yang memungkinkan data asli bisa dikembalikan secara utuh. Algoritma kompresi dikatakan lossless jika teknik kompresi data tersebut dapat mengembalikan data hasil kompresi ke data semula tanpa kehilangan informasi apapun dari data asli (Pu, 2005). Kompresi Lossless memiliki akurasi data yang terjaga antara sebelum dan sesudah proses kompresi meskipun dengan derajat kompresi yang lebih rendah. Contoh metode ini adalah Elias Delta Code, Elias Gama Code, Levenstein Code, Shanno-Fano Coding, Run Length Encoding, Even-Rodeh Code dan lain-lain. Konsep dasar kompresi Lossless dapat dilihat pada Gambar 2.2.

Gambar 2.2 Diagram Blok Kompresi Lossless (Pu, 2005)

Compression

Original Restored

(23)

2.2.2 Kompresi Lossy (Lossy Compression)

Kompresi Lossy merupakan metoda kompresi data yang tidak menghasilkan data asli sebelum kompresi. Meskipun perbedaan itu cukup dekfat, kompresi jenis ini tidak baik untuk kompresi data yang seperti data teks, melainkan sering digunakan pada data audio, berkas, dan gambar. Algoritma kompresi dikatakan lossy adalah teknik kompresi data dimana data mengalami sedikit atau banyak kehilangan data pada saat kompresi (Pu, 2005). Kompresi Lossy memiliki derajat kompresi yang lebih tinggi, tetapi akurasi data tidak terjaga antara sebelum dan sesudah proses kompresi karena ada beberapa detail data yang hilang. Contoh metode ini adalah Transform Coding, Walet, dan lain-lain.

Konsep dasar kompresi lossy dapat dilihat pada gambar 2.3.

Gambar 2.3 Diagram Blok Kompresi Lossy (Pu, 2005)

2.3. Konsep Kompresi Data

Di dalam komputer, satu karakter dipresentasikan dalam bilangan ASCII (American Standard Code For Information Interchange) yaitu sebanyak 8 bit dalam baingan biner.jika ternhata jumlah bit-bit data tersebut bukan merupakan kelipatan 8, maka dibentuk variable baru sebagai penambahan ke bit-bit data itu agar bit data tersebut habis dibagi oleh 8. Variabel yang dimaksud disini adalah padding dan flag.

a. Padding

Padding adalah penambahan bit 0 sebanyak kekurangan jumlah bit-bit data pada hasil proses kompresi sehingga jumlah keseluruhan bit-bit data pada hasil kompresi habis

Original Restored

Compression

(24)

dibagi delapan. Sebagai contoh, misalkan terdapat bit bit data hasil kompresi 1111110111010111100001101. Terdapat 26 bit data dalam bilangan biner. Maka dilakukan penambahan bit 0 sebanyak 6 kali agar jumlah bit data tersebut dapat habis bila dibagi delapan. Sehingga bit-bit data tersebut menjadi 1111110111010111100001101000000 setelah diberikan padding (Batubara, 2017).

b. Flag Bits

Flag bits adalah penambahan bilangan biner sepanjang delapan bit setelah padding dimana flag bits ini adalah sejumlah bilangan yang memberikan sebuah tanda bahwa terdapat n buah padding di dalam bit-bit data hasil dari kompresi. Contoh misalkan bit- bit data yang telah diberikan padding adalah 1111110111010111100001101000000.

Karena terdapat 7 bit penambahan padding maka flag bits-nya adalah bilangan biner dari 7 dengan panjang 6 bit yaitu 00000110. Sehingga bit-bit datanya menjadi 1100101101010001100001101000000000000110 setelah diberikan flag bits (Batubara, 2017).

2.4 Parameter Analisis Kinerja Kompresi

Pada kompresi terdapat beberapa faktor penting yang perlu diperhatikan sebagai bahan pertimbangan untuk mengukur kualitas dari suatu metode kompresi, serta mendapatkan hasil perbandingan dari kedua metode yang diuji, yaitu :

1. Compression Ratio (CR)

Compression Ratio (CR) adalah perbandingan ukuran data sebelum dikompresi dengan setelah dikompresi. (Motta, 2006)

𝐶𝑅 = 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑏𝑒𝑙𝑢𝑚 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖

Misalkan didapat sebuah nilai Compression Ratio sebesar 55%. Itu berarti setelah dikompresi ukuran data adalah 55% dari data sebelum dikompresi.

2. Bitrate

Bitrate adalah teknik yang digunakan untuk mengodekan simbol dengan rata- rata bit itu sendiri, yang dicari dengan membagi ukuran bit terkompresi dengan jumlah simbol unik (jenis karakter) pada setiap teks (Rao, 2000).

(25)

𝐵𝑖𝑡 𝑟𝑎𝑡𝑒 = 𝑢𝑘𝑢𝑟𝑎𝑛 𝑏𝑖𝑡 𝑡𝑒𝑟𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑗𝑢𝑚𝑙𝑎ℎ 𝑗𝑒𝑛𝑖𝑠 𝑘𝑎𝑟𝑎𝑘𝑡𝑒𝑟

3. Space Savings (SS)

Space Savings (SS) adalah persentase penghemaran rang (memori) setelah file dikompresi dengan mencari persentase selisih antara data awal sebelum dikompresi dengan hasil data yang telah dikompresi (Ida, 2006).

𝑆𝑆 = (𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑏𝑒𝑙𝑢𝑚 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 − 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖

𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑏𝑒𝑙𝑢𝑚 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 ) × 100%

4. Waktu Kompresi dan Dekompresi

Waktu kompresi dan dekompresi adalah lama waktu yang dibutuhkan untuk melakukan proses kompresi dan dekompresi dari mulai pembacaan data hingga proses encoding pada data tersebut.

2.5 Algoritma

2.5.1. Algoritma Even-Rodeh Code

Algoritma Even-Rodeh Code merupakan algoritma untuk mengkompresi data atau file dengan mengkodekan setiap karakter menggunakan beberapa rangkaian bit.

Pembentukan bit pada algoritma ini mewakili masing-masing karakter dibuat berdasarkan frekuensi kemunculan setiap karakter. Algoritma Even-Rodeh Code ini bersifat lossless, dimana hal ini merupakan suatu kelebihan karena dengan kompresi lossless dapat meminimalisir adanya kehilangan atau kerusakan data yang terjadi pada sumber data asli yang sangat penting (Pu, 2005). Tahap membangun kode Even-Rodeh Code dengan n sebagai indeks dari karakter yaitu sebagai berikut :

1. Menghitung panjang bit.

2. Jika kode memiliki panjang bit 0 <= n <=3 maka nilai n diubah ke biner, tambahkan 0 didepan nilai biner sehingga bit berjumlah 3 digit.

3. Jika panjang kode sebanyak bit 4 <= n <= 7maka nilai n diubah ke biner, tambahkan 0 dibelakang nilai biner sehingga bit menjadi 4 digit.

4. Jika kode dengan panjang bit n >= 8 maka nilai n diubah ke biner, tambahkan angka 0 dibelakang nilai biner dari kode kemudian ditambahkan nilai biner dari panjang bit dari nilai biner kode tersebut didepan nilai biner kode.

(26)

Beberapa daftar kode Even-Rodeh Code dan jumlah bit kode Even-Rodeh Code berdasarkan frekuensi karakter terdapat pada Tabel 2.1 dan Tabel 2.2.

Tabel 2.1 Kode algoritma Even-Rodeh Code

N Even-Rodeh Code

0 000

1 001

2 010

3 011

4 100 0

7 111 0

8 100 1000 0

15 100 1111 0

16 100 10000 0

32 110 100000 0

100 111 1100100 0

Tabel 2.2 Jumlah Kode Algoritma Even-Rodeh Code Berdasarkan Variasi Karakter

N Jumlah bit Even- Rodeh Code

0-3 3

4-7 4

8-15 8

16-31 9

32-63 10

64-127 11

(27)

Contoh sederhana pada proses kompresi serta dekompresi file dengan metode Even- Rodeh Code pada string “GALUH ATIKA NABILA” adalah sebagai berikut:

Penjelasan dari string “GALUH ATIKA NABILA” sebelum dikompresi terdapat pada tabel 2.3.

Tabel 2.3 String yang belum dikompresi Karakter ASCII

Code

ASCII Code (Binary)

Freq Bit Freq*Bit

G 71 01000111 1 8 16

A 65 01000001 5 8 40

L 76 01001100 2 8 16

U 85 01010101 1 8 8

H 72 01001000 1 8 8

Sp 32 00100000 2 8 16

T 84 01010100 1 8 8

I 73 01001001 2 8 16

K 75 01001011 1 8 8

N 78 01001110 1 8 8

B 66 01000010 1 8 8

Jumlah Bit 152 Bit

Berdasarkan tabel diatas, maka didapat string bit sebelum dikompresi yaitu

“01000111010000010100110001010101010010000010000001000001010101000100 1001010010110100000100100000010011100100000101000010010010010100110001 000001” dengan uraian sebagai berikut:

01000111 01000001 01001100 01010101 01001000 G A L U H

(28)

00100000 01000001 01010100 01001001 01001011

Sp A T I K 01000001 00100000 01001110 01000001 01000010

A Sp N A B 01001001 01001100 01000001

I L A

Sebelum dilakukan proses kompresi, karakter akan diurutkan berdasarkan karakter yang memiliki frekuensi yang paling besar hingga yang paling kecil sehingga didapat n (panjang bit dalam karakter yang telah diurutkan) kemudian dilakukan proses pengkodean algoritma Even-Rodeh Code, maka didapat string hasil kompresi seperti pada tabel 2.4.

Σ = {G, A, L, U, H, Sp, T, I, K, N, B, L} , dengan Sp = spasi

Maka dibuat sebuah tabel untuk menghitung bit setelah di kompresi terlihat seperti pada tabel 2.4.

Tabel 2.4 String yang sudah dikompresi dengan Even-Rodeh Code Σ Freq Even-Rodeh Code Bit Freq*Bit

A 5 000 3 15

L 2 001 3 6

Sp 2 010 3 6

I 2 011 3 6

G 1 100 0 4 4

U 1 101 0 4 4

H 1 110 0 4 4

T 1 111 0 4 4

(29)

Σ Freq Even-Rodeh Code Bit Freq*Bit

K 1 100 1000 0 8 8

N 1 100 1001 0 8 8

B 1 100 1010 0 8 8

Jumlah Bit 73 Bit

Berdasarkan tabel diatas, maka didapat string bit sebelum dikompresi yaitu

“10000000011010110001000011100111001000000001010010010000100101000110 01000” dengan uraian sebagai berikut:

G A L U H

100 0 000 001 1010 1100

Sp A T I K

010 000 1110 011 10010000

A Sp N A B

000 010 10010010 000 10010100

I L A

011 001 000

Setelahnya dilakukan penambahan bit-bit padding dan flag bits diawal dan diakhir string bit sehingga panjang string bit bisa habis dibagi delapan. Karena jumlah string adalah 59 bit, tentu tidak habis dibagi delapan dan sisanya adalah 1. Sehingga

(30)

dibutuhkan bit 0 sebanyak 7 kali, maka padding adalah “0000000” dan flag bits-nya adalah bilangan biner dari 7 yaitu “00000111”.

Diperoleh:

String bit hasil kompresi =

100000000110101100010000111001110010000000010100100100001001010001100 1000000000000000111

Total bit seluruhnya adalah penambahan padding dan flag adalah 73+7+8 = 88.

Untuk proses dekompresi terhadap string bit yang telah dikompresi adalah dengan menentukan indeks terkahir untuk proses pembacaan string yaitu total panjang string bit seluruhnya dikurang dengan flag ditambah padding atau dapat ditulis:

n = panjang string bit – (flag+padding)

n = 88 – (7+8) n = 73

String bit yang dibaca adalah 73 string bit awal. Maka:

G A L U H

100 0 000 001 1010 1100

Sp A T I K

010 000 1110 011 10010000

(31)

A Sp N A B

000 010 10010010 000 10010100

I L A

011 001 000

2.6.2 Algoritma Boldi-Vigna (ζ1)

Kode Zeta (ζ) juga dikenal sebagai Boldi-Vigna code, diperkenalkan oleh Paolo Boldi dan Sebastiano Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi. Dimulai dengan hukum Zipf, seorang kuasa hukum empiris [Zipf 07] diperkenalkan oleh Linguis George K. Zipf. menyatakan bahwa frekuensi setiap kata dalam bahasa apapun kira-kira berbanding terbalik dengan posisinya dalam tabel frekuensi.

Boldi-Vigna Zeta Code dimulai dengan bilangan bulat k positif yang menjadi faktor penyusutan kode zeta. Himpunan semua bilangan bulat positif dibagi dalam beberapa interval yaitu [20, 2k - 1], [2k, 22k - 1], [22k, 23k - 1], dan secara umum dapat dituliskan menjadi [2hk, 2 (h + 1) k - 1]. Panjang setiap interval adalah 2 (h + 1) k - 2hk (Salomon, 2007).

Diberikan interval [0, z-1] dan sebuah integer x di interval ini, pertama kita hitung s =[ log2 z]. Jika x <2s - z, pada s - 1 bit. Jika tidak, maka dikodekan sebagai (x - z - 2s) pada interval di s bit. Dengan latar belakang tersebut, akan dibahas bagaimana kode zeta dibangun. Nilai h dan k yang digunakan untuk membangun kode zeta n dalam dua bagian, nilai h + 1 sebgai unary (0 sebanyak h diikuti dengan 1), lalu diikuti oleh kode biner minimal dari n - 2hk dalam interval [0, 2 (h + 1) k - 2hk - 1] (Salomon, 2007).

Contoh daftar kode Boldi-Vigna (ζ1) dapat dilihat pada tabel 2.5 seperti berikut:

(32)

Tabel 2.5 Kode Daftar Boldi-Vigna ζ1

N

ζ1

1 1

2 010

3 011

4 00100

5 00101

6 00110

7 00111

8 0001000

9 0001001

10 0001010

11 0001011

12 0001100

13 0001101

14 0001110

15 0001111

16 000010000

Contoh sederhana pada proses kompresi dan dekompresi file dengan metode Boldi- Vigna (ζ1) Code pada string “GALUH ATIKA NABILA” adalah sebagai berikut:

(33)

Penjelasan dari string “GALUH ATIKA NABILA” sebelum dikompresi terdapat pada tabel 2.6.

Tabel 2.6 String yang belum dikompresi Karakter ASCII

Code

ASCII Code (Binary)

Freq Bit Freq*Bit

G 71 01000111 1 8 16

A 65 01000001 5 8 40

L 76 01001100 2 8 16

U 85 01010101 1 8 8

H 72 01001000 1 8 8

Sp 32 00100000 2 8 16

T 84 01010100 1 8 8

I 73 01001001 2 8 16

K 75 01001011 1 8 8

N 78 01001110 1 8 8

B 66 01000010 1 8 8

Jumlah Bit 152 Bit

Berdasarkan tabel diatas, maka didapat string bit sebelum dikompresi yaitu

“01000111010000010100110001010101010010000010000001000001010101000100 1001010010110100000100100000010011100100000101000010010010010100110001 000001” dengan uraian sebagai berikut:

01000111 01000001 01001100 01010101 01001000 G A L U H 00100000 01000001 01010100 01001001 01001011

Sp A T I K

(34)

01000001 00100000 01001110 01000001 01000010 A Sp N A B 01001001 01001100 01000001

I L A

Sebelum melakukan proses kompresi, karakter tersebut diurutkan terlebih dahulu berdasarkan dari karakter yang memiliki frekuensi terbesar ke terkecil sehingga didapat n (panjang bit dalam karakter yang telah diurutkan) kemudian dilakukan proses pengkodean algoritma Boldi-Vigna (ζ1) Code, maka didapat string hasil kompresi seperti pada tabel 2.7.

Σ = {G, A, L, U, H, Sp, T, I, K, N, B, L } , dengan Sp = spasi

Maka dibuat sebuah tabel untuk menghitung bit setelah di kompresi terlihat seperti pada tabel 2.7.

Tabel 2.7 String yang telah dikompresi dengan Boldi-Vigna ζ1 Code Σ Freq Boldi-Vigna ζ1 Code

Bit Freq*Bit

A 5 1 1 5

L 2 010 3 6

Sp 2 011 3 6

I 2 00100 5 10

G 1 00101 5 5

U 1 00111 5 5

H 1 0001000 7 7

T 1 0001001 7 7

K 1 0001010 7 7

N 1 0001011 7 7

B 1 0001100 7 7

(35)

Berdasarkan tabel diatas, maka didapat string bit sebelum dikompresi yaitu

“00101101000111000100001110001001001000001010101100010111000110000100 0101”.

Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan bit-bit padding dan flag bits diawal dan diakhir string bit sehingga panjang string bit bisa habis dibagi delapan. Karena jumlah string adalah 72 bit, tentu habis dibagi delapan. Sehingga tidak dibutuhkan bit 0 dan flag bits-nya adalah bilangan biner dari 0 yaitu “00000000”.

Diperoleh:

String bit hasil kompresi =

001011010001110001000011100010010010000010101011000101110001100001000 10100000000

Total bit seluruhnya adalah penambahan padding dan flag adalah 72+8 = 80.

Untuk proses dekompresi terhadap string bit yang telah dikompresi adalah dengan menentukan indeks terkahir untuk proses pembacaan string yaitu total panjang string bit seluruhnya dikurang dengan flag ditambah padding atau dapat ditulis:

n = panjang string bit – (flag+padding) n = 80 – (0+8)

n = 72

String bit yang dibaca adalah 72 string bit awal. Maka:

G A L U H

00101 1 010 00111 0001000

(36)

Sp A T I K

011 1 0001001 00100 0001010

A Sp N A B

1 011 0001011 1 0001100

I L A

00100 010 1

2.7 Kompleksitas Algoritma

Algoritma merupakan salah satu cabang ilmu dari ilmu komputer yang membahas prosedur penyelesaian suatu permasalahan. Dengan menggunakan algoritma yang baik maka komputer bisa menyelesaiakan perhitungan dengan cepat dan benar. Sebaliknya jika algoritma kurang baik maka penyelesaian lambat dan bahkan menyebabkan tidak dapat menemukan solusi yang diharapkan. Baik buruknya sebuah algoritma dapat dibuktikan dari kompleksitas waktu yang digunakan (Purwanto, 2008).

Kompleksitas algoritma meliputi hal – hal berikut ini :

1. Perancangan yang artinya kegiatan untuk melakukan pendeskripsian algoritma pada suatu tingkatan yang memiliki arti bahasa semu (pseudo) dan pembuktian kebenaran bahwa suatu algoritma dapat menyelesaikan suatu permasalahan yang diberikan (Purwanto, 2008).

2. Analisa yang berarti memberikan evaluasi kinerja suatu algoritma terhadap permasalahan yang diberikan. Dua hal yang digunakan untuk mengukur efektivitas suatu algoritma yaitu kompleksitas ruang (keadaan) dan kompleksitas waktu. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan pada eksekusi program. Kompleksitas waktu dari suatu algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Analisa asimtotik menghasilkan

(37)

2.7.1. Big Theta

Didefinisikan bahwa f(n) merupakan Theta dari g(n) dan dinotasikan f(n) = Θ(g(n)) jika dan hanya jika terdapat tiga konstanta positif n0, c1 danc2 sedemikian sehingga berlaku |c1g(n)| ≤ f (n) |≤|c2g(n)| ketika n > n0 . Dalam grafik nilai f(n) di sebelah kanan n0 selalu berada di antara c1g(n) dan c2g(n) (Cormen, et al., 2009).

Gambar 2.4 Grafik Θ (Cormen, et al., 2009)

2.8 Penelitian yang Relevan

Berikut ini beberapa penelitian yang berkaitan dengan kompresi file teks dengan algoritma Even-Rodeh Code:

1. Budiman, M. A. dan Dian Rachmawati. 2017. On Using Goldbach Go Codes and Even-Rodeh Codes for Text Compression. Departemen Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara. Dalam penelitian ini dapat di simpulkan bahwa algoritma Even-Rodeh Code lebih efisien dibandingkan dengan algoritma Goldbach Code, karena dalam segi penghematan memori, bitrate dan ratio compression algoritma Even-Rodeh Code lebih baik daripada algoritma Goldbach Go Codes.

2. Pada penelitian yang berjudul “Perbandingan Algoritma Even-Rodeh Code dan Algoritma Variable Length Binary Encoding (VLBE) pada Kompresi File Teks” oleh Ade Rani Abdullah pada tahun dapat disimpulkan bahwa dalam proses kompresi, algoritma Even-Rodeh Code dan algoritma Variable Length Binary Encoding (VLBE) dipengaruhi oleh jumlah variasi karakter. Hasil pengujian kompresi file teks *.rtf dengan karakter yang berbeda (heterogen) berdasarkan variabel Ratio of Compression (Rc), Compression Ratio (Cr),

(38)

Redundancy (Rd) dan waktu kompresi menunjukkan bahwa metode Even- Rodeh Code lebih baik dibandingkan dengan metode Variable Length Binary Encoding (VLBE) dengan Compression Ratio ratarata sebesar 60.546 %.

Hasil pengujian dekompresi file teks dengan karakter yang berbeda metode Even Rodeh Code dan Variable Length Binary Encoding (VLBE) menunjukkan bahwa Even-Rodeh Code memerlukan waktu yang lebih sedikit untuk mengembalikan file teks hasil kompresi ke file teks semula, dengan rata- rata 0.1187 milisekon.

3. Penelitian yang berjudul “Analisis Perbandingan Algoritma Even-Rodeh Code dan Algoritma Fibonacci Code untuk Kompresi File Teks” oleh Mhd.

Ali Subada pada tahun 2018 dapat diperoleh bahwa dari hasil pengujian pada aplikasi kompresi file teks dengan karakter yang sama (homogen) berdasarkan Bitrate, Compression Ratio (CR), dan Waktu Dekompresi bahwah algoritma Even-Rodeh Code lebih baik untuk mengembalikan file teks hasil kompresi ke file teks semula, dengan rata-rata 0,004 millisekon.

(39)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM 3.1. Analisis Sistem

Analisis sistem merupakan salah satu tahap pembangunan sistem untuk menentukan proses identifikasi mengenai hal-hal yang akan dibutuhkan dan harus ada pada sistem, agar sistem tersebut dapat berjalan sesuai dengan tujuan utama. Tahapan- tahapan yang akan dilakukan dalam menganalisis sebuah sistem yaitu:

3.1.1. Analisis Masalah

Analisis masalah merupakan tahapan pembangunan sistem untuk menentukan proses identifikasi sebab dan akibat dibuatnya sebuah sistem yang dapat berjalan agar sistem tersebut dapat berjalan sesuai dengan tujuan utama sistem dibangun.

Permasalahan yang akan di angkat dari penelitian ini yaitu membandingkan algoritma Boldi-Vigna ζ1 Code dan Even-Rodeh Code untuk mengetahui algoritma kompresi terbaik diantara kedua algoritma tersebut.

Diagram Ishikawa digunakan untuk memaparkan identifikasi masalah dengan menunjukkan sebab-sebab terjadinya suatu masalah. Analisis masalah ini akan lebih jelas melalui diagram Ishikawa yang dapat dilihat pada Gambar 3.1.

(40)

Gambar 3.1 Diagram Ishikawa Analisis Masalah

Pada Gambar Diagram 3.1 dapat dilihat bahwa terdapat empat kategori penyebab masalah pada penelitian Analisis Perbandingan Algoritma Even-Rodeh Code dan Algoritma Boldi-Vigna ζ1 Code Untuk Kompresi File Teks yang digambarkan dengan tanda panah yang mengarah ke panah utama, yaitu saling berhubungan dengan Material, Metode, Manusia, dan Sistem. Setiap detail penyebab masalah tersebut digambarkan dengan tanda panah yang mengarah pada masing-masing kategori.

3.1.2. Analisis Kebutuhan

Analisis kebutuhan sistem terdiri dari dua jenis kebutuhan, yaitu kebutuhan fungsional dan non-fungsional. Kebutuhan fungsional sistem membahas tentang fungsi- fungsi yang harus ada pada sistem yang dirancang. Sedangkan kebutuhan non- fungsional membahas tentang fungsi-fungsi yang berperan sebagai pelengkap sistem agar mendapat feedback dari pengguna.

a. Kebutuhan Fungsional

Kebutuhan fungsional yang harus terdapat pada sistem yang dirancang meliputi beberapa hal di antaranya:

Material

Memperkecil ukuran file teks

dengan Boldi- Vigna ζ1 Code dan

Even-Rodeh Code

Metode Mesin

Manusia

File teks (.txt) berukuran besar

Sulit menemukan algoritma yang

efisien dalam kompresi file teks

Tidak puas dengan waktu transfer data

yang lama

Belum ada aplikasi kompresi yang

menggunakan algoritma Boldi- Vigna ζ1 Code dan Even-Rodeh Code Kebiasaan menyimpan data yang tidak diperlukan

(41)

2. Sistem dapat melakukan proses kompresi maupun dekompresi dengan menggunakan algoritma Boldi-Vigna ζ1 Code dan Even-Rodeh Code pada file teks.

3. Sistem dapat menghitung Compression Ratio (CR), Space Saving (SS), bit rate serta size bit, waktu kompresi dan dekompresi data.

b. Kebutuhan non - fungsional

Kebutuhan non-fungsional yang harus dimiliki oleh sistem yang dirancang adalah sebagai berikut :

1. Performa

Sistem dapat melakukan proses kompresi dan dekompresi file teks dengan jarak waktu yang sedikit.

2. Minimalis

Sistem yang dibangun harus dirancang dengan tampilan yang sederhana agar mudah digunakan oleh pengguna.

3. Informasi

Sistem menyediakan informasi yang berkaitan dengan data file yang akan atau telah dikompresi oleh sistem.

4. Kualitas

Sistem yang dibangun harus mampu memberikan hasil kompresi dan dekompresi yang tepat dan akurat, serta menjamin integritas data

5. Dokumentasi

Sistem dapat menyimpan file hasil proses kompres maupun hasil dekompresi.

3.2. Pemodelan Sistem

Pemodelan sistem merupakan tahapan yang mengambarkan komponen- komponen dari sistem yang akan dibangun sesuai dengan kebutuhan sistem. Dalam sistem ini terdapat dua proses utama yaitu proses kompresi dan proses dekompresi dengan menggunakan metode Even-Rodeh Code dan Boldi-Vigna ζ1 Code. Permodelan sistem akan digambarkan dengan menggunakan use case diagram, activity diagram dan sequence diagram.

(42)

3.2.1. Use Case Diagram

Use Case Diagram adalah metode untuk merangkum persyaratan fungsional sebuah sisitem. Use case memaparkan interaksi antara para pengguan sistem dengan sistem tersebut, dengan menampilkan gambaran bagaimana sistem itu digunakan.

Dalam usecase, para pengguna disebut sebagai aktor. Aktor merupakan peran yang dimainkan seseorang dalam kaitannya dengan sistem. Use case diagram menampilkan aktor, use case, dan hubungan atar keduanya. Use case diagram dari sistem dipaparkan pada Gambar

Gambar 3.2 Use Case Diagram Pada Sistem

Use Case Diagram pada Gambar 3.2 menjelaskan bahwa sistem dapat di akses oleh seorang pengguna (aktor) dimana pengguna tersebut dapat melakukan kompresi maupun dekompresi dengan dua algoritma yang digunakan, yaitu algoritma Boldi- Vigna ζ1 Code dan Even-Rodeh Code. Hal pertama yang dilakukan ketika melakukan kompresi yaitu memilih file yang ingin dikompresikan. Lalu memilih algoritma apa yang akan digunakan pada proses kompresi. Saat proses kompresi berlangsung, file hasil kompresi secara otomatis tersimpan. pengguna juga dapat mereset sistem.

Begitu juga untuk melakukan dekompresi, memilih file yang terkompresi terlebih dahulu dengan membuka file berekstensi *.bvc || *.erc, kemudian proses dekompresi dilakukan baik menggunakan algoritma Boldi-Vigna ζ Code dan Even-

(43)

Rodeh Code. Setelah itu user dapat menyimpan file hasil dekompresi atau melakukan reset terhadap sistem.

3.2.2. Activity diagram pada proses kompresi Boldi-Vigna ζ1 Code

Activity diagram ini merupakan gambaran proses kompres algoritma Boldi- Vigna ζ1 Code yang berjalan pada sistem dapat di gambarkan pada activity diagram pada Gambar 3.3.

Gambar 3.3 Activity Diagram proses Kompresi Boldi-Vigna ζ1 Code

(44)

3.2.3. Activity diagram pada proses kompresi Even-Rodeh Code

Activity diagram ini merupakan gambaran proses kompresi algoritma Even- Rodeh Code yang berjalan pada sistem dapat di gambarkan pada activity diagram pada Gambar 3.4.

Gambar 3.4 Activity Diagram proses Kompresi Even-Rodeh Code

Diagram diatas memaparkan interaksi aktifitas antara pengguna sistem secara terstruktur. Pada Gambar 3.3 kotak paling kiri merupakan aktifitas yang dilakukan oleh

(45)

pengguna, sedangkan kotak sebelah kanan adalah respon yang diberikan sistem terhadap aktifitas yang dilakukan pengguna terhadap sistem.

3.2.4. Sequence Diagram

Sequence diagram merupakan gambaran mengenai interaksi antar objek melalui pesan dalam bentuk eksekusi dimana interaksi tersebut disusun berdasarkan urutan waktu. Sequence diagram untuk sistem ini dapat dilihat pada gambar seperti berikut.

1. Sequence diagram proses kompresi yang terdapat pada sistem dapat dilihat pada gambar 3.5.

Gambar 3.5 Sequence diagram proses kompresi

(46)

2. Sequence diagram proses dekompresi yang terdapat pada sistem dapat dilihat pada gambar 3.6.

Gambar 3.6 Sequence diagram proses dekompresi

3.3. Pseudocode

Pseudocode adalah kode yang menyerupai program yang dapat menjelaskan cara bagaimana menyelesaikan suatu masalah. Pseudocode mudah dipahami karena kode- kodenya mirip dengan program sebenarnya, sehingga sering digunakan untuk menuliskan suatu algoritma.

(47)

3.3.1. Pseudocode Algoritma Boldi-Vigna ζ1 Code

Function BoldiVignaCodes(n) int k 1

int h 0

int hMax Math.Pow(2, (h + 1) * k) – 1 while (n > hMax) do

h h + 1

hMax Math.Pow(2, (h + 1) * k) – 1 end while

string unary "1".PadLeft(h + 1, '0') int minBinCodeorX n - Math.Pow(2, h * k)

int z Math.Pow(2, (h + 1) * k) - Math.Pow(2, h * k) int s Math.Ceiling(Math.Log(z,2)

int encodeValue minBinCodeorX string encodeBin

if minBinCodeorX >= Math.Pow(2, s) – z

encodeValue Math.Abs(Math.Abs(minBinCodeorX - z) - Math.Pow(2, s))

encodeBin

DecToBin(encodedValue).PadLeft(s,'0').Substrin g(0,s)

else

encodeBin DecToBin(encodedValue).PadLeft(s - 1, '0').Substring(0, s-1)

return unary+""+encodeBin

3.3.2. Pseudocode Algoritma Even-Rodeh Code

Function EvenRodehCodes(n) if n<4

c DecToBin(n) int lc c.Length for i 0 to 3 – lc do

code.Append( 0 ) end for

code.Append( c ) else if (n >= 4 && n < 8)

c DecToBin(n) code.Append( c ) code.Append( 0 ) else

c DecToBin(n)

code.Append(DecToBin(c.Length)) code.Append( c )

code.Append( 0 ) return code

(48)

3.4. Flowchart

3.4.1. Flowchart sistem secara umum

Perancangan sistem secara umum digambarkan dengan flowchart seperti pada gambar 3.7.

b. Flowchart Proses Dekompresi

a. Flowchart Proses Kompresi

Gambar 3.7 Flowchart Sistem Secara Umum

(49)

3.4.2. Flowchart Algoritma Boldi-Vigna ζ1 Code

Berikut Flowchart kompresi dengan algoritma Boldi-Vigna ζ1 Code seperti yang terlihat pada gambar 3.8.

Mulai

Masukkan n k = 1

n > hMax unary = 1 .Padleft(h+1, 0')

h = h + 1

minBinCodeorX = n -2^(h*k)

encodeValue = |

|(minBinCodeorX - z)| – (2 ^ s))|

minBinCodeorX >=

(2 ^ s) - z

hMax = (2^(h+1)*k)-1 h = 0

hMax = (2^(h+1)*k)-1

s = encodeBin = z = 2^ (h + 1) * k) – 2^( h * k)

encodeBin = DecToBin(encodeValue).PadL

eft(s, '0').Substring(0,s) encodeBin =

DecToBin(encodeValue).PadL eft(s - 1, '0').Substring(0, s-1);

bvc = unary+""+encodeBin

Selesai ya

tidak

ya

tidak

Gambar 3.8 Flowchart algoritma Boldi-Vigna ζ1 Code

(50)

3.4.3. Flowchart Algoritma Even-Rodeh Code

Berikut Flowchart kompresi dengan algoritma Even-Rodeh Code seperti yang terlihat pada gambar 3.9.

(51)

Mulai

Masukkan nilai n

n < 4 n >=4

&& n < 8 c =

DecToBin(n)

c = DecToBin(n)

erc = c + 0 lc = len (c)

lnbin = DecToBin(lc)

erc = lnbin + c + 0

c = DecToBin(n)

lc = len (c)

i = 0

i < 3 - lc erc = erc + c

erc = erc + 0

i ++

erc

Selesai

ya tidak

ya

ya tidak

tidak

Gambar 3.9 Flowchart algoritma Even-Rodeh Code 3.5. Perancangan Antarmuka

Perancangan antaramuka sistem berperan penting dalam mendukung kualitas pembangunan suatu sistem. Perancangan antarmuka sistem dapat memberikan

(52)

pengaruh penting antara pengguna dan sistem dalam berkomunikasi. Sistem yang memiliki perancangan antarmuka yang sulit di mengerti oleh pengguna, maka memungkinkan pengguna melakukan kesalahan pada saat menjalankan sistem. Oleh sebab itu diperlukan perancangan antarmuka yang efisien, sederhana dan menarik sehingga mudah dimengerti dan dijalankan oleh pengguna.

3.5.1. Halaman Home

Halaman Home merupakan tampilan pertama kali yang muncul ketika sistem dijalankan. Halaman home menjelaskan secara singkat bagian-bagian sistem dan bagaimana sistem itu dibangun Halaman ini berisi nama sistem, nama pembuat sistem, nama institusi, serta menu yang disediakan oleh sistem. Masing-masing menu dengan design tampilannya menunjukkan fungsinya masing-masing dan memberikan akses secara langsung kepada pengguna. Rancangan halaman home pada aplikasi dapat dilihat pada gambar 3.10.

Gambar 3.10 Rancangan Halaman Utama

Komponen yang digunakan untuk perancangan interface halaman utama form Home berdasarkan Gambar 3.10. adalah sebagai berikut:

1. Tool Strip Menu : digunakan untuk memilih menu Home

2. Tool Strip Menu : digunakan untuk memilih menu Compression

(53)

4. Tool Strip Menu : digunakan untuk memilih menu Help 5. Tool Strip Menu : digunakan untuk memilih menu About 6. Label : berisi judul sistem

7. PictureBox : berisi logo institusi

8. Label : berisi nama pembuat sistem

3.5.2. Form Compression

Pada form compression terdapat button untuk memilih file yang akan dikompresi, richtextbox untuk isi file yang akan dikompresi, string bit sebelum dan setelah dikompresi, data hasil kompresi dan reset. Rancangan interface form compression pada aplikasi dapat dilihat pada Gambar 3.11.

Gambar 3.11 Form Compression pada sistem

Komponen yang digunakan untuk perancangan interface form Compression berdasarkan Gambar 3.11. adalah sebagai berikut:

1. Tool Strip Menu : digunakan untuk memilih menu Home

2. Tool Strip Menu : digunakan untuk memilih menu Compression 3. Tool Strip Menu : digunakan untuk memilih menu Decompression 4. Tool Strip Menu : digunakan untuk memilih menu Help

5. Tool Strip Menu : digunakan untuk memilih menu About

(54)

6. Button : button untuk memilih file

7. TextBox : informasi alamat/path file yang dipilih pada device 8. TextBox : informasi mengenai total bit sebelum dikompresi

9. RadioButton :menjalankan proses kompresi dengan Boldi-Vigna

Code

10. RadioButton :menjalankan proses kompresi dengan Even-Rodeh

Code

11. Button : melakukan proses kompresi 12. Button : mengatur ulang proses kompresi 13. RichTextBox : berisi string bit setelah dikompresi

14. TextBox :menampilkan informasi total size bit setelah

dikompresi

15. RichTextBox : berisi string bit dari teks yang dipilih 16. TextBox : informasi nilai compression ratio 17. TextBox : informasi nilai bit rate

18. TextBox : informasi nilai space saving

19. TextBox : informasi mengenai waktu kompresi 20. RichTextBox : berisi teks dari file yang dipilih

3.5.3. Form Decompression

Pada Form Dekompresi terdapat button yang berguna dalam mengeksekusi file yang telah dikompresi. Form Dekompresi pada aplikasi dapat dilihat pada Gambar 3.12.

(55)

Gambar 3.12 Form Decompression pada Sistem

Komponen yang digunakan untuk perancangan interface Halaman Dekompresi berdasarkan Gambar 3.12. adalah sebagai berikut:

berfungsi untuk menampilkan tampilan Beranda dari sistem yang ada.

1. Tool Strip Menu : digunakan untuk memilih menu Home

2. Tool Strip Menu : digunakan untuk memilih menu Compression 3. Tool Strip Menu : digunakan untuk memilih menu Decompression 4. Tool Strip Menu : digunakan untuk memilih menu Help

5. Tool Strip Menu : digunakan untuk memilih menu About 6. Button : button untuk memilih file

7. TextBox : informasi alamat/path file yang dipilih pada device 8. TextBox :menampilkan informasi total size bit setelah

dikompresi

9. RichTextBox : berisi string bit setelah dikompresi 10. Button : melakukan proses dekompresi 11. Button : mengatur ulang proses dekompresi 12. RichTextBox : berisi teks dari file hasil dekompresi

13. TextBox : informasi mengenai total bit setelah proses dekompresi 14. Button : menyimpan file hasil dekompresi

Referensi

Dokumen terkait

Pada penelitian ini membahas tentang perancangan sebuah aplikasi yang dapat menerapkan sistem pengamanan file teks dan pemampatan (kompresi) data file teks yang telah di

In the compression process to the string homogenous Variable Length Binary Encoding (VLBE) algorithm is better than Even-Rodeh Code algorithm shows the Compression Ratio on the

In the compression process to the string homogenous Variable Length Binary Encoding (VLBE) algorithm is better than Even-Rodeh Code algorithm shows the Compression Ratio on the

Rumusan masalah yang akan dibahas dalam penelitian ini adalah bagaimana memperkecil ukuran file teks guna menghemat pemakaian media penyimpanan dan mempercepat

Perbandingan Kinerja Algoritma Fixed Length Binary Encoding (FLBE) dengan Variabel Length Binary Encoding (VLBE) Dalam Kompresi Text File. Medan: Universitas

Analisis Perbandingan Kinerja Algoritma Fixed Length Binari Encoding (FLBE) Dengan Algoritma Sequitur Dalam Kompresi File Teks.. Universitas

Umri Erdiansyah (2014), dalam skripsi yang berjudul “Perbandingan Algoritma Elias Delta Code dan Levenstein untuk Kompresi File Teks”, menyatakan bahwa hasil pengujian kompresi file

Model kompresi file teks dengan menggunakan algoritma sequitur dengan mencari pasangan karakter yang sama kemudian karakter-karkter tersebut diberi simbol yang disebut juga simbol