Jurnal Ilmiah INFOTEK, Vol 1, No 1, Februari 2016 ISSN 2502-6968 (Media Cetak) PERANCANGAN APLIKASI KOMPRESI FILE TEKS DENGAN MENERAPKAN ALGORITMA GOLDBACH CODES Surya Darma Nasution Dosen Tetap STMIK Budi Darma Medan Jl. Sisingamangaraja No. 338 Simpang Limun Medan http : // www.stmik-budidarma.ac.id //Email : [email protected] ABSTRAK Kompresi adalah pengubahan data yang berupa kumpulan karakter menjadi bentuk kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan dan waktu transmisi data. Ada beberapa faktor yang dijadikan sebagai bahan pertimbangan dalam memilih algoritma yang akan digunakan dalam kompresi data yaitu sumber daya yang dibutuhkan (memory, kecepatan PC), kecepatan kompresi, ukuran hasil kompresi, besarnya redudansi dan kompleksitas algoritma. 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. Perangkat lunak ini dirancang menggunakan bahasa pemograman Visual Basic 2008 dan dapat melakukan kompresi terhadap file teks. Kata Kunci : Kompresi, Goldbach Codes, File Teks 1. Pendahuluan 1.1 Latar Belakang Kompresi adalah pengubahan data yang berupa kumpulan karakter menjadi bentuk kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan dan waktu transmisi data. Ada beberapa faktor yang dijadikan sebagai bahan pertimbangan dalam memilih algoritma yang akan digunakan dalam kompresi data yaitu sumber daya yang dibutuhkan (memory, kecepatan PC), kecepatan kompresi, ukuran hasil kompresi, besarnya redudansi dan kompleksitas algoritma. Jika semakin besar ukuran data yang disimpan maka membutuhkan media penyimpanan yang besar. Oleh karena itu, kemudian muncul metode-metode yang bertujuan untuk mengkompresi data agar dapat menghemat tempat penyimpanan data. Salah satunya yaitu kompresi data teks agar bisa diperkecil ukurannya. Metode kompresi data teks ini dapat dikelompokkan ke dalam dua kelompok besar, yaitu Dictionary based yang bekerja dengan mengganti kelompok simbol dalam data menjadi kode-kode dengan panjang tertentu, dengan asumsi kode-kode tersebut secara umum lebih pendek dari kelompok simbol yang digantikan dan Statistical based yang melakukan kompresi dengan pendekatan yang berbeda, di mana simbol-simbol yang ada diencode satu per satu, sehingga panjang dari kode output akan bervariasi tergantung dari probabilitas atau frekuensi pemunculan simbol. 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. Goldbach Codes memiliki tiga kode, Goldbach Codes yang pertama dinamakan "G0". G0 mengkodekan bilangan bulat positif n dengan mengubahnya menjadi bilangan bulat positif genap dengan 2(n+3) dan kemudian menuliskan pasangan penjumlahan bilangan prima dalam keadaan terbalik. Kelebihan algoritma Golbach Codes yaitu mudah untuk dibangun berdasarkan tabel bilangan prima,mudah untuk di decode dan sama panjangnya seperti Fibonacci Codes atau Standard Binary Representation dari bilangan bulat. Berdasarkan cara kerjanya, Algoritma Goldbach Codes termasuk Statistical based yang melakukan kompresi di mana simbol-simbol yang ada diencode satu per satu. 1.2 Rumusan Masalah Berdasarkan latar belakang masalah, maka yang menjadi rumusan masalah yaitu : 1. Bagaimana cara kerja algoritma Goldbach Codes untuk mengkompresi file teks. 2. Bagaimana merancang aplikasi kompresi file teks dengan menggunakan Microsoft Visual Basic 2008. 3. Bagaimana hasil file teks sebelum dan sesudah dikompresi. 1.3 Tujuan Penelitian Yang menjadi tujuan penelitian ini yaitu : 1. Mengetahui cara kerja algoritma Goldbach Codes untuk mengkompresi file teks. 2. Merancang aplikasi kompresi file teks dengan menggunakan Microsoft Visual Basic 2008. 3. Mengetahui hasil file teks sebelum dan sesudah dikompresi. 1.4 Manfaat Penelitian Yang menjadi manfaat penelitian ini yaitu : Perancangan Aplikasi Kompresi File Teks dengan Menerapkan Algoritma Goldbach Codes. Oleh: Surya Darma 154 Jurnal Ilmiah INFOTEK, Vol 1, No 1, Februari 2016 1. 2. 3. File teks yang telah dikompresi dapat dikirim dengan mudah dan lebih cepat karena kapasitas datanya lebih kecil. Menghemat ruang penyimpanan dan memori sebagai tempat penyimpanan data yang telah dikompresi. Menjadi bahan atau rujukan bagi penelitian berikutnya. 2. Landasan Teori 2.1 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” [1]. Goldbach Codes memiliki tiga kode, Goldbach Codes yang pertama dinamakan “G0”. G0 mengkodekan bilangan bulat positif n dengan mengubahnya menjadi bilangan bulat positif genap dengan 2(n+3) dan kemudian menuliskan pasangan penjumlahan bilangan prima dalam keadaan terbalik [1]. Goldbach Codes kedua dinamakan “G1”. Prinsip G1 adalah menentukan dua bilangan prima Pi dan Pj (dimana i ≤ j) yang jumlah nya menghasilkan bilangan bulat n, dan mengkodekan pasangan (i,j-i+1) dengan gamma codes. Sedangkan G2 atau Goldbach Codes yang ketiga adalah perluasan dari G1 Code dengan kasus seperti berikut : 1. Bilangan bulat 1 dan 2 dikodekan menjadi 110 dan 111 (selain bilangan bulat 1 dan 2 tidak ada lagi yang pengkodeannya dimulai dengan 11…). 2. Bilangan bulat genap dikodekan seperti pada G1 Code, namun dengan sedikit perbedaan. Jika ditentukan n = Pi + Pj, maka akan dikodekan pasangannya (i +1,j – i + 1) menggantikan (i,j – i + 1). Sehingga, jika i = 1, maka akan dikodekan menjadi 010, gamma code dari 2. Ini menjanjikan bahwa bilangan bulat genap dari G2 Code tidak akan dimulai dari 1 dan akan selalu memiliki bentuk 0...:0…. 3. Jika n adalah bilangan prima Pi, maka akan dikodekan sebagai gamma code dari (i + 1) di ikuti oleh 1 tunggal untuk menghasilkan 0…:1. 4. Jika n adalah bilangan ganjil tapi bukan bilangan prima, maka G2 Code dimulai dari 1 tunggal di ikuti dengan G2 code dari angka genap n-1. Menghasilkan gamma code memiliki bentuk 1:0…:0…. Untuk mengetahui bilangan prima mana yang dapat mewakili penjumlahan dua bilangan prima tersebut, maka dibuat aturan sebagai berikut : 1. Bilangan prima dimulai dari angka 3, 5, 7 dan seterusnya. 2. Codeword hanya memiliki dua “1”. ISSN 2502-6968 (Media Cetak) 3. Pencarian bilangan prima yang mewakili penjumlahan berhenti pada “1” yang kedua, contohnya : Bilangan genap = 20 13 11 7 5 3 1 0 1 0 0 Pembacaan dilakukan dari kanan ke kiri : 3+5=20 Salah 3+7=20 Salah 5+7=20 Salah 3+11=20 Salah 5+11=20 Salah 7+11=20 Salah 3+13=20 Salah 5+13=20 Salah 7+13=20 Benar Setelah mendapatkan pasangan bilangan prima yang benar maka pola bit yang didapatkan adalah 10100. Kemudian pola bit ini dibalikkan hingga bit paling belakang menjadi “1”, sehingga menghasilkan pola bit 00101. 2.2 Microsoft Visual Basic 2008 Visual Basic adalah Salah satu bahasa pemrograman yang andal dan banyak digunakan oleh pengembang untuk membangun berbagai macam aplikasi windows. Visual Basic 2008 atau Visual Basic 9 adalah versi terbaru yang telah diluncurkan oleh Microsoft bersama C#, Visual C++ dan Visual Web Developer dalam satu paket Visual Studio 2008 [2]. Visual Basic 2008 merupakan aplikasi pemrograman yang menggunakan teknologi .NET Framework. Teknologi . NET Framework merupakan komponen Windows yang terintegrasi serta mendukung pembuatan, penggunaan aplikasi dan halaman web. Teknologi . NET Framework mempunyai 2 komponen utama, yaitu CLR (Common Language Runtime) dan Class Library. CLR digunakan untuk menjalankan aplikasi yang berbasis . NET, sedangkan Library adalah kelas pustaka atau perintah yang digunakan untuk membangun aplikasi [2]. 3. Analisa Dalam penerapan algoritma Goldbach Codes untuk mengkompresi file teks, langkah pertama dilakukan dengan membaca isi file teks tersebut. Format file teks yang digunakan dalam penelitian ini yaitu file dengan eksteksi ".txt" dan isi file tersebut yang nantinya akan di kompresi dan disimpan menjadi dua file yang baru yaitu file hasil kompresi dan file header yang menjadi kunci untuk melakukan dekompresi. Misalkan isi file teks tersebut adalah “SURYA DARMA NASUTION”, maka proses kompresinya sebagai berikut : Perancangan Aplikasi Kompresi File Teks dengan Menerapkan Algoritma Goldbach Codes. Oleh: Surya Darma 155 Jurnal Ilmiah INFOTEK, Vol 1, No 1, Februari 2016 ISSN 2502-6968 (Media Cetak) Tabel 1. Data Sebelum Di Kompresi Gambar 1. Form Kompresi File Teks Hasil kompresi menggunakan algoritma Goldbach Codes dapat dilihat pada Tabel 2 berikut ini : Tabel 2. Data Setelah Dikompresi Gambar 2. Form Dekompresi File Teks 5. Langkah selanjutnya adalah menyusun kembali kode-kode yang telah dibuat pada tabel sesuai dengan posisi karakter pada string. String yang telah dibaca dari file teks adalah “SURYA DARMA NASUTION”, Sehingga diperoleh string bit sebagai berikut : 10101110010010111010101000111100100011110 10100111110101100100010001010000110011 Pada proses dekompresi dilakukan pembacaan pada string bit yang diperoleh pada proses kompresi terhadap tabel 2. Pembacaan string bit dilakukan dari indeks terkecil sampai indeks terakhir dengan terus menambahkan nilai pada indeks sebelumnya yang tidak mewakili karakter pada tabel 2. 4. Implementasi Aplikasi kompresi yang telah dirancang dapat dilihat pada gambar berikut : Kesimpulan Kesimpulan yang dapat diambil setelah melakukan perancangan aplikasi kompresi file teks dengan menerapkan algoritma Goldbach Codes adalah : 1. Cara kerja algoritma Goldbach Codes untuk mengkompresi file teks yaitu dengan mengkodekan bilangan bulat positif n dengan mengubahnya menjadi bilangan bulat positif genap dengan 2(n+3) dan kemudian menuliskan pasangan penjumlahan bilangan prima dalam keadaan terbalik. 2. Perancangan aplikasi kompresi file teks dengan menggunakan Microsoft Visual Basic 2008 memudahkan proses kompresi hanya dengan menginputkan file teks maka akan di proses sehingga menghasilkan file hasil kompresi beserta file headernya. 3. Hasil file teks sebelum dan sesudah dikompresi setelah dibandingkan telah mencapai 50% rasio perbandingannya. Daftar Pustaka [1] Salomon, D. 2007. Variable-length Codes for Data Compression. Springer: United States of America. [2] Wahana Komputer, Membuat Aplikasi Client Server dengan Visual Basic 2008, C.V Andi Offset & Wahana Komputer, Yogyakarta, 2010. Perancangan Aplikasi Kompresi File Teks dengan Menerapkan Algoritma Goldbach Codes. Oleh: Surya Darma 156