03 - AMIKOM - Yogyakarta - APLIKASI SISTEM QUICK COUNT (SI-Q-CUP) PILKADA PDF
03 - AMIKOM - Yogyakarta - APLIKASI SISTEM QUICK COUNT (SI-Q-CUP) PILKADA PDF
Armadyah Amborowati
Dosen STMIK AMIKOM Yogyakarta
Abstraksi
23
Pendahuluan
25
Pembahasan
Karakteristik Produk
Dalam SI-Q-CUP, masing-masing TPS akan mengirimkan hasil
perhitungan suara menggunakan handphone (HP) yang sudah
teregistrasi sebelumnya. Pesan yang diterima SMS Gateway akan
diberikan balasan informasi untuk memberitahukan bahwa SMS telah
diterima.
26
Karakteristik Pengguna
Karakteristik dari pengguna SI-Q-CUP terbagi atas 2, seperti yang
terlihat pada tabel karakteristik pengguna berikut ini:
1. Aktor Pengelola SI-Q-CUP
Tabel 1. Tabel aktor pengelola SI-Q-CUP
Nama Aktor Definisi
Administrator Administrator bertugas
untuk mengontrol jalannya
aplikasi web.
Petugas Petugas yang mempunyai
KPUD hak akses untuk mengirim
hasil perhitungan suara
27
Antarmuka Perangkat-Keras
Server SMS Gateway, server Database dan server web SI-Q-CUP
berjalan diatas perangkat-keras Personal Computer (PC) dengan
spesifikasi Processor Intel Xeon 3GHz, Memory RAM 1G, Harddisk
80G, dan sistem operasi Linux. Handphone yang digunakan untuk
mengirim pesan ke SMS Gateway dapat dari berbagai jenis tipe dan
merek, dengan sebelumnya pemilik HP (Petugas KPUD) melakukan
registrasi nomor terlebih dahulu.
Antarmuka Perangkat-Lunak
SI-Q-CUP adalah program yang dibangun dengan menggunakan
bahasa pemograman Java, Compiler dan Tools Java.
Antarmuka Komunikasi
SI-Q-CUP merupakan system yang terhubung ke jaringan komputer,
dan komunikasi yang terjadi antar perangkat-keras dalam jaringan
melewati protokol TCP/IP.
Kebutuhan Fungsional
Deskripsi Proses
1. Proses pada SMS Center
1. Registrasi nomor handphone
2. Pengiriman SMS Konfirmasi
3. Pengiriman SMS Perhitungan Suara
4. Pengiriman Balasan
2. Proses pada aplikasi web
1. Proses registrasi nomor handphone
2. Proses menampilkan hasil kalkulasi suara pilkada
28
Conceptual Data Model
Conceptual Data Model menunjukkan hubungan antar entitas serta
atribut-atribut dari masing-masing entitas tersebut.
CDM untuk SI-Q-CUP di gambarkan pada gambar berikut ini:
Kebutuhan Non-Fungsional
Performasi
Tidak ada batasan performasi, karena kemampuan perangkat-keras
yang digunakan telah memadai.
Batasan Memori
Besarnya memory yang dibutuhkan untuk menjalankan perangkat
lunak SI-Q-CUP minimal 512 MB.
Modus Operasi
Modus operasi perangkat lunak SI-Q-CUP ada dua, yaitu sebagai
berikut:
1. Level pengelola: dapat melihat sistem secara keseluruhan dan
melakukan perbaikan untuk aplikasi web jika diperlukan.
29
2. Level pengguna: pada level ini, pengguna di bagi menjadi dua,
yaitu sebagai berikut:
Petugas KPUD: dapat melakukan pengiriman hasil suara
yang diperoleh oleh masing-masing TPS
Pengguna Eksternal: terdiri atas peneliti, politisi, LSM,
masyarakat, dan pihak lain yang menggunakan system ini,
yang mana pengguna eksternal ini hanya dapat melihat hasil
perolehan suara dalam aplikasi web yang tersaji dalam bentuk
grafik dan teks.
Kebutuhan Adaptasi Lokasi
SI-Q-CUP hanya dapat diaplikasikan dalam lokasi yang memiliki
jaringan terkoneksi ke internet.
Keandalan
Sistem disajikan dalam bentuk aplikasi web, yang dapat diakses
dengan protokol HTTP (RFC 2816). Protokol HTTP merupakan
protokol yang umum digunakan dalam aplikasi internet. Sedangkan
untuk SMS Center yang digunakan sebagai penerima SMS adalah
modem GSM yang mampu bekerja pada area band 800Mhz, 1800Mhz
dan 1900Mhz.
3.4.4 Ketersediaan
Aplikasi web dapat diakses selama 7 hari seminggu dan 24
jam sehari, dalam jangka waktu tertentu selama event pilkada
berlangsung.
3.4.5 Keamanan
Aplikasi web diakses dengan menggunakan protokol HTTPS
(RFC 2660). Protokol HTTPS merupakan protokol HTTP yang
dilapisi lapisan TLS Protocol Version 1.1 (RFC 4346) di atasnya.
3.4.6 Keremawatan (Maintainability)
30
Sistem yang terdiri dari dua bagian utama, yaitu SMS
Gateway dan Aplikasi Web, dimonitor kinerjanya dengan
menggunakan alat bantu (tool) yang sudah tersedia pada Java, yaitu
dengan VisualGC.
Kepemindahan (Portability)
Semua modul pada sistem ini dapat di-deploy secara cross-platform,
karena bagian-bagian modul pada sistem ini dikembangkan dengan
bahasa pemograman yang berorientasi objek, yaitu Java. Sedangkan
aplikasi web dikembangkan dengan JSP/Servlet versi 2.1 (JSR 245,
sehingga dapat di-deploy pada berbagai macam application server.
Persyaratan SI-Q-CUP
SI-Q-CUP StakeHolder
Stakeholder merupakan orang-orang yang berpengaruh langsung
maupun tidak langsung pada persyaratan sistem.
31
Hierarki Viewpoint SI-Q-CUP
Berikut ini digambarkan hierarki viewpoint dari SI-Q-CUP:
Use-Case
Use case merupakan teknik berdasarkan skenario yang
mendeskripsikan model sistem berorientasi objek, yang
mengidentifikasikan aktor yang terlibat dalam interaksi dan nama dari
tipe interaksi tersebut.
32
Seperti yang dapat dilihat pada gambar berikut ini:
Sequence Diagram
Sequence diagram digunakan untuk menambahkan informasi pada
use-case, yang menunjukkan aktor yang terlibat pada interaksi, objek
di dalam sistem dengan apa objek-objek tersebut berinteraksi dan
operasi yang berhubungan dengan objek-objek tersebut.
33
Model Objek (Object Model)
Model objek digunakan untuk merepresentasikan data sistem dan
pemrosesannya. Model objek direpresentasikan dalam tiga buah
model, yaitu model inheritansi (inheritance model), model agregrasi
(aggregation model) dan model interaksi (interaction model).
34
Tampilan Hasil Pengujian
Hasil Perolehan Suara Calon Pilkada
Tampilan SMS
35
Penutup
Berdasarkan hasil dari pembuatan SI-Q-CUP ini dapat kami
simpulkan bahwa:
1. Aplikasi SI-Q-CUP ini mempercepat hasil perhitungan suara
sehingga mengurangi terjadinya kecurangan.
2. Hasil yang didapat dari SI-Q-CUP ini sudah akurat dan tepat
waktu sesuai pengiriman sms hasil suara dari tiap-tiap TPS.
Daftar Pustaka
http://www.dprd-
diy.go.id/index.cfm?x=berita&id_berita=14022008104528
36
Meskipun pada Posisi Sulit: KUPD lakukan Persiapan Pilkada
DIY tanggal 21 Februari 2008 jam 14.23
http://id.wikipedia.org/wiki/Pilkada#Penyelenggara_Pilkada
Pemilihan Umum Kepala Daerah dan Wakil Kepala Daerah
tanggal 21 Februari 2008 jam 14.43
37
PERANCANGAN SISTEM PENERIMAAN DAN PENGIRIMAN
SMS SECARA OTOMATIS PADA MODEL PENGECEKAN
PASSING GRADE SEKOLAH MENENGAH ATAS
Abstraksi
Short Message Service (SMS) merupakan sebuah layanan yang
banyak di aplikasikan pada sistem komunikasi tanpa kabel (wireless),
yang memungkinkan kita untuk melakukan pengiriman pesan dalam
bentuk alphanumeric antar terminal pelanggan dengan sistem
eksternal seperti e-mail, paging, voice mail, dan lain-lain.
Pendahuluan
38
Pembahasan
Perancangan Sistem
Perancangan sistem secara umum merupakan tahap persiapan dan
perancangan secara rinci terhadap Model Pengecekan Passing Grade
berbasis SMS yang akan dibangun. Adapun langkah-langkah yang
harus diperhatikan dalam perancangan sebuah sistem yaitu :
39
Flowchart Koneksi Ke HP
Menggambarkan tentang proses koneksi dari Ponsel ke dalam PC
Mulai
Pilih Sambungan
dan COM Port
False
Tampilkan
Sambungkan
kesalahan Koneksi
True
Selesai
Keterangan :
a. Mulai
b. Pilih sambungan dan COM Port artinya memilih sambungan
koneksi ke hp melalui kabel data apa (sudah tersedia
pilihannya). Pilih Com Port sambungan melalui serial com
berapa, sudah tersedia pada combo box tinggal memilihnya
saja.
c. Sambungkan, yaitu menyambungkan dari PC ke HP
40
d. jika kondisinya (False) sambungannya tidak sesuai dengan
kabel data yang dipakai dan serial comnya tidak sesuai maka
program akan menampilkan kode kesalahannya, lalu kembali
lagi ke pilih sambungan dan Comp port
e. Jika kondisinya benar (True) maka akan menjalankan proses
selanjutnya, yaitu mendapatkan data ponsel (Model HP,
IMEI,SMSC,Signal,Baterray)
41
Gambar 2: Flowchart Auto Replay
Keterangan:
A1: konektor jawaban informasi passing grade sementara yang akan
dilanjutkan pada proses mencari nilai passing grade sementara
B1: konektor jawaban informasi rating yang akan dilanjutkan pada
proses mencari nilai rating calon siswa
a. Mulai
b. Ketikan SMS, artinya ketik SMS sesuai dengan format lalu
kirim ke no tujuannya
42
c. Sistem menerima pesan SMS dari klien lalu merubah semua
karakter menjadi hurup besar semua .
d. Cek Format SMS, berfungsi untuk mengecek kondisi Format
penulisan SMS apakah sesuai dengan format yang telah
ditentukan oleh sistem apa tidak
e. Jika Kondisi tidak sesuai (False) maka sistem akan menjawab
dengan Format kesalahan yang telah ditentukan yaitu Jawab
kesalahan 1
f. Jawab Kesalahan 1, artinya klien akan dikirim SMS balasan
tentang format penulisan yang benar yaitu : ketik
1.INFO#PASSGRADE 2.INFO#RATING#ID kirim ke no
tujuan yang telah ditentukan
g. Lalu pesan tadi disimpan ke dalam Database
h. Jika kondisinya memenuhi (True), maka akan dihadapkan
pada dua kondisi yang benar, yaitu 1.INFO#PASSGRADE,
2.INFO#RATING#ID
i. Jika kondisi 1 benar(True), maka sistem akan menjalankan
proses pada halaman berikutnya yaitu mendapatkan nilai
passing grade sementara.
j. Jika format 1 salah (False), maka sistem akan mengecek pola
kesalahannya. Pola kesalahan pada kondisi 1 ada 2 macam
yaitu: INFO, INFO#. Jika salah satu kondisi kesalahan
tersebut terpenuhi maka sistem akan menjawab dengan format
kesalahan yang sudah ditentukan yaitu jawab kesalahan 1.
k. Jika format 2 benar(True), maka akan dilanjutkan pada
halaman berikutnya yaitu mendapatkan informasi tentang
rating.
l. Jika format 2 salah(False), maka sistem akan mengecek pola
kesalahannya. Pola kesalahan pada format 2 ada 4 macam
yaitu: INFO, INFO#, INFO#RATING#
,INFO#RATING#ID_Salah,. Jika salah satu kondisi kesalahan
tersebut terpenuhi maka sistem akan menjawab dengan format
kesalahan yang sudah ditentukan yaitu kirim Jawab kesalahan
1(untuk INFO, INFO#), Kirim Jawab kesalahan 2(untuk
43
INFO#RATING#), Kirim Jawab Kesalahan 3(untuk
INFO#RATING#ID_Salah)
m. Kemudian jawaban kesalahan tersebut disimpan kedalam
database.
44
A1 B 2
M a s u k a n S tr in g n a m a
M a s u k a n S trin g n a m a s e k o la h d a n n ila i
Q u o ta d a ri ta b e l d a ta
s e k o la h d a n n ila i s e k o la h
p a s s in g g ra d e ta h u n
la lu d a ri ta b e l d a ta
P e n g a m b ila n n a m a s e k o la h d a n q u o ta
s e k o la h p a d a ta b e l d a ta s e k o la h
K e lu a r a n b e r u p a N a m a
P e n g a m b ila n n a m a s e k o la h S e k o la h d a n q u o ta
d a n n ila i p a s s in g g ra d e ta h u n
la lu p a d a ta b e l d a ta s e k o la h
M a s u k a n N ila i P a s s in g
G ra d e
K e lu a ra n b e ru p a N a m a
S e k o la h d a n n ila i P e n g u r u t a n r e c o r d p a s s ig n G r a d e d a r i
p a s s in g g ra d e ta h u n ta b e l s is w a s e c a r a D e s c + I= I+ 1 u n tu k
la lu m e n e tu k a n r a t in g c a lo n s is w a
K e lu a r a n b e r u p a N ila i
M a s u k a n N ila i P a s s in g P a s s in g g r a d e y a n g s u d a h
G ra d e ,Q u o ta d a ri ta b e l d i u r u t k a n d a n d ik a s ih
p e r in g k a t
s is w a ,d a ta s e k o la h
M a s u k a n I D S is w a d a ri
t a b e l S is w a
P e n g u ru ta n re c o rd p a s s ig n G ra d e
d a ri ta b e l s is w a s e c a ra D e s c d a n
a m b il n ila i te ra k h ir b e rd a s a rk a n P e n g h it u n g a n ju m la h c a lo n s is w a y a n g
Q u o ta d a f ta r p a d a t a b e l S is w a
K e lu a r a n b e r u p a N ila i
ju m la h c a lo n S is w a
K e lu a ra n b e ru p a n ila i y a n g d a fta r
P a s s in g G ra d e s e m e n ta ra
M a s u k a n H a s il d a r i k e 3
k e lu a r a n d i a ta s
M a s u k a n H a s il d a ri k e 2
k e lu a ra n d i a ta s P e n y u s u n a n f o r m a t ja w a b a n R a t in g
a ta u p e r in g k a t
P e n y u s u n a n fo rm a t ja w a b a n H a s il a k h ir y a n g a k a n
P a s s in g G ra d e d a ri k e 2 d ik ir im a k a n le w a t s m s
k e lu a ra n p ro s e s d ia ta s
S im p a n K e D B
H a s il a k h ir y a n g
a k a n d ik irim a k a n S e le s a i
le w a t s m s
S im p a n K e D B
S e le s a i
45
Keterangan A1:
A1: Masukan berupa nilai true dari proses auto replay pada format
SMS (INFO#PASSGRADE)
Penjelasan :
Proses mendapatkan nilai passing grade sementara diawali dengan
proses pengambilan string nama sekolah dan nilai passing grade tahun
lalu pada tabel data sekolah yang nantinya akan menghasilkan
keluaran pertama berupa string nama sekolah dan nilai passing grade
tahun lalu dari sekolah yang bersangkutan.
Masukan nilai passing grade dan quota dari tabel data calon siswa dan
data sekolah secara otomatis. Kemudian Nilai passing grade dan quota
diproses yaitu nilai passing grade di urutkan secara descending
kemudian diambil nilai terakhir berdasarkan quota yang sudah
ditentukan pada tabel data sekolah maka akan diperoleh keluaran
berupa nilai passing grade sementara.
Proses selanjutnya, masukan keluaran berupa nama sekolah dan
passing grade sementara kemudian lakukan proses penyusunan format
jawaban, maka keluarannya adalah passing grade tahun lalu
nama_sekolah adalah nilai_passing_grade_tahun_lalu passing
grade sementara saat ini adalah get_passinggrade_sementara
kemudian format jawaban sms ini dikirimkan kepada calon siswa
yang bersangkutan yaitu yang mengirimkan sms selanjutnya format
jawaban tersebut disimpan kedalam data base.
Keterangan B1:
B2 : Masukan berupa nilai True dari proses Auto Replay pada format
SMS (INFO#RATING#ID)
Penjelasan :
Proses mendapatkan rating atau peringkat diawali dengan proses
pengambilan string nama sekolah dan nilai quota pada tabel data
sekolah yang nantinya akan menghasilkan keluaran pertama berupa
string nama sekolah dan nilai quota dari sekolah yang bersangkutan.
Masukan nilai passing grade dari tabel data calon siswa secara
otomatis. Kemudian Nilai passing grade diproses yaitu nilai passing
grade di urutkan secara descending kemudian ditambah I=I+1 untuk
46
menentukan rating atau peringkat maka akan diperoleh keluaran
berupa nilai passing grade yang sudah di urutkan dan dikasih
peringkat.
Langkah selanjutnya yaitu masukan ID_Siswa dari tabel siswa,
masukan ini digunakan untuk proses penghitungan jumlah calon siswa
yang daftar pada sekolah yang bersangkutan, keluarannya berupa
jumlah calon siswa yang daftar.
Langkah berikutnya yaitu memasukan ketiga keluaran diatas, ketiga
keluaran tersebut digunakan untuk proses penyusunan format jawaban
rating atau peringkat, keluarannya berupa Saat ini anda menduduki
rating ke nilai rating dari nilai_jumlah_calon_siswa calon siswa
yang daftar Quota nama_sekolah adalah GetQuota . kemudian
format jawaban sms ini dikirimkan kepada calon siswa yang
bersangkutan yaitu yang mengirimkan sms selanjutnya format
jawaban tersebut disimpan kedalam database
Berikut adalah listing program yang digunakan untuk membalas SMS
secara otomatis sesuai dengan format yang sudah ditentukan
Private Sub BalasSMS(ByVal noPhone$, ByVal Isi$)
'On Error GoTo out
Dim Rs As New ADODB.Recordset
Dim RsPassG As New ADODB.Recordset
Dim RsRating As New ADODB.Recordset
Dim pSms() As String
Dim sOUT$
Dim Cek As Boolean: Cek = False 'Kondisi untuk mengecek
keberadaan kata depan
Dim i As Integer
If InStr(1, Isi, "#") >= 1 Then 'Jika mengandung karakter unsur kres
'#'
47
pSms = Split(Isi, "#")
If UCase$(Left(pSms(0), 4)) = "INFO" Then 'Jika kata pertama
adalah "INFO"
If CStr(pSms(1)) = "" Then
sOUT = DefaultJawab
ElseIf UCase$(CStr(pSms(1))) <> "PASSGRADE" And _
UCase$(CStr(pSms(1))) <> "RATING" Then 'Jika kata kedua
bukan _"PASSGRADE" dan bukan "RATING"
sOUT = DefaultJawab
ElseIf UCase$(CStr(pSms(1))) = "PASSGRADE" Then 'Jika
kata kdeua adalah "PASSGRADE"
Set RsPassG = Conn.Execute("SELECT * FROM
DataSekolah")
If Not RsPassG.EOF Then
sOUT = "Passing Grade Tahun Lalu" &
RsPassG.Fields("Nama_Sekolah") & " adalah " &
RsPassG.Fields("PassGrade") & _
" Pass Grade sementara saat ini adalah " & getPassGradeSementara
End If
ElseIf UCase$(CStr(pSms(1))) = "RATING" Then 'Jika kata
kedua adalah _ "RATING"
If UBound(pSms) = 1 Then 'Jika hanya sampai kata
kedua(tidak ada kelanjutannya)
sOUT = "Pola yang Anda masukan salah!.. Ketik :
INFO#RATING#ID (c/h:INFO#RATING#SB004) kirim ke " &
NoTelepon & ""
ElseIf UBound(pSms) = 2 And Trim$(pSms(2)) = "" Then
'Kata ketiga kosong(hanya ada tanda # saja)
sOUT = "Pola yang Anda masukan salah!.. Ketik :
INFO#RATING#ID (c/h:INFO#RATING#SB004) kirim ke " &
NoTelepon & ""
ElseIf UBound(pSms) = 2 And Trim$(pSms(2)) <> "" Then
'Kata ketiga ada
Set RsPassG = Conn.Execute("SELECT * FROM
DataSekolah")
48
Set RsRating = Conn.Execute("SELECT * FROM Siswa
ORDER BY PASSGRADE DESC")
If Not RsRating.EOF Then 'Jika Id ditemukan dlm
database
For i = 0 To RsRating.RecordCount - 1 'Berulang
sebanyak jumlah siswa
If UCase$(Trim$(RsRating.Fields("ID_Siswa"))) =
UCase$(Trim$(pSms(2))) Then 'Jika
sOUT = "Saat ini Anda menduduki rating ke : " &
i + 1 & " dari " & RsRating.RecordCount & " Siswa yang daftar" & _
" Quota " & RsPassG.Fields("Nama_Sekolah") & " adalah " &
getQuota
Cek = True
Exit For
End If
RsRating.MoveNext
DoEvents
Next i
If Cek = False Then
If Len(UCase$(Trim$(pSms(2)))) = 0 Then
sOUT = "Ketikan ID untuk mengetahui rating
Anda!" + vbCrLf + "Coba lakukan kirim ulang dengan ID yang
benar!"
Else
sOUT = "ID (" & UCase$(Trim$(pSms(2))) & ")
yang Anda kirimkan tidak terdaftar! Coba lakukan kirim ulang dengan
ID yang benar!"
End If
End If
End If
End If
End If
Else
sOUT = DefaultJawab
End If
49
Else
' Exit Sub 'mengaktipkan pola sembarang agar tidak dijawab
sOUT = DefaultJawab
End If
'MsgBox sOUT 'buat ngecek program
Call Mobile1.SendSMSMessage(noPhone, sOUT, 100, True, False,
"")
Set Rs = Conn.Execute("select * from Outbox where Tgl='" &
Format(Date, "dd/mm/yyyy") & "' AND Jam='" & Format(Time,
"hh:mm:ss") & "'")
If Rs.EOF Then
Conn.Execute ("Insert into Outbox (cek,No_HP,Tgl,Jam,Isi)
values('0','" & noPhone & "','" & Format(Date, "dd/mm/yyyy") & "','"
& Format(Time, "hh:mm:ss") & "','" & sOUT & "')")
Else
Conn.Execute ("Update Outbox set Isi='" & Isi & "',No_HP='"
& noPhone & "' where Tgl='" & Format(Date, "dd/mm/yyyy") & "'
AND Jam='" & Format(Time, "hh:mm:ss") & "'")
End If
Call GetOutbox
Set RsRating = Nothing
Set RsPassG = Nothing
Exit Sub
OK:
Exit Sub
out:
Set RsRating = Nothing
Set RsPassG = Nothing
MsgBox Err.Description
DoEvents
End Sub
50
'----<FUNGSI UNTUK MENDAPATKAN PASSGRADE
SEMENTARA>----
Public Function getPassGradeSementara()
Dim Rs As New ADODB.Recordset
Set Rs = Conn.Execute("SELECT Id_Siswa,PassGrade FROM
Siswa WHERE Id_Siswa='" & getIDQuota & "'")
If Not Rs.EOF Then getPassGradeSementara =
Rs.Fields("PassGrade")
End Function
Cek = False
51
End If
ID_Siswa = Rs.Fields("Id_Siswa")
Rs.MoveNext
Loop
If Cek = False Then
getIDQuota = ID_Siswa
End If
End Function
'----<FUNGSI UNTUK MENDAPATKAN QUOTA>----
Public Function getQuota()
Dim Rs As New ADODB.Recordset
Set Rs = Conn.Execute("SELECT distinct Quota FROM
DataSekolah ")
If Not Rs.EOF Then getQuota = Rs.Fields("Quota")
End Function
Penutup
-
Daftar Pustaka
52
Rosidi, Romzi Imron. 2004. Membuat Sendiri SMS Gateway Berbasis
Protokol SMPP. Yogyakarta: ANDI OFFSET
53