RANCANG BANGUN APLIKASI PEMUNGUTAN SUARA BERBASIS MOBILE MENGGUNAKAN MEDIA
KARTU NEAR FIELD COMMUNICATION
SKRIPSI
Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer (S.Kom.)
Andreas Agustinus Wong 00000019633
PROGRAM STUDI INFORMATIKA
Lembar Pengesahan Skripsi
RANCANG BANGUN APLIKASI PEMUNGUTAN SUARA BERBASIS MOBILE MENGGUNAKAN MEDIA
KARTU NEAR FIELD COMMUNICATION
Oleh
Nama : Andreas Agustinus Wong
NIM 00000019633
Program Studi : Informatika
Fakultas : Teknik dan Informatika Tangerang, 20 Juni 2021
Ketua Sidang Dosen Penguji
Digitally signed by Dennis Gunawan
DN: CN=Dennis Gunawan, C=ID, OU=Department of Informatics, O=Universitas Multimedia Nusantara, [email protected] Reason: I am approving this document
Location: Jakarta Date: 2021 06-23 13:30:46
Andrey Andoko, M.Sc. Dennis Gunawan, S.Kom., M.Sc.
Dosen Pembimbing
Yaman Khaeruzzaman, M.Sc,
Ketua Program Studi Informatika
Marlinda Vasty Overbeek, S.Kom., M.Kom.
Digitally signed by Yaman Khaeruzzaman
DN: cn=Yaman Khaeruzzaman, o=Universitas Multimedia Nusantara, ou=Informatics, email=yaman.khaeruzzaman@u mn.ac.id, c=ID
Date: 2021.06.24 10:41:32 +07'00'
Digitally signed by Marlinda Vasty Overbeek
Date: 2021.06.24 12:34:22 +07'00'
PERNYATAAN TIDAK MELAKUKAN PLAGIAT
Dengan ini saya:
Nama : Andreas Agustinus Wong
NIM 00000019633
Program Studi : Informatika
Fakultas : Teknik dan Informatika
menyatakan bahwa Skripsi yang berjudul “Rancang Bangun Aplikasi Pemungutan Suara Berbasis Mobile Menggunakan Media Kartu Near Field Communiation” ini adalah karya ilmiah saya sendiri, bukan plagiat dari karya ilmiah saya sendiri, bukan plagiat dari karya ilmiah yang ditulis oleh orang lain atau lembaga lain, dan semua karya ilmiah orang lain atau lembaga lain yang dirujuk dalam Skripsi ini telah disebutkan sumber kutipannya serta dicantumkan di Daftar Pustaka.
Jika di kemudian hari terbukti ditemukan kecurangan/ penyimpangan, baik dalam pelaksanaan Skripsi maupun dalam penulisan laporan Skripsi, saya bersedia menerima konsekuensi dinyatakan TIDAK LULUS untuk mata kuliah Skripsi yang telah saya tempuh.
Tangerang, 20 Juni 2021
Andreas Agustinus Wong
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Sebagai sivitas akademik Universitas Multimedia Nusantara, saya yang bertanda tangan dibawah ini:
Nama : Andreas Agustinus Wong
NIM 00000019633
Program Studi : Informatika
Fakultas : Teknik dan Informatika Jenis Karya : Skripsi
Demi pengembangan ilmu pengetahuan, menyetujui dan memberikan izin kepada Universitas Multimedia Nusantara hak Bebas Royalti Non-eksklusif (Non- exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul:
Rancang Bangun Aplikasi Pemungutan Suara Berbasis Mobile Menggunakan Media Kartu Near Field Communiation
beserta perangkat yang diperlukan.
Dengan Hak Bebas Royalti Non-eksklusif ini, pihak Universitas Multimedia Nusantara berhak menyimpan, mengalihmedia atau format-kan, mengelola dalam bentuk pangkalan data (database), merawat, dan mendistribusi dan menampilkan atau mempublikasikan karya ilmiah saya di internet atau media lain untuk kepentingan akademis, tanpa perlu meminta izin dari saya maupun memberikan
royalti kepada saya, selama tetap mencantumkan nama saya sebagai penulis karya ilmiah tersebut.
Demikian pernyataan ini saya buat dengan sebenarnya untuk dipergunakan sebagaimana mestinya.
Tangerang, 20 Juni 2021
Andreas Agustinus Wong
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa atas berkat yang telah diberikan dalam mengerjakan laporan Skripsi yang berjudul “Rancang Bangun Aplikasi Pemungutan Suara Berbasis Mobile Menggunakan Media Kartu Near Field Communication” dapat diselesaikan dengan baik dan tepat waktu.
Penulis juga mengucapkan terima kasih kepada:
1. Dr. Ninok Leksono M.A, selaku Rektor Universitas Multimedia Nusantara yang memberi inspirasi bagi penulis untuk berprestasi,
2. Dr.Eng. Niki Prastomo, S.T., M.Sc., selaku Dekan Fakultas Teknik dan Informatika Universitas Multimedia Nusantara,
3. Marlinda Vasty Overbeek, S.Kom., M.Kom. sebagai Ketua Program Studi Informatika atas dukungan selama proses pengerjaan laporan magang hingga selesai,
4. Yaman Khaeruzzaman, M.Sc, yang telah sabar membimbing, menerima penulis dengan baik untuk berkonsultasi, dan mengajarkan penulis tata cara menulis karya ilmiah dengan benar,
5. Para dosen yang telah memberikan ilmu dan arahan kepada penulis selama masa perkuliahan,
6. Orang tua serta keluarga yang telah menemani, memberikan dukungan, dan semangat dari awal masa perkuliahan hingga tersusunnya laporan Skripsi ini,
7. Teman-teman terdekat atas bantuan, semangat, dan hiburan di kala penulis merasa kesulitan dalam menyusun laporan Skripsi ini.
Semoga Skripsi ini dapat bermanfaat, baik sebagai sumber informasi maupun sumber inspirasi, bagi para pembaca.
Tangerang, 3 Juni 2021
Andreas Agustinus Wong
RANCANG BANGUN APLIKASI PEMUNGUTAN SUARA BERBASIS MOBILE MENGGUNAKAN MEDIA
KARTU NEAR FIELD COMMUNICATION
ABSTRAK
Pemilihan umum adalah bagian dari pelaksanaan prinsip demokrasi di Indonesia, dalam UUD 1945 pasal 22E. Model pemilu Indonesia sendiri memiliki karakteristik yang berjenjang dan pemilu di Indonesia pun diadakan pada hampir semua level dalam struktur pemerintahan baik pada tingkat legislatif sampai eksekutif. Dalam proses melakukan pemilihan umum tersebut tentu membutuhkan banyak biaya dan waktu yang harus diluangkan, mulai dari proses memilih sampai proses menghitung surat suara, serta surat suara yang tidak ramah lingkungan karena harus dicetak berulang sesuai dengan periode pemilu tersebut. Perancangan dan pembangunan aplikasi pemungutan suara ini berbasis mobile menggunakan media kartu NFC dengan SDK flutter yang menggunakan bahasa pemrograman Dart, database menggunakan cloud server dari Mongo DB, dan web server menggunakan framework REST API dengan bahasa pemgrograman Javascript. Algoritma hashing SHA-1 dan algoritma enkripsi AES diimplementasikan untuk menunjang sistem keamanan dari aplikasi pemungutan suara tersebut. Pengujian dari aplikasi ini dilakukan dengan cara iterasi proses uji skenario. Berdasarkan uji skenario, didapatkan rata-rata waktu yang dibutuhkan untuk melakukan proses pemilihan adalah 41,5 detik per individu, dan rata-rata waktu yang dibutuhkan untuk proses menghitung suara adalah 20,3 detik per individu. Hasil pengujian dan pengukuran ini mengindikasikan bahwa aplikasi pemungutan suara berbasis mobile menggunakan media kartu near fied communication telah berhasil dirancang dan dibangun.
Kata kunci: AES, NFC, Pemungutan Suara, SHA-1
DESIGN AND DEVELOPMENT OF VOTING APPLICATION BASED ON MOBILE DEVICE USING NEAR FIELD
COMMUNICATION MEDIA CARD
ABSTRACT
General elections are part of the implementation of democratic principles in Indonesia, in article 22E of the 1945 Constitution. The Indonesian electoral model itself has cascading characteristics and election in Indonesia are held at almost all level in the goverment structure from legislative to executive levels. In the process of conducting the election, of course, requires a lot of money and time, starting from the voting process to the process of counting the votes and ballots which are not environmentally friendly because they have to be printed repeatedly according to the election period. The design and development of this voting application is mobile based using NFC card media, using flutter with Dart programming language, the database uses the Mongo DB cloud server, and the web server uses the REST API framework with the Javascript programming language. SHA-1 hashing algorithm and AES encryption algorithm are implemented to support the security system of the voting application. Testing of this application is done by iterating the scenario test process. Based on the scenario test, it was found that the average time needed to carry out the voting process was 41.5 seconds per individual, and the average time require for the process of counting votes was 20.3 seconds per individual. The results of these test and measurements indicate that a mobile-based voting application using near field communication card media has been designed and build correctly.
Keywords: AES, NFC, SHA-1, Voting
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PENGESAHAN ... ii
PERNYATAAN TIDAK MELAKUKAN PLAGIAT ... iii
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ... iv
KATA PENGANTAR ... vi
ABSTRAK ... viii
ABSTRACT ... ix
DAFTAR ISI ... x
DAFTAR GAMBAR ... xii
DAFTAR TABEL ... xiv
BAB 1 PENDAHULUAN... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 3
1.3 Batasan Masalah ... 4
1.4 Tujuan Penelitian ... 5
1.5 Manfaat Penelitian ... 5
1.6 Sistematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 7
2.1 Pemilihan Umum ... 7
2.2 Near Field Communication ... 7
2.3 Flutter ... 8
2.4 REST API ... 8
2.5 AES (Advanced Encryption Standard) ... 9
2.6 SHA-1 ... 10
BAB 3 METODOLOGI PENELITIAN ... 11
3.1 Metodologi Penelitian ... 11
3.2 Perancangan Aplikasi ... 12
3.2.1 Model Aplikasi ... 12
3.2.2 Flowchart Utama ... 13
3.2.3 Flowchart Halaman Admin ... 14
3.2.4 Flowchart Halaman Pemilih ... 22
3.2.5 Flowchart Daftar Pemilih ... 28
3.2.6 Desain dan Tampilan Aplikasi ... 30
3.3 Analisa Kebutuhan Aplikasi ... 36
BAB 4 HASIL DAN DISKUSI... 38
4.1 Spesifikasi Perangkat... 38
4.2 Implementasi ... 38
4.2.1 Web Server & Database ... 39
4.2.2 Halaman Utama ... 56
4.2.3 Halaman Admin ... 58
4.2.4 Halaman Pemilih ... 65
4.3 Pengujian Aplikasi... 70
4.4 Evaluasi Hasil Pengujian ... 70
BAB 5 SIMPULAN DAN SARAN ... 73
5.1 Simpulan ... 73
5.2 Saran ... 73
DAFTAR PUSTAKA ... 75
DAFTAR LAMPIRAN ... 77
DAFTAR GAMBAR
Gambar 3.1 Model Aplikasi ... 12
Gambar 3.2 Flowchart Utama ... 14
Gambar 3.3 Flowchart Halaman Admin ... 15
Gambar 3.4 Flowchart Membaca Kartu Suara ... 16
Gambar 3.5 Flowchart Dekripsi Data ... 17
Gambar 3.6 Flowchart Load Data Pemilih ... 18
Gambar 3.7 Flowchart List Suara ... 19
Gambar 3.8 Flowchart Mengirimkan Data Suara ke Server ... 20
Gambar 3.9 Flowchart Mengatur Kandidat ... 21
Gambar 3.19 Flowchart Menampilkan Perolehan Suara ... 22
Gambar 3.11 Flowchart Load Data Kandidat Sesuai Kategori ... 23
Gambar 3.12 Flowchart Halaman Pemilih ... 24
Gambar 3.13 Flowchart Masuk ke Halaman Pilih Kandidat ... 25
Gambar 3.14 Flowchart Hashing Data ... 26
Gambar 3.15 Flowchart Enkripsi Data ... 27
Gambar 3.16 Flowchart Memasukkan Data ke Database ... 28
Gambar 3.17 Flowchart Daftar User ... 29
Gambar 3.18 Halaman Utama ... 30
Gambar 3.19 Halaman Kategori Suara ... 31
Gambar 3.20 Halaman Pilih Kandidat. ... 32
Gambar 3.21 Halaman Memasukan Data Suara ke Kartu NFC ... 33
Gambar 3.22 Halaman Membaca Kartu Suara... 34
Gambar 3.23 Halaman Atur Kandidat ... 35
Gambar 3.24 Halaman List Suara ... 36
Gambar 3.25 Halaman Perolehan Suara ... 37
Gambar 3.26 Kartu NFC ... 38
Gambar 4.1 Router Get Data Pemilih ... 45
Gambar 4.2 Router Add New Pemilih ... 45
Gambar 4.3 Router Vote Endpoint Pemilih ... 46
Gambar 4.4 Router Set State Endpoint Pemilih ... 47
Gambar 4.5 Router Get All Kandidat ... 48
Gambar 4.6 Router Get Specific Kandidat ... 48
Gambar 4.7 Router Update Kandidat ... 49
Gambar 4.8 Router Add New Kandidat ... 49
Gambar 4.9 Router Delete Kandidat. ... 50
Gambar 4.10 Potongan Code Router Membaca Kartu Suara... 51
Gambar 4.11 Router Get All Endpoint DPR ... 52
Gambar 4.12 Router Add New Endpoint DPR ... 52
Gambar 4.13 Router Get All Endpoint DPD ... 53
Gambar 4.14 Router Add New Endpoint DPD ... 53
Gambar 4.15 Router Get All Endpoint DPRD Kabupaten ... 54
Gambar 4.16 Router Add New Endpoint DPRD Kabupaten ... 54
Gambar 4.17 Router Get All Endpoint DPRD Provinsi ... 55
Gambar 4.18 Router Add New Endpoint DPRD Provinsi ... 56
Gambar 4.19 Potongan Code Initate Service NFC ... 57
Gambar 4.20 Function Check NFC ... 57
Gambar 4.21 Potongan Code Function Check User ... 57
Gambar 4.22 Potongan Code Function Create New Pemilih. ... 58
Gambar 4.23 Atur Kandidat ... 59
Gambar 4.24 Modal Kandidat ... 59
Gambar 4.25 Process Baca dan Deskripsi Kartu NFC ... 60
Gambar 4.26 Memeriksa Nilai Hash ... 61
Gambar 4.27 Function Save to Hive Database ... 62
Gambar 4.28 Function Check Duplicate Data ... 62
Gambar 4.29 Function Insert Kartu Suara ... 63
Gambar 4.30 Function Vote ... 64
Gambar 4.31 Halaman Perolehan Suara ... 65
Gambar 4.32 Modal Perolehan Suara ... 65
Gambar 4.33 Halaman Kategori Pilihan ... 66
Gambar 4.34 Halaman Detail Kandidat ... 67
Gambar 4.35 Memasukkan Data Suara ke Offline Database ... 68
Gambar 4.36 Halaman Simpan dan Enkripsi Data Suara ... 69
Gambar 4.37 Function Encrypt Data ... 69
Gambar 4.38 Function Menyimpan Data Suara ke Server ... 70
DAFTAR TABEL
Tabel 4.1 Kandidat Schema ... 40
Tabel 4.2 Pemilih Schema ... 41
Tabel 4.3 DPR Schema ... 42
Tabel 4.4 DPD Schema ... 43
Tabel 4.5 DPRD Kabupaten Schema ... 43
Tabel 4.6 DPRD Provinsi Schema ... 44
Tabel 4.5 Hasil Proses Pemilihan ... 71
Tabel 4.6 Hasil Proses Admin ... 71