Bab 1 Pendahuluan
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
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.
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
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
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
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 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).
𝐵𝑖𝑡 𝑟𝑎𝑡𝑒 = 𝑢𝑘𝑢𝑟𝑎𝑛 𝑏𝑖𝑡 𝑡𝑒𝑟𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑗𝑢𝑚𝑙𝑎ℎ 𝑗𝑒𝑛𝑖𝑠 𝑘𝑎𝑟𝑎𝑘𝑡𝑒𝑟
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.
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
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
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
Σ 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
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
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:
Tabel 2.5 Kode Daftar Boldi-Vigna ζ1
N
ζ11 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:
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
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
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
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
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