## Penerapan Aloritma Punctured Elias Code Pada Aplikasi Kompresi Short Message Service (SMS)

## Juleha, Guidio Leonarde Ginting, Fadlina
Teknik Informatika, Universitas Budi Darma, Medan, Indonesia Email: julehatambunan@gmail.com Submitted 19-10-2020; Accepted 25-10-2020; Published 31-10-2020

## Abstrak
Teknologi  telepon  genggam  (handphone)  sebagai  alat  komunikasi  pada  saat  ini  telah  mengubah  cara  pandang  masyarakat  dalam berkomunikasi.  Komunikasi  disampaikan  dapat  beragam  cara  menginterprestasikannya,  yaitu  dengan  bentuk citra,  suara  maupun  teks secara digital. Oleh karena itu, dibutuhkan suatu aplikasi yang bisa membantu pengguna dalam berhubungan dengan banyak orang  yaitu dengan Short Message Service. Ini adalah sebuah masukan untuk mempermudah banyak orang dalam hal yang positif. Short Message Service (SMS) adalah layanan dasar yang memperbolehkan pertukaran pesan teks singkat antar pelanggan. SMS pada saat ini memang sudah ketinggalan dibandingkan dengan aplikasi messenger lainnya. Tetapi masih ada sebagian masyarakat yang masih menggunakan SMS terutama masyarakat tinggal di pedesaan atau  pedalaman karena terbatas jaringan internetnya. Karena biaya yang dikenakan untuk sekali pengiriman sms relatif mahal maka perlu dilakukan kompresi pada sms. Kompresi  merupakan proses meminimalkan ukuran data atau  berkas  dengan  mengurangi  data  yang  berulang  tanpa  mengurangi  kualitas  dari  data  tersebut..  Dimana  dalam  kompresi  ini  akan dihubungakan kedalam bentuk Algoritma, yaitu Algoritma Punctured Elias Code. Algoritma Punctured elias Code yaitu Algoritma y ang terdiri  dari  data    yang  asli  ditambah  sejumlah  bilangan  dari  check  bits.  Jika  beberapa  check  bits  dihilangkan,  untuk  mempersingkat serangkaian kode itu, hasil kode ditujukan sebagai punctured.
Kata Kunci: Short Message Service, Punctured Elias Code, Eclipse Juno.

## Abstract
Cellphone  technology  (handphone)  as  a  means  of  communication  at  this  time  has  changed  the  way  people  perceive  communication. Communication is conveyed in various ways to interpret it, namely in the form of digital images, sound and text. Therefore, w e need an application that can assist users in dealing with many people, namely the Short Message Service. This is an input to make things easier for people  in  a  positive  way.  Short  Message  Service  (SMS)  is  a  basic  service  that  allows  the  exchange  of  short  text  messages  between subscribers. SMS at this time is outdated compared to other messenger applications. But there are still some people who still  use SMS, especially those who live in rural areas or remote areas because of their limited internet network. Because the cost of sending a single sms is relatively expensive, it is necessary to compress the sms. Compression is the process of minimizing the size of data or files by reducing repetitive data without reducing the quality of the data. Where in this compression it will be linked into an Algorithm, namely the Punctured Elias Code Algorithm. Punctured Elias Code algorithm is an algorithm that consists of the original data plus a number of check bits. If several check bits are omitted, to shorten the series of code, the resulting code is designated punctured.
Keywords: Short Message Service, Punctured Elias Code, Eclipse Juno

## 1. PENDAHULUAN
Teknologi telepon genggam ( handphone ) sebagai alat telekomunikasi pada saat ini telah mengubah cara pandang masyarakat dalam berkomunikasi. Komunikasi merupakan suatu usaha pesan antar manusia, bentuk informasi yang disampaikan dapat beragam cara menginterpretasikannya, yaitu dengan bentuk citra, suara, maupun teks secara digital. oleh karena itu semakin banyaknya informasi yang didapat secara digital, maka akan membutuhkan media penyimpanan data yang sangat besar.
Short  Messaging  Service ( SMS )  merupakan  salah  satu  fitur  dari GSM yang  dikembangkan  dan  distandarisasi  oleh ETSI . Pada saat kita mengirim pesan SMS dari handphone , maka pesan SMS tersebut tidak langsung dikirim ke handphone tujuan, akan tetapi terlebih dahulu dikirim ke SMSCenter (SMSC) dengan prinsip Store and Forward (Simpan dan Teruskan), setelah itu baru dikirimkan ke handphone yang dituju[1]. SMS memungkinkan user saling bertukar pesan-pesan singkat yang ditulis dalam bentuk karakter.
SMS pada saat  ini memang sudah ketinggalan dibandingkan dengan aplikasi  messenger lainnya seperti whatsapp, bbm, line dan sebagainya , Tetapi masih ada sebagian masyarakat yang menggunakan SMS meskipun tidak banyak, terutama bagi masyarakat yang tinggal dipedesan atau dipedalaman. Banyaknya masyarakat masih menggunakan SMS sebagai alat komunikasi  mereka karena terbatasnya jaringan internet.Selain dari jaringan internet  yang kurang bagus jenis handphone yang  digunakan  mereka  juga  tidak  memadai  untuk  menginstal  aplikasi  mesenger.Namun  yang  menjadi  masalah  bagi masyarakat adalah Biaya yang dikenakan untuk sekali pengiriman dihitung dengan satu unit pulsa.Dimana satu unit pulsa hanya bisa mengirimkan pesan teks maksimum 160 karakter. Jika mengirim pesan lebih dari  160 karakter maka pesan yang terkirim akan dihitung dua kali pengiriman.
Punctured  adalah  sebuah  bilangan  integer  yang  dirancang  oleh  Peter  Fenwick  dalam  sebuah  percobaan  untuk meningkatkan performa the Burrows–Wheeler transform . Istilah Punctured datang dari tempat pengawasan eror kode-kode (ECC). ECC terdiri dari data yang asli ditambah sejumlah bilangan dari check bits. Jika beberapa check bits dihilangkan, untuk mempersingkat serangkaian kode itu, hasil kode ditujukan sebagai Punctured .  Kode Punctured ini dinamakan kode P1 dan kode ini dimulai dengan 1 (paling sedikit terdapat satu flag , kecuali untuk kode P1 dengan ) dan juga diakhiri dengan 1 (karena n yang asli, yaitu bit MSB ( Most Significant Bit ) adalah 1, telah dibalikkan)[2]. Penulis Memilih metode Punctured Elias Code berdasarakan dari penelitian sebelumnya yang dilakukan oleh Desi Husni dalam skripsinya yang berjudul” Implementasi dan Analisis Algoritma Kompresi Punctured EliasCodes dan Ternary
Comma Code Pada File Doc ” berdasarkan pengujian kompresi terhadap file doc, dapat disimpulkan bahwa kompresi dengan metode TernaryComa  code waktu  kompresi  dan  dekompresinya  yg  dihasilkan  jauh  lebih  besar  dibandingkan  dengan algoritma Punctured Elias Codes [3] . Penulis memilih metode Punctured Elias Code berdasarkan dari penelitian sebelumnya yang dilakukan oleh Dedek Andri Yansyah dalam skripsinya yang berjudul “Perbandingan Metod e Punctured Elias Code dan Huffman Pada  Kompresi  File  Text”,    Berdasarkan  pengujian  kompresi  terhadap  file  teks,  dapat  disimpulkan  bahwa kompresi dengan metode Punctured Elias Code jauh lebih efektif dibanding dengan metode Huffman . Karena proses yang akan terbentuk tidak terlalu panjang sehingga karakter yang mewakili teks tersebut menjadi lebih singkat[2].

## 2. METODE PENELITIAN

## 2.1 Kompresi
Kompresi adalah teknik memadatkan data atau file , sehingga data atau file yang tadinya memiliki kapasitas data yang besar menjadi  data  yang  lebih  kecil,  untuk  menyimpan data  atau file yang  banyak  pada  memori  yang  memiliki  kapasitas  yang kecil[4].

## 2.2 Teknik Kompresi
Ada dua teknik yang dapat dilakukan dalam melakukan kompresi yaitu[4]: 1. Lossless Compression
Pada  teknik  ini  tidak  ada  kehilangan  informasi.  Jika  data  dimamfaatkan  secara lossless ,  data  asli  dapat  direkontruksi kembali  sama  persis  dari  data  yang  telah  dimanfaatkan,  dengan  kata  lain  data  asli  tetap  sama  sebelum  dan  sesudah pemamfaatan. secara umum teknik lossless digunakan untuk penerapan yang tidak bisa mentoleransi setiap perbedaan antara  data  asli  dan  data  yang  telah  direkonstruksi.  Data  berbentuk  tulisan  misalnya file, harus  dimamfaatkan menggunakan  teknik lossys ,  karena  kehilangan  sebuah  karakter  saja  dapat  mengakibatkan  kesalapahaman. Lossless compression disebut juga dengan error free compression. 2. Lossy Compression
Pada teknik ini akan terjadi kehilangan sebagian informasi. Data yang telah dimampatkan dengan teknik ini secara umum tidak bisa direkonstruksi sama persis dari data aslinya. Di dalam banyak penerapan, rekonstruksi yang tepat bukan suatu masalah.

## 2.3 Algoritma Punctured Elias Codes
Punctured Elias Codes untuk bilangan integer dirancang oleh Peter Fenwick dalam sebuah percobaan untuk meningkatkan performa the Burrows–Wheeler transform . Istilah Punctured datang dari tempat pengawasan eror kode-kode (ECC). ECC terdiri  dari  data  yang  asli  ditambah  sejumlah  bilangan  dari check  bits .  Jika  beberapa check  bits dihilangkan,  untuk mempersingkat serangkaian kode itu, hasil kode ditujukan sebagai Punctured [2]. Cara  untuk  membangun  kode Punctured Elias Codes ini adalah sebagai berikut:
1.   Ambil bilangan biner dari n,
2.   Reversed (balikkan bit-bitnya), dan siapkan flag untuk menunjukkan jumlah bit yang bernilai 1 di dalam n.
3.   Untuk setiap bit 1 di dalam n kita siapkan flag dari 1 dan akhiri flag dengan 0.
4.   Gabungkan flag dengan bilangan biner yang sudah dibalikkan (reversed).

## 2.4 Short Message Service (SMS)
Short  Message  Service (SMS)  adalah  layanan  dasar  yang  memperbolehkan  pertukaran  pesan  teks  singkat  antara pelanggan.SMS pertama kali berhasil diuji coba pada tahun 1992 melalui jaringan saluran komunikasi  GSM Eropa.Sejak berhasil di ujicoba penggunaan SMS terus berkembang.Di tahun 2001 tercatat sekitar 102.9 milyar SMS saling dikirim di seluruh dunia. Gartner Dataquest , salah satu industri lembaga penelitian utama, memperkirakan jumlah SMS akan tumbuh menjadi 146 milyar pada tahun 2002 dan mencapai puncaknya sekitar 168 milyar pada tahun 2003 sebelum terjadi penurunan. Pesan ini bisa dikirim dari peralatan bergerak GSM tetapi juga dari internet, telex, facsimillie . SMS adalah teknologi yang sangat matang yang didukung 100% perangkat GSM dan jaringan GSM dunia[6].

## 3. HASIL DAN PEMBAHASAN
Penelitian  ini  akan  dilakukan  analisa  dan  perancangan  perangkat  lunak  pengkompresian  teks  sms  dengan  menggunakan algoritma Punctured  Elias  Code .  Pada    penelitian  ini  akan  dibuat  sebuah  sistem  untuk  pengkompresian Short  Message Service (SMS) dan dekompresi nya.

## 3.1 Menerapkan Algoritma Punctured Elias Code Pada Kompresi SMS
Kode punctured ini dinamakan  kode P1 dan kode ini dimulai dengan 1 (paling sedikit terdapat satu flag , kecuali untuk kode P1  dengan  n=  0)  dan  juga  diakhri  dengan  1  (karena  n  yang  asli,  yaitu  bit  MSB  ( Most  Significant  Bit )  adalah  1,  telah dibalikkan).
Berikut ini adalah langkah-langkah dalam algoritma kompresi Punctured Elias Code : 1.   Membaca string yang terdapat pada teks sms.
2.   Membuat tabel karakter dan frekuensi kemunculan karakter .
3.   Membangkitkan kode punctured p1 berdasarkan banyaknya karakter yang telah Dibuat.
4.  Sistem melakukan proses kompresi berdasarkan tabel karakter dan tabel kode yang telah dibangkitkan.
Dan berikut adalah langkah-langkah dekompresi pada algoritma punctured elias code.
1.   Proses  awal  dekompresi  adalah  membaca  nilai flag bit  dari  keseluruhan  bit  tersebut  dengan  cara  merubah  nilai  8  bit terakhir kedalam nilai decimal
2.  Selanjutnya hapus flag bits dan padding dari nilai keseluruhan bit. 3.  Pengecekan  bit  yaitu  dengan  cara  melakukan  cek  bit    dari  bit  pertama  dengan  tabel  kode punctured  elias  code .  Jika ditemukan  bit  yang  sesuai  dengan  tabel  kode punctured  elias  code maka  ubah  nilai  string  yang  sesuai  sehingga  akan mendapatkan hasil semula sebelum dikompresi.
Contoh kasus dari masalah ini adalah sebuah teks SMS, dengan menggunakan algoritma Punctured Elias Code . Berikut ini merupakan contoh proses kompresi dengan metode Punctured Elias Code. 1. Input karakter yang akan dijadikan teks SMS sebagai berikut : JULEHA MAKAN MALAM
Bit String : JULEHA MAKAN MALAM [string] : 18 ∑
: {J, U, L, E, H, A, Sp, M, K, N}
[∑]
:10 2.   Membuat tabel karakter dan frekuensi
Tabel 1. Tabel karakter dan frekuensi Char Frekuensi J 1 U 1 L 2 E 1 H 1 A 5 Sp 2 M 3 K 1 N 1
3.   Membangkitkan Kode Punctured Tabel 2. String yang belum dikompresi Char Ascii Code Ascii Binary Bit Frekuensi Bit x Frekuensi J 74 01001010 8 1 8 U 85 01010101 8 1 8 L 76 01001100 8 2 16 E 69 01000101 8 1 8 H 72 01001000 8 1 8 A 65 01000001 8 5 40 SP 32 00010000 8 2 16 M 77 01001101 8 3 24 K 75 01001011 8 1 8 N 78 01001110 8 1 8 Total  144 4.   Melakukan Proses kompresi
Tabel 3. Proses Kompresi dengan Algoritma Punctured elias Code Char  Punctured Elias Code (P1) Bit  Frekuensi  Bit x Frekuensi J 0 1 1 1 U 101 3 1 3
Char  Punctured Elias Code (P1) Bit  Frekuensi  Bit x Frekuensi L 1001 4 2 8 E 11011 5 1 5 H 10001 5 1 5 A 110101 6 5 30 Sp 110011 6 2 12 M 1110111 7 3 21 K 100001 6 1 6 N 1001110 7 1 7 Total  98
Dari tabel tersebut dapat dibentuk bit dan string sebelum dikompresi yaitu “ JULEHA MAKAN MALAM” Menjadi string  bit  “0,  101,  1001,  11011,  10001,  110101,  110011,  1110111,  110101,  100001,  110101,  1001110,110011, 1110111.110101, 1001, 110101, 1110111. Sebelum ditulis kesebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit 98 jika dibagi 8 maka memiliki sisa 2 agar bit dapat habis dibagi 8 maka dapat ditambahkan padding sebanyak 6 bit yaitu “000000” agar habis dibagi 8 dan flag bits nya  menjadi  :01011001,  11011100,  01110101,  11001111,  10111110,  10110000,  11101011,  00111011,  00111110, 11111010, 11001110, 10111101, 11 000000, 00001000. Sehingga total panjang seluruhnya setelah penambahan padding dan flag bit adalah  98 + 6 + 8 = 112 Dari hasil kompresi dengan punctured elias code (p1) diatas di dapatkan hasil dari kompresi  SMS JULEHA MAU MAKAN menjadi 01011001= Y 10111110=¾ 00111110=> 11 000000 =À 11011100= Ü 10110000=° 11111010= ú 00001000 =◘ 01110101=u 11101011=ë 11001110=Î 11001111= Ï 00111011= ; 10111101=½
Dan dapat dihitung kinerja kompresinya menurut parameter yang sudah ditentukan yaitu : 1. Ratio of compression (Rc)
Rc= ukuran data sebelum dikompresi ukuran data setelah dikompresi
Rc= 144bit 112 bit Rc= 1.28 2. Compression ration (Cr)
Cr  = Ukuran Data Setelah di Kompresi Ukuran Data Sebelum di Kompresi X100%
Cr  = 112bit 144 bit X100% Cr = 84.72 % 3. Space Saving (SS)
SS= ukuran data  sebelum dikompresi – ukuran data setelah dikompresi SS=144 -112 SS= 32

## 3.2 Proses dekompresi berdasarkan algoritma punctured elias code (p1)
Pada proses dekompresi, langkah awalnya sistem akan membaca string hasil kompresi, setelah mendapatkan string bit hasil kompresi,  tabel  karakter  dan  kodenya,  kemudian sistem  melakukan  proses  dekompresi  dengan  mengembalikan  string  bit tersebut  kebentuk  semula berdasarkan tabel  karakter  dan tabel  kode yang telah didapat  dari  hasil kompresi.  Pada proses dekompresi hal yang dilakukan adalah menganalisa keseluruh bit hasil dari kompresi sebelumnya. Adapun keseluruhan bit dan gabungan hasil kompresi yaitu :
“01011001, 11011100, 01110101, 11001111, 10111110, 10110000, 11101011, 00111011, 00111110, 11111010, 11001110, 10111101, 11 000000, 00001000 ”.
1.   Proses  awal  dekompresi  adalah  membaca  nilai flag bit  dari  keseluruhan  bit  tersebut  dengan  cara  merubah  nilai  8  bit terakhir  kedalam  nilai decimal seperti 00001000 =  8.Nilai  8  tersebut  merupakan  8  buah  nilai  bit  pada  saat padding sebelum ditambahkan flag bits. 2.   Selanjutnya hapus flag bits dan padding dari nilai keseluruhan bit sehingga menjadi :”01011001, 11011100, 01110101, 11001111, 10111110, 10110000, 11101011, 00111011, 00111110, 11111010, 11001110, 10111101, 11”.
3.   Pengecekan  bit  yaitu  dengan  cara  melakukan  cek  bit    dari  bit  pertama  dengan  tabel  kode punctured  elias  code .  Jika ditemukan  bit  yang  sesuai  dengan  tabel  kode punctured  elias  code maka  ubah  nilai  string  yang  sesuai  sehingga  akan mendapatkan hasil tabel seperti dibawah ini.
Tabel 4. Hasil dekompresi menggunakan punctured elias code Punctured Elias Code Karakter 0 J 101 U
Punctured Elias Code Karakter 1001 L 11011 E 10001 H 110101 A 110011 Sp 1110111 M 110101 A 100001 K 110101 A 1101001 N 110011 Sp 1110111 M 110101 A 1001 L 110101 A 1110111 M
Berdasarkan  hasil dekompresi diatas didapatkan karakter awal sebelum dikompresi sebagai berikut : “JULEHA MAKAN MALAM”.

## 3.3 Implementasi Program
Pengujian sistem merupakan tahap di mana  sistem akan diuji untuk mengidentifikasi apakah sudah sesuai dengan apa yang dirancang pada tahap analisis dan perancangan sistem. Pada tahapan ini merupakan uji coba dari hasil program yang dibuat, mulai dari buat pesan baru untuk dikompresi dan dikirim dan membuka sms masuk yang sudah terkompresi. 1. Buat Pesan Berikut tampilan dari buat pesan yang akan dikompresi dan dikirim ke nomor tujuan.
Gambar 2. Tampilan pesan yang akan dikirim
2.   SMS Masuk
Berikut tampilan dari SMS masuk yang telah diterima dan didekompresi.
Gambar 3. Tampilan SMS masuk yang telah didekompresi

## 4. KESIMPULAN
Berdasarkan  hasil  penelitian  disimpulkan  hasil  Sebelum  SMS  dikompresi  akan  ditampilkan  terlebih  awal,  agar  dapat mengetahui bedanya hasil dari SMS yang belum dikompresi dengan SMS yang sudah dikompresi. Dengan menerapkan hasil kompresi menggunakan algoritma Punctured Elias Code akan menghasilkan karakter atau bit yang lebih kecil dari data awal. Yaitu dengan membaca string, dengan menghubungkan antara karakter dan frekuensi dan membangkitkan kode Punctured Elias Code. Aplikasi kompresi sms dengan menerapkan algoritma punctured  elias code dapat berjalan baik pada android yang sudah terinstal aplikasi tersebut.

## REFERENCES
[1] A. Shannon, F. Menggunakan, J. S. Informasi, F. I. Komputer, and U. M. Buana, “Perancangan Aplikasi Kompresi SMS dengan,” 2010.
[2] D. A. Yansyah and I. Pendahuluan, “PERBANDINGAN METODE PUNCTURED ELIAS CODE DAN,” vol. 2, no. 6, pp. 33–36, 2015.
[3] desi h Husni, “Implementasi dan Analisis Algoritma Kompresi Punctured Elias Codes dan Ternary Comma Code Pada File Doc,” 2016.
[4] P.  Pratama,  “IMPLEMENTASI  ALGORITMA  RUN  LENGTH  ENCODING  DAN  LZW  DALAM  KOMPRESI  FILE DOKUMEN,” J. INFOTEK , vol. 1, no. 3, pp. 100–105, 2016.
[5] P.  Informatika,  B.  Darma,  and  L.  Teori,  “APLIKASI  KOMPRESI  TEKS  SMS  PADA  MOBILE  DEVICE  DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK", Diterbitkan Oleh : STMIK Budi Darma Medan ” vol. III, pp. 28–34, 2013.
[6] H. C. Rustamaji and M. A. Nugraha, “APLIKASI KOMPRESI SMS BERBASIS JAVA ME DENGAN METODE KOMPRESI LZW-HUFFMAN,” vol. 2009, no. semnasIF, pp. 1–9, 2009.
[7] Wahidin, Aplikasi SMS dengan PHP untuk orang awam . Palembang.
[8] R. A.s and M.shalahuddin, Rekayasa Perangkat Lunak Terstruktur dan berorientasi objek . Bandung.
[9] N. S. H., ANDROID pemograman Aplikasi Mobile Smarthphone dan Tablet Pc Berbasis Android (Revisi Kedua) . Bandung.
[10]  Nazruddin Safaat H, ANDROID Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android . Informatika Bandung, 2012.
[11]  N. Firly, Create Your Own Android Aplication . Jakarta: PT Elex Media Komputindo Kelompok Gramedia IKAPI, Jakarta 2018, 2018.