## PERANCANGAN APLIKASI KOMPRESI FILE TEKS DENGAN MENERAPKAN ALGORTIMA FIXED LENGTH BINARY ENCODING (FLBE)
Rizka Dwi Pratiwi 1 , Surya Darma Nasution 1 , Fadlina 2
1 STMIK Budi Darma, Medan, Indonesia
2 AMIK STIEKOM Sumatera Utara, Rantauprapat, Indonesia

## Abstrak
Semakin tingginya aktivitas transaksi pertukaran data baik secara online maupun offline menimbulkan kekhawatiran terhadap beberapa  pihak,  Ukuran  data  yang  besar  mengakibatkan  pemborosan  memori  dan  lambatnya  proses  pemindahan  dan pengiriman data. Untuk itu diperlukan sebuah teknik untuk mengubah ukuran data tersebut agar menjadi lebih kecil. Teknik ini disebut dengan pemampatan atau yang lebih dikenal dengan kompresi data. Kompresi data adalah suatu proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan data. Algoritma Fixed Length Binary  Encoding  (FLBE)  menggunakan  teknik  lossless  yaitu  tidak  menghilangkan  informasi  sedikitpun,  hanya  mewakili beberapa informasi yang sama. Hasil yang diperoleh dari penerapan algoritma Fixed Length Binary Encoding dalam proses kompresi  dan  dekompresi  meliputi  kapasitas  hasil  kompresi,  rasio  kompresi  serta  waktu  kompresi  dan  dekompresi.  Sesuai dengan hasil uji coba yang dilakukan terlihat bahwa data yang semula mempunyai ukuran lebih besar dapat terkompresi dengan baik diimplementasikan pada file teks.
Kata Kunci : Kompresi, File Teks, Fixed Length Binary Encoding

## Abstract
The higher activity of data exchange transactions both online and offline raises concerns for some parties, large data sizes result in a waste of memory and slow data transfer and delivery processes. For this reason, a technique is needed to  change the size of the data to be smaller. This technique is called compression or better known as data compression. Data compression is a process  of  converting  a  set  of  data  into  a  form  of  code  to  save  data  storage  requirements.  Fixed  Length  Binary  Encoding Algorithm (FLBE) uses a lossless technique that does not  eliminate  information at all, only representing some  of the same information.  The  results  obtained  from  the  application  of  Fixed  Length  Binary  Encoding  algorithm  in  the  process  of compression and decompression include compression capacity, compression ratio and compression and decompression time. In accordance with the results of the experiments carried out, it can be seen that the data originally having a larger size can be compressed well implemented in text files.
Keywords : Compression, Text Files, Fixed Length Binary Encoding

## 1. PENDAHULUAN
Meningkatnya kebutuhan terhadap data digital yang semakin hari semakin tinggi, terlebih lagi saat ini internet dan telepon telah menjadi suatu kebutuhan yang sangat penting sebagai media komunikasi seperti proses pengiriman data.  Akan  menjadi  tantangan  yang  cukup  besar  akan  terbatasnya  media  penyimpanan (storage) dikarenakan besarnya ukuran suatu file . Pertukaran data teks baik secara online ataupun menggunakan media penyimpanan semakin  besar  ukuran  suatu file maka  membutuhkan  kapasitas  ruang  penyimpanan  yang  cukup  besar  juga. Besarnya ukuran suatu file juga mempengaruhi pada saat proses pengiriman data melalui media transmisi yang membutuhkan waktu sangat lama untuk mengirimkan data yang memiliki ukuran yang besar tersebut.
Kebutuhan  manusia  modern  saat  ini  yang  banyak  bekerja  menggunakan  komputer  terlebih  lagi  bekerja dengan menggunakan aplikasi microsoft word , dengan mengetikkan teks. Teks ini yang akan disimpan kedalam suatu media penyimpanan  berupa data yang terdiri dari karakter yang  menyatukan kata-kata atau simbol  inilah yang disebut dengan file teks. Kecenderungan manusia dalam mengumpulkan data berupa file teks dan dokumen yang menyebabkan manusia membutuhkakn media penyimpanan yang besar terlebih lagi  saat ini manusia sering melakukan  transfer  file  teks  baik  itu  secara online maupun offline yang  membutuhkan  waktu  pengiriman  yang cepat.
Maka  dari  itu  untuk  menjawab  tantangan  tersebut  dibutuhkan  teknik-teknik  pengolahan  data,  salah  satu teknik pengolahan data tersebut adalah dengan kompresi data agar data hasil yang dikeluarkan dapat dimampatkan tanpa mengurangi besarnya informasi yang ada antara data sebelum dan sesudah pengolahan.
Proses Kompresi merupakan proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat (compact) namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut  [1].Secara  spesifik,  kompresi  data  bertujuan  untuk  mereduksi  tempat (space) penyimpanan  data  dan mereduksi waktu untuk mentransmisikan file atau data yang memiliki kapasitas besar. Hal yang harus diperhatikan dalam  kompresi  data  adalah time  process (waktu yang  berjalan  pada  saat  data  dikompresi), ratio (ukuran  data
setelah  dikompresi)  dan space  savings (persentase  selisih  ukuran  data  setelah  dikompresi  dengan  ukuran  data sebelum dikompresi).
Berbagai  algoritma  telah  dikembangkan  untuk  keperluan  kompresi  data.  Namun,  algoritma  tersebut sebahagian  besar  lebih  efisien  digunakan  untuk  tipe  data tertentu  saja.  Misalnya  untuk  kompresi  text, terdapat algoritma Fixed  Length  Binary  Encoding,  Sequitur,  Shannon-Fano,  Burrows-Wheeler  Transform  (BWT), Huffman, Ziv and Lempel 77 (LZ77), Ziv and Lempel 78 (LZ78), Lempel Ziv Welch (LZW), Run Length Encoding (RLE) dan lain-lain. Pada penelitian ini algoritma yang digunakan untuk mengompresi data adalah algoritma Fixed Length Binary Encoding (Flbe). Algoritma Fixed Length Binary Encoding (FLBE) dikenal juga sebagai kode- kode blok yang mudah untuk diimplementasikan. Pada algoritma ini simbol yang asli diubah ke dalam bentuk fixed-length code yang kemudian akan  mengurangi  jumlah  bit  simbol-simbol  tersebut.  Kemudahan  tersebut  berbanding  lurus  dengan  proses mengubah kembali fixed-length code menjadi simbol aslinya [2].
Pada penelitian sebelumnya yang dilakukan oleh Abdel-Rahman Jaradat dan Mansour I. Irshid dalam jurnal Active  and  Passive  Elec.  Comp .,  2001,  Vol.  24,  pp.  211-221  yang  berjudul “A  Simple  Binary  Run  Length Compression Technique For Non-Binary Sources Based On Source Mapping” menyatakan bahwa Kompresi akan dicapai dengan  pengkodean  jumlah  satu  diantara  dua   secara  berturut – turut “nol” menggunakan fixed-length code atau variable-length code . Dan pada penelitian yang dilakukan oleh Wojciech Szpankowski dan Sergio Verdu dalam  jurnal  IEEE Transactions  On  Information  Theory ,  Vol.  57,  No.7,  July  2011  yang  berjudul “Minimum Expected Length of Fixed-to-Variable Lossless Compression Without Prefix Constraints” menyatakan bahwa teori analisis informasi, fixed-to-variable kompresi lossless , sumber tanpa memori, satu ke satu kode, Teori Shannon, sumber  kode. Lossless simbol  ke  simbol  kompresor  yang  diperlukan  untuk  memenuhi  kondisi “Unique Decodability“ dimana jika string input berbeda dengan hasil kompresi. .

## 2. TEORITIS
2.1  Kompresi
Kompresi data adalah proses mengubah sebuah aliran data input menjadi aliran data baru yang memiliki ukuran lebih kecil. Aliran yang dimaksud adalah berupa file ataupun buffer dalam memori.Terdapat banyak metode untuk kompresi data. Lossy dan Lossless Compression adalah pengelompokan metode kompresi berdasarkan keutuhan data.
Lossy  Compression menghilangkan  beberapa  data  untuk  memperoleh  kompresi  yang  lebih  baik,  seperti Linear  Predictive  Coding,  A-Law  Algorithm,  Mu-Law  Algorithm,  Fractal  Compression ,  dan  lain-lain.  Ketika proses dekompresi dilakukan, maka output yang dihasilkan tidak sama dengan data aslinya. Metode kompresi ini lebih  efektif  untuk  mengkompresi  data  gambar, video ,  atau audio .Sedangkan Lossless  Compression tidak menghilangkan data sama sekali, sehingga cocok untuk mengkompresi data berupa teks. Yang termasuk Lossless Compression adalah Burrows-Wheeler, DEFLATE, LZW, FLBE, VLBE, Huffman, PPM, Shanon-Fano, Sequitur , dan lain-lain[8-9].
Dekompresi  Data merupakan Suatu data yang sudah dikompresi tentunya  harus dapat  dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi [5][6][7].

## 2.2 Fixed Length Binary Encoding (FLBE)
Algoritma Fixed  Length  Binary  Encoding  (FLBE) dikenal  juga  sebagai  kode-kode  blok.  Kemudahan  dalam mengubah  simbol  yang  asli  ke  dalam  bentuk fixed-length  code menjadikan  algoritma  ini  mudah  untuk diimplementasikan ke dalam software . Kemudahan tersebut berbanding lurus dengan proses mengubah kembali fixed-length code menjadi simbol aslinya [2] . Algoritma Fixed  Length  Binary  Encoding  (FLBE) akan  mengambil  karakter  yang  terdapat  dalam string yang ingin dikompresi, kemudian menghitung frekuensi (jumlah kemunculan karakter pada string ). Fixed Length Binary  Encoding    (FLBE) mengubah  bit  karakter  menjadi fixed-length  code sehingga  menghasilkan String  Bit yang baru. String Bit inilah yang merupakan hasil kompresi dari algoritma Fixed Length Binary Encoding  (FLBE).

## 2.3 File Teks
Teks  adalah  kumpulan  dari  karakter–karakter  atau  string  yang  menjadi  satu  kesatuan. File teks  merupakan file yang berisi informasi-informasi dalam bentuk teks. 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.
Format file teks yang akan digunakan dalam penelitian ini adalah format data teks (*.txt) dan format data dokumen (*.doc).

## 3. ANALISA DAN PEMBAHASAN
Adapun dalam menganalisis sistem terdapat beberapa langkah yang harus dilakukan sebagai berikut: 1. Identifikasi Masalah
Identifikasi masalah pada penelitian ini yaitu:
a. Kecenderungan mengumpulkan data dapat mengakibatkan penggunaan memori yang boros. Terutama pada File teks yang cenderung memiliki redundancy membuat penggunaan memori kurang maksimal.
b. Terdapat banyak software untuk  mengkompresi data, namun  belum ada  yang optimal dalam  melakukan kompresi berbagai tipe data.
2. Analisis Kebutuhan Sistem
Pada tahap ini terdapat kebutuhan sistem yang terdiri dari 2 jenis kebutuhan yaitu kebutuhan fungsional dan kebutuhan non-fungsional.
a. Kebutuhan fungsional
Adapun kebutuhan fungsional tersebut adalah sistem dapat  membaca string  yang berada dalam file teks, sistem  dapat  mengkompresi file teks  (*.txt  dan  *.doc)  dengan  algoritma  FLBE,  sistem  dapat mendekompresi data terhadap hasil kompresi dengan algoritma FLBE.
b. Kebutuhan non-fungsional
Beberapa kebutuhan non fungsional yang dimaksud seperti data penelitian yang akan digunakan dalam sistem, desain program, sistem operasi Windows 8  dan Microsoft Visual Basic.
3. Analisis Proses
Terdapat  2  proses  utama  dalam  penelitian  ini,  yaitu  proses  kompresi  dan  proses  dekompresi.  Pada  proses kompresi, langkah pertama yaitu mencari file teks. Misalkan terdapat file teks yang berisi string “RIZKA DWI PRATIWI”.
Untuk mengetahui ukuran string, dapat dilihat pada Tabel 1. Tabel 1 Ukuran String Sebelum Dikompresi Kar akte r F r e k ASCII Dec ASCII Bin B i t Bit x Frek
R 2 82 01010010 8 16 I 4 73 01001001 8 32
Z 1 90 01011010 8 8
K 1 75 01001011 8 8
A 2 65 01000001 8 16 Sp 2 32 00100000 8 16
D 1 68 01000100 8 8
W 2 87 01010111 8 16
P 1 80
01010000 8 8
T 1 84 01010100 8 8 Jumlah Bit x Frekuensi 136 bit
a. Proses Kompresi
Pada algoritma FLBE, string yang telah dibaca kemudian diambil karakter yang terdapat pada string tersebut dan disusun ke dalam tabel sesuai dengan urutan kemunculan karakter pada string. Perhatikan Tabel 2 berikut ini.
Tabel 2 Total Bit Setelah Dikompresi Menggunakan Algoritma FLBE Kar akte r Fr e k Kode FLBE Bit Bit x Frek Kar akte r F r e k I 4 0000 4 16 I 4 R 2 0001 4 8 R 2 A 2 0010 4 8 A 2 Spa si 2 0011 4 8 Spa si 2 W 2 0100 4 8 W 2 Z 1 0101 4 4 Z 1 K 1 0110 4 4 K 1 D 1 0111 4 4 D 1 P 1 1000 4 4 P 1 T 1 1001 4 4 T 1 Jumlah Bit x Frekuensi 68 bit
Tahap  selanjutnya  adalah  menyusun  kembali  kode-kode  yang  telah  dibuat  dalam  tabel  sesuai  dengan  posisi karakter pada string. Adapun string yang telah dibaca adalah: R         I            Z            K            A            sp 0001   0000       0101      0110        0010       0011
D        W          I          spasi
0111     0100     0000      0011
P        R          A           T           I          W        I 1000    0001     0010     1001     0000    0100   0000
Sehingga diperoleh String Bit sebagai berikut : 0001 0000 0101 0110 0010 0011 0001 0000 0101 0110 0010 0011 1000 0001 0010 1001 0000 0100 0000 Sehingga total bit yang diperoleh adalah sebanyak 68 bit.
b. Proses Dekompresi
Pembacaan String Bit dilakukan dari indeks terkecil sampai indeks terakhir dengan terus menambahkan nilai pada indeks terkecil sampai indeks terakhir dengan terus menambahkan nilai pada indeks sebelumnya yang tidak terdapat pada tabel 3.2. indeks ke 0 adalah 0, tidak terdapat dalam tabel, indeks ke 1 adalah 00, tidak terdapat pada tabel, indeks ke 2 adalah 000, juga tidak terdapat pada tabel, indeks ke 3 adalah 0001, terdapat pada tabel bahwa
MEDIA INFORMATIKA BUDIDARMA, Vol 2, No 1, Januari 2018 ISSN 2614-5278 (media cetak) ISSN 2548-8368 (media online) Hal 10-14
0001  bernilai  R,  maka  R  dituliskan  kedalam file ,  begitu  seterusnya  sehingga String hasil  dekompresi  menjadi “RIZKA DWI PRATIWI’’.

## 4. KESIMPULAN
Berdasarkan pembahasan dan evaluasi diatas maka dapat diambil beberapa kesimpulan sebagai berikut :
1. Pada dasarnya algoritma ini menggantikan setiap karakter dengan sebuah alternatif kode biner yang panjangnya ditentukan  berdasarkan  frekuensi  kemunculan  dari  karakter  tersebut.  Karakter  yang  sering  muncul  akan memiliki kode biner lebih sedikit dibandingkan dengan karakter yang jarang muncul.
2. Algoritma Fixed Length Binary Encoding (FLBE) akan berhenti melakukan proses kompresi apabila panjang bit karakter mencapai jumlah karakter terakhir.
3. Algoritma Fixed Length Binary Encoding (FLBE) ini dapat menangani proses kompresi file teks dengan cukup baik.

## REFERENCES
[1]  D. Putra, Pengolahan Citra Digital, 1st penyunt., Yogyakarta: Andi Yogyakarta, 2010.
[2]  D. Salomon dan G. Motta, Handbook of Data Compression, 5 penyunt., London: Springer, 2010.
[3]  J.  Arifin,  L.  N.  Zulita  dan  H.  ,  “Perancangan  Murottal  Otomatis  Menggunakan  Mikrokontroller  Arduino  Mega  2560,”  Jurnal  Media infotama, vol. 12, pp. 89-98, 2016.
[4]  R. S. Pressman, Rekayasa Perangkat Lunak, 7 penyunt., Yogyakarta: Andi Yogyakarta, 2012.
[5]  C. T. Utari, “Implementasi Algoritma Run Length Encoding untuk Perancangan Aplikasi Kompresi dan Dekompresi File Citra,” Jurnal TIMES, vol. V, pp. 24-31, 2016.
[6]  M. R. Irliansyah, S. D. Nasution, and K. Ulfa, “Penerapan Metode Deflate Dan Algoritma Goldbach Codes Dalam Kompresi File Teks,” KOMIK (Konferensi Nas. Teknol. Inf. dan Komputer) , vol. 1, no. 1, pp. 186–189, 2017.
[7]  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.
[8]  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.
[9]  T.  Mizwar,  G.  L.  Ginting,  Mesran,  A.  Fau,  S.  Aripin,  and  D.  Siregar,  “IMPLEMENTASI  ALGORITMA  J-BIT  ENCODING  PADA KOMPRESI FILE TEKS,” KOMIK (Konferensi Nas. Teknol. Inf. dan Komputer) , vol. 1, no. 1, pp. 232–236, 2017.