• Tidak ada hasil yang ditemukan

Bab 4 Implementasi dan Pengujian Sistem

4.2. Implementasi Sistem

4.2.1. Form Home

Form home adalah tampilan pertama kali muncul saat aplikasi dijalankan. Form home dapat dilihat pada Gambar 4.1.

Gambar 4.1 Tampilan Halaman Awal Form Home

4.2.2. Form Compression

Form compression adalah Tab yang menampilkan proses kompresi. Tampilan form compression dapat dilihat pada Gambar 4.2. Ada beberapa fungsi dari interface form compression di bawah ini :

1. Button Open berfungsi untuk memanggil atau menampilkan lokasi file yang akan di kompresi.

2. Text Box merupakan informasi tempat pengambilan dari file yang akan dikompresi.

3. Rich Text Box untuk menampilkan isi file yang telah di panggil dari direktori.

4. Group Box digunakan untuk mengelompokkan Rich Text Box yang berfungsi untuk menampilkan file teks yang telah dipanggil.

5. Button Kompresi berfungsi sebagai tombol perintah untuk mengkompresi file text.

6. Radio Button digunakan untuk menentukan inputan metode atau algoritma apa yang akan digunakan.

7. Group Box informasi digunakan untuk mengelompokkan setiap Label dan Text Box yang berfungsi untuk menampilkan hasil dari Compression Ratio (CR), Bitrate, Space Saving dan Waktu Kompresi pada saat proses kompresi bejalan.

8. Tombol Button Reset berfungsi untuk menghapus hasil dari tampilan file teks yang telah dipanggil, menghapus karakter unik dari hasil kompresi, menghapus informasi parameter tanpa menghapus file terkompresi yang sudah disimpan.

Gambar 4.2 Tampilan Form Compression 4.2.3. Form Decompression

Form Decompression adalah form yang digunakan untuk melakukan proses dekompresi. Tampilan form decompression dapat dilihat pada Gambar 4.3. Ada beberapa fungsi interface di form decompression dibawah ini:

1. Tombol Button open berfungsi untuk memanggil atau menampilkan lokasi file yang sudah dikompresi.

2. Group Box Hasil digunakan untuk mengelompokkan Rich Text Box yang berfungsi untuk menampilkan simbol unik hasil dari kompresi.

3. Tombol Button decompress adalah tombol perintah untuk mendekompresi file teks (simbol unik) yang sudah dikompresi terlebih dahulu, sehingga yang muncul tidak lagi simbol unik melainkan file teks sebelum dikompresi.

4. Group Box Informasi digunakan untuk mengelompokkan setiap Label, Rich Text Box, dan Text Box yang berfungsi untuk menampilkan waktu dan hasil dari dekompresi.

5. Tombol Button Reset berfungsi untuk menghapus hasil dari tampilan file teks yang telah dipanggil, menghapus karakter unik dari hasil kompresi, menghapus informasi waktu dan hasil dekompresi.

Gambar 4.3 Tampilan Form Decompression

4.2.4. Form Help

Form Help berfungsi sebagai informasi tentang cara pengoperasian sistem yang dibuat

Gambar 4.4 Tampilan Form Help

4.2.5. Form About

Form About adalah form yang digunakan hanya untuk menampilkan informasi sistem yang dibuat dan informasi tentang penulis.

Gambar 4.5 Tampilan Form About 4.3. Pengujian Sistem

Tahap ini merupakan proses mengidentifikasi hasil dari implementasi sistem apakah sistem telah berjalan sesuai dengan fungsi yang sebelumnya telah ditentukan pada tahap analisis dan perancangan sistem. Tahap pengujian sistem ini dilakukan pada file teks dengan format *.txt. Proses utama dari sistem ini adalah proses pengujian kompresi dan proses pengujian dekompresi.

4.3.1. Pengujian Proses Kompresi

Tahap awal untuk melakukan proses kompresi adalalah menekan Tab Kompresi. Ketika tampilan form kompresi muncul selanjutnya lakukan langkah-langkah berikut ini untuk melakukan kompresi :

1. Klik tombol Buka untuk membuka File Dialog, dan pilih file teks (*.txt) sebagai file yang akan dikompresi.

2. Setelah dipilih file yang akan dikompresi, isi file yang dipilih akan muncul di Rich Text Box yang berada di dalam Group Box File Teks.

3. Klik tombol Compress untuk melakukan proses kompresi, otomatis akan ditampilkan jumlah bit awal sebelum terkompresi, jumlah bit terkompresi, dari Algoritma Boldi-Vigna ζ1 Code dan Algoritma Even-Rodeh Code yang akan muncul di Text Box.

4. Klik tombol Reset apabila user akan mengulangi proses kompresi, dan tampilan data hasil file yang telah terkompresi akan terhapus.

Gambar 4.6 Tampilan Proses Kompresi

Dari Gambar 4.6. Pada saat proses kompresi, akan ditampilkan secara otomatis jumlah bit awal sebelum terkompresi, jumlah bit terkompresi dan parameter dari Algoritma Even-Rodeh Code dan Algoritma Boldi-Vigna ζ1 Code yang akan muncul di Text Box.

Gambar 4.7 Tampilan Kotak Dialog Save File Pada Proses Kompresi Gambar 4.7 adalah kotak dialog untuk menentukan direktori dan menyimpan file yang telah terkompresi.

Gambar 4.8 Proses Kompresi Setelah Di Atur Ulang

Gambar 4.8 adalah form untuk mengulangi proses kompresi, apabila user mengklik tomol atur ulang maka semua hasil kompresi yang di tampilkan pada Gambar 4.7 akan terhapus.

4.3.2. Pengujian Proses Dekompresi

Tahap awal untuk melakukan proses dekompresi adalah menekan Tab Dekompresi. Ketika tampilan form Dekompresi muncul, selanjutnya lakukan langkah-langkah berikut ini untuk melakukan proses dekompresi :

1. Klik tombol Buka untuk menampilkan lokasi kotak dialog, dan pilih file hasil kompresi (*.bvc atau *.erc) sebagai masukan. Setelah dipilih file hasil kompresi, akan muncul hasil kompresi di Rich Text Box.

2. Klik tombol Dekompresi untuk melakukan proses dekompresi.

Klik tombol Buka untuk menampilkan lokasi kotak dialog, dan pilih file hasil kompresi (*.bvc atau *.erc) sebagai masukan. Setelah dipilih file hasil kompresi, akan muncul hasil kompresi di Rich Text Box di dalam Group Box Hasil Kompresi.

Gambar 4.9 Tampilan Menu Dekompresi

Gambar 4.10 Tampilan Kotak Dialog Save File Pada Proses Dekompresi Gambar 4.10 adalah kotak dialog untuk menentukan direktori dan menyimpan file yang telah didekompresi.

Gambar 4.11 Proses Dekompresi

Gambar 4.11 adalah tampilan proses dekompresi dari file hasil kompresi dari file teks yang telah kita pilih sebelumnya..

4.3.3. Hasil Pengujian

Dari hasil pengujian penelitian ini adalah proses kompresi dan dekompresi yang telah dilakukan terhadap string dengan dua jenis yang berbeda, yaitu string dengan karakter yang sama (String Homogen) dan string yang terdiri dari beberapa jenis karakter yang berbeda (String Heterogen). File yang akan digunakan untuk String Heterogen dan String Homogen terdapat pada Tabel 4.4 dan Tabel 4.5.

Tabel 4.4 File Berisi String Homogen

Frekuensi Karakter String Homogen

1 G

10 GGGGGGGGGG

100 GGGGGGGGGGGGGGGGGGGGGGGGGGGGG

GGGGGGGGG…G

1000

GGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGG…G

10000

GGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGG…G

Tabel 4.5 File Berisi String Heterogen

Frekuensi Karakter

Jenis Karakter

String Heterogen

1 1 0

10 10 012345ABCDE

100 10

012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE

1000 10

012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE….ABCDE

10000 10

012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE012345ABCDE012345ABCDE 012345ABCDE ….ABCDE

4.3.4. Pengujian String Homogen

Hasil dari uji String Homogen yang dilakukan oleh algoritma Boldi-Vigna ζ1

Code dan algoritma Even-Rodeh Code dapat dilihat pada Tabel 4.6 dan Tabel 4.7.

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

String Homogen Boldi-Vigna ζ1 Code

Jumlah

Tabel 4.7 Hasil Pengujian String Homogen dengan Even-Rodeh Code

String Homogen Even-Rodeh Code

Jumlah

Dari hasil pengujian Tabel 4.6 dan Tabel 4.7 dapat dibuat grafik perbandingan hasil pengujian String Homogen algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code berdasarkan variabel: Compression Ratio (CR), Bitrate, Space Saving, Waktu Kompresi, dan Waktu Dekompresi seperti pada Gambar 4.12, Gambar 4.13, Gambar 4.14, Gambar 4.15, dan Gambar 4.16.

Gambar 4.12 Grafik Compression Ratio terhadap String Homogen

Dari Gambar 4.12. Grafik Compression Ratio dapat disimpulkan bahwa algoritma Even-Rodeh Code lebih efisien dalam hal Compression Ratio. Jika algoritma yang memiliki nilai CR lebih besar maka algoritma tersebut lebih baik untuk digunakan dalam proses kompresi file dengan jumlah karakter yang sangat besar dengan string yang sama (homogen).

0 0.5 1 1.5 2 2.5

1 10 100 1000 10000

Compression Ratio

Panjang String

Grafik Compression Ratio terhadap String Homogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Gambar 4.13 Grafik Bitrate terhadap String Homogen

Dari Gambar 4.13 Grafik Bitrate dapat disimpulkan bahwa algoritma Boldi-Vigna ζ1

Code lebih efisien dalam segi Bitrate dibandingkan dengan algoritma Even-Rodeh Code. Hal ini dikarenakan nilai Bitrate yang dimiliki oleh algoritma Boldi-Vigna ζ1

Code lebih rendah.

Gambar 4.14 Grafik Space Savings terhadap String Homogen

0

1 10 100 1000 10000

Bitrate

Panjang String

Grafik Bitrate terhadap String Homogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

-150

1 10 100 1000 10000

Space Savings

Panjang String

Grafik Penghematan Ruang Penyimpanan (Space Savings) terhadap String Homogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Dari Gambar 4.14. Grafik Space Savings dapat disimpulkan bahwah algoritma Boldi-Vigna ζ1 Code lebih baik dan efisien dalam melakukan Space Savings (penghematan ruang) dalam proses kompresi file dengan jumlah karakter yang besar dengan string yang sama (homogen).

Gambar 4.15 Grafik Waktu Kompresi terhadap String Homogen

Dari Gambar 4.15. Grafik Waktu Kompresi dapat disimpulkan bahwa algoritma Boldi-Vigna ζ1 Code tidak memerlukan waktu yang lebih lama untuk melakukan proses kompresi file. Sedangkan algoritma Even-Rodeh Code memerlukan waktu yang lama untuk melakukan proses kompresi file teks dengan string yang sama (homogen).

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

1 10 100 1000 10000

Waktu Kompresi

Panjang String

Grafik Waktu Kompresi terhadap String Homogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Gambar 4.16 Grafik Waktu Dekompresi terhadap String Homogen Dari Gambar 4.16. Grafik Waktu Dekompresi dapat disimpulkan bahwa algoritma Boldi-Vigna ζ1 Code relatif lebih lama sedangkan algoritma Even-Rodeh Code relatif lebih cepat, akan tetapi ke dua algoritma baik dan efisien untuk melakukan kompresi file teks dengan string yang sama (homogen) di karenakan ujung garis grafik kedua algoritma sejajar.

4.3.5. Pengujian String Heterogen

Hasil dari uji String Heterogen yang dilakukan oleh algoritma Boldi-Vigna ζ1

Code dan algoritma Even-Rodeh Code dapat dilihat pada Tabel 4.8 dan Tabel 4.9.

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04

1 10 100 1000 10000

Waktu Dekompresi

Panjang String

Grafik Waktu Dekompresi terhadap String Homogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

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

String Heterogen Boldi-Vigna ζ1 Code

Jumlah

Tabel 4.9 Hasil Pengujian String Heterogen dengan Even-Rodeh Code

String Heterogen Even-Rodeh Code

Jumlah

Dari hasil pengujian Tabel 4.8 dan Tabel 4.9 dapat dibuat grafik perbandingan hasil pengujian String Homogen algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code berdasarkan variabel Compression Ratio (CR), Bitrate, Space Saving, Waktu Kompresi, dan Waktu Dekompresi seperti pada Gambar 4.17, Gambar 4.18, Gambar 4.19, Gambar 4.20 dan Gambar 4.21.

Gambar 4.17 Grafik Compression Ratio terhadap String Heterogen

Dari Gambar 4.17. Grafik Compression Ratio dapat disimpulkan bahwa algoritma Even-Rodeh Code lebih efisien dalam hal Compression Ratio. Hal ini dikarenakan jika sebuah algoritma yang memiliki nilai CR lebih besar maka algoritma tersebut lebih baik untuk digunakan dalam proses kompresi file dengan jumlah karakter yang sangat besar dengan string yang berbeda (heterogen).

0 0.5 1 1.5 2 2.5

1 10 100 1000 10000

Compression Ratio

Panjang String

Grafik Compression Ratio terhadap string heterogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Gambar 4.18 Grafik Bitrate terhadap String Heterogen

Dari Gambar 4.18 Grafik Bitrate dapat disimpulkan bahwa algoritma Even-Rodeh Code lebih efisien dalam segi Bitrate dibandingkan dengan algoritma Boldi-Vigna ζ1 Code. Dikarenakan nilai Bitrate yang dimiliki oleh algoritma Even-Rodeh Code lebih rendah dalam proses kompresi file dengan jumlah karakter yang sangat besar dengan string yang berbeda (heterogen).

0 1000 2000 3000 4000 5000 6000

1 10 100 1000 10000

Bitrate

Panjang String

Grafik Bitrate terhadap String Heterogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

-150 -100 -50 0 50 100

1 10 100 1000 10000

Space Savings

Panjang String

Grafik Penghematan Ruang Penyimpanan (Space Savings) terhadap String Heterogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Dari Gambar 4.19. Grafik Space Saving dapat disimpulkan bahwah algoritma Boldi-Vigna ζ1 Code lebih baik dan efisien dalam melakukan Space Saving (penghematan ruang) dalam proses kompresi file dengan jumlah karakter yang besar dengan string yang berbeda (heterogen) jika dibandingkan dengan algoritma Even-Rodeh Code.

Gambar 4.20 Grafik Waktu Kompresi terhadap String Heterogen

Dari Gambar 4.20. Grafik Waktu Kompresi dapat disimpulkan bahwa algoritma Boldi-Vigna ζ1 Code tidak memerlukan waktu yang lebih lama untuk melakukan proses kompresi file. Sedangkan algoritma Even-Rodeh Code memerlukan waktu yang lebih lama untuk melakukan proses kompresi file teks dengan string yang berbeda (heterogen).

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

1 10 100 1000 10000

Waktu Kompresi

Panjang String

Grafik Waktu Kompresi terhadap String Heterogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Gambar 4.21 Grafik Waktu Dekompresi terhadap String Heterogen Dari Gambar 4.21. Grafik Waktu Dekompresi dapat disimpulkan bahwa algoritma Boldi-Vigna ζ1 Code tidak memerlukan waktu yang lebih lama untuk melakukan proses kompresi file. Sedangkan algoritma Even-Rodeh Code memerlukan waktu yang lebih lama untuk melakukan proses dekompresi file teks dengan string yang berbeda (heterogen).

4.3.6. Pengujian Corpus

Pengujian sistem ini juga dilakukan terhadapa file Corpus. Dimana file Corpus yang digunakan ialah Artificial Corpus. Artificial Corpus berisi file yang dikembangkan khusus untuk pengujian kinerja algoritma kompresi berdasarkan kemampuannya untuk merepresentasikan hasil kinerja algoritma kompresi. Artificial Corpus terdiri dari empat file uji. Isi dari keempat file uji dipaparkan pada Tabel 4.10.

Tabel 4.10 File Uji Artificial Corpus

File Isi file Frek Karakter Keterangan

a.txt a 1 Huruf ‘a’

aaa.txt aaa… 100000 Huruf ‘a’ yang diulang

alphabet.txt alphabet 100000 Alphabet yang diulang random.txt Karater acak 100000 100000 karakter random

0

1 10 100 1000 10000

Waktu Dekompresi

Panjang String

Grafik Waktu Dekompresi terhadap String Heterogen

Boldi-Vigna ζ1 Code Even-Rodeh Code

Hasil pengujian Boldi-Vigna ζ1 Code dan Even-Rodeh Code terhadap Artificial Corpus dipaparkan pada Tabel 4.11 dan Tabel 4.12.

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

Artificial Corpus Boldi-Vigna ζ1 Code

Jumlah

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

Artificial Corpus Even-Rodeh Code

Jumlah

4.4. Kompleksitas Algoritma

Kompleksitas algoritma dari algoritma Boldi-Vigna ζ1 Code dan Even-Rodeh Code yang akan diuji dan dijelaskan pada Tabel 4.13 dan Tabel 4.14 berikut :

Tabel 4.13 Kompleksitas Algoritma Boldi-Vigna ζ1 Code

Pseudocode Algoritma C # C.#

Function BoldiVignaCodes(n)

k ← 1 C1 1 C1

h ← 0 C1 1 C1

hMax ← Math.Pow(2, (h + 1) * k) – 1 C1 1 C1

while (n > hMax) do C2 n C2n

h ← h + 1 C1 n C1n

hMax ← Math.Pow(2, (h + 1) * k) – 1 C1 n C1n

end while

unary ← "1".PadLeft(h + 1, '0') C1 1 C1

minBinCodeorX ← n - Math.Pow(2, h * k) C1 1 C1

z ← Math.Pow(2, (h + 1) * k) -Math.Pow(2,

h * k)

C1 1 C1

s ← Math.Ceiling(Math.Log(z,2) C1 1 C1

encodeValue ← minBinCodeorX C1 1 C1

encodeBin ← “” C1 1 C1

Berdasarkan data pada Tabel 4.13, nilai kompleksitas algoritma Boldi-Vigna ζ1 Code dapat dihitung sebagai berikut.

T(n) = ∑( Ci . #i )

= 12C1 + 2C1n+ C2n + C3 + C4

= 12C1 + (2C1 + C2)n + C3 + C4

= θ (n)

Pseudocode Algoritma C # C.#

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

encodeValue ←Math.Abs(Math.Abs

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

C1 1 C1

encodeBin ← DecToBin(encodedValue).

PadLeft(s,'0').Substring(0,s)

C1 1 C1

Else C3 1 C3

encodeBin ← DecToBin(encodedValue)

.PadLeft(s – 1, '0').Substring(0, s-1)

C1 1 C1

return unary+""+encodeBin C4 1 C4

Tabel 4.14Kompleksitas Algoritma Even-Rodeh Code

Pseudocode Algoritma C # C.#

Function EvenRodehCodes(n)

if n < 4 C1 1 C1

c ← DecToBin(n) C2 1 C2

int lc ← c.Length C2 1 C2

for i ← 0 to 3 – lc do C3 n C3n

code.Append(“0”) C4 n C4n

end for

code.Append(“c”) C4 1 C4

else if (n >= 4 && n < 8) C1 1 C1

c ← DecToBin(n) C2 1 C2

code.Append(“c”) C4 1 C4

code.Append(“0”) C4 1 C4

else C1 1 C1

c ← DecToBin(n) C2 1 C1

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

code.Append(“c”) C4 1 C4

code.Append(“0”) C4 1 C4

return code C5 1 C5

Berdasarkan data pada Tabel 4.14, nilai kompleksitas algoritma Even-Rodeh Code dapat dihitung sebagai berikut.

T(n) = ∑( Ci . #i )

= 3C1 + 4C2 + C3n + C4n + 6C4 + C5

= 3C1 + 4C2 + (C3 + C4)n + 6C4 + C5

= θ (n)

BAB 5

KESIMPULAN DAN SARAN 5.1. Kesimpulan

Berdasarkan hasil dari pengujian yang dilakukan pada penelitian ini, diperoleh beberapa kesimpulan yang berkaitan dengan perbandingan kinerja kompresi dari algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code. Di antaranya sebagai berikut:

1. Pada pengujian kompresi file teks yang berisi string homogen algoritma Boldi-Vigna ζ1 Code memilki kinerja yang lebih baik dibandingkan Even-Rodeh Code karena memilki nilai space savings yang lebih tinggi, bit rate yang lebih kecil serta waktu kompresi yang lebih cepat.

2. Dilihat dari nilai compression ratio yang diperoleh dari pengujian terhadap string homogen dan heterogen diketahui bahwa compression ratio algoritma Even-Rodeh Code lebih baik pada string homogen dan string heterogen.

3. Berdasarkan nilai space savings yang didapat dari uji coba sistem terhadap string homogen dan heterogen diketahui bahwa space savings algoritma Boldi-Vigna ζ1

Code lebih baik pada file string homogen dan file string heterogen

4. Dilihat dari bit rate yang didapat dari hasil pengujian terhadap file string homogen dan string heterogen menunjukkan bahwa bit rate Boldi-Vigna ζ1 Code lebih baik pada file berisi string homogen, sedangkan Even-Rodeh Code lebih baik pada file berisi string heterogen.

5. Dilihat dari hasil pengujian terhadap string homogen dan heterogen diketahui bahwa proses kompresi menggunakan Boldi-Vigna ζ1 Code lebih cepat pada string homogen dan string heterogen

6. Hasil pengujian terhadap file berisi string homogen menunjukkan bahwa waktu yang dibutuhkan untuk proses dekompresi algoritma Even-Rodeh Code lebih sedikit dibandingkan algoritma Boldi-Vigna ζ1 Code. Sementara hasil pengujian file string heterogen menunjukkan bahwa waktu yang dibutuhkan algoritma

Boldi-Vigna ζ1 Code Code lebih sedikit dibandingkan algoritma Even-Rodeh Code untuk proses dekompresi.

7. Berdasarkan perhitungan yang dilakukan nilai kompleksitas algoritma yang didapat dalam penelitian ini yaitu, nilai kompleksitas algoritma Boldi-Vigna ζ1 Code dan algoritma Even-Rodeh Code adalah sebesar 𝛳(𝑛).

5.2. Saran

Berdasarkan penelitian yang dilakukan, beberapa saran yang dapat dipertimbangkan untuk penelitian selanjutnya adalah adalah sebagai berikut:

1. Pada penelitian ini proses kompresi hanya dilakukan terhadap file teks yang berekstensi .txt, untuk itu diharapkan pada penelitian selanjutnya mampu mengkompresi file teks dengan ekstensi lainnya, seperti .docx dan lain-lain.

2. Pada penelitian ini kompresi hanya dilakukan pada file teks, setelahnya diharapkan dapat mengkompresi bentuk file lain seperti file audio, video, dan lain-lain.

3. Pada penelitian ini, sistem dibangun dengan menggunakan bahasa pemrograman C#, diharapkan setelahnya dapat menggunakan bahasa pemrograman yang lain seperti Java, Python dan lain-lain.

4. Pada penelitian ini, sistem yang dibangun hanya dapat barjalan pada platform desktop, untuk itu pada penelitian berikutnya sistem diharapkan dapat berjalan pada platform android.

DAFTAR PUSTAKA

Abdullah, A. R. (2016). Perbandingan Algoritma Even-Rodeh dan Algoritma Variable Length Binary Encoding (VLBE) pada kompresi file teks.

Skripsi. Universitas Sumatera Utara. Medan

Batubara, M. M. (2018). Implementasi Algoritma Vigenere Cipher dan Algoritma Even-Rodeh Code pada Pengamanan dan Kompresi File. Skripsi. Universitas Sumatera Utara. Medan

Budiman, M. A. & Dian Rachmawati. (2017). On Using Goldbach Go Codes and Even-Rodeh Codes for Text Compression. Jurnal . IOP Conf. Series: Materials Science and Engineering, No. 012062. DOI: 10.17605/OSF.IO/8HJVB.

Cormen, T.H., Leiserson, C.E., Rivest, R.L. & Stein, C. (2009). Introduction to Algorithms. Third Edition. The MIT Press: London.

Ida, M. P. (2006). Fundamental Data Compression. Elsevier Publishers: New York.

Retrieved April, 23, 2013.

Jamaluddin, J. (2018). Analisis Perbandingan Kompresi Data dengan Fixed-Length Code, Variable-Length Code dan Algoritma Huffman. Skripsi. Universitas Sumatera Utara. Medan

Kodituwakku, S. R., & Amarasinghe, U. S. (2010). Comparison of lossless data compression algorithms for text data. Indian journal of computer science and engineering, 1(4), 416-425.

Lestari, E. (2018). Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) pada Keamanan dan Kompresi File Teks. Skripsi. Universitas Sumatera Utara. Medan

Motta, G., Rizzo, F., & Storer, J. A. (Eds.). (2006). Hyperspectral Data Compression.

Springer Science & Business Media.

Pu, I. M. (2005). Fundamental Data Compression. Butterworth-Heinemann.

Rao, K. R., & Yip, P. C. (2000). The Transform and Data Compression Handbook.

CRC press.

Salomon, D . (2007).Variable-Length Codes For Data Compression.Springer Science

& Business Media.

Salomon, D., & Motta, G. (2010). Handbook of Data Compression. Springer Science

& Business Media.

LISTING PROGRAM

/// Description of MainForm.

/// </summary>

public partial class MainForm : Form {

public MainForm() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

//

}

void Label1Click(object sender, EventArgs e) {

}

void KompresiToolStripMenuItemClick(object sender, EventArgs e)

{

Kompresi k = new Kompresi();

k.Show();

this.Hide();

}

void MainFormLoad(object sender, EventArgs e) {

}

void DekompresiToolStripMenuItemClick(object sender, EventArgs e)

{

Dekompresi k = new Dekompresi();

k.Show();

Bantuan k = new Bantuan();

k.Show();

this.Hide();

EventArgs e) {

Tentang k = new Tentang();

k.Show();

/// Description of Kompresi.

/// </summary>

public partial class Kompresi : Form {

public static int[] fr;

public static String cs;

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

//

}

void GroupBox1Enter(object sender, EventArgs e) {

}

void BerandaToolStripMenuItemClick(object sender, EventArgs e)

{

MainForm k = new MainForm();

k.Show();

Kompresi k = new Kompresi();

k.Show();

Dekompresi k = new Dekompresi();

k.Show();

Bantuan k = new Bantuan();

k.Show();

Tentang k = new Tentang();

k.Show();

this.Hide();

}

public static string StringToBinary(string data) {

public static String GetCharSet(String st) // fungsi untuk membuat tabel string

{

public static int CountChar(String s, char ch) // fungsi

public static void InsertionSort(int[] freq, String charset) //

fungsi untuk mengurutkan karakter dan frekuensi {

public static String Reverse(String sb) // fungsi untuk membalikkan array

public static String DecToBin(int dec) // fungsi untuk mengubah decimal ke biner

{

}

public static int BinToDec(String bin) // fungsi untuk mengubah biner ke decimal

{

StringBuilder sb = new StringBuilder(Reverse(bin));

int n = 1;

public static String StringToStb(String st, String c, String[] s)

public static String Encode(String stb) // fungsi mengubah string ke biner untuk proses kompresi

{

public static String Decode(String code) //fungsi untuk

{

public static String GetBoldiVigna(int n)

{

public static void BoldiVignaCodes(String st) //fungsi untuk memanggil kode boldi-vigna

{

int[] freq = CountFreq(st);

String charset = GetCharSet(st);

int t = charset.Length;

InsertionSort(freq, charset);

freq = fr;

public static String GetEvenRodeh(int n) //fungsi untuk membangkitkan kode even-rodeh

{

StringBuilder sb = new StringBuilder();

sb.Append(Convert.ToString(c.Length,2));

sb.Append(c);

public static void EvenRodehCodes(String st) //fungsi untuk memanggil kode even-rodeh

{

void Btn_bukaClick(object sender, EventArgs e) {

OpenFileDialog open = new OpenFileDialog();

open.Filter = "TXT files|*.txt";

if(open.ShowDialog() ==

System.Windows.Forms.DialogResult.OK)

richTextBox1.Text = "";

textBox1.Text = open.FileName;

if(Path.GetExtension(open.FileName) ==

".txt")

{

string strfilename = open.FileName;

string txt = File.ReadAllText(strfilename);

richTextBox1.Text = txt;

}

int ukuran = richTextBox1.Text.Length*8;

textBox_awal.Text = ukuran.ToString() +"

bits";

void Btn_simpanClick(object sender, EventArgs e) {

}

void Rbtn_ercCheckedChanged(object sender, EventArgs e) {

}

void RichTextBox1TextChanged(object sender, EventArgs e) {

} */

void Btn_aturulangClick(object sender, EventArgs e) {

void Btn_kompresiClick(object sender, EventArgs e) {

String kalimat = richTextBox1.Text;

if(rbtn_bv.Checked == true) {

Stopwatch watch = new Stopwatch();// running time

watch.Start();

BoldiVignaCodes(kalimat);

String stb = StringToStb(kalimat,cs,bv);

String code = Encode(stb);

String dc = Decode(code);

richTextBox_compbin.Text=stb;

textBox_akhir.Text=stb.Length.ToString()+"

bits";

double CR = (stb.Length/(kalimat.Length* 8 * 1.0))*100;

double BR = stb.Length/cs.Length;

textBox_bitrate.Text = BR.ToString()+"

bits/symbol";

textBox_akhir.Text = stb.Length.ToString()+"

bits";

watch.Stop();

SaveFileDialog simpan = new SaveFileDialog();

simpan.Filter = "Compressed Files(

*.bvc)|*.bvc";

simpan.FileName = "*.bvc";

if (simpan.ShowDialog() == DialogResult.OK) {

using(StreamWriter writer = new StreamWriter(simpan.FileName)) dikompresi dengan Boldi-Vigna Code");

} }

else if(rbtn_erc.Checked == true) {

Stopwatch watch = new Stopwatch();// running

Stopwatch watch = new Stopwatch();// running

Dokumen terkait