Oleh:
1. Aloysius Darin Ario (205150301111008)
2. Andiny Nur Rahmawati (205150307111015)
3. Aqil Dzakwanul Fikri (205150301111015)
4. Oktavian Hisdianton (205150301111011)
5. Reza Amelia Putri (205150301111038)
6. Zidan Indra Resiman (195150300111060)
Dosen Pengampu:
Dahnial Syauqy, S.T., M.T., M.Sc.
ii
Lampiran 1: Source code dan file UCF ............................................................................. 13
iii
BAB I
PENDAHULUAN
1
1.4 Manfaat
- Mengurangi tenaga kerja yang membuat pemungutan suara tidak efektif
dan juga mengurangi tingkat kesalahan dalan proses perhitungan serta
kecurangan didalamnya
2
BAB II
TINJAUAN PUSTAKA
2.1 Pengertian pemungutan suara
Mesin pemungutan suara adalah sebuah mesin yang bertujuan untuk
melakukan pehitungan pemungutan suara. Mesin ini sudah banyak
diimplementasikan di negara-negara maju seperi Amerika, Inggris, dan
Cina.
2.4 LCD
Liquid Crystal Display adalah media tampilan yang menggunakan bahan
Kristal cair sebagai penampil utama. Penggunaan LCD pada mesin
pemungutan suara sebagai pemberitaan langsung kepada user/pemilih (User
Interface). LCD berperan tunggal sebagai penampil dan kegunaannya tidak
3
bisa digantikan dan tidak ada alternatifnya. LCD nantinya akan menampilkan
calon-calon yang bisa dipilih.
4
BAB III
METODOLOGI DAN PERANCANGAN
5
3.2 Blok diagram
6
3.3 Perancangan sistem
7
BAB IV
PEMBAHASAN
8
Saat program berjalan program akan mengdeklarasi CALON1, CALON2, dan
CALON3. setelah itu, user akan memasukkan suara/vote dan dicek di masing -
masing CALON1, CALON2, dan CALON3. Kemudian, data disimpan lalu reset
ke awal mula dan dapat digunakan oleh user selanjutnya.
9
Gambar 4.3. Bentuk fisik sistem
10
BAB V
PENUTUP
5.1 Kesimpulan
Pembuatan mesin pemungutan suara ini dapat menjadi sebuah hal yang dapat
menjadi meningkatkan tingkat keamanan serta efiesiensi biaya dan waktu dalam
melakukan pemungutan suara yang biasa dilakukan pada saat hari-hari pemilihan.
5.2 Saran
Tentu saja dalam pembuatan tugas akhir ini masih banyak kekurangan, salah
satunya adalah karena cuman menggunakan aplikasi simulasi yang dimana ada
beberapa perbedaan dengan menggunakan FPGA Spartan 3E yang asli.
11
DAFTAR PUSTAKA
Bushwick, S. 2020. "An Expert on Voting Machines Explains How They Work".
[Online]. Tersedia: https://www.scientificamerican.com/article/an-expert-on-
votingmachines-explains-how-they-work
12
LAMPIRAN I: SOURCE CODE dan FILE UCF
A. Source Code
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;
entity Voting_Suara is
Port ( Clock : in STD_LOGIC;
Reset : in STD_LOGIC;
Calon1 : in STD_LOGIC;
Calon2 : in STD_LOGIC;
Calon3 : in STD_LOGIC;
Select_Calon : in STD_LOGIC;
count1 : out STD_LOGIC_VECTOR (5 downto 0);
count2 : out STD_LOGIC_VECTOR (5 downto 0);
count3 : out STD_LOGIC_VECTOR (5 downto 0));
end Voting_Suara;
begin
process(clock,reset,calon1,calon2,calon3)
begin
if(reset='1') then
hitung1<=(others=>'0');
hitung2<=(others=>'0');
hitung3<=(others=>'0');
state<=initial;
else
13
when check=>
--nsl
if(calon1='1') then
state<=calon1_state;
elsif (calon2='1') then
state<=calon2_state;
elsif (calon3='1') then
state<=calon3_state;
else
state<=check;
end if;
--ofl
when calon2_state=>
--nsl
if(Select_Calon='1') then
state<=done;
else
state<=calon2_state;
end if;
--ofl
if(Select_Calon='1') then
hitung2<=hitung2 + '1';
end if;
14
count1<=hitung1;
count2<=hitung2;
count3<=hitung3;
end Behavioral;
ENTITY voting_test IS
END voting_test;
COMPONENT Voting_Suara
PORT(
Clock : IN std_logic;
Reset : IN std_logic;
Calon1 : IN std_logic;
Calon2 : IN std_logic;
Calon3 : IN std_logic;
Select_Calon : IN std_logic;
count1 : OUT std_logic_vector(5 downto 0);
count2 : OUT std_logic_vector(5 downto 0);
count3 : OUT std_logic_vector(5 downto 0)
);
END COMPONENT;
--Inputs
signal Clock : std_logic := '0';
signal Reset : std_logic := '0';
signal Calon1 : std_logic := '0';
signal Calon2 : std_logic := '0';
signal Calon3 : std_logic := '0';
signal Select_Calon : std_logic := '0';
--Outputs
signal count1 : std_logic_vector(5 downto 0);
signal count2 : std_logic_vector(5 downto 0);
signal count3 : std_logic_vector(5 downto 0);
BEGIN
15
count1 => count1,
count2 => count2,
count3 => count3
);
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
reset<='1';
wait for 10 ns;
reset<='0';
Calon1<='0';
Calon2<='0';
Calon3<='0';
Calon1<='1';
wait for 10 ns;
Calon1<='0';
wait for 10 ns;
Select_Calon<='1';
wait for 10 ns;
Select_Calon<='0';
wait for 10 ns;
Calon1<='1';
wait for 10 ns;
Calon1<='0';
wait for 10 ns;
Select_Calon<='1';
wait for 10 ns;
Select_Calon<='0';
wait for 10 ns;
Calon1<='1';
wait for 10 ns;
Calon1<='0';
wait for 10 ns;
Select_Calon<='1';
wait for 10 ns;
Select_Calon<='0';
wait for 10 ns;
Calon2<='1';
wait for 10 ns;
Calon2<='0';
wait for 10 ns;
Select_Calon<='1';
16
wait for 10 ns;
Select_Calon<='0';
wait for 10 ns;
Calon3<='1';
wait for 10 ns;
Calon3<='0';
wait for 10 ns;
Select_Calon<='1';
wait for 10 ns;
Select_Calon<='0';
wait for 10 ns;
wait;
end process;
END;
C. UCF code
# PlanAhead Generated physical constraints
NET "Clock" LOC = C9;
17