Perancangan Aplikasi Forum Diskusi Berbasis Web

(1)

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 "&nbsp;";

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 "&nbsp;";


(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

Email

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