perancangan aplikasi kompresi file teks dengan menerapkan

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