Anda di halaman 1dari 57

Membangun Aplikasi Sistem SMS QuickCount dengan PHP

Software yang diperlukan

- Xampp
- Gammu
- Macromedia Dreamweaver
- PHP
- Modem + Kartu
- Hp

Pengecekan Port Device


Konfigurasi Gammu Dengan Device

Pengecekan Konfigurasi Gammu dengan device


Konfigurasi Gammu Services
Menjalankan Service Gammu
Membuat Database
Membuat Tabel

Tabel sms_Calon
Berfungsi untuk menyimpan data calon peserta pilkada.

Tabel sms_user

Berfungsi untuk menyimpan data administrator

Tabel sms_Phonebook
Berfungsi untuk menyimpan data nomor telepon

Tabel sms_group

Berfungsi untuk menyimpan data pengelompokkan nomor telepon dari daftar phonebook

Tabel sms_relawan
Berfungsi untuk menyimpan data nomor telepon dari para relawan yang ditugaskan di TPS

Tabel sms_tps

Berfungsi untuk menyimpan data hasil statistika pemilihan tps dan penyimpanan data suara yang
nantinya akan dikirim relawan
Pembuatan Web Rekapitulasi Hasil Pemilu
Source Code index.php

<html>
<head>
<title>..::: Login Administrator :::..</title>
<link rel="stylesheet" type="text/css" href="style_login.css" />

<link rel="shortcut icon" href="images/images_admin/favicon.ico" />

<script type="text/javascript">
function validasi(form){
if (form.username.value == ""){
alert("Anda belum mengisikan Username");
form.username.focus();
return (false);
}

if (form.password.value == ""){
alert("Anda belum mengisikan Password");
form.password.focus();
return (false);
}
return (true);
}
</script>

</head>

<body OnLoad="document.login.username.focus();">
<div id="main">

<!-- Header -->


<div id="header"><img src="images/images_login/img_login_header.png" alt="sms quick count"
/></div>

<!-- Middle -->


<div id="middle">
<form id="form-login" name="login" method="post" action="cek_login.php" onSubmit="return
validasi(this)">

<img src="images/images_login/img_login_user.png" align="absmiddle" class="img_user" />


<input type="text" name="username" size="29" id="input" />
<br />

<img src="images/images_login/img_login_pass.png" align="absmiddle" class="img_pass" />


<input type="password" name="password" size="29" id="input" />
<br />

<input name="Submit" type="image" value="Submit" src="images/images_login/button_login.png"


id="submit" align="absmiddle" />
</form>
</div>

<!-- don't Change ;) -->


<div class="clear"></div>

<div id="vertical_effect">&nbsp;</div>

</div>
</body>
</html>

Keterangan:

- File index.php adalah halaman awal ketika aplikasi dijalanakan


- File ini memiliki dua buah inputan yaitu username dan password dimana kedua variable
tersebut akan dikirimkan ke file “cek_login.php” untuk dicek apakah username dan
password sesuai dengan apa yang ada di database.
- File ini menggunakan function javascript bernama “validasi(form)” berguna untuk
memvalidasi inputan username dan password agar tidak kosong.
- Dan untuk mempercantik halaman login, maka di lengkapi dengan file css yang bernama
”style_login.css” dan beberapa gambar yang berada pada folder ”images/images_login”.

Source cek_login.php

<?php
include "config/koneksi.php";
function anti_injection($data){
$filter = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
return $filter;
}

$username = anti_injection($_POST['username']);
$pass = anti_injection(md5($_POST['password']));

// pastikan username dan password adalah berupa huruf atau angka.


if (!ctype_alnum($username) OR !ctype_alnum($pass)){
echo "Sekarang loginnya tidak bisa di injeksi lho.";
}
else{
$login=mysql_query("SELECT * FROM sms_user WHERE username='$username' AND
password='$pass'");
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);

// Apabila username dan password ditemukan


if ($ketemu > 0){
session_start();
$_SESSION[login] = 1;
$_SESSION[username] = $r[username];
$_SESSION[passuser] = $r[password];

header('location:media.php?module=home');
}
else{
// Login gagal
?>
<script language="javascript">
alert("Maaf, Username atau Password Anda salah!!");
document.location="index.php";
</script>
<?php
}
}
?>

Keterangan:
- File ini berfungsi untuk mengecek autenfikasi user saat login, apakah user ada pada tabel
admin atau tidak. Jika ada, maka akan dibuatkan sesinya.
- Untuk keamanan username dan password dibuatkan sebuah fungsi anti injeksi.
- Dan jika berhasil login, maka akan diarahkan ke halaman media.php dengan modul “home”
- Jika gagal login, maka akan ada pesan “maaf, username dan password salah?”.

Media.php

<?php
session_start();
error_reporting(0);

include_once 'config/cek_sesi.php';

if (empty($_SESSION['username'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=index.php><b>LOGIN</b></a></center>";
}
else{
?>
<html>
<head>
<title>Panel Kelola Aplikasi Quick Count Pemilu</title>
<script>
function Count(){
var karakter,maksimum;
maksimum = 160
karakter = maksimum-(document.form1.pesan.value.length);
if (karakter < 0) {
alert("Jumlah Maksimum Karakter: " + maksimum + "");
document.form1.pesan.value =
document.form1.pesan.value.substring(0,maksimum);
karakter = maksimum-(document. form1.pesan.value.length);
document.form1.counter.value = karakter;
}
else {
document.form1.counter.value = maksimum-(document.form1.pesan.value.length);
}
}
</script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">

<div id="menu">
<div class="left">
<?php
include "menu.php"; ?>
</div>
<div class="right">
<ul class="topmenu">
<li><a href=logout.php>Logout</a></li>
</ul>
</div>
</div>
</div>
<div id="wrap">
<div id="content">
<?php include "content.php"; ?>
</div>

<div id="footer">
</div>
</div>
</body>
</html>
<?php
}
?>

Keterangan:
- File ini diawali oleh pengecekan sesi, dimana jika user/admin berhasil login maka akan di
ijinkan membuka halaman ini, tapi jika tidak maka akan mendapatkan pesan bahwa tidak di
izinkan mengakses modul.
- Juga ada sebuah fungsi javascript bernama count(), dimana fungsi ini akan kita gunakan
pada modul/fungsi yang kita buat nanti dalam mengirim sms, yang akan dibatasi sebanyak
160 karakter saja.

Content.php

<?php
include "config/koneksi.php";
include "config/library.php";
include "config/fungsi_indotgl.php";
include "config/fungsi_combobox.php";
include "class_paging.php";
include_once 'config/cek_sesi.php';

// Bagian Home
if ($_GET['module']=='home'){
$jam=date("H:i:s");
$tgl=tgl_indo(date("Y m d"));
echo "<br /><p align=center>Hai <b>$_SESSION[namauser]</b>, selamat datang di halaman
Administrator.
Silahkan klik menu pilihan yang berada di bagian header dan cpanel untuk mengelola content
website pemilu. <br /> <b>$hari_ini, $tgl, $jam </b>WIB</p><br />";

echo "<table class='list'><thead>


<td class='center' colspan=7><center>Control Panel</center></td></thead>
<tr>
<td width=120 align=center><a href=media.php?
module=service><img src=images/modem.png border=none><br /><b>Service
Gammu</b></a></td>
<td width=120 align=center><a href=media.php?module=inbox><img
src=images/inbox.png border=none><br /><b>Inbox</b></a></td>
<td width=120 align=center><a href=media.php?module=outbox><img
src=images/outbox.png border=none><br /><b>Outbox</b></a></td>
<td width=120 align=center><a href=media.php?module=sentitem><img
src=images/sentitems.png border=none><br /><b>Sent Item</b></a></td>
<td width=120 align=center><a href=media.php?module=group><img
src=images/group.jpg border=none><br /><b>Group Phonebook</b></a></td>
<td width=120 align=center><a href=media.php?module=phonebook><img
src=images/phonebook.png border=none><br /><b>Phonebook</b></a></td>
<td width=120 align=center><a href=media.php?module=sms><img src=images/smsicon.png
border=none><br /><b>Kirim SMS</b></a></td>
</tr>
<tr>
<td width=120 align=center><a href=media.php?module=smsgroup><img
src=images/smsgroup.png border=none><br /><b>Kirim SMS Group</b></a></td>
<td width=120 align=center><a href=media.php?module=smsrelawan><img
src=images/kotaksuara.png border=none><br /><b>SMS Relawan</b></a></td>

<td width=120 align=center><a href=media.php?module=calon><img


src=images/user.jpg border=none><br /><b>Data Calon</b></a></td>
<td width=120 align=center><a href=media.php?module=relawan><img
src=images/saksi.png border=none><br /><b>Data Relawan</b></a></td>
<td width=120 align=center><a href=media.php?module=tps><img
src=images/tps.png border=none><br /><b>Data TPS</b></a></td>
<td width=120 align=center><a href=modul/mod_auto/autosuara.php
target=_blank><img src=images/autoreply.jpg border=none><br /><b>Service
Autoreply</b></a></td>
<td width=120 align=center><a href=modul/mod_hasil/hasilpemilu.php
target=_blank><img src=images/poling.png border=none><br /><b>Hasil Pemilu</b></a></td>
</tr>
</table>";
}

// Bagian Group
elseif ($_GET['module']=='group'){
include "modul/mod_group/group.php";
}

// Bagian Phonebook
elseif ($_GET['module']=='phonebook'){
include "modul/mod_phonebook/phonebook.php";
}

// Bagian Kirim SMS


elseif ($_GET['module']=='sms'){
include "modul/mod_sms/sms.php";
}

// Bagian Kirim SMS Group


elseif ($_GET['module']=='smsgroup'){
include "modul/mod_smsgroup/smsgroup.php";
}

// Bagian inbox
elseif ($_GET['module']=='inbox'){
include "modul/mod_inbox/inbox.php";
}

// Bagian outbox
elseif ($_GET['module']=='outbox'){
include "modul/mod_outbox/outbox.php";
}

// Bagian sentitem
elseif ($_GET['module']=='sentitem'){
include "modul/mod_sentitem/sentitem.php";
}

// Bagian Service gammu


elseif ($_GET['module']=='service'){
include "modul/mod_service/service.php";
}

// Bagian Admin
elseif ($_GET['module']=='admin'){
include "modul/mod_admin/admin.php";
}

// Bagian Relawan
elseif ($_GET['module']=='relawan'){
include "modul/mod_relawan/relawan.php";
}

// Bagian Calon
elseif ($_GET['module']=='calon'){
include "modul/mod_calon/calon.php";
}

// Bagian SMS Relawan


elseif ($_GET['module']=='smsrelawan'){
include "modul/mod_smsrelawan/smsrelawan.php";
}

// Bagian data tps


elseif ($_GET['module']=='tps'){
include "modul/mod_tps/tps.php";
}

// Bagian hasil pemilu


elseif ($_GET['module']=='hasil'){
include "modul/mod_hasil/hasil.php";
}

// Bagian Service autoreply


elseif ($_GET['module']=='autoreply'){
include "modul/mod_auto/autosuara.php";
}

// Bagian Hasil Pemilu


elseif ($_GET['module']=='hasilpemilu'){
include "modul/mod_hasil/hasilpemilu.php";
}

// Apabila modul tidak ditemukan


else{
echo "<p><b>MODUL BELUM ADA ATAU BELUM LENGKAP</b></p>";
}
?>

Keterangan:
- File ini membutuhkan file-file penunjang lain, seperti koneksi.php, library.php,
fungsi_indotgl.php, fungsi_combobox.php, class_paging.php dan cek_sesi.php.

Menu.php
<?php
include "config/koneksi.php";
include_once 'config/cek_sesi.php';

echo "<ul>
<li><a href=?module=home>Home</a></li>
<li><a href=?module=group>Group</a></li>
<li><a href=?module=phonebook>Phonebook</a></li>
<li><a href=?module=calon>Data Calon</a></li>
<li><a href=?module=tps>Data TPS</a></li>
<li><a href=?module=relawan>Data Relawan</a></li>
<li><a href=modul/mod_auto/autosuara.php target=_blank>Service
AutoReply</a></li>
<li><a href=?module=admin>Ubah Password</a></li>

</ul>";

?>

Keterangan :
- Pada file ini hanya akan menampilkan menu-menu pilihan yang berada pada bagian atas
secara horizontal
- File ini membutuhkan file penunjang seperti koneksi.php dan cek_sesi.php
Modul admin

admin.php

<?php
$aksi="modul/mod_admin/aksi_admin.php";
$sql = mysql_query("SELECT * FROM sms_user LIMIT 1");
$r = mysql_fetch_array($sql);

echo "<h2>Ganti Username & Password Administrator</h2>


<form method=POST action=$aksi?module=admin&act=update>
<input type=hidden name=id value=$r[id]>
<table class='list'><tbody>
<tr><td class='left'>Username</td><td> : <input type=text name='username'
value='$r[username]' size=40></td></tr>
<tr><td class='left'>Password</td><td> : <input type=text name='password'
size=40>*)</td></tr>
<tr><td colspan=2>*) Apabila password tidak diubah, dikosongkan saja.<br /><input
type=submit value=Update>
<input type=button value=Batal onclick=self.history.back()></td></tr>
<tbody></form></table>";
?>

Keterangan :
- File ini akan menampilkan dua buah input type berupa username dan password

Aksi_admin.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";

$module=$_GET[module];
$act=$_GET[act];

// Update admin
if ($module=='admin' AND $act=='update'){
if (empty($_POST[password])) {
mysql_query("UPDATE sms_user SET username = '$_POST[username]'
WHERE id = '$_POST[id]'");
} else{
$pass=md5($_POST[password]);
mysql_query("UPDATE sms_user SET username = '$_POST[username]',
password = '$pass'
WHERE id = '$_POST[id]'");
}
?>
<script language="javascript">
alert("Data Admininstrator berhasil diubah!!");
document.location="../../media.php?module=home";
</script><?php
}
}
?>

Keterangan :
- File ini berfungsi untuk memproses perubahan username dan password.

Modul Service

Service.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
$aksi="modul/mod_service/aksi_service.php";
switch($_GET[act]){
// Tampil service
default:
// menjalankan command untuk mengenerate file service.log
passthru("net start > service.log");

// membuka file service.log


$handle = fopen("service.log", "r");

// status awal = 0 (dianggap servicenya tidak jalan)


$status = 0;

// proses pembacaan isi file


while (!feof($handle))
{
// baca baris demi baris isi file
$baristeks = fgets($handle);
if (substr_count($baristeks, 'Gammu SMSD Service (GammuSMSD)') > 0)
{
// jika ditemukan baris yang berisi substring 'Gammu SMSD Service (GammuSMSD)'
// statusnya berubah menjadi 1
$status = 1;
}
}
// menutup file
fclose($handle);

// jika status terakhir = 1, maka gammu service running


if ($status == 1) {
echo "<h2>Service Gammu</h2>";
echo "<form method='post' action='?module=service&act=status'>";
echo "<input type='submit' name='stop' value='Hentikan Service Gammu'>";
echo "</form>";
}
// jika status terakhir = 0, maka service gammu berhenti
else if ($status == 0) {
echo "<h2>Service Gammu</h2>";
echo "<form method='post' action='?module=service&act=status'>";
echo "<input type='submit' name='start' value='Jalankan Service Gammu'>";
echo "</form>";

break;

case "status":
echo "<h2>Service Gammu</h2>";
if ($_POST['start'])
{
passthru("c:\gammu\bin\gammu-smsd -c smsdrc -s");
}

else if ($_POST['stop'])
{
passthru("c:\gammu\bin\gammu-smsd -k");
}
break;
}
}

?>

Keterangan :
- Untuk menjalankan atau menghentikan service gammu sebenarnya harus menggunkan
command prompt atasu console, ini kita jalankan via script PHP menggunkan function
passthru() yang dapat menjalankan command yang seharusnya diberikan melalui console.
- Yang paling penting adalah lokasi folder gammu saat memanggil file smsdrc lewat fungsi
passthru() harus benar yaitu folder gammu terletak pada folder C

Modul Inbox
Inbox.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_inbox/aksi_inbox.php";
switch($_GET[act]){
// Tampil inbox
default:
$p = new Paging;
$batas = 15;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM inbox ORDER BY ID DESC LIMIT $posisi,$batas");

echo "<h2>Inbox</h2>";
echo "<table class='list'><thead>
<tr>
<td class='left'>ISI SMS</td>
<td class='left'>Tanggal</td>
<td class='left'>Pengirim</td>
<td class='center'>aksi</td>
</tr></thead> ";

$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){

$phonebook = mysql_query("SELECT nama FROM sms_phonebook WHERE noTelp =


'$r[SenderNumber]'");
$d=mysql_fetch_array($phonebook);
if ($d['nama'] == "") $sendername = $r['SenderNumber'];
else $sendername = $d['nama'];

echo "<td class='left'>$r[TextDecoded]</td>


<td class='left'>$r[ReceivingDateTime]</td>
<td class='left'>$sendername</td>
<td class='center' width='90'>
<a href=$aksi?module=inbox&act=hapus&id=$r[ID]><img
src='images/hapus.png' border='0' title='hapus' /></a>
<a href=?module=inbox&act=replysms&id=$r[ID]><img
src='images/reply.png' border='0' title='balas sms' /></a>
</td></tr>";
$no++;
}
echo "</table>";
$jmldata = mysql_num_rows(mysql_query("SELECT * FROM inbox"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";


break;

case "replysms":
$reply=mysql_query("SELECT * FROM inbox WHERE id='$_GET[id]'");
$r=mysql_fetch_array($reply);
echo "<h2>Reply SMS</h2>
<form name=form1 method=POST action=$aksi?module=inbox&act=replysms>
<table class='list'>
<input type='hidden' name='id' value='$r[id]'>
<input type='hidden' name='notelp' value='$r[SenderNumber]'>";
$phonebook = mysql_query("SELECT nama FROM sms_phonebook WHERE noTelp
= '$r[SenderNumber]'");
$d=mysql_fetch_array($phonebook);
if ($d['nama'] == "") $sendername = $r['SenderNumber'];
else $sendername = $d['nama'];
echo"<tr><td class='left'><b>Nomor Tujuan :</b> $sendername </td></tr>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

}
}
?>

Keterangan :
- File ini diawali dengan pengecekan sesi, seseorang tidak bisa mengakses file ini secara
langsung tanpa loging
- File ini dibagi menjadi 2 bagian, yaitu case default dan case replysms.

Aksi_inbox.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";
$module=$_GET['module'];
$act=$_GET['act'];

// Hapus SMS
if ($module=='inbox' AND $act=='hapus'){
mysql_query("DELETE FROM inbox WHERE ID = '$_GET[id]'");
header('location:../../media.php?module='.$module);
}
// Reply SMS
elseif ($module=='inbox' AND $act=='replysms'){
$noTujuan =$_POST['notelp'];
$pesan = $_POST['pesan'];
mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$noTujuan', '$pesan', 'Gammu')");
?>
<script language="javascript">
alert("SMS dikirim!!");
document.location="../../media.php?module=inbox";
</script><?php
}
}
?>

Modul Outbox

Outbox.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_outbox/aksi_outbox.php";
$p = new Paging;
$batas = 15;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM outbox ORDER BY ID DESC LIMIT $posisi,$batas");

echo "<h2>Outbox</h2>";
echo "<table class='list'><thead>
<tr>
<td class='left'>ISI SMS</td>
<td class='left'>Tanggal Kirim</td>
<td class='left'>Tujuan</td>
<td class='center'>aksi</td>
</tr></thead> ";

$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){

$phonebook = mysql_query("SELECT nama FROM sms_phonebook WHERE noTelp =


'$r[DestinationNumber]'");
$d=mysql_fetch_array($phonebook);
if ($d['nama'] == "") $sendingname = $r['DestinationNumber'];
else $sendingname = $d['nama'];

echo "<td class='left'>$r[TextDecoded]</td>


<td class='left'>$r[SendingDateTime]</td>
<td class='left'>$sendingname</td>
<td class='center' width='90'>
<a href=$aksi?module=outbox&act=hapus&id=$r[ID]><img
src='images/hapus.png' border='0' title='hapus' /></a>
</td></tr>";
$no++;
}
echo "</table>";

$jmldata = mysql_num_rows(mysql_query("SELECT * FROM outbox"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";

}
?>
Aksi_outbox.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";

$module=$_GET['module'];
$act=$_GET['act'];

// Hapus SMS
if ($module=='outbox' AND $act=='hapus'){
mysql_query("DELETE FROM outbox WHERE ID = '$_GET[id]'");
header('location:../../media.php?module='.$module);
}

}
?>

Modul sentitem
Berfungsi sebagai tampilan sms yang sudah terkirim atau laporan sms terkirim.

Sentitem.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_sentitem/aksi_sentitem.php";
$p = new Paging;
$batas = 15;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM sentitems ORDER BY ID DESC LIMIT $posisi,$batas");

echo "<h2>Sentitem</h2>";
echo "<table class='list'><thead>
<tr>
<td class='left'>ISI SMS</td>
<td class='left'>Waktu Terkirim</td>
<td class='left'>Tujuan</td>
<td class='left'>Status Kirim</td>
<td class='center'>aksi</td>
</tr></thead> ";

$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){

$phonebook = mysql_query("SELECT nama FROM sms_phonebook WHERE noTelp =


'$r[DestinationNumber]'");
$d=mysql_fetch_array($phonebook);
if ($d['nama'] == "") $sendingname = $r['DetinationNumber'];
else $sendingname = $d['nama'];

echo "<td class='left'>$r[TextDecoded]</td>


<td class='left'>$r[SendingDateTime]</td>
<td class='left'>$sendingname</td>
<td class='left'>$r[Status]</td>
<td class='center' width='90'>
<a href=$aksi?module=sentitem&act=hapus&id=$r[ID]><img
src='images/hapus.png' border='0' title='hapus' /></a>
</td></tr>";
$no++;
}
echo "</table>";

$jmldata = mysql_num_rows(mysql_query("SELECT * FROM sentitems"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";

}
?>

Aksi_sentitem.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";

$module=$_GET['module'];
$act=$_GET['act'];

// Hapus SMS
if ($module=='sentitem' AND $act=='hapus'){
mysql_query("DELETE FROM sentitems WHERE ID = '$_GET[id]'");
header('location:../../media.php?module='.$module);
}

}
?>

Modul Group
Berfungsi untuk menyimpan data pengelompokan nomor telepon dari daftar phonebook.

Group.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_group/aksi_group.php";
switch($_GET[act]){
// Tampil group
default:

$p = new Paging;
$batas = 15;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM sms_group ORDER BY idgroup ASC LIMIT $posisi,
$batas");
echo "<h2>Group Phonebook</h2>
<input type=button value='Tambah group' onclick=\"window.location.href='?
module=group&act=tambahgroup';\">";

echo "<table class='list'><thead>


<tr>
<td class='left'>ID Group</td>
<td class='left'>Nama Group</td>
<td class='center'>aksi</td>
</tr></thead> ";
$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){
echo "<td class='left' width='25'>$r[idgroup]</td>
<td class='left'>$r[group]</td>
<td class='center' width='70'><a href=?
module=group&act=editgroup&idgroup=$r[idgroup]><img src='images/edit.png' border='0'
title='edit' /></a>
<a href=$aksi?module=group&act=hapus&idgroup=$r[idgroup]><img
src='images/hapus.png' border='0' title='hapus' /></a>
</td></tr>";
$no++;
}
echo "</table>";

$jmldata = mysql_num_rows(mysql_query("SELECT * FROM sms_group"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";


break;

case "tambahgroup":
echo "<h2>Tambah Group</h2>
<form method=POST action='$aksi?module=group&act=input'>
<table class='list'>
<tr><td>Nama Group</td> <td> : <input type=text name='namagroup'></td></tr>
<tr><td colspan=2><input type=submit value=Simpan>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

case "editgroup":
$edit=mysql_query("SELECT * FROM sms_group WHERE idgroup='$_GET[idgroup]'");
$r=mysql_fetch_array($edit);

echo "<h2>Edit Group</h2>


<form method=POST action=$aksi?module=group&act=update>
<table class='list'>
<tr><td class='left'>ID Group</td> <td> : <input type=text name='idgroup'
value='$r[idgroup]' disabled> </td></tr>
<tr><td class='left'>Nama Group</td> <td> : <input type=text name='namagroup'
value='$r[group]'> </td></tr>
<input type='hidden' name='id' value='$r[idgroup]'>";
echo "<tr><td class='left' colspan=2><input type=submit value=Update>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;
}
}
?>

Aksi_group.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";

$module=$_GET['module'];
$act=$_GET['act'];

// Input Group
if ($module=='group' AND $act=='input'){
mysql_query("INSERT INTO sms_group VALUES(NULL,'$_POST[namagroup]')");
header('location:../../media.php?module='.$module);
}

// Update Group
elseif ($module=='group' AND $act=='update'){
$id = $_POST['id'];
$idgroup = $_POST['idgroup'];
$group = $_POST['namagroup'];
mysql_query("UPDATE sms_group SET sms_group.group = '$group' WHERE idgroup = '$id'");
header('location:../../media.php?module='.$module);
}

// Hapus Group
elseif ($module=='group' AND $act=='hapus'){
mysql_query("DELETE FROM sms_group WHERE idgroup='$_GET[idgroup]'");
header('location:../../media.php?module='.$module);
}
}
?>

Modul Phonebook

Berfungsi untuk menyimpan data nomor telepon sebagai salah satu fungsi dari aplikasi sms.

Phonebook.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_phonebook/aksi_phonebook.php";
switch($_GET[act]){
// Tampil phonebook
default:
echo "<h2>Phonebook</h2>";
echo" <div class='box'><div class='left'><input type=button value='Tambah Phonebook'
onclick=\"window.location.href='?module=phonebook&act=tambahphonebook';\"></div>
<div class='right'><form method=get action='$_SERVER[PHP_SELF]'>
<input type=hidden name=module value=phonebook>
Masukkan Nama Phonebook : <input type=text name='nama'> <input type=submit value=Cari>
</form></div></div>";
if (empty($_GET['kata'])){
echo "<table class='list'><thead>
<tr>
<td class='left'>No</td>
<td class='left'>Nama</td>
<td class='left'>Nomor HP</td>
<td class='center'>aksi</td>
</tr></thead> ";

$p = new Paging;
$batas = 15;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM sms_phonebook WHERE nama LIKE '%$_GET[nama]%'
ORDER BY NAMA ASC LIMIT $posisi,$batas");

$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){
echo "<td class='left' width='25'>$no</td>
<td class='left'>$r[nama]</td>
<td class='left'>$r[noTelp]</td>
<td class='center' width='90'><a href=?
module=phonebook&act=editphonebook&id=$r[noTelp]><img src='images/edit.png' border='0'
title='edit' /></a>
<a href=$aksi?module=phonebook&act=hapus&id=$r[noTelp]><img
src='images/hapus.png' border='0' title='hapus' /></a>
<a href=?module=phonebook&act=kirimsms&id=$r[noTelp]><img
src='images/sms.png' border='0' title='kirim sms' /></a>
</td></tr>";
$no++;
}
echo "</table>";

$jmldata = mysql_num_rows(mysql_query("SELECT * FROM sms_phonebook"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";


break;
}
case "tambahphonebook":
echo "<h2>Tambah Phonebook</h2>
<form method=POST action='$aksi?module=phonebook&act=input'>
<table class='list'>
<tr><td>Nama </td> <td> : <input type=text name='nama'></td></tr>
<tr><td>Alamat </td> <td> : <input type=text name='alamat'></td></tr>
<tr><td>Nomor Handphone </td> <td> : <input type=text
name='notelp'></td></tr>
<tr><td>Group</td><td>:";
$query = "SELECT * FROM sms_group";
$hasil = mysql_query($query);
while ($r = mysql_fetch_array($hasil))
{
echo "<input type=checkbox name='group[]' value='".$r['idgroup']."'> ".
$r['group']."&nbsp;";
}
echo"</td></tr>
<tr><td>Tanggal lahir </td> <td> : <input type=text name='tgllhr'><br>Format: DD-MM-YYYYY,
Contoh: 01-12-1988</td></tr>
<tr><td colspan=2><input type=submit value=Simpan>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

case "editphonebook":
$id = str_replace(" ","+", $_GET['id']);
$edit=mysql_query("SELECT * FROM sms_phonebook WHERE noTelp='$id'");
$r=mysql_fetch_array($edit);

echo "<h2>Edit Phonebook</h2>


<form method=POST action=$aksi?module=phonebook&act=update>
<table class='list'>
<tr><td class='left'>Nama</td> <td> : <input type=text name='nama' value='$r[nama]'>
</td></tr>
<tr><td class='left'>Alamat</td> <td> : <input type=text name='alamat' value='$r[alamat]'>
</td></tr>
<tr><td class='left'>Nomor Telepon</td> <td> : <input type=text name='notelp'
value='$r[noTelp]'> </td></tr>
<tr><td class='left'>Group</td><td>:";
$splittgl = explode('-', $r['datebirth']);
if (count($splittgl) == 3) $tgllhr = $splittgl[2]."-".$splittgl[1]."-".$splittgl[0];
else $tgllhr = "00-00-0000";

$group = explode('|', $r['idgroup']);

$query2 = "SELECT * FROM sms_group";


$hasil2 = mysql_query($query2);
while ($r2 = mysql_fetch_array($hasil2))
{
if (in_array($r2['idgroup'], $group)) echo "<input type='checkbox' name='group[]'
value='".$r2['idgroup']."' checked> ".$r2['group']."&nbsp;";
else echo "<input type='checkbox' name='group[]' value='".$r2['idgroup']."'> ".
$r2['group']."&nbsp;";
}
echo"</td></tr>
<tr><td>Tanggal lahir </td> <td> : <input type=text name='tgllhr'
value='$tgllhr'><br>Format: DD-MM-YYYYY, Contoh: 01-12-1988</td></tr>
<input type='hidden' name='notelplama' value='$r[noTelp]'>
<input type='hidden' name='grouplama' value='$r[idgroup]'>
<tr><td class='left' colspan=2><input type=submit value=Update>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

case "kirimsms":
$hptujuan = str_replace(" ", "+", $_GET['id']);
$query = "SELECT nama FROM sms_phonebook WHERE noTelp = '$hptujuan'";
$hasil = mysql_query($query);
$r = mysql_fetch_array($hasil);
$nama = $r['nama'];
echo "<h2>Kirim SMS</h2>
<form name=form1 method=POST action=$aksi?module=phonebook&act=kirimsms>
<table class='list'>
<input type='hidden' name='phone' value='$hptujuan'>
<tr><td class='left'><b>Nomor Tujuan :</b> ".$nama." (".$hptujuan.")</td></tr>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;
}
}
?>

Modul SMS

Sms.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_sms/aksi_sms.php";
echo "<h2>Kirim SMS Semua Relawan</h2>";
echo"<div><form name=form1 method=POST action=$aksi?
module=sms&act=kirimsms>
<table class='list'>
<tr><td class='left'><b>Pilih Nomor Tujuan :<br>
<select name='tujuan[]' multiple='multiple' size='6' style='height: 100%; width=
100%'>";

$query = "SELECT noTelp,nama FROM sms_phonebook order by nama asc";


$hasil = mysql_query($query);
while ($r = mysql_fetch_array($hasil)) {
echo "<option value='$r[noTelp]'>$r[nama]</option>";
}
echo"</select>
</br> *)Gunakan tombol Ctrl+Click Untuk mengirim lebih dari 1 tujuan.</td></tr>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form></div>";

}
?>

Aksi_sms.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";
$module=$_GET['module'];
$act=$_GET['act'];

// Kirim SMS
if($module=='sms' AND $act=='kirimsms'){

$tujuan=$_POST['tujuan'];
$pesan = $_POST['pesan'];

if($tujuan){
foreach ($tujuan as $t){
mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$t', '$pesan', 'Gammu')");
}?>
<script language="javascript">
alert("SMS dikirim!!");
document.location="../../media.php?module=home";
</script><?php
}
}
}
?>

Modul sms group

Smsgroup.php
<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_smsgroup/aksi_smsgroup.php";
echo "<h2>Kirim SMS Group</h2>";
echo"<div><form name=form1 method=POST action=$aksi?
module=smsgroup&act=kirimsmsgroup>
<table class='list'>
<tr><td class='left'><b>Pilih Group Tujuan :<br>
<select name='group'>
<option value=0 selected>- Pilih Group -</option>";
$query = "SELECT * FROM sms_group order by idgroup asc";
$hasil = mysql_query($query);
while ($r = mysql_fetch_array($hasil)) {
echo "<option value='$r[idgroup]'>$r[group]</option>";
}
echo"</select>
</td></tr>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form></div>";

}
?>

Aksi_smsgroup.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";
$module=$_GET['module'];
$act=$_GET['act'];
// Kirim SMS
if($module=='smsgroup' AND $act=='kirimsmsgroup'){

$tujuan=$_POST['group'];
$pesan = $_POST['pesan'];

$query = "SELECT * FROM sms_phonebook";


$hasil = mysql_query($query);
while ($r = mysql_fetch_array($hasil)) {
$group = explode('|', $r['idgroup']);
if (in_array($tujuan, $group)) {
mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$r[noTelp]', '$pesan', 'Gammu')");
}
}
?>
<script language="javascript">
alert("SMS Group dikirim!!");
document.location="../../media.php?module=home";
</script><?php
}
}
?>

Modul calon

Calon.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_calon/aksi_calon.php";
switch($_GET[act]){
// Tampil calon
default:
echo "<h2>Data Calon dan Wakil Calon Pemilu</h2>";
echo" <div class='box'><div class='left'><input type=button value='Tambah Calon'
onclick=\"window.location.href='?module=calon&act=tambahcalon';\"></div></div>";

echo "<table class='list'><thead>


<tr><td class='left' width='75'>Nomor Calon</td>
<td class='left'>Nama Calon</td>
<td class='left'>Nama Wakil Calon</td>
<td class='center'>Foto</td>
<td class='center'>aksi</td>
</tr></thead>";

$tampil = mysql_query("SELECT * FROM sms_calon ORDER BY id_calon ASC");

while($r=mysql_fetch_array($tampil)){

echo " <td class='left'>$r[nomorcalon]</td>


<td class='left'>$r[calon]</td>
<td class='left'>$r[wacalon]</td>
<td class='center'><img
src='modul/mod_calon/foto/small_$r[foto]'> </td>
<td class='center' width='85'><a href=?
module=calon&act=editcalon&id=$r[id_calon]><img src='images/edit.png' border='0' title='edit'
/></a>
<a href=\"$aksi?
module=calon&act=hapus&id=$r[id_calon]&namafile=$r[foto]\" onClick=\"return confirm('Apakah
Anda benar-benar mau menghapus data calon?')\"><img src='images/hapus.png' border='0'
title='hapus' /></a></td>
</tr>";
}
echo "</table>";
break;

case "tambahcalon":
echo "<h2>Tambah Calon</h2>
<form method=POST action='$aksi?module=calon&act=input' enctype='multipart/form-data'>
<table class='list'><tbody>
<tr><td width=70>Nomor Calon</td> <td> : <input type=text name='nomor'> *) Isi Dengan
1,2,3...dst</td></tr>
<tr><td width=70>Nama Calon</td> <td> : <input type=text name='calon'
size='60'></td></tr>
<tr><td width=70>Nama Wakil Calon</td> <td> : <input type=text
name='wacalon' size='60'></td></tr>
<tr><td>Foto</td> <td> : <input type=file name='fupload' size=40>
<br>Tipe gambar harus JPG/JPEG dan ukuran lebar maks: 400 px</td></tr>
</td></tr>
<tr><td colspan=2><input type=submit value=Simpan>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</tbody></table></form>";
break;

case "editcalon":
$edit = mysql_query("SELECT * FROM sms_calon WHERE id_calon='$_GET[id]'");
$r = mysql_fetch_array($edit);

echo "<h2>Edit Data Calon</h2>


<form method=POST enctype='multipart/form-data' action=$aksi?module=calon&act=update>
<input type=hidden name=id value=$r[id_calon]>
<table class='list'><tbody>
<tr><td width=70>Nomor Calon</td> <td> : <input type=text name=\"nomor\"
value=\"$r[nomorcalon]\"></td></tr>
</td></tr>
<tr><td width=70>Nama Calon</td> <td> : <input type=text name=\"calon\"
value=\"$r[calon]\"></td></tr>
</td></tr>
<tr><td width=70>Nama Wakil Calon</td> <td> : <input type=text
name=\"wacalon\" value=\"$r[wacalon]\"></td></tr>
</td></tr>

<tr><td>Foto</td> <td> : ";


if ($r[foto]!=''){
echo "<img src='modul/mod_calon/foto/$r[foto]'>";
}
echo "</td></tr>
<tr><td>Ganti Foto</td> <td> : <input type=file name='fupload' size=30> *)Apabila foto tidak
diubah, dikosongkan saja.</td></tr>";

echo "<tr><td colspan=2><input type=submit value=Update>


<input type=button value=Batal onclick=self.history.back()></td></tr>
</tbody></table></form>";
break;
}

}
?>

Aksi_calon.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";
include "../../config/library.php";
include "../../config/fungsi_thumb.php";

$module=$_GET['module'];
$act=$_GET['act'];

// Hapus calon
if ($module=='calon' AND $act=='hapus'){
$data=mysql_fetch_array(mysql_query("SELECT foto FROM sms_calon WHERE
id_calon='$_GET[id]'"));
if ($data['foto']!=''){
mysql_query("DELETE FROM sms_calon WHERE id_calon='$_GET[id]'");
unlink("foto/$_GET[namafile]");
unlink("foto/medium_$_GET[namafile]");
unlink("foto/small_$_GET[namafile]");
}
else{
mysql_query("DELETE FROM sms_calon WHERE id_calon='$_GET[id]'");
}
header('location:../../media.php?module='.$module);
}

// Input calon
elseif ($module=='calon' AND $act=='input'){
$lokasi_file = $_FILES['fupload']['tmp_name'];
$tipe_file = $_FILES['fupload']['type'];
$nama_file = $_FILES['fupload']['name'];
$acak = rand(1,99);
$nama_file_unik = $acak.$nama_file;

// Apabila ada foto yang diupload


if (!empty($lokasi_file)){
if ($tipe_file != "image/jpeg" AND $tipe_file != "image/pjpeg"){
echo "<script>window.alert('Upload Gagal, Pastikan File yang di Upload bertipe *.JPG');
window.location=('../../media.php?module=calon)</script>";
}
else{
UploadImage($nama_file_unik);

mysql_query("INSERT INTO sms_calon(nomorcalon,


calon,
wacalon,
foto)
VALUES('$_POST[nomor]',
'$_POST[calon]',
'$_POST[wacalon]',
'$nama_file_unik')");
header('location:../../media.php?module='.$module);
}
}
else{
mysql_query("INSERT INTO sms_calon(nomorcalon,
calon,
wacalon)
VALUES('$_POST[nomor]',
'$_POST[calon]',
'$_POST[wacalon]')");
header('location:../../media.php?module='.$module);
}
}

// Update calon
elseif ($module=='calon' AND $act=='update'){
$lokasi_file = $_FILES['fupload']['tmp_name'];
$tipe_file = $_FILES['fupload']['type'];
$nama_file = $_FILES['fupload']['name'];
$acak = rand(1,99);
$nama_file_unik = $acak.$nama_file;

// Apabila foto tidak diganti


if (empty($lokasi_file)){
mysql_query("UPDATE sms_calon SET nomorcalon = '$_POST[nomor]',
calon = '$_POST[calon]',
wacalon = '$_POST[wacalon]'
WHERE id_calon = '$_POST[id]'");
header('location:../../media.php?module='.$module);
}
else{
if ($tipe_file != "image/jpeg" AND $tipe_file != "image/pjpeg"){
echo "<script>window.alert('Upload Gagal, Pastikan File yang di Upload bertipe *.JPG');
window.location=('../../media.php?module=calon')</script>";
}
else{
UploadImage($nama_file_unik);
mysql_query("UPDATE sms_calon SET nomorcalon = '$_POST[nomor]',
calon = '$_POST[calon]',
wacalon = '$_POST[wacalon]',
foto = '$nama_file_unik'
WHERE id_calon = '$_POST[id]'");
header('location:../../media.php?module='.$module);
}
}
}
}
?>

Modul Relawan

Relawan.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_relawan/aksi_relawan.php";
switch($_GET[act]){
// Tampil relawan
default:
echo "<h2>Data Relawan</h2>";
echo" <div class='box'><div class='left'><input type=button value='Tambah Relawan'
onclick=\"window.location.href='?module=relawan&act=tambahrelawan';\">&nbsp;<input
type=button value='Kirim SMS Ke Semua Relawan' onclick=\"window.location.href='?
module=relawan&act=kirimsemua';\"></div>
<div class='right'><form method=get action='$_SERVER[PHP_SELF]'>
<input type=hidden name=module value=relawan>
Masukkan Nama Relawan : <input type=text name='nama'> <input type=submit value=Cari>
</form></div></div>";
if (empty($_GET['kata'])){
echo "<table class='list'><thead>
<tr>
<td class='left'>No</td>
<td class='left'>Nama</td>
<td class='left'>Nomor HP</td>
<td class='center'>aksi</td>
</tr></thead> ";

$p = new Paging;
$batas = 15;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM sms_relawan WHERE nama LIKE '%$_GET[nama]%'
ORDER BY NAMA ASC LIMIT $posisi,$batas");

$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){
echo "<td class='left' width='25'>$no</td>
<td class='left'>$r[nama]</td>
<td class='left'>$r[noTelp]</td>
<td class='center' width='90'><a href=?
module=relawan&act=editrelawan&id=$r[noTelp]><img src='images/edit.png' border='0'
title='edit' /></a>
<a href=$aksi?module=relawan&act=hapus&id=$r[noTelp]><img
src='images/hapus.png' border='0' title='hapus' /></a>
<a href=?module=relawan&act=kirimsms&id=$r[noTelp]><img
src='images/sms.png' border='0' title='kirim sms' /></a>
</td></tr>";
$no++;
}
echo "</table>";

$jmldata = mysql_num_rows(mysql_query("SELECT * FROM sms_relawan"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";


break;
}
case "tambahrelawan":
echo "<h2>Tambah Relawan</h2>
<form method=POST action='$aksi?module=relawan&act=input'>
<table class='list'>
<tr><td>Nama </td> <td> : <input type=text name='nama'></td></tr>
<tr><td>Alamat </td> <td> : <input type=text name='alamat'></td></tr>
<tr><td>Nomor Handphone </td> <td> : <input type=text
name='notelp'></td></tr>
<tr><td>Tanggal lahir </td> <td> : <input type=text name='tgllhr'><br>Format:
DD-MM-YYYYY, Contoh: 01-12-1988</td></tr>
<tr><td colspan=2><input type=submit value=Simpan>
<input type=button value=Batal onclick=self.history.back()></td></tr>

</table></form>";
break;

case "editrelawan":
$id = str_replace(" ","+", $_GET['id']);
$edit=mysql_query("SELECT * FROM sms_relawan WHERE noTelp='$id'");
$r=mysql_fetch_array($edit);

echo "<h2>Edit Relawan</h2>


<form method=POST action=$aksi?module=relawan&act=update>
<table class='list'>
<tr><td class='left'>Nama</td> <td> : <input type=text name='nama' value='$r[nama]'>
</td></tr>
<tr><td class='left'>Alamat</td> <td> : <input type=text name='alamat' value='$r[alamat]'>
</td></tr>
<tr><td class='left'>Nomor Telepon</td> <td> : <input type=text name='notelp'
value='$r[noTelp]'> </td></tr>";
$splittgl = explode('-', $r['datebirth']);
if (count($splittgl) == 3) $tgllhr = $splittgl[2]."-".$splittgl[1]."-".$splittgl[0];
else $tgllhr = "00-00-0000";

echo"<tr><td>Tanggal lahir </td> <td> : <input type=text name='tgllhr'


value='$tgllhr'><br>Format: DD-MM-YYYYY, Contoh: 01-12-1988</td></tr>
<input type='hidden' name='notelplama' value='$r[noTelp]'>
<tr><td class='left' colspan=2><input type=submit value=Update>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

case "kirimsms":
$hptujuan = str_replace(" ", "+", $_GET['id']);
$query = "SELECT nama FROM sms_relawan WHERE noTelp = '$hptujuan'";
$hasil = mysql_query($query);
$r = mysql_fetch_array($hasil);
$nama = $r['nama'];
echo "<h2>Kirim SMS</h2>
<form name=form1 method=POST action=$aksi?module=relawan&act=kirimsms>
<table class='list'>
<input type='hidden' name='phone' value='$hptujuan'>
<tr><td class='left'><b>Nomor Tujuan :</b> ".$nama." (".$hptujuan.")</td></tr>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

case "kirimsemua":
echo "<h2>Kirim SMS Ke Semua Relawan</h2>
<form name=form1 method=POST action=$aksi?module=relawan&act=kirimsemua>
<table class='list'>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS Ke Semua>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;

}
}
?>

Aksi_relawan.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";

$module=$_GET['module'];
$act=$_GET['act'];

// Input Relawan
if ($module=='relawan' AND $act=='input'){
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$tgllhr = $_POST['tgllhr'];

$splittgl = explode('-', $tgllhr);


$tgllhr = $splittgl[2]."-".$splittgl[1]."-".$splittgl[0];

$notelp = $_POST['notelp'];

if (substr($notelp, 0, 1) == '0')
{
$notelp[0] = "X";
$notelp = str_replace("X", "+62", $notelp);
}
else $notelp = $notelp;

mysql_query("INSERT INTO sms_relawan VALUES ('$notelp', '$nama', '$alamat', '$tgllhr')");


header('location:../../media.php?module='.$module);
}

// Update Relawan
elseif ($module=='relawan' AND $act=='update'){
$notelplama = str_replace(" ","+", $_POST['notelplama']);
$notelp = str_replace(" ","+", $_POST['notelp']);
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];

$tgllhr = $_POST['tgllhr'];

$splittgl = explode('-', $tgllhr);


$tgllhr = $splittgl[2]."-".$splittgl[1]."-".$splittgl[0];

if (substr($notelp, 0, 1) == '0')
{
$notelp[0] = "X";
$notelp = str_replace("X", "+62", $notelp);
}
else $notelp = $notelp;

mysql_query("UPDATE sms_relawan SET nama='$nama', datebirth='$tgllhr',


noTelp='$notelp', alamat='$alamat' WHERE noTelp = '$notelplama'");
header('location:../../media.php?module='.$module);
}

// Hapus Relawan
elseif ($module=='relawan' AND $act=='hapus'){
$id = str_replace(" ","+", $_GET['id']);
mysql_query("DELETE FROM sms_relawan WHERE noTelp = '$id'");
header('location:../../media.php?module='.$module);
}
// Kirim SMS
elseif ($module=='relawan' AND $act=='kirimsms'){
$noTujuan = str_replace(" ","+", $_POST['phone']);
$pesan = $_POST['pesan'];
mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$noTujuan', '$pesan', 'Gammu')");
?>
<script language="javascript">
alert("SMS dikirim!!");
document.location="../../media.php?module=relawan";
</script><?php
}

// Kirim SMS Ke Semua Relawan


elseif ($module=='relawan' AND $act=='kirimsemua'){
$noTujuan = str_replace(" ","+", $_POST['phone']);
$pesan = $_POST['pesan'];

$query = mysql_query("SELECT * FROM sms_relawan");


while ($r=mysql_fetch_array($query)){
mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$r[noTelp]', '$pesan', 'Gammu')");
}
?>
<script language="javascript">
alert("SMS Semua Relawan dikirim!!");
document.location="../../media.php?module=relawan";
</script><?php
}

}
?>

Modul SMS relawan

Smsrelawan.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{

$aksi="modul/mod_smsrelawan/aksi_smsrelawan.php";
echo "<h2>Kirim SMS Ke Semua Relawan</h2>";
echo"<div><form name=form1 method=POST action=$aksi?
module=smsrelawan&act=kirimsmsrelawan>
<table class='list'>
<tr><td class='left'>Message : </td></tr>
<tr><td><textarea name='pesan' style='width: 350px; height: 120px;' OnFocus='Count();'
OnClick='Count();' onKeydown ='Count(); OnChange='Count();'
onKeyup='Count();'></textarea></td></tr>
<tr><td class='left'>Panjang SMS : <input type='text' readonly name='counter' size='3' value='0'
/> </td></tr>
<tr><td class='left' colspan=2><input type=submit value=Kirim SMS>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form></div>";

}
?>

Aksi_smsrelawan.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";
$module=$_GET['module'];
$act=$_GET['act'];

// Kirim SMS Ke semua Relawan


if($module=='smsrelawan' AND $act=='kirimsmsrelawan'){

$pesan = $_POST['pesan'];

$query = "SELECT * FROM sms_relawan";


$hasil = mysql_query($query);
while ($r = mysql_fetch_array($hasil)) {
mysql_query("INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES
('$r[noTelp]', '$pesan', 'Gammu')");
}
?>
<script language="javascript">
alert("SMS Ke Semua Relawan dikirim!!");
document.location="../../media.php?module=home";
</script><?php
}
}
?>

Modul TPS
Merupakan modul inti pada aplikasi ini, kerena di modul ini teknik statistik yan sudah dijelaskan
diterapkan secara programming. Mulai dari pehitungan perhitungan populasi sampel, perhitungan
rata-rata pemilih, sampai dengan menghitung jumlah sampel TPS.
Tps.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
//cek jka tps sudah dibuat atau belum
$cektps = "SELECT * FROM sms_tps";
$hasil = mysql_query($cektps);
$num_rows = mysql_num_rows($hasil);

if ($num_rows<1) {
$aksi="modul/mod_tps/aksi_tps.php";
echo "<h2>Perhitungan TPS Sampel</h2>
<form method=POST action='$aksi?module=tps&act=hitung'>
<table class='list'>
<tr><td class='left'>Tingkat Kepercayaan</td>
<td> : <select name='percaya'>
<option value=0 selected>- Pilih Tk. Kepercayaan -</option>
<option value=1>90%</option>
<option value=2>95%</option>
<option value=3>99%</option>
</select>
</td></tr>
<tr><td>Sampling Error </td> <td> : <input type=text name='error'> *) 0 - 1
(dalam persen, gunakan koma jika nilai dibawah 1)</td></tr>
<tr><td>Jumlah Pemilih </td> <td> : <input type=text name='pemilih'> *) tanpa
pemisah koma (contoh : 12000,50000,100000)</td></tr>
<tr><td>Jumlah TPS </td> <td> : <input type=text name='tps'> *) tanpa pemisah
koma (contoh : 1250, 850) </td></tr>
<tr><td colspan=2><input type=submit value=Buat>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
}
if ($num_rows>=1) {
$aksi="modul/mod_tps/aksi_tps.php";
switch($_GET[act]){
// Tampil tps
default:
echo "<h2>Data Sampel TPS</h2>";

$result = mysql_query('SELECT SUM(total_suara) AS total FROM sms_tps');


$r = mysql_fetch_assoc($result);
$sum = $r['total'];
echo" <div class='box'><div class='left'> <b> Total Suara : $sum </b></div> <div class='right'><form
method=get action='$_SERVER[PHP_SELF]'>
<input type=hidden name=module value=tps>
Masukkan Nama TPS : <input type=text name='nama'> <input type=submit value=Cari>
</form></div></div>";
if (empty($_GET['kata'])){
echo "<table class='list'><thead>
<tr>
<td class='left'>No</td>
<td class='left'>Nama TPS</td>
<td class='left'>Lokasi</td>
<td class='left'>Total Suara</td>
<td class='center'>aksi</td>
</tr></thead> ";

$p = new Paging;
$batas = 35;
$posisi = $p->cariPosisi($batas);
$tampil = mysql_query("SELECT * FROM sms_tps WHERE nama_tps LIKE '%$_GET[nama]%' ORDER
BY id_tps ASC LIMIT $posisi,$batas");

$no = $posisi+1;
while ($r=mysql_fetch_array($tampil)){
echo "<td class='left' width='25'>$no</td>
<td class='left'>$r[nama_tps]</td>
<td class='left'>$r[lokasi]</td>
<td class='left'>$r[total_suara]</td>
<td class='center' width='90'><a href=?module=tps&act=edittps&id=$r[id_tps]><img
src='images/edit.png' border='0' title='edit' /></a>
</td></tr>";
$no++;
}
echo "</table>";

$jmldata = mysql_num_rows(mysql_query("SELECT * FROM sms_tps"));

$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);


$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman);

echo "<div class=\"pagination\"> $linkHalaman</div>";


break;

case "edittps":
$edit=mysql_query("SELECT * FROM sms_tps WHERE id_tps='$_GET[id]'");
$r=mysql_fetch_array($edit);

echo "<h2>Edit Data TPS</h2>


<form method=POST action=$aksi?module=tps&act=update>
<table class='list'>
<tr><td class='left'>Nama TPS</td> <td> : <input type=text name='nama'
value='$r[nama_tps]' disabled> </td></tr>
<tr><td class='left'>Lokasi TPS</td> <td> : <input type=text name='lokasi' value='$r[lokasi]'
size='70'> </td></tr>
<tr><td class='left'>Total Suara</td> <td> : <input type=text name='total'
value='$r[total_suara]'> </td></tr>
<tr><td>Nama Relawan</td> <td> : <select name='relawan'>";

$tampil=mysql_query("SELECT * FROM sms_relawan ORDER BY nama ASC");


if ($r[noTelp]==0){
echo "<option value=0 selected>- Pilih Relawan -</option>";
}

while($w=mysql_fetch_array($tampil)){
if ($r[noTelp]==$w[noTelp]){
echo "<option value=$w[noTelp] selected>$w[nama]</option>";
}
else{
echo "<option value=$w[noTelp]>$w[nama]</option>";
}
}

echo "</select></td></tr>
<input type='hidden' name='id' value='$r[id_tps]'>
<tr><td class='left' colspan=2><input type=submit value=Update>
<input type=button value=Batal onclick=self.history.back()></td></tr>
</table></form>";
break;
}

}
?>

Aksi_tps.php

<?php
session_start();
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
echo "<link href='style.css' rel='stylesheet' type='text/css'>
<center>Untuk mengakses modul, Anda harus login <br>";
echo "<a href=../../index.php><b>LOGIN</b></a></center>";
}
else{
include "../../config/koneksi.php";

$module=$_GET['module'];
$act=$_GET['act'];
// Hitung Dan Buat TPS sampel
if ($module=='tps' AND $act=='hitung'){

$percaya = $_POST['percaya'];
$error = $_POST['error'];
$pemilih = $_POST['pemilih'];
$tps =$_POST['tps'];

if ($percaya==1) $percaya=1.65;
else if ($percaya==2) $percaya=1.96;
else if ($percaya==3) $percaya=2.58;
else $percaya==0;

$error = $error/100;

if(is_numeric($percaya) && is_numeric($pemilih) && is_numeric($tps) && is_numeric($error) &&


$percaya!=0){
//1. menghitung populasi sampel
$sampel_pemilih = round(($percaya*$percaya*(0.5*(1-0.5))*$pemilih) /
($percaya*$percaya*(0.5*(1-0.5))+(($pemilih-1)*$error*$error)));
//2. menghitung rata-rata pemilih
$rata_pemilih = round($pemilih/$tps);
//3. menghitung jumlah sampel tps
$sampel_tps = round($sampel_pemilih/$rata_pemilih);
//3.1. Menentukan interval sampel
$interval = round($tps/$sampel_tps);
//3.2. memilih sampel pertama secara random
$random = (rand(1,$interval));
//3.3. memilih secara acak/random sampel selanjutnya sebanyak jumlah tps sampel
$counter=0;
for ($i=$random;$i<=$tps;$i+=$interval) {
if($counter==$sampel_tps) { break; }
mysql_query("INSERT INTO sms_tps(nama_tps) VALUES ('TPS $i')");
$counter++;
}

}
else{
?>
<script language="javascript">
alert("Kesalahan pengisian field, harap ulangi lagi!!");
document.location="../../media.php?module=tps";
</script><?php
}
header('location:../../media.php?module='.$module);
}

// Edit dan lengkapi lokasi dan jumlah suara masing-masing tps terpilih
if ($module=='tps' AND $act=='update'){
$lokasi=$_POST['lokasi'];
$totalsuara=$_POST['total'];
$notelp=$_POST['relawan'];
mysql_query("UPDATE `sms_tps` SET lokasi = '$lokasi',
`total_suara` = '$totalsuara',
`noTelp` = '$notelp'
WHERE `id_tps` = '$_POST[id]'");
header('location:../../media.php?module='.$module);

}
?>

Modul Autoreplay
Berfungsi memproses sms yang dikirim relawan untuk selanjutnya diakumulasikan menjadi total
perhitungan suara quick count
Berikut format smsnya:

QC#NOMOR TPS#SUARA A#SUARA B#SUARA C#SUARA TIDAK SAH

Penjelasan:
- QC = Quick Count
- NOMOR TPS = Nomor urut/nama TPS berdasarkan hasil perhitungan penentuan sampel
- SUARA A = Jumlah suara calon nomor urut 1
- SUARA B = jumlah suara calon nomor uru 2
- SUARA C = jumlah suara calon nomor urut 3
- SUARA TIDAK SAH = jumlah suara yang tidak sah

Contoh
QC#TPS 121#50#100#70#9

Yang berarti TPS 121, suara A sebanyak 121 suara, suara B sebanyak 50, suara C sebanyak 100 dan
suara tidak sah sebanyak 9.

Autosuara.php

<html>
<head>
<!-- refresh script setiap 30 detik -->
<meta http-equiv="refresh" content="10; url=<?php $_SERVER['PHP_SELF']; ?>">
</head>
<body>
<h1>SMS server running....</h1>
<h1>Jangan Tutup Browser ini selama waktu pengiriman data suara dari relawan....</h1>

<?php
include "../../config/koneksi.php";
// query untuk membaca SMS yang belum diproses
$query = "SELECT * FROM inbox WHERE Processed = 'false'";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{

// membaca ID Pesan
$id = $data['ID'];

// membaca no pengirim
$noPengirim = $data['SenderNumber'];

// membaca pesan SMS dan mengubahnya menjadi kapital


$pesan = strtoupper($data['TextDecoded']);

// proses parsing

// memecah pesan berdasarkan karakter <#>


$pecah = explode("#", $pesan);

//Format Quick Count


// QC#NOMOR TPS#SUARA A#SUARA B#SUARA C#SUARA TIDAK SAH

// jika kata terdepan dari SMS adalah 'NILAI' maka cari nilai Kalkulus
if ($pecah[0] == "QC")
{
// baca Nomor TPS dari pesan SMS
$tps = $pecah[1];
$suara1 = $pecah[2];
$suara2 = $pecah[3];
$suara3 = $pecah[4];
$suara4 = $pecah[5];

// cari Nomor TPS dan realwan berdasar Pesan


$query2 = "SELECT * FROM sms_tps WHERE nama_tps = '$tps' AND noTelp = '$noPengirim'";
$hasil2 = mysql_query($query2);
$r=mysql_fetch_array($hasil2);
$total_suara=$r['total_suara'];

// cek bila data TPS dan relawan


//jika tps atau relawan tidak ditemukan
if (mysql_num_rows($hasil2) == 0) $reply = "Nomor TPS Atau Relawan tidak ditemukan";
else
{
// bila data TPS ditemukan
//Validasi jika total suara yang dikirim melebihi/kurang dari total suara
$totaldikirim = $suara1+$suara2+$suara3+$suara4;
if ($total_suara==$totaldikirim) {
// jika total suara di database sama dengan total suara dikirim , maka update data
suara ke field suara di tabel sms_tps
$query6 = "UPDATE sms_tps SET suara = '$pesan' WHERE nama_tps = '$tps' AND
noTelp = '$noPengirim'";
$hasil6 = mysql_query($query6);
$reply = "Data TPS Anda sudah masuk dalam sistem";
}else //jika format atau total suara salah dikirim
$reply = "Cek lagi suara yg dikirim, data salah/kurang/melebihi total suara di tps
Anda";
}
// membuat SMS balasan
$query3 = "INSERT INTO outbox(DestinationNumber, TextDecoded) VALUES ('$noPengirim',
'$reply')";
$hasil3 = mysql_query($query3);
}
// ubah nilai 'processed' menjadi 'true' untuk setiap SMS yang telah diproses
$query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
$hasil3 = mysql_query($query3);
}

?>

</body>
</html>

Modul hasil
Dimana hasil rekapitulasi Quick count akan digambarkan secara grafik. Penulisan menggunakan
bantuan dari class fusionchart.

Hasilpemilu.php

<?php
error_reporting(0);
include "../../config/koneksi.php";
include "../../fusioncharts/class/FusionCharts_Gen.php";

?>
<html>
<head>
<title>Hasil Rekapitulasi Suara Quick Count Pemilu</title>
<script language='javascript' src='../../fusioncharts/js/FusionCharts.js'></script>
<link href='../../style.css' rel='stylesheet' type='text/css'>
</head>
<body>

<?php
# Include FusionCharts PHP Class
# Create object for Column 3D chart
$FC = new FusionCharts("Column3D","850","550");

# Setting Relative Path of chart swf file.


$FC->setSwfPath("../../fusioncharts/Charts/");

# Store chart attributes in a variable


$strParam="caption=Hasil Penghitungan Suara Quick Count; xAxisName=Nama Calon (Dalam
Persentase) ;yAxisName=Persentase;decimalPrecision=2; formatNumberScale=0";

# Set chart attributes


$FC->setChartParams($strParam);

$query = "SELECT * FROM sms_tps";


$hasil = mysql_query($query);
$total1=0;
$total2=0;
$total3=0;
$total4=0;
while ($data = mysql_fetch_array($hasil))
{

// membaca no pengirim
$suara = $data['suara'];
// memecah data suara
$pecah = explode("#", $suara);

$suara1 = $pecah[2];
$suara2 = $pecah[3];
$suara3 = $pecah[4];
$suara4 = $pecah[5];

$total1 = $total1+$suara1;
$total2 = $total2+$suara2;
$total3 = $total3+$suara3;
$total4 = $total4+$suara4;

}
$result = mysql_query('SELECT SUM(total_suara) AS total FROM sms_tps');
$r = mysql_fetch_assoc($result);
$sum = $r['total'];

$persentase1 = ($total1/$sum)*100;
$persentase2 = ($total2/$sum)*100;
$persentase3 = ($total3/$sum)*100;

$persentase4 = ($total4/$sum)*100;

$querycalon = mysql_query("SELECT calon, wacalon FROM sms_calon order by nomorcalon ASC");


while ($r = mysql_fetch_array($querycalon)){

$calon[] = $r['calon'];
$wacalon[] = $r['wacalon'];
}
# add chart values and category names
$FC->addChartData("$persentase1","name=$calon[0] & $wacalon[0]");
$FC->addChartData("$persentase2","name=$calon[1] & $wacalon[1]");
$FC->addChartData("$persentase3","name=$calon[2] & $wacalon[2]");

# Render Chart
$FC->renderChart();

$suaramsk = (($total1+$total2+$total3+$total4)/$sum)*100;
$suaramasuk = sprintf('%0.2f', $suaramsk);
$suaratidaksah = sprintf('%0.2f', $persentase4);

echo " Jumlah Suara Masuk ="; echo $suaramasuk; echo "%"; echo "<br>";
echo " Jumlah Suara Tidak Sah = "; echo $suaratidaksah ; echo "%";
?>

</body>
</html>
JARINGAN KOMPUTER

MEMBANGUN APLIKASI SISTEM SMS


QUICK COUNT DENGAN PHP

Anggota
 Jimmy Halim (1110307055028)
 Ivana agustina (1110307055027)
 Meirianto (1110307055034)
 Eka Prayoga (1110307055017)

Anda mungkin juga menyukai