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