Author: Norman
Last saved by: D4m14n
Company: bedu

BAB IV
IMPLEMENTASI DAN PEMBAHASAN SISTEM

4.1 	Implementasi Sistem
Dalam implementasi sistem yang dibuat ini dilakukan uji coba menjalankan sistem atau aplikasi. Dalam tahap ini dapat dilihat proses atau jalannya sebuah aplikasi dari konfigurasi awal hingga pemakaian akhir.   
4.1.1	Konfigurasi Aplikasi
Dalam pengimplementasian sistem ini deperlukan konfigurasi-konfigurasi tertentu sehingga sistem dapat berjalan. Berikut ini adalah langkah-langkah mengkonfigurasi sistem sehingga dapat digunakan dengan sempurna:
a)	Untuk langkah awal yang perlu dilakukan adalah menghubungkan Handphone (SE W200i) modem ke komputer dengan menggunakan kabel data.
b)	Kemudian langkah selanjutnya adalah mendeteksi handphone yang akan digunakan sebagai modem ke komputer dengan memberikan perintah tail –f /var/log/messages. Perintah tersebut adalah perintah yang akan mendeteksi handphone yang terhubung di komputer. Jika sudah terdeteksi handphone yang dimaksud, berarti dapat melanjutkan ke proses selanjutnya, akan tetapi jika handphone tidak terdeteksi, bisa di cek apakah kabel sudah terpasang dengan benar atau belum, atau mungkin handphone yang digunakan tidak compatible dengan sistem yang ada.
c)	Untuk langkah berikutnya adalah menjalankan bearerbox dan smsbox. Bearerbox dan smsbox ini terdapat di folder GW yang terdapat di SMSgateway. Untuk menjalankan berarerbox  kita harus masuk ke folder direktori GW yang ada di SMSgateway. Perintah yang diberikan adalah ./bearerbox –v 1 smskannel.conf. Setelah perintah tersebut berhasil dijalankan maka dilanjutkan dengan mengetikan perintah untuk menjalankan smsbox. Perintahnya adalah ./smsbox –v 1 smskannel.conf. Bearerbox disini dapat diartikan sebagai pintu gerbang sistem, jadi seandainya bearerbox tidak sukses terbuka, maka secara otomatis smsbox juga tidak dapat dijalankan.
d)	Dengan berhasil menjalankan bearebox dan smsbox maka program smsgateway sudah siap digunakan. Langkah selanjutnya adalah mengaktifkan engine yaitu Xampp dengan mengetikan perintah /opt/lamp/lamp start. Dengan perintah tersebut Xampp sudah bisa digunakan.

4.1.2	Membuat File Pemroses Aplikasi
File pemroses yang dibuat akan disimpan dalam /htdocs/ karena pemrosesan dilakukan dengan menggunakan Xampp yang berbasiskan web dan dengan bahasa PHP. Berikut sebagian file yang dibuat untuk pemrosesan data.
4.1.2.1	Membuat file “judul_voting.php”
	Halaman ini dibuat untuk inputan data judul voting. Berikut kode programnya :

<table width="100%" border="0" align="center">
 <tr>
<td height="35">
</td></tr>
<tr>
<td height="35" width="100%"><font color="#333333" size="+2"><span class="style1"> <center> JUDUL </center> </span></font></td> </tr> <tr>
<td  height="179" valign="top">
	<?php
		$pilih=$_GET['pilih'];
	$act=$_GET['act'];
	$ekode=$_POST['ekode'];
	$judul=$_POST['judul'];
	$KODE=$_GET['KODE'];
	$ecari=$_POST['ecari'];
	$submithide=$_REQUEST['submithide'];
	switch($pilih)
	{
	case INSERT:
$submitreset="<input type=button value='KEMBALI' onclick=location.href='judul_voting.php'>";
if($act=="EDIT")
		{
$queryjudul=querydb("select * from jdl_voting where id_judul='$KODE'");
$datajudul=mysql_fetch_array($queryjudul);
$KODE=$datajudul[0];
$submithide="<input type=\"submit\" name=\"pilih\" value=\"UPDATE\">";
?> &nbsp;
<form name="form1" enctype="multipart/form-data" method="post" action="<?php echo "judul_voting.php?pilih=UPDATE&amp;KODE=$KODE";?>" onSubmit="YY_checkform('form1',
'ekode','#q','0','\'ID JUDUL POLING \'tidak valid',
'judul','#q','0','\'JUDUL POLING \'tidak valid');return document.MM_returnValue">
<font color="gray">
<table width="330" border="0" cellpadding="0" cellspacing="0"  align="center" >
<tr>
<th height="35" colspan="2" >EDIT JUDUL</th>
</tr>
<tr>
<td width="149">ID JUDUL</td>
<td width="175"><input name="ekode" type="text" value="<?php echo "$KODE";?>" readonly="" size="27"></td>
</tr>
<tr>
<td width="149">JUDUL VOTING</td>
<td width="175"><input name="judul" type="text" id="enamacounter" value="<?php echo "$datajudul[1]";?>" size="27"></td>
</tr>
<tr>	
<td align="center"><?php echo "$submithide";?></td>
<td align="center"><?php echo "$submitreset";?></td>
</tr></table></font>
</form>

<?php
}
else
{
		   
$querykode=querydb("select id_judul from jdl_voting order by id_judul desc");
$urutkode=mysql_fetch_array($querykode);
$panjang=substr($urutkode[id_judul],1,3);
$KODE=$panjang+1;
if($KODE<0) $KODE="J000".$KODE;
elseif($KODE<10)$KODE="J00".$KODE;
elseif($KODE<100)$KODE="J0".$KODE;
elseif($KODE<1000)$KODE="J".$KODE;
else $KODE=$KODE;
$submithide="<input type=\"submit\" name=\"pilih\" value=\"SAVE\">";
?>
<form name="form1" enctype="multipart/form-data" method="post" action="
<?php echo "judul_voting.php?pilih=SAVE&amp;KODE=$KODE";?>" onSubmit="YY_checkform('form1',
'ekode','#q','0','\'ID JUDUL POLING \'tidak valid',
'judul','#q','0','\'JUDUL POLING \'tidak valid');return document.MM_returnValue">
<font color="gray">
<table width="342" border="0" cellpadding="0" cellspacing="0"  align="center">
<tr>
<td height="25" colspan="2"><div align="center">Input Judul</div></td>
</tr>
<tr>
<td width="154">ID JUDUL</td>
<td width="188"><input name="ekode" type="text" value="<?php echo "$KODE";?>" readonly="" size="27" >    </td>
</tr>
<tr>
<tr>
<td width="154">JUDUL VOTING</td>
<td width="188"><input name="judul" type="text" size="27" maxlength="50"></td>
</tr>
<tr>
<td align="center"><?php echo "$submithide &nbsp";?></td>
<td align="center"><?php echo "$submitreset";?></td>
</tr>
</table></font></form>
<?php
} break;

		

			 

		case SAVE:
$querycek=querydb("select * from jdl_voting where judul = '$judul'");
$jumrow=mysql_num_rows($querycek);
if($jumrow>=1)
{
print"<script>alert('JUDUL $judul telah ada! Silahkan input yang lain');window.history.go(-1);</script>";
}
else
{
querydb("insert into jdl_voting set id_judul='$ekode', judul='$judul'");
print"<meta http-equiv='refresh' content='0;url=judul_voting.php'>";
}
break;
case UPDATE:
$querycek=querydb("select * from jdl_voting where judul = '$judul'");
$jumrow=mysql_num_rows($querycek);
if($jumrow>=1)
{
print"<script>alert('JUDUL $judul telah ada! Silahkan input yang lain');window.history.go(-1);</script>";
}
else
{
querydb("update jdl_voting set id_judul='$ekode', judul='$judul' where id_judul='$ekode'");
print"<meta http-equiv='refresh' content='0;url=judul_voting.php'>";
}
break;
case DELETE:
querydb("delete from jdl_voting where id_judul='$KODE'");
print"<meta http-equiv='refresh' content='0;url=judul_voting.php'>";
break;	
default :
?>
<font color="gray">
<table width="344" border="1" align="center"  bordercolor="#FFFFFF">
<tr> 
<td width="78" bgcolor="#333333"><div align="center">ID JUDUL</div></td>
<td width="115" bgcolor="#333333"><div align="center">JUDUL</div></td>
<td width="129" bgcolor="#333333"><div align="center">OPSI</div></td>
</tr>
<?php 

include_once "../include/config.php";
$ambil=querydb("select * from jdl_voting order by id_judul asc");  
while($hasil=mysql_fetch_array($ambil))
{
?>
<tr>
<td align="left"><?php echo "$hasil[id_judul]"; ?></td>
<td><?php echo "$hasil[judul]"; ?></td>
<td><a href="<?php echo "judul_voting.php?pilih=INSERT&amp;act=EDIT&amp;KODE=$hasil[id_judul]";?>">EDIT</a>&nbsp;&nbsp;||&nbsp;
<a href="<?php echo "judul_voting.php?pilih=DELETE&amp;KODE=$hasil[id_judul]";?>" OnClick="return confirm('Data akan dihapus. Click \'OK\' untuk melanjutkan proses !')">DELETE</a>
</td>
<?php
}
?>
</tr>
</table>
<table width="232" border="0" align="center"  bordercolor="#FFFFFF">
<tr>
<td colspan="3"><font size="1">-> Untuk Menambah Data Klik</font></td>
<td width="49" bgcolor="#CCCCCC"><div align="center"><a href="<?php echo"judul_voting.php?pilih=INSERT";?>"> insert</a></div></td>
</tr>
</table>
</font>
</td>
</tr>	
</table>

		

Gambar 4.1 Form Input Data Judul

4.1.2.2	Membuat file “pilihan_voting.php”
	Halaman ini dibuat untuk inputan data judul voting. Berikut kode programnya :

<table width="100%" border="0" align="center">
  <tr>
    <td height="35">
	</td>
  </tr>
  <tr>
    <td height="35" width="100%"><font color="#333333" size="+2"><span class="style1"> <center> PILIHAN </center> </span></font></td>
  </tr>
  <tr>
    <td  height="179" valign="top">
	<?php
	$judul=$_POST['judul'];
	$ejudul=$_POST['ejudul'];
	$pilihan=$_POST['pilihan'];
	$KODE=$_GET['KODE'];
	$submithide=$_REQUEST['submithide'];

	switch($pilih)
	{
	case INSERT:
 	  $submitreset="<input type=button value='KEMBALI' onclick=location.href='pilihan_voting.php'>";
      if($act=="EDIT")
		{
	   $querypilihan=querydb("select judul, id_pilihan, pilihan, hasil from pilihan inner join jdl_voting on pilihan.id_judul=jdl_voting.id_judul where id_pilihan='$KODE' ");
	   $datapilihan=mysql_fetch_array($querypilihan);
	   $submithide="<input type=\"submit\" name=\"pilih\" value=\"UPDATE\">";
	   ?> &nbsp;
	   <form name="form1" enctype="multipart/form-data" method="post" action="<?php echo "pilihan_voting.php?pilih=UPDATE&amp;KODE=$KODE";?>" onSubmit="YY_checkform('form1',
'judul','#q','0','\'JUDUL POLING \'tidak valid',
'pilihan','#q','0','\'PILIHAN POLING\'tidak valid');return document.MM_returnValue">
		<font color="gray">
		<table width="330" border="0" cellpadding="0" cellspacing="0"  align="center" >

<tr>
			<th height="35" colspan="2" >EDIT JUDUL</th>
		  </tr>
		  <tr>
			<td width="149">JUDUL POLING</td>
			<td width="175"><input name="judul" type="text" value="<?php echo "$datapilihan[judul]";?>" readonly="" size="27"></td>
		  </tr>
		  <tr>
			<td width="149">PILIHAN POLING</td>
			<td width="175"><input name="pilihan" type="text" value="<?php echo "$datapilihan[pilihan]";?>" size="27"></td>
		  </tr>
		  <tr>	
		  <td align="center"><?php echo "$submithide";?></td>
		  <td align="center"><?php echo "$submitreset";?></td>
		  </tr>
		</table>
		</font>
	  </form> 

<?php
		}
		
		break;
		case SAVE:
		$querypilihan=querydb("select id_judul from jdl_voting where judul='$judul' ");
	   $datapilihan=mysql_fetch_array($querypilihan);
	   $querycek=querydb("select * from pilihan where id_judul='$datapilihan[id_judul]' and pilihan='$pilihan'");
		 $jumrow=mysql_num_rows($querycek);
		 if($jumrow>=1)
		 {
		  print"<script>alert('JUDUL $judul dengan pilihan $pilihan telah ada! Silahkan input yang lain');window.history.go(-1);</script>";
		 }
		 else
		 {
		 querydb("insert into pilihan set id_judul='$datapilihan[id_judul]', id_pilihan='$KODE' ,pilihan='$pilihan', hasil='0'");
		  print"<meta http-equiv='refresh' content='0;url=pilihan_voting.php'>";
		  }
		break;

case UPDATE:
		$queryjudul=querydb("select id_judul from jdl_voting where judul='$judul'");
	   $datajudul=mysql_fetch_array($queryjudul);
	   $id_judul=$datajudul[id_judul];
		$querycek=querydb("select * from pilihan where id_judul='$id_judul' and pilihan='$pilihan'");
		 $jumrow=mysql_num_rows($querycek);
		 if($jumrow>=1)
		 {
		  print"<script>alert('JUDUL $judul dengan pilihan $pilihan telah ada! Silahkan input yang lain');window.history.go(-1);</script>";
		 }
		 else
		 {
		  querydb("update pilihan set pilihan='$pilihan' where id_pilihan='$KODE'");
		  print"<meta http-equiv='refresh' content='0;url=pilihan_voting.php'>";
		  }
		 break;
		 
		case DELETE:
		querydb("delete from pilihan where id_pilihan='$KODE'");
		 print"<meta http-equiv='refresh' content='0;url=pilihan_voting.php'>";
		break;
		
default :
	?>
	<font color="gray">
	
	<table width="344" border="1" align="center"  bordercolor="#FFFFFF">
    <tr> 
    <td width="78" bgcolor="#333333"><div align="center">JUDUL</div></td>
    <td width="115" bgcolor="#333333"><div align="center">PILIHAN</div></td>
    <td width="129" bgcolor="#333333"><div align="center">OPSI</div></td>
  </tr>
  <?php
			include_once "../include/config.php";
			$ambil=querydb("select judul, id_pilihan, pilihan, hasil from pilihan inner join jdl_voting on pilihan.id_judul=jdl_voting.id_judul order by id_pilihan asc" ); 
			while($hasil=mysql_fetch_array($ambil))
			{
			
			?>

  <tr>
    <td align="left"><?php echo "$hasil[judul]"; ?></td>
    <td><?php echo "$hasil[pilihan]"; ?></td>
    <td><a href="<?php echo "pilihan_voting.php?pilih=INSERT&amp;act=EDIT&amp;KODE=$hasil[id_pilihan]";?>">EDIT</a>&nbsp;&nbsp;||&nbsp;
	<a href="<?php echo "pilihan_voting.php?pilih=DELETE&amp;KODE=$hasil[id_pilihan]";?>" OnClick="return confirm('Data akan dihapus. Click \'OK\' untuk melanjutkan proses !')">DELETE</a>
	</td>
	<?php
  }
  ?>
  </tr>
  
</table>
<table width="232" border="0" align="center"  bordercolor="#FFFFFF">
  <tr>
    <td colspan="3"><font size="1">-> Untuk Menambah Data Klik</font></td>
	<td width="49" bgcolor="#CCCCCC"><div align="center"><a href="<?php echo"pilihan_voting.php?pilih=INSERT";?>"> insert</a></div></td>
  </tr>
</table>
<table width="232" border="0" align="center"  bordercolor="#FFFFFF">
  <tr>
    <td colspan="3"><font size="1">-> Untuk Menambah Data Klik</font></td>
	<td width="49" bgcolor="#CCCCCC"><div align="center"><a href="<?php echo"pilihan_voting.php?pilih=INSERT";?>"> insert</a></div></td>
  </tr>
  </table>
</font>
</td>
</tr>
</table>

Gambar 4.1 Form Input Data Pilihan
4.2 	Pembahasan Sistem
Pembahasan sistem adalah penjabaran tetang cara kerja dari aplikasi yang dibuat. Penjabarannya sebagai berikut :
1.	Dalam aplikasi ini, data diperoleh dari penginputan poling melalui SMS oleh respoden  atau user. Responden atau user hanya diberikan hak akses untuk menginputkan poling dan tidak boleh melakukan penginputan  lebih dari 1 kali setiap polingnya pada nomer handphone yang sama. Setiap respoden  atau user yang menginputkan poling melalui SMS, pasti akan diberikan autorespon oleh sistem bahwa proses penginputan poling telah berhasil atau gagal dan respoden  atau user pun dapat mengetahui hasil poling melalui SMS. 
2.	Dalam sistem ini juga terdapat hak akses istimewa. Hak akses istimewa itu yaitu seseorang yang telah didaftarkan nomer handphonenya di dalam sistem maka dia bisa melakukan penambahan judul poling dan pilihan poling melalui SMS tanpa harus melalui aplikasi di komputer. 
3.	Setiap SMS yang dikirimkan ke sistem pasti akan melewati validasi-validasi yang terdapat dalam sistem. Bila validasi-validasi tersebut tidak terpenuhi pasti sistem akan memberikan peringatan melalui autorespon dengan menggunakan SMS kepada respoden  atau user. Tetapi bila validasi-validasi tersebut terpenuhi maka respoden  atau user akan diberikan hasil sesuai yang diminta. 
4.	Secara garis besar validasi yang dilakukan adalah memvalidasi kata kunci dan memvalidasi format SMS yang dikirim oleh respoden  atau user.

20