• Tidak ada hasil yang ditemukan

Bab 2 Landasan Teori

2.8 Penelitian yang Relevan

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),

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.

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.

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

Tidak puas dengan waktu transfer data data yang tidak diperlukan

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.

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-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

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

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

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.

3.3.1. Pseudocode Algoritma Boldi-Vigna ζ1 Code

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)

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

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 eft(s - 1, '0').Substring(0, s-1);

bvc =

Gambar 3.8 Flowchart algoritma Boldi-Vigna ζ1 Code

3.4.3. Flowchart Algoritma Even-Rodeh Code

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

Mulai

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

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

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

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.

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

3.5.4. Form Help

Berisikan keterangan yang dapat membantu user dalam mengoperasikan sistem yang ada Form. Bantuan pada aplikasi dapat dilihat pada Gambar 3.13.

Gambar 3.13 Form Help pada Sistem

Komponen yang digunakanuntuk perancanganinterfaceHalaman Bantuan berdasarkan Gambar 3.13. 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

6. Label :menampilkan teks keterangan bantuan untuk menu

Compression dan Decompression

7. TextBox :menampilkan teks mengenai keterangan dalam menggunakan menu Kompresi dan Dekompresi yang

ada pada sistem.

3.5.5. Form About

Berisikan informasi mengenai informasi pembuatan di dalam sistem. Form Tentang pada aplikasi dapat dilihat pada Gambar 3.14.

Gambar 3.14 Form About pada Sistem

Komponen yang digunakanuntuk perancanganinterfaceHalaman Tentang berdasarkan Gambar 3.14. 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

6. Label : berfungsi untuk menampilkan teks berisi judul dari sistem yang telah dibuat.

7. Group Box : berfungsi untuk mengelompokkan Button dan TextBox

dalam sistem.

8. Label : berfungsi untuk menampilkan teks berisi judul dari sistem yang telah dibuat.

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Algoritma

4.1.1. Implementasi Algoritma Boldi-Vigna ζ1 Code

Proses analisis kompresi file teks dengan menggunakan algoritma Boldi-Vigna ζ1 Code. Di bawah ini adalah contoh proses kompresi file teks dengan menggunakan algoritma Boldi-Vigna ζ1 Code. Terdapat file teks yang berisikan string “KUTU BUKU BACA BUKU KALKULUS”. Dapat dilihat pada Tabel 4.1 untuk mengukur string itu di dalam komputer.

Tabel 4.1 Ukuran String Sebelum Dikompresi Karakter ASCII

Code

ASCII Code (Binary)

Freq Bit Freq*Bit

K 75 01001011 5 8 40

U 85 01010101 8 8 64

T 84 01010100 1 8 8

Sp 32 00100000 4 8 32

B 66 01000010 3 8 24

A 65 01000001 3 8 24

C 67 01000011 1 8 8

L 76 01001100 2 8 16

S 83 01010011 1 8 8

Jumlah Bit 224 Bit

Berdasarkan kode ASCII, satu karakter bernilai delapan bit bilangan biner. Sehingga 28 karakter pada string mempunyai nilai biner sebanyak 224 bit. Sebelum melakukan proses kompresi, karakter terlebih dahulu diurutkan dari frekuensi terbesar ke yang terkecil. Proses kompresi untuk algoritma Boldi-Vigna ζ1 Code dapat dilihat pada tabel 4.2.

Tabel 4.2 Ukuran String Setelah Dikompresi Dengan Boldi-Vigna ζ1 Code N Σ Freq Boldi-Vigna ζ1 Code Bit Freq*Bit

1 U 8 1 1 8

2 K 5 010 3 15

3 Sp 4 011 3 12

4 B 3 00100 5 15

5 A 3 00101 5 15

6 L 2 00110 5 10

7 T 1 00111 5 5

8 C 1 0001000 7 7

9 S 1 0001001 7 7

Jumlah Bit 94 Bit

Berdasarkan tabel diatas, maka didapat string bit sebelum dikompresi yaitu

“01010011110110010010101011001000010100010000010101100100101010110100 01010011001010011010001001” dengan uraian sebagai berikut:

K U T U Sp

010 1 00111 1 011

B U K U Sp

00100 1 010 1 011

B A C A Sp

00100 00101 0001000 00101 011

B U K U Sp

00100 1 010 1 011

K A L K

010 00101 00110 010

U L U S

1 00110 1 0001001

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 94 bit, tentu tidak habis dibagi delapan dan sisanya adalah 6. Sehingga dibutuhkan bit 0 sebanyak 2 kali, maka padding adalah “00”

dan flag bits-nya adalah bilangan biner dari 4 yaitu “00000010”.

Diperoleh:

String bit hasil kompresi =

010100111101100100101010110010000101000100000101011001001010101101000 10100110010100110100010010000000010

Total bit seluruhnya adalah penambahan padding dan flag adalah 94+2+8 = 104.

Dari hasil kompresi dengan algoritma Boldi-Vigna ζ1 Code di atas dapat dihitung

a. Compression Ratio

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

224 𝐶𝑅 = 0,4643 b. Bitrate

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

9

𝐵𝑖𝑡𝑟𝑎𝑡𝑒 = 11 𝑏𝑖𝑡𝑠 𝑠𝑦𝑚𝑏𝑜𝑙 c. Space Savings (SS)

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

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

𝑆𝑆 = (224 − 104

224 ) × 100%

𝑆𝑆 = 53.57%

4.1.2. Implementasi Algoritma Even-Rodeh Code

Proses analisis kompresi file teks dengan menggunakan algoritma Even-Rodeh Code. Di bawah ini adalah contoh proses kompresi file teks dengan menggunakan algoritma Even-Rodeh Code. Terdapat file teks yang berisikan string “KUTU BUKU BACA BUKU KALKULUS”. Dapat dilihat pada Tabel 4.1. untuk mengukur string itu di dalam komputer.

Berdasarkan kode ASCII, satu karakter bernilai delapan bit bilangan biner.

Sehingga 28 karakter pada string mempunyai nilai biner sebanyak 224 bit. Sebelum melakukan proses kompresi, karakter terlebih dahulu diurutkan dari frekuensi terbesar ke yang terkecil. Proses kompresi untuk algoritma Even-Rodeh Code dapat dilihat pada tabel 4.3.

Tabel 4.3 Ukuran String Setelah Dikompresi Dengan Even-Rodeh Code

N Σ Freq Even-Rodeh Code Bit Freq*Bit

0 U 8 000 3 24

1 K 5 001 3 15

2 Sp 4 010 3 12

3 B 3 011 3 9

4 A 3 1000 4 12

5 L 2 1010 4 8

6 T 1 1100 4 4

7 C 1 1110 4 4

8 S 1 10010000 8 8

Jumlah Bit 96 Bit

Berdasarkan tabel diatas, maka didapat string bit sebelum dikompresi yaitu

“00100011000000100110000010000100111000111010000100110000010000100011 0001010001000101000010010000” dengan uraian sebagai berikut:

K U T U Sp

001 000 1100 000 010

B U K U Sp

011 000 001 000 010

B A C A Sp

011 1000 1110 1000 010

B U K U Sp

011 000 001 000 010

K A L K

001 1000 1010 001

U L U S

000 1010 000 10010000

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 96 bit, tentu habis dibagi delapan. Sehingga tidak diperlukan untuk menambahkan padding bit 0 dan flag bits-nya adalah bilangan biner dari 0 yaitu “00000000”.

Diperoleh:

String bit hasil kompresi =

001000110000001001100000100001001110001110100001001100000100001000110 00101000100010100001001000000000000

Total bit seluruhnya adalah penambahan padding dan flag adalah 96+8 = 104.

Dari hasil kompresi dengan algoritma Even-Rodeh Code di atas dapat dihitung kinerja kompresinya yaitu :

a. Compression Ratio

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

224 𝐶𝑅 = 0,4643

b. Bitrate

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

𝑗𝑢𝑚𝑙𝑎ℎ ℎ 𝑘𝑎𝑟𝑎𝑘𝑡𝑒𝑟 𝑢𝑛𝑖𝑘 𝑡𝑒𝑘𝑠 × 100%

𝐵𝑖𝑡𝑟𝑎𝑡𝑒 =104 9

𝐵𝑖𝑡𝑟𝑎𝑡𝑒 = 11 𝑏𝑖𝑡𝑠 𝑠𝑦𝑚𝑏𝑜𝑙 c. Space Savings (SS)

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

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

𝑆𝑆 = (224 − 104

224 ) × 100%

𝑆𝑆 = 53.57%

4.2. Implementasi Sistem

Pada tahap ini sistem dibangun menggunakan bahasa pemrograman C# dan menggunakan aplikasi Sharp Develop 5.1, pada proses membangun sistem ini akan dibagi lima form dalam bahasa C# di antaranya ada form Beranda, Tab Kompresi, Tab Dekompresi, Tab Bantuan dan Tab Tentang.

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

Tahap awal untuk melakukan proses kompresi adalalah menekan Tab Kompresi. Ketika tampilan form kompresi muncul selanjutnya lakukan

Dokumen terkait