## Perancangan Aplikasi Kompresi File Gambar Dengan Menerapkan Algoritma Unary Coding

## Fitri Wardani Pakpahan
Teknik Informatika, Universitas Budi Darma, Medan, Indonesia Email: fitriwardanipakpahan@gmail.com

## Abstrak
File gambar berformat bmp merupakan format yang dikembangkan oleh microsoft yang terdiri dari susunan titik (pixel) yang tersimpan dimemori komputer. Bmp merupakan file gambar yang tidak terkompresi, sehingga ukurannya cukup besar dan tidak tepat untuk kapisitas memori yang tidak memadai. Salah satu solusi untuk permasalahan tersebut adalah memperkecil ukuran atau mengkompresi file gambar tersebut.  Dengan  adanya  kompresi  diharapkan  dapat  menghemat  biaya  serta  waktu  yang  dikeluarkan  guna  menambah  fasilitas  media penyimpanan data pada komputer serta mempercepat proses transfer data. Kompresi file gambar tersebut menggunakan algoritma Unary Coding.  Dengan  adanya  kompresi  file  gambar  tersebut  akan  dapat  mempermudah  pengguna  untuk  memperkecil  file  gambar,  dan mempercepat proses transfer file gambar dan menghemat waktu yang dikeluarkan guna menambah fasilitas media penyimpanan data pada komputer.
Kata Kunci: File Gambar, Kompresi, Algoritma Unary Coding.

## Abstract
Image file format bmp is a format developed by  microsoft which consists of arrangement of dots (pixels) stored in computer memory. Bmp is an uncompressed image file, so its size is large enough and not appropriate for inadequate memory capacity. One solution to this problem is to reduce the size or compress the image file. With the compression is expected to save costs and time expended in order to increase data storage media facilities on the computer and speed up the data transfer process. The compressed image file uses  the Unary Coding  algorithm.  With the  compression of  image  files,  it will be  easier  for  users to  reduce  image  files,  and  speed  up  the  process  of transferring image files and save time spent to increase data storage media facilities on the computer.
Keywords: Image File, Compression, Unary Coding Algorithm.

## 1. PENDAHULUAN
Kompresi file merupakan salah satu aspek penting dalam dunia teknologi informasi. Seiring dengan perkembangan teknologi, tuntutan untuk menyajikan informasi  dengan kualitas terbaik  menyebabkan jumlah ukuran suatu file menjadi  lebih besar. Sebagai  contoh  pada file gambar  dimana  semakin  baik  kualitas  gambar  yang  dihasilkan,  maka  ukuran  gambar  yang dibutuhkan untuk merekam gambar tersebut semakin besar, sehingga berimbas pada ukuran file yang harus disimpan pada media  penyimpanan.Hal  ini  yang  menjadi  permasalahan  ketika  ingin  menyimpan  dan  mengirim  suatu file gambar  tetapi kapasitas penyimpanan tidak memadai, dan memakan banyak waktu  karena file gambar tersebut  ukurannya sangat  besar. Salah satu solusi untuk permasalahannya adalah memperkecil ukuran file gambar dengan cara mengkompresi file gambar tersebut. Kompresi data adalah proses meminimalkan ukuran data atau berkas dengan mengurangi data yang berulang, karena umumnya pada sebuah data sering terjadi perulangan. Dengan adanya kompresi  diharapkan dapat menghemat biaya serta waktu yang dikeluarkan guna menambah fasilitas media penyimpanan data pada komputer serta mempercepat proses transfer data [1].
Format gambar  yang diulas adalah format bmp, format ini cukup populer dan sering digunakan untuk penyimpanan file gambar.  Format bmp merupakan format yang dikembangkan oleh Microsoft yang terdiri dari susunan titik ( pixel ) yang tersimpan dimemori komputer. Bmp merupakan file gambar yang tidak terkompresi, sehingga ukurannya cukup besar dan tidak tepat untuk kapasitas memori yang sangat kecil. Saat ini terdapat banyak sekali algoritma yang dapat digunakan pada proses kompresi, diantaranya adalah algoritma Unary Coding . Unary Coding merupakan jenis kompresi lossless , dan Unary Coding ini  sudah  banyak  digunakan  kompresi  data  dan  banyak  digunakan  dengan  gabungan  beberapa  teknik modifikasi. Unary  Coding direpresentasikan  dalam  sebuah  string  dari n bi t 1  diikuti  dengan  satu  bit  0  yang  mengakhiri  yang dedefenisikan sebagai n-1 bit diikuti satu bit 0 atau sebaliknya . Kompresi file bertujuan untuk mengurangi ukuran dari gambar tersebut  untuk  mempresentasikan  suatu file gambar  sehingga  dapat    menghemat  memori  penyimpanan  dan  mempercepat proses pertukaran data.
Dari hasil penelitian sebelumnya yang dilakukan oleh Mhd. Rajani Pane, telah berhasil membuat aplikasi kompresi file teks dengan menggunakan algoritma Unary Coding sehingga mendapatkan hasil sesuai dengan proses kompresi yang dikerjakan. Pada  saat  kompresi,  aplikasi  ini  membaca  karakter  yang  ada  dalam  data  teks,  kompresi file teks  yang  efektif digunakan dengan algoritma Unary Coding dapat dilihat pada data teks berukuran kecil [2]. Pada tahun 2016 Cut Try Utari pernah meneliti tentang Implementasi Algoritma Run Length Encoding Untuk Perancang Aplikasi Kompresi dan Dekompresi File Citra yang bertujuan untuk meminimalkan kebutuhan memori dalam mempresentasikan citra digital dengan mengurangi duplikasi data. Sehingga memori yang dibutuhkan menjadi sedikit dari pada representasi citra data agar diperoleh data dengan ukuran yang lebih kecil dari pada ukuran aslinya sehingga lebih efisien dalam menyimpannya serta mempersingkat waktu pertukaran data tersebut [3].

## 2.1 Kompresi
Kompresi adalah proses mengubah suatu input data menjadi data dengan ukuran yang lebih kecil, atau proses pengkodean dari  suatu  data  untuk  mengurangi  kebutuhan  akan  media  penyimpanan.  Kompresi  citra  berarti  suatu  teknik  untuk meminimalkan kebutuhan memori dalam mempresentasikan citra digital dengan mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit dari pada representasi citra semula [4].

## 2.2 Algoritma Unary Coding
Algoritma unary coding merupakan algoritma kompresi data dan sudah banyak digunakan untuk penggabungan beberapa teknik  modifikasi. Unary  coding ini  direpresentasikan  dalam  sebuah string dari  n  bit  1  diikuti  dengan  satu  bit  0  yang mengakhiri  yang  didefenisikan  sebagai  n-1  bit  1  diikuti  satu  bit  0  atau  sebaliknya.  Pada  algoritma Unary  Coding tidak terdapat  pembagian frekuensi simbol-simbol  yang ada pada sebuah string. Berikut merupakan tabel dari algoritma Unary Coding [2].
Tabel 1. Tabel Algoritma Unary Coding N Kode Kode Alternatif 1 0 1 2 10 01 3 110 001 4 1110 0001 5 11110 00001
Sumber : Salomon, 2007 [5]

## 2.3 Citra
Gambar  atau  citra  adalah  suatu  representasi  (gambaran),  kemiripan,  atau  imitasi  dari  suatu  objek. Citra  sebagai  keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan [6].

## 3. ANALISA DAN PEMBAHASAN
Penelitian ini akan dilakukan analisa dan perancangan perangkat lunak pengkompresian file gambar yang berektensi *.bmp dengan  menggunakan  algoritma Unary  Coding. Pada  dasarnya file gambar  dibentuk  dengan  mendefenisikan  biner  untuk setiap pixel yang terdapat dalam daerah gambar. Proses kompresi file gambar didasarkan bahwa pada semua gambar selalu terdapat  pengulangan pada komponen biner dimilikinya, misalnya di  dalam suatu file gambar akan terdapat  pengulangan penggunaan biner sesuai pixel . Kompresi file gambar berusaha untuk menghilangkan unsur perulangan dengan mengubah sehingga ukurunnya akan lebih kecil. Dalam bagian ini akan dilakukan pembahasan dalam menerapkan algoritma Unary Coding untuk melakukan kompresi file gambar. Berikut adalah cara kerja proses kompresi dan dekompresi yang dilakukan dan dibuat ke dalam bentuk diagram:
Gambar 1. Cara Kerja Proses Kompresi dan Dekompresi
Dalam proses kompresi file gambar dengan algoritma Unary Coding dapat dilakukan dengan dua proses, yaitu: 1. Proses kompresi
a. Contoh file gambar yang digunakan untuk proses kompresi yaitu berukuran 176x132 pixel proses yang dilakukan diambil dari sample gambar dengan ukuran 6x6 pixel .
b. File gambar tersebut diambil nilai pixel nya menggunakan aplikasi MATLABR2010a .
Gambar 3. Nilai Pixel Gambar Ukuran 6x6 Pixel
c. Setelah mengetahui nilai pixel dari file gambar, berikut adalah frekuensi data dari nilai pixel yang digambarkan dalam tabel 2. :
Tabel 2. Nilai Pixel Yang Belum Dikompresi No  Pixel  Biner Frekuensi  Jumlah bit  Total bit 1 110 00010010  3 8 24
2 88 00010111  3 8 24 3 82 00101110  3 8 24
4 77 00110000  3 8 24 5 76 00110010  3 8 24 6 71 01000011  3 8 24 7 67 01000111  3 8 24 8 50 01001100  3 8 24 9 48 01001101  3 8 24 10 46 01010010  3 8 24 11 23 01011000  3 8 24 12 18 10101110  3 8 24 TOTAL 36 288
d. Setelah mengetahui frekuensi  data dari nilai pixel, berikut salah satu  contoh nilai pixel untuk mendapatkan kode Unary Coding : n-1  (nilai pixel) = 0 (dari n bit 1 diikuti dengan satu bit 0 yang mengakhiri yang didefenisikan sebagai n-1 bit 1 diikuti satu bit 0 atau sebaliknya). contoh : n-1 (110) = 0  Jumlah bit 1 n-2 (88) = 10 Jumlah bit 2 n-3 (82) = 110 Jumlah bit 3 n-4 (77) = 1110 Jumlah bit 4 Kemudian dibentuk kedalam sebuah tabel seperti tabel berikut ini :
Tabel 3. Nilai Pixel Yang Sudah Dikompresi
No  Nilai Pixel  Frekuensi  Unary Coding  Jumlah Bit  Total Bit
1 110 3 0 1 3 2 88 3 10 2 6 3 82 3 110 3 9 4 77 3 1110 4 12 5 76 3 11110 5 15 6 71 3 111110 6 18 7 67 3 1111110 7 21 8 50 3 11111110 8 24 9 48 3 111111110 9 27 10 46 3 1111111110 10 30 11 23 3 11111111110 11 33 12 18 3 111111111110 12 36 TOTAL 36 234
e. Setelah itu diurutkan sesuai pixel 67, 46, 23, 76, 71, 50, 67, 46, 23, 76,71, 50, 67, 46, 23, 76,71, 50, 82, 48, 18, 77,110, 88, 82, 48, 18, 77,110, 88, 82, 48, 18, 77,110, 88 (tanpa koma dan spasi). Dan menjadi nilai biner : “1111110111111111011111111110111101111101111111011111101111111110111111111101111011111011111 1101111110111111111011111111110111101111101111111011011111111011111111111011100101101111111 1011111111111011100101101111111101111111111101110010”.
f. Sebelum  mendapatkan  hasil  dari  kompresi  tersebut  maka  dilakukan  dengan  penambahan padding dan flag  bits . Penambahan padding dilakukan karena total nilai bit sebanyak 234 bit jika dibagi menjadi 8 dan memiliki sisa 2 maka dapat ditambahkan padding “000000”. Dan jika nilai bit tersebut habis dibagi 8 atau tidak memiliki sisa maka tidak diperlukan prose padding dan flag bit . Selanjutnya flag bit yang merupakan nilai biner dari panjang padding yaitu 6 dalam biner menjadi “00000110”. Maka hasil biner yang terbentuk adalah:
1111110111111111011111111110111101111101111111011111101111111110111111111101111011111011111 1101111110111111111011111111110111101111101111111011011111111011111111111011100101101111111 1011111111111011100101101111111101111111111101110010 00000000000110 ”. Sehingga total bit sebelumnya telah ditambahkan padding dan flag bit adalah 234 + 6 + 8 = 248
g. Selanjutnya melakukan perbandingan antara file yang telah dikompresi dan yang belum dikompresi menggunakan Compression Ratio (C R ). C R = 𝑈𝑘𝑢𝑟𝑎𝑛 𝑓𝑖𝑙𝑒 𝑔𝑎𝑚𝑏𝑎𝑟 𝑦𝑎𝑛𝑔 𝑠𝑢𝑑𝑎ℎ 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑈𝑘𝑢𝑟𝑎𝑛 𝑓𝑖𝑙𝑒 𝑔𝑎𝑚𝑏𝑎𝑟 𝑦𝑎𝑛𝑔 𝑏𝑒𝑙𝑢𝑚 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑋 100%
C R = 248 228 𝑋 100%
h. Selanjutnya biner tersebut dibagi menjadi 8 bit dan disesuaikan dengan nilai desimalnya. 11111101 = 253
11111111 = 255
01111111 = 127 11101111 = 239 01111101 = 125 11111101 = 253 11111011 = 251
11111110 = 254 11111111 = 255 11011110 = 222 11111011 = 251
11111011 = 251
11110111 = 247 11111101 = 253 11111111 = 255
10111101 = 189 11110111 = 247 11110110 = 246
11111111 = 255 01111111 = 127 11110111 = 247 00101101 = 45 11111110 = 254 11111111 = 255 11101110 = 238 01011011 = 91 11111101 = 253 11111111 = 255 11011100 = 220 10000000 = 128 00000110 = 6
i. Berikut merupakan hasil kompresi dari gambar 6x6 pixel
Gambar 3. Hasil Kompresi
2. Proses dekompresi
a. Selanjutnya analisis perhitungan untuk  dekompresi file gambar dengan algoritma Unary Coding . Pada kompresi sebelumnya telah dihasilkan data berupa kode biner seperti berikut:
11111101 11111111 01111111 11111101 11111111 01111111 11101111 01111101 11111101 11111011 11111110 11011110 11111011 11111011 11110111 11111101 11111111 10111101 11110111 11110110 11111111 01111111 00101101 11111110 11111111 11101110 01011011 11111101 11111111 11011100 10000000 00000110
11111111 11110111
b. Sebelum dilakukan pembacaan biner, hilangkan biner yang ditebalkan karena biner diatas merupakan bernilai kosong
11111101 11111111 01111111 11101111 01111101 11111101 11111011 11111110 11111111 11011110 11111011 11111011 11110111 11111101 11111111 10111101 11110111 11110110 11111111 01111111 11110111 00101101 11111110 11111111 11101110 01011011 11111101 11111111 11011100 10
c. Untuk  melakukan  proses  dekompresi  dengan  membaca input biner  pada  bit  pertama  yaitu  1111110  selanjutnya dilakukan pengecekan ke dalam tabel Unary Coding untuk mendapatkan nilai pixel yang sesuai.
Biner 1111110 1111111110 11111111110 11110 1111110 111110 Pixel 67 46 23 76 71 50 Biner 1111110 1111111110 11111111110 11110 1111110 111110 Pixel 67 46 23 76 71 50 Biner 1111110 1111111110 11111111110 11110 1111110 111110 Pixel 67 46 23 76 71 50 Biner 110 111111110 111111111110 1110 0 10 Pixel 82 48 18 77 110 88 Biner 110 111111110 111111111110 1110 0 10 Pixel 82 48 18 77 110 88 Biner 110 111111110 111111111110 1110 0 10 Pixel 82 48 18 77 110 88
d. Setelah mendapatkan nilai pixel yang sesuai, selanjutkan diurutkan sesuai nilai pixel diatas
67 46 23 76 71 50 67 46 23 76 71 50 67 46 23 76 71 50 82 48 18 77 110 88 82 48 18 77 110 88 82 48 18 77 110 88
e. Selanjutnya nilai pixel tersebut diubah menjadi sebuah gambar sesuai file gambar atau nilai pixel nya.
Gambar 4. File Dekompresi

## 4. IMPLEMENTASI
Ada pun nilai hasil beserta dataset di tampilkan dalam satu tampilan agar perhitungan jelas terlihat. Hasil pengujian program ini merupakan langkah-langkah dari sistem yang telah diuji untuk mengetahui sistem tersebut sudah sesuai atau tidak dengan yang dirancang . 1. Pengujian Proses Kompresi
Gambar 5. Tampilan Hasil Kompresi
2. Pengujian proses dekompresi
Gambar 6. Tampilan Hasil Dekompresi.

## 5. KESIMPULAN
Berdasarkan  hasil  penelian  dan  implementasi  yang  di  lakukan  dalam  perancangan  aplikasi  kompresi  file  gambar  dengan menerapkan algoritma unary coding dapat di tarik kesimpulan dari penelitian ini yaitu:
1. Proses kompresi file gambar dengan menggunakan algoritma Unary Coding dapat dilakukan dengan cara nilai pixel dari file gambar diambil dengan menggunakan aplikasi MatlabR2010a dan frekuensi diambil dari berapa jumlah nilai pixel yang sama untuk mengetahui total bit dari sample gambar.
2. Dalam penerapan algoritma Unary Coding pada aplikasi kompresi file gambar untuk mendapatkan kode dari algoritma Unary Coding dengan cara n bit 1 diikuti dengan satu bit 0 yang mengakhiri yang didefenisikan sebagai n-bit 1 diikuti satu bit 0 mengakhiri atau sebaliknya.
3. Pengujian yang dilakukan pada aplikasi kompresi file gambar dirancang menggunakan aplikasi Microsoft Visual Studio 2008 dengan menerapkan algoritma Unary Coding untuk mendapatkan hasil dari kompresi tersebut..

## REFERENCES
[1] C. T. Utari, “Implementasi Algoritma Run Length Encoding Untuk Perancangan Aplikasi Kompresi Dan Dekompresi File Citra,” J. TIMES, vol. V, no. 2, pp. 24–31, 2016.
[2] Mhd. Rajani Pane, “Perancangan Aplikasi Kompresi Menggunakan Metode Shannon Fano dan Unary Coding Pada File Teks,” vol. 12, no. September, pp. 306–311, 2017.
[3] A. K. Saputra, I. P. Ningrum, J. T. Informatika, F. Teknik, and U. H. Oleo, “Aplikasi kompresi,” vol. 1, no. 2, pp. 1–10, 2015.
[4] dkk T. Sutoyo, S.Si., M.Kom, “Teori Pengolahan Citra Digital,” p. 9,25,166,168, 2009.
[5] Darma Putra, “Pengolahan Citra Digital,” p. 272, 20AD.
[6] D. Salomon, “Data Compression,” p. 55, 2007.
[7] S. Yuni, “Analisis & Perancangan UML,” 2013.
[8] H. Prabowo Pudjo Widodo, “Menggunakan UML,” pp. 6–7, 2011.
[9] Rosa A.S. dan M. Shalahuddin, “Rekayasa Perangkat Lunak,” p. 140, 2016.
[10]  Hendrayudi, “Dasar-Dasar Pemrograman Microsoft Visual Basic 2008,” pp. 1–2, 2011.
[11]  Budi Raharjo, “Mudah Belajar Visual Basic.NET,” p. 661,663,666, 2016.