The Development of Voting Result Data Transfer to the Central Tabulating Facilities.

PENGEMBANGAN SISTEM PENGIRIMAN SUARA VOTER
MENUJU CENTRAL TABULATING FACILITIES (CTF)

MEDRIA KUSUMA DEWI HARDHIENATA

DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA
DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2009

PENGEMBANGAN SISTEM PENGIRIMAN SUARA VOTER
MENUJU CENTRAL TABULATING FACILITIES (CTF)

MEDRIA KUSUMA DEWI HARDHIENATA

Skripsi
Sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2009

ABSTRACT
MEDRIA KUSUMA DEWI HARDHIENATA.The Development of Voting Result Data Transfer to
the Central Tabulating Facilities. Under the direction of SRI NURDIATI and SUGI GURITMAN.
Advances in election voting process nowadays has triggered the application of virtualization
technique in several countries. Most studies raised concern about Online Voting which provides cost
saving and convinience. The voting system using virtual network technology aims to reduce
considerable calculation time as well as necessary human resources. Despite this, Indonesia still
performs voting during election manually. Therefore, this research is performed to study the
application of small scale Online Voting at the Department of Computer Science, Bogor Agricultural
University as well as studying its further possibility for applying this technique in larger scales.
Considering the complexity in building a complete secure online election voting process, this research
is focused only in developing a system to send vote from voter to Central Tabulating Facilities (CTF)
by implementing a modified secure election protocol with Two Central Facilities. It is also conducted
to implement earlier research recommendations to make the system more secure as well as how to

integrate an election voting system from a single host into multiple hosts by using Java Web Start
Technology.
Keywords: Online Voting, voter, Central Tabulating Facilities, Two Central Facilities

Judul
Nama
NIM

:Pengembangan Sistem Pengiriman Suara Voter Menuju Central Tabulating Facilities (CTF)
:Medria K.D.Hardhienata
:G64052475

Menyetujui:

Pembimbing I,

Pembimbing II,

Dr. Ir. Sri Nurdiati, M.Sc
NIP 19601126 198601 2 001


Dr. Sugi Guritman
NIP 19620927 199203 1 004

Mengetahui,
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor

Dr. Drh. Hasim, DEA
NIP 19610328 198601 1 002

Tanggal Lulus :

RIWAYAT HIDUP
Medria Kusuma Dewi Hardhienata dilahirkan di kota Stuttgart, Jerman Barat, pada tanggal 22
Agustus 1986 dari pasangan Ibu Sri Setyaningsih dan Bapak Soewarto Hardhienata. Pada tahun 2005
penulis lulus dari Sekolah Menengah Atas (SMA) Negeri 1 Bogor dan diterima di Program Studi Ilmu
Komputer Institut Pertanian Bogor melalui jalur Seleksi Masuk Penerimaan Mahasiswa (SPMB).
Penulis aktif berpartisipasi dalam National University English Debate Championship yang
diselenggarakan pada tanggal 24-26 April 2007 dan berhasil meraih juara Third Runner Up.

Pada bulan Januari hingga Maret 2007 penulis menjadi anggota Tim Multimedia Publikasi Satelit
Lapan Tubsat dalam bidang animasi dan design. Setahun kemudian penulis menjadi asisten praktikum
untuk mata kuliah Basis Data dan Organisasi Komputer di Institut Pertanian Bogor serta menjadi
asisten dosen untuk mata kuliah Organisasi Komputer di Universitas Pakuan Bogor. Pada tahun yang
sama Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor memberikan
penghargaan kepada penulis sebagai Mahasiswa Berprestasi Tingkat Fakultas tahun 2008.

PRAKATA
Rasa syukur penulis ucapkan kepada Allah SWT yang telah memberikan anugerah dan rahmatNya hingga proses pembuatan skripsi ini dapat terselesaikan dengan lancar. Skripsi berjudul
“Pengembangan Sistem Pengiriman Suara Voter Menuju Central Tabulating Facilities (CTF)” ini
berangkat dari sebuah mimpi bahwa suatu saat pemilu di Indonesia dapat terselenggara secara virtual.
Penelitian ini diharapkan dapat menjadi sumbangan pemikiran yang nantinya dapat terus
dikembangkan bagi penyelenggaraan pemilu secara lebih luas di masa mendatang. Seiring dengan
terselesaikannya skripsi ini, penulis ingin mengucapkan terima kasih yang tidak terhingga kepada:
1 Ayah dan Ibu, Soewarto Hardhienata dan Sri Setyaningsih, kedua orang yang menjadi sumber
kekuatan untuk tetap maju dan melangkah. Terimakasih pula penulis ucapkan kepada kakak,
Hendradi Hardhienata, yang selalu mengajarkan untuk tidak cepat menyerah dan menyadarkan
bahwa mempelajari ilmu pengetahuan dimulai dari mencintai ilmu pengetahuan itu sendiri.
Terimakasih pula kepada Faridah Handayasari, kakak perempuan penulis yang telah memotivasi
agar dapat menyelesaikan skripsi tepat waktu.

2 Ibu Dr. Ir. Sri Nurdiati, MSc selaku pembimbing pertama yang telah memberi arahan, bimbingan
serta motivasi untuk menyelesaikan skripsi ini.
3 Bapak Dr. Sugi Guritman selaku pembimbing kedua yang telah menumbuhkan rasa kecintaan akan
ilmu kriptografi dan mencetuskan pemikiran awal untuk mengerjakan penelitian Online Voting.
4 Bapak Irman Hermadi S.Kom, MS selaku pembimbing akademik yang telah membimbing dan
menjadi tempat penulis berkonsultasi dan bertanya.
5 Orang-orang yang telah menemani hingga semester demi semester perkuliahan dapat terlewati dan
membantu penulis dalam melewati masa-masa sulit, Rizqi Baihaqi Ahmadi, sahabat terbaik yang
pernah ada, orang yang mengajarkan untuk tidak pernah menyerah dan terus berjuang serta Rinjani
Yusni Maharjanti, sahabat yang selalu menemani di saat-saat pengerjaan skripsi. Tidak lupa
penulis ucapkan terimakasih kepada sahabat, Nida, rekan seperjuangan dalam projek Online
Voting, Dina, Uud, dan Fajri, serta sahabat-sahabat yang pernah bekerja bersama-sama dalam satu
tim hebat Ferdian Faisal, Noviana Putri, Fitri, dan Abie Rafdi. Skripsi ini juga penulis
persembahkan untuk sahabat-sahabat program studi Ilmu Komputer Angkatan 42, Mirna, Lena,
Adet, Prita, Nila, Huda, Indra, Ijun, Nano, Regi, organisasi yang telah membesarkan penulis,
Komunitas Film FOKERZ dan HIMALKOM, serta sahabat-sahabat yang tidak bisa penulis
sebutkan satu persatu, terimakasih atas segalanya.
6 Seluruf staf pengajar Departemen Ilmu Komputer yang telah berbagi banyak ilmu, filosofi dan
cerita-cerita luar biasa sehingga mempelajari ilmu komputer menjadi hal yang menyenangkan.
Terimakasih juga penulis ucapkan kepada segenap staf administrasi dan perpustakaan Departemen

Ilmu Komputer yang telah membantu hingga skripsi ini dapat terselesaikan. Terimakasih atas
bantuan semua pihak.
Akhir kata semoga karya ilmiah ini dapat bermanfaat dan memberi inspirasi bagi peneliti-peneliti
muda lainnya untuk terus berlomba menciptakan karya terbaik.

Bogor, Agustus 2009

Medria K. D. Hardhienata

DAFTAR ISI

Halaman
DAFTAR GAMBAR ................................................................................................................................. v 
DAFTAR LAMPIRAN.............................................................................................................................. v 
PENDAHULUAN ..................................................................................................................................... 6 
Latar Belakang ..................................................................................................................................... 6 
Tujuan ................................................................................................................................................... 6 
Ruang Lingkup ..................................................................................................................................... 6 
TINJAUAN PUSTAKA ............................................................................................................................ 2 
Protokol ................................................................................................................................................ 2 

Kriptografi ............................................................................................................................................ 2 
Kunci Publik (Public Key) ................................................................................................................... 2 
Kunci Simetri (Session Key) ................................................................................................................ 2 
Algoritme RSA ..................................................................................................................................... 2 
Secure Hash Algorithm (SHA)-1 .......................................................................................................... 3 
Jaringan Feistel..................................................................................................................................... 3 
Blowfish ................................................................................................................................................ 3 
Nonce .................................................................................................................................................... 5 
Java Web Start...................................................................................................................................... 5 
Certificate Authority (CA) ................................................................................................................... 5 
Central Legitimization Agency (CLA) ................................................................................................. 5 
Central Tabulating Facilities (CTF).................................................................................................... 5 
METODE PENELITIAN........................................................................................................................... 6 
Ancaman (Threats) ............................................................................................................................... 6 
Kebijakan (Policy)................................................................................................................................ 6 
Spesifikasi (Specification).................................................................................................................... 6 
Perancangan (Design) .......................................................................................................................... 6 
Implementasi (Implementation) ........................................................................................................... 7 
Pengujian (Testing) .............................................................................................................................. 7 
HASIL DAN PEMBAHASAN ................................................................................................................. 8 

Ancaman (Threats) ............................................................................................................................... 8 
Kebijakan (Policy)................................................................................................................................ 8 
Spesifikasi (Specification).................................................................................................................... 9 
Perancangan (Design) .......................................................................................................................... 9 
Perancangan Sistem Secara Umum ..................................................................................................... 9 
Perancangan Pengembangan Sistem .................................................................................................. 11 
Implementasi ...................................................................................................................................... 13 
Pengujian ............................................................................................................................................ 17 
KESIMPULAN DAN SARAN ............................................................................................................... 19 
Kesimpulan ......................................................................................................................................... 19 
Saran ................................................................................................................................................... 19 
DAFTAR PUSTAKA .............................................................................................................................. 20 
LAMPIRAN ............................................................................................................................................. 21 

iv

DAFTAR GAMBAR
Halaman
1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Enkripsi dan Dekripsi ........................................................................................................................... 2 
Jaringan Feistel..................................................................................................................................... 3 
Fungsi f Blowfish .................................................................................................................................. 4 
Blowfish ................................................................................................................................................ 4 

The Security Life Cycle ........................................................................................................................ 6 
Proses Komunikasi Voter – CTF untuk Fungsionalitas Permintaan Kandidat ................................. 10 
Proses Komunikasi Voter – CTF untuk Fungsionalitas Permintaan Melakukan Pemilihan (vote) . 10 
Proses Komunikasi Voter – CTF untuk Fungsionalitas Melakukan Verifikasi Pilihan ................... 11 
Jaringan Wireless Online Voting dengan Topologi Infrastruktur ..................................................... 12 
Diagram Alir Pengiriman dan Penerimaan Kunci Simetri Voter ...................................................... 12 
Diagram Alir Pengiriman dan Penerimaan Kunci Simetri CTF ....................................................... 13 
Pengaturan Java Web Start pada project properties window menu Run ......................................... 13 
Pengaturan Java Web Start pada project properties window menu Application Web Start ........... 14 
Situs IPB Online Voting Centre (Bagian 1)....................................................................................... 14 
Situs IPB Online Voting Centre (Bagian 2)...................................................................................... 14 
Tampilan Antamuka Online Voting ................................................................................................... 14 
Berkas launch.jnlp untuk memunculkan aplikasi Online Voting ...................................................... 14 

DAFTAR LAMPIRAN
Halaman
1
2
3
4


Implementasi GenerateRandomKeys.java ......................................................................................... 22 
Implementasi Voter.java untuk Fungsi do_CTF ............................................................................... 28
Implementasi CTF.java untuk Fungsi Main ...................................................................................... 35 
Black Box Testing ............................................................................................................................... 40 

  

v

PENDAHULUAN
Latar Belakang
Pemilihan Umum (Pemilu) merupakan suatu
kegiatan yang lazim dilakukan di berbagai
negara untuk memilih kandidat yang akan
menempati jabatan politik tertentu. Kegiatan ini
dilakukan tidak hanya dalam skala nasional,
pada lingkungan yang lebih khusus seperti
kampus misalnya kegiatan ini pun sering kali
dilakukan untuk melakukan pemilu berskala
kecil seperti pemilihan rektor, dekan, maupun
berbagai ketua badan kegiatan mahasiswa.
Seiring dengan kemajuan teknologi, proses
pemunggutan suara dalam pemilu di negaranegara maju kini mulai berkembang ke arah
virtualisasi. Pemilu untuk memilih presiden
Amerika Serikat pada bulan November 2008
lalu pun telah berhasil diselenggarakan dengan
penghitungan electoral vote yang sangat cepat
berkat bantuan teknologi maju. Hanya dalam
hitungan jam hasil pemungutan suara dari
seluruh negara bagian negara ini dapat diketahui
oleh seluruh dunia.
Di Indonesia sendiri pemilu umumnya
masih dilakukan dengan cara konvensional.
Pemilihan dilakukan melalui pencontrengan
pada kartu pemilih serta identifikasi pemilih
secara manual. Tidak jarang kegiatan ini
menghabiskan waktu yang cukup lama dalam
penghitungan suara akhir. Peluang dalam
melakukan kecurangan dalam pemilu yang
diselenggarakan secara konvensional pun
kadang tidak dapat dihindari.
Pada tahun 2001, Dan DuFeu dan Jon Harris
(2001)
melakukan
penelitian
dengan
mendeskripsikan bagaimana online election
system
bekerja.
Penelitian
ini
mengimplementasikan pembangunan Central
Legitimization Agency (CLA) dan Central
Tabulating Facilities (CTF) untuk menerapkan
pemilu yang aman. Selanjutnya beberapa
penelitian mengenai topik serupa kian terbuka
lebar. Pada tahun 2005, Sireesha, Janga dan
So-In Chakchai (2005) melakukan penelitian
dengan memodifikasi protokol secure election
dengan Two Central Facilities. Dengan lahirnya
berbagai penelitian dalam bidang election
system, penelitian ini diharapkan dapat terus
menyempurnakan sistem online voting yang
telah ada.

bukanlah hal yang mustahil dilakukan. Meski
demikian,
pemilihan
suara
dengan
komputerisasi hanya dapat dilakukan jika
protokol menjamin bahwa privasi individu
dapat dilindungi dan berbagai bentuk
kecurangan dengan teknologi ini dapat dicegah.
Hal inilah yang mendorong adanya keinginan
untuk
terus
menyempurnakan
serta
mengembangkan sebuah protokol keamanan
virtual dengan protokol Two Central Facilities.
Protokol ini dipilih karena termasuk sebagai
protokol yang paling memenuhi sebagian besar
persyaratan untuk menjalankan secure election
dan memiliki tingkat keamanan yang paling
tinggi dibandingkan protokol-protokol lain yang
dijelaskan oleh Schneier (1996).
Tujuan
Terdapat dua tujuan utama dari penelitian
ini. Pertama, penelitian dilakukan untuk
mengembangkan sistem pengiriman suara dari
voter menuju Central Tabulating Facilities
(CTF) dengan protokol Two Central Facilities
yang telah ada serta penyempurnaan beberapa
kekurangan pada protokol sesuai rekomendasi
dari penelitian sebelumnya. Kedua, penelitian
dilakukan untuk membuat model simulasi guna
melihat apakah sistem ini dimungkinkan untuk
diimplementasikan pada pemilu yang diadakan
di lingkungan kampus Institut Pertanian Bogor
(IPB).
Ruang Lingkup
Ruang lingkup penelitian ini difokuskan
kepada pembentukan protokol
untuk
pengiriman suara dari voter menuju CTF
dengan
Two
Central
Fasilities
serta
pembangunan model yang disimulasikan pada
lingkungan kampus IPB.

Dengan kemajuan jaringan teknologi dan
teknik kriptografi saat ini penyelenggaraan
pemilihan kandidat dengan cara virtual
khususnya dalam lingkup kampus di Indonesia
vi

TINJAUAN PUSTAKA
Protokol
Suatu protokol menurut Schneier (1996)
adalah serangkaian langkah yang melibatkan
dua pihak atau lebih dan dirancang agar dapat
menyelesaikan suatu tugas.
Protokol memiliki berbagai karakteristik
seperti :
1 Protokol memiliki urutan dari awal hingga
akhir.
2 Setiap langkah harus dilaksanakan secara
bergilir.
3 Suatu langkah tidak dapat dikerjakan bila
langkah
sebelumnya
belum
selesai
dilakukan.
4 Diperlukan dua pihak atau lebih untuk
melaksanakan protokol.
5 Protokol harus mencapai dan memberikan
suatu hasil.
6 Setiap orang yang terlibat dalam protokol
harus mengetahui terlebih dahulu mengenai
protokol dan seluruh langkah yang akan
dilaksanakan dalam protokol.
7 Setiap orang yang terlibat dalam protokol
harus menyetujui untuk mengikutinya.
8 Protokol
tidak
boleh
menimbulkan
kerancuan (ambigu) dan tidak boleh timbul
kesalahpahaman.
9 Protokol harus lengkap, harus terdapat aksi
yang spesifik untuk setiap kemungkinan
situasi.
Kriptografi
Kriptografi menurut Schneier (1996) adalah
seni dan ilmu untuk menjaga keamanan pesan.
Beberapa istilah menurut Kurniawan (2008)
yang sering digunakan dalam kriptografi antara
lain:
a) Plaintext: Semua data yang belum diproses
melalui
suatu
algoritme kriptografi.
Plaintext dapat berupa teks, gambar atau
bentuk lainnya.
b) Ciphertext:
Hasil
proses
algoritme
kriptografi dari suatu plaintext.
c) Enkripsi:
Proses
pengubahan
pesan
sedemikian
sehingga
isi
pesan
disembunyikan. Enkripsi juga dapat
dikatakan sebagai proses pengubahan dari
plaintext ke ciphertext, dengan algoritme
kriptografi tertentu.
d) Dekripsi: proses pengubahan kembali dari
ciphertext ke plaintext dengan algoritme
kriptografi tertentu.
e) Cipher: Suatu algoritme kriptografi yang
dapat melakukan enkripsi dan dekripsi.

f) Key: Parameter kunci yang digunakan oleh
cipher dalam melakukan proses enkripsi dan
dekripsi.
g) Message digest: Ukuran byte kecil yang
menunjukkan ukuran plaintext.
h) Hash: Nama lain dari message digest.
Skema proses enkripsi dan dekripsi secara
umum dapat dilihat pada Gambar 1.

Gambar 1 Enkripsi dan Dekripsi.
Kunci Publik (Public Key)
Kunci Publik (Public Key) adalah kunci
yang dirancang sedemikian sehingga kunci yang
digunakan untuk enkripsi berbeda dengan kunci
yang digunakan pada proses dekripsi (Schneier
1996).
Kunci Simetri (Session Key)
Kunci Simetri (Session Key) adalah kunci
yang dirancang sedemikian sehingga kunci yang
digunakan untuk enkripsi sama dengan kunci
yang digunakan pada proses dekripsi (Schneier
1996).
Algoritme RSA
Algoritme RSA dinamakan berdasarkan
nama tiga orang penemunya yakni Ron Rivest,
Adi Shamir, dan Leonard Adleman. Keamanan
algoritme RSA didapatkan dari sulitnya
memfaktorkan bilangan yang besar menjadi
faktor-faktor prima. Pemfaktoran dilakukan
untuk memperoleh kunci privat. Algoritme RSA
memiliki besaran-besaran sebagai berikut:
1
2
3
4
5
6
7

p dan q bilangan prima
N = p. q
φ (N) =(p-1)(q-1)
e (kunci enkripsi)
d (kunci dekripsi)
m (plaintext)
c (ciphertext)

(rahasia)
(tidak rahasia)
(rahasia)
(tidak rahasia)
(rahasia)
(rahasia)
(tidak rahasia)

Deskripsi sederhana dari algoritme RSA
dijelaskan sebagai berikut, diberikan Nilai N,
dimana N adalah :
N=p.q
dengan p dan q adalah dua bilangan prima besar
dengan ukuran yang sama.
2

PENGEMBANGAN SISTEM PENGIRIMAN SUARA VOTER
MENUJU CENTRAL TABULATING FACILITIES (CTF)

MEDRIA KUSUMA DEWI HARDHIENATA

DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA
DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2009

PENGEMBANGAN SISTEM PENGIRIMAN SUARA VOTER
MENUJU CENTRAL TABULATING FACILITIES (CTF)

MEDRIA KUSUMA DEWI HARDHIENATA

Skripsi
Sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2009

ABSTRACT
MEDRIA KUSUMA DEWI HARDHIENATA.The Development of Voting Result Data Transfer to
the Central Tabulating Facilities. Under the direction of SRI NURDIATI and SUGI GURITMAN.
Advances in election voting process nowadays has triggered the application of virtualization
technique in several countries. Most studies raised concern about Online Voting which provides cost
saving and convinience. The voting system using virtual network technology aims to reduce
considerable calculation time as well as necessary human resources. Despite this, Indonesia still
performs voting during election manually. Therefore, this research is performed to study the
application of small scale Online Voting at the Department of Computer Science, Bogor Agricultural
University as well as studying its further possibility for applying this technique in larger scales.
Considering the complexity in building a complete secure online election voting process, this research
is focused only in developing a system to send vote from voter to Central Tabulating Facilities (CTF)
by implementing a modified secure election protocol with Two Central Facilities. It is also conducted
to implement earlier research recommendations to make the system more secure as well as how to
integrate an election voting system from a single host into multiple hosts by using Java Web Start
Technology.
Keywords: Online Voting, voter, Central Tabulating Facilities, Two Central Facilities

Judul
Nama
NIM

:Pengembangan Sistem Pengiriman Suara Voter Menuju Central Tabulating Facilities (CTF)
:Medria K.D.Hardhienata
:G64052475

Menyetujui:

Pembimbing I,

Pembimbing II,

Dr. Ir. Sri Nurdiati, M.Sc
NIP 19601126 198601 2 001

Dr. Sugi Guritman
NIP 19620927 199203 1 004

Mengetahui,
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor

Dr. Drh. Hasim, DEA
NIP 19610328 198601 1 002

Tanggal Lulus :

RIWAYAT HIDUP
Medria Kusuma Dewi Hardhienata dilahirkan di kota Stuttgart, Jerman Barat, pada tanggal 22
Agustus 1986 dari pasangan Ibu Sri Setyaningsih dan Bapak Soewarto Hardhienata. Pada tahun 2005
penulis lulus dari Sekolah Menengah Atas (SMA) Negeri 1 Bogor dan diterima di Program Studi Ilmu
Komputer Institut Pertanian Bogor melalui jalur Seleksi Masuk Penerimaan Mahasiswa (SPMB).
Penulis aktif berpartisipasi dalam National University English Debate Championship yang
diselenggarakan pada tanggal 24-26 April 2007 dan berhasil meraih juara Third Runner Up.
Pada bulan Januari hingga Maret 2007 penulis menjadi anggota Tim Multimedia Publikasi Satelit
Lapan Tubsat dalam bidang animasi dan design. Setahun kemudian penulis menjadi asisten praktikum
untuk mata kuliah Basis Data dan Organisasi Komputer di Institut Pertanian Bogor serta menjadi
asisten dosen untuk mata kuliah Organisasi Komputer di Universitas Pakuan Bogor. Pada tahun yang
sama Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor memberikan
penghargaan kepada penulis sebagai Mahasiswa Berprestasi Tingkat Fakultas tahun 2008.

PRAKATA
Rasa syukur penulis ucapkan kepada Allah SWT yang telah memberikan anugerah dan rahmatNya hingga proses pembuatan skripsi ini dapat terselesaikan dengan lancar. Skripsi berjudul
“Pengembangan Sistem Pengiriman Suara Voter Menuju Central Tabulating Facilities (CTF)” ini
berangkat dari sebuah mimpi bahwa suatu saat pemilu di Indonesia dapat terselenggara secara virtual.
Penelitian ini diharapkan dapat menjadi sumbangan pemikiran yang nantinya dapat terus
dikembangkan bagi penyelenggaraan pemilu secara lebih luas di masa mendatang. Seiring dengan
terselesaikannya skripsi ini, penulis ingin mengucapkan terima kasih yang tidak terhingga kepada:
1 Ayah dan Ibu, Soewarto Hardhienata dan Sri Setyaningsih, kedua orang yang menjadi sumber
kekuatan untuk tetap maju dan melangkah. Terimakasih pula penulis ucapkan kepada kakak,
Hendradi Hardhienata, yang selalu mengajarkan untuk tidak cepat menyerah dan menyadarkan
bahwa mempelajari ilmu pengetahuan dimulai dari mencintai ilmu pengetahuan itu sendiri.
Terimakasih pula kepada Faridah Handayasari, kakak perempuan penulis yang telah memotivasi
agar dapat menyelesaikan skripsi tepat waktu.
2 Ibu Dr. Ir. Sri Nurdiati, MSc selaku pembimbing pertama yang telah memberi arahan, bimbingan
serta motivasi untuk menyelesaikan skripsi ini.
3 Bapak Dr. Sugi Guritman selaku pembimbing kedua yang telah menumbuhkan rasa kecintaan akan
ilmu kriptografi dan mencetuskan pemikiran awal untuk mengerjakan penelitian Online Voting.
4 Bapak Irman Hermadi S.Kom, MS selaku pembimbing akademik yang telah membimbing dan
menjadi tempat penulis berkonsultasi dan bertanya.
5 Orang-orang yang telah menemani hingga semester demi semester perkuliahan dapat terlewati dan
membantu penulis dalam melewati masa-masa sulit, Rizqi Baihaqi Ahmadi, sahabat terbaik yang
pernah ada, orang yang mengajarkan untuk tidak pernah menyerah dan terus berjuang serta Rinjani
Yusni Maharjanti, sahabat yang selalu menemani di saat-saat pengerjaan skripsi. Tidak lupa
penulis ucapkan terimakasih kepada sahabat, Nida, rekan seperjuangan dalam projek Online
Voting, Dina, Uud, dan Fajri, serta sahabat-sahabat yang pernah bekerja bersama-sama dalam satu
tim hebat Ferdian Faisal, Noviana Putri, Fitri, dan Abie Rafdi. Skripsi ini juga penulis
persembahkan untuk sahabat-sahabat program studi Ilmu Komputer Angkatan 42, Mirna, Lena,
Adet, Prita, Nila, Huda, Indra, Ijun, Nano, Regi, organisasi yang telah membesarkan penulis,
Komunitas Film FOKERZ dan HIMALKOM, serta sahabat-sahabat yang tidak bisa penulis
sebutkan satu persatu, terimakasih atas segalanya.
6 Seluruf staf pengajar Departemen Ilmu Komputer yang telah berbagi banyak ilmu, filosofi dan
cerita-cerita luar biasa sehingga mempelajari ilmu komputer menjadi hal yang menyenangkan.
Terimakasih juga penulis ucapkan kepada segenap staf administrasi dan perpustakaan Departemen
Ilmu Komputer yang telah membantu hingga skripsi ini dapat terselesaikan. Terimakasih atas
bantuan semua pihak.
Akhir kata semoga karya ilmiah ini dapat bermanfaat dan memberi inspirasi bagi peneliti-peneliti
muda lainnya untuk terus berlomba menciptakan karya terbaik.

Bogor, Agustus 2009

Medria K. D. Hardhienata

DAFTAR ISI

Halaman
DAFTAR GAMBAR ................................................................................................................................. v 
DAFTAR LAMPIRAN.............................................................................................................................. v 
PENDAHULUAN ..................................................................................................................................... 6 
Latar Belakang ..................................................................................................................................... 6 
Tujuan ................................................................................................................................................... 6 
Ruang Lingkup ..................................................................................................................................... 6 
TINJAUAN PUSTAKA ............................................................................................................................ 2 
Protokol ................................................................................................................................................ 2 
Kriptografi ............................................................................................................................................ 2 
Kunci Publik (Public Key) ................................................................................................................... 2 
Kunci Simetri (Session Key) ................................................................................................................ 2 
Algoritme RSA ..................................................................................................................................... 2 
Secure Hash Algorithm (SHA)-1 .......................................................................................................... 3 
Jaringan Feistel..................................................................................................................................... 3 
Blowfish ................................................................................................................................................ 3 
Nonce .................................................................................................................................................... 5 
Java Web Start...................................................................................................................................... 5 
Certificate Authority (CA) ................................................................................................................... 5 
Central Legitimization Agency (CLA) ................................................................................................. 5 
Central Tabulating Facilities (CTF).................................................................................................... 5 
METODE PENELITIAN........................................................................................................................... 6 
Ancaman (Threats) ............................................................................................................................... 6 
Kebijakan (Policy)................................................................................................................................ 6 
Spesifikasi (Specification).................................................................................................................... 6 
Perancangan (Design) .......................................................................................................................... 6 
Implementasi (Implementation) ........................................................................................................... 7 
Pengujian (Testing) .............................................................................................................................. 7 
HASIL DAN PEMBAHASAN ................................................................................................................. 8 
Ancaman (Threats) ............................................................................................................................... 8 
Kebijakan (Policy)................................................................................................................................ 8 
Spesifikasi (Specification).................................................................................................................... 9 
Perancangan (Design) .......................................................................................................................... 9 
Perancangan Sistem Secara Umum ..................................................................................................... 9 
Perancangan Pengembangan Sistem .................................................................................................. 11 
Implementasi ...................................................................................................................................... 13 
Pengujian ............................................................................................................................................ 17 
KESIMPULAN DAN SARAN ............................................................................................................... 19 
Kesimpulan ......................................................................................................................................... 19 
Saran ................................................................................................................................................... 19 
DAFTAR PUSTAKA .............................................................................................................................. 20 
LAMPIRAN ............................................................................................................................................. 21 

iv

DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Enkripsi dan Dekripsi ........................................................................................................................... 2 
Jaringan Feistel..................................................................................................................................... 3 
Fungsi f Blowfish .................................................................................................................................. 4 
Blowfish ................................................................................................................................................ 4 
The Security Life Cycle ........................................................................................................................ 6 
Proses Komunikasi Voter – CTF untuk Fungsionalitas Permintaan Kandidat ................................. 10 
Proses Komunikasi Voter – CTF untuk Fungsionalitas Permintaan Melakukan Pemilihan (vote) . 10 
Proses Komunikasi Voter – CTF untuk Fungsionalitas Melakukan Verifikasi Pilihan ................... 11 
Jaringan Wireless Online Voting dengan Topologi Infrastruktur ..................................................... 12 
Diagram Alir Pengiriman dan Penerimaan Kunci Simetri Voter ...................................................... 12 
Diagram Alir Pengiriman dan Penerimaan Kunci Simetri CTF ....................................................... 13 
Pengaturan Java Web Start pada project properties window menu Run ......................................... 13 
Pengaturan Java Web Start pada project properties window menu Application Web Start ........... 14 
Situs IPB Online Voting Centre (Bagian 1)....................................................................................... 14 
Situs IPB Online Voting Centre (Bagian 2)...................................................................................... 14 
Tampilan Antamuka Online Voting ................................................................................................... 14 
Berkas launch.jnlp untuk memunculkan aplikasi Online Voting ...................................................... 14 

DAFTAR LAMPIRAN
Halaman
1
2
3
4

Implementasi GenerateRandomKeys.java ......................................................................................... 22 
Implementasi Voter.java untuk Fungsi do_CTF ............................................................................... 28
Implementasi CTF.java untuk Fungsi Main ...................................................................................... 35 
Black Box Testing ............................................................................................................................... 40 

  

v

PENDAHULUAN
Latar Belakang
Pemilihan Umum (Pemilu) merupakan suatu
kegiatan yang lazim dilakukan di berbagai
negara untuk memilih kandidat yang akan
menempati jabatan politik tertentu. Kegiatan ini
dilakukan tidak hanya dalam skala nasional,
pada lingkungan yang lebih khusus seperti
kampus misalnya kegiatan ini pun sering kali
dilakukan untuk melakukan pemilu berskala
kecil seperti pemilihan rektor, dekan, maupun
berbagai ketua badan kegiatan mahasiswa.
Seiring dengan kemajuan teknologi, proses
pemunggutan suara dalam pemilu di negaranegara maju kini mulai berkembang ke arah
virtualisasi. Pemilu untuk memilih presiden
Amerika Serikat pada bulan November 2008
lalu pun telah berhasil diselenggarakan dengan
penghitungan electoral vote yang sangat cepat
berkat bantuan teknologi maju. Hanya dalam
hitungan jam hasil pemungutan suara dari
seluruh negara bagian negara ini dapat diketahui
oleh seluruh dunia.
Di Indonesia sendiri pemilu umumnya
masih dilakukan dengan cara konvensional.
Pemilihan dilakukan melalui pencontrengan
pada kartu pemilih serta identifikasi pemilih
secara manual. Tidak jarang kegiatan ini
menghabiskan waktu yang cukup lama dalam
penghitungan suara akhir. Peluang dalam
melakukan kecurangan dalam pemilu yang
diselenggarakan secara konvensional pun
kadang tidak dapat dihindari.
Pada tahun 2001, Dan DuFeu dan Jon Harris
(2001)
melakukan
penelitian
dengan
mendeskripsikan bagaimana online election
system
bekerja.
Penelitian
ini
mengimplementasikan pembangunan Central
Legitimization Agency (CLA) dan Central
Tabulating Facilities (CTF) untuk menerapkan
pemilu yang aman. Selanjutnya beberapa
penelitian mengenai topik serupa kian terbuka
lebar. Pada tahun 2005, Sireesha, Janga dan
So-In Chakchai (2005) melakukan penelitian
dengan memodifikasi protokol secure election
dengan Two Central Facilities. Dengan lahirnya
berbagai penelitian dalam bidang election
system, penelitian ini diharapkan dapat terus
menyempurnakan sistem online voting yang
telah ada.

bukanlah hal yang mustahil dilakukan. Meski
demikian,
pemilihan
suara
dengan
komputerisasi hanya dapat dilakukan jika
protokol menjamin bahwa privasi individu
dapat dilindungi dan berbagai bentuk
kecurangan dengan teknologi ini dapat dicegah.
Hal inilah yang mendorong adanya keinginan
untuk
terus
menyempurnakan
serta
mengembangkan sebuah protokol keamanan
virtual dengan protokol Two Central Facilities.
Protokol ini dipilih karena termasuk sebagai
protokol yang paling memenuhi sebagian besar
persyaratan untuk menjalankan secure election
dan memiliki tingkat keamanan yang paling
tinggi dibandingkan protokol-protokol lain yang
dijelaskan oleh Schneier (1996).
Tujuan
Terdapat dua tujuan utama dari penelitian
ini. Pertama, penelitian dilakukan untuk
mengembangkan sistem pengiriman suara dari
voter menuju Central Tabulating Facilities
(CTF) dengan protokol Two Central Facilities
yang telah ada serta penyempurnaan beberapa
kekurangan pada protokol sesuai rekomendasi
dari penelitian sebelumnya. Kedua, penelitian
dilakukan untuk membuat model simulasi guna
melihat apakah sistem ini dimungkinkan untuk
diimplementasikan pada pemilu yang diadakan
di lingkungan kampus Institut Pertanian Bogor
(IPB).
Ruang Lingkup
Ruang lingkup penelitian ini difokuskan
kepada pembentukan protokol
untuk
pengiriman suara dari voter menuju CTF
dengan
Two
Central
Fasilities
serta
pembangunan model yang disimulasikan pada
lingkungan kampus IPB.

Dengan kemajuan jaringan teknologi dan
teknik kriptografi saat ini penyelenggaraan
pemilihan kandidat dengan cara virtual
khususnya dalam lingkup kampus di Indonesia
vi

TINJAUAN PUSTAKA
Protokol
Suatu protokol menurut Schneier (1996)
adalah serangkaian langkah yang melibatkan
dua pihak atau lebih dan dirancang agar dapat
menyelesaikan suatu tugas.
Protokol memiliki berbagai karakteristik
seperti :
1 Protokol memiliki urutan dari awal hingga
akhir.
2 Setiap langkah harus dilaksanakan secara
bergilir.
3 Suatu langkah tidak dapat dikerjakan bila
langkah
sebelumnya
belum
selesai
dilakukan.
4 Diperlukan dua pihak atau lebih untuk
melaksanakan protokol.
5 Protokol harus mencapai dan memberikan
suatu hasil.
6 Setiap orang yang terlibat dalam protokol
harus mengetahui terlebih dahulu mengenai
protokol dan seluruh langkah yang akan
dilaksanakan dalam protokol.
7 Setiap orang yang terlibat dalam protokol
harus menyetujui untuk mengikutinya.
8 Protokol
tidak
boleh
menimbulkan
kerancuan (ambigu) dan tidak boleh timbul
kesalahpahaman.
9 Protokol harus lengkap, harus terdapat aksi
yang spesifik untuk setiap kemungkinan
situasi.
Kriptografi
Kriptografi menurut Schneier (1996) adalah
seni dan ilmu untuk menjaga keamanan pesan.
Beberapa istilah menurut Kurniawan (2008)
yang sering digunakan dalam kriptografi antara
lain:
a) Plaintext: Semua data yang belum diproses
melalui
suatu
algoritme kriptografi.
Plaintext dapat berupa teks, gambar atau
bentuk lainnya.
b) Ciphertext:
Hasil
proses
algoritme
kriptografi dari suatu plaintext.
c) Enkripsi:
Proses
pengubahan
pesan
sedemikian
sehingga
isi
pesan
disembunyikan. Enkripsi juga dapat
dikatakan sebagai proses pengubahan dari
plaintext ke ciphertext, dengan algoritme
kriptografi tertentu.
d) Dekripsi: proses pengubahan kembali dari
ciphertext ke plaintext dengan algoritme
kriptografi tertentu.
e) Cipher: Suatu algoritme kriptografi yang
dapat melakukan enkripsi dan dekripsi.

f) Key: Parameter kunci yang digunakan oleh
cipher dalam melakukan proses enkripsi dan
dekripsi.
g) Message digest: Ukuran byte kecil yang
menunjukkan ukuran plaintext.
h) Hash: Nama lain dari message digest.
Skema proses enkripsi dan dekripsi secara
umum dapat dilihat pada Gambar 1.

Gambar 1 Enkripsi dan Dekripsi.
Kunci Publik (Public Key)
Kunci Publik (Public Key) adalah kunci
yang dirancang sedemikian sehingga kunci yang
digunakan untuk enkripsi berbeda dengan kunci
yang digunakan pada proses dekripsi (Schneier
1996).
Kunci Simetri (Session Key)
Kunci Simetri (Session Key) adalah kunci
yang dirancang sedemikian sehingga kunci yang
digunakan untuk enkripsi sama dengan kunci
yang digunakan pada proses dekripsi (Schneier
1996).
Algoritme RSA
Algoritme RSA dinamakan berdasarkan
nama tiga orang penemunya yakni Ron Rivest,
Adi Shamir, dan Leonard Adleman. Keamanan
algoritme RSA didapatkan dari sulitnya
memfaktorkan bilangan yang besar menjadi
faktor-faktor prima. Pemfaktoran dilakukan
untuk memperoleh kunci privat. Algoritme RSA
memiliki besaran-besaran sebagai berikut:
1
2
3
4
5
6
7

p dan q bilangan prima
N = p. q
φ (N) =(p-1)(q-1)
e (kunci enkripsi)
d (kunci dekripsi)
m (plaintext)
c (ciphertext)

(rahasia)
(tidak rahasia)
(rahasia)
(tidak rahasia)
(rahasia)
(rahasia)
(tidak rahasia)

Deskripsi sederhana dari algoritme RSA
dijelaskan sebagai berikut, diberikan Nilai N,
dimana N adalah :
N=p.q
dengan p dan q adalah dua bilangan prima besar
dengan ukuran yang sama.
2

Diberikan nilai e dan d dengan ketentuan
sebagai berikut :
ed = 1 mod φ (N) dan φ (N) = (p-1)(q-1)

Ri = Li – 1 ⊕ f(Ri – 1, Ki)
yang dalam hal ini,
i = 1, 2, …, r (r adalah jumlah putaran).
Ki = subkey pada putaran ke-i

N adalah RSA modulus, e adalah encryption
exponent, dan d adalah decryption exponent.
(N,e) adalah kunci publik yang digunakan untuk
enkripsi pesan. (N,d) adalah kunci rahasia atau
kunci privat yang digunakan untuk mendekripsi
ciphertext atau pesan yang telah dienkripsi ke
pesan sebenarnya (Boneh 1999).

f = fungsi transformasi (di dalamnya
terdapat fungsi substitusi, permutasi, dan/atau
ekspansi, kompresi) (Munir 2006).

Pesan adalah bilangan integer M, untuk
mengenkripsi M menggunakan cara C = Me
mod N. Untuk mendekripsi ciphertext
digunakan perhitungan M = Cd mod N dengan
Cd = Med = M (mod N) (Boneh 1999).
Secure Hash Algorithm (SHA)-1
SHA adalah fungsi hash satu-arah yang
dibuat oleh NIST. Fungsi hash SHA yang paling
umum digunakan adalah SHA-1 yang telah
diimplementasikan di dalam berbagai aplikasi
dan protokol keamanan. SHA-1 menerima
masukan berupa pesan dengan ukuran
maksimum 64 bit dan menghasilkan message
digest yang panjangnya 160 bit, lebih panjang
dari message digest yang dihasilkan oleh MD5
yang hanya 128 bit.
Langkah-langkah pembuatan message digest
dengan SHA-1 secara garis besar adalah sebagai
berikut:
1 Penambahan bit-bit pengganjal (padding
bits).
2 Penambahan nilai panjang pesan semula.
3 Inisialisasi penyangga (buffer) MD.
4 Pengolahan pesan dalam blok berukuran 512
bit.
(Munir 2006).
Jaringan Feistel
Hampir semua algoritme cipher blok bekerja
dalam model jaringan Feistel. Jaringan Feistel
ditemukan oleh Horst Feistel tahun 1970.
Model jaringan Feistel adalah sebagai
berikut:
1 Bagi blok yang panjangnya n bit menjadi
dua bagian, kiri (L) dan kanan (R), yang
masing-masing panjangnya n/2 (hal ini
mensyaratkan n harus genap).
2 Definisikan cipher blok berulang dimana
hasil dari putaran ke-i ditentukan dari hasil
putaran sebelumnya (lihat Gambar 2), yaitu :

Gambar 2 Jaringan Feistel.
Blowfish
Blowfish merupakan blok cipher 64-bit
dengan panjang kunci variabel. Algoritme ini
terdiri dari dua bagian: ekspansi kunci dan
enkripsi data. Ekspansi kunci mengubah kunci
yang dapat mencapai 448 bit menjadi beberapa
array subkunci (subkey) dengan total 4168 byte.
Blowfish dikembangkan untuk memenuhi
kriteria perancangan sebagai berikut:
a) Cepat, pada implementasi yang optimal
Blowfish dapat mencapai kecepatan 26 clock
cycle per-byte.
b) Kompak, Blowfish dapat berjalan pada
memori kurang dari 5 KB.
c) Sederhana, Blowfish hanya menggunakan
operasi yang sederhana: penambahan
(addition), XOR, dan penelusuran tabel
(table lookup) pada operand 32 bit.
Rancangannya mudah untuk dianalisis yang
membuatnya resisten terhadap kesalahan
implementasi.
d) Keamanan yang variabel, panjang kunci
Blowfish dapat bervariasi dan dapat
mencapai 448 bit (56 byte).
Enkripsi data terdiri dari iterasi fungsi
sederhana sebanyak 16 kali. Setiap putaran
terdiri atas permutasi kunci-dependent dan
substitusi kunci- dan data-dependent. Semua
operasi adalah penambahan dan XOR pada
variable 32-bit. Tambahan operasi lainnya
hanyalah empat penelusuran tabel (table
lookup) array berindeks untuk setiap putaran.

Li = Ri+1
3

Blowfish menggunakan subkunci yang
besar. Kunci ini harus dihitung sebelum enkripsi
atau dekripsi data. Array P terdiri dari delapan
belas 32-bit subkunci:
P1,P2, . . . ,P18
Empat 32-bit S-box masing-masing mempunyai
256 entri:
S1,0, S1,1, . . . , S1,255
S2,0, S2,1, . . . , S2,255
S3,0, S3,1, . . . , S3,255
S4,0, S4,1, . . . , S4,255

5 Lakukan enkripsi pada keluaran dari
langkah (3) dengan algoritme Blowfish
dengan subkunci yang sudah dimodifikasi.
6 Ganti P3 dan P4 dengan keluaran dari
langkah (5).
7 Lanjutkan proses tersebut, ganti seluruh
elemen dari P-array, dan kemudian seluruh
keempat S-box berurutan, dengan keluaran
yang berubah secara kontinyu dari algoritme
Blowfish.
(Schneier 1996).

Metode selengkapnya untuk menghitung
subkunci ini akan dijelaskan pada bagian di
bawah ini. Blowfish merupakan algoritme yang
menerapkan jaringan Feistel (Feistel network)
yang terdiri atas 16 putaran. Input merupakan
elemen 64 bit, X. Untuk memulai enkripsi :
Bagi X menjadi dua 32-bit: XL, XR
untuk i = 1 sampai 16
XL = XL xor Pi
XR = F(XL) xor XR
Tukar XL dan XR
Tukar XL dan XR (batalkan penukaran
terakhir)
XR = XR xor P17
XL = XL xor P18
Kombinasikan kembali XL dan XR
Fungsi F adalah sebagai berikut:
Bagi XL, menjadi empat bagian 8-bit: a, b,
c dan d
F(XL) = ((S1,a + S2,b mod 232) xor S3,c) +
S4,c mod 232

Gambar 3 Fungsi f Blowfish.

Proses fungsi f dan enkripsi Blowfish dapat
dilihat pada Gambar 3 dan 4.
Dekripsi sama persis dengan enkripsi, kecuali
P1, P2, . . . , P18 digunakan pada urutan yang
terbalik. Subkunci dihitung menggunakan
algoritme B