Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
141
Sistem Prabayar Pengisian Bahan Bakar Minyak Menggunakan Token atau QR Code denganAlgoritma Kriptografi Hibrid
Agariadne Dwinggo Samala *), Ratna Aisuwarya **), Ratna Aisuwarya ***) Sistem Komputer, Universitas Andalas E-Mail: *
[email protected], **
[email protected], ***
[email protected] Abstrak Penelitian ini bertujuan untuk merancang sistem prabayar pengisian bahan bakar minyak menggunakan kode token atau QR code dengan algoritma kriptografi hibrid, yaitu algoritma RSA dan tranposisi. Pengguna kendaraan dapat melakukan pengisian bahan bakar dengan menginputkan 20 digit kode token melalui keypad atau menggunakan QR code melalui WebCam. Jarak pembacaan QR code dari WebCam adalah 5 hingga 15 cm. Sistem pengisian akan aktif jika kunci rahasia pada kode token atau QR code sama dengan kunci rahasia yang dimiliki oleh sistem. Keluaran jumlah liter bahan bakar berdasarkan nilai rupiah yang terdapat pada kode token atau QR code. Penerapan algoritma kriptografi hibrid pada enkripsi dan dekripsi kode token berhasil bekerja dengan baik. Error keluaran jumlah liter saat pengisian berkisar antara 2,11 % hingga 5,18% dengan error rata-rata secara keseluruhan adalah 3,80%. Kata kunci: Token, QR Code, Algoritma Kriptografi Hibrid, Sensor Waterflow
1. PENDAHULUAN Sistem pembayaran pada pengisian bahan bakar kendaraan di Indonesia saat ini masih menggunakan pembayaran tunai kepada petugas. Petugas yang melakukan pengisian dan menjadi kasir pembayaran membutuhkan waktu cukup lama untuk pengembalian uang, sehingga ada jeda waktu dari saat pengembalian uang dan pengisian bahan bakar pengguna kendaraan berikutnya[1]. Selain itu, kecurangan beberapa petugas kerap terjadi seperti pengisian bahan bakar yang tidak pas[2], penjualan bahan bakar kepada pedagang eceran, sehingga terjadi kelangkaan bahan bakar[3]. Di negara maju seperti Amerika Serikat dan Eropa, telah menerapkan sistem pembayaran menggunakan mesin transaksi otomatis, dan pengisian bahan bakar dapat dilakukan sendiri oleh pengguna sehingga mempercepat waktu transaksi[4]. Sistem pengisian bahan bakar di Jepang, tempat pengisian bahan bakar tidak lagi dijaga pertugas. Pengguna melakukan pembayaran dengan memasukan uang tunai kedalam mesin pembayaran atau dengan kartu kredit, kemudian pengguna memilih jumlah liter pada menu pilihan dan pengisian dilakukan sendiri oleh pengguna[5].
ISBN: 979-26-0280-1
Penelitian terdahulu telah mencoba membuat sistem pengisian bahan bakar menggunakan sensor waterflow. Pada penelitian tersebut sistem pengisian bahan bakar masih dilakukan oleh petugas melalui input volume dan harga melalui keypad[6]. Untuk mengembangkan sistem yang telah dibuat sebelumnya, dibutuhkan sebuah sistem pengisian bahan bakar yang dapat dilakukan sendiri oleh pengguna menggunakan token. Token berupa sederetan angka acak yang dicetak dalam bentuk kertas beserta QR Code (Quick Responde Code). Sistem pengisian akan mengalirkan bahan bakar sesuai dengan ketentuan jumlah liter pada token yang digunakan, seperti PLN (Perusahaan ListrikNegara) yang telah menerapkan sistem prabayar listrik menggunakan token yang dibeli melalui outlet token pulsa[7]. Penggunaan token rentan terhadap serangan keamanan, untuk itu kriptografi digunakan untuk menjaga keamanan data. Sistem ini menggunakan kriptografi hibrid yaitu gabungan kriptografi simetri dan kriptografi asimetri (hybrid cryptosystem). Kriptografi hibrid melakukan enkripsi secara berlapis. Hal ini secara teori akan membuat pemecahannya menjadi semakin kompleks. Token generator berbasis PC mengenkripsi
142
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
token menggunakan kriptografi hibrid yaitu algoritma RSA dan algoritma Transposition.
2. LANDASAN TEORI 2.1. Sistem Pembelian dan Pembayaran Bahan Bakar Kendaraan Di Indonesia sistem pembayaran pada pengisian bahan bakar kendaraan masih menggunakan pembayaran berupa uang tunai. Pengguna kendaraan melakukan antrian untuk giliran pengisian dan pembayaran tunai. Transaksi pembayaran dan pengisian dilakukan secara full service atau dilayani penuh oleh petugas. Petugas menjadi kasir saat transaksi pembayaran dilakukan, dan petugas yang melakukan pengisian bahan bakar pada setiap kendaraan. Berbeda dengan di negara maju seperti Amerika Serikat, Eropa, sistem pembayaran menggunakan mesin pembayaran otomatis dan pelayanan pengisian bahan bakar dilakukan secara self-service. Dimana tempat pengisian bahan bakar tidak lagi dijaga petugas, dan pengguna kendaraan dapat melakukan pengisian sendiri menggunakan voucher. Sistem prabayar voucher dan self service ini meningkatkan pendapatan perusahaan, menghemat biaya pengeluaran gaji petugas, dan meningkatkan efisiensi waktu saat transaksi[4]. 2.2. Algoritma Kriptografi Hibrid Algoritma kriptografi hibrid (hybrid cryptosystem) merupakan gabungan antara kriptografi simetris dan kriptografi asimetris. Permasalahan yang menarik pada bidang keamanan informasi adalah adanya trade off antara kecepatan dengan kenyamanan. Salah satu contohnya adalah bidang kriptografi. Tetapi hal ini dapat diatasi dengan penggunaan kriptografi hibrid. Kriptografi hibrid sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma kriptrografi simetrik dan kemudahan transfer kunci menggunakan algoritma kriptografi asimetrik. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan[5] 2.3.Algoritma RSA Algoritma RSA (Rivest-ShamirAdleman)adalah sebuah algoritma berdasarkan skema public-key cryptography, diperkenalkan oleh tiga peneliti MIT (Massachussets Institute of Technology),
ISBN: 979-26-0280-1
yaitu (R)on Rivest, Adi (S)hamir dan Len (A)dleman [13]. Algoritma RSA merupakan teknik kriptografi dengan memanfaatkan dua bilangan prima[8]. Dari kedua bilangan prima tersebut dapat diperoleh kunci enkripsi dan kunci dekripsi, kunci enkripsi tidak dirahasiakan dan diketahui umum (public key), namun kunci untuk dekripsi bersifat rahasia (private key). Kunci dekripsi dibangkitkan dari beberapa buah bilangan prima bersama-sama dengan kunci enkripsi. Untuk menemukan kunci dekripsi, maka harus memfaktorkan suatu bilangan non prima menjadi faktor primanya. Kenyataannya, memfaktorkan suatu bilangan non prima menjadi faktor prima bukanlah pekerjaan yang mudah. Belum ada algoritma yang efisien ditemukan untuk pemfaktoran itu. Semakin besar bilangan non-primanya tentu semakin sulit pemfaktorannya. Semakin sulit pemfaktorannya, maka semakin kuat algoritma RSA tersebut[9]. Algoritma RSA terdiri dari tiga tahap, yaitu pembangkitan pasangan kunci, enkripsi dan dekripsi[8]: 1. Pembangkitan pasangan kunci Langkah-langkah untuk melakukan pembangkitan pasangan kunci adalah sebagai berikut: a. Pilih p dan q, adalah bilangan prima dan p≠q b. Hitung pembagi modolus c. Hitung ) d. Pilih kunci publik (public key), yaitu e, yang relatif prima terhadap m dan gunakan extended euclidean algorithm untuk mencari nilai e yang memenuhi gcd (e, m) = 1. e. Hitung kunci private (private key), yaitu d dengan persamaan Atau menggunakan persamaan (1) sehingga d dapat dihitung dengan cara yang sederhana dengan persamaan berikut:
d
1 km e
(2) Dengan nilai k adalah (0, 1, 2, 3 , ..) Hasil dari pembangkitan kunci adalah kunci 142ublic (e, n) dan kunci privat (d, n).
143
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
2.5. Quick Response Code (QR) 2. Enkripsi Proses enkripsi dilakukan dengan menggunakan persamaan sebagai berikut: a. Ambil kunci e dan modulus n b. Nyatakan pesan menjadi blok-blok plaintext: r1, r2, r3,… sedemikian sehingga setiap blok mempresentasikan nilai di dalam selang himpunan [0, n – 1] c. Setiap blok ridienkripsi menjadi blok ci dengan rumus 3. Deskripsi Proses dekripsi dilakukan menggunakan persamaan berikut: (3) Dalam implementasi yang sebenarnya, nilai p dan q disarankan nilai yang sangat besar (100 angka) agar memfaktorkan n menjadi faktor primanya menjadi sangat sukar bahkan hampir tidak mungkin dapat dilakukan. Kekuatan algoritma RSA itu bergantung pada tingkat kesulitan memfaktor n menjadi dua bilangan prima[8]. 2.4.Algoritma Transposisi Cara kerja algoritma ini ialah dengan mengubah susunan atau urutan karakterkarakter pada pesan. Pada umumnya hal ini dilakukan dengan cara menuliskan plaintext dengan pola tertentu, kemudian dibaca menggunakan pola atau aturan yang berbeda sehingga dihasilkan suatu ciphertext[11]. Algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Salah satu metode algoritma transposisi yaitu metode transposisi kolom (Columnar Transpositon), dimana plaintextdijadikan dalam beberapa baris, kemudian chipertext diperoleh dengan cara membacanya kolom per kolom (karakter)[12]. Langkah-langkah untuk melakukan Columnar Tranposition adalah sebagai berikut[9] a. Hitung panjang karakter p b. Pilih nilai k, k adalah bilangat bulat positif, dimana k ≠ 0 dan k < p, k merupakan private key untuk enkripsi dan deskripsi c. Hitung nilai kolom x = p div k dan baris y = k, dimana p mod k = 0
ISBN: 979-26-0280-1
Quick Response Code merupakan gambar dua dimensi yang memiliki kemampuan untuk menyimpan data[13]. QR Code biasa digunakan untuk menyimpan data berupa teks, baik itu numerik, alfanumerik, maupun kode biner. 2.6. Sensor Waterflow Sensor aliran air (waterflow) terdiri dari tubuh plastik katup, rotor air, dan sensor halleffect[14]. Ketika air mengalir melalui rotor, rotor akan berputar. Perubahan kecepatan putaran motor bergantung pada kecepatan aliran air.
3.
METODE
Pada gambar di bawah dapat dilihat blok diagram dari sistem yang dibuat:
Gambar 1. Blok Diagram Sistem Kondisi awal pompa dalam keadaan tidak aktif, kemudian input dapat dilakukan melalui Webcam atau Keypad dengan interface user berupa LCD, kode token yang diinputkan akan diproses oleh mikrokontroler, jika kunci kode token sama dengan kunci sistem, maka sistem akan aktif mengeluarkan bensin sesuai dengan jenis kode token yang digunakan, untuk menghitung jumlah keluaran aliran digunakan sensor waterflow, dan buzzer sebagai indikator saat sistem berjalan.
4.
HASIL DAN PEMBAHASAN
4.1 Pengujian QR Code Menggunakan WebCam Pada pengujian scan QR Code menggunakan WebCam dilakukan 13 kali pengujian dengan posisi QR Code yang berbeda-beda seperti pada Tabel.1.
144
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
Tabel.1 Pengujian Perhitungan Jarak Antar Dua Lokasi No 1
QR Code
Token 32766 88307 42265 79842
9
56006 86676 97061 67824
Terbaca
Ket. Terbaca Posisi : 15 cm dari WebCam 10
Tidak Terbaca
Posisi : Atas kiri 2
31350 04555 71788 05727
Terbaca
Posisi : 16 cm dari WebCam 11
Posisi : Atas kanan 3
38350 87955 46781 02627
29160 75947 45413 84832
Terbaca
56006 86676 97061 67824
Terbaca
97000 37876 58062 42024
Terbaca
Terbaca
Posisi : Rotasi 90o 12
Posisi : Tengah 4
49656 36065 37643 70123
Terbaca
Posisi : Rotasi 180o Posisi : Bawah kiri 5
13 80644 07517 21870 01230
Terbaca
Posisi : Rotasi 45o Posisi : Bawah kanan 6
Tidak Terbaca
Posisi : 4 cm dari WebCam 7
91164 71747 50414 34932
Terbaca
Posisi : 5 cm dari WebCam 8
49656 36065 37643 70123
Posisi : 10 cm dari WebCam
ISBN: 979-26-0280-1
Terbaca
4.2. Pengujian Pembangkitan Kode Token Data waktu sangat berperan dalam menghasilkan kode token yang berbeda setiap kali kode token. berikut dilakukan pembangkitan kode token pada waktu yang berbeda seperti yang terlihat pada Tabel.2. Tabel.2 Pengujian Pembangkitan Kode Token No 1
Rp 5000
Tanggal 13-05-2015
Waktu 01:59:32
2
5000
13-05-2015
01:59:34
3
5000
13-05-2015
01:59:35
4
5000
13-05-2015
01:59:36
5
5000
13-05-2015
01:59:37
6
5000
13-05-2015
01:59:38
7
5000
13-05-2015
01:59:40
8
5000
13-05-2015
01:59:41
9
5000
13-05-2015
01:59:42
10
5000
13-05-2015
01:59:43
Token 335326968720073 25034 395317142710200 24226 234434183833532 28305 748790631053046 12497 568595262812426 68876 535853844303515 31414 081884119634463 01928 135609231401115 89106 865333458721073 68834 994614687030777 93487
145
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
4.3. Pengujian Dekripsi Token Pada Arduino Uno Tabel.3 Pengujian Dekripsi Kode Token No
1 2 3 4 5 6 7 8 9 10
Token Sebelum Dekripsi 3153609627342 0786826 4253324987700 7517234 3153749627342 0386826 6785765428514 2580376 2344751838335 3588305 5065492203616 2365870 2653457487550 7294134 3285118328424 2771176 9065906903206 2034570 0318935196944 6503228
Token Setelah Dekripsi
Kunci
Ket
1913419019809 4192420 2713219027819 2272220 1913419019839 4192420 3213719032829 7322720 5013519050829 5502520 7413919074839 9742920 3713219037849 2372220 6213719062849 7622720 2413919024859 9242920 4513019045859 0452020
22893
Benar
22893
Benar
22893
Benar
22893
Benar
22893
Benar
22893
Benar
22893
Benar
22893
Benar
22893
Benar
22893
Benar
Setelah dilakukan 10 kali penginputan kode token yang dihasilkan dari aplikasi token generator melalui keypad, didapatkan presentase keberhasilan 100% dimana semua token berhasil didekripsikan dengan benar dengan kunci rahasia yang sama dengan token decryptor seperti yang terlihat pada Tabel. 3. Tabel.4 Keluaran Jumlah Liter Bensin Kode Token Rp 5.000 No
Jumlah liter terbaca sensor waterflow (ml)
Jumla h liter seharu snya (ml)
Selisih gelas ukur (ml)
685 685 685 685
Juml ah liter denga n gelas ukur (ml) 690 670 675 650
1 2 3 4
475,08 461,76 463,98 446,19
5 15 10 35
0,73 % 2,19 % 1,46 % 5,11 %
5 6 7 8 9 10
455,07
685
660
25
3,65 %
462,77 477,13 476,51 448,20 460,28 Total
685 685 685 685 685
670 690 690 650 660 6705
15 5 5 35 25 175
670,5
17,5
2,19 % 0,73 % 0,73 % 5,11 % 3,65 % 25,55 % 2,55 %
Rata-rata
ISBN: 979-26-0280-1
Dari Tabel. 4 didapatkan rata-rata error saat pengisian untuk kode token Rp. 5.000 sebesar 2,55 %. 4.5. Pendugaan Parameter Dari 10 pengujian yang dilakukan untuk masing-masing nilai rupiah diperoleh hasil yang bervariasi atau beragam, maka dapat dihitung selang kepercayaan rata-rata keluaran jumlah liter berdasarkan nilai rupiah tertentu menggunakan rumus selang kepercayaan[36]. . ̅ ̅ √
√
(4) Dengan ̅ adalah rata-rata, s adalah simpangan baku, t adalah nilai statistika uji untuk n-1, µ adalah nilai interval dugaan dan n adalah banyak sampel. Pada sistem ini diyakini 95 % selang kepercayaan bahwa rata-rata keluaran bahan bakar berdasarkan nilai rupiah berikut: Rp. 5.000 berada pada interval 659,28 ml <µ< 681,72 ml Rp. 10.000 berada pada interval 1405,2 ml <µ< 1479 ml Rp. 15.000 berada pada interval 2094,67 ml <µ< 2169,33 ml Rp. 20.000 berada pada interval 2825 ml <µ< 2939 ml
Error
Gambar 2. Presentase kesalahan output Sistem memiliki error keluaran jumlah liter bahan bakar berdasarkan nilai rupiah dengan rata-rata error sebesar 3,80 % seperti yang terlihat pada Tabel 5 berikut Tabel.5 Rata-Rata Error Keluaran Sistem No
Nilai Rupiah
1 2
Rp. 5.000 Rp. 10.000
Presentase Error Keluaran Sistem (%) 2,55 % 3,71 %
3 4
Rp. 15.000 Rp. 20.000
3,74 % 5,18 %
Rata-Rata
3,80 %
146
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
5. KESIMPULAN Berdasarkan penelitian yang telah dilakukan maka dapat diambil kesimpulan sebagai berikut: 1. Sistem prabayar pengisian bahan bakar menggunakan token atau QR code berbasis mikrokontroler telah berhasil dibuat dengan menerapkan algoritma kriptografi hibrid yang dapat mengenkripsi dan mendekripsikan kode token dengan kunci rahasia. 2. Kode token yang dibangkitkan adalah 20 digit angka yang berbeda dan unik selama waktu pembangkitan dilakukan pada waktu yang berbeda. 3. Jarak efektif untuk pembacaan QR Code adalah jarak minimal 5 cm sampai dengan jarak maksimal 15 cm. 4. Presentase rata-rata error keluaran jumlah liter sistem secara keseluruhan berkisar antara 2,11 % - 5,18 %, dengan rata-rata error keluaran sistem adalah 3,80 %. 5. Presentase keberhasilan sistem berdasarkan selang kepercayaan secara keseluruhan adalah 95%. 6. Pada algoritma RSA memfaktorkan suatu bilangan non prima menjadi faktor prima semakin sulit dilakukan jika nilai n semakin besar, nilai n ditentukan dari perkalian dua bilangan prima p dan q.
6. DAFTAR PUSTAKA [1] Susanto, Heri. 2010. Apa Beda SPBU Pertamina dengan Shell. URL: http://bisnis.news.viva.co.id/news/read/1 93389-apa-beda-spbu-pertaminadengan-shell. Diakses tanggal 30 Maret 2015. [2] Tribunjakarta. 2014. Hati-hati SPBU Nakal Kurangi Takaran. URL: http://www.tribunnews.com/metropolita n/2014/04/21/hati-hati-spbu-nakalkurangi-takaran. Diakses tanggal 30 Maret 2015.
ISBN: 979-26-0280-1
[3] Aktual. 2015. Pertamina Diminta Tindak tegas Petugas SPBU Nakal. URL: http://www.aktual.co/energi/pertaminadiminta-tindak-tegas-petugas-spbunakal. Diakses tanggal 30 Maret 2015. [4] Hamaker, Sarah. 2011. Self-Serve Evolution. URL: http://www.nacsonline.com/Magazine/P astIssues/2011/October2011/Pages/Feat ure8.aspx. Diakses tanggal 27 Februari 2015. [5] URL: www.hkd.mlit.go.jp, Tanpa Tahun. How to use gas stations. Diakses tanggal 30 Maret 2015. [6] Mesya, A.A. 2015. Rancang Bangun Sistem Kontrol Pengisian Bahan Bakar Kios Eceran Berbasis Sensor Waterflow Dengan Metode Kendali PID. Skripsi S1 “tidak diterbitkan. Fakultas Teknologi Informasi Universitas Andalas. [7] PLN. 2011. Listrik Pintar. URL: http://www.pln.co.id/blog/listrikprabayar. Diakses tanggal 27 Februari 2015. [8] Chandra, Wico. 2010. Kriptografi dan Algoritma RSA. Sekolah Teknik Elektro dan InformatikaITB. Bandung. [9] Stallings, William. 2011.Cryptography and Network Principle & Practice. Fitfh Editon. New Jersey: Prentice Hall. [10]Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika [11]Fauziah, Yuli. 2008. Pengamanan Pesan dalam Editor TeksMenggunakan Hybridcryptosystem. UPN Veteran Yoyakarta. [12] Wahana Komputer. 2010. The Best Encryption Tools. Jakarta: PT Elex Media Komputindo. 13] Nugraha, M.P, Munir, Rinaldi. 2011. Pengembangan Aplikasi QR Code Generator danQR Code Reader dari Data Berbentuk Image. ITB. Bandung. [14] Hobbytronics, Tanpa Tahun. Hall Effect Water Flow Meter / Sensor. URL: http://www.hobbytronics.co.uk/yf-s201water-flow-meter. Diakses tanggal 13 Mei 2015.