Bab II Dasar Teori 2.1
Voting
Voting merupakan salah satu metode penentuan pemenang oleh sejumlah orang dalam suatu grup. Selain itu voting juga dapat digunakan untuk menentukan urutan kemenangan kandidat [DAU04]. Pengambilan keputusan yang dimaksud ialah menentukan preferensi dari kandidat yang tersedia.
2.1.1 Elemen-elemen voting Elemen-elemen penting yang terkait dengan voting antara lain ialah kandidat, pemilih, suara, sistem voting dan pemenang voting. Berikut ialah penjelasan dan hubungan antara masingmasing elemen voting tersebut. Dalam sebuah proses voting terdapat beberapa kandidat yang tersedia untuk dipilih oleh pemilih. Lalu pemenang dari suatu voting dapat dihitung sesuai dengan sistem voting yang digunakan berdasarkan suara yang diterima. Pemilih atau pemberi suara ialah orang yang dapat memberikan suaranya dalam proses voting. Setiap pemilih berhak menentukan preferensinya masing-masing. Preferensi pemilih tersebut dinamakan suara. Suara dapat digambarkan sebagai urutan pilihan pemilih terhadap kandidat-kandidat yang tersedia. Urutan tersebut dapat direpresentasikan dengan hubungan antara kandidat dengan menggunakan operator ‘>’, yang dibaca “lebih dipilih”. Misalkan terdapat dua orang kandidat, A dan B. Maka A > B berarti pemilih memilih kandidat A di atas kandidat B. Hubungan antar kandidat tersebut juga berlaku secara transitif. Misalkan terdapat kandidat lain, C. Lalu berlaku B > C, maka dapat disimpulkan bahwa A > C. Hubungan antara ketiga kandidat tersebut dalam suara dapat digabung menjadi A > B > C [PAU05].
II-1
II-2
2.1.2 Sistem Voting Sistem voting di sini maksudnya ialah sistem penghitungan suara yang digunakan untuk menentukan pemenang voting. Terdapat beberapa sistem voting yang dapat digunakan untuk menentukan pemenang dalam suatu proses pemilihan. Beberapa contoh sistem voting antara lain yaitu plurality vote, majority vote, Borda Count, serta Condorcet Method[PAU05]. 2.1.2.1 Plurality Vote Sistem voting yang sering digunakan yaitu plurality vote. Dengan menggunakan sistem ini, penghitungan dilakukan dengan cara memberi nilai satu untuk tiap kandidat yang berada pada peringkat pertama dalam suara masing-masing pemilih. Dengan kata lain, peringkat kedua dan berikutnya pada suara dapat diabaikan sehingga dapat disederhanakan menjadi setiap pemilih memilih hanya satu kandidat saja, yaitu kandidat yang akan ditempatkan pada posisi teratas pada suara. Pemenang dari sistem voting ini ialah kandidat yang memiliki nilai tertinggi. Contoh plurality vote dapat dilihat sebagai berikut, misalkan terdapat tiga orang kandidat, A, B dan C. Serta terdapat pula seratus orang pemberi suara, setelah dihitung maka didapatkan hasil seperti pada Tabel II-1: Tabel II-1 Plurality Vote
Kandidat
Jumlah Pemilih
A>B>C
12
A>C>B
19
B>A>C
18
B>C>A
17
C>A>B
13
C>B>A
21
Maka dengan menggunakan plurality vote, kandidat A, B, dan C masing-masing mendapatkan jumlah suara 31, 35 dan 34. Dengan demikian pemenang dari voting tersebut ialah kandidat B dengan jumlah nilai 35. Plurality vote memiliki tiga karakteristik sebagai berikut: 1. Anonymity Setiap suara yang diberikan memiliki bobot yang sama.
II-3 2. Neutrality Perubahan pilihan oleh satu orang pemberi suara juga mengubah hasil penghitungan voting. 3. Monotonicity Jika terjadi keadaan di mana kedua kandidat memiliki jumlah angka yang sama, lalu ada seorang pemberi suara yang menukar pilihannya, misalkan dari X menjadi Y, maka Y menjadi pemenang voting tersebut. 2.1.2.2 Majority Vote Sistem voting berikutnya yaitu majority vote. Pada majority vote, proses penghitungan serupa dengan proses penghitungan pada plurality vote, akan tetapi jika setelah proses penghitungan tidak didapatkan pemenangnya, yaitu kandidat yang memiliki nilai melebihi batas tertentu, maka proses pemilihan dilakukan lagi dengan mengurangi jumlah kandidat, biasanya kandidat dengan suara terendah yang tidak disertakan dalam proses pemilihan berikutnya. Dengan kata lain, majority vote adalah rentetan dari plurality vote. Batas yang biasa digunakan dalam majority vote ialah setengah dari jumlah pemilih. Sebagai contoh, dapat dilihat pada Tabel II-1. Dengan menggunakan majority vote, pemenang belum didapat dengan hanya satu kali pemilihan. Maka diadakan pemilihan berikutnya dengan mengurangi kandidat dengan jumlah suara paling kecil yaitu kandidat A. Misalkan setelah kandidat A dikeluarkan hasil yang diperoleh adalah sebagai berikut yang terlihat pada Tabel II-2: Tabel II-2 Majority Vote
Kandidat
Jumlah Pemilih
B>C
45
C>B
55
Maka kandidat C menjadi pemenang dengan jumlah nilai sebesar 55. 2.1.2.3 Borda Count Sistem voting lain yaitu Borda Count. Berbeda dengan dua sistem yang telah dijelaskan sebelumnya, Borda Count tidak hanya mempertimbangkan kandidat dengan peringkat tertinggi, melainkan dengan cara memberikan nilai masing-masing kandidat sesuai peringkatnya pada suara. Pemberian nilai tersebut yaitu sebagai berikut {n-1, n-2, …, 1, 0},
II-4 di mana n adalah jumlah kandidat yang tersedia. Misalkan untuk voting dengan tiga kandidat, maka untuk peringkat pertama, kedua dan ketiga pada suara, diberi nilai masingmasing 2, 1 dan 0. Terdapat pula cara lain yaitu dengan menormalkan nilai yang diberikan yaitu dengan membagi nilai yang didapat dengan n-1 sehingga nilai maksimal bagi peringkat pertama, tidak bergantung pada jumlah kandidat, bernilai 1. Lalu pemenang dari pemilihan ialah kandidat yang memiliki nilai tertinggi. Masih dengan menggunakan contoh pada Tabel II-1, Tabel II-3 adalah cara perhitungan menggunakan sistem voting ini dengan menggunakan normalisasi: Tabel II-3 Borda Count
Kandidat
Jumlah Pemilih
A>B>C
12
12.0
6.0
0.0
A>C>B
19
19.0
0.0
9.5
B>A>C
18
9.0
18.0
0.0
B>C>A
17
0.0
17.0
8.5
C>A>B
13
6.5
0.0
13.0
C>B>A
21
0.0
10.5
21.0
46.5
51.5
52.0
Jumlah
A
B
C
Maka berdasarkan perhitungan menggunakan sistem voting Borda Count, pemenang dari voting ini ialah kandidat C yang memperoleh nilai 52 2.1.2.4 Condorcet Method Sistem voting lainnya yang juga menggunakan peringkat ialah Condorcet Method. Pada voting dengan menggunakan sistem Condorcet Method, setiap kandidat dihitung nilainya berdasarkan kemenangan head-to-head (kemenangan seorang kandidat atas satu orang kandidat lainnya) dengan setiap kandidat lainnya. Kandidat yang memenangkan voting dengan sistem voting ini ialah kandidat yang memenangkan persaingan head-to-head dengan seluruh kandidat lainnya. Misalkan setelah proses voting didapat hasil seperti yang disajikan pada Tabel II-1. Maka dengan Condorcet Method diperoleh nilai-nilai sebagai terlihat pada Tabel II-4 Berdasarkan perhitungan pada tabel tersebut maka didapat (A > B) < (B > A), maka hubungan yang benar ialah B > A. Selain itu didapat pula (A > C) < (C > A), maka hubungan yang berlaku yaitu C > A. Lalu hubungan antara B dan C ialah C > B yang ditunjukkan
II-5 dengan nilai (B > C) < (C > B). Oleh karena itu dapat disimpulkan hubungan di antara ketiga kandidat ialah C > B > A. Dengan demikian C merupakan pemenang dalam voting ini. Tabel II-4 Condorcet Method
2.2
Kandidat
Jumlah Pemilih
A>B
44
A>C
49
B>A
56
B>C
47
C>A
51
C>B
53
Sistem Voting Elektronis
Sistem voting elektronis berguna untuk membantu pelaksanaan proses voting. Sebuah sistem voting elektronis dapat berupa alat untuk membantu pemberian suara, untuk menghitung suara yang masuk, maupun keduanya. Pada [RIV07], dijelaskan bahwa sistem voting elektronis memiliki berbagai macam masalah dalam penggunaannya. Salah satunya ialah bagaimana mengurangi resiko terjadinya kecurangan dalam voting. Misalnya dengan adanya rekaman tentang siapa memilih kandidat yang mana akan memicu terjadinya penyuapan atau pemaksaan dalam proses voting. Selain itu sistem voting elektronis harus dapat mempermudah proses pemberian suara Terdapat berbagai macam implementasi sistem voting [BEM07] antara lain ialah Mechanical Lever Machines, Punchcards, Chad, Marksense dan Direct Recording Electronic.
2.2.1 Kebutuhan Sistem Voting Elektronis Sebuah sistem voting elektronis membutuhkan kriteria-kriteria sebagai berikut[GER01]: 1. Fail-safe Voter Privacy. Suara pemilih tidak dapat diketahui. Dengan kata lain tidak dapat dicari kaitan antara seorang pemilih dengan suara yang diberikannya. 2. Collusion-free vote secrecy. Kerahasiaan suara terjaga meskipun terjadi kolusi antara beberapa orang yang memiliki otoritas dalam sistem voting.
II-6 3. Verifiable election integrity. Hasil voting tidak dapat dimanipulasi oleh satu atau beberapa orang. 4. Fail-safe privacy in verification. Bahkan dengan otoritas panitia voting dan dengan sumber daya komputer yang tinggi, nama pemilih tidak dapat dikaitkan dengan suara yang ia berikan. 5. Physical recounting and auditing. Proses dan hasil voting harus dapat disimpan secara fisik agar dapat dihitung kembali dan diaudit. 6. 100% accuracy. Setiap suara yang masuk harus dihitung secara tepat, termasuk abstain. 7. Represent blank vote. Sistem voting harus menyediakan fasilitas agar pemilih dapat memilih untuk abstain. 8. Prevent overvote. Sistem voting harus dapat mencegah terjadinya suara yang melebihi batas pilihan. Misalkan memilih lebih dari satu kandidat pada plurality atau majority vote, Pencegahan dapat dilakukan dengan memberi pesan peringatan kepada pemilih. 9. Provide for null ballots. Memperbolehkan pemilih untuk memberikan suara yang tidak sah. Misalkan pemilih tidak memiliki pilihan kandidat yang ia sukai. 10. Allow undervote. Memperbolehkan pemilih untuk tidak memilih sebanyak batas pilihan yang diharuskan. 11. Authenticated ballot style. Tampilan pilihan voting (kertas pilih pada voting berbasis kertas) harus telah diotentifikasi oleh pihak yang berwenang. 12. Manifold of links. Berbagai jenis link atau tombol digunakan untuk mengendalikan proses pemberian suara. 13. Off-line secure control structure. Harus disediakan sistem pengamanan secara off-line. 14. Technology independent. Proses voting tidak bergantung pada satu jenis teknologi. 15. Authenticated user defined presentation. Tampilan pilihan voting dapat disesuaikan dengan pilihan pemilih. Termasuk di dalamnya bahasa, ukuran tulisan dan warna. 16. Open review, open code. Source code dipublikasikan agar dapat diverifikasi. Oleh karena itu keamanan sistem voting tidak bergantung pada kerahasiaan source code.
II-7
2.3
Agen
Agen ialah sebuah entitas yang dapat merasakan lingkungannya dengan menggunakan sensor dan bertindak sesuai dengan lingkungan tersebut secara otomatis [RUS03]. Agen juga dapat didefinisikan sebagai sistem komputer yang berada pada suatu lingkungan tertentu dan mampu melaksanakan pekerjaan secara otomatis pada lingkungan tersebut sesuai dengan hasil rancangan agen tersebut[WEI99]. Definisi lain mengatakan bahwa agen ialah komponen khusus dari sebuah perangkat lunak yang menyediakan antar muka dengan sistem lain yang memiliki sifat layaknya agen manusia[BEL07]. Ilustrasi mengenai agen dan lingkungannya dapat dilihat pada Gambar II-1:
Gambar II-1 Agen dan Lingkungannya
Agen yang dapat bertindak pada lingkungan yang berubah secara cepat, terbuka dan tidak dapat diprediksi disebut juga sebagai agen cerdas [WEI99]. Agen cerdas mampu merasakan lingkungannya dan bertindak cepat terhadap perubahan yang terjadi dalam lingkungan tersebut untuk memenuhi objektifnya. Selain itu dalam memenuhi objektifnya, agen cerdas juga harus memiliki inisiatif serta mampu berkomunikasi dengan agen lainnya.
2.4
Sistem Multiagen
Agen beroperasi pada lingkungan tertentu. Pada lingkungan tersebut mungkin pula terdapat agen lainnya. Pada kasus tersebut diperlukan sebuah mekanisme untuk mengendalikan mereka sebagai sebuah kesatuan yaitu sistem multiagen. Sebuah sistem multiagen didefinisikan sebagai sistem di mana sejumlah agen cerdas berinteraksi dalam memenuhi tujuan tertentu atau dalam melaksanakan tugas tertentu [WEI99]. Menurut [VID07] sistem multiagen ialah sekumpulan agen otonom yang bertindak secara independen dengan hanya
II-8 menggunakan informasi yang ia miliki dan memiliki kemampuan untuk berkomunikasi dengan agen lainnya. Salah satu contoh sistem multiagen yaitu Distributed Vehicle Monitoring(DVMT) [SYC98]. Pada sistem ini sejumlah agen yang terpisah secara geografis memantau kendaraan yang melintasi wilayah mereka dan merunut kendaraan apa saja yang melintas secara global.
2.5
Komunikasi Antar Agen
Komunikasi antar agen merupakan komponen kunci dari sebuah sistem multiagen [BEL07]. Agen-agen berkomunikasi satu sama lainnya dengan cara bertukar pesan dalam bahasa tertentu. Bahasa yang umum digunakan dalam komunikasi antar agen pada saat ini ialah bahasa FIPA ACL yang telah memenuhi standar FIPA(Foundation for Intelligent Physical Agent). FIPA ACL memisahkan antara maksud pesan (Communicative Act) dengan isi pesan (Content). Communicative act berguna untuk memberi tahu penerima pesan maksud dari pesan. Penerima pesan dapat menentukan aksi apa yang akan dilakukan berdasarkan communicative act dalam pesan yang diterimanya. Contoh dari communicative act ialah request, inform, agree atau refuse. Content ialah isi dari pesan itu sendiri. Misalkan communicative act dari pesan berupa request, maka content berisi aksi apa yang harus dilakukan penerima untuk memenuhi request tersebut. Dalam pembentukan content, diperlukan ontologi. Ontologi bertindak layaknya bahasa yang harus dipahami kedua agen yang sedang berkomunikasi, agar pesan dapat dipahami. Ontologi terdiri atas konsep, predikat dan aksi. Konsep ialah ekspresi yang menyatakan sebuah entitas. Predikat ialah ekspresi yang merepresentasikan sebuah fakta. Aksi ialah konsep khusus yang menyatakan aksi yang dapat dilakukan oleh suatu agen.
2.6
Java Agent Development Environment (JADE)
JADE ialah sebuah framework pengembangan perangkat lunak yang ditujukan untuk sistem multiagen dan aplikasi agen berstandar FIPA. JADE ditulis dalam bahasa pemrograman Java dan merupakan framework yang bersifat open source.
II-9
2.6.1 Komponen utama JADE Paket distribusi JADE memiliki tiga buah komponen utama yaitu Runtime Environment, Library dan Tools. Runtime Environment berfungsi sebagai lingkungan di mana agen-agen hidup dan melakukan tugasnya. Instans dari runtime environment dinamakan kontainer. Kontainer dapat menampung sejumlah agen. Sekumpulan kontainer membentuk platform. Masing-masing platform setidaknya memiliki sebuah kontainer yang dinamakan kontainer utama. Kontainer pertama yang dijalankan pada sebuah platform secara otomatis menjadi kontainer utama, sedangkan kontainer setelahnya menjadi kontainer biasa. Kontainer biasa harus mengetahui informasi alamat dari kontainer utama untuk bergabung dalam suatu platform. Kontainer ini dapat berjalan pada komputer yang berlainan dengan kontainer utamanya. Library berisi kelas-kelas Java yang berguna untuk pengembangan sistem multiagen. Salah satu contoh kelas yang ada pada library JADE ialah jade.core.Agent di mana pemrogram JADE harus membuat kelas turunan dari kelas ini untuk mendefinisikan suatu jenis agen. Selain kelas tersebut, JADE juga menyediakan kelas-kelas untuk komunikasi antar agen dengan standar FIPA. Tools berguna sebagai alat untuk membantu pengembangan sistem multiagen dengan menggunakan JADE. Tools yang disediakan memiliki antarmuka grafis sehingga memudahkan pemrogram JADE dalam mengelola agen, debugging serta melakukan pengujian terhadap agen.
2.6.2 Fitur-fitur Penting JADE 2.6.2.1 Agent Management System Agent Management System(AMS) ialah agen yang telah didefinisikan oleh JADE sesuai dengan standar FIPA. Agen ini berjalan pada kontainer utama. Agen ini menyediakan layanan penamaan kepada agen sehingga tidak terdapat agen yang memiliki nama yang sama. Agen ini juga memiliki otoritas untuk menginstansiasi atau mematikan agen yang terdapat pada platform tempat ia berada.
II-10 2.6.2.2 Directory Facilitator Directory Fasilitator(DF) juga agen yang berjalan pada kontainer utama yang telah didefinisikan oleh JADE sesuai dengan standar FIPA. Agen ini berfungsi sebagai penyedia layanan yellow pages. Jika agen ingin memberitahukan agen lainnya mengenai layanan apa yang ia miliki agen tersebut dapat mendaftarkan diri ke agen ini. Misalkan agen ingin mencari sebuah layanan tertentu, agen juga dapat melakukan query kepada agen DF. 2.6.2.3 Remote Monitoring Agent Remote Monitoring Agent merupakan agen yang memiliki tampilan grafis dan berfungsi sebagai antarmuka bagi pemrogram JADE dengan berbagai tools yang dimiliki oleh JADE. Melalui RMA, agen dapat diinstansiasi dan dimatikan. Selain itu pada RMA juga dapat dilihat kontainer-kontainer apa saja yang telah diaktifkan beserta agen di dalamnya.