49
BAB IV
HASIL DAN IMPLEMENTASI
4.1 Hasil
Hasil penelitian berupa sebuah website forum diskusi untuk mendukung
kegiatan belajar dan bertukar ilmu dilingkungan fakultas teknik UMY.
Halaman-halaman website secara umum terbagi menjadi 2 (dua) bagian, yaitu:
1. Halaman untuk member dan pengunjung untuk melakukan proses
diskusi.
2. Halaman untuk admin untuk mengelola topik, subtopik dan member
serta mengelola Thread.
4.2 Pembahasan Sistem
Pembahasan sistem bertujuan untuk memaparkan bagaimana cara kerja
sistem secara terperinci untuk menjelaskan setiap proses yang berjalan pada sistem
informasi forum diskusi. Hal-hal yang akan dijelaskan meliputi koneksi database,
proses pada halaman utama bagian publik, proses pada halaman utama bagian
admin beserta menunjukan potongan-potongan source code pada setiap proses yang
berjalan.
4.2.1. Koneksi Database
Database yang digunakan pada sistem ini adalah MySQL. MySQL
memberikan fasilitas pengolahan database dengan menggunakan standar SQL
(Structure Query Language). Database pada website forum diskusi terdiri dari
beberapa tabel. Berikut adalah tabel tabel pada database website forum diskusi
yang digunakan untuk menyimpan data.
Gambar 4. 1
Tabel Database db_forum
Koneksi pada sistem ini digunakan untuk menghubungkan database
dengan program. Source code koneksi ini terdapat pada file koneksi.php.
Potongan source code koneksi:
<?php
$server = "localhost"; $username = "root"; $password = "";
$database = "db_forum";
// Koneksi dan memilih database di server
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>
Gambar 4. 2
Source Code Koneksi
4.2.2. Halaman Utama Bagian Publik
Halaman ini merupakan halaman pertama yang akan muncul ketika pengguna
menjalankan aplikasi ini. Pada bagian halaman pengunjung terdiri dari 3 bagian
yaitu header, content dan footer. Pada bagian halaman utama publik akan
menampilkan 5 artikel terbaru dan 5 artikel yang paling banyak dibaca.
Gambar 4. 3
Halaman Utama
4.2.3. Halaman Detail Artikel/Topik
Pada halaman ini pengunjung bisa melihat detail artikel seperti user yang
memposting artikel, tanggal input, judul, gambar dan keterangan. Pada bagian
bawah artikel terdapat kolom komentar namun hanya pengunjung yang sudah
terdaftar oleh sistem (anggota) saja yang dapat memberikan komentar.
Gambar 4. 4
Halaman Detail Artikel/Topik
Potongan source code detail data artikel:
$detail=mysql_query("SELECT * FROM artikel,users WHERE users.id_user=artikel.id_user AND id_artikel='$_GET[id]'"); $d = mysql_fetch_array($detail); $tgl = tgl_indo($d[tanggal]); $tgl_daftar = tgl_indo($d[tgl_daftar]); $baca = $d[dibaca]+1;
// Apabila detail artikel dilihat, maka tambahkan berapa kali dibacanya
mysql_query("UPDATE artikel SET dibaca=$d[dibaca]+1 WHERE id_artikel='$_GET[id]'");
if ($d['gambar']!=''){ echo"
<img src='foto_artikel/$d[gambar]' class='img-responsive' alt=''/>"; } echo" <div class='article_desc'> <p>$d[isi_artikel].</p> </div>"; // Komentar artikel
$sql = mysql_query("SELECT * FROM komentar,users WHERE komentar.id_user=users.id_user AND id_artikel='$_GET[id]' AND aktif='Y' ");
$jml = mysql_num_rows($sql);
// Apabila sudah ada komentar, tampilkan if ($jml > 0){ while ($s = mysql_fetch_array($sql)){ $tanggal = tgl_indo($s[tgl]); echo" <div class='author-detail'>";
echo" <img src='foto_users/small_$s[foto]' class='img-responsive' alt=''/>"; echo" <div class='author_details-right'> <div class='author-title'>$s[username]</div> <p class='author-description'>"; $isian=nl2br($s[isi_komentar]); // membuat paragraf pada isi komentar
$isikan=sensor($isian);
echo autolink($isikan);
echo"</p>
Gambar 4. 5
Source Code Detail Topik
4.2.4. Halaman Login
Halaman ini digunakan untuk login ke sistem bagi anggota. Jika username
dan password yang diisikan benar maka akan diarahkan ke halaman beranda namun
jika username dan password yang dimasukkan salah maka akan muncul peringatan.
Form login anggota ditunjukkan pada gambar 4.6:
Gambar 4. 6
Halaman Form Login Anggota
Potongan source code cek login anggota:
$username = $_POST['username']; $pass = md5($_POST['password']);
$login=mysql_query("SELECT * FROM users WHERE
username='$username' AND password='$pass' AND blokir='N'"); $ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);
// Apabila username dan password ditemukan if ($ketemu > 0){ session_start(); $_SESSION[user_id] = $r[id_user]; $_SESSION[namauser] = $r[username]; $_SESSION[namalengkap] = $r[nama_lengkap]; $_SESSION[passuser] = $r[password]; $_SESSION[leveluser] = $r[level];
echo "<script>alert('Selamat Datang $_SESSION[namalengkap]'); window.location = 'index.php'</script>";
} else{
echo "<script>alert('Login Gagal, username atau password anda salah'); window.location = 'index.php'</script>";
}
4.2.5. Halaman Form Pendaftaran
Halaman ini digunakan untuk pengunjung web yang ingin mendaftar sebagai
anggota. Pada halaman ini pengunjung hanya bisa mendaftar melalui admin adapun
form isian untuk mendaftar terdapat username, password, email, jurusan asal, no
telepon dan lain-lain. Halaman form pendaftaran ditunjukkan pada gambar 4.8:
Gambar 4. 8 Halaman Form Pendaftaran Member Melalui Admin
Potongan source code aksi pendaftaran anggota:
// Input user
$pass=md5($_POST[password]);
mysql_query("INSERT INTO users(username, password, nama_lengkap, email, level, id_jurusan, no_telp) VALUES('$_POST[username]', '$pass', '$_POST[nama_lengkap]', '$_POST[email]', 'member', '$_POST[jurusan]', '$_POST[no_telp]')");
echo "<script>window.alert('Pendaftaran Berhasil'); window.location=('index.php')</script>";
Gambar 4. 9
Source Code Halaman Form Pendaftaran
4.2.6. Halaman Aturan Forum
Pada halaman ini berisikan peraturan forum yang harus dipatuhi oleh semua
member. Jika ada member yang diketahui melanggar forum maka admin berhak
memberikan sanksi seperti me-nonaktifkan akun ataupun sanksi yang lain.
Gambar 4. 10
Halaman Aturan Forum
4.2.7. Halaman Kategori
Halaman ini digunakan oleh pengunjung untuk menampilkan data artikel atau
topik berdasarkan kategori yang dipilih. Jika pengunjung memilih salah satu
kategori yang sudah ada topiknya maka akan muncul data topik sesuai kategori
yang dipilih. Berikut tampilannya:
Gambar 4. 11 Tampilan Halaman Detail Kategori
Potongan source code Halaman detail kategori:
<div id='myTabContent' class='tab-content'>
<div role='tabpanel' class='tab-pane fade in active' id='home' aria-labelledby='home-tab'>
<div class='panel-body'>";
$sebelum=mysql_query("select * FROM artikel WHERE id_kategori='$_GET[id]' ORDER BY id_artikel DESC LIMIT 5");
while($t=mysql_fetch_array($sebelum)){ $tgl = tgl_indo($t['tanggal']);
$isi_artikel =
htmlentities(strip_tags($t['isi_artikel'])); // membuat
$isi = substr($isi_artikel,0,100); // ambil sebanyak 220 karakter
$isi = substr($isi_artikel,0,strrpos($isi,"
")); // potong per spasi kalimat echo"
<div class='panel-body_1'> <h3>
<a
href='media.php?module=detailartikel&id=$t[id_artikel]'>
$t[judul] </a><div
class='pull-right'>$tgl <i class='fa fa-refresh refresh_1'></i></div> </h3> <h4> <a href='index_detail.html'>$isi...</a> </h4> </div> <div class='clearfix'></div><hr>"; }
Gambar 4. 12 Source Code Detail Kategori
4.2.8. Halaman Olah Data Topik
Halaman ini digunakan anggota untuk mengolah data topik. Pada halaman ini
anggota dapat menambah, mengedit dan menghapus topik. Hanya pengunjung yang
sudah mendaftar sebagai anggota yang bisa mengakses halaman ini.
Halaman olah data topik ditunjukkan pada gambar 4.13:
Gambar 4. 13
Halaman Olah Data Topik
4.2.9. Halaman Update Profil
Halaman update profil adalah halaman yang digunakan oleh anggoa untuk
mealkukan perubahan data anggota jika diperlukan seperti email, password ataupun
yang lain. Tampilan halaman update profil dapat dilihat pada gambar 4.14.
Gambar 4. 14
Halaman Update Profil
4.2.10. Halaman Login Admin
Sebelum dapat mengolah data website maka admin terlebih dahulu
melakukan login dengan akunnya yang sudah terdaftar. Tampilan halaman form
login admin dapat dilihat pada gambar 4.15.
Potongan script form login admin:
<div class="login-logo">
<a href="index2.html"><b>LOGIN ADMINISTRATOR</b></a> </div>
<!-- /.login-logo -->
<div class="login-box-body">
<p class="login-box-msg">Sign in to start your session</p> <form action="cek_login.php" method="post">
<div class="form-group has-feedback">
<input type="text" class="form-control" name="username" placeholder="Username">
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control"
name="password" placeholder="Password">
<span class="glyphicon glyphicon-lock
form-control-feedback"></span> </div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
</div> </div>
<!-- /.col -->
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>
</div>
<!-- /.col --> </div>
</form>
Gambar 4. 16
Source Code Form Login
Potongan script cek_login yang digunakan untuk mengetahui apakah username
dan password yang dimasukkan oleh user admin tersebut bernilai benar atau
salah. Berikut potongan source code form login:
login=mysql_query("SELECT * FROM user WHERE username='$username' AND password='$pass' AND blokir='N'");
$ketemu=mysql_num_rows($login); $r=mysql_fetch_array($login);
// Apabila username dan password ditemukan if ($ketemu > 0){
session_start();
$_SESSION[namalengkap] = $r[nama_lengkap]; $_SESSION[passuser] = $r[password]; $_SESSION[leveluser] = $r[level]; header('location:media.php?module=home'); } else{ echo "
<link href='css/zalstyle.css' rel='stylesheet'
type='text/css'>"; echo " </head> <body class='special-page'> <div id='container'> <section id='error-number'> <img src='img/lock.png'> <h1>LOGIN GAGAL</h1>
<p><span class style=\"font-size:14px; color:#ccc;\">Username atau Password anda tidak sesuai.<br>
Atau akun anda sedang diblokir.</p></span><br/>
</section>
<section id='error-text'>
<p><a class='button' href='index.php'> <b>ULANGI LAGI</b> </a></p>
</section> </div>"; }
Gambar 4. 17
Source Code Cek Login
4.2.11. Halaman Anggota
Halaman ini dapat digunakan oleh admin untuk mengolah data anggota
(member). Pada halaman ini admin bisa menghapus data member yang tidak
diperlukan atau yang melanggar peraturan forum diskusi. Tampilan halaman data
anggota dapat dilihat pada gambar 4.18.
Gambar 4. 18
Halaman Data Anggota
Potongan script halaman data member:
echo " <thead> <tr><th>no</th><th>username</th><th>nama lengkap</th><th>email</th><th>No.Telp/HP</th><th>Blokir</th><th> aksi</th></tr></thead> <thead> <tbody>";
$tampil = mysql_query("SELECT * FROM users WHERE
level='member' ORDER BY id_user DESC"); $no=1; while ($r=mysql_fetch_array($tampil)){ echo "<tr><td>$no</td> <td>$r[username]</td> <td>$r[nama_lengkap]</td> <td><a href=mailto:$r[email]>$r[email]</a></td> <td>$r[no_telp]</td> <td align=center>$r[blokir]</td> <td><a href=?module=member&act=editmember&id=$r[id_user]>Edit</a> | <a href=$aksi?module=member&act=hapus&id=$r[id_user]
onClick=\"return confirm('Apakah Anda Yakin Untuk Menghapus Data Ini ?')\">Hapus</a></td></tr>";
$no++; }
Gambar 4. 19
Source Code Data Member
Potongan script aksi_member.php yang digunakan untuk mengolah data member
seperti tambah, data, edit data dan hapus data.
Berikut script potongan aksi_member.php:
// Input user
if ($module=='admin' AND $act=='input'){ $pass=md5($_POST[password]); $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)){
if ($tipe_file != "image/jpeg" AND $tipe_file !=
"image/pjpeg"){
echo "<script>window.alert('Upload Gagal, Pastikan File yang di Upload bertipe *.JPG'); window.location=('../../media.php?module=admin)</script>"; } else{ UploadUsers($nama_file_unik);
mysql_query("INSERT INTO users(username, password, nama_lengkap, email, no_telp, level, foto) VALUES('$_POST[username]', '$pass', '$_POST[nama_lengkap]', '$_POST[email]', '$_POST[no_telp]', 'member', '$nama_file_unik')"); } } else {
mysql_query("INSERT INTO users(username, password, nama_lengkap, email, level, no_telp) VALUES('$_POST[username]', '$pass', '$_POST[nama_lengkap]', '$_POST[email]', 'member', '$_POST[no_telp]')"); } header('location:../../media.php?module='.$module); }
mysql_query("UPDATE users SET
blokir =
'$_POST[blokir]'
WHERE id_user = '$_POST[id]'");
header('location:../../media.php?module='.$module); }
Gambar 4. 20
Source Code Aksi Member
4.2.12. Halaman Data Kategori Bagian Admin
Halaman ini dapat digunakan oleh admin untuk mengolah data kategori
artikel atau topik. Pada halaman ini admin bisa menambahkan, mengubah ataupun
menghapus data kategori yang telah diinputkan. Tampilan halaman data kategori
topik dapat dilihat pada gambar 4.21.
Gambar 4. 21
Halaman Data Kategori Topik Bagian Admin
Potongan script halaman data kategori:
<table id='example1' class='table table-bordered table-striped'> <thead>
<tr><th>no</th><th>nama
kategori</th><th>status</th><th>aksi</th></tr></thead> <tbody>";
$tampil=mysql_query("SELECT * FROM kategori ORDER BY
id_kategori DESC"); $no=1; while ($r=mysql_fetch_array($tampil)){ echo "<tr><td>$no</td> <td>$r[nama_kategori]</td> <td align=center>$r[aktif]</td>
<td><a
href=?module=kategori&act=editkategori&id=$r[id_kategori]>Edit</ a> |
<a
href=$aksi?module=kategori&act=hapus&id=$r[id_kategori]
onClick=\"return confirm('Apakah Anda Yakin Untuk Menghapus Data Ini ?')\">Hapus</a>
</td></tr>"; $no++;
}
echo "</tbody></table></div>
Gambar 4. 22
Source Code Data Kategori
4.2.13. Halaman Data Artikel/Topik Bagian Admin
Halaman ini dapat digunakan oleh admin untuk mengolah data topik artiekl
yang diinputkan oleh anggota forum. Pada halaman ini admin bisa menambahkan,
mengubah ataupun menghapus data topik yang telah diinputkan. Tampilan halaman
data topik dapat dilihat pada gambar 4.23.
Gambar 4. 23 Halaman Data Topik Bagian Admin
Potongan script halaman data topik:
<div class='box-body'>
<table id='example1' class='table table-bordered table-striped'>
<thead>
<tr><th>no</th><th>judul</th><th>tgl. posting</th><th>aksi</th></tr></thead>
$tampil=mysql_query("SELECT * FROM artikel ORDER BY id_artikel DESC"); $no=1; while ($r=mysql_fetch_array($tampil)){ $tgl_posting=tgl_indo($r[tanggal]); echo "<tr><td>$no</td> <td>$r[judul]</td> <td>$tgl_posting</td> <td><a href=?module=artikel&act=editartikel&id=$r[id_artikel]>Edit</a> | <a href='$aksi?module=artikel&act=hapus&id=$r[id_artikel]&namafile= $r[gambar]' onClick=\"return confirm('Apakah Anda Yakin Untuk Menghapus Data Ini ?')\">Hapus</a></td>
</tr>"; $no++; } echo "</tbody></table></div> <!-- /.box-body --> </div> <!-- /.box --> </div>";
Gambar 4. 24
Source Code Data Topik
4.2.14. Halaman Data Komentar Bagian Admin
Halaman ini berisi seluruh data komentar yang telah diinputkan oleh anggota
forum. Pada halaman ini admin dapat mengedit ataupun menghapus data komentar
yang telah diinputkan. Tampilan halaman data komentar dapat dilihat pada gambar
4.24.
Potongan script halaman data komentar:
<div class='box-body'>
<table id='example1' class='table table-bordered table-striped'> <thead> <tr><th>no</th><th>nama</th><th>komentar</th><th>aktif</th><th>a ksi</th></tr></thead> <tbody>";
$tampil=mysql_query("SELECT * FROM komentar ORDER BY
id_komentar DESC"); $no = $posisi+1; while ($r=mysql_fetch_array($tampil)){ echo "<tr><td>$no</td> <td width=80>$r[id_user]</td> <td width=290>$r[isi_komentar]</td> <td width=5 align=center>$r[aktif]</td> <td><a href=?module=komentar&act=editkomentar&id=$r[id_komentar]>Edit</ a> | <a href=$aksi?module=komentar&act=hapus&id=$r[id_komentar]
onClick=\"return confirm('Apakah Anda Yakin Untuk Menghapus Data Ini ?')\">Hapus</a> </tr>"; $no++; } echo "</tbody></table></div> <!-- /.box-body --> </div> <!-- /.box --> </div>";