• Tidak ada hasil yang ditemukan

Cara kerja sistem ini pada saat pemilih memberikan NIM kepada operator maka operator akan mengecek NIM dimana sistem akan mengget NIM dan status pemilih dari database. jika status false maka pemilih dinyatakan belum menggunakan hak pilih akan tetapi jika bernilai true maka pemilih sudah menggunakan hak pilih. setelah itu operator akan membuka bilik suara yaitu dengan menampilkan halaman pemilih pada bilik dengan menggunakan remote rmi dimana sistem akan mengecek terlebih dahulu apakah UI pemilih pada bilik

masih tampil atau tidak jika masih tampil maka akan muncul pesan bilik sedang digunakan bila tidak maka bilik akan terbuka dan pemilih dapat menggunakan hak pilihnya di bilik tersebut. untuk selengkapnya proses cara kerja aplikasi adalah sebagai berikut.

4.2.1 Server Pemilu 4.2.1.1 HalamanAwal.java

Pada awal aplikasi server di run maka yang pertama kali dijalankan adalah kelas Halaman awal, halaman ini berfungsi untuk menampilkan UI Halaman Utama Server yang berisi tombol setup database dan tombol aktifkan server.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

new SettingDB().setVisible(true); this.dispose();

}

listing program diatas akan mengaktifkan kelas SettingDB.java ketika tombol tersebut diklik

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { new ServeruI().setVisible(true);

this.dispose(); }

listing program diatas akan mengaktifkan kelas Serverui.java ketika tombol tersebut diklik.

4.2.1.2 SettingDB.java

Ketika tombol setup databasediklik maka akan dilakukan eksekusi pada program ini.

public class SettingDB extends javax.swing.JFrame { SetupDatabase setup=new SetupDatabase(); public SettingDB() {

initComponents();

Object obj = new tools1().StreamToObyek(); if (obj != null) {

setup = (SetupDatabase) obj;

jTextField1.setText(setup.getUsername()); jPasswordField1.setText(setup.getPassword()); }

}

Listing program diatas untuk akan mengecek apakan sudah ada simpanan data settingDB.ser, jika ya maka akan diambil datanya menggunakan kelas tools1.java lalu data tersebut akan digunakan untuk mengisi kolom textfield pada UI SettingDB.java

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { setup.setUsername(jTextField1.getText());

setup.setPassword(jPasswordField1.getText()); boolean DBKonek = false;

if (new tools1().ObyekTostream(setup)) { try {

Connection con = (Connection) Koneksi.getInstance().getKoneksi(); DBKonek = true;

jLabel4.setText("Koneksi Sukses"); jLabel4.setForeground(Color.GREEN);

JOptionPane.showMessageDialog(this, "Data Berhasil Disimpan"); this.dispose();

new HalamanAwal().setVisible(true); } catch (SQLException ex) {

jLabel4.setText("Gagal Tersambung ke DATABASE"); jLabel4.setForeground(Color.red);

Logger.getLogger(SettingDB.class.getName()).log(Level.SEVERE, null, ex);

} } else {

JOptionPane.showMessageDialog(this, "Data GAGAL Disimpan"); }

listing program diatas untuk meng get username dan password yang diisikan user dikolom textfield lalu memasukkannya kedalam obyek setup, setelah itu akan disimpan distream menggunakan kelas tools jika tidak berhasil maka akan muncul pesan error, jika berhasil maka akan dicek apakah bisa terkoneksi kedalam database, jika tidak akan muncul pesan tidak berhasil tersambung kedatabase, jika berhasil akan muncul pesan koneksi sukses.

4.2.1.3 ServerUi.java

Kelas merupakan kelas untuk menampilkan settingan IP server pemilu yang akan digunakan untuk menghubungkan dengan client.

public class ServeruI extends javax.swing.JFrame { ServerPemiluImplement remote; String ip; public ServeruI() { initComponents(); try { IP = Inet4Address.getLocalHost().getHostAddress(); } catch (UnknownHostException ex) {

Logger.getLogger(ServeruI.class.getName()).log(Level.SEVERE, null, ex);

}

jTextField1.setText(ip); }

Listing diatas digunakan untuk mengambil alamat IP pada komputer yang tersambung ke lan untuk ditampilkan pada kolom textfield.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try {

if (remote.start(jTextField1.getText())) {

jLabel4.setText("Server Aktif \n IP Server= " + jTextField1.getText()); jButton1.setEnabled(false);

jTextField1.setEnabled(false); }

} catch (RemoteException ex) {

setLabelKoneksi("Server Disconected");

Logger.getLogger(ServeruI.class.getName()).log(Level.SEVERE, null, ex);

} }

Listing diatas akan membuat objek remote dari kelas serverPemiluImplements.java yang akan digunakan untuk mengaktifkan server, jika server berhasil naik maka akan muncul pesan server aktif berikut alamat IP yang digunakan server untuk tersambung. jika server tidak berhasil naik maka akan muncul pesan server disconected.

4.2.1.4 ServerPemiluImplements.java

Pada saat tombol konek pada serverUi.java diklik maka kelas ini akan dijalankan.

ServerPemiluImplement(ServeruI aThis) throws RemoteException { super();

this.ui=aThis; }

String ipserv; Registry Server;

public boolean start(String ip) { boolean result= false;

try { Server = LocateRegistry.createRegistry(1099); Naming.rebind("//" + IP + ":1099/PemiluUSD", ServerPemiluImplement.this); System.out.println("Server waiting..."); ipserv=ip;

result=true;

} catch (java.net.MalformedURLException me) { result=false;

ui.setLabelKoneksi("Server Disconected");

System.out.println("Malformed URL: " + me.toString()); } catch (RemoteException re) {

result=false;

ui.setLabelKoneksi("Server Disconected");

System.out.println("Remote exception: " + re.toString()); }

return result; }

Listing program diatas untuk mengaktifkann server RMI pemilu sehingga dapat diakses client RMI pada IP yang telah diisikan di kelas

serverUi.java listing program Server =

LocateRegistry.createRegistry(1099); digunakan untuk mendaftarkan

keregistry bahwa port 1099 digunakan untuk server RMI pemilu BEMU. Listing program Naming.rebind("//" + IP + ":1099/PemiluUSD",

ServerPemiluImplement.this); digunakan untuk membuat alamat koneksi

dimana IP adalah IP server yang terhubung ke client melalui jaringan, alamat ini berfungsi sebagai url oleh client yang akan berkomunikasi dengan server. jika server gagal naik maka akan muncul pesan error server disconected dan result bernilai false, jika server berhasil naik maka result akan bernilai true.

4.2.2 Operator

4.2.2.1 Ceknim.java

Dihalaman utama operator terdapat cek pemilih dimana fungsi ini digunakan mencari dan mengecek pemilih yang akan menggunakan hak suara.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { remote.konek(setting.getipSErver());

if (remote.CekdataPemilih(jTextField1.getText())) {

Pemilih = remote.getDataPemilihDarinim(jTextField1.getText()); bilik = new Bilik(Pemilih, Operator, Ceknim.this);

bilik.setVisible(true); this.dispose(); } else {

JOptionPane.showMessageDialog(rootPane, "Maaf Anda Tidak Terdaftar Atau Hak pilih Anda Sudah Digunakan");

} }

Listing program diatas digunakan terdapat

remote.konek(setting.getiserver); perintah ini digunakan untuk merujuk method konek yang berada pada objek remoteuntuk membuat koneksi keserver pemilu.

4.2.2.2 RemoteServerUtama.java

public boolean konek(String ip) { boolean result = false; String value = null; try {

System.out.println("Security Manager loaded"); String url = "//" + IP + ":1099/PemiluUSD";

remoteObject = (ServerEpemilu) Naming.lookup(url); System.out.println("Got remote object");

System.out.println("res=" + result); } catch (NotBoundException ex) { new Setting().setVisible(true);

Logger.getLogger(remoteServerUtama.class.getName()).log(Level.SEVERE, null, ex);

} catch (MalformedURLException ex) { new Setting().setVisible(true);

Logger.getLogger(remoteServerUtama.class.getName()).log(Level.SEVERE, null, ex);

} catch (RemoteException ex) { new Setting().setVisible(true); Logger.getLogger(remoteServerUtama.class.getName()).log(Level.SEVERE, null, ex); } return result; }

Listing diatas berada pada kelas remoteServerUtama yang bertugas untuk membuat koneksike serverPemillu jika koneksi sukses maka return akan bernilai true, jika tidak akan bernilai false. setelah terkoneksi maka remote.cekdatapemilih bernilai true berarti pemilih terdaftar dan belum menggunakan hak pilih maka halaman buka bilik suara akan terbuka. jika tidak maka akan muncul pesan maaf anda tidak terdaftar atau hak pilih telah digunakan.

4.2.2.3 Bilik.java

private void OkBilik1ActionPerformed(java.awt.event.ActionEvent evt) {

remoteUtama.konek(setting.getipSErver());

String jumlahKandidat = remoteUtama.GetjumlahKandidat(); if (remoteUtama.cekwaktuMulai() > 0) { if (remoteUtama.cekwaktuSelesai() < 0) { remote.konek(setting.getArrayip()[jComboBox1.getSelectedIndex()]); if (!remote.CekBilik(jumlahKandidat)) { if (remote.OpenUI(Pemilih, setting.getIDTPS(), jumlahKandidat)) {

JOptionPane.showMessageDialog(null, "Bilik Berhasil DIbuka");

GuiCeknim.clear_field(); GuiCeknim.setVisible(true); this.dispose();

} else {

JOptionPane.showMessageDialog(null, "Bilik Gagal Dibuka");

this.dispose(); }

} else {

JOptionPane.showMessageDialog(null, jComboBox1.getSelectedItem().toString() + " Sedang Digunakan");

}

} else {

JOptionPane.showMessageDialog(null, "Waktu Pemilihan Sudah Selesai");

this.dispose(); }

} else {

JOptionPane.showMessageDialog(null, "Waktu Pemilihan Belum Dimulai");

this.dispose(); }

Listing diatas merupakan isi dari tombol ok pada halaman buka bilik yang berfungsi untuk mengecek bilik suara apakah sedang digunakan atau tidak dan membuka bilik suara. jika sedang digunakan akan muncul pesan bilik sedang digunakan, jika gagal dibuka karena koneksi putus atau hal lainnya maka akan muncul pesan bilik gagal dibuka, jika waktu

pemungutan suara telah selesai akan muncul pesan waktu pemilihan sudah selesai. jika berhasil dibuka maka akan muncul pesan bilik berhasil dibuka.

4.2.3 Pemilih

4.2.3.1 SetupBilik.java

Saat aplikasi pemilih di run maka yang pertama kali dijalankan adalah kelas setupbilik ini merupakan UI yang berisi settingan pemilih.

private void jButton1ActionPerformed(java.awt.event.ActionEvent

evt) {

boolean Bilikserver = false; boolean Serversuara = false; boolean Printer;

SampleServerImplement serv = null; Serversuara = new

remoteServerUtama().konek(jTextField2.getText()); Printer = new

cetakPrinter().Cetak(jComboBox1.getSelectedItem().toString(), " TEST PRINTER \n =========================\n SUKSES \n

==========================\n Printer Ini digunakan\n Untuk Mencetak Suara");

if (Serversuara) {

jLabel4.setForeground(Color.BLACK); if (Printer) {

jLabel3.setForeground(Color.BLACK); set = new Setup();

set.setipBilik(jTextField1.getText()); set.setipserrverUtama(jTextField2.getText()); set.setNamaPRinter(jComboBox1.getSelectedItem().toString()); if (new tools().ObyekTostream(set)) { try {

serv = new SampleServerImplement(set); Bilikserver = serv.start(jTextField1.getText()); } catch (RemoteException ex) {

Logger.getLogger(SetupBilik.class.getName()).log(Level.SEVERE, null, ex); } if (Bilikserver) { new PemilihAktif(set,serv).setVisible(true); this.dispose(); } else { jLabel2.setForeground(Color.red); JOptionPane.showMessageDialog(rootPane, "ERROR: IP Bilik Suara salah");

} } else {

JOptionPane.showMessageDialog(rootPane, "ERROR :Tidak Dapat Menyimpan Data"); }

} else {

jLabel3.setForeground(Color.red);

JOptionPane.showMessageDialog(rootPane, "ERROR: Printer Tidak Dapat Mencetak Data"); }

} else {

jLabel4.setForeground(Color.red);

JOptionPane.showMessageDialog(rootPane, "ERROR: IP Server Pemilu salah");

}

Listing program diatas akan mengecek Printer, koneksi ke server utama, menaikkan server bilik yang akan diremote dari operator dan menyimpan semua settingan. jika salah menginputkan IP bilik suara maka akan muncul pesan Error:ip bilik suara salah, jika data tidak dapat tersimpan maka kan muncul pesan Error:tidak dapat menyimpan data jika semua sukses maka akan muncul pesan bilik aktif, jika semua sukses maka printer akan mencetak test printer dan akan muncul pesan bilik suara aktif.

4.2.4 KPU

4.2.4.1 HalamanVote.java

Untuk menampilkan hasil vote maka kelas yang dijalankan pertama adalah HasilVote.java, saat dijalankan pertama kali akan menjalankan konstruktor dengan listing program

HasilVote2(panitia KPU) { initComponents(); this.setLocationRelativeTo(this); this.Pemilih = Pemilih; this.KPU = KPU; remote.konek(); listKandidat = remote.GetDataKandidat(); setFoto(); setlablNilai(); }

pada listing diatas terdapat perintah listKandidat = remote.GetDataKandidat(); yang akan mengget semua data kandidat termasuk termasuk skor kandidat dari serverpemilu. setelah data didapet maka akan ditampilkan dengan perintah

setFoto(); untuk menampilkan foto kandidat dan setlablNilai(); untuk

menapilkan skor kandidat.

4.2.4.2 RemoteServerUtama.java

Kelas ini Merupakan kelas kontroleryang menghubungkan antara kelas UI dengan kelas ServerPemilu.java yang terhubung dengan server pemilu. Pada saat menampilkan skor kandidat maka yang akan digunakan adalah listing program:

public ArrayList<kandidat> GetDataKandidat() {

ArrayList<kandidat> result = new ArrayList<kandidat>(); try {

byte[] byte1 = remoteObject.GetDataKandidat(); try {

result = (ArrayList<kandidat>) tools.toObject(byte1); } catch (IOException ex) {

Logger.getLogger(remoteServerUtama.class.getName()).log(Level.SEVE RE, null, ex);

} catch (ClassNotFoundException ex) {

Logger.getLogger(remoteServerUtama.class.getName()).log(Level.SEVE RE, null, ex);

}

} catch (RemoteException ex) {

Logger.getLogger(remoteServerUtama.class.getName()).log(Level.SEVE RE, null, ex);

}

return result; }

Pada kelas diatas terdapat perintah byte[] byte1 =

remoteObject.GetDataKandidat(); perintah ini akan mengambil data

kandidat beserta skor dari server melalui rmi, karena jaringan tidak dapat mengirim data dalam satu blok objek maka objek dikirim dalam bentuk array byte. setelah itu array byte akan dikonversi menjadi arraylist kandidat yang akan ditampilkan di UI halaman vote.

4.3Black-box testing

Pengujian ini digunakan untuk mengetahui apakah sistem sudah berfungsi seperti yang diharapkan atau belum.

1. Aplikasi Operator

No Skenario Hasil yang

diharapkan Hasil kesimpulan 1 Operator Menginnputkan NIM pemilih Sistem menampilkan data dan statuspemilih Sesuai harapan Sukses

2 Operator membuka bilik suara saat bilik sedang

dipakai Sistem menampilkan peringatan bilik sedang dipakai Sesuai harapan Sukses

3 Operator membuka bilik suara saat bilik kosong

Sistem membuka bilik suara dan

menampilkan pesan bilik berhasil dibuka Sesuai harapam sukses 2. Aplikasi Pemilih

No Skenario Hasil Yang

diharapkan

Hasil kesimpulan

1 Pemilih mengklik foto kandidat

Foto dibingkai hitam Sesuai harapan

sukses

2 Pemilih mengklik

tanda silang/menutup aplikasi

Tidak terjadi apa- apa/sistem tetap

berjalan

Sesuai harapan

sukses

3 Pemilih tidak memilih sampai waktu habis

Sistem menampilkan pesan waktu habis dan

sistem tertutup

Sesuai harapan

Sukses

4 Pemilih mengklik

tomboh pilih saat koneksi putus

Sistem menampilkan pesan gagal dan meminta pemilih

mengulang

Sesuai harapan

5 Pemilih mengkilk tombol pilih dan berhasil menggunakan

hak suara

Muncul pesan terima kasih, printer mencetak

pilihan, status pemilih menjadi sudah memilih

Sesuai harapan

Sukses

3. Aplikasi Server

No Skenario Hasil Yang

diharapkan

Hasil kesimpulan 1 Admin mengklik tombol

test koneksi

Mincul pesan koneksi database gagal atau sukses

Sesuai harapan

Sukses

2 Admin mengklik tombol start server dengan input

IP salah

Muncul peringatan server belum aktif

Sesuai harapan

Sukses

3 Admin mengklik tombol start dan sistem berhasil

dijalankan

Muncul pesan server telak aktif

Sesuai harapan Sukses 4 Admin salah memasukkan username password database Muncul pesan koneksi gagal Sesuai harapan Sukses

5 Settingan Username dan password gagal

tersimpan

Muncul pesan data gagal tersimpan

Sesuai harapan

Sukses

4. Aplikasi KPU

No Skenario Hasil Yang

diharapkan

hasil Kesimpulan

1 user lupa menambah

foto kandidat saat mengisi data kandidat

Muncul pesan data gagal ditambahkan

Sesuai harapan

Sukses

2 User mengklik tombol lihat hasil pemilu

Sistem menampilkan form hasil pemilu Sesuai harapan Sukses

3 User mengklik tombol cetak hasil pemilu

Sistem menyimpan hasil pemilu dalam

format pdf

Sesuai harapan

Sukses

4 User salah memasukkan IP server

Muncul pesan koneksi gagal dan

muncul form ip

Sesuai harapan

4.4Analisa Kuesioner

Analisa ini digunakan untuk menguji penerimaan program berdasar respon pengguna. pengujian ini dilakukan dengan cara memberikan kuesioner kepada pengguna sistem. kuesioner didapat dari journal kuesioner utaut N.D.Oye et al, A Model of ICT Acceptance and Use for Teachers in Higher Education Institutions, International Journal of Computer Science & Communication Networks,Vol 1(1), 2011 seperti seperti dalam lampiran .akan tetapi kuesioner masih dalam bahasa inggris, kemudian ditranslate kedalam bahasa indonesia seperti dalam lampiran setelah itu kuesioner diuji validitas dan reliabilitas. berikut hasil uji reliabilitas dan validitas

Gambar 4.4 Hasil uji validitas dan reliabilitas

dari hasil diatas didapat kuesioner 100% valid sehingga pertanyaan kuesioner tidak perlu dikurangi. berikut hasil uji kuesioner

4.4.1 Performance Expectancy

Dari hasil kuesioner didapat presentase performance

expectacy sebagai berikut

Tabel 4.1 Presentase skor dari performance expectancy

pertanyaan skor 1 2 3 4 5

Q1 3 16 17 37 27

Q2 3 13 33 41 10

Q3 3 10 23 47 17

Q4 7 13 17 40 23

Dari tabel diatas dapat dibuat diagram pie sebagai berikut:

Sangat tidak setuju = total skor1 / 4 Sidak setuju = total skor2 / 4

Netral = total skor3 / 4

Setuju = total skor4 / 4

Gambar 4.5 Diagram pie performance expectancy

Performance Expectancy adalah kepercayaan user bahwa sistem

membantu menyelesaikan masalah. dalam hal ini keyakinan pemakai yaitu panitia dan pemilih bahwa sistem mempermudah dan atau mempercepat proses pemilu bemu. Performance expectancy memiliki mean/rata-rata 3,67 yang artinya rata-rata setuju bahwa sistem membantu user, dan standar deviasi 1,15. Dari hasil penelitian menunjukkan bahwa 41% setuju dan 20% sangat setuju bahwa sistem membantu pemilu bemu. sedangkan 22% menyatakan netral. Ada 17% responden yang terdiri dari 13% tidak setuju dan 4% sangat tidak setuju bahwa sistem membantu pemilu bemu dimungkinkan karena sistem memang tidak difokuskan dalam membantu user ketika proses pemungutan suara, tetapi lebih kepada panitia ketika proses perhitungan suara.

sangat tidak setuju4% tidak setuju 13% Netral 22% Setuju 41% sangat setuju20%

4.4.2 Effort expectancy

Dari hasil kuesioner didapat presentase effort expectacy sebagai berikut:

Tabel 4.2 Presentase skor dari effort expectancy

pertanyaanskor 1 2 3 4 5

Q5 0 10 30 37 23

Q6 0 3 30 47 20

Q7 0 13 30 40 17

Q8 0 7 30 43 20

Dari tabel diatas dapat dibuat diagram pie sebagai berikut:

Sangat tidak setuju = total skor1 / 4 Sidak setuju = total skor2 / 4

Netral = total skor3 / 4

Setuju = total skor4 / 4

Gambar 4.6 Diagram pie presentase skor effort expectancy

Effort expectancy adalah kepercayaan user bahwa sistem

mudah dioperasikan. Effort expectancy memiliki mean 3,73 berarti lebih dekat ke 4 yaitu setuju hal ini menunjukkan respon positif. Tanggapan pertanyaan Q5-Q8 menunjukkan bahwa 62% pengguna merasa sistem ini mudah digunakan hal ini ditunjukkan dari 42% menyatakan setuju dan 20% sangat setuju. dengan adanya sistem e-pemilu ini, 30% menyatakan netral, sedangkan 8% tidak setuju bahwa sistem mudah digunakan. Dari hasil survei tersebut menunjukkan respon positif, hanya 8% responden yang menyatakan bahwa sistem tidak mudah untuk dioperasikan dan 20% menyatakan sangat setuju bahwa sistem mudah dioperasikan. Hal ini dikarenakan tampilan sistem ketika proses pemungutan suara hanya berupa digitalisasi dari manual dengan mencontreng dirubah menjadi digital dengan memilih pada layar komputer dengan tampilan sistem

hampir sama dengan kertas suara.

sangat tidak setuju 0% tidak setuju 8% netral 30% setuju 42% sangat setuju 20%

BAB V

KESIMPULAN DAN SARAN

Dokumen terkait