• Tidak ada hasil yang ditemukan

PERANCANGAN APLIKASI KOMPRESI MENGGUNAKAN METODE SHANNON FANO DAN UNARY CODING PADA FILE TEKS

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "PERANCANGAN APLIKASI KOMPRESI MENGGUNAKAN METODE SHANNON FANO DAN UNARY CODING PADA FILE TEKS "

Copied!
6
0
0

Teks penuh

(1)

25

PERANCANGAN APLIKASI KOMPRESI MENGGUNAKAN METODE SHANNON FANO DAN UNARY CODING PADA FILE TEKS

Mhd. Rajani Pane

Mahasiswa Teknik Informatika STMIK Budi Darma, Medan, Indonesia Jl. Sisingamangaraja No 338 Simp Limun Medan, Indonesia

ABSTRAK

Seiring dengan berkembangnya teknologi saat ini, data memiliki peranan sangat penting di dalam sebuah informasi. Data tersebut berupa teks,gambar, Audio dan video. Data yang digunakan tersebut memiliki ukuran yang sangat besar. Untuk itu di perlukan sebuah teknik untuk mengubah ukuran data tersebut agar menjadi lebih kecil. Teknik ini di sebut dengan pemampatan atau yang lebih sering kita kenal dengan kompresi.Kompresi data merupakan suatu proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan data.Pada metode Shannon fano Proses kompresi dilakukan Dengan mengetahui frekuensi kemunculan setiap simbol yang kemudian akan diurutkan secara descending order.

Kemudian akan dibuat sebuah tabel pembagian berdasarkan frekuensi kemunculan tersebut.Pada metode Unary Coding tidak menggunakan tabel pembagian. Proses pembagian dilakukan dengan mengurutkan frekuensi kemunculan setiap simbol secara descendung order Angka Hasil Pengurutan inilah yang akan dikodekan dengan n-1 diikuti oleh satu bit 0. Pada bit terakhir kode akan dimodifikasi yaitu berupa n-1 tanpa diikuti oleh satu bit 0. Dalam proses kompresi dengan menggunakan kedua metode ini dapat diketahui rasio kompresi, waktu kompresi dan redudancy. Rasio kompresi, waktu kompresi nilai panjang karakter dan redudancy akan menjadi parameter pembanding untuk kedua metode ini.

Kata Kunci: Kompresi, Shannon Fano, Unary Coding, Redudancy

I. PENDAHULUAN

Dalam dunia pendidikan teknologi merupakan salah satu peradapan yang sangat penting di jaman sekarang. Dikarenakan teknologi dapat membantu tingkat aktivitas kinerja manusia.

Kompresi adalah salah satu cara yang dapat merubah suatu citra atau gambar dan file, dimana proses yang sering terjadi dalam kompresi sering terjadi tingkat penduplikatan dalam sebuah citra atau file.

Dalam kompresi file masalah-masalah yang sering terjadi yaitu sedikit banyaknya jumlah bit yang di kompresi sering terjadi penduplikatan pada sebah file teks dan sering terjadinya salah kompresi atau kompresi yang dilakukan tidak dapat menimbulkan hasil yang maksimal. Pada kompresi data dalam konteks ilmu komputer merupakan ilmu dan seni yang menampilkan informasi dalam bentuk yang pendek. Kompresi data bertujuan untuk mengurangi jumlah bit yang digunakan untuk menyimpan atau mengirim informasi. Berbagai jenis kompresi data secara umum digunakan pada komputer pribadi, termasuk kompresi pada program biner, data, suara, dan gambar.

Solusi dari kompresi data lossy tidak dapat membangun lagi data asli dari data yang telah dikompresi. Ada beberapa detail penting yang mungkin hilang selama proses kompresi. Kompresi data lossy akan menjadi efektif apabila diaplikasikan pada gambar, film dan suara digital.

Kompresi data loseless menggunakan teknik-teknik yang menjamin sebuah duplikat yang sama persis dengan data yang diinput, setelah data tersebut dikompresi. Dalam proses dekompresi tidak ada informasi yang hilang. Kompresi data loseless disebut juga kompresi reversibel karena data asli

mungkin dapat dikembalikan dengan sempurna dengan dekompresi. Teknik kompresi data loseless digunakan ketika sumber data asli sangat penting sehingga tidak dapat kehilangan detail apapun. Jenis kompresi ini digunakan untuk menyimpan database, spreadsheet, atau untuk memproses file teks.(Sumber Jurnal Volume 5 No. 2, November 2009 ( Nita Cristina, Sri Suwarno, R. Gunawan Sentosa, Jurusan Teknik Informatika Fakultas Teknik Kristen Duta Wacana, Yogyakarta.))

Kompresi data teks dapat dilakukan dengan beberapa metode seperti metode Shannon Fano, , Unary Coding, dll. Untuk mendapatkan hasil kompresi yang baik diperlukan sebuah metode kompresi yang baik pula. Maka, perlu dilakukan sebuah studi perbandingan guna mengetahui metode kompresi yang efektif. Dalam tulisan ini metode kompresi yang akan dibandingkan adalah metode Shannon Fano dan Unary Coding .Dengan menggunakan metode Shannon Fano kompresi dilakukan dengan mengetahui frekuensi dari setiap simbol pada sebuah string. Metode Shannon Fano dan Unary Coding adalah metode yang dapat menghasilkan nilai pada citra dengan hasil yang berbeda, dimana Frekuensiini kemudian akan diurutkan dan dibagi sehingga diperoleh kode untuk setiap simbol. Untuk simbol-simbol yang berulang (yang mempunyai tingkat frekuensi yang tinggi) akan dihasilkan kode yang lebih pendek.

Untuk mempermudah proses pada kompresi file teks menggunakan metode shannon fano dan unary coding pada file teks, maka penulis akan merancang sistem kompresi data file teks yang berfungsi sebagai pengetahuan dari pengguna komputer pada proses kerja dari kompresi data teks

(2)

tersebut.Agar dapat menjadi bahan pertimbangan bagi pengguna komputer dalam melakukan kompresi data file teks menjadi lebih baik dan lebih akurat.Rasio kompresi, redundancy, dan waktu kompresi akan digunakan sebagai parameter pembanding untuk kedua metode tersebut.

II. TEORITIS A. File Teks

File teks merupakan sebuah file yang berisi teks biasa dan mudah kita pergunakan oleh kebanyakan aplikasi teks editor yang ada pada saat ini. File teks saat ini banyak di pergunakan untuk menyimpan informasi-informasi sederhana.Data yang berasal dari dokumen pengolah kata, angka yang digunakan dalam perhitungan, nama dan alamat dalam basis data merupakan contoh masukan data teks yang terdiri dari karakter, angka dan tanda baca.

B. Kompresi Data

Proses kompresi merupakan proses mereduksi ukuran suatu data untuk menghasilkanrepresentasi digital yang padat atau mampat namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut.Data dan informasi adalah dua hal yang berbeda.Pada data terkandung suatu informasi.bagian data yang tidak terkait atau bagian data yang berulang tersebut di sebut dengan data berlebihan(redundancy data).Tujuan dari kompresi data tiada lain adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses transmisi.

C. Rasio Kompresi

Rasio kompresi merupakan hasil perbandingan antara ukuran file yang telah dikompresi dengan file yang belum dikompresi.

Ukuran File Setelah Dikompresi

Rasio Kompresi = X 100 %

Ukuran File Sebelum Dikompresi

D. Metode Shannon Fano

Metode pertama yang dikenal untuk mengkodekan simbol secara efektif adalah Shannon Fano.Claude Shannon di Bell Labs dan R M Fano di MIT mengembangkan metode ini secara bersamaan.

Pada metode Shannon Fano kompresi dapat dilakukan dengan 2 cara, yaitu dengan membangun pohon biner dan dengan membangun tabel pembagian berdasarkan probabilitas pada setiap simbol. Pada tugas akhir ini, kompresi dilakukan dengan membangun tabel pembagian berdasarkan probabilitas setiap simbol pada file teks. Metode ini dapat dilakukan dengan mengetahui probabilitas dari setiap simbol kemunculan simbol pada sebuah pesan.

Dengan mengetahui probabilitas, sebuah tabel kode dapat dibangun dengan properti sebagai berikut:

1. Setiap simbol yang berbeda memiliki kode yang berbeda.

2. Simbol dengan probabilitas kemunculan yang lebih kecil memiliki kode panjang bit yang lebih panjang dan simbol dengan probabilitas yang lebih besar memiliki panjang bit yang lebih pendek.

3. Meskipun kode yang dihasilkan memiliki panjang bit yang berbeda dengan kode pada karakter asli, tetapi dapat didekodekan secara unik (Nelson, 1996).

Berikut adalah langkah-langkah dalam Algoritma metode Shannon Fano:

1. Buatlah daftar probabilitas atau kehadiran setiap simbol dari data (pesan yang akan dikodekan).

2. Urutkanlah daftar tersebut menurut frekuensi kehadiran simbol secara menurun (dari simbol yang frekuensi kemunculannya paling banyak sampai simbol dengan frekuensi kemunculan paling sedikit).

3. Bagilah daftar tersebut menjadi dua bagian dengan pembagian didasari pada jumlah total frekuensi suatu bagian (disebut bagian atas) sedekat mungkin dengan jumlah frekuensi dengan bagian yang lain (disebut bagian bawah).

4. Daftar bagian atas dengan digit 0 dan bagian bawah dinyatakan dengan digit 1. Hal tersebut berarti kode untuk simbol-simbol pada bagian atas akan dimulai dengan 0 dan kode untuk simbol-simbol pada bagian bawah akan dimulai dengan 1.

5. Lakukanlah proses secara rekursif langkah 3 dan 4 pada bagian atas dan bawah. Bagilah menjadi kelompok-kelompok dan tambahkanlah bit-bit pada kode sampai setiap simbol memperoleh kode.

E. Metode Unary Coding

Metode ini sudah umum digunakan dalam kompresi data dan banyak digunakan dengan gabungan beberapa teknik modifikasi. Unary Coding direpresentasikan dalam sebuah string dari n bit 1 diikuti dengan satu bit 0 yang mengakhiri yang didefenisikan sebagai n-1 bit 1diikuti satu bit 0. Atau sebaliknya sebagai alternatif dapat juga secara ekuivalen dimulai dari n bit 0 diikuti dengan bit 1 yang mengakhiri yang didefenisikan sebagai n-1 bit 0 diikuti dengan satu bit 1. Pada metode UnaryCoding tidak terdapat pembagian frekuensi simbol-simbol yang ada pada sebuah string[3].

Berikut ini adalah langkah langkah dalam algoritma kompresi Unary Coding :

1. low ← 0.0 2. high ← 1.0

3. while (simbol input masih ada) do 4. ambil simbol input

5. CodeRange ← high - low

6. high ← low + CodeRange x high_range(s) 7. low ← low + CodeRange x low_range(s)

(3)

8. end while 9. output low

Berikut ini adalah langkah-langkah dalam algoritma dekompresi Unary Coding :

1. ambil encoded symbol (ES) 2. repeat

3. cari range dari simbol yang melingkupi encoded symbol (ES) 4. cetak simbol

5. CodeRange ← high_range – low_range 6. ES = ES – low_range

7. ES = ES/CodeRange 8. until simbol habis

III. ANALISA DAN PEMBAHASAN A. Menerapkan Algoritma Shannon Fano

Penerapan ditujukan untuk memberikan gambaran secara umum terhadap implementasi yang akan dibuat. Hasil analisis akan menjadi dasar untuk melakukan perancangan atau desain program sesuai kebutuhan sistem.Contoh mengkodekan kata

“RAJANI”.Kodekan setiap karakter dalam ASCII.

Tabel 1. Tabel kode karakter “RAJANI” dalam ASCII

Jika kata RAJANI diubah dalam bit, menjadi : 01010010 01000001 01001010 01000001 01001110 01001001= total 48 bit

Menghitung jumlah frekuensi tiap karakter(frekuensi adalah jumlah masing-masing karakter dalam teks):

Tabel 2. Tabel frekuensi karakter

Urutkan tiap karakter dari frekuensi terendah, jika ada karakter yang sama jumlah frekuensinya, urutkan sesuai ASCII binary.

Setelah diurutkan, kemudian ambil 2 node di sebelah kiri (R DAN J), kemudian buatlah node baru yang merupakan kombinasi dari kedua node.

Kombinasi node akan mempunyai dua cabang dari kedua komponen node. Frekuensi dari kombinasi node merupakan jumlah frekuensi kedua cabang node.

Jika sudah selesai, letakkan bit 0 dan 1 pada pohon,

Buat tabel daftar kode Shannon Fano dari pohon di atas.

Tabel 3. Tabel daftar kode shannon fano dari kata

“RAJANI”

(4)

Dari cara diatas, dapat dihitung selisih bit yang digunakan setelah di kompresi

Yaitu 48 - 12 = 36 bit.

B. Unary Coding Pada File Teks

Contoh sederhana penggunaan algoritma Unary Coding pada file citra adalah misalkan string‘RAJA’ akan di-encode maka dapat diperoleh probabilitas untuk setiap karakter. Setelah probabilitas tiap karakter telah diketahui, tiap karakter akan diberikan range tertentu yang nilainya diantara 0 dan 1, sesuai dengan probabilitas yang ada. Dalam hal ini tidak ada ketentuan pengurutan karakter, asalkan antara encoder dan decoder melakukan hal yang sama. Hal ini dapat dilihat pada tabel 4 seperti berikut.

Tabel 4. Tabel probabilitas dan range untuk kata

’RAJA’

Karakter Frekuensi Probabilitas Range

R 1 ¼ 0.00 – 0.25

A 2 2

/ 4

0.25 – 0.75

J 1 ¼ 0.75 – 1.00

Total 4 1 0.00 − 1.00

Dari tabel di atas, suatu hal yang perlu dicatat adalah tiap karakter melingkupi range yang disebutkan kecuali bilang yang tertinggi. Jadi karakter ’J’ sesungguhnya mempunyai range mulai dari 0.75 sampai 0.9999.

Selanjutnya dilakukan proses encoding menggunakan algoritma encoding. Untuk kata

’RAJA’, pertama diambil karakter ’R’. Nilai CodeRange (kondisi awal)adalah 1.0 – 0.0 = 1.

high_range(R) = 0.25, low_range(R) = 0.00.

Kemudian diperoleh nilai

High = low + CR * high_range

= 0.00 + 1.0 * 0.25 = 0.25 Low = low + CR * low_range

= 0.00 + 1.0 * 0.00 = 0.00

Kemudian diambil karakter ‘A’. Nilai CodeRange adalah 0.25 – 0.00 = 0.25.

high_range(A) = 0.75, low_range(A) = 0.25.

Kemudian diperoleh nilai High = low + CR * high_range

= 0.00 + 0.25 * 0.75 = 0.1875 Low = low + CR * low_range

= 0.00 + 0.25 * 0.25 = 0.0625

Dan seterusnya yang dapat diringkas pada Tabel 5 berikut.

Tabel 5. Proses encoding pada kata ’RAJA’

Karakter Low High CodeRange

0.00 1.00

R 0.00 0.25 1.00

A 0.0625 0.1875 0.25

J 0.15625 0.1875 0.125

A 0.1640625 0.1796875 0.03125 Dari proses tersebut didapat nilai low = 0.1640625. Nilai inilah yang direpresentasikan untuk membawa pesan ’RAJA’. Dalam hal ini 28able28 akhir sebuah pesan dapat menggunakan 28able28 khusus misalnya EOM (End Of Message) atau dengan menyertakan tabel pesan pada waktu encoding. Selanjutnya apabila pesan tersebut akan di-decode maka digunakan algoritma decoding yang telah disebutkan diatas. Misalkan untuk kata

’RAJA’ akan dilakukan decoding. Pertama sekali diperoleh encoded number 0.1640625 dengan karakter awal ’R’.

Maka proses decoding untuk karakter ’R’

sebagai berikut.

Low = 0.00 High = 0.25

CodeRange = 0.25 – 0.00 = 0.25

Encoded_number = 0.1640625 – 0.00 = 0.1640625 Encoded_number = 0.1640625 / 0.25 = 0.65625 Proses decoding dilakukan seterusnya sampai tidak ada lagi karakter. Proses decoding diringkas pada tabel 6 berikut.

Tabel 6 Proses decoding untuk kata ’RAJA’

Encoded Number

Karakter Low High Code Range 0.65625 R 0.00 0.25 0.25

0.8125 A 0.25 0.75 0.5

0.25 J 0.75 1.0 0.25

0 A 0.25 0.75 0.5

(5)

IV. IMPLEMENTASI

Implementasi sistem program ini mencakup spesifikasi kebutuhan perangkat keras (hardware) dan spesifikasi perangkat lunak (software) yang akan di uraikan di bawah ini.

1. Form Pemilihan File Teks Kompresi

Pengujian data teks adalah melakukan Kompresi file Teks dengan dengan algoritma Shannon Fano dan Unnary Coding Tampilan pengujian Teks dapat dilihat pada gambar 1 di bawah ini.

Gambar 1. Tampilan Utama Kompresi Teks Pengujian selanjutnya adalah proses pemilihan file teks yang akan di kompresi dengan memilih data pada lokasi yang telah ditentukan, pengujian dapat dilihat pada gambar di bawah ini:

Gambar 2. Lokasi Pemilihan File Teks yang Akan di Kompresi

2. Form Pengujian Dekompresi File Teks

Pengujian data teks adalah melakukan Dekompresi file Teks dengan dengan algoritma Shannon Fano dan Unnary Coding Tampilan pengujian Teks dapat di lihat pada gambar di bawah ini.

Gambar 3. Tamplian Utama Dekompresi Teks IV. KESIMPULAN

Berdasarkan dari hasil penelitian yang telah dilakukan, maka dapat disimpulkan yaitu:

1. Penelitian ini telah berhasil membuat aplikasi kompresi teks Shannon Fano dan Unary Coding sehingga mendapatkan hasil sesuai dengan proses kompresi yang dikerjakan.

2. Pada saat proses kompresi, aplikasi ini membaca karakter yang ada dalam data teks, kompresi file teks yang efektif untuk digunakan dengan melakukan perbandingan kompresi file teks dengan menggunakan metode Shannon Fano dengan Unary Coding.

3. Dapat dilihat pada data teks berukuran kecil, rasio kompresi teks dengan menerapkan Algoritma Shannon Fano Dan Unary Coding ukuran sama, hal ini disebabkan nilai biner yang dibentuk algoritma hampir menyerupai.

REFERENCE

[1] Abdul Kadir dan Terra Ch. Triwahyuni 2013. ”Pengantar Teknologi Informasi” :Dasar Sistem Komputer. Yogyakarta : Andi Offset.

[2] Abdul Kadir 2013.Pengenalan Algoritma :Flowchart.

Yogyalarta : Andi Offset.

[3] Rahmat Pryanto 2009. Langsung Bisa Visual Basic.NET 2008: Pendahuluan. Yogyakarta Andi Offset.

[4] Rosa AS – M Shalahuddin 2011. Rekayasa Perangkat Lunak.: “Pemodelan Dan UML”.Bandung 2011

[5] Darma Putra 2010. Pengolahan Citra Digital .: “Kompresi Data Citra” Yogyakarta :Andi Offset

[6] Sumber Jurnal Volume 5 No. 2, November 2009 (Nita Cristina, Sri Suwarno, R. Gunawan Sentosa, Jurusan Teknik Informatika Fakultas Teknik Kristen Duta Wacana, Yogyakarta.)

[7] Haryanto et al. (2017) ‘Internet Protocol Security as the Network Cryptography System’, International Journal of Scientific Research in Science and Technology, 3(6), pp.

223–226.

[8] Nasution, S. D. et al. (2017) ‘Data Security Using Vigenere Cipher and Goldbach Codes Algorithm’, International Journal of Engineering Research & Technology (IJERT), 6(1), pp. 360–363.

[9] Nasution, S. D. and Mesran (2016) ‘Goldbach Codes Algorithm for Text Compression’, IJournals: International

(6)

Journal of Software & Hardware Research in Engineering, 4(December), pp. 43–46.

[10] Fau, A., Mesran and Ginting, G. L. (2017) ‘Analisa Perbandingan Boyer Moore Dan Knuth Morris Pratt Dalam Pencarian Judul Buku Menerapkan Metode Perbandingan Eksponensial ( Studi Kasus : Perpustakaan STMIK Budi Darma )’, Jurnal Times (Technology Informatics &

Computer System), 6(1), pp. 12–22.

[11] Siahaan, A. P. U. (2016) ‘IMPLEMENTASI TEKNIK KOMPRESI TEKS HUFFMAN’, Jurnal Informatika, 10(2). doi: 10.26555/jifo.v10i2.a5070.

Referensi

Dokumen terkait

Pada penelitian ini membahas tentang perancangan sebuah aplikasi yang dapat menerapkan sistem pengamanan file teks dan pemampatan (kompresi) data file teks yang telah di

• Untuk file teks yang memiliki jumlah jenis karakter yang lebih sedikit dengan tingkat pengulangan karakter yang lebih tinggi, algoritma LZ78 memberikan rasio kompresi yang

Pada penelitian ini membahas tentang perancangan sebuah aplikasi yang dapat menerapkan sistem pengamanan file teks dan pemampatan (kompresi) data file teks yang telah di

Adapun permasalahan yang akan dibahas dalam penulisan ini adalah bagaimana tingkat efektivitas metode Huffman untuk kompresi data citra dan teks pada aplikasi kompresi data..

Penelitian selanjutnya oleh [1], mengenai Analisis dan Implementasi Kompresi File Audio dengan Menggunakan Algoritma Run Length Encoding (RLE) menyimpulkan

Dengan adanya proses kompresi terhadap teks SMS, akan terjadi pemampatan terhadap data SMS sehingga dapat menghemat biaya pengiriman SMS (pulsa). Penulis memilih

Proses Kompresi merupakan proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat compact namun tetap dapat mewakili kuantitas informasi yang

Salah satu algoritma kompresi yang dapat digunakan adalah algoritma Additive Code yang merupakan suatu algoritma yang membutuhkan masukan kata bersama dengan distribusi probabilitas