BAB II LANDASAN TEOR
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.3 Implementasi Sandi Vigenere dan QR Code
4.3.1 Implementasi sandi vigenere 95 karakter dan qr code
Pada implementasi sandi vigenere dengan 95 karakter dan qr code ini dilakukan pada saat input data dan edit data di admin stnk. Data yang digunakan dalam qr code berupa Nomor Polisi, Nama, Alamat, Nomor Rangka dan Nomor Mesin.
Formatnya sebagai berikut :
No_Polisi;Nama;Alamat;No_Rangka;No_Mesin
Fungsi dari ; (titik koma) adalah untuk memudahkan melakukan pemotongan data sesuai yang dibutuhkan sistem. Format ini juga sebagai Plaintext atau pesan untuk enkripsi sandi vigenere. Dan key atau kata kunci pada contoh ini menggunakan kata anjar.
Pesan = BK4567CBA;SETYADI NUGRAHA;JL. MEGAWATI GG. DAMAI
NO. 15, KEL. PASAR MERAH TIMUR, MEDAN;MH314D0029K305890;14D- 306160
Kunci = anjar
Enkripsi = BX#5-7PKAbSR2YRDV)N!G4JHR;WU.;MRPA#A6R XG_)DRMNR
4O_)1,,-TE2.-YA9A4)MVRNQ IZ3R{ ZNDRN|VH*1'M0'2,T3'5+(0b1'M-*0) 6'
Kemudian, data hasil enkripsi tersebut di tambahkan kata GcP di awal dan PcG di akhir. Fungsi dari kata ini adalah untuk pengecekan data valid pada saat di
scan oleh aplikasi android. Dan juga untuk menyulitkan pemecahan sandi. Nilai = GcPBX#5-7PKAbSR2YRDV)N!G4JHR;WU.;MRPA#A6R XG_)DRMNR 4O_)1,,-TE2.-YA9A4)MVRNQ IZ3R{
ZNDRN|VH*1'M0'2,T3'5+(0b1'M-*0) 6'PcG
Lalu data nilai di atas di ubah kembali dengan bantuan library phpqrcode untuk menjadikan sebuah qr code. Dengan correction level M dengan jumlah perkiraan koreksi 15 % dan matrix point size 8. Lihat gambar 4.21.
Scan qr code dilakukan di perangkat mobil android dengan bantuan library
Zxing, data hasil scan qr code yang masih berupa enkripsi sandi vigenere kemudian dilakukan tahap validasi GcP di awal dan PcG (lihat gambar 4.22) di akhir apabila valid, validasi di awal dan di akhir di hilangkan dan hanya berupa data enkripsi sandi
vigenere saja. Data inilah yang akan menjadi pesan yang akan di deskripsikan oleh perangkat mobile dan ditampilkan.
Gambar 4.22 QR Code tidak valid
Enkripsi = BX#5-7PKAbSR2YRDV)N!G4JHR;WU.;MRPA#A6R XG_)DRMNR
4O_)1,,-TE2.-YA9A4)MVRNQ IZ3R{ ZNDRN|VH*1'M0'2,T3'5+(0b1'M-*0) 6'
Kata kunci deskripsi harus sama dengan kata kunci saat enkripsi. Apabila tidak sama maka pesan tidak akan bisa di baca oleh pengguna.
Pesan = BX#5-7PKAbSR2YRDV)N!G4JHR;WU.;MRPA#A6R XG_)DRMNR
4O_)1,,-TE2.-YA9A4)MVRNQ IZ3R{ ZNDRN|VH*1'M0'2,T3'5+(0b1'M-*0) 6'
Kunci = anjar
Dekripsi = BK4567CBA;SETYADI NUGRAHA;JL. MEGAWATI GG. DAMAI
NO. 15, KEL. PASAR MERAH TIMUR, MEDAN;MH314D0029K305890;14D- 306160
Kemudian dari data inilah, lalu di proses menjadi data yang mudah di baca oleh pengguna. Dapat dilihat pada gambar 4.17. Proses enkripsi data vigenere dan qr
code dan sebaliknya dilakukan di balik layar, pengguna hanya dapat melihat hasil dari proses tersebut.
4.3.2 Implementasi sandi vigenere 63 karakter pada url
Implementasi sandi vigenere dengan 63 karakter ini dilakukan hanya URL (Uniform
Resource Locator) dengan metode GET. Karena di dalam sistem banyak yang menggunakan metode get ini. Metode get ini kurang aman karena nilai variabel ditampilkan di URL sehingga dapat dilihat siapa saja. Contohnya dapat dilihat pada gambar 4.23.
Gambar 4.23 Contoh url dengan metode get
Maka untuk melindungi data tersebut dilakukanlah enkripsi dengan sandi
vigenere 63 karakter. Sandi vigenere 63 karakter di pilih karena pada saat implementasi sandi vigenere 95 ada beberapa karakter yang merupakan bagian url dan tidak dapat digunakan pada url tersebut. Contohnya karakter / (garis miring), spasi dan masih banyak lagi. Karakter ASCII yang digunakan dapat dilihat pada tabel 3.2.
URL yang di enkripsi hanya bagian yang menampilkan data saja. Lihat gambar 4.24
Gambar 4.24 url yang di enkripsi
Ini tidak berbeda jauh dengan sandi vigenere dengan 95 karakter, hanya saja jumlah hurufnya saja yang berbeda. Pada Kunci tidak boleh memiliki spasi.
Pesan = op=lihat&NoPolisi=N3741QO Kunci = anjar
Gambar 4.25 url yang telah enkripsi
Pesan Enkripsi = oCilzhnC&4o2xlzsviNj7g=Q5
Kunci = anjar
Dekripsi = op=lihat&NoPolisi=N3741QO
Deskripsi tidak di tampilkan di layar tetapi langsung ditampilkan halaman yang diakses. Seperti gambar 4.26 yaitu pengguna mengakses halaman
admin_view.php dengan opsi lihat data dengan No. polisi N3741QO.
Gambar 4.26 Hasil url yang di dekripsi
4.3.3 Implementasi sandi vigenere 95 karakter pada json
Pada implementasi di JSON (JavaScript Object Notation) ini digunakan untuk pertukaran data dari server ke perangkat mobile. Pertukaran data dengan json ini
relative ringan dan mudah. Pada saat melakukan scan pada perangkat mobile dan melakukan cek database, No. Polisi, Nama, No. Telepon, Alamat akan di kirim ke perangkat mobile. Sedangkan pada saat melakukan cek data dengan input manual,
baik input no. polisi dan no. mesin server akan mengirimkan No. Polisi, Nama, Alamat, No. Rangka, No. Mesin, Merk, Jenis, Type, Warna, Tgl Berlaku, Nama Pelapor, No. Telepon pada perangkat mobile.
Contoh Data
No. Polisi = BK4567CBA,
Nama = SETYADI NUGRAHA,
Alamat = JL. MEGAWATI GG. DAMAI NO. 15, KEL. PASAR MERAH TIMUR,MEDAN, No. Rangka = MH314D0029K305890, No. Mesin = 14D-306160, Merk = YAMAHA, Jenis = SPD MOTOR, Type = 3C1(VIXION/FZ150), Warna = MERAH, Nama Pelapor= No. Telepon = Tgl. Berlaku = 15-05-2019.
Nama pelapor dan Nomor Telepon akan terisi jika kendaraan masuk dalam pelaporan kehilangan. Jika tidak, data akan kosong.
Kemudian data tersebut di encode ke JSON
{"cek":[{"NoPolisi":"BK4567CBA","Nama":"SETYADI NUGRAHA","Alamat":"JL. MEGAWATI GG. DAMAI NO. 15, KEL. PASAR MERAH TIMUR,
MEDAN","NoRangka":"MH314D0029K305890","NoMesin":"14D- 306160","Merk":"YAMAHA","Jenis":"SPD
MOTOR","Type":"3C1(VIXION\/FZ150)","Warna":"MERAH","NamaPelapor":"","N oTelepon":"","TglBerlaku":"15-05-2019","data1":"0"}],"sukses":"1"}
Dimana cek merupakan objek dan di dalam kurung kurawal ([ ]) merupakan data
array dari cek. Data tersebut dimasukkan ke dalam array ini. Data1 dengan nilai 0 adalah untuk memberi nilai bahwa data tersebut tidak dalam pelaporan kehilangan. Jika bernilai 1 data masuk dalam pelaporan. Sedangkan sukses memiliki nilai 1 untuk menunjukkan data ada di database. Kemudian data format json ini dilakukan enkripsi dengan menggunakan sandi vigenere 95 karakter lalu di kirim ke perangkat mobile.
Pesan ={"cek":[{"NoPolisi":"BK4567CBA","Nama":"SETYADI
NUGRAHA","Alamat":"JL. MEGAWATI GG. DAMAI NO. 15, KEL. PASAR MERAH TIMUR, MEDAN","NoRangka":"MH314D0029K305890","NoMesin":"14D- 306160","Merk":"YAMAHA","Jenis":"SPD MOTOR","Type":"3C1(VIXION\/FZ150)","Warna":"MERAH","NamaPelapor":"","N oTelepon":"","TglBerlaku":"15-05-2019","data1":"0"}],"sukses":"1"} Kunci = anjar Enkripsi = {/leB"{~{=NBYoCiFr"a"OT4,6*LBR"]+Nrmn+:=SR2YRDV)N!G4JHR"]+ACazjt=:/ SL} ZNGRWN2I;GT[ UAZJI;N1[ (5])KVL_)PRSN0 3E4JH;TVVU8,-
VEUA0+,=NB0aEgxj"a"ZQ3(4Q90)9X"0,8,9"{"0xMvsvw"a"$#D|3#%1- 0/?"3eEt"a"!JMRHN+,=JrwiJ"{+S6D-VO
O4+,=TLye=:/"C((8RXZO0a/WZ$$0^"]+WrrAj"a"ZNRRH/?"4azjPvlnyoI"{+"{"0xTv lryoE"{+"{"6plSeEuaBu/]"(5^95|2# 9=,/maKa$+:=0/h]{"FDkJeF+:=1/h
Pada perangkat mobile data ini lalu di deskripsi kembali dengan sandi vigenere 95 karakter harus dengan kunci yang sama. Jika tidak, maka hasil deskripsi akan berbeda dengan data asli. Kemudian dilakukan parsing data untuk memisahkan json format menjadi data yang diperlukan. Kemudian data di urai dan di tampilkan ke layar pengguna. Dapat dilihat pada gambar 4.19