Simulasi E-Voting Sistem Dengan Menggunakan Metode Scratch and Vote (S&V)
4. PERANCANGAN APLIKASI 1 Perancangan Aplikasi secara umum
2. Karena properti semantic security dari kriptosistem Paillier ini, maka suara yang masuk dapat dilindungi dari serangan yang bersifat Chosen Plaintext attack, namun karena sifatnya yang malleable, maka suara yang masuk masih dapat diserang melalui metode Chosen Ciphertext attack, kecuali apabila menggunakan skema ROM 3. Properti malleability (kelenturan logika
didalam pemrograman komputer )yang dimiliki oleh kriptosistem Paillier ini.
4. PERANCANGAN APLIKASI 4.1 Perancangan Aplikasi secara umum
Aplikasi dibagi menjadi 3 adalah sebagai berikut.
1. Aplikasi Admin, yaitu aplikasi yang digunakan oleh admin untuk manage kertas suara, manage data pemilih dan manage data candidate. Aplikasi ini berbasis desktop dan dibangun dengan menggunakan platform J2SE.
2. Aplikasi Ballot (Kertas Suara), yaitu aplikasi yang berbentuk website yang berfungsi sebagai kertas suara seperti kertas suara pada umumnya. Voter yang telah terdaftar dapat memberikan hak suaranya dengan memilih kandidat yang tertera pada aplikasi ini. Aplikasi ini dibangun dengan menggunakan JSP.
3. Aplikasi Bulletin Board, berbentuk website yang berfungsi untuk menampilkan hasil perhitungan suara. Aplikasi ini berbasis website dan dibangun menggunakan platform JSP. Untuk menggunakan aplikasi bulletin board, PC yang digunakan sebagai device, harus didukung oleh internet sehingga dapat diakses oleh voter kapanpun dan dimanapun
Secara garis besar, aliran kerja bisnis dari aplikasi ini dijelaskan dalam Gambar 2
Gambaran Umum Sistem.
Gambar 2 Gambaran Umum Sistem
4.2 Perancangan Proses
4.2.1 Perancangan Proses Aplikasi Admin
Aplikasi admin adalah sebuah aplikasi desktop. Aplikasi ini secara garis besar berhubungan dengan proses management kertas suara. Semua data yang berhubungan dengan pemilihan akan dimanage oleh seorang admin dan disimpan dalam sebuah database server. Selain itu pada aplikasi ini juga terdapat proses enkripsi. Dimana pada proses enkripsi ini nanti akan menghasilkan private key dan public key yang digunakan untuk menjaga kerahasiaan data vote hasil pilihan
voter.
Manage Data Candidate
(from Use Cases)
Registrasi Data Voter
(from Use Cases)
Manage Data Admin
(from Use Cases)
Cetak Barcode
(from Use Cases)
Admin
(f rom Actors)
Baca Barcode
(from Use Cases)
login
(from Use Cases)
<<extend>> <<extend>> <<extend>> <<extend>>
<<extend>>
Gambar 3Use Case Aplikasi Admin Diagram use case pada Gambar 3Use Case Aplikasi Admin menggambarkan bahwa admin selaku actor dapat menggunakan fungsi-fungsi yang ditawarkan sistem yaitu manage data candidate, registrasi data voter, manage data admin, cetak barcode dan baca barcode. Tetapi sebelum menggunakan fungsi-fungsi tersebut admin harus melakukan proses login terlebih dahulu. Adapun masing-masing fungsionalitas dari usecase yaitu:
1. manage data candidate, berfungsi untuk mengatur data candidate yang akan dipilih, 2. registrasi data voter, berfungsi untuk
menginputkan data voter yang berhak memberikan suara,
3. manage data admin, berfungsi untuk mengatur hak akses admin,
4. cetak barcode, berfungsi untuk mengenerate gambar barcode yang akan ditampilkan pada kertas suara.
5
5. baca barcode, berfungsi untuk membaca image barcode guna mencocokan hasil voted
4.2.2 Perancangan Proses Aplikasi Ballot
Aplikasi Ballot adalah sebuah aplikasi web yang berfungsi sebagai kertas suara yang berisi daftar nama kandidat yang dapat dipilih oleh
voter. Bentuk dan fungsinya sama halnya
dengan kertas suara biasa pada umumnya, tapi ini ditampilkan dalam sebuah webpage.
Print Ballot
(from <Use Case Name>)
Pilih Candidate
(from <Use Case Name>)
Voter
(f rom Actors)
login
(from <Use Case Name>)
<<extend>>
<<extend>>
Gambar 4 Use Case Aplikasi Ballot Diagram use case aplikasi ballot diatas menggambarkan bahwa untuk masuk ke aplikasi ballot ini voter harus melakukan proses login terlebih dahulu. Bila voter telah berhasil masuk, voter dapat melakukan proses pilih kandidat. Proses print dapat dilakukan bila kedua proses diatas telah dilakukan. Adapun masing-masing fungsionalitas dari
usecase yaitu:
1. Login Voter, sebelum voter dapat mengisi kertas suara yang diberikan, terlebih dahulu harus melalui proses autentikasi
voter. Proses ini bertugas untuk mengecek
apakah seorang voter mempunyai hak untuk mengisi kertas suara. Hal ini berguna agar seorang voter hanya dapat memberikan suara nya hanya satu kali saja.
2. Pilih Candidate, voter diberikan webpage pilih candidate yang berisi list daftar kandidat. Kemudian voter memilih salah satu kandidat yang telah ditampilkan pada layar.
3. Print Ballot, voter dapat mencetak webpage pilih kandidat yang telah dipilih sebelumnya yang mana nantinya dapat digunakan sebagai bukti bila terdapat kesalahan.
4.2.3 Perancangan Proses Aplikasi Bulletin Board
Aplikasi Bulletin Board adalah sebuah halaman web yang berfungsi sebagai papan pengumuman yang berisi daftar nama voter yang telah memilih kandidat dan hasil dari perhitungan suara. Halaman web ini bersifat
read-only dan dapat diakses oleh siapapun
Gambar 5 Use Case Aplikasi Buletin Board Diagram use case pada Gambar 5 Use Case Aplikasi Buletin Board menggambarkan bahwa pada aplikasi bulletin board voter hanya dapat melakukan proses view hasil suara. Aplikasi ini hanya menampilkan jumlah perhitungan suara yang telah masuk ke dalam database beserta daftar nama voter yang telah menggunakan hak pilihnya. Aplikasi bulletin
board bersifat read-only. 5. UJI COBA
Ujicoba dilakukan untuk mengetahui apakah semua fungsi pada simulasi e-voting sistem ini berjalan sesuai dengan yang diinginkan. Ujicoba disertai penjelasan mengenai parameter yang digunakan, cara pengujian dan hasil uji cobanya yang disertai analisa hasil dari uji coba tersebut.
5.1 Uji Coba Fungsionalitas Aplikasi Admin
Ujicoba fungsionalitas pada aplikasi admin akan dilakukan pada semua aspek seperti yang terlihat pada Gambar 5 Interface Flow Diagram Aplikasi Admin
6
Gambar 5 Interface Flow Diagram Aplikasi Admin
5.1.1 Ujicoba Registrasi Data Voter
Dalam penginputan data voter pada form manage data voter semua textbox input harus diisi secara benar. Khusus untuk textbox input id ballot tidak boleh terjadi duplikasi data. Bila id ballot yang diinputkan admin ternyata sama maka akan muncul konfirmasi yang seperti yang terlihat pada Gambar 6 Skenario Ujicoba Input Id Ballot yang Sama. Hal ini dikarena id ballot bersifat unik, setiap voter harus memiliki id ballot yang berbeda.
Gambar 6 Skenario Ujicoba Input Id Ballot yang Sama
Dari hasil uji coba dapat ditarik kesimpulan bahwa fungsionalitas registrasi data voter : Usable, karena sifatnya yang user
interaktif. Setiap ada kesalahan dalam menginputkan data diberi konfirmasi sehinga menjadi tahu dimana letak kesalahannya data inputan.
5.1.2 Ujicoba Manage Data Candidate
Bagi admin yang ingin menginput data kandidat yang baru maka admin harus memilih data kandidat yang lama untuk diedit dengan data kandidat yang baru pada tabel data
kandidat. Setelah button update dipilih untuk mengeksekusi input data kandidat yang diinputkan sebelumnya tadi maka akan muncul konfirmasi seperti pada Gambar 7 Skenario Ujicoba Update Data Candidate.
Gambar 7 Skenario Ujicoba Update Data Candidate
Dari hasil uji coba dapat ditarik kesimpulan bahwa fungsionalitas login voter :
Usable, karena sifatnya yang user interaktif. Setiap ada aksi dalam menginputkan data diberi konfirmasi untuk meyakinkan tindakan akan dilakukan selanjutnya.
5.1.3 Proses Enkripsi
Proses enkripsi sangat diperlukan dalam aplikasi ini untuk meningkatkan keamanan datanya. Dengan hanya memilih button
enkripsi maka data inputan sebelumnya akan
terenkripsi secara otomatis. Tetapi sebelum itu akan muncul konfirmasi seperti Gambar 8 Skenario Ujicoba Proses Enkripsi untuk memastikan eksekusi proses enkripsi, seperti yang terlihat pada Gambar 8
Gambar 8 Skenario Ujicoba Proses Enkripsi Dari proses enkripsi pada form diatas maka dapat dilihat contoh hasil enkripsi dan deskripsi dari algoritma Paillier dengan nilai
plaintext yang random pada Gambar
7
Dari hasil ujicoba proses enkripsi dapat ditarik kesimpulan bahwa fungsionalitas pilih kandidat :
Usable, karena sifatnya yang user interaktif. Setiap ada aksi dalam menginputkan data diberi konfirmasi untuk meyakinkan tindakan akan dilakukan selanjutnya.
Reliable, karena sifatnya yang dapat dipercaya. Sistem ini menggunakan proses enkripsi untuk menjaga privacy data hasil pilih kandidat sehingga tidak sembarang orang yang dapat mengubah dan melihat datanya.
5.1.4 Ujicoba Cetak Barcode
Admin dapat mencetak image barcode dengan mengklik button save. Tetapi sebelumnya harus memilih ballot id yang akan dibuat
image barcode pada daftar message hasil
enkripsi yang terdapat pada form cetak barcode. Bila button save dipilih maka akan muncul konfirmasi seperti Gambar 10 Skenario Ujicoba Save Image Barcode untuk memastikan eksekusi dari save image barcode.
Gambar 10 Skenario Ujicoba Save Image Barcode
Dari hasil uji coba dapat ditarik kesimpulan bahwa fungsionalitas login voter :
Usable, karena sifatnya yang user interaktif. Setiap ada aksi dalam menginputkan data diberi konfirmasi untuk meyakinkan tindakan yang akan dilakukan selanjutnya.
5.1.5 Ujicoba Baca Barcode
Baca barcode adalah proses membaca isi dari
image barcode yang tertera disetiap kertas
suara yang diterima oleh voter setelah melakukan pemilihan kandidat pada aplikasi
ballot. Input dari proses baca barcode adalah image barcode yang discan. Outputnya adalah
hasil suara pilihan voter. Bila data inputan belum discan maka akan muncul konfirmasi seperti Gambar 10 Skenario Ujicoba Save Image Barcode.
Gambar 11 Skenario Ujicoba Baca Barcode Dari hasil uji coba dapat ditarik kesimpulan bahwa fungsionalitas baca barcode :
Usable, karena sifatnya yang user interaktif. Setiap ada aksi dalam menginputkan data diberi konfirmasi untuk meyakinkan tindakan yang akan dilakukan sela
5.2 Uji Coba Fungsionalitas Aplikasi Ballot
Ujicoba fungsionalitas pada aplikasi ballot akan dilakukan pada semua fungsi dan interface aplikasi ballot. Berikut aliran proses aplikasi ballot :
Gambar 12 Aliran proses aplikasi ballot
5.2.1 Ujicoba-Login Voter
Proses login voter terjadi pada halaman login ketika voter ingin memasuki aplikasi ballot. Antarmuka webpage untuk proses login tampak seperti Gambar 13 Dimana terdapat satu button submit dan dua textfield yang harus diisi secara benar oleh voter.
8
Gambar 13 Webpage Login voter Aplikasi akan menjalankan proses login ketika
voter menekan button submit. Bila hasil dari
proses login voter dinyatakan berhasil maka
voter diijinkan untuk melanjutkan ke proses
berikutnya. Tapi bila hasil dari proses login gagal maka voter tidak dapat melanjutkan ke proses berikutnya. Seperti pada Gambar 14, ini aplikasi yang muncul jika proses login voter dinyatakan berhasil.
Gambar 14 Skenario ujicoba login voter berhasil
5.2.2 Ujicoba-Pilih Candidate
Voter yang telah berhasil login akan memasuki
webpage pemilihan candidate seperti Gambar 15 dibawah ini
Gambar 15 Webpage pemilihan candidate
Voter dapat memilih kandidat dengan menklik
salah satu radiobutton yang mewakili satu value dari kandidat sesuai dengan keinginannya. Setelah itu klik button ‘Submit’ untuk mengeksekusi pilihannya tadi. Bila proses eksekusi pilihan voter berhasil maka akan muncul halaman web seperti Gambar 16 dibawah ini
Gambar 16 Skenario ujicoba pemilihan candidate berhasil
Proses pemilihan kandidat dinyatakan berhasil bila hasil proses dekripsi sama dengan nilai awal sebelum dienkripsi (plaintext) dan jumlah data sebelum dienkripsi sama dengan jumlah data sesudah didekripsi. Ketepatan dalam proses deskripsi sangat diperlukan agar tidak terjadi kesalahan dalam proses perhitungan suara. Berikut Gambar 17 Skenario Ujicoba Proses Dekripsi Algoritma Paillier dan Perbandingan Jumlah Data Sebelum dan Sesudah Enkripsi.
Gambar 17 Skenario Ujicoba Proses Dekripsi Algoritma Paillier dan Perbandingan Jumlah
Data Sebelum dan Sesudah Dienkripsi Dari hasil ujicoba dapat ditarik kesimpulan bahwa fungsionalitas pilih kandidat :
Correctness, karena adanya proses autentikasi dari setiap voter yang akan menggunakan hak pilih suara nya. Bila
voter tersebut telah melakukan pemilihan
kandidat dengan data login yang sama pada proses sebelumnya maka voter tersebut tidak dapat melakukan pemilihan lagi.
Usable, karena sifatnya yang user interaktif. Diberi konfirmasi kesalahan dimana letak kesalahan data inputan. Reliable, karena sifatnya yang dapat
dipercaya. Sistem ini menggunakan proses enkripsi untuk menjaga privacy data hasil pilih kandidat sehingga tidak sembarang orang dapat mengubah dan melihat datanya. Jika ada tindakan jahat dari
9
pihak-pihak dengan secara sengaja mengubah data maka hasil pilih kandidat tersebut menjadi data gagal.
High privacy, data hanya dapat dibaca bila telah melalui proses deskripsi.
Semua uji coba fungsionalitas menghasilkan hasil yang positif. Semua fungsi yang dibutuhkan dapat berjalan sesuai skenario yang telah dicanangkan. Hanya saja, pada saat pengujian, penulis menemui permasalahan “problem with content” terkait dengan nilai random yang diciptakan pada proses enkripsi. Karena ada kemungkinan nilai random sama maka akan berpengaruh pada proses perhitungan.
6. KESIMPULAN
Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba perangkat lunak yang dilakukan, penulis mengambil kesimpulan sebagai berikut:
a. Scratch dan Vote, sebuah kriptografi yang simple dan cocok untuk diterapkan pada e-voting sistem
b. E-voting sistem yang dibangun mampu memenuhi fungsionalitas yang dibutuhkan yaitu sistem perangkat lunak pemilihan suara yang correctness, usable, reliable dan transparent elections.
Correctness, karena ketepatan dalam mendekripsi kembali sebuah message yang telah terenkripsi.
Usable, karena sifatnya yang mudah digunakan dan user interaktif. Dengan maksud bila terjadi kesalahan akan mendapat konfirmasi langsung dari sistem.
Reliable, karena sifatnya yang dapat dipercaya. Sistem ini menggunakan proses enkripsi untuk menjaga privacy data sehingga tidak sembarang orang dapat mengubah dan melihat datanya. Transparant election, karena semua
hasil pilihan voter akan ditampilkan di sebuah bulletin board.
Auditable, karena hasil suara voter dapat diperiksa dan dicocokkan. Hasil pengujian performansi memperlihatkan hasil yang variatif. Tingkat kebaikan performansi dari aplikasi e-voting lebih cenderung ditentukan oleh perangkat yang digunakan.
7. SARAN
Dalam pembuatan Tugas Akhir ini, terdapat beberapa kemungkinan pengembangan aplikasi yang dilakukan, yaitu:
• Mengganti sistem keamanan database dengan menggunakan teknologi biometri, yaitu menggunakan pola sidik jari sebagai pengganti password dalam mengakses database.
• Menambahkan firewall untuk keamanan bulletin board.
• Sering melakukan recovery data (upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan)
• Type barcode yang digenerate dapat dipilih sesuai dengan type reader yang dipunya.
• Jumlah kandidat yang dinputkan dapat berubah-rubah sesuai dengan keinginan. admin.