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 eponential. Kompresi ini hanya mengarah pada kompresi file tet 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, Algoritma Goldbach, Metode Eponential, File Tet 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 dan algoritma Goldbach. Penggunaan algoritma Rice dan algoritma Goldbach dalam kompresi file tet dimaksudkan untuk memberikan manfaat yang sangat besar dalam proses pengiriman maupun penyimpanan serta membutuhkan ruang memori yang lebih sedikit dibandingkan dengan tet yang tidak dikompresi. Sehingga dalam pengiriman ataupun penyimpanan tet yang telah dikompresi membutuhkan waktu pengiriman dan ruang simpan yang lebih singkat dan sedikit dibandingkan dengan tet yang belum dikompresi. Setelah melakukan kompresi kedua algoritma tersebut maka, kita membandingkannya menggunakan metode Eponential. 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 tet. 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 Rice codes ditemukan oleh Robert F. Rice dan merupakan salah satu teknik entropy encoding Algoritma Rice atau Rice Golomb Coding adalah salah satu algoritma yang dapat digunakan untuk melakukan kompresi data sehingga ukuran data yang 28
dihasilkan menjadi lebih rendah dari ukuran sebenarnya. Dalam algoritma Rice, ada sebuah nilai k yang artinya adalah banyaknya angka 1 pada suffi dari kode terkompresi. Dalam proses encode, dilakukan pemisahan pada prefi dan suffi. 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 Algoritma Goldbach 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 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 Tet File tet merupakan file yang berisi informasiinformasi yang di sajikan dalam bentuk tet 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 tet yang terdiri dari karakter, angka dan tanda baca. E. Metode Eponential Metode perbandingan Eponential adalah satu metode untuk menentukan urutan prioritas alternatif keputusan dengan kriteria jamak. TotalNilai(TN i ) = m j=1 (V ij ) B j...(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 = kriteria keputusan n = 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 dan algoritma Goldbach hanya mengarah pada kompresi file tet. 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 Berikut ini merupakan contoh kompresi menggunakan Algoritma Rice, pada sebuah tet file yang berisi string : Langkah-langkah membuat tabel di kompresi: 1. (sikma) Adalah urutan string dari 29
2. Code adalah nilai desimal dari string 3. Biner adalah nilai biner dari string 4. adalah jumlah biner dari asci biner 5. uensi adalah banyaknya kemunculan salah satu huruf dari string 6. uensi yaitu perkalian antara nilai ascii bit dengan kemunculan huruf dalam string Tabel 3. Data Sebelum Dikompresi Code Biner uensi 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 168 Hasil kompresi menggunakan algoritma Rice dapat dilihat pada Tabel 4. berikut ini: Tabel 4. Data Teks Setelah Dikompresi Rice Code uensi 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 Rice Code uensi F 110100 6 1 6 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 tet yang terdiri dari 21 karakter dengan menggunkan algoritma Rice dibutuhkan 81bit. Penerapan Algoritma Goldbach Berikut ini merupakan contoh kompresi menggunakan algoritma goldbach codes, pada sebuah tet file yang berisi string : MUHAMMAD ASNAWI LATIF, Penyelesain : 1. Baca semua karakter dalam tet 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. Karakter Tabel 5. Data Sebelum Dikompresi uensi Desimal Biner 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 dapat dilihat pada Tabel 3.4 berikut ini : Tabel 6. Data Sesudah Dikompresi Bil Karakter uensi N 2 (n+3) Code word Prima A 5 1 8 3 + 5 11 2 10 M 3 2 10 3 + 7 101 3 9 30
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 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 Tet sebelum pemampatan dengan kode ASCI (8 bit) adalah 218 bit= 168 bit Dengan demikian, untuk penyimpanan File Tet yang terdiri dari 21 karekter dengan menggunkan algoritma goldbach codes dibutuhkan 83 bit. 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 Gambar 1. Hasil Kompresi Algoritma Rice 2. Hasil Dekompresi Algoritma Rice Penerapan Metode Eponential 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 % Gambar. 2. Hasil Dekompresi Algoritma Rice 3. Hasil Kompresi Algoritma Goldbach Alternatif RC SS Rangking Algoritma Rice 52 % 2,07 1 Algoritma 51 % 2,02 Gouldbah 2 Pada tabel diatas menjelaskan bahwa alternatif yang memiliki total nilai tertinggi maka akan diposisikan rangking pertama, berdasarkan analisa diatas maka Algoritma Rice yang menjadi Algoritma terbaik dalam melakukan kompresi. Gambar. 3. Hasil Kompresi Algoritma Goldbach 31
4. Hasil Dekompresi Algoritma Goldbach Gambar. 4. Hasil Dekompresi Algoritma Goldbach 5. Hasil Metode Perbandingan Eponential Gambar. 5. Hasil Metode Perbandingan Eponential V. KESIMPULAN Berdasarkan pembahasan dan evaluasi sebelumnya dan analisis terhadap kompresi file tet yang berektensi.tt dan.doc, maka dapat ditarik kesimpulan sebagai berikut : REFERENCES [1] Surya Darma Nasution, Perancangan Aplikasi Kompresi File Tet Menggunakan Algoritma Gldbah 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] [12] Marimin, Teknik dan Aplikasi Pengambilan Keputusan Kriteria Majemuk. Jakarta: Grassindo, 2004. Yuni Sugiarti, Analisis & Perancangan UML [Inified Modeling language] Generated VB.6. Yogyakarta: Graha Ilmu, 2013. [13] S. D. Nasution and Mesran, Goldbach Algorithm for Tet 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 Algorithm, Int. J. Eng. Res. Technol., vol. 6, no. 1, pp. 360 363, 2017. 1. Dalam penerapan algoritma Rice dan Algoritma Goldbach dalam mengkompresi file tet sangat bagus, isi dari hasil pengompresian pun tidak berkurang dari file aslinya. 2. Aplikasi yang dirancang telah mampu melakukan kompresi file tet dengan menggunakan algoritma Rice dan algoritma Goldbach. 3. Hasil perbandingan kompresi file tet antara algoritma Rice dan algoritma Goldbach tidak jauh berbeda hasilnya, dalam penerapan metode perbandingan Eponential dengan 3 kriteria, yang lebih bagus hasil kompresinya adalah algoritma Rice. 32