113
ANALISA PERBANDINGAN ALGORITMA RICE CODES DENGAN
ALGORITMA GOLDBACH CODES PADA KOMPRESI FILE TEXT
MENGGUNAKAN METODE EXPONENTIAL
Muhammad Asnawi Latif, Surya Darma Nasution, Pristiwanto STMIK Budi Darma, Medan, Indonesia
Jl. Sisingamangaraja No. 338 Medan, Indonesia
ABSTRAK
Kompresi data (pemampatan data) merupakan suatu teknik untuk memperkecil jumlah ukuran data (hasil kompresi) dari data aslinya. Pemampatan data umumnya diterapkan pada mesin computer, hal ini dilakukan karena setiap simbol yang dimunculkan pada computer memiliki nilai-nilai bit yang berbeda. Analisa yang dilakukan dalam membandingkan proses cara kerja dari algoritma rice codes dan algoritma goldbach codes dengan menggunakan metode exponential. Kompresi ini hanya mengarah pada kompresi file text saja. Adapun teknik dari kompresi ini adalah dengan mengganti karakter yang berulang-ulang tersebut dengan suatu pola tertentu sehingga berkas tersebut dapat meminimalisasi ukurannya. Algoritma tersebut dimulai dengan memberikan rangkaian string sebagai masukan, bagaimana menghasilkan keluaran algoritma berupa string biner atau kode yang menterjemahkan setiap string masukan agar string tersebut mempunyai jumlah bit yang sedikit dibandingkan dengan string yang tidak dimampatkan.
Kata Kunci: Algoritma Rice Codes, Algoritma Goldbach Codes, Metode Exponential, File Text
I. PENDAHULUAN
Kebutuhan akan kapasitas penyimpanan yang besar nampaknya semakin penting pada saat ini. Kebutuhan ini, disebabkan oleh data yang harus disimpan semakin lama semakin bertambah banyak, khususnya bagi dunia usaha, perbankan, perusahaan ataupun instansi - instansi pemerintahan. Perusahaan tersebut umumnya sangat membutuhkan sekali kapasitas yang sangat besar, untuk menyimpan semua data-data dan file-file penting.
Untunglah data-data tersebut dapat dimampatkan (compress) terlebih dahulu sehingga tempat yang dibutuhkan dalam memori semakin sedikit dan lebih efesien dalam menyimpanan data, sehingga perusahaan tidak lagi khawatir akan kapasitas untuk penyimpanan file-file yang penting yang semakin hari semakin bertambah jumlahnya.
Kompresi merupakan pengurangan ukuran suatu data menjadi ukuran yang lebih kecil dari aslinya. Pengompresian data ini sangat menguntungkan manakala terdapat suatu data yang berukuran sangat besar dan data didalamnya mengandung banyak pengulangan karakter akan menjadi lebih efisien dalam penyimpanan. Adapun teknik dari kompresi ini adalah dengan mengganti karakter yang berulang-ulang tersebut dengan suatu pola tertentu sehingga data tersebut dapat meminimalisasi ukurannya.
Banyak algoritma kompresi yang dapat digunakan, diantaranya algoritma Rice Codes dan algoritma Goldbach Codes. Penggunaan algoritma Rice Codes dan algoritma Goldbach Codes dalam kompresi file text dimaksudkan untuk memberikan manfaat yang sangat besar dalam proses pengiriman maupun penyimpanan serta membutuhkan ruang memori yang lebih sedikit dibandingkan dengan text yang tidak dikompresi. Sehingga dalam pengiriman ataupun
penyimpanan text yang telah dikompresi membutuhkan waktu pengiriman dan ruang simpan yang lebih singkat dan sedikit dibandingkan dengan text yang belum dikompresi.
Setelah melakukan kompresi kedua algoritma tersebut maka, kita membandingkannya menggunakan metode Exponential. Membandingkan kedua algoritma tersebut bertujuan untuk mengetahui algoritma mana yang lebih efesien dalam melakukan kompresi, Sehingga kita bisa memilih algoritma mana yang akan kita gunakan saat kita akan mengkompresi suatu file text.
II. TEORITIS A. Kompresi Data
Kompresi data (pemampatan data) merupakan suatu teknik untuk memperkecil jumlah ukuran data (hasil kompresi) dari data aslinya. Pemampatan data umumnya diterapkan pada mesin komputer, hal ini dilakukan karena setiap simbol yangdimunculkan pada komputer memiliki nilai bit-bit yang berbeda. Misal pada ASCII setiap simbol yang dimunculkan memiliki panjang bit 8 bit, misal kode A pada ASCII mempunyai nilai desimal = 65, jika dirubah dalam bilangan biner menjadi 010000001.
Pemampatan data digunakan untuk mengurangkan jumlah bit-bit yang dihasilkan dari setiap simbol yang muncul. Dengan pemampatan ini diharapkan dapat mengurangi (memperkecil ukuran data) dalam ruang penyimpanan
B. Algoritma Rice Codes
Rice codes ditemukan oleh Robert F. Rice dan merupakan salah satu teknik entropy encoding Algoritma Rice Codes atau Rice Golomb Coding adalah salah satu algoritma yang dapat digunakan untuk melakukan kompresi data sehingga ukuran data yang
114 dihasilkan menjadi lebih rendah dari ukuran
sebenarnya.
Dalam algoritma Rice Codes, ada sebuah nilai k yang artinya adalah banyaknya angka 1 pada suffix dari kode terkompresi. Dalam proses encode, dilakukan pemisahan pada prefix dan suffix. Ketika proses decode, decoder membaca sign bit dan lompat ke angka 0 pertama sebelah kiri, yang mana akan berlanjut kembali untuk penambahan bit pada k selanjutnya. Untuk nilai k dalam proses kompresi menggunakan Rice Code, dapat dilihat pada tabel dibawah ini.
Tabel 1. Tabel Nilai k
N K=0 K=1 K=2 K=3 0 0| 0|0 0|00 0|000 1 10| 0|1 0|01 0|001 2 110|0 10|0 0|10 0|010 3 110|1 10|1 0|11 0|011 4 1110|00 110|00 10|00 0|100 5 1110|01 110|01 10|01 0|101 C. Algoritma Goldbach Codes
Algoritma Goldbach Codes adalah algoritma yang diasumsikan menggunakan teori Goldbach Conjecture yaitu Semua bilangan genap positif yang lebih besar dari 2 merupakan penjumlahan dari dua bilangan prima. Konjektur ini pertama kali disebut dalam suratnya kepada Euler pada tahun 1742. Dalam suratnya ini ia mengatakan bahwa bilangan genap yang lebih dari atau sama dengan 4 bisa ditulis sebagai hasil penjumlahan dua buah bilangan bulat, Namun Euler tidak dapat memberikan bukti, setelah lebih dari 260 tahun penelitian, dugaan Goldbach hampir benar namun tidak cukup bukti. Perlu dicatat bahwa banyak nomor, bahkan dapat ditulis sebagai jumlah dari dua bilangan prima dalam beberapa cara. Dengan demikian 42 = 23 + 19 = 29 + 13 = 31 + 11 = 37 + 5, 1,000,000 dapat dipartisi di 5402 cara, dan 100.000.000 memiliki 291.400 partisi Goldbach.
Tabel 2. Tabel Goldbach Codes G0 N 2(n+3) Primes Codeword 1 8 3+5 11 2 10 3+7 101 3 12 5+7 011 4 14 3+11 1001 5 16 5+11 0101 6 18 7+11 0011 7 20 7+19 00101 8 22 5+17 010001 9 24 11+13 00011 10 26 7+19 0010001 11 28 11+17 000101 12 30 13+17 000011 13 32 13+19 0000101 N 2(n+3) Primes Codeword 14 34 11+23 00010001 B. File Text
File text merupakan file yang berisi informasi-informasi yang di sajikan dalam bentuk text yang merupakan kumpulan dari karaktek-karakter atau string yang menjadi satu kesatuan sedangkan string merupakan tipe data yang digunakan untuk menggambarkan atau mempresentasikan kumpulan karakter (huruf, angka, symbol). Data yang berasal dari dokumen pengolah kata, angka yang digunakan dalam perhitungan, nama dan alamat dalam basis data merupakan contoh masukan data text yang terdiri dari karakter, angka dan tanda baca.
E. Metode Exponential
Metode perbandingan Exponential adalah satu metode untuk menentukan urutan prioritas alternatif keputusan dengan kriteria jamak.
𝑻𝒐𝒕𝒂𝒍𝑵𝒊𝒍𝒂𝒊(𝑻𝑵𝒊) = ∑𝒎 (𝑽𝒊𝒋) 𝑩𝒋
𝒋=𝟏 ...(1) Keterangan :
TNi = Total Nilai Alternatif Ke-
Vij = Derajat kepentingan relatif kriteria ke-j pada keputusan ke-i, yang dapat dinyatakan dengan skala ordinal (1,2,3,4,5)
Bj = Derajat kepentingan kriteria keputusan, yang dinyatakan dengan bobot
m = Jumlah kriteria keputusan n = Jumlah pilihan keputusan j = 1,2,3,.... ; m = jumlah kriteria i = 1,2,3...; n = jumlah pilihan alternatif III. ANALISA DAN PEMBAHASAN
Analisa yang dilakukan dalam membandingkan proses cara kerja dari algoritma Rice Codes dan algoritma Goldbach Codes hanya mengarah pada kompresi file text. Kompresi merupakan pengurangan ukuran suatu berkas menjadi ukuran yang lebih kecil dari aslinya. Pengompresian berkas ini sangat menguntungkan manakala terdapat suatu berkas yang berukuran besar dan data di dalamnya mengandung banyak pengulangan karakter. Adapun teknik dari kompresi ini adalah dengan mengganti karakter yang berulang-ulang tersebut dengan suatu pola tertentu sehingga berkas tersebut dapat meminimalisasi ukurannya.
Penerapan Algoritma Rice Codes
Berikut ini merupakan contoh kompresi menggunakan Algoritma Rice Codes, pada sebuah text file yang berisi string : MUHAMMAD ASNAWI LATIF. Langkah-langkah membuat tabel di kompresi:
1. ∑ (sikma) Adalah urutan string dari MUHAMMAD ASNAWI LATIF.
115 2. Ascii Code adalah nilai desimal dari string
MUHAMMAD ASNAWI LATIF.
3. Ascii Biner adalah nilai biner dari string MUHAMMAD ASNAWI LATIF.
4. Ascii Bit adalah jumlah biner dari asci biner MUHAMMAD ASNAWI LATIF.
5. Frekuensi adalah banyaknya kemunculan salah satu huruf dari string MUHAMMAD ASNAWI LATIF. 6. Bit x Frekuensi yaitu perkalian antara nilai ascii bit dengan kemunculan huruf dalam string MUHAMMAD ASNAWI LATIF.
Tabel 3. Data Sebelum Dikompresi ∑
Ascii
Code Ascii Biner Ascii Bit Frekuensi Bit x Frek M 77 01001101 8 3 24 U 85 01010101 8 1 8 H 72 01001000 8 1 8 A 65 01000001 8 5 40 D 68 01000100 8 1 8 Sp 83 01010011 8 2 16 S 83 01010011 8 1 8 N 78 01001110 8 1 8 W 87 01010111 8 1 8 I 73 01001001 8 2 16 L 76 01001100 8 1 8 T 84 01010100 8 1 8 F 70 01000110 8 1 8 Jumlah Bit x Frek 168
Hasil kompresi menggunakan algoritma Rice Codes dapat dilihat pada Tabel 4. berikut ini:
Tabel 4. Data Teks Setelah Dikompresi
∑ Code Rice Bit Frekuensi Bit x Frek A 000 3 5 15 M 001 3 3 9 Sp 010 3 2 6 I 011 3 2 6 U 1000 4 1 4 H 1001 4 1 4 D 1010 4 1 4 S 1011 4 1 4 N 10000 5 1 5 W 110001 6 1 6 L 110010 6 1 6 T 110011 6 1 6
∑ Code Rice Bit Frekuensi Bit x Frek F 110100 6 1 6 Jumlah Bit x Frek 81
Dari string : MUHAMMAD ASNAWI LATIF, maka di dapat string bit 001 1000 1001 000 001 001 000 1010 000 1011 10000 000 110001 011 110010 000 110011 011 110100
Dengan demikian, untuk menyimpan file text yang terdiri dari 21 karakter dengan menggunkan algoritma Rice Codes dibutuhkan 81bit.
Penerapan Algoritma Goldbach Codes
Berikut ini merupakan contoh kompresi menggunakan algoritma goldbach codes, pada sebuah text file yang berisi string : MUHAMMAD ASNAWI LATIF, Penyelesain :
1. Baca semua karakter dalam text untuk menghitung frekuensi kemunculan masing-masing karakter, dimana karakter yang paling banyak muncul adalah yang pertama (n = 1) dan seterusnya.
2. Temukan codeword untuk setiap karakter yang akan dikodekan, dengan menemukan bilangan prima yang bisa mewakili jumlah dua bilangan prima. Primer mulai dari nomor 3, 5, 7 dan seterusnya.
3. Codeword hanya memiliki dua "1". Pencarian bilangan prima mewakili jumlah berhenti di "1" yang kedua, misalnya: nomor = 24, dan 11 + 13 = 24 benar. Setelah mendapatkan a beberapa bilangan prima sudah benar, maka pola bit itu diperoleh adalah 11000. Kemudian pola bit dibalik ke arah paling belakang sedikit ke "1", menghasilkan pola bit 00011.
Tabel 5. Data Sebelum Dikompresi
Karakter Frekuensi Ascii
Desimal Ascii Biner Bit Bit x Frek U 1 85 01010101 8 8 H 1 72 01001000 8 8 D 1 68 01000100 8 8 S 1 83 01010011 8 8 N 1 78 01001110 8 8 W 1 87 01010111 8 16 L 1 76 01001100 8 16
Hasil kompresi menggunakan algoritma Rice Codes dapat dilihat pada Tabel 3.4 berikut ini :
Tabel 6. Data Sesudah Dikompresi
Karakter Frekuensi N 2 (n+3) Prima Bil Code word Bit Bit x Frek
A 5 1 8 3 + 5 11 2 10
116 I 2 3 12 5 + 7 011 3 6 Sp 2 4 14 3 + 11 1001 4 8 F 1 5 16 5 + 11 0101 4 4 T 1 6 18 7 + 11 0011 4 4 L 1 7 20 7 + 13 00101 5 5 W 1 8 22 5 + 17 010001 6 6 N 1 9 24 11 + 13 00011 5 5 S 1 10 26 7 + 19 0010001 7 7 D 1 11 28 11+17 000101 6 6 H 1 12 30 13+17 000011 6 6 U 1 13 32 13+19 0000101 7 7 Jumlah Bit x Frek 83
Dari string : MUHAMMAD ASNAWI LATIF, maka di dapat string bit: 01010101 01001000 01000100 01010011 01001110 01010111 01001100 01010100 01000110 01010011 01001001 01001101 01000001.
Ukuran File Text sebelum pemampatan dengan kode ASCI (8 bit) adalah 21x8 bit= 168 bit
Dengan demikian, untuk penyimpanan File Text yang terdiri dari 21 karekter dengan menggunkan algoritma goldbach codes dibutuhkan 83 bit.
Penerapan Metode Exponential
Langkah-langkah prose perhitungan sebagai berikut: a. Ration of compression
RC = Ukuran Sebelum / Ukuran Sesudah
RC =168 81 = 2,07 GC =168 83 = 2,02 b. Space Saving SS=1-Cr RC = 1 - 0,48 = 0,52 = 52 % GC = 1 - 0,49 = 0,51 = 51 % Alternatif RC SS Rangking Algoritma Rice Codes 2,07 52 % 1 Algoritma Gouldbah Codes 2,02 51 % 2 Pada tabel diatas menjelaskan bahwa alternatif yang memiliki total nilai tertinggi maka akan diposisikan rangking pertama, berdasarkan analisa diatas maka Algoritma Rice Codes yang menjadi Algoritma terbaik dalam melakukan kompresi.
IV. IMPLEMENTASI
Pengujian program digunakan untuk melihat hasil yang sudah dibahas pada pembahasan sebelumnya, untuk tampilan aplikasi seperti pada gambar dibawah: 1. Hasil Kompresi Algoritma Rice Codes
Gambar 1. Hasil Kompresi Algoritma Rice Codes 2. Hasil Dekompresi Algoritma Rice Codes
Gambar. 2. Hasil Dekompresi Algoritma Rice Codes 3. Hasil Kompresi Algoritma Goldbach Codes
Gambar. 3. Hasil Kompresi Algoritma Goldbach Codes
117 4. Hasil Dekompresi Algoritma Goldbach
Gambar. 4. Hasil Dekompresi Algoritma Goldbach Codes
5. Hasil Metode Perbandingan Exponential
Gambar. 5. Hasil Metode Perbandingan Exponential V. KESIMPULAN
Berdasarkan pembahasan dan evaluasi sebelumnya dan analisis terhadap kompresi file text yang berektensi .txt dan .doc, maka dapat ditarik kesimpulan sebagai berikut :
1. Dalam penerapan algoritma Rice Codes dan Algoritma Goldbach Codes dalam mengkompresi file text sangat bagus, isi dari hasil pengompresian pun tidak berkurang dari file aslinya.
2. Aplikasi yang dirancang telah mampu melakukan kompresi file text dengan menggunakan algoritma Rice Codes dan algoritma Goldbach Codes. 3. Hasil perbandingan kompresi file text antara
algoritma Rice Codes dan algoritma Goldbach Codes tidak jauh berbeda hasilnya, dalam penerapan metode perbandingan Exponential dengan 3 kriteria, yang lebih bagus hasil kompresinya adalah algoritma Rice Codes.
REFERENCES
[1] Surya Darma Nasution, “Perancangan Aplikasi Kompresi File Text Menggunakan Algoritma Gldbah Codes” Jurnal Ilmiah Infotek, Vol, 1, Februari 2016.
[2] Andres Soegandi, Prototipe Kompresi Lossless Audio Code Menggunakan EntropyEncoding, Comtech Vol, 1, No, 2 Desember 2010
[3] N. Mancelina and Mesran, “PENERAPAN METODE
PERBANDINGAN EKSPONENSIAL DALAM
MENGANALISA KINERJA ALGORITMA FIXED
LENGTH BINARY ENCODING DENGAN VARIABLE LENGTH BINARY ENCODING DALAM KOMPRESI FILE TEXT,” Maj. Ilm. INFOTEK, vol. 2, no. 1, pp. 1–4, 2017.
[4] Wikipedia.http//id.wikipedia.org/wiki/Analisis.
[5] Ari Wibowo, Kompresi Data Menggunakan Metode Huffman ,Seminar Teknologi Informasi & KomunikasiTerapan 2012 (semantik 2012), Vol, Juni, pp, 47-51, 2012.
[6] Abdul Kadir, Algoritma & Pemrograman Menggunakan C & C ++, Yogyakarta: Penerbit Andi , 2012.
[7] Abdul Kadir, Pengenalan Algoritma, Pendekatan Secara Visual Dan Interaktif Menggunakan Raptor, Yogyakarta: Penerbit Andi , 2013.
[8] Rinaldi Munir, Algoritma Dan Pemrograman Dalam Bahasa Pascal Dan C. Bandung: Penerbit Informatika, 2011. [9] G. Motta , D. Salomon, Handbook Of Data Compression,
Springer, Fifth Edition, pp 151-157, 2010.
[10] Josua Marinus Silaen, Studi Perbandingan Algoritma Huffman Dan Shannonfano Dalam Pemampatan File Teks, Pelita Informatika Budi Darma, vol. VII, pp. 60-66, 2014.
[11]
Marimin, Teknik dan Aplikasi Pengambilan Keputusan Kriteria Majemuk. Jakarta: Grassindo, 2004.
[12]
Yuni Sugiarti, Analisis & Perancangan UML [Inified Modeling language] Generated VB.6. Yogyakarta: Graha Ilmu, 2013.
[13] S. D. Nasution and Mesran, “Goldbach Codes Algorithm for Text Compression,” IJournals Int. J. Softw. Hardw. Res. Eng., vol. 4, no. December, pp. 43–46, 2016.
[14] A. Fau, M. Mesran, and G. L. Ginting, “Analisa Perbandingan Boyer Moore Dan Knuth Morris Pratt Dalam Pencarian Judul Buku Menerapkan Metode Perbandingan Eksponensial ( Studi Kasus : Perpustakaan STMIK Budi Darma ),” J. Times (Technology Informatics Comput. Syst., vol. 6, no. 1, pp. 12–22, 2017.
[15] S. D. Nasution, G. L. Ginting, M. Syahrizal, and R. Rahim, “Data Security Using Vigenere Cipher and Goldbach Codes Algorithm,” Int. J. Eng. Res. Technol., vol. 6, no. 1, pp. 360– 363, 2017.