Implementasi QR Code Dan Algoritma Vigenere Pada Sistem Laporan Kehilangan Kendaraan Bermotor

(1)

IMPLEMENTASI

QR CODE

DAN ALGORITMA

VIGENERE

PADA SISTEM LAPORAN KEHILANGAN

KENDARAAN BERMOTOR

SKRIPSI

GINANJAR CIPTO PRASETYO

091402008

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

IMPLEMENTASI

QR CODE

DAN ALGORITMA

VIGENERE

PADA

SISTEM LAPORAN KEHILANGAN KENDARAAN BERMOTOR

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh

ijazah Sarjana Teknologi Informasi

GINANJAR CIPTO PRASETYO

091402008

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(3)

PERSETUJUAN

Judul : IMPLEMENTASI QR CODE DAN ALGORITMA

VIGENERE PADA SISTEM LAPORAN

KEHILANGAN KENDARAAN BERMOTOR

Kategori : SKRIPSI

Nama : GINANJAR CIPTO PRASETYO

Nomor Induk Mahasiswa : 091402008

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dani Gunawan, ST.MT Romi Fadillah Rahmat, B.Comp.Sc.M.Sc

Diketahui/disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

M. Anggia Muchtar, ST.MM.IT NIP. 19800110 200801 1 010


(4)

PERNYATAAN

IMPLEMENTASI QR CODE DAN ALGORITMA VIGENERE PADA SISTEM LAPORAN KEHILANGAN KENDARAAN BERMOTOR

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 9 Oktober 2014

Ginanjar Cipto Prasetyo 091402008


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT yang maha pengasih lagi maha penyayang. Karena berkat rahmat dan hidayat-Nya, penulis dapat menyelesaikan skripsi ini. Serta tidak lupa Salawat beriring salam penulis sampaikan kepada junjungan kita, Nabi Muhammad SAW.

Dalam penyelesaian skripsi ini, banyak pihak yang telah membantu baik moril dan materil. Untuk itu penulis sampaikan ucapan terima kasih dan penghargaan kepada :

1. Kedua orang tua, Kapten Inf. Agus Salam dan Indah Viatiningsih. Yang tidak henti-hentinya memberi doa, dorongan serta motivasi kepada penulis untuk menyelesaikan skripsi ini.

2. Bapak Romi Fadillah Rahmat, B.Comp.Sc.M.Sc dan Bapak Dani Gunawan, ST.MT. selaku dosen pembimbing yang dengan sabar membimbing, meluangkan waktu, tenaga, pikiran serta memberi saran dan masukan kepada penulis.

3. Ibu Sarah Purnamawati, ST, M.Sc dan Bapak Baihaqi Siregar, S.Si.MT selaku dosen penguji dan pembanding yang telah meluangkan waktu serta memberi kritik dan saran untuk menyelesaikan skripsi ini.

4. Bapak Ipda. Pol. Tuchfat lubis, Panit Laka Polsek Patumbak dan Bapak Iptu. Pol. Justar Puba beserta Staf di Dirlantas Poldasu yang telah banyak memberi masukan dan bantuan untuk skripsi ini. Serta kepada seluruh Staf Renmin Dirlantas Poldasu, Staf Setum Poldasu dan Staf Samsat Sumatera Utara yang tidak dapat saya sebutkan satu persatu.

5. Semua dosen, staf dan pegawai Fakultas Ilmu Komputer dan Teknologi Informasi Khususnya Program Studi (S1) Teknologi Informasi.

6. Abangda Heru Ramadhan Hareva, S.Pd, yang banyak memberi bantuan serta motivasi kepada penulis.

7. Teman-teman penulis, khususnya mahasiswa di Teknologi Informasi USU angkatan 2009 yang selalu memberi dukungan dan bantuan.

Kepada semua pihak yang membantu dan mohon maaf jika penulis tidak dapat menyebutnya satu persatu. Semoga Allah SWT membalas semua kebaikan dan memberikan rezeki yang berlipat. Amin.


(6)

ABSTRAK

Kurangnya bukti-bukti dan informasi mengenai data pencurian kendaraan bermotor menjadi kendala di dalam pengungkapan kasus. Pengungkapan kasus yang terlalu lama dan banyaknya kasus yang tidak dapat di ungkap menjadikan masyarakat pesimis akan kinerja aparat kepolisian. Oleh karena itu dibutuhkan suatu sistem yang saling terintegrasi serta dapat melakukan pengecekan kendaraan secara mobile dan efisien. Dengan mengimplementasikan QR Code dan algoritma Vigenere untuk media penyampaian informasi secara cepat serta untuk menjaga kerahasiaan data pemilik kendaraan bermotor. Pada penelitian ini juga menggunakan Android sebagai media yang dapat digunakan secara mobile. Berdasarkan pengujian beberapa data, aplikasi

mobile akan menampilkan layar merah pada data yang dilaporkan hilang dan kerahasiaan serta otentikasi data dengan sistem database untuk mencari bukti-bukti dan informasi kendaraan dapat lebih cepat.


(7)

IMPLEMENTATION QR CODE AND VIGENERE ALGORITM REPORT OF LOSS VEHICLE SYSTEM

ABSTRACT

The lack of evidence and information about the data theft of motor vehicles become an obstacle in the case of disclosure. Disclosure of cases that are too long and the number of cases that can not be said to make the community pessimistic police performance. Therefore we need an integrated and interconnected system can check the mobile and efficient vehicles. By implementing QR Code and Vigenere algorithm for medium to deliver information quickly and to maintain data confidentiality vehicle owners. In this study also uses Android as a medium that can be used in mobile. Based on some test data, the mobile application will display a red screen on data reported missing and confidentiality and authentication of data with database systems to seek evidence and vehicle information can be more quickly.


(8)

DAFTAR ISI

Halaman

PERSETUJUAN ii

PERNYATAAN iii

PENGHARGAAN iv

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL x

DAFTAR GAMBAR xi

Bab 1 PENDAHULUAN

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penelitian 3

1.4 Batasan Masalah atau Ruang Lingkup Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2 LANDASAN TEORI

2.1 Quick Response Code 6

2.1.1 Anatomi qr code 7

2.1.2 Versi qr code 8

2.1.3 Mengoreksi ksesalahan qr code 8

2.1.4 Manfaat qr code 9

2.1.5 Macam-macam qr code 10

2.2 Sandi Vigenere 12

2.2.1 Cara kerja sandi vigenere 13

2.2.2 Sandi vigenere dengan 95 karakter 15 2.2.3 Syarat Algoritma Kriptografi yang aman 16 2.2.4 Aspek Keamanan data informasi 17

2.3 Android 17

2.3.1 Versi-versi android 18

2.3.2 Arsitektur android 18

2.3.3 Dasar aplikasi android 20

2.3.4 Komponen aplikasi android 20


(9)

2.4 Library PHP Qr Code 21

2.5 Library Zxing 22

2.6 Undang-Undang 22

2.6.1 Fungsi peraturan perundang-undangan 22 2.6.2 Undang-undang no.22 tahun 2009 23 2.7 Peraturan Pemerintah Pengganti Undang-Undang 23

2.7.1 Perpu no.80 tahun 2012 23

2.8 Penelitian Terdahulu 23

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Masalah 25

3.2 Analisis Data 25

3.3 Perancangan Sistem 26

3.3.1 Perancangan prosudural sistem 26 3.3.2 Perancangan sandi vigenere pada sistem 26

3.3.3 Arsitektur sistem 29

3.3.4 Flowchart 29

3.3.5 Diagram use case 33

3.3.6 Perancangan antarmuka sistem 37

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem 44

4.2 Implementasi Perancangan Antarmuka 45

4.2.1 Tampilan halaman login 45

4.2.2 Tampilan halaman menu utama admin STNK 45 4.2.3 Tampilan halaman input data admin STNK 46 4.2.4 Tampilan halaman daftar data admin STNK 46 4.2.5 Tampilan halaman edit data admin STNK 47 4.2.6 Tampilan cetak qr code admin STNK 47 4.2.7 Tampilan halaman utama admin laporan 49 4.2.8 Tampilan halaman data laporan admin laporan 49 4.2.9 Tampilan halaman input data admin laporan 50 4.2.10 Tampilan halaman edit data admin laporan 51 4.2.11 Tampilan halaman lihat data admin laporan 52 4.2.12 Tampilan QR Code pada plat kendaraan 53 4.2.13 Tampilan aplikasi mobile user 53 4.3 Implementasi Sandi Vigenere dan QR Code 57 4.3.1 Implementasi sandi vigenere 95 karakter dan qr code 57 4.3.2 Implementasi sandi vigenere 63 karakter pada url 60 4.3.1 Implementasi sandi enkripsi vigenere 95 karakter pada json 61

4.4 Pengujian Sistem 63

4.4.1 Rencana pengujian sistem 63


(10)

BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan 66

5.2 Saran 67

DAFTAR PUSTAKA 68


(11)

DAFTAR TABEL

Halaman

Tabel 2.1 Level Koreksi 8

Tabel 2.2 Contoh gambar tabel Vigenere 14

Tabel 2.3 Karakter ASCII yang digunakan 16

Tabel 2.4 Versi Android 18

Tabel 2.5 Penelitian terdahulu yang berkaitan dengan sistem 24 Tabel 3.1 Perancangan sandi vigenere dengan 95 karakter 26 Tabel 3.2 Perancangan sandi vigenere dengan 63 karakter 28

Tabel 3.3 Use case input data 34

Tabel 3.4 Use case edit data 34

Tabel 3.5 Use case hapus data 35

Tabel 3.6 Use case cetak qr code 35

Tabel 3.7 Use case login 36

Tabel 3.8 Use case user scan qr code 36

Tabel 3.9 Use case user input 36

Tabel 4.1 Rencana pengujian sistem 63

Tabel 4.2 Hasil pengujian sistem 64


(12)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh QR Code “Saya anak USU” 6

Gambar 2.2 Anatomi QR Code 7

Gambar 2.3 Versi QR Code 8

Gambar 2.4 Contoh QR Code Model 1 10

Gambar 2.5 Contoh QR Code Model 2 10

Gambar 2.6 Contoh Micro QR Code 11

Gambar 2.7 Contoh iQR Code 11

Gambar 2.8 Contoh LogoQ 12

Gambar 3.1 Arsitektur sistem dasar 29

Gambar 3.2 Flowchart Scan QR Code 30

Gambar 3.3 Flowchart input pada aplikasi mobile 31 Gambar 3.4 Flowchart input data pada Admin STNK 32 Gambar 3.5 Flowchart input data pada admin Laporan kehilangan 32

Gambar 3.6 Diagram use case 33

Gambar 3.7 Rancangan halaman Login 37

Gambar 3.8 Rancangan halaman menu utama admin STNK 38 Gambar 3.9 Rancangan halaman Input data Admin STNK 38 Gambar 3.10 Rancangan halaman daftar data kendaraan admin STNK 39 Gambar 3.11 Rancangan halaman edit data admin STNK 39 Gambar 3.12 Rancangan halaman cetak qr code admin STNK 40 Gambar 3.13 Rancangan halaman menu utama admin Laporan 40 Gambar 3.14 Rancangan halaman input laporan admin laporan 41 Gambar 3.15 Rancangan halaman data laporan admin laporan 41 Gambar 3.16 Rancangan halaman edit data kehilangan admin laporan 42 Gambar 3.17 Rancangan halaman Input admin laporan 42 Gambar 3.18 Rancangan Aplikasi mobile User 43 Gambar 3.19 Rancangan Plat kendaraan dengan qr code 43

Gambar 4.1 Tampilan halaman login 45

Gambar 4.2 Tampilan halaman utama admin STNK 46 Gambar 4.3 Tampilan halaman input data admin STNK 46 Gambar 4.4 Tampilan halaman daftar data admin STNK 47 Gambar 4.5 Tampilan halaman edit data admin STNK 47 Gambar 4.6 Tampilan halaman cetak qr code admin stnk 48 Gambar 4.7 Tampilan hasil cetak qr code admin STNK 48 Gambar 4.8 Tampilan halaman utama admin laporan 49


(13)

Gambar 4.9 Tampilan data laporan admin laporan 50 Gambar 4.10 Tampilan input data admin laporan 50 Gambar 4.11 Tampilan edit data admin laporan 51 Gambar 4.12 Tampilan lihat data admin laporan 52 Gambar 4.13 Tampilan QR Code pada plat belakang kendaraan 53 Gambar 4.14 Tampilan QR Code pada plat depan kendaraan 53

Gambar 4.15 Tampilan awal aplikasi 54

Gambar 4.16 Library Zxing 54

Gambar 4.17 Tampilan hasil scan 55

Gambar 4.18 Tampilan cek data 56

Gambar 4.19 Tampilan hasil cek data 56

Gambar 4.20 Tampilan about dan keluar 57

Gambar 4.21 QR Code Enkripsi 58

Gambar 4.22 QR Code tidak valid 59

Gambar 4.23 Contoh url dengan metode get 60

Gambar 4.24 Url yang di enkripsi 60

Gambar 4.25 Url yang telah enkripsi 61


(14)

ABSTRAK

Kurangnya bukti-bukti dan informasi mengenai data pencurian kendaraan bermotor menjadi kendala di dalam pengungkapan kasus. Pengungkapan kasus yang terlalu lama dan banyaknya kasus yang tidak dapat di ungkap menjadikan masyarakat pesimis akan kinerja aparat kepolisian. Oleh karena itu dibutuhkan suatu sistem yang saling terintegrasi serta dapat melakukan pengecekan kendaraan secara mobile dan efisien. Dengan mengimplementasikan QR Code dan algoritma Vigenere untuk media penyampaian informasi secara cepat serta untuk menjaga kerahasiaan data pemilik kendaraan bermotor. Pada penelitian ini juga menggunakan Android sebagai media yang dapat digunakan secara mobile. Berdasarkan pengujian beberapa data, aplikasi

mobile akan menampilkan layar merah pada data yang dilaporkan hilang dan kerahasiaan serta otentikasi data dengan sistem database untuk mencari bukti-bukti dan informasi kendaraan dapat lebih cepat.


(15)

IMPLEMENTATION QR CODE AND VIGENERE ALGORITM REPORT OF LOSS VEHICLE SYSTEM

ABSTRACT

The lack of evidence and information about the data theft of motor vehicles become an obstacle in the case of disclosure. Disclosure of cases that are too long and the number of cases that can not be said to make the community pessimistic police performance. Therefore we need an integrated and interconnected system can check the mobile and efficient vehicles. By implementing QR Code and Vigenere algorithm for medium to deliver information quickly and to maintain data confidentiality vehicle owners. In this study also uses Android as a medium that can be used in mobile. Based on some test data, the mobile application will display a red screen on data reported missing and confidentiality and authentication of data with database systems to seek evidence and vehicle information can be more quickly.


(16)

BAB I PENDAHULUAN

1.1 Latar Belakang

Kasus pencurian kendaraan bermotor bukanlah kasus yang baru bagi Kepolisian Republik Indonesia (POLRI). Setiap harinya ada saja pelaporan pencurian kendaraan di seluruh kota di wilayah Republik Indonesia. Data kasus pencurian kendaraan bermotor di ibu kota negara, Jakarta tahun 2013 saja, terhitung dari Januari hingga Mei tercatat ada 2.023 unit dan pada tahun 2012 tercatat 4.602 unit, tahun 2011 tercatat 4.725 unit sedangkan pada tahun 2010 tercatat 9.112 unit sepeda motor (detik.com, 2013). Data ini hanya data kendaraan roda dua belum termasuk data dari kendaraan roda empat. Ini merupakan angka yang sangat fantastis masih di atas 1000 unit, walaupun pada tiap tahunnya terjadi penurunan. Sedangkan untuk wilayah Polresta (Kepolisian Resor Kota) Medan selama tahun 2013, kasus pencurian kendaraan bermotor tertinggi dari kasus kriminal lainnya. Tercatat 2469 kasus pencurian kendaraan bermotor. Di perkirakan perhari ada sekitar 6 atau 7 unit kendaraan bermotor yang dicuri di kota Medan. Dari kasus tersebut hanya sekitar 361 kasus atau 14,6 % yang dapat terungkap (starberita.com, 2013). Ada sekitar 80% kasus pencurian kendaraan tidak dapat di ungkap dan pencurian mobil yang paling sedikit di ungkap kasusnya, dikutip dari tempo.co (2013). Diduga, jumlah sebenarnya jauh lebih banyak, karena data di atas hanya data yang dilaporkan ke Polisi. Beberapa kasus pencurian kendaraan dapat terungkap apabila adanya operasi yang dilakukan, itu pun hanya sebagian kecil saja dan sebagian besarnya tidak terungkap dikarenakan polisi kurang memiliki cukup bukti dan kurang memaksimalkan teknologi informasi di instansinya.


(17)

Dikarenakan sebagian besar kendaraan bermotor melintas di jalan raya, Seharusnya Polisi melalui Polisi lalu lintas berhak menindak lanjuti kasus pencurian tersebut. Menurut amanah Undang-Undang Republik Indonesia No.22 Tahun 2009 tentang lalu lintas dan angkutan jalan. Kepolisian Negara Republik Indonesia berwenang mengurusi registrasi dan identifikasi kendaraan bermotor dan pengemudi, penegakan hukum, operasional manajemen dan rekayasa lalu lintas serta pendidikan berlalu lintas. Korps yang bertugas di tubuh Kepolisian Republik Indonesia yaitu Korps Polisi Lalu Lintas.

Beberapa hal inilah yang mendorong pemikiran mengenai membangun sistem yang dapat melakukan pengecekan kendaraan secara mobile, cepat, efektif dan efisien. Android, sandi vigenere dan qr code digunakan dalam penelitian ini karena android merupakan OS (Operating System) mobile yang sangat populer dan banyak digunakan, sedangkan sandi vigenere merupakan sebuah sandi klasik yang memiliki konsep yang relatif sederhana dan banyak digunakan sampai sekarang (Bruen & Forcinito, 2011), sandi yang simpel dan sulit dalam pemecahan sandinya apabila dimodifikasi sedemikian rupa dan qr code merupakan media yang digunakan dalam penyampaian informasi secara cepat dan mendapat respons yang cepat tanpa melakukan input secara manual dengan cara mengetik. Informasi yang dikodekan dalam QR Code dapat berupa URL, nomor telepon, pesan SMS, V-Card, atau teks apapun (Ashford, 2010).

1.2 Rumusan Masalah

Banyaknya kasus pencurian kendaraan bermotor yang terjadi berbanding terbalik dengan jumlah kasus pencurian kendaraan yang berhasil diungkap. Masyarakat seakan pesimis kepada kinerja kepolisian dalam mengungkap kasus ini. Oleh karena itu perlu adanya sistem yang saling terintegrasi untuk mengakomodasi kebutuhan Kepolisian dalam mengungkap kasus pencurian kendaraan bermotor.


(18)

1.3 Tujuan Penelitian

Tujuan penelitian ini adalah menerapkan sandi vigenere dan qr code dalam melakukan otentikasi data pemilik kendaraan bermotor pada data pelaporan kehilangan kendaraan sehingga dapat mengatasi masalah pencurian kendaraan bermotor di wilayah Republik Indonesia.

1.4 Batasan atau Ruang Lingkup Penelitian

Batasan atau ruang lingkup penelitian ini adalah

a. Database kendaraan menggunakan data dari STNK.

b. Jenis kendaraan yang digunakan berupa sepeda motor dan mobil penumpang. c. Menggunakan 95 karakter ASCII.

d. Data yang di QR Code berupa Nomor Polisi, Nama, Alamat, Nomor Rangka dan Nomor Mesin yang telah tersandikan oleh Sandi Vigenere.

e. QR Code yang digunakan yaitu QR Code level M. f. Android yang digunakan versi 2.3.6 keatas.

1.5 Manfaat Penelitian

Beberapa manfaat dari penelitian ini yaitu :

1. Proses otentikasi kendaraan dapat lebih cepat dan kerahasiaan data pemilik kendaraan tetap terjaga.

2. Membantu dan mempermudah pekerjaan Kepolisian dalam menanggapi laporan masyarakat tentang kendaraan yang hilang.

3. Memberi sumbangsih kepada dunia pendidikan mengenai pemanfaatan kriftografi dan QR Code.


(19)

1.6 Metodologi Penelitian

Dalam melakukan penelitian ada beberapa tahapan yang dilakukan, yaitu :

1. Studi literatur

Penelitian ini dimulai dengan melakukan studi literatur, yaitu proses pengumpulan data sebagai bahan referensi baik dari Polisi Lalu Lintas, Undang-undang, buku, artikel, jurnal, makalah atau situs internet yang berkaitan dengan Kepolisian, android, QR Code dan sandi Vigenere.

2. Analisis dan Perancangan Sistem

Proses rancangan ini meliputi pembuatan rancangan sistem laporan kehilangan kendaraan bermotor dengan penerapan qr code serta sandi vigenere dan aplikasi

mobile berbasis android

3. Implementasi Sistem

Pada tahap ini sistem yang telah dirancang kemudian diimplementasikan ke dalam bentuk coding program dengan menggunakan pemrograman web dan Android.

4. Pengujian Sistem

Pada tahap pengujian sistem ini untuk menguji apakah aplikasi yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih terdapat error pada aplikasi.

5. Dokumentasi Sistem

Pada tahap pengujian sistem ini bertujuan untuk menampilkan hasil dari penelitian.


(20)

1.7 Sistematika Penulisan

Ada lima bagian utama yang digunakan dalam sistematika penulisan skripsi ini, di antaranya :

BAB 1 PENDAHULUAN

Di dalam bab ini terdapat pemaparan mengenai latar belakang, rumusan masalah, tujuan penelitian, batasan atau ruang lingkup penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Di dalam bab ini terdapat pemaparan mengenai beberapa teori yang digunakan dalam penelitian ini, penelitian-penelitian terdahulu dan beberapa teori yang masih berkaitan dengan penelitian ini. Seperti, pengertian qr code dan sandi vigenere.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Di dalam bab ini terdapat pemaparan mengenai analisis penelitian dan dasar-dasar perancangan yang digunakan untuk membangun suatu sistem. Seperti flowchart, cara kerja sandi vigenere dan lain-lain.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Di dalam bab ini terdapat pemaparan mengenai implementasi teori-teori dan algoritma pada bahasa pemrograman yang telah dibahas di bab sebelumnya dan melakukan pengujian sistem yang dibangun.

BAB 5 KESIMPULAN DAN SARAN

Di dalam bab ini terdapat pemaparan mengenai kesimpulan yang telah di uraikan pada bab-bab sebelumnya dan saran yang diberikan penulis untuk pengembangan penelitian ke depannya.


(21)

BAB II LANDASAN TEORI

2.1 Quick Response Code

Quick Response Code sering di sebut QR Code atau Kode QR adalah semacam simbol dua dimensi yang dikembangkan oleh Denso Wave yang merupakan anak perusahaan dari Toyota sebuah perusahaan Jepang pada tahun 1994. Tujuan dari QR Code ini adalah untuk menyampaikan informasi secara cepat dan juga mendapat tanggapan secara cepat. Pada awalnya QR Code digunakan untuk pelacakan bagian kendaraan untuk manufacturing. Namun sekarang, telah digunakan untuk komersil yang ditujukan pada pengguna telepon seluler. QR Code adalah perkembangan dari barcode atau kode batang yang hanya mampu menyimpan informasi secara horizontal sedangkan QR Code mampu menyimpan informasi lebih banyak, baik secara horizontal maupun vertikal.

Gambar 2.1 Contoh QR Code “Saya anak USU”

QR Code biasanya berbentuk persegi putih kecil dengan bentuk geometris hitam (dapat dilihat di gambar 2.1), meskipun sekarang banyak yang telah berwarna dan digunakan sebagai brand produk. Informasi yang dikodekan dalam QR Code


(22)

dapat berupa URL, nomor telepon, pesan SMS, V-Card, atau teks apapun (Ashford, 2010). QR Code telah mendapatkan standarisasi internasional ISO/IEC18004 dan Jepang JIS-X-0510 (Denso, 2011).

2.1.1 Anatomi qr code

Gambar 2.2 Anatomi QR Code

Beberapa penjelasan anatomi QR Code Menurut Ariadi (2011) antara lain : a. Finder Pattern berfungsi untuk identifikasi letak QR Code.

b. Format Information berfungsi untuk informasi tentang error correction level dan

mask pattern.

c. Data berfungsi untuk menyimpan data yang dikodekan.

d. Timing Pattern merupakan pola yang berfungsi untuk identifikasi koordinat pusat

QR Code, berbentuk modul hitam putih.

e. Alignment Pattern merupakan pola yang berfungsi memperbaiki penyimpangan

QR Code terutama distorsi non linier.

f. Version Information adalah versi dari sebuah QR Code.

g. Quiet Zone merupakan daerah kosong di bagian terluar QR Code yang mempermudah mengenali pengenalan QR oleh sensor CCD.


(23)

2.1.2 Versi qr code

Gambar 2.3 Versi QR Code

(Sumber : qrcode.com)

QR Code dapat menghasilkan 40 versi yang berbeda dari versi 1 (21 x 21 modul) sampai versi 40 (177 x 177 modul). Tingkatan Versi QR Code 1 dan 2 berbeda 4 modul berlaku sampai dengan versi 40. Setiap versi memiliki konfigurasi atau jumlah modul yang berbeda. Modul ini mengacu pada titik hitam dan putih yang membentuk suatu QR Code. Setiap versi QR Code memiliki kapasitas maksimum data, jenis karakter dan tingkat koreksi kesalahan. Jika Jumlah data yang ditampung banyak maka modul yang yang akan diperlukan dan menjadikan QR Code menjadi lebih besar (Denso, 2011).

2.1.3 Mengoreksi kesalahan qr code

QR Code mampu mengoreksi kesalahan dan pengembalian data dalam pembacaan kode apabila qr code kotor atau rusak. Menurut Denso (2011), Ada 4 tingkatan koreksi kesalahan dalam QR code :

Tabel 2.1 Level Koreksi

Level Koreksi kesalahan Jumlah Perkiraan Koreksi

L 7%

M 15%

Q 25%

H 30%

Semakin tinggi tingkat koreksi kesalahan semakin besar juga versi qr code. Faktor lokasi dan lingkungan operasi perlu di timbangkan dalam menentukan level QR Code.


(24)

Level Q dan H baik digunakan di pabrik yang kotor, sedangkan L untuk tempat yang bersih. Level yang sering digunakan adalah level M dengan perkiraan koreksi mencapai 15% (qrcode.com, 2013).

2.1.4 Manfaat qr code

Beberapa manfaat yang terdapat pada QR Code menurut Denso (2011) antara lain: 1. Kapasitas tinggi dalam menyimpan data

Sebuah QR Code tunggal dapat menyimpan sampai 7.089 angka. 2. Ukuran yang kecil

Sebuah QR Code dapat menyimpan jumlah data yang sama dengan barcode 1D dan tidak memerlukan ruang besar.

3. Dapat mengoreksi kesalahan

Tergantung pada tingkat koreksi kesalahan yang dipilih, data pada QR code yang kotor atau rusak sampai 30% dapat diterjemahkan dengan baik.

4. Banyak jenis data

QR Code dapat menangani angka, abjad, simbol, karakter bahasa Jepang, Cina atau Korea dan data biner.

5. Kompensasi distorsi

QR Code tetap dapat dibaca pada permukaan melengkung atau terdistorsi. 6. Kemampuan menghubungkan

Sebuah QR Code dapat dibagi hingga 16 simbol yang lebih kecil agar sesuai dengan ruang. Simbol-simbol kecil yang dibaca sebagai kode tunggal apabila di


(25)

2.1.5 Macam-macam qr code

a) Qr code model 1 dan model 2 i. Qr code model 1

Gambar 2.4 Contoh QR Code Model 1 (Sumber : qrcode.com)

Model 1 adalah QR Code asli, dapat menampung 1.167 angka dengan versi maksimum 14 (73 x 73 modul) (qrcode.com, 2013).

ii. Qr code model 2

Gambar 2.5 Contoh QR Code Model 2 (Sumber : qrcode.com)

Model 2 adalah penyempurnaan dari model 1 dengan versi terbesar 40 (177 x 177 modules), yang mampu menyimpan sampai 7.089 angka (qrcode.com, 2013).


(26)

b) Microqr code

Gambar 2.6 Contoh Micro QR Code

(Sumber : qrcode.com)

Versi terbesar dari kode ini adalah M4 (17 x 17 modul) yang dapat menyimpan hingga 35 angka. Fitur utama dari Micro QR Code adalah hanya memiliki satu pola deteksi posisi, dibandingkan dengan regular QR Code yang memerlukan sejumlah tempat karena pola deteksi posisi yang terletak di tiga sudut simbol. QR Code biasa membutuhkan setidaknya empat modul yang lebar di sekitar simbol, sedangkan Micro

QR Code hanya membutuhkan cukup dua modul margin. Konfigurasi Micro QR

Code memungkinkan pencetakan di tempat lebih kecil dari QR Code (qrcode.com, 2013).

c) iQR Code

Gambar 2.7 Contoh iQR Code


(27)

Kode yang dapat dihasilkan dari salah satu modul, persegi atau persegi panjang. Dan dapat di cetak sebagai kode inversi hitam putih atau kode pola dot (bagian penanda). Versi terbesar dari kode ini dapat mencapai 61 (422x 422 modul), yang dapat menyimpan 40.000 angka (qrcode.com, 2013).

d. SQRC

Jenis QR Code ini dilengkapi dengan membaca fungsi pembatas. Ini dapat digunakan untuk menyimpan informasi pribadi untuk mengelola informasi internal perusahaan dan sejenisnya (qrcode.com, 2013).

e. LogoQ

Gambar 2.8 Contoh LogoQ

(Sumber : qrcode.com)

Jenis QR Code yang dapat menggabungkan fitur desain tingkat tinggi seperti ilustrasi, huruf dan logo. QR Code ini menggunakan Logika Since proprietary (qrcode.com, 2013).

2.2. Sandi Vigenere

Sandi Vigenere merupakan bagian dari kriptografi. kriptografi adalah kajian mengenai teknik matematika yang digunakan untuk keamanan informasi. Sandi Vigenere menurut Bruen & Forcinito (2011) adalah sebuah sandi klasik yang memiliki konsep


(28)

yang relatif sederhana dan banyak digunakan sampai sekarang. Ide dari sandi

Vigenere ini adalah sandi Caesar yang dimodifikasi. Jika sandi Caesar menggunakan kata kunci sandi tunggal, sedangkan sandi vigenere menggunakan kata kunci yang diulang sebanyak yang diperlukan dengan panjang pesan. Huruf yang akan disandikan di sesuaikan dengan angka, a = 0, b = 1, c = 2, …, z = 25. Kemudian tambahkan angka kata kunci dan angka pesan. Lalu hasilnya dimodulukan dengan 26, dan hasilnya yang berupa angka tersebut dirubah ke dalam huruf untuk mendapatkan huruf yang tersandi. Sandi Vigenere merupakan sebuah algoritma kriptografi klasik, algoritma ini tergolong algoritma dasar karena menggunakan algoritma berbasis karakter (Kurniawan, 2012).

2.2.1 Cara kerja sandi vigenere

Tabel 2.2 digunakan untuk menyandikan sebuah pesan. Setiap huruf yang disandikan dengan menggunakan baris yang berbeda, sesuai dengan kata kunci yang diulang-ulang.

Contoh :

Pesan = S E R A T U S R I B U

Kata kunci = J A L A N

Kata kunci harus diulang sampai jumlah huruf sama dekan pesan. Jumlah huruf pada pesan ada 11 huruf sedangkan kata kunci ada 5 huruf. Kata kunci menjadi “J A L A N J A L A N J” sesuai dengan banyaknya huruf pesan.

Huruf pertama pada pesan di sandikan dengan huruf pertama kata kunci, dan begitu seterusnya. Huruf pertama pada contoh adalah “S” dan huruf pertama pada kata kunci “J” disandikan/enkripsi menjadi huruf “B”. (Lihat tabel 2.2)

Pesan = S E R A T U S R I B U

Kata kunci = J A L A N J A L A N J


(29)

Tabel 2.2 Contoh gambar tabel Vigenere

Untuk proses deskripsi atau mengembalikan sama seperti di atas. Huruf pertama pesan tersandi, disandikan dengan huruf pertama kata kunci, dan begitu seterusnya.

Pesan tersandi = B E C A G D S C I O D

Kata kunci = J A L A N J A L A N J

Pesan = S E R A T U S R I B U

Sandi vigenere dapat ditulis secara matematis, seperti dengan penjelasan


(30)

Rumus Enkripsi

Ci = ( Pi + Ki ) mod 26

Rumus Deskripsi

Pi = ( Ci – Ki ) mod 26

Keterangan

Ci = nilai desimal (a=0) karakter tersandi ke-i Pi = nilai desimal karakter pesan ke-i

Ki = nilai desimal karakter kata kunci ke-i

Contoh:

menggunakan kasus di atasdengan menggunakan RumusEnkripsi dimana Pi = S dan Ki = J

Ci = ( Pi + Ki ) mod 26 Ci = ( S + J ) mod 26 Ci = ( 18 + 9 ) mod 26 Ci = 27 mod 26 Ci = 1 = B

Sedangkan Rumus Dekripsi Pi = ( Ci – Ki ) mod 26 Pi = ( B – J ) mod 26 Pi = ( 1 – 9 ) mod 26 Pi = -8 mod 26 Pi = 18 = S

2.2.2 Sandi Vigenere dengan 95 karakter

Sandi Vigenere dengan 95 karakter merupakan pengembangan dari kriptografi

vigenere yang asli dengan menambahkan beberapa karakter yang terdapat pada tabel ASCII sehingga berjumlah 95 karakter yang sebelumnya berjumlah 26 karakter.


(31)

Penambahan karakter ini, berguna untuk mempersulit pemecahan sandi dan untuk memudahkan di aplikasi ke bahasa pemrograman komputer.

Tabel 2.3 Karakter ASCII yang digunakan

2.2.3 Syarat Algoritma Kriptografi yang aman

Menurut Munir (2006), Syarat Algoritma yang aman (computationally secure) adalah 1. Persamaan matematis yang kompleks sehingga susah di pecahkan dengan

menganalisa

2. Biaya untuk pemecahan sandi melampaui nilai informasi yang terkandung di

ciphertext.

3. Waktu yang diperlukan untuk pemecahan sandi melampaui lamanya informasi tersebut dijaga kerahasiaannya.

Decimal Karakt er Decim al Karakt er Decim al Karakter

32 Space 64 @ 96 `

33 ! 65 A 97 a

34 " 66 B 98 b

35 # 67 C 99 c

36 $ 68 D 100 d

37 % 69 E 101 e

38 & 70 F 102 f

39 ' 71 G 103 g

40 ( 72 H 104 h

41 ) 73 I 105 i

42 * 74 J 106 j

43 + 75 K 107 k

44 , 76 L 108 l

45 - 77 M 109 m

46 . 78 N 110 n

47 / 79 O 111 o

48 0 80 P 112 p

49 1 81 Q 113 q

50 2 82 R 114 r

51 3 83 S 115 s

52 4 84 T 116 t

53 5 85 U 117 u

54 6 86 V 118 v

55 7 87 W 119 w

56 8 88 X 120 x

57 9 89 Y 121 y

58 : 90 Z 122 z

59 ; 91 [ 123 {

60 < 92 \ 124 |

61 = 93 ] 125 }

62 > 94 ^ 126 ~


(32)

2.2.4 Aspek keamanan data informasi

Menurut Munir (2006), ada 4 aspek keamanan data informasi : 1. Confidentiality/Privacy (Kerahasiaan)

Menjaga informasi dari yang tidak berhak.

2. Data Integrity (Integritas Data)

Memastikan informasi tidak dimanipulasi selama pengiriman informasi.

3. Authentication (otentikasi)

Memastikan keaslian data / identifikasi data.

4. Non-Repudiation (Nirpenyangkalan)

Memastikan pesan dikirim oleh pengirim dan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan.

4 aspek diatas merupakan tujuan dari penggunaan kriftografi yang menyediakan layanan keamanan informasi.

2.3 Android

Android adalah sistem operasi mobile berbasis open source yang di miliki raksasa internet saat ini, Google. Android dikembangkan dengan menggunakan kernel linux. Android memungkinkan untuk di modifikasi secara bebas dan di distibusikan oleh pembuat perangkat tersebut. Dengan sifat open source tersebut telah banyak mendorong komunitas pengembang aplikasi untuk menggunakan source code android sebagai dasar proyek pembuatan aplikasi.

Android dimulai sebagai sebuah start up rahasia pada tahun 2003, dan dibeli oleh Google pada tahun 2005 dan sebagai jalan google untuk memasuki pasar perangkat lunak bergerak (James, 2013). Handphone komersil pertama yang menggunakan OS Android adalah HTC Dream, yang diluncurkan pada 22 Oktober 2008. Dikutip dari okezone.com (2013), terungkap pula sebanyak 4,5 juta smartphone yang berhasil terjual di Indonesia selama Januari sampai Maret 2013, sebanyak 2,28 juta di antaranya menjalankan OS Android.


(33)

2.3.1 Versi-versi android

Daftar versi android yang pernah dirilis menurut developer.android.com (2013) dapat di lihat pada tabel berikut :

Tabel 2.4 Versi Android

Versi Nama Kode Tanggal Rilis Level API

1.5 Cupcake 30 April 2009 3

1.6 Donut 15 September 2009 4

2.0 – 2.1 Éclair 26 Oktober 2019 7

2.2 Froyo 20 Mei 2010 8

2.3 – 2.3.2 Gingerbread 6 Desember 2010 9 2.3.3 – 2.3.7 Gingerbread 9 Februari 2011 10

3.1 Honeycomb 10 Mei 2011 12

3.2 Honeycomb 15 Juli 2011 13

4.0.3 – 4.0.4 Ice Cream Sandwich 16 Desember 2011 15

4.1.x Jelly Bean 9 Juli 2012 16

4.2.x Jelly Bean 13 November 2012 17

4.3 Jelly Bean 24 Juli 2013 18

4.4 Kitkat 31 Oktober 2013 19

Sumber : developer.android.com

2.3.2 Arsitektur android

Android sebagai sistem operasi memiliki beberapa layer komponen di antaranya (Asmono, 2013), adalah :

1. Linux kernel

Linux kernel merupakan layer dasar dari sistem operasi android. Di dalam layer ini berisi file-file sistem seperti system processing, memory, resource, drivers dan sistem lainnya.


(34)

2. Libraries

Pada layer ini terdapat fitur-fitur android berada, sering diakses untuk menjalankan aplikasi. Beberapa libraries yang terdapat pada android di antaranya adalah :

a. Libraries media untuk memutar video dan audio. b. Libraries manajemen tampilan.

c. Libraries Graphics

d. Libraries SQLite digunakan untuk dukungan database.

e. Libraries SSL dan WebKit

f. Libraries LiveWebcore g. Libraries 3d

3. Android runtime

Layer ini berfungsi untuk menjalankan aplikasi di android. Proses dalam menjalankan aplikasi menggunakan implementasi dari Linux. Android RunTime dibagi dua bagian, yaitu :

a. Core Libraries

Berfungsi untuk menerjemahkan bahasa java atau bahasa C.

b. Dalvik Virtual machine

Merupakan sebuah mesin berbasis register untuk menjalankan fungsi-fungsi pada android secara efisien.

4. Applications framework

Layer ini di peruntukan bagi para pembuat aplikasi untuk menggunakan komponen-komponen yang terdapat pada layer ini untuk membuat aplikasi mereka. Komponen-komponen yang termasuk di dalam layer ini antara lain :

a. Views

b. Content Providers c. Resource Manager d. Notification Manager e. Activity Manager


(35)

5. Applications and Widget

Layer ini berhubungan dengan aplikasi inti yang berjalan pada sistem operasi android.

2.3.3 Dasar aplikasi android (Android Application Fundamentals)

Aplikasi android ditulis dengan menggunakan bahasa pemrograman java. Untuk mengcompile kode-kode tersebut Android menggunakan android SDK (Software

development Kit) tool bersama dengan data dan files resource dan di paketkan menjadi satu dan file hasil compile tersebut diberi akhiran .APK. APK ini dapat digunakan untuk menginstal aplikasi yang telah dibuat di sistem operasi android.

2.3.4 Komponen aplikasi android

Komponen aplikasi android adalah bagian penting dari sebuah aplikasi android. Setiap komponen mempunyai peranan yang berbeda sesuai dengan keperluan aplikasi. Ada 4 jenis komponen aplikasi android (Asmono, 2013) yang memiliki peranan atau tujuan yang berbeda di antaranya adalah

1. Activities

Activities biasanya untuk menyajikan user interface (UI) kepada user untuk melakukan interaksi. Untuk pindah dari satu activity ke activity lain dapat melakukannya dengan satu even, misalnya klik tombol, atau memilih opsi.

2. Services

Services merupakan komponen yang berjalan di background saat melakukan pekerjaannya. Service tidak memiliki user interface. Contohnya pada layanan pemutar musik yang dapat menjalankan satu memutar lagu di background saat pengguna menjalankan aplikasi yang berbeda.

3. Content providers

Antarmuka yang digunakan untuk berbagi data antar aplikasi. Dengan Content

providers programmer dapat menyimpan data dalam sistem file, SGLite dan lain-lain. Sebagai contoh android menyediakan aplikasi kontak pengguna. Dengan


(36)

demikian aplikasi apapun yang memerlukan kontak pengguna atas izin pengguna dapat mengaksesnya.

4. Broadcast receivers

Komponen yang merespon pengumuman ke user dari sistem android. Ini berfungsi untuk mengingatkan user itu sendiri. Misalnya baterai lemah, pesan masuk, telepon seluler telah dimatikan atau lain sebagainya. Broadcast recivers merespon dengan menghidupkan lampu latar, led light, getaran, suara dan lain-lain.

2.3.5 Kelebihan android

Menurut rudyes.com (2013), kelebihan android di antaranya adalah :

1. Sistem operasi bersifat open source.

2. Memiliki banyak aplikasi maupun permainan. 3. Tampilan terlihat elegan dan tidak mudah bosan. 4. Bersifat Multitasking.

5. Kemudahan dalam notifikasi.

6. Memiliki widget yang dapat mempermudah pengguna 7. Memiliki synchronize online.

2.4 Library PHP Qr Code

PHP (Hypertext Preprocessor) qr code merupakan library open source (LGPL) yang digunakan untuk menghasilkan qr code. Library ini dikembangkan berdasarkan

library libqrencode C, yang menyediakan API (Application Programming Interface) untuk membentuk gambar qr code dan diimplementasikan pada PHP (phpqrcode.sourceforge.net, 2014).

Fitur-fitur yang terdapat pada library php qr code diantaranya : 1. Mendukung versi qr code 1 sampai dengan 40.

2. Mendukung encode angka, huruf, 8 bit encoding dan kanji. 3. Diimplementasikan murni di PHP.


(37)

4. Dapat di ekspor ke png dan jpeg. 5. Mudah dalam mengkonfigurasi. 6. 100% open source (LGPL). 7. Dan lain-lain.

2.5 Library Zxing

Zxing merupakan aplikasi open source dan library java yang dapat melakukan proses berbagai format gambar barcode satu dimensi atau 2 dimensi (Tresnani, 2012). Fungsi dari library ini adalah untuk memudahkan programmer untuk membangun aplikasi pembacaan qr code di android dan dapat melakukan scan qr code tanpa harus terhubung ke server.

2.6 Undang-Undang

Undang-undang atau perundangan dan sering disingkat UU merupakan peraturan perundangan yang dibentuk dan di susun oleh Dewan perwakilan Rakyat (DPR) dengan persetujuan bersama Presiden. Menurut UU No.10 Tahun 2004, Perundang-undangan adalah peraturan tertulis yang dibentuk oleh lembang Negara atau pejabat berwenang dan mengikat secara umum dan memuat aturan dan mekanisme hubungan antarwarga negara, antar warga negara dan negara, serta antar warga negara dengan pemerintah dan antar lembaga negara. Setiap warga Negara wajib menaati UU karena bertujuan untuk mengatur kehidupan berbangsa dan bernegara.

2.6.1 Fungsi peraturan perundang-undangan

Menurut Faridy (2009), UU dibuat untuk menjaga ketertiban bermasyarakat dan bernegara dan bukan untuk menakut-nakuti masyarakat. Ada 4 fungsi UU yaitu :

1. menciptakan ketertiban hidup bermasyarakat 2. menciptakan ketertiban hidup bernegara 3. menciptakan keadilan


(38)

2.6.2 Undang-undang no.22 tahun 2009

Undang-Undang No.22 Tahun 2009 tentang lalu lintas dan angkutan merupakan peraturan tertulis yang dibentuk DPR bersama Presiden. Undang-undang ini adalah pengganti UU No. 14 Tahun 1992 tentang lalu lintas dan angkutan jalan karena tidak sesuai dengan kondisi, perubahan lingkungan strategis, dan kebutuhan penyelenggaraan lalu lintas dan angkutan jalan. Isi dari UU ini berkaitan dengan pembagian tugas aparat, kewajiban pengendara kendaraan, pasal pelanggaran dan denda.

2.7 Peraturan Pemerintah Pengganti Undang-Undang

Peraturan pemerintah pengganti undang-undang atau biasa disebut PERPU adalah peraturan perundang-undangan yang di tetapkan oleh presiden dalam hal ikhwal kegentingan yang memaksa. PERPU disebut di dalam undang-undang dasar 1945 pasal 22 ayat (1). Pembahasan RUU tentang penetapan PERPU menjadi Undang-undang dilaksanakan seperti tata cara pembahasan RUU (Faridy, 2009).

2.7.1 Perpu no.80 tahun 2012

Peraturan pemerintah pengganti undang-undang no.80 tahun 2012 tentang tata cara pemeriksaan kendaraan bermotor di jalan dan penindakan pelanggaran lalu lintas dan angkutan jalan. PERPU ini berlaku tanggal 15 Oktober 2012. PERPU ini juga mengatur pembagian tugas penyidik Polisi dan penyidik pegawai negeri sipil, tata cara pemeriksaan dan penindakan kendaraan bermotor di jalan, denda dan hukuman bagi pelanggar lalu lintas.

2.8 Penelitian Terdahulu

Bagian ini merupakan bagian yang digunakan sebagai bahan rujukan dan masukan untuk membangun sistem ini.


(39)

Tabel 2.5 Penelitian terdahulu yang berkaitan dengan sistem

No Judul Pengarang Tahun Hasil Penelitian 1 2. 3. 4. 5. 6. 7. 8. 9. 10.

Enkripsi pada qr code tiket dengan RSA.

Implementasi sistem absensi pegawai menggunakan qr code pada smartphone berbasis android.

Pengembangan aplikasi qr code generator dan qr code reader dari data berbentuk image.

QR code data representation for mobile augmented reality

Perancangan pengenalan qr code dengan jaringan syaraf tiruan metode percepron Aplikasi enkripsi sms pada telepon seluler berbasis j2me dengan metode vigenere cipher

Vigenere chipher untuk aksara korea (hangul)

Pembuatan aplikasi kriptosistem menggunakan metode algoritma vigenere cipher

Perbandingan tingkat keamanan vigenere cipher dengan sidewinder cipher

Modification of vigenere cipher by random number, punctuations & mathematical symbols Calvin Irwan Dian lestari Tresnani M. Pasca Nugraha Hyoseok Yoon, Nohyoung Park, dkk Novalia Bayu Kristian Nugroho Ignatius Ronaldo Galman Kurniawan Hijasma Mushlih William Eka Putra C.R.S Bhardwaj 2010 2012 2011 2011 2012 2010 2012 2012 2011 2012

Menyimpan data KTP di tiket menggunakan qr code dan enkripsi RSA.

Qr code memiliki berbagai keunggulan untuk menyimpan data pegawai dan menjadi sebuah alat identitas pada sebuah sistem absensi. Menyimpan image dalam bentuk qr code. Namun, tidak feasible untuk diterapkan di dunia nyata.

Memanfaatkan qr code untuk menyimpan data augment reality.

Membuat aplikasi pembacaan dan pengenalan qr code dengan jaringan syaraf.

Membuat aplikasi enkripsi dan dekripsi sms dengan vigenere di handphone.

Membuat aplikasi untuk mengenkripsi dan deksripsi aksara korea.

Membuat aplikasi enkripsi dan dekrispsi teks menggunakan vigenere .

Sidewinder memiliki tingkat keamanan lebih unggul dibanding vigenere tetapi membutuhkan biaya dan waktu lebih untuk membangkitkan kunci.

Memodifikasi enkripsi vigenere untuk memberi pengamanan teks yang lebih sulit untuk di pecahkan.


(40)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Masalah

Masalah yang ada pada pelaporan kendaraan hilang adalah masalah waktu pengungkapan kasus yang terlalu lama, sebagian besar kasus tidak dapat terungkap. Masyarakat seakan pesimis terhadap kinerja polisi jika terjadi pencurian kendaraan. Kepolisian bukan tidak bekerja, tetapi Polisi melalui Polisi lalu lintas selaku penegak hukum di jalan raya tidak memiliki data tentang laporan kendaraan hilang yang terhubung ke seluruh Indonesia. Petugas polisi lalu lintas di lapangan tidak dibekali sistem yang dapat melakukan cek kendaraan secara online dan kurangnya bukti-bukti untuk kendaraan yang di curigai. Polisi tidak dapat melakukan tindakan hukum jika kurangnya bukti-bukti yang memberatkan terduga. Misalnya seperti kendaraan

“bodong” yang tidak memiliki STNK.

3.2 Analisis Data

Sistem ini hanya menggunakan data surat tanda nomor kendaraan (STNK) yang berasal dari STNK asli pemilik kendaraan dan data STNK yang ada di internet. Dikarenakan Direktorat lalu lintas Polda Sumatera Utara tidak dapat mengeluarkan data STNK pemilik kendaraan karena bersifat rahasia dan untuk menjaga privasi pemilik kendaraan tersebut.


(41)

3.3 Perancangan Sistem

3.3.1 Perancangan prosudural sistem

Prosedur yang akan digunakan untuk sistem adalah :

1. Setiap kendaraan yang berjalan di jalan raya harus memiliki qr code di plat kendaraan masing-masing.

2. Qr code berupa data kendaraan sesuai STNK yang di sandikan oleh vigenere. 3. Format data Qr code sebelum di sandikan oleh vigenere berupa, No.Polisi,

Nama, Alamat, No. Rangka, dan No. Mesin. Fungsi dari data qr code ini adalah untuk membandingkan data yang ada di STNK dengan data di qr code untuk mendapatkan data yang valid dengan 2 sampel data.

4. Dalam penindakan di lapangan, setiap petugas harus memiliki perangkat android dengan aplikasi pemindai qr code khusus.

5. Standart Operational Procedur (SOP) petugas polisi lalu lintas di lapangan harus patuh pada UU no.22 tahun 2009 dan PERPU no.80 tahun 2012.

3.3.2 Perancangan sandi vigenere pada sistem

Pada sistem, sandi vigenere yang digunakan untuk menyandikan data di dalam qr

code adalah sandi vigenere dengan 95 karakter. Dengan susunan seperti tabel 3.1 dan dilakukan sedikit modifikasi untuk memudahkan dalam implementasi.

Tabel 3.1 Perancangan sandi vigenere dengan 95 karakter

No. ASCII Desimal No. ASCII Desimal No. ASCII Desimal

0 a 97 32 G 71 64 " 34

1 b 98 33 H 72 65 # 35

2 c 99 34 I 73 66 $ 36

3 d 100 35 J 74 67 % 37

4 e 101 36 K 75 68 & 38

5 f 102 37 L 76 69 ' 39

6 g 103 38 M 77 70 ( 40

7 h 104 39 N 78 71 ) 41

8 i 105 40 O 79 72 * 42

9 j 106 41 P 80 73 + 43


(42)

Tabel 3.1 Perancangan sandi vigenere dengan 95 karakter (Lanjutan)

No. ASCII Desimal No. ASCII Desimal No. ASCII Desimal

11 l 108 43 R 82 75 - 45

12 m 109 44 S 83 76 . 46

13 n 110 45 T 84 77 / 47

14 o 111 46 U 85 78 : 58

15 p 112 47 V 86 79 ; 59

16 q 113 48 W 87 80 < 60

17 r 114 49 X 88 81 = 61

18 s 115 50 Y 89 82 > 62

19 t 116 51 Z 90 83 ? 63

20 u 117 52 0 48 84 @ 64

21 v 118 53 1 49 85 [ 91

22 w 119 54 2 50 86 \ 92

23 x 120 55 3 51 87 ] 93

24 y 121 56 4 52 88 ^ 94

25 z 122 57 5 53 89 _ 95

26 A 65 58 6 54 90 ` 96

27 B 66 59 7 55 91 { 123

28 C 67 60 8 56 92 | 124

29 D 68 61 9 57 93 } 125

30 E 69 62 spasi 32 94 ~ 126

31 F 70 63 ! 33

Rumus Enkripsi

Ci = ( Pi + Ki ) mod 95

Rumus Deskripsi

Pi = ( Ci – Ki ) mod 95

Contoh:

dimana Pi = S dan Ki = J

Enkripsi Dekripsi

Ci = ( Pi + Ki ) mod 95 Pi = ( Ci – Ki ) mod 95 Ci = ( S + J ) mod 95 Pi = ( ; – J ) mod 95 Ci = ( 44 + 35 ) mod 95 Pi = ( 79 – 35 ) mod 95 Ci = 79 mod 95 Pi = 44 mod 95


(43)

Karena di dalam implementasi sandi vigenere dengan 95 karakter pada link halaman ada beberapa karakter yang tidak sesuai dengan format dan merupakan bagian dari format tersebut, maka sandi vigenere di modifikasi kembali dengan menggunakan 63 karakter. Rumus yang digunakan sama tetapi modulo yang digunakan 63 sesuai karakter yang digunakan. Dapat dilihat pada tabel 3.2.

Tabel 3.2 Perancangan sandi vigenere dengan 63 karakter

No. ASCII Desimal No. ASCII Desimal

0 a 97 32 G 71

1 b 98 33 H 72

2 c 99 34 I 73

3 d 100 35 J 74

4 e 101 36 K 75

5 f 102 37 L 76

6 g 103 38 M 77

7 h 104 39 N 78

8 i 105 40 O 79

9 j 106 41 P 80

10 k 107 42 Q 81

11 l 108 43 R 82

12 m 109 44 S 83

13 n 110 45 T 84

14 o 111 46 U 85

15 p 112 47 V 86

16 q 113 48 W 87

17 r 114 49 X 88

18 s 115 50 Y 89

19 t 116 51 Z 90

20 u 117 52 0 48

21 v 118 53 1 49

22 w 119 54 2 50

23 x 120 55 3 51

24 y 121 56 4 52

25 z 122 57 5 53

26 A 65 58 6 54

27 B 66 59 7 55

28 C 67 60 8 56


(44)

Tabel 3.2 Perancangan sandi vigenere dengan 63 karakter (Lanjutan)

No. ASCII Desimal No. ASCII Desimal

30 E 69 62 = 61

31 F 70

3.3.3 Arsitektur sistem

Arsitektur sistem digunakan untuk menerjemahkan bagian-bagian dari keseluruhan sistem yang lebih bersifat khusus secara terstruktur dan dengan bertujuan yang menjawab kebutuhan sistem.

Arsitektur sistem pada penelitian ini dapat di lihat pada gambar berikut ini :

Gambar 3.1 Arsitektur sistem dasar

3.3.4 Flowchart

Flowchart atau diagram aliran adalah langkah-langkah prosedur sistem yang digambarkan secara grafik. Flowchart dapat memberi solusi untuk menyelesaikan masalah dalam proses atau algoritma program dalam sistem.


(45)

1. Flowcart Scan QR Code

Gambar 3.2 Flowchart Scan QR Code

Flowchart pada gambar 3.2 adalah flowchart saat melakukan scan qr code pada kendaraan. Generate dari qr code menjadi teks data dilakukan dengan menggunakan

library Zxing. Setelah qr code di scan, sistem akan melakukan cek data valid atau tidak. Jika valid sistem akan meneruskan untuk dilakukannya deskripsi sandi vigenere. Pada tahap ini aplikasi sudah dapat menampilkan data yang di scan tersebut. Jika terdapat koneksi internet maka aplikasi akan melakukan pengecekan pada database pada server, tapi sebelum melakukan cek, data yang berupa No. Polisi tersebut terlebih dahulu di enkripsi dengan sandi vigenere 63 karakter. Jika kendaraan terdapat pada database laporan kehilangan, data akan dikirim ke aplikasi. Sebelum ditampilkan, data tersebut terlebih dahulu di deskripsikan dengan sandi vigenere 95 karakter.


(46)

2. Flowcart Input pada Aplikasi Mobile

Dekripsi Vigenere 95 karakt er

Selesai Cek No Polisi/ M esin/ Rangka

Cek Internet

Tidak ada Ada

Enkripsi Vigenere 63 karakt er

Cek database server

output

Tidak ada ada

M ulai

Gambar 3.3 Flowchart Scan QR Code

Flowcart pada gambar 3.3 adalah flowcart pada aplikasi mobile android. Bagian ini digunakan untuk melakukan input secara manual. Inputnya berupa No. Polisi, No Rangka dan No. Mesin. Pada mulanya aplikasi akan melakukan cek koneksi internet, jika tidak ada aplikasi input ini tidak dapat digunakan. Jika internet tersedia, hasil

input akan di enkripsi dengan sandi vigenere 63 karakter sesuai format yang tersedia. Aplikasi akan melakukan cek pada database di server. Jika terdapat di database sistem akan mengirimkan data yang terinkripsi pada aplikasi, dan untuk menampilkannya, aplikasi akan melakukan deskripsi data terlebih dahulu.


(47)

3. Flowcart input data pada admin STNK

Gambar 3.4 Flowchart input data pada Admin STNK

Sistem akan meminta pengguna untuk melakukan input, jika selesai sistem akan melakukan validasi data, data valid akan dilanjutkan ke tahap berikutnya disimpan ke

database dan dilakukan enkripsi sandi vigenere 95 karakter. Dan data hasil enkripsi di

generate menggunakan Library PHP Qr Code menjadi qr code. Dan dilakukan pencetakan qr code.

4. Flowchart input data pada admin laporan kehilangan


(48)

Flowcart gambar 3.5 merupakan input data sederhana. Pengguna di minta untuk melakukan input kemudian dilakukan pengecekan data. Jika valid data tersebut akan di simpan pada databese jika tidak pengguna akan diminta untuk melakukan input kembali.

3.3.5 Diagram use case

Use case merupakan gambaran dari sebuah sistem dari sudut pandang pengguna. Diagram use case digunakan untuk menggambarkan fungsi-fungsi dari aspek perilaku sebuah sistem tersebut.

Pada sistem ini aktor dibagi menjadi 3 bagian yaitu user, admin STNK, admin laporan. User merupakan pengguna pada mobile device yaitu petugas yang bekerja di lapangan. Sedangkan admin STNK adalah petugas administrasi yang menginput data pengguna kendaraan ke sistem. Dan terakhir adalah admin Laporan adalah petugas yang menginput data laporan kehilangan pada sistem yang di laporkan oleh masyarakat. Diagram use case sistem dapat dilihat pada gambar 3.6.


(49)

a. Model spesifikasi Use Case

Tabel 3.3 Use case input data Nama Use Case Input data

Penjelasan singkat Digunakan untuk menginput data yang di butuh pada sistem

Aktor Admin STNK, Admin Laporan

Pra kondisi Aktor harus terlebih dahulu login pada sistem dan masuk ke halaman input

Skenario (Flow of

events)

a. Dimulai dengan login terlebih dahulu

b. Memilih “input data” untuk admin STNK dan “input kehilangan” untuk admin laporan pada menu

c. Sistem akan menampilkan halaman input

d. aktor dapat meng-input data sesuai pada data yang dibutuhkan sistem di form tersebut dan melakukan penyimpanan

e. sistem akan melakukan penyimpanan data

f. selanjutnya akan ada tampilan cetak, jika dipilih akan mencetak file tersebut. Admin STNK akan mencetak

qr code. Sedangkan admin laporan tidak ada halaman cetak data.

Pasca kondisi Aktor dapat menambahkan data lengkap sesuai pada

form yang tersedia

Tabel 3.4 Use case Edit data Nama Use Case Edit data

Penjelasan singkat Digunakan untuk mengedit data yang telah tersimpan di sistem

Aktor Admin STNK, Admin Laporan

Pra kondisi Admin Aktor harus terlebih dahulu login pada sistem dan masuk ke halaman daftar data untuk admin STNK dan data laporan untuk admin laporan


(50)

events) b. Memilih daftar data untuk admin STNK dan data laporan untuk admin laporan pada menu

c. Sistem akan menampilkan halaman Daftar data/data laporan

d. aktor dapat memilih data pemilik yang akan di edit e. sistem akan melakukan penyimpanan data

Pasca kondisi Aktor dapat menyimpan data yang telah di edit Tabel 3.5 Use case Hapus data

Nama Use Case Hapus data

Penjelasan singkat Digunakan untuk menghapus data pemilik kendaraan bermotor yang sebelumnya telah tersimpan pada sistem.

Aktor Admin STNK

Pra kondisi Aktor harus terlebih dahulu login pada sistem dan masuk ke halaman hapus data

Skenario (Flow of

events)

a. Dimulai dengan login terlebih dahulu b. Memilih “daftar data” pada menu

c. aktor dapat memilih data pemilik yang akan di hapus d. data yang dipilih akan terhapus dari database

Pasca kondisi Data yang di hapus tidak lagi terlihat pada sistem

Tabel 3.6 Use case Cetak QR Code

Nama Use Case Cetak qr code

Penjelasan singkat Digunakan untuk mencetak data sebelumnya yang telah tersimpan pada sistem.

Aktor Admin STNK

Pra kondisi Aktor harus terlebih dahulu login pada sistem dan masuk ke halaman hapus data

Skenario (Flow of events)

a. Dimulai dengan login terlebih dahulu b. Memilih “beranda” pada menu

c. Memasukkan plat kendaraan yang akan dicetak d. sistem akan melakukan pencetakan data


(51)

Pasca kondisi Halaman akan kembali pada halaman beranda

Tabel 3.7 Use case login

Nama Use Case login

Penjelasan singkat Digunakan untuk masuk ke dalam sistem. Aktor Admin STNK, admin Laporan

Pra kondisi - Skenario (Flow of

events)

a. Dimulai dengan memasukkan username dan

password

b. Lalu menekan tombil login Pasca kondisi Aktor akan masuk ke sistem

Tabel 3.8 Use case User Scan QR Code

Nama Use Case Scan QR Code

Penjelasan singkat Digunakan untuk menscan qr code

Aktor User

Pra kondisi User dapat langsung menggunakan sistem tanpa login Skenario (Flow of

events)

a. Dimulai menscan qr code

b. Hasil scan akan di deskripsi dan dilakukan pengecekan secara online

c. Data kendaraan akan terlihat

Pasca kondisi Menampilkan hasil dekripsi scan qr code

Tabel 3.9 Use case User Input

Nama Use Case Input Manual

Penjelasan singkat Digunakan untuk mencari informasi kendaraan secara manual

Aktor User

Pra kondisi User dapat langsung menggunakan sistem tanpa login Skenario (Flow of a. Dimulai men- Tab cek data


(52)

events) b. Pilih jenis input, cek no polisi / no mesin / no rangka c. Kemudian user memasukkan input dan men Tab cek d. Sistem akan melakukan pengecekan secara online e. Data kendaraan akan terlihat

Pasca kondisi Halaman akan kembali pada halaman Cek data

3.3.6 Perancangan antarmuka sistem

Perancangan antarmuka sistem adalah sketsa dasar yang digunakan untuk mempermudah perancangan sistem. Sketsa ini yang akan di implementasikan ke dalam sistem. Perancangan antarmuka sistem yang akan dibuat untuk sistem ini yaitu :

1. Rancangan halaman login


(53)

2. Rancangan halaman menu utama admin STNK

Gambar 3.8 Rancangan halaman menu utama admin STNK

3. Rancangan halaman input data admin STNK


(54)

4. Rancangan halaman daftar data kendaraan admin STNK

Gambar 3.10 Rancangan halaman daftardata kendaraan admin STNK

5. Rancangan halaman edit data admin STNK


(55)

6. Halaman cetak qr codeadmin STNK

Gambar 3.12 Rancangan halaman cetak qr codeadmin STNK

7. Rancangan halaman menu utama admin Laporan


(56)

8. Rancangan halaman input laporan admin Laporan

Gambar 3.14 Rancangan halaman input laporan admin laporan

9. Rancangan halaman data laporan admin Laporan


(57)

10. Rancangan halaman edit data kehilangan admin Laporan

Gambar 3.16 Rancangan halaman edit data kehilangan admin laporan

11. Tampilan lihat data admin laporan


(58)

12. Rancangan aplikasi mobileuser

Gambar 3.18 Rancangan Aplikasi mobileUser

13. Rancangan plat kendaraan

Gambar 3.19 Rancangan Plat kendaraan dengan qr code

Qr code yang terletak pada plat kendaraan berukuran 3,5 x 3,5 cm. Qr code di cetak pada kertas stiker dan di tempel pada plat kendaraan tersebut.


(59)

BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Implementasi sistem merupakan penerapan sistem yang telah di analisa dan di rancang pada bahasa pemrograman untuk menghasilkan aplikasi yang bermanfaat.

4.1.1 Spesifikasi perangkat keras (Hardware)

Berikut ini adalah perangkat keras yang digunakan untuk mengimplementasikan sistem ini, di antaranya adalah :

a. Processor Intel Core 2 Duo 2.13 GHz b. Memory 2048 MB

c. Hardisk 320 GB

d. VGA Nvidia GeForce 9200M GS 256 MB

e. Smartphone Android dengan kamera dan Memory 512 MB

4.1.2 Spesifikasi perangkat lunak (Software)

Berikut ini adalah perangkat lunak yang digunakan untuk mengimplementasi sistem ini, di antaranya adalah :

a. Windows 7 Ultimate 32 bit b. Notepad++

c. Xampp 1.7.3 d. Eclipse Android e. Inkscape

f. Google Chrome


(60)

4.2 Implementasi Perancangan Antarmuka

4.2.1 Tampilan halaman login

Halaman ini merupakan halaman pertama yang ditampilkan kepada pengguna sebelum masuk ke dalam sistem. Pengguna dapat memasukkan username dan

password pada kotak teks yang tersedia. Tampilan login dapat dilihat di gambar 4.1.

Gambar 4.1 Tampilan halaman login

4.2.2 Tampilan halaman menu utama admin STNK

Ini merupakan halaman utama admin STNK. Di halaman ini pengguna dapat melakukan pencarian nomor polisi secara detail untuk mencetak menjadi qr code. Dapat dilihat pada gambar 4.2.


(61)

Gambar 4.2 Tampilan halaman utama admin STNK

4.2.3 Tampilan halaman input data admin STNK

Halaman ini digunakan untuk menginput data kendaraan pengguna ke dalam database dan membuat qr code dari data tersebut. Halaman input dapat dilihat pada gambar 4.3.

Gambar 4.3 Tampilan halaman input data admin STNK

4.2.4 Tampilan halaman daftar data admin STNK

Halaman ini menampilkan data kendaraan yang ada di database, pengguna dapat melakukan edit, delete dan cetak. Halaman daftar data dapat dilihat pada gambar 4.3.


(62)

Gambar 4.4 Tampilan halaman daftar data admin STNK

4.2.5 Tampilan halaman edit data Admin STNK

Halaman edit data digunakan untuk melakukan perubahan data dan menyimpannya kembali ke database. Halaman edit tersebut dapat dilihat pada gambar 4.5.

Gambar 4.5 Tampilan halaman edit data admin STNK

4.2.6 Tampilan cetak qr code admin STNK

Halaman ini adalah halaman cetak qr code, data kendaraan di enkripsi dengan


(63)

dalam bentuk qr code digunakan library php qr code. Halaman cetak data qr code dapat dilihat pada gambar 4.6. Dan pengguna dapat melakukan cetak dengan mengklik “cetak”. Hasil cetak data dapat dilihat pada gambar 4.7.

Gambar 4.6 Tampilan halaman cetak qr code admin stnk


(64)

4.2.7 Tampilan halaman utama admin laporan

Ini merupakan halaman utama admin laporan. Pada halaman ini akan ditampilkan semua data laporan kehilangan kendaraan sesuai daerah pengguna. Contoh, Username = anjar, lokasi = kota Binjai, maka data yang ditampilkan hanya yang berada di kota Binjai. Halaman ini dapat dilihat pada gambar 4.8.

Gambar 4.8 Tampilan halaman utama admin laporan

4.2.8 Tampilan halaman data laporan admin laporan

Sama seperti gambar 4.8, tetapi halaman ini menampilkan keseluruhan data laporan kehilangan kendaraan yang ada di database. Pengguna dapat melakukan pencarian nomor polisi atau nama pelapor kendaraan. Apabila kendaraan berstatus hilang, maka status kendaraan akan diberi status hilang dan di beri tanda merah, sedangkan apabila kendaraan telah ditemukan status akan berubah menjadi ditemukan dan diberi warna hijau. Halaman data laporan dapat dilihat pada gambar 4.9.


(1)

i nt PNoPol ;

@Suppr essWar ni ngs( " depr ecat i on" )

publ i c voi d onCr eat e( Bundl e savedI nst anceSt at e) { super . onCr eat e( savedI nst anceSt at e) ;

set Cont ent Vi ew( R. l ayout . hasi l scan) ;

Text Vi ew dat a1= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew2) ; / * Par si ng dat a dar i hal aman sebel umnya* /

Bundl e par se2 = new Bundl e( ) ; par se2 = get I nt ent ( ) . get Ext r as( ) ;

St r i ng kal i mat = par se2. get St r i ng( " par se_scanCont ent " ) ; St r i ng awal = " GcP" ;

St r i ng akhi r = " PcG" ;

i nt PK = kal i mat . l engt h( ) ; i nt kur ang = PK - 3;

/ * Cek dat a qr code* / i f ( PK ! = 0) {

/ * val i dasi * /

St r i ng kal i mat 1 = kal i mat . subst r i ng( 3, kur ang) ; St r i ng kal i mat 2 = kal i mat . subst r i ng( 0, 3) ; St r i ng kal i mat 3 = kal i mat . subst r i ng( kur ang) ;

i f ( ( ( kal i mat 2. equal s( awal ) ) == t r ue) && ( ( kal i mat 3. equal s( akhi r ) ) == t r ue) ) { / * dekr i psi * /

St r i ng hasi l = Vi gener e. dekr i psi ( Sandi 95_1, kal i mat 1) ; St r i ng s = " " ;

St r i ng[ ] hasi l spl i t = hasi l . spl i t ( " ; " ) ; St r i ng No_Pol i si = hasi l spl i t [ 0] ; PNoPol = No_Pol i si . l engt h( ) ; f or ( i nt i =0; i <hasi l spl i t . l engt h; i ++) { i f ( i == 0) {

s += " <bi g><f ont col or =' #848484' ><b>No Pol i si </ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; }

el se i f ( i == 1) {

s += " <f ont col or =' #848484' ><b>Nama</ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; }

el se i f ( i == 2) {

s += " <f ont col or =' #848484' ><b>Al amat </ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; }

el se i f ( i == 3) {

s += " <f ont col or =' #848484' ><b>No. Rangka</ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; }

el se i f ( i == 4) {

s += " <f ont col or =' #848484' ><b>No. Mesi n</ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; }

el se

s += ( hasi l spl i t [ i ] ) +" <br >" ; }

dat a1. set Text ( Ht ml . f r omHt ml ( s) ) ;

cekNet = new cekI nt er net ( get Appl i cat i onCont ext ( ) ) ; Net Ter sedi a = cekNet . i sConnect i ngToI nt er net ( ) ;

St r i ng l i nk =

" op=cekDat aGcPNoPol i si =" +No_Pol i si . t oSt r i ng( ) ;


(2)

/ / cek st at us I nt er net i f ( Net Ter sedi a) { i f ( PNoPol > 9) {

Al er t Di al og al er t Di al og = new

Al er t Di al og. Bui l der ( Hasi l ScanAct i vi t y. t hi s) . cr eat e( ) ; al er t Di al og. set Ti t l e( " Per i ngat an! " ) ;

al er t Di al og. set Message( " Sandi Ti dak Cocok ! " ) ; al er t Di al og. set I con( R. dr awabl e. i c_act i on_about ) ;

al er t Di al og. set But t on( " OK" , new Di al ogI nt er f ace. OnCl i ckLi st ener ( ) {

publ i c voi d onCl i ck( f i nal Di al ogI nt er f ace di al og, f i nal i nt whi ch) {

Toast . makeText ( get Appl i cat i onCont ext ( ) , " Sandi Ti dak Cocok" , Toast . LENGTH_SHORT) . show( ) ;

f i ni sh( ) ; } } ) ;

al er t Di al og. show( ) ; }

el se{ ur l =

" ht t p: / / 192. 168. 72. 1/ pr oj ect Z/ andr oi d/ cek. php?" +l i nkenkr i p; new Ambi l Dat a( ) . execut e( ) ; }

} r et ur n; }

/ * MENGAMBI L DATA DARI SERVER ============================================* / publ i c cl ass Ambi l Dat a ext ends AsyncTask<St r i ng, St r i ng, St r i ng>{

Ar r ayLi st <HashMap<St r i ng, St r i ng>> cont act Li st = new Ar r ayLi st <HashMap<St r i ng, St r i ng>>( ) ;

Pr ogr essDi al og pDi al og;

pr i vat e St r i ng dat a, NoPol i si , Nama, NoTel epon, dat a1, hasi l JsonDekr i psi ;

/ / Menghent i kan Pr oses dengan wakt u

f i nal Count DownTi mer t i mer = new Count DownTi mer ( 30000, 1000) { publ i c voi d onTi ck( l ong mi l l i sUnt i l Fi ni shed) {

pDi al og. set Message( " Memuat Dat a . . . \ nMenghi t ung Wakt u Mundur : " + mi l l i sUnt i l Fi ni shed / 1000) ; }

publ i c voi d onFi ni sh( ) { pDi al og. di smi ss( ) ;

Toast . makeText ( get Appl i cat i onCont ext ( ) , " Ser ver Ti dak Di t emukan" , Toast . LENGTH_SHORT) . show( ) ; }

} ;

@Over r i de

pr ot ect ed voi d onPr eExecut e( ) {

/ / TODO Aut o- gener at ed met hod st ub super . onPr eExecut e( ) ;

pDi al og = new Pr ogr essDi al og( Hasi l ScanAct i vi t y. t hi s) ; pDi al og. set I ndet er mi nat e( f al se) ;

pDi al og. set Cancel abl e( t r ue) ; pDi al og. show( ) ;

t i mer . st ar t ( ) ; } @Over r i de

pr ot ect ed St r i ng doI nBackgr ound( St r i ng. . . ar g0) { / * Pr oses ambi l dat a* /


(3)

I nput St r eam i si = ambi l _dat a_web( ) ; St r i ng i si _web = dat aweb_ke_st r i ng( i si ) ; hasi l JsonDekr i psi = Vi gener e. dekr i psi ( Sandi 95_2, i si _web) ;

t r y{

/ * Menggant i ke Json obj ek* /

JSONObj ect j son = new JSONObj ect ( hasi l JsonDekr i psi ) ; sukses = j son. get St r i ng( " sukses" ) ;

Log. e( " er r or " , " ni l ai sukses=" + sukses) ; JSONAr r ay hasi l = j son. get JSONAr r ay( " cek" ) ; i f ( sukses. equal s( " 0" ) ) {

f or ( i nt i = 0; i < hasi l . l engt h( ) ; i ++) { JSONObj ect c = hasi l . get JSONObj ect ( i ) ; dat a = c. get St r i ng( " dat a" ) . t r i m( ) ; Log. e( " ok" , " ambi l dat a 0" ) ; } }

el se i f ( sukses. equal s( " 1" ) ) {

f or ( i nt i = 0; i < hasi l . l engt h( ) ; i ++) { JSONObj ect c = hasi l . get JSONObj ect ( i ) ; NoPol i si =c. get St r i ng( " NoPol i si " ) . t r i m( ) ; Nama = c. get St r i ng( " Nama" ) . t r i m( ) ;

NoTel epon=c. get St r i ng( " NoTel epon" ) . t r i m( ) ; dat a1 = c. get St r i ng( " dat a1" ) . t r i m( ) ; Log. e( " ok" , " ambi l dat a 1" ) ; } }

el se{

f or ( i nt i = 0; i < hasi l . l engt h( ) ; i ++) { JSONObj ect c = hasi l . get JSONObj ect ( i ) ; dat a = c. get St r i ng( " dat a" ) . t r i m( ) ; Log. e( " ok" , " ambi l dat a 2" ) ; } }

}

cat ch ( Except i on e) {

Log. e( " er r or " , " t i dak bi sa ambi l dat a" ) ; Ambi l Dat a. t hi s. cancel ( t r ue) ; }

r et ur n nul l ; }

@Over r i de

pr ot ect ed voi d onPost Execut e( St r i ng r esul t ) {

Text Vi ew dat a2= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew3) ; Text Vi ew dat a3= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew4) ; Text Vi ew dat a5= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew6) ; Text Vi ew dat a6= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew7) ;

Li near Layout backgr ound =

( Li near Layout ) f i ndVi ewByI d( R. i d. hasi l Scan) ; Li near Layout f oot er =

( Li near Layout ) f i ndVi ewByI d( R. i d. f oot er ) ; super . onPost Execut e( r esul t ) ;

pDi al og. di smi ss( ) ; t i mer . cancel ( ) ;

i f ( sukses. equal s( " 1" ) ) {

i f ( I nt eger . par seI nt ( dat a1) == 1) {


(4)

dat a3. set Text ( Ht ml . f r omHt ml ( " <bi g><f ont col or =' #848484' ><b>Pel apor </ b></ f ont ><br ><f ont

col or =' #FFBF00' ><b>" +Nama+" <br >" +NoTel epon+" </ b></ f ont >" ) ) ; dat a5. set Vi si bi l i t y( Vi ew. GONE) ; dat a6. set Vi si bi l i t y( Vi ew. GONE) ;

backgr ound. set Backgr oundCol or ( Col or . RED) ; f oot er . set Vi si bi l i t y( Vi ew. VI SI BLE) ; } el se{

dat a2. set Vi si bi l i t y( Vi ew. GONE) ; dat a3. set Vi si bi l i t y( Vi ew. GONE) ; dat a5. set Vi si bi l i t y( Vi ew. GONE) ; dat a6. set Vi si bi l i t y( Vi ew. GONE) ;

Toast . makeText ( get Appl i cat i onCont ext ( ) , " St at us Aman" , Toast . LENGTH_SHORT) . show( ) ; }

} el se{

dat a2. set Text ( Ht ml . f r omHt ml ( " <b>Kendar aan Ti dak Memi l i ki Cat at an Kehi l angan</ b>" ) ) ;

dat a5. set Vi si bi l i t y( Vi ew. GONE) ; dat a6. set Vi si bi l i t y( Vi ew. GONE) ;

Toast . makeText ( get Appl i cat i onCont ext ( ) ,

" Kendar aan Ti dak Memi l i ki Cat at an Kehi l angan" , Toast . LENGTH_SHORT) . show( ) ; }

}

/ * FUNGSI MENGAMBI L DATA DENGAN I NPUTSTREAM===============================* / pr i vat e I nput St r eam ambi l _dat a_web( ) {

I nput St r eam cont ent = nul l ;

Ht t pCl i ent kl i en = new Def aul t Ht t pCl i ent ( ) ; Ht t pGet r eq = new Ht t pGet ( ur l ) ;

t r y{

Ht t pResponse r espon = kl i en. execut e( r eq) ; cont ent = r espon. get Ent i t y( ) . get Cont ent ( ) ; } cat ch ( Except i on e) {

e. pr i nt St ackTr ace( ) ; } r et ur n cont ent ;

}

/ * FUNGSI MERUBAH I NPUTSTREAM KE STRI NG===================================* / pr i vat e St r i ng dat aweb_ke_st r i ng( I nput St r eam i si ) {

Buf f er edReader r d = new Buf f er edReader ( new I nput St r eamReader ( i si ) , 4096) ;

St r i ng bar i s;

St r i ngBui l der sb = new St r i ngBui l der ( ) ; t r y{

whi l e( ( bar i s = r d. r eadLi ne( ) ) ! = nul l ) { sb. append( bar i s) ; }

r d. cl ose( ) ; } cat ch ( Except i on e) {

e. pr i nt St ackTr ace( ) ; } St r i ng i si _web = sb. t oSt r i ng( ) ; r et ur n i si _web;

} } }

6. Vigenere.java

/ * Dekr i psi Vi gener e 96 kar akt er ==========================================* / publ i c st at i c St r i ng dekr i psi ( St r i ng key, St r i ng pl ai nt ext ) {


(5)

St r i ng r esul t =" " ;

i nt of f set , of f set 1, shi f t , shi f t 1 = 0; i nt j =0;

f or ( i nt i =0; i <pl ai nt ext . l engt h( ) ; i ++) { / / mer ubah kar akt er ke bent uk desi mal shi f t = ( ( i nt ) key. char At ( j ) ) ;

of f set = ( ( i nt ) ( pl ai nt ext . char At ( i ) ) ) ; j ++;

j %=key. l engt h( ) ; / / OFFSET

/ / asci i spasi sampai dengan / ( 63 s/ d 78) i f ( of f set >= 32 && of f set <= 47) {

of f set 1 = of f set + 31; } / / asci i angka ( 53 s/ d 62)

el se i f ( of f set >= 48 && of f set <= 57) { of f set 1 = of f set + 5; }

/ / asci i : sampai dengan @ ( 79 s/ d 85) el se i f ( of f set >= 58 && of f set <= 64) {

of f set 1 = of f set + 21; } / / asci i hur uf besar ( 27 s/ d 52)

el se i f ( of f set >= 65 && of f set <= 90) { of f set 1 = of f set - 38; }

/ / asci i [ sampai dengan ' ( 86 s/ d 91) el se i f ( of f set >= 91 && of f set <= 96) {

of f set 1 = of f set - 5; } / / asci i hur uf keci l ( 1 s/ d 26)

el se i f ( of f set >= 97 && of f set <= 122) { of f set 1 = of f set - 96; }

/ / asci i { sampai dengan ~ ( 92 s/ d 95) el se i f ( of f set >= 123 && of f set <= 126) {

of f set 1 = of f set - 31; } el se{

of f set 1 = of f set * 0; } / / SHI FT

/ / asci i spasi sampai dengan / ( 63 s/ d 78) i f ( shi f t >= 32 && shi f t <= 47) {

shi f t 1 = shi f t + 31; } / / asci i angka ( 53 s/ d 62)

el se i f ( shi f t >= 48 && shi f t <= 57) { shi f t 1 = shi f t + 5; }

/ / asci i : sampai dengan @ ( 79 s/ d 85) el se i f ( shi f t >= 58 && shi f t <= 64) {

shi f t 1 = shi f t + 21; } / / asci i hur uf besar ( 27 s/ d 52) el se i f ( shi f t >= 65 && shi f t <= 90) {

shi f t 1 = shi f t - 38; }

/ / asci i [ sampai dengan ' ( 86 s/ d 91) el se i f ( shi f t >= 91 && shi f t <= 96) {

shi f t 1 = shi f t - 5; } / / asci i hur uf keci l ( 1 s/ d 26)

el se i f ( shi f t >= 97 && shi f t <= 122) { shi f t 1 = shi f t - 96; }

/ / asci i { sampai dengan ~ ( 92 s/ d 95) el se i f ( shi f t >= 123 && shi f t <= 126) {


(6)

el se{

shi f t 1 = shi f t * 0; }

i f ( ( of f set 1 >= 0) && ( shi f t 1 >= 0) ) { / / r umus vi gener e dekr i psi

i nt of f set 2 = ( ( of f set 1 - shi f t 1) + 1) ; i f ( of f set 2 < 1) {

of f set 2 = ( of f set 2 + 95) ; } / / mer ubah desi mal ke kar akt er / / hur uf keci l

i f ( ( of f set 2 >= 1 && of f set 2 <= 26) ) { r esul t +=( char ) ( of f set 2 + 96) ; } / / hur uf besar

el se i f ( ( of f set 2 >= 27 && of f set 2 <= 52) ) { r esul t +=( char ) ( of f set 2 + 38) ; } / / angka

el se i f ( ( of f set 2 >= 53 && of f set 2 <= 62) ) { r esul t +=( char ) ( of f set 2 - 5) ; } / / spasi s/ d /

el se i f ( ( of f set 2 >= 63 && of f set 2 <= 78) ) { r esul t +=( char ) ( of f set 2 - 31) ; } / / : s/ d @

el se i f ( ( of f set 2 >= 79 && of f set 2 <= 85) ) { r esul t +=( char ) ( of f set 2 - 21) ; } / / [ sampai dengan '

el se i f ( ( of f set 2 >= 86 && of f set 2 <= 91) ) { r esul t +=( char ) ( of f set 2 + 5) ; } / / { sampai dengan ~

el se i f ( ( of f set 2 >= 92 && of f set 2 <= 95) ) { r esul t +=( char ) ( of f set 2 + 31) ; } el se{

r et ur n r esul t ; } }

el se{

r esul t =r esul t +pl ai nt ext . char At ( i ) ; }

}

r et ur n r esul t ; }