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: [email protected]
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 Metode 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.
Gambar 1. Prosedur Kompresi SMS
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, 11000000, 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=> 11000000=À
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, 11000000, 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.