Perancangan Aplikasi Forum Diskusi Berbasis Web
LAMPIRAN
Index.php <?php session_start(); error_reporting(0); include "timeout.php"; include "config/koneksi.php"; if($_SESSION[login]==1){ if(!cek_login()){$_SESSION[login] = 0; } } if($_SESSION[login]==0){ header('location:logout.php'); } else{
if (empty($_SESSION['namauser']) AND empty($_SESSION['passuser']) AND $_SESSION['login']==0){
header('location:login.php'); }
else{
if($_SESSION[leveluser] == 'admin') { header('location:admin.php'); } else { ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Forum DIskusi - Mari Berdiskusi Disini</title> <!-- Core CSS - Include with every page -->
<link href="assets/plugins/bootstrap/bootstrap.css" rel="stylesheet" /> <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" /> <link href="assets/plugins/pace/pace-theme-big-counter.css" rel="stylesheet" />
<link href="assets/css/style.css" rel="stylesheet" /> <link href="assets/css/main-style.css" rel="stylesheet" /> <link rel="shortcut icon" href="#">
<!-- Page-Level CSS -->
<link href="assets/plugins/morris/morris-0.4.3.min.css" rel="stylesheet" />
<link href="assets/plugins/timeline/timeline.css" rel="stylesheet" />
<script type="text/javascript" src="jquery-min.js"></script> <script type="text/javascript">
(2)
var auto_refresh = setInterval( function () { $("#refresh").load("timeline.php").fadeIn("slow"); }, 1600); </script> <script src="js/jquery.js"></script> <script src="js/user.js"></script> </head> <body>
<!-- wrapper --> <div id="wrapper"> <!-- navbar top -->
<nav class="navbar navbar-default navbar-fixed-top" role="navigation" id="navbar">
<!-- navbar-header --> <div class="navbar-header">
<a class="navbar-brand" href="index.php"> <img src="assets/img/logo.png" alt="" /> </a>
</div>
<!-- end navbar-header --> <!-- navbar-top-links -->
<ul class="nav navbar-top-links navbar-right"> <!-- main dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-user fa-3x"></i> </a>
<!-- dropdown-messages -->
<ul class="dropdown-menu dropdown-messages"> <li><a href="index.php?menu=postingan"><i class="fa fa-edit fa-fw"></i> Postingan</a> </li>
<li><a href="index.php?menu=profil"><i class="fa fa-user fa-fw"></i> <?php echo "$_SESSION[namauser]"; ?></a></li> <li class="divider"></li>
<li><a href="logout.php"><i class="fa fa-sign-out fa-fw"></i> Logfa-sign-out</a></li>
</ul>
<!-- end dropdown-messages --> </li>
<!-- end main dropdown --> </ul>
<!-- end navbar-top-links --> </nav>
(3)
<!-- navbar side --> <!-- end navbar side --> <?php
switch($_GET['menu']){ default:
?>
<! INDEX --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa- fa-fw"></i> Diskusi Terbaru
</div>
<div class="panel-body"> <div class="list-group"> <?php
$kompromi=mysql_query("SELECT * FROM komprom ORDER BY id_komprom DESC LIMIT 20");
while($k=mysql_fetch_array($kompromi)) {
echo "<a href=index.php?menu=kompromi&id=$k[id_komprom] class=\"list-group-item\" ><i class=\"fa fa-tasks fa-fw\"></i> $k[judul]
<span class=\"pull-right text-muted small\"> <em>$k[tanggal]</em> </span> </a>"; } ?> </div> </div> </div>
<!--End Timeline --> </div>
</div>
<!--- end INDEX --->
<?php break;
case "kompromi": ?>
<! Menu POSTINGAN --->
<script language="javascript"> function validasi(form){
if (form.komentar.value == ""){
alert("Form Komentar Tidak Boleh Kosong."); form.komentar.focus();
(4)
return (false); } return (true); } </script> <?php
$cekterbuka=mysql_query("SELECT * FROM komprom WHERE id_komprom=$_GET[id]");
$ck=mysql_fetch_array($cekterbuka); if($ck[status] == 0) {
//include "list-user.php"; } else { } ?> <div class="row"> <div class="col-komprom-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-comments fa-fw"></i> Ruang Diskusi
</div>
<div class="panel-body"> <?php
$kompromi1=mysql_query("SELECT * FROM komprom WHERE id_komprom=$_GET[id]");
$k=mysql_fetch_array($kompromi1);
$tampilkanjoin=mysql_query("SELECT * FROM `join` WHERE
username_request='$_SESSION[namauser]' AND id_komprom='$_GET[id]'"); $u=mysql_fetch_array($tampilkanjoin);
?>
<div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <?php echo "$k[judul] - Oleh: <b>$k[username]</b>"; ?>
</h4> </div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body"> <?php echo "$k[keterangan]"; ?>
(5)
</div> </div>
<div id="collapseOne" class="panel-collapse collapse in">
</div> </div> <?php
if($k[username] ==
$_SESSION[namauser] OR $u[status_join]==1 OR $k[status]==1 ) {
?>
<?php include "timeline.php"; ?> <form action="aksi.php?menu=komentar" method="post" onSubmit="return validasi(this)"
enctype="multipart/form-data">
<input type="hidden" name="komprom" value="<?php echo "$_GET[id]"; ?>">
<div class="form-group"> <label>Komentar</label>
<textarea class="form-control" id="tinymce_full" rows="3" name="komentar"></textarea>
</div>
<div class="form-group"> <label>Foto</label>
<input type="file" name="fupload"> </div>
<input type="submit" value="Kirim" class="btn btn-primary btn-lg btn-block">
</form> <?php
// Status join 1=Diterima // Status join 2=Ditolak }
else {
$join=mysql_query("SELECT * FROM `join` WHERE username_request='$_SESSION[namauser]' AND id_komprom='$_GET[id]'");
$cari=mysql_fetch_array($join);
if($cari[username_request] == $_SESSION[namauser]) {
echo " ";
if($cari[status_join] == 2)
{
echo "<input type='submit' value='Anda Tidak Diizinkan Untuk Bergabung' class='btn btn-danger btn-lg btn-block'>";
}
else {
echo " ";
(6)
} } else { echo " <form method=post action=aksi.php?menu=join> <input type=hidden name='id_komprom' value='$k[id_komprom]'>
<input type=hidden name='username_join' value='$k[username]'>
<input type=hidden name='username' value='$_SESSION[namauser]'>
<input
type='submit' value='Join' class='btn btn-primary btn-lg btn-block'>
</form>"; } } ?> </div> </div>
<!--End Timeline --> </div>
</div>
<!--- end Menu Postingan ---> <?php break; case "laporkan-obrolan": ?>
<!--- Menu Laporkan Obrolan ---> <script language="javascript">
function validasi(form){
if (form.keterangan.value == ""){
alert("Kotak Laporan Tidak Boleh Kosong."); form.keterangan.focus(); return (false); } return (true); } </script> <div class="row"> <div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-comments fa-fw"></i> Laporkan Komentar
</div>
<div class="panel-body"> <?php
(7)
$kompromi1=mysql_query("SELECT * FROM komprom AS a, komentar AS b WHERE a.id_komprom=b.id_komprom AND b.id_komentar='$_GET[id]' AND a.id_komprom='$_GET[komprom]' ORDER BY b.username");
$k=mysql_fetch_array($kompromi1);
$tampilkanjoin=mysql_query("SELECT * FROM `join` WHERE username_request='$_SESSION[namauser]'");
$u=mysql_fetch_array($tampilkanjoin); ?>
<div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <?php echo "Apa yang salah dengan komentar $k[username]?"; ?>
</h4> </div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body"> <form
action="aksi.php?menu=inputlaporan" method="post" onSubmit="return validasi(this)">
<input type="hidden" name="komprom" value="<?php echo "$_GET[komprom]"; ?>">
<input type="hidden" name="komentar" value="<?php echo "$_GET[id]"; ?>">
<input type="hidden" name="pelapor" value="<?php echo "$_SESSION[namauser]"; ?>">
<input type="hidden" name="dilapor" value="<?php echo "$k[username]"; ?>">
<div class="form-group">
<label>Isikan keterangan dibawah ini untuk dilaporkan kepada Administrator</label>
<textarea class="form-control" id="tinymce_full" rows="3" name="keterangan"></textarea> </div>
<input type="submit" value="Kirim Laporan" class="btn btn-primary btn-lg btn-block">
</form> </div> </div> </div> </div> </div>
<!--End Timeline --> </div>
</div>
<!- end Menu Laporkan Obrolan --->
(8)
<?php break;
case "postingan": ?>
<! Menu POSTINGAN --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-edit fa-fw"></i> Postingan
</div>
<div class="panel-body"> <?php
echo "<a class=\"btn btn-primary btn-lg\" href=?menu=tambahpostingan>
<i class=\"glyphicon glyphicon-plus\"></i> Tambah Postingan
</a> <br><br>
<div class=\"table-responsive\">
<table class=\"table striped bordered table-hover\" id=\"dataTables-example\">
<thead>
<tr><th>No</th><th>Judul</th><th>Tanggal
Posting</th><th>Status Forum</th><th>Pilihan</th></tr></thead> <tbody>";
$tampil=mysql_query("SELECT * FROM komprom WHERE username = '$_SESSION[namauser]' ORDER BY id_komprom DESC");
$no=1; while ($r=mysql_fetch_array($tampil)){ echo "<tr><td>$no</td> <td>$r[judul]</td> <td>$r[tanggal]</td>"; if($r[status]==1) { echo "<td>Terbuka</td>"; } else { echo "<td>Tertutup</td>"; } echo"<td>"; if($r[status]==0) {
echo "<a class=\"btn btn-primary\" href=index.php?menu=lihatjoin&id=$r[id_komprom]> Permintaan join
</a>
<a class=\"btn btn-danger\"
href=aksi.php?menu=hapuspostingan&id=$r[id_komprom]> Delete
(9)
</a>";
} else {
echo "<a class=\"btn btn-danger\"
href=aksi.php?menu=hapuspostingan&id=$r[id_komprom]> Delete </a>"; } echo"</td></tr>"; $no++; } echo "</tbody></table></div>"; ?> </div> </div>
<!--End Timeline --> </div>
</div>
<!--- end Menu Postingan --->
<?php break;
case "tambahpostingan": ?>
<!--- Tambah Postingan --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-edit fa-fw"></i> Postingan
</div>
<div class="panel-body"> <?php
echo "<h2>Tambah Postingan</h2>
<form method=POST action='aksi.php?menu=insertpostingan'> <input type=hidden name=username
value='$_SESSION[namauser]'>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Status Kompromi</label>
<div class='controls'>
<select class=\"form-control\" name='status' required='true'>
<option selected value=\"\">- Pilih Status -</option> <option value='1'>Terbuka</option> <option value='0'>Tertutup</option> </select> </div> </div> <div class=\"form-group\">
(10)
<label class=\"control-label\" for=\"inputSuccess1\">Judul</label>
<input name='judul' type=\"text\" class=\"form-control\" id=\"inputSuccess1\"> </div> <div class=\"form-group\"> <label class=\"control-label\" for=\"inputSuccess1\">Keterangan</label> <textarea class=\"form-control\" name=keterangan></textarea> </div> </table>
<input type=submit name=submit value=Simpan class=\"btn btn-primary btn-sm\">
<input type=button value=Batal onclick=self.history.back() class=\"btn btn-danger btn-sm\"></form>";
?>
</div> </div>
<!--End Timeline --> </div> </div> <!--/.fluid-container--> <script src="vendors/bootstrap-wysihtml5/lib/js/wysihtml5-0.3.0.js"></script> <script src="vendors/jquery-1.9.1.min.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> <script src="vendors/bootstrap-wysihtml5/src/bootstrap-wysihtml5.js"></script> <script src="vendors/ckeditor/ckeditor.js"></script> <script src="vendors/ckeditor/adapters/jquery.js"></script> <script type="text/javascript" src="vendors/tinymce/js/tinymce/tinymce.min.js"></script> <script src="assets/scripts.js"></script> <script> $(function() { // Bootstrap $('#bootstrap-editor').wysihtml5(); // Ckeditor standard
$( 'textarea#ckeditor_standard' ).ckeditor({width:'98%', height: '150px', toolbar: [
{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] }, // Defines toolbar group with name (used to create voice label) and items in 3
subgroups.
[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ], // Defines toolbar group without name.
(11)
{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
]});
$( 'textarea#ckeditor_full' ).ckeditor({width:'98%', height: '150px'});
});
// Tiny MCE tinymce.init({
selector: "#tinymce_basic", plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste" ],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
// Tiny MCE tinymce.init({
selector: "#tinymce_full", plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor" ],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
toolbar2: "print preview media | forecolor backcolor emoticons",
image_advtab: true, templates: [
{title: 'Test template 1', content: 'Test 1'}, {title: 'Test template 2', content: 'Test 2'} ]
});
</script>
<!---- end Tambah Postingan ---> <?php break; case "lihatjoin": ?>
(12)
<!--- Menu Lihat Join --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-edit fa-fw"></i> Daftar Join </div> <div class="panel-body"> <?php echo " <div class=\"table-responsive\">
<table class=\"table striped bordered table-hover\" id=\"dataTables-example\">
<thead>
<tr><th>No</th><th>Nama</th><th>Pada Judul</th><th>Pilihan</th></tr></thead>
<tbody>";
$tampil=mysql_query("SELECT * FROM `join` a, komprom b WHERE a.username_join = '$_SESSION[namauser]' AND
a.id_komprom=b.id_komprom AND a.status_join='0'"); $no=1; while ($r=mysql_fetch_array($tampil)){ echo "<tr><td>$no</td> <td>$r[username_request]</td> <td>$r[judul]</td> <td>
<a class=\"btn btn-primary\"
href=aksi.php?menu=requestjoin&status=1&id=$r[id_join]> Izinkan
</a>
<a class=\"btn btn-danger\"
href=aksi.php?menu=requestjoin&status=2&id=$r[id_join]> Tolak </a></td></tr>"; $no++; } echo "</tbody></table></div>"; ?> </div> </div>
<!--End Timeline --> </div>
</div>
<! end Lihat Join --->
<?php break;
case "profil": ?>
(13)
<! Menu PROFIL --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-user fa-fw"></i> Profil </div>
<div class="panel-body"> <script language="javascript">
function validasi(form){
if (form.password.value == ""){ alert("Password Wajib Diisi."); form.password.focus(); return (false); } return (true); } </script> <?php
$tampil=mysql_query("SELECT * FROM users WHERE username = '$_SESSION[namauser]'");
$r=mysql_fetch_array($tampil); echo "
<form method=POST action='aksi.php?menu=updateprofil' onSubmit=\"return validasi(this)\" enctype=\"multipart/form-data\">
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Username</label>
<input name='username' value= '$r[username]' type=\"text\" class=\"form-control\" id=\"inputSuccess1\" readonly> </div>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Nama Lengkap</label>
<input name='nama' value= '$r[nama_depan]' type=\"text\" class=\"form-control\" id=\"inputSuccess1\"> </div>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">E-mail</label>
<input name='email' value= '$r[email]' type=\"text\" class=\"form-control\" id=\"inputSuccess1\"> </div>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Foto</label><br>
";
if($r[foto] == '') {
echo "<img src='assets/img/user.jpg'>"; }
(14)
echo "<img src='assets/img/$r[foto]' width=100px>";
}
echo "<input type=file name=fupload></div> <div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Password (Wajib Diisi)</label>
<input name='password' type=\"password\" class=\"form-control\" id=\"inputSuccess1\">
</div>
<input type=submit name=submit value=Simpan class=\"btn btn-primary btn-sm\">
<input type=button value=Batal onclick=self.history.back() class=\"btn btn-danger btn-sm\"></form>";
?>
</div> </div>
<!--End Timeline --> </div>
</div>
<!-- end Menu PROFIL ---> <?php break; } ?> </div>
<!-- end wrapper -->
<!-- Core Scripts - Include with every page -->
<script src="assets/plugins/jquery-1.10.2.js"></script> <script src="assets/plugins/bootstrap/bootstrap.min.js"></script> <script src="assets/plugins/metisMenu/jquery.metisMenu.js"></script> <script src="assets/plugins/pace/pace.js"></script> <script src="assets/scripts/siminta.js"></script> <!-- Page-Level Plugin Scripts-->
<script src="assets/plugins/morris/raphael-2.1.0.min.js"></script> <script src="assets/plugins/morris/morris.js"></script> <script src="assets/scripts/dashboard-demo.js"></script> </body> </html> <?php } } } ?>
(15)
Admin.php <?php error_reporting(0); include "config/koneksi.php"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Forum Diskusi - admin</title>
<!-- Core CSS - Include with every page -->
<link href="assets/plugins/bootstrap/bootstrap.css" rel="stylesheet" /> <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" /> <link href="assets/plugins/pace/pace-theme-big-counter.css" rel="stylesheet" />
<link href="assets/css/style.css" rel="stylesheet" /> <link href="assets/css/main-style.css" rel="stylesheet" /> <link rel="shortcut icon" href="#.png">
<!-- Page-Level CSS -->
<link href="assets/plugins/morris/morris-0.4.3.min.css" rel="stylesheet" />
<link href="assets/plugins/timeline/timeline.css" rel="stylesheet" />
<script type="text/javascript" src="jquery-min.js"></script> <script type="text/javascript">
var auto_refresh = setInterval( function () { $("#refresh").load("timeline.php").fadeIn("slow"); }, 1600); </script> <script src="js/jquery.js"></script> <script src="js/user.js"></script> </head> <body>
<!-- wrapper --> <div id="wrapper"> <!-- navbar top -->
<nav class="navbar navbar-default navbar-fixed-top" role="navigation" id="navbar">
<!-- navbar-header -->
<div class="navbar-header">
<a class="navbar-brand" href="index.php"> <img src="assets/img/logo.png" alt="" /> </a>
</div>
(16)
<!-- navbar-top-links -->
<ul class="nav navbar-top-links navbar-right"> <!-- main dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-user fa-3x"></i> </a>
<!-- dropdown-messages -->
<ul class="dropdown-menu dropdown-messages"> <li><a href="admin.php?menu=users"><i class="fa fa-edit fa-fw"></i> Daftar User</a> </li>
<li class="divider"></li>
<li><a href="logout.php"><i class="fa fa-sign-out fa-fw"></i> Logfa-sign-out</a></li>
</ul>
<!-- end dropdown-messages --> </li>
<!-- end main dropdown --> </ul>
<!-- end navbar-top-links --> </nav>
<!-- end navbar top --> <!-- navbar side --> <!-- end navbar side --> <?php
switch($_GET['menu']){ default:
?>
<! INDEX --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-tasks fa-fw"></i> Diskusi Terpopuler
</div>
<div class="panel-body"> <div class="list-group"> <?php
$kompromi=mysql_query("SELECT * FROM laporan WHERE status='0' ORDER BY id_laporan DESC LIMIT 20");
$hitung=mysql_num_rows($kompromi); if($hitung == '0') {
echo "Tidak Ada Laporan"; }
else {
(17)
echo "<a
href=admin.php?menu=laporan&komprom=$k[id_komprom]&komentar=$k[id_ko mentar]&id=$k[id_laporan] class=\"list-group-item\" ><i class=\"fa fa-tasks fa-fw\"></i> $k[pelapor] Melaporkan Komentar $k[dilapor]
<span class=\"pull-right text-muted small\"> <em>$k[tanggal]</em> </span> </a>"; } } ?> </div> </div> </div>
<!--End Timeline --> </div>
</div>
<!--- end INDEX --->
<?php break;
case "laporan": ?>
<!- Menu Laporan --->
<script language="javascript"> function validasi(form){
if (form.komentar.value == ""){
alert("Form Komentar Tidak Boleh Kosong."); form.komentar.focus(); return (false); } return (true); } </script> <div class="row"> <div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-comments fa-fw"></i> Laporan
</div>
<div class="panel-body"> <?php
$kompromi1=mysql_query("SELECT * FROM laporan AS a, komprom AS b, komentar AS c WHERE
a.id_komprom=b.id_komprom AND a.id_komentar=c.id_komentar AND a.id_komprom='$_GET[komprom]' AND a.id_komentar='$_GET[komentar]' AND a.id_laporan='$_GET[id]'");
(18)
$tampilkanjoin=mysql_query("SELECT * FROM `join` WHERE username_request='$_SESSION[namauser]'");
$u=mysql_fetch_array($tampilkanjoin); ?>
<div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <?php echo "$k[pelapor] Melaporkan Komentar $k[dilapor]"; ?>
</h4> </div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body"> <?php include "config/ClassGost.php"; $data = "$k[komentar]";
$datajudul = "$k[judul]";
$key = "Kriptografi-Metoda-GOST-Ardito!!"; $gost=new ClassGost; //$data_encoded=$gost->Encode($data, $key); $datajudul_encoded=$gost->Encode($datajudul, $key); $data_encoded=$gost->Encode($data, $key); echo " <form method=POST action='aksi.php?menu=nonaktiflaporan'>
<input type=hidden name=dilapor value='$k[dilapor]'> <input type=hidden name=komprom
value='$_GET[komprom]'>
<input type=hidden name=komentar value='$_GET[komentar]'>
<input type=hidden name=laporan value='$_GET[id]'>
Pada diskusi:<br>
<b>$k[judul]</b><br><br>
(19)
<b>$k[komentar]</b><br><br>"; if($c[gambar]!='') {
}
else {
echo "Gambar:<br>";
echo "<img src='gambar/$k[gambar]' width='30%'><br><br>";
}
echo "
Laporan $k[pelapor]:<br> <b>$k[laporan]</b><br><br>
<input type=submit name=submit value='Nonaktifkan Komentar' class=\"btn btn-primary btn-sm\">
<input type=button value=Batal onclick=self.history.back() class=\"btn btn-danger btn-sm\"></form>";?>
</div> </div> </div> </div>
</div>
<!--End Timeline --> </div>
</div>
<!--- end Menu Postingan ---> <?php
break;
case "users": ?>
<! Menu Users --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-edit fa-fw"></i> Daftar User Diskusi </div> <div class="panel-body"> <?php echo " <div class=\"table-responsive\">
<table class=\"table striped bordered table-hover\" id=\"dataTables-example\">
<thead>
<tr><th>No</th><th>Nama
Lengkap</th><th>Username</th><th>E-Mail</th></thead> <tbody>";
$tampil=mysql_query("SELECT * FROM tbl_users WHERE level<>'admin' ORDER BY id_users");
$no=1;
(20)
echo "<tr><td>$no</td> <td>$r[nama_depan]</td> <td>$r[username]</td> <td>$r[email]</td> </tr>"; $no++; } echo "</tbody></table></div>"; ?> </div> </div>
<!--End Timeline --> </div>
</div>
<!--- end Menu Postingan --->
<?php break;
case "tambahpostingan": ?>
<!--- Tambah Postingan --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-edit fa-fw"></i> Postingan
</div>
<div class="panel-body"> <?php
echo "<h2>Tambah Postingan</h2>
<form method=POST action='aksi.php?menu=insertpostingan'> <input type=hidden name=username
value='$_SESSION[namauser]'> <div class=\"form-group\"> <label class=\"control-label\" for=\"inputSuccess1\">Status Kompromi</label> <div class='controls'> <select class=\"form-control\" name='status'>
<option selected value='2'>- Pilih Status -</option> <option value='1'>Terbuka</option> <option value='0'>Tertutup</option> </select> </div> </div> <div class=\"form-group\"> <label class=\"control-label\" for=\"inputSuccess1\">Judul</label>
<input name='judul' type=\"text\" class=\"form-control\" id=\"inputSuccess1\">
(21)
<div class=\"form-group\"> <label class=\"control-label\" for=\"inputSuccess1\">Keterangan</label> <textarea class=\"form-control\" id=\"tinymce_full\" name=keterangan></textarea> </div> </table>
<input type=submit name=submit value=Simpan class=\"btn btn-primary btn-sm\">
<input type=button value=Batal onclick=self.history.back() class=\"btn btn-danger btn-sm\"></form>";
?>
</div> </div>
<!--End Timeline --> </div> </div> <!--/.fluid-container--> <script src="vendors/bootstrap-wysihtml5/lib/js/wysihtml5-0.3.0.js"></script> <script src="vendors/jquery-1.9.1.min.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> <script src="vendors/bootstrap-wysihtml5/src/bootstrap-wysihtml5.js"></script> <script src="vendors/ckeditor/ckeditor.js"></script> <script src="vendors/ckeditor/adapters/jquery.js"></script> <script type="text/javascript" src="vendors/tinymce/js/tinymce/tinymce.min.js"></script> <script src="assets/scripts.js"></script> <script> $(function() { // Bootstrap $('#bootstrap-editor').wysihtml5(); // Ckeditor standard
$( 'textarea#ckeditor_standard' ).ckeditor({width:'98%', height: '150px', toolbar: [
{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] }, // Defines toolbar group with name (used to create voice label) and items in 3
subgroups.
[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ], // Defines toolbar group without name.
{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
]});
$( 'textarea#ckeditor_full' ).ckeditor({width:'98%', height: '150px'});
});
// Tiny MCE tinymce.init({
selector: "#tinymce_basic", plugins: [
(22)
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste" ],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
// Tiny MCE tinymce.init({
selector: "#tinymce_full", plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor" ],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
toolbar2: "print preview media | forecolor backcolor emoticons",
image_advtab: true, templates: [
{title: 'Test template 1', content: 'Test 1'}, {title: 'Test template 2', content: 'Test 2'} ]
});
</script>
<!---- end Tambah Postingan ---> <?php break; case "lihatjoin": ?>
<!--- Menu Lihat Join --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-edit fa-fw"></i> Daftar Join
</div>
<div class="panel-body"> <?php
(23)
<div class=\"table-responsive\">
<table class=\"table striped bordered table-hover\" id=\"dataTables-example\">
<thead>
<tr><th>No</th><th>Nama</th><th>Pada Judul</th><th>Pilihan</th></tr></thead>
<tbody>";
$tampil=mysql_query("SELECT * FROM `join` a, komprom b WHERE a.username_join = '$_SESSION[namauser]' AND
a.id_komprom=b.id_komprom AND a.status_join='0'"); $no=1; while ($r=mysql_fetch_array($tampil)){ echo "<tr><td>$no</td> <td>$r[username_request]</td> <td>$r[judul]</td> <td>
<a class=\"btn btn-primary\"
href=aksi.php?menu=requestjoin&status=1&id=$r[id_komprom]> Izinkan
</a>
<a class=\"btn btn-danger\"
href=aksi.php?menu=requestjoin&status=2&id=$r[id_komprom]> Tolak </a></td></tr>"; $no++; } echo "</tbody></table></div>"; ?> </div> </div>
<!--End Timeline --> </div>
</div>
<! end Lihat Join --->
<?php break;
case "profil": ?>
<! Menu PROFIL --->
<div class="row">
<div class="col-lg-4"> <!--Timeline -->
<div class="panel panel-primary"> <div class="panel-heading">
<i class="fa fa-user fa-fw"></i> Profil </div>
<div class="panel-body"> <script language="javascript">
function validasi(form){
if (form.password.value == ""){ alert("Password Wajib Diisi."); form.password.focus();
(24)
return (false); } return (true); } </script> <?php
$tampil=mysql_query("SELECT * FROM users WHERE username = '$_SESSION[namauser]'");
$r=mysql_fetch_array($tampil); echo "
<form method=POST action='aksi.php?menu=updateprofil' onSubmit=\"return validasi(this)\" enctype=\"multipart/form-data\">
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Username</label>
<input name='username' value= '$r[username]' type=\"text\" class=\"form-control\" id=\"inputSuccess1\" readonly> </div>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Nama Lengkap</label>
<input name='nama' value= '$r[nama_depan]' type=\"text\" class=\"form-control\" id=\"inputSuccess1\"> </div>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">E-mail</label>
<input name='email' value= '$r[email]' type=\"text\" class=\"form-control\" id=\"inputSuccess1\"> </div>
<div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Foto</label><br>
";
if($r[foto] == '') {
echo "<img src='assets/img/user.jpg'>"; }
else {
echo "<img src='assets/img/$r[foto]' width=100px>";
}
echo "<input type=file name=fupload></div> <div class=\"form-group\">
<label class=\"control-label\" for=\"inputSuccess1\">Password (Wajib Diisi)</label>
<input name='password' type=\"password\" class=\"form-control\" id=\"inputSuccess1\">
</div>
<input type=submit name=submit value=Simpan class=\"btn btn-primary btn-sm\">
<input type=button value=Batal onclick=self.history.back() class=\"btn btn-danger btn-sm\"></form>";
(25)
</div> </div>
<!--End Timeline --> </div>
</div>
<!-- end Menu PROFIL --->
<?php break; } ?>
</div>
<!-- end wrapper -->
<!-- Core Scripts - Include with every page -->
<script src="assets/plugins/jquery-1.10.2.js"></script> <script
src="assets/plugins/bootstrap/bootstrap.min.js"></script> <script
src="assets/plugins/metisMenu/jquery.metisMenu.js"></script> <script src="assets/plugins/pace/pace.js"></script> <script src="assets/scripts/siminta.js"></script> <!-- Page-Level Plugin Scripts-->
<script src="assets/plugins/morris/raphael-2.1.0.min.js"></script>
<script src="assets/plugins/morris/morris.js"></script> <script src="assets/scripts/dashboard-demo.js"></script> </body>
(26)
Login.php <?php session_start(); error_reporting(0); include 'config/koneksi.php'; if(!empty($_POST)){
$username = $_POST['username']; $password = md5($_POST['password']);
$sql = "select * from tbl_users where username='".$username."' and password='".$password."'";
#echo $sql."<br />";
$query = mysql_query($sql) or die (mysql_error());
// pengecekan query valid atau tidak if($query){
$row = mysql_num_rows($query); $r = mysql_fetch_array($query);
// jika $row > 0 atau username dan password ditemukan if($row > 0){
session_start();
include "timeout.php";
$_SESSION[namauser] = $r[username]; $_SESSION[namalengkap] = $r[nama_depan]; $_SESSION[passuser] = $r[password]; $_SESSION[leveluser] = $r[level];
// session timeout $_SESSION[login] = 1; timer();
$sid_lama = session_id(); session_regenerate_id(); $sid_baru = session_id();
mysql_query("UPDATE tbl_users SET id_session='$sid_baru' WHERE username='$username'");
header('location:index.php'); }
else{
$error="<br>Username Atau Password Salah"; } } } ?> <!DOCTYPE html> <html>
(27)
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Forum DIskusi - Mari Berdiskusi Disini</title> <!-- Core CSS - Include with every page -->
<link href="assets/plugins/bootstrap/bootstrap.css" rel="stylesheet" /> <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" /> <link href="assets/plugins/pace/pace-theme-big-counter.css" rel="stylesheet" />
<link href="assets/css/style.css" rel="stylesheet" /> <link href="assets/css/main-style.css" rel="stylesheet" /> <link rel="shortcut icon" href="">
<!-- Page-Level CSS -->
<link href="assets/plugins/morris/morris-0.4.3.min.css" rel="stylesheet" /> </head> <body class="body-Login-back"> <div class="container"> <div class="row">
<div class="col-md-4 col-md-offset-4 text-center logo-margin ">
<a href="index.php"><img src="assets/img/logo.png" alt=""/></a>
</div>
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-default"> <div class="panel-heading">
<h3 class="panel-title">Please Sign In</h3> </div>
<div class="panel-body">
<form role="form" method="post" action=""> <fieldset>
<div class="form-group">
<input class="form-control" placeholder="ID Login Anda" name="username" type="text" autofocus required autocomplete="off">
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" required> </div>
Belum punya akun? Klik <a href="registrasi.php">Disini</a> Untuk Registrasi.<br><br>
<!-- Change this to a button or input when using this as a form -->
<input type="submit" name="submit" value="Login" class="btn btn-lg btn-success btn-block">
(28)
</fieldset> </form>
<?php echo "<div align='center'><font color='#ff0000'><b>$error</b></font></div>"; ?>
</div> </div> </div> </div> </div>
<!-- Core Scripts - Include with every page -->
<script src="assets/plugins/jquery-1.10.2.js"></script> <script
src="assets/plugins/bootstrap/bootstrap.min.js"></script> <script
src="assets/plugins/metisMenu/jquery.metisMenu.js"></script> </body>
</html>
Cek_login.php
<?php
include "config/koneksi.php"; function anti_injection($data){ $filter =
mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($d ata,ENT_QUOTES))));
return $filter; }
$username = anti_injection($_POST['username']); $pass = anti_injection(md5($_POST['password']));
(29)
$login=mysql_query("SELECT * FROM tbl_users 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();
include "timeout.php";
$_SESSION[namauser] = $r[username]; $_SESSION[namalengkap] = $r[nama_depan]; $_SESSION[passuser] = $r[password]; $_SESSION[leveluser] = $r[level];
// session timeout $_SESSION[login] = 1; timer();
$sid_lama = session_id();
session_regenerate_id();
$sid_baru = session_id();
mysql_query("UPDATE tbl_users SET id_session='$sid_baru' WHERE username='$username'");
(30)
} else{ $error="
<link href=config/adminstyle.css rel=stylesheet type=text/css>
<center><font face='tahoma' size='3'><b>LOGIN GAGAL ! </b></font><br><hr><br>
<font size='8' color='red' face='comic sans ms'><blink>Username atau Password Anda tidak benar !!!</blink></font><br>
Atau account Anda sedang diblokir.<br>
<a href=login.php><b>ULANGI LAGI</b></a></center>
<div align='center'> </div>";
} ?>
(31)
Logout.php <?php session_start(); session_destroy(); error_reporting(0); include "config/koneksi.php"; header('location:login.php'); ?> Registrasi.php <!DOCTYPE html> <html> <head> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KomproM.NET - Kompromikan Semuanya Disini</title> <!-- Core CSS - Include with every page -->
<link href="assets/plugins/bootstrap/bootstrap.css" rel="stylesheet" /> <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" /> <link href="assets/plugins/pace/pace-theme-big-counter.css" rel="stylesheet" />
<link href="assets/css/style.css" rel="stylesheet" /> <link href="assets/css/main-style.css" rel="stylesheet" /> <link rel="shortcut icon" href="icon.png">
<!-- Page-Level CSS -->
<link href="assets/plugins/morris/morris-0.4.3.min.css" rel="stylesheet" /> </head> <body class="body-Login-back"> <div class="container"> <div class="row">
<div class="col-md-4 col-md-offset-4 text-center logo-margin ">
<a href="index.php"><img src="assets/img/logo.png" alt=""/></a>
</div>
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-default"> <div class="panel-heading">
<h3 class="panel-title">Form Registrasi</h3> </div>
<div class="panel-body">
<form role="form" method="post" action="submit-register.php">
(32)
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="Nama Lengkap" name="nama" autofocus required> </div>
<div class="form-group">
<input class="form-control" placeholder="E-mail" name="email" autofocus required>
</div>
<div class="form-group">
<input class="form-control" placeholder="ID Komprom" name="username" autofocus required> </div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" required> </div>
<!-- Change this to a button or input when using this as a form -->
<input type="submit" value="Daftar" class="btn btn-lg btn-success btn-block">
</fieldset> </form>
</div> </div> </div> </div> </div>
<!-- Core Scripts - Include with every page -->
<script src="assets/plugins/jquery-1.10.2.js"></script> <script
src="assets/plugins/bootstrap/bootstrap.min.js"></script> <script
src="assets/plugins/metisMenu/jquery.metisMenu.js"></script> </body>
(33)
Aksi.php
<?php
session_start(); error_reporting(0);
include "config/koneksi.php"; include "config/fungsi_thumb.php"; include('config/ClassGost.php');
$key = "Kriptografi-Metoda-GOST-Ardito!!"; $tgl=date("Y-m-d");
$menu=$_GET[menu];
if($menu=='insertpostingan') {
mysql_query("INSERT INTO komprom (username,
judul, keterangan, tanggal, status)
VALUES ('$_POST[username]',
'$_POST[judul]',
'$_POST[keterangan]',
'$tgl',
'$_POST[status]')");
header('location:index.php?menu=postingan'); }
(34)
elseif($menu=='hapuspostingan') {
mysql_query("DELETE FROM komprom WHERE id_komprom = '$_GET[id]'"); header('location:index.php?menu=postingan');
}
elseif($menu=='komentar') { $tgl=date("Y-m-d");
$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; if (empty($lokasi_file)){
mysql_query("INSERT INTO komentar (id_komprom,
username, komentar, tanggal)
VALUES ('$_POST[komprom]',
'$_SESSION[namauser]',
'$_POST[komentar]',
'$tgl')"); }
else {
UploadGambar($nama_file_unik);
(35)
username, komentar, tanggal, gambar)
VALUES ('$_POST[komprom]',
'$_SESSION[namauser]',
'$_POST[komentar]',
'$tgl',
'$nama_file_unik')");
}
header('location:index.php?menu=kompromi&id='.$_POST[komprom]); }
// Update Profil
elseif ($menu == 'updateprofil'){
$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; $pass_baru=md5($_POST[password]); if (empty($lokasi_file)){
mysql_query("UPDATE users SET
(36)
email='$_POST[email]',
password='$pass_baru'
WHERE username = '$_POST[username]'"); }
else{
UploadImage($nama_file_unik); mysql_query("UPDATE users SET
nama_depan='$_POST[nama]',
email='$_POST[email]',
password='$pass_baru',
foto ='$nama_file_unik'
WHERE username = '$_POST[username]'"); }
header('location:index.php?menu=profil'); }
elseif ($menu=='join') {
mysql_query("INSERT INTO `join`(`id_komprom`, `username_join`, `username_request`)
VALUES ('$_POST[id_komprom]',
'$_POST[username_join]',
(37)
header('location:index.php?menu=kompromi&id='.$_POST[id_komprom]); }
elseif ($menu=='requestjoin') {
mysql_query("UPDATE `join` SET status_join='$_GET[status]' WHERE id_join='$_GET[id]'");
header('location:index.php?menu=postingan'); }
elseif ($menu=='inputlaporan') {
mysql_query("INSERT INTO `laporan`
(`id_komentar`,`id_komprom`,`pelapor`,`dilapor`,`laporan`)
VALUES ('$_POST[komentar]',
'$_POST[komprom]',
'$_POST[pelapor]', '$_POST[dilapor]',
'$_POST[keterangan]')");
echo "<script>alert('Komentar $_POST[dilapor] Telah Dilaporkan Kepada Administrator'); window.location = 'index.php' </script>"; }
elseif ($menu=='nonaktiflaporan') {
mysql_query("UPDATE laporan SET status = '1' WHERE
id_komprom='$_POST[komprom]' AND id_komentar='$_POST[komentar]' AND id_laporan='$_POST[laporan]'");
mysql_query("UPDATE komentar SET status = '1' WHERE
id_komprom='$_POST[komprom]' AND id_komentar='$_POST[komentar]'"); echo "<script>alert('Komentar $_POST[dilapor] Telah Dilaporkan Di Nonaktifkan'); window.location = 'admin.php' </script>";
(38)
} ?>
(39)
Timeline.php <ul class="timeline"> <?php session_start(); error_reporting(0); include "config/koneksi.php"; include "config/fungsi_indotgl.php"; $panggil =
mysql_query("SELECT a.username, a.id_komentar, a.komentar, a.tanggal, a.id_komprom, a.gambar, b.username, b.foto, a.status
FROM komentar AS a, tbl_users AS b
WHERE a.username = b.username AND a.id_komprom = '$_GET[id]' ORDER BY a.id_komentar");
$no=1; while($c=mysql_fetch_array($panggil)) {
$tgl=tgl_indo($c[tanggal]);
if(($no % 2) == 0){ $li = "<li class='timeline-inverted'>";
} else{
$li = "<li>"; }
?>
<?php echo "$li"; ?>
<div class="timeline-badge"> <?php if($c[foto] == '') { echo "<img src='assets/img/user.jpg' class='gambar'>"; } else { echo "<img src='assets/img/$c[foto]' class='gambar'>";
(40)
</div>
<div class="timeline-panel"> <?php
if($c[username] <> '$_SESSION[namauser]' AND $c[status] == '1') {
} else { ?> <div class="box-tools pull-right"> <div class="btn-group">
<a href="#" data-toggle="dropdown"><i class="fa fa-sort-down"></i></a>
<ul class="dropdown-menu" role="menu"> <li><a href="<?php echo "?menu=laporkan-obrolan&komprom=$c[id_komprom]&id=$c[id_komentar]"; ?>">Laporkan Komentar</a></li> </ul> </div> </div> <?php } ?> <div class="timeline-heading"> <h4 class="timeline-title"><?php echo "$c[username]"; ?></h4>
<p>
<small class="text-muted"><i class="fa fa-time"></i><?php echo "$tgl"; ?></small> </p>
</div>
<div class="timeline-body"> <?php
if($c[status] == '1') {
echo "<font color='#ff0000'>Komentar Ini Telah Di Nonaktifkan Oleh Administrator.</font>";
} else {
echo "$c[komentar] <br>"; if($c[gambar]!='') {
echo "<img src='gambar/$c[gambar]' width='30%'>"; } } ?> </div> </div> </li>
(41)
<?php
$no++; } ?> </ul>
(42)
DAFTAR PUSTAKA
Alexander F.K. Sibero, 2011, Kitab Suci Web Programing, MediaKom,
Yogyakarta.
Arief M Rudianto. 2011. Pemrograman Web Dinamis menggunakan PHP
dan MySQL.C.V ANDI OFFSET.Yogyakarta.
Indrajani. 2011. Perancangan Basis Data All in 1 . J a k a r t a : A l e x
M e d i a Komputindo.
I Putu Heryawan, Keamanan Data. Bali, 2010.
Jogianto HM, Analisis dan Desain, Andi Yogyakarta, 2010
Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting.
Rinaldi Munir : Analisis Perbandingan Algoritma AES dan GOST. Penerbit
Yudistira, Bandung. 2012.
Rinaldi Munir : Kriptografi. Penerbit Informatika, Bandung. 2010.
(43)
16
BAB 3
ANALISA DAN PERANCANGAN SISTEM
3.1
Analisa Sistem
Analisa sistem merupakan kegiatan penguraian suatu sistem yang utuh dan
nyata ke dalam bagian-bagian yang bertujuan untuk mengidentifikasikan serta
mengevaluasi masalah-masalah yang muncul, hambatan-hambatan yang
mungkin terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga
mengarah kepada suatu solusi untuk perbaikan maupun pengembangan ke
arah yang lebih baik dan sesuai dengan kebutuhan serta perkembangan
teknologi yang diantaranya membahas mengenai sistem yang terdapat dalam
sistem yang telah diterapkan saat ini, baik dari segi kelebihan dan
kekurangannya.
3.1.1
Kelemahan Sistem
Pada sistem yang dibangun, terdapat kelemahan dan untuk selanjutnya dapat
dijadikan referensi penulis dalam pengembangan sistem lanjutan serta untuk
penyempurnaan kinerja sistem. Kelemahan tersebut terdapat pada database
yang dapat mengalami over-data pada field tertentu pada bagian hasil enkripsi
dikarenakan jumlah karakter yang sangat banyak melebihi batas/kapasitas
maksimal karakter.
(44)
17
3.1.2
Analisa Keunggulan Sistem
Sistem tidak hanya terdapat kelemahan, akan tetapi Analisa keunggulan sistem
yang akan dibangun adalah, dengan adanya sistem enkripsi pada setiap
komentar diskusi, para pengguna/anggota diskusi akan dapat lebih tenang
dalam penyampaian informasi pada dunia maya, dikarenakan apabila terjadi
sesuatu seperti tindakan kejahatan pada basis data (hack, crack dan
sebagainya), maka setiap komentar diskusi tidak akan dapat didefinisikan oleh
para pelaku tersebut. Hasil enkripsi data tersimpan dengan baik pada database
yang terhubung pada sistem tersebut.
3.2
Rancangan Penelitian
Sebelum membuat program aplikasi, terlebih dahulu dilakukan proses
perancangan sistem untuk memodelkan perancangan yang telah ditetapkan
berdasarkan analisa, sehingga menghasilkan informasi yang dibutuhkan.
1.
Data Flow Diagram Konteks
Context diagram merupakan diagram pertama dalam rangkaian suatu DFD,
yang menggambarkan entitas-entitas yang berhubungan dengan suatu sistem.
Pada context diagram rancang bangun sistem diskusi yang akan dibangun
terdapat 2 external entity, yaitu user/anggota dan admin. Entity tersebut
memberikan input dan oleh sistem akan diberikan keluaran atau output yang
berupa data atau yang lainnya.
Context diagram pada aplikasi forum diskusi dapat dilihat pada gambar 3.3
dibawah ini :
(45)
18
Gambar 3.3 Diagram Konteks Aplikasi Forum Diskusi Online
2.
Data Flow Diagram Level 0
Setelah context diagram maka digambarkan diagram yang lebih rinci, yang
disebut dengan DFD Level 0. DFD level 0 membentuk semua aliran proses
input dan output yang ada pada context diagram sebelumnya. Tiap-tiap proses
tersebut akan membuat hubungan yang saling terkait sehingga membentuk
aliran proses yang menggambarkan proses dari rancang bangun sistem diskusi
online.
DFD Level 0 pada aplikasi diskusi dapat dilihat pada gambar 3.4. dibawah
ini :
(46)
19
Gambar 3.4 DFD Level 0 Aplikasi Forum Diskusi Online
3.3
Rancangan Database
Pada pembuatan aplikasi ini, penulis menggunakan MySql sebagai pusat basis
data. Struktur database dapat dilihat pada sub judul berikut.
(47)
20
3.3.1 Struktur database
Database terdiri dari beberapa tabel yang di dalamnya terdapat nama-nama
field yang telah ditentukan, beserta primary key nya. Berikut struktur tabel
dari aplikasi:
a.
Tabel join
Tabel join adalah tabel yang berisikan status join username yang dapat
dilihat pada tabel 3.1 dibawah ini :
Tabel 3.1 Tabel join
Field
Type
Null
Default
Extra
id_join
Int(10)
No
None
Auto Increment
Id_komprom
Int(10)
No
None
Username_join
Varchar(100)
No
None
Username_request
Varchar(100)
No
None
Status_join
Int(2)
No
None
b.
Tabel komentar
Tabel komentar adalah tabel yang berisikan komentar yang di kirim
oleh user yang dapat dilihat pada tabel 3.2 dibawah ini :
Tabel 3.2 Tabel komentar
Field
Type
Null
Default
Extra
id_komentar
Int(10)
No
None
Auto Increment
id_komprom
Int(10)
No
None
(48)
21
Username
Varchar(100)
No
None
Komentar
Text
No
None
Tanggal
Date
No
None
Status
Int(2)
No
None
Gambar
Varchar(250)
No
None
c.
Tabel Diskusi
Tabel diskusi adalah tabel yang berisikan topik postingan yang dapat
dilihat pada tabel 3.3 dibawah ini :
Tabel 3.3 Tabel Diskusi
Field
Type
Null
Default
Extra
Id_komprom
Int(10)
No
None
Username
Varchar(100)
No
None
Judul
text
No
None
Keterangan
Text
No
None
Tanggal
Date
No
None
Status
Int(2)
No
None
d.
Tabel users
Tabel users adalah tabel yang berisikan daftar user/pengguna dari aplikasi
ini yang dapat dilihat pada tabel 3.4 dibawah ini :
(49)
22
Tabel 3.4 Tabel users
Field
Type
Null
Default
Extra
Id_users
Int(5)
No
None
Auto Increment
Username
Varchar(50)
No
None
Password
Varchar(50)
No
None
Nama_depan
Varchar(50)
No
None
Varchar(100)
No
None
Foto
Varchar(100)
No
None
Level
Varchar(20)
No
None
Id_session
Varchar(100)
No
None
e.
Tabel Laporan
tabel laporan adalah tabel yang berisi laporan komentar yang dilaporkan user
kepada admin yang dapat dilihat pada tabel 3.5.
Tabel 3.5 Tabel Laporan
Field
Type
Null
Default
Extra
Id_laporan
Int(10)
No
None
Auto Increment
Id_komentar
Int(10)
No
None
Id_komprom
Int(10)
No
None
Pelapor
Varchar(100)
No
None
dilapor
Varchar(100)
No
None
Laporan
Text
No
None
(50)
23
Status
Int(2)
No
None
3.3.2 Relasi Tabel
Relasi antar tabel dalam sistem ini digunakan untuk memperlihatkan
hubungan dari tiap-tiap tabel yang ada. Pembuatan relasi antar tabel dapat dilihat
pada gambar 3.5 dibawah ini :
(51)
24
3.4
Flowchart
Flowchart merupakan bagan alir sistem yang menunjukkan atau menggambarkan
rangkaian kegiatan proses atau langkah-langkah proses dari program dari awal
sampai akhir.
1.
Flowchart Login
Flowchart login dapat dilihat pada gambar 3.6 berikut ini :
(52)
25
2.
Flowchart Admin
Flowchart admin dapat dilihat pada gambar 3.7 dibawah ini :
Gambar 3.7 Flowchart Admin
3.
Flowchart Menu Admin
Flowchart menu admin dapa dilihat pada gambar 3.8 dibawah ini :
(53)
26
4.
Flowchart Laporan Komentar
Flowchart laporan komentar dapat dilihat pada gambar 3.9 dibawah ini :
Gambar 3.9 Flowchart Laporan Komentar
5.
Flowchart Menu Utama User
Flowchart menu utama user dapat dilihat pada gambar 3.10 dibawah ini :
(54)
27
6.
Flowchart Sub Menu User
Flowchart sub menu utama user dapat dilihat pada gambar 3.11 berikut ini:
(55)
28
7.
Flowchart Postingan
Flowchart postingan dapat dilihat pada gambar 3.12 di bawah ini :
(56)
29
8.
Flowchart Profil User
Flowchart profil user dapat dilihat pada gambar 3.13 di bawah ini:
(57)
30
9.
Flowchart Diskusi
Flowchart diskusi dapat dilihat pada gambar 3.14 di bawah ini :
(58)
31
3.5
Rancangan Tampilan Aplikasi
Dalam pembuatan aplikasi ini diperlukan desain antar muka (interface). Desain
antar muka harus dilakukan karena mempunyai bagian yang berhubungan
langsung dengan user, yaitu semua hal yang dilihat oleh user. Adapun rancangan
tampilan aplikasi seperti yang tertera pada gambar pada halaman berikut:
1.
Rancangan Tampilan Login
Rancangan tampilan login dapat dilihat pada gambar 3.15 di bawah ini :
Gambar 3.15 Rancangan Tampilan Login
2.
Rancangan Tampilan Registrasi
Rancangan tampilan registrasi dapat dilihat pada gambar 3.16 dibawah ini:
Gambar 3.16 Rancangan Tampilan Registrasi
3.
Rancangan Tampilan Menu Utama Admin
(59)
32
Rancangan tampilan menu utama admin dapat dilihat pada gambar 3.17 di
bawah ini :
Gambar 3.17 Rancangan Tampilan Menu Utama Admin
4.
Rancangan Tampilan Submenu Admin
Rancangan tampilan submenu admin dapat dilihat pada gambar 3.18 di
bawah ini :
(60)
33
5.
Rancangan Tampilan Daftar User
Rancangan tampilan daftar user dapat dilihat pada gambar 3.19 dibawah
ini:
Gambar 3.19 Rancangan Tampilan Daftar User
6.
Rancangan Tampilan Laporan Komentar User
Rancangan tampilan laporan komentar user dapat dilihat pada gambar 3.20
dibawah ini :
(61)
34
7.
Rancangan Tampilan Menu Utama User
Rancangan tampilan menu utama user dapat dilihat pada gambar 3.21 di
bawah ini :
Gambar 3.21 Rancangan Tampilan Menu Utama User
8.
Rancangan Tampilan Submenu User
Rancangan tampilan submenu user dapat dilihat pada gambar 3.22 di
bawah ini:
(62)
35
9.
Rancangan Tampilan Halaman Postingan
Rancangan tampilan halaman postingan dapat di lihat pada gambar 3.23 di
bawah ini :
Gambar 3.23 Rancangan Tampilan Halaman Postingan
10.
Rancangan Tampilan Halaman Tambah Postingan
Rancangan tampilan halaman tambah postingan dapat dilihat pada gambar
3.24 di bawah ini :
(63)
36
11.
Rancangan Tampilan Halaman Daftar Permintaan Join
Rancangan tampilan halaman daftar permintaan join dapat dilihat pada
gambar 3.25 di bawah ini :
Gambar 3.25 Rancangan Tampilan Halaman Daftar Permintaan Join
12.
Rancangan Tampilan Halaman Minta Join
Rancangan tampilan halaman minta join dapat dilihat pada gambar 3.26 di
bawah ini :
(64)
37
13.
Rancangan Tampilan Halaman Ruang Diskusi Terbuka
Rancangan tampilan halaman ruang diskusi terbuka dapat dilihat pada
gambar 3.27 di bawah ini :
(65)
38
14.
Rancangan Tampilan Halaman Laporkan Komentar
Rancangan tampilan halaman laporkan komentar dapat dilihat pada
gambar 3.29 di bawah ini :
Gambar 3.29 Rancangan Tampilan Halaman Laporkan Komentar
15.
Rancangan Tampilan Halaman Komentar Yang Di Blokir
Rancangan tampilan halaman komentar yang di blokir dapat dilihat pada
gambar 3.30 di bawah ini :
(66)
39
16.
Rancangan Tampilan Halaman Edit Profil User
Rancangan tampilan halaman edit profil user dapat dilihat pada gambar
3.31 di bawah ini :
(67)
40
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1
Implementasi Sistem
Sistem pengolahan program merupakan suatu kesatuan pengolahan yang
terdiri prosedur dan pelaksanaan data. Komputer sebagai sarana pengolahan
program haruslah menyediakan fasilitas-fasilitas pendukung dalampengolahan.
Secara proporsional harus memenuhi akses yaitu :
1.
Perangkat keras (Hardware)
2.
Perangkat lunak (Software)
4.1.1 Perangkat Keras ( Hardware)
1.
Router yang digunakan pada saat ini adalah TP-LINK compatible untuk
kecepatan 1024 Kbps.
2.
Komputer Server, suatu komputer yang menjadi pengelola dan pusat bagi
komputer lainnya. Keseluruhan komputer yang terhubung ke server dalam
jaringan disebut sebagai Workstation. Hampir semua jenis komputer dapat
digunakan sebagai komputer workstation. Terdapat 1 buah server dengan
spesifikasi :
a.
Prosesor minimal 3,5 Hetz.
b.
VGA minimal 256 MB.
c.
RAM minimal 1 GB.
(68)
41
d.
Hardisk minimal 40 GB.
e.
NIC (Network Interface Card)/LAN Card
3.
Kabel UTP cat 5 yang compatible dengan kecepatan 100/10 mbps
4.
Komputer client, dengan spesifikasi :
a.
Prosesor minimal 3,5 Hetz.
b.
VGA minimal 256 MB
c.
RAM minimal 1 GB.
d.
Hardisk minimal 20 GB.
e.
NIC (Network Interface Card)/LAN Card
4.1.2
Perangkat Lunak (Software)
Dalam pembuatan program ini dibutukan beberapa software, yaitu :
1.
Sistem Operasi : Windows 7, windows Xp
2.
Aplikasi : Bahasa Pemograman PHP, Mysql sebagai DBMS (Database
Management System), Web Browser seperti Mozilla firework, Opera, Internet
Explorer untuk menjalankan aplikasi.
4.2 Tampilan Antarmuka
4.2.1 Tampilan Halaman Login
Halaman ini digunakan sebagai tempat untuk login dengan mengisi username
dan password yang sebelumnya sudah di registrasi. Halaman login dapat
dilihat pada gambar 4.1 di bawah ini :
(69)
42
Gambar 4.1 Tampilan Halaman Login
4.2.2 Tampilan Halaman Registrasi
Halaman ini digunakan untuk melakukan registrasi untuk mendapatkan
username dan password yang akan digunakan untuk login ke aplikasi.
Halaman registrasi dapat dilihat pada gambar 4.2 di bawah ini :
(70)
43
4.2.3 Rancangan Tampilan Menu Utama Admin
Halaman ini merupakan tampilan ketika admin sudah berhasil login
kedalam aplikasi yang berisi laporan komentar dari user, daftar user yang
telah mendaftar. Halaman menu utama admin dapat dilihat pada gambar 4.3
di bawah ini:
Gambar 4.3 Tampilan Menu Utama Admin
4.2.4 Tampilan Halaman Submenu Admin
Ini merupakan tampilan ketika admin klik tombol menu.dalam tombol menu
terdapat pilihan daftar user dan logout. Halaman submenu admin dapat
dilihat pada gambar 4.4 di bawah ini :
(1)
PERANCANGAN APLIKASI FORUM DISKUSI BERBASIS WEB
ABSTRACT
Discussions communication is an interaction between two or more people / groups Normally communication between them / groups in the form of one science or knowledge base that will finally give a good sense of understanding and correct . Discussions can be anything that originally called the topic . Discussion of this topic and discussed developing that will ultimately result in an understanding of the topic.
Forum is a forum or a meeting place between people who aim to brainstorm a topic or issue freely associated with the forum.
This application is built using the PHP programming language and test results on this application can be used as a means to discuss with the security of data or messages are guaranteed safe without it can be seen by unauthorized parties . Keywords : Discussion, Forum , Php .
(2)
vi DAFTAR ISI
Halaman
PERSETUJUAN i
PERNYATAAN ii
PENGHARGAAN iii
ABSTRAK iv
ABSTRACT v
DAFTAR ISI vi
DAFTAR TABEL viii
DAFTAR GAMBAR ix
Bab 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan 3
1.5 Manfaat 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 5
Bab 2 LANDASAN TEORI
2.1 Konsep Dasar Forum 7
2.1.1 Pengertian Forum 7
2.1.2 Pengertian Diskusi 7
2.1.3 Pengertian Forum Diskusi Online 7
2.2 Data Flow Diagram (DFD) 8
2.3 Flowchart 9
2.4 Topologi Jaringan 11
2.5 PHP (Perl Hypertext Preprocessor) 12
2.6 MySQL 13
2.7 XAMPP 14
Bab 3 ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem 15
3.1.1 Kelemahan Sistem 16
3.1.2 Analisa Keunggulan Sistem 17
3.2 Rancangan Penelitian 17
3.3 Rancangan Database 19
3.3.1 Struktur Database 20
3.3.2 Relasi Tabel 23
3.4 Flowchart 24
(3)
Bab 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem 40
4.1.1 Perangkat Keras (Hardware) 40 4.1.2 Perangkat Lunak (Software) 41
4.2 Tampilan Antarmuka 41
4.2.1 Tampilan Halaman Login 41
4.2.3 Rancangab Tampilan Menu Utama Admin 43 4.2.4 Tampilan Halaman Submenu Admin 43 4.2.5 Tampilan Halaman Daftar User 44 4.2.6 Tampilan Halaman Laporan Komentar User 44
4.2.7 Tampilan Menu Utama User 45
4.2.8 Tampilan Submenu User 45
4.2.9 Tampilan Halaman Postingan 46 4.2.10 Tampilan Halaman Tambah Postingan 46 4.2.11 Tampilan Halaman Daftar Permintaan Join 47 4.2.12 Tampilan Halaman Minta Join 47 4.2.13 Tampilan Halaman Ruang Diskusi 48 4.2.14 Tampilan Halaman Laporkan Komentar 48 4.2.15 Rancangan Tampilan Halaman Komentar yang di Blokir 49 4.2.16 Tampilan Halaman Edit Profil User 49
Bab 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan 50
5.2 Saran 50
DAFTAR PUSTAKA LAMPIRAN
(4)
viii
DAFTAR TABEL
Nomor Judul Halaman
Tabel
2.1 Komponen DFD 8
2.2 Simbol-simbol Flowchart 9
3.1 Tabel Join 19
3.2 Tabel Komentar 19
3.3 Tabel Diskusi 20
3.4 Tabel User 21
(5)
DAFTAR GAMBAR
Nomor Judul Halaman
Gambar
2.1 Topologi Star 11
3.3 Diagram Konteks Aplikasi Forum Diskusi Online 17
3.2 DFD Level 0 Aplikasi forum Diskusi online 18
3.3 Relasi Tabel 22
3.4 Flowchart Login 23
3.5 Flowchart Admin 24
3.6 Flowchart Menu Admin 24
3.7 Flowchart Laporan Komentar 25
3.8 Flowchart Menu Utama User 25
3.9 Flowchart Sub Menu User 26
3.10 Flowchart Postingan 27
3.11 Flowchart Profil USer 28
3.12 Flowchart Diskusi 29
3.13 Rancangan Tampilan Login 30
3.14 Rancangan Tampilan Register 31
3.15 Rancangan Tampilan Menu Utama Admin 31
3.16 Rancangan Tampilan Submenu Admin 32
(6)
x
3.18 Rancangan Tampilan Laporan Komentar User 33
3.19 Rancangan Tampilan Menu Utama User 33
3.20 Rancangan Tampilan Sub Menu User 34
3.21 Rancangan Tampilan Halaman Postingan 34
3.22 Rancangan Tampilan Halaman Tambah Postingan 35
3.23 Rancangan Tampilan Halaman Daftar Permintaan Join 35
3.24 Rancangan Tampilan Halaman Minta Join 36
3.25 Rancangan Tampilan Halaman Ruang Diskusi Terbuka 37
3.26 Rancangan Tampilan Halaman Laporan Komentar 38
3.27 Rancangan Tampilan Halaman Komentar Yang Di Blokir 38
3.28 Rancangan Tampilan Halaman Edit User 39
4.1 Tampilan Halaman Login 42
4.2 Tampilan Halaman Registrasi 42
4.3 Rancangan Tampilan Menu Utama Admin 43
4.4 Tampilan Sub Menu Admin 43
4.5 Tampilan Halaman Dafttar User 44
4.6 Tampilan Halaman Laporan Komentar User 44
4.7 Tampilan Menu Utama User 45
4.8 Tampilan Sub Menu User 45
4.9 Tampilan Halaman Postingan 46
4.10 Tampilan Halaman Tambah Postingan 46
4.11 Tampilan Halaman Daftar Permintaan Join 47
4.12 Tampilan Halaman Minta Join 47
4.13 Tampilan Halaman Ruang Diskusi 48
4.14 Tampilan Halaman Laporkan Komentar 48
4.15 Rancangan Tampilan Halaman Komentar Yang Di lokir 49