Perancangan Aplikasi Simulasi Psikotest Berbasis Web
SURAT KETERANGAN
Hasil Uji Program Tugas Akhir
Yang bertanda tangan dibawah ini, menerangkan bahwa Mahasiswa Tugas Akhir
Program Diploma 3 Teknik Informatika :
Nama
:
MEYLIA SANDRA TAMPUBOLON
NIM
:
132406109
Prog.Studi
:
D3 Teknik Informatika
Judul TA
:
PERANCANGAN APLIKASI SIMULASI PSIKOTEST
BERBASIS WEB
Telah melaksanakan test program Tugas Akhir Mahasiswa tersebut di atas pada
tanggal...
Dengan Hasil :
SUKSES / GAGAL
Demikian diterangkan untuk digunakan melengkapi syarat pendaftaran Ujian Meja
Hijau Tugas Akhir Mahasiswa bersangkutan di Departemen Matematika FMIPA USU
Medan.
Medan, Juni 2016
DosenPembimbing
(Dr. Syahriol Sitorus, S.Si.M.IT)
NIP. 197103101997031004
(2)
KARTU BIMBINGAN TUGAS AKHIR MAHASISWA
Nama Mahasiswa
: MEYLIA SANDRA TAMPUBOLON
Nomor Stambuk
: 132406109
Judul Tugas Akhir
: PERANCANGAN
APLIKASI
SIMULASI
PSIKOTEST BERBASIS WEB
Dosen Pembimbing
: Dr. Syahriol Sitorus, S.Si.M.IT
Tanggal Mulai Bimbingan
:
Tanggal Selesai Bimbingan :
No.
Tanggal
Asisten
Bimbingan
Pembahasan pada
Asistensi Mengenai, pada
Bab :
Paraf Dosen
Pembimbing
Keterangan
1.
2.
3.
4.
5.
6.
7
Diketahui,
Disetujui,
Ketua Prog.Studi D3 Teknik Informatika,
Dosen Pembimbing,
Dr. Elly Rosmaini, M.Si.
Dr. Syahriol Sitorus, S.Si.M.IT
NIP. 196 005 201 985 032 002
NIP. 197103101997031004
(3)
LAMPIRAN PROGRAM
1.
Index.php
<!doctype html> <html>
<head>
<meta charset="utf-8">
<title>PERANCANGAN APLIKASI SIMULASI PSIKOTEST BERBASIS WEB</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="administrator/alert/css/jquery-confirm.css">
<script type="text/javascript"
src="bootstrap/js/bootstrap.min.js"></script> <script src="js/jquery.min.js"></script>
<script src="administrator/alert/js/jquery-confirm.js"></script> </head>
<body>
<div id="wrapper">
<div id="header"></div> <div id="content"> <div class="row"> <div class="col-md-6">
<div class="panel panel-default"> <div class="panel-heading">
(4)
</div>
<div class="panel-body">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table">
<tbody> <tr>
<td width="25%">Email</td>
<td width="75%"><input type="text" name="txtemail" id="txtemail" class="form-control"></td>
</tr> <tr>
<td>Password</td>
<td><input type="password" name="txtpassword" id="txtpassword" class="form-control"></td>
</tr> <tr>
<td> </td>
<td><input type="button" name="cmdmasuk" id="cmdmasuk" value="Masuk" class="btn btn-primary btn-sm btn-block"></td>
</tr> </tbody> </table>
</div> </div>
</div>
<div class="col-md-6"> <div class="panel panel-danger"> <div class="panel-heading">
(5)
</div>
<div class="panel-body">
<a href="login.php" class="btn btn-danger">Login System</a> <a href="registrasi.php" class="btn btn-info">Regitrasi</a>
</div> </div> </div> </div> </div> </div>
<script>
$(document).ready(function(e) {
$('#cmdmasuk').click(function(e) { var temail=$('#txtemail').val();
var pwd=$('#txtpassword').val(); $.post('validasiuser.php', {
temail:temail, pwd:pwd
}, function (data, status){ if (data==''){
document.location.href='home.php?page=zindex'; }
else{
$.alert({content:data}); }
}); }); });
(6)
</script> </body> </html>
2.
Home.php
<?php error_reporting("E_ALL ^ E_NOTICE"); ?> <?php include 'cekuser.php'; ?>
<?php include 'koneksi.php'; ?> <?php
$idpeserta=$_SESSION['sesiidpeserta'];
$nama=$db->tampilrecord("tblpeserta", "idpeserta='$idpeserta'", "nama");
$temail=$db->tampilrecord("tblpeserta", "idpeserta='$idpeserta'", "email");
$pretest=$db->tampilrecord("tblpengaturan", "kriteria='PRETEST'", "nilai");
if ($pretest>=1){
echo "<script>
document.location.href='ujian/index.php?page=info'; </script>";
} ?>
<!doctype html> <html>
<head>
<meta charset="utf-8">
<title>PERANCANGAN APLIKASI SIMULASI PSIKOTEST BERBASIS WEB</title>
(7)
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="style-home.css">
<link rel="stylesheet" href="administrator/alert/css/jquery-confirm.css">
<script type="text/javascript"
src="bootstrap/js/bootstrap.min.js"></script> <script src="js/jquery.min.js"></script>
<script src="administrator/alert/js/jquery-confirm.js"></script> </head>
<body> <?php
?>
<div id="wrapper">
<div id="header"></div> <div id="container">
<div class="row" style="padding:10px;">
<div class="panel panel-info"> <div class="panel-heading">
<h4 class="panel-title">Home</h4> </div>
<div class="panel-body"> <?php
$page=$_GET['page']; if ($page==''){ ?>
<!-- -->
(8)
<div id="isi"></div> </div>
<div class="col-md-12"> <div id="ket"></div> <div id="cwaktu"></div> </div>
<!-- ---> <?php
} else{
include 'home/zindex.php'; }
?>
</div> </div>
</div> </div> </div> <script>
$(document).ready(function(e) { setInterval(function(){
$('#isi').load('home/index.php'); }, 1000);
setInterval(function(){
$('#ket').load('home/hasil.php'); }, 1000);
(9)
$('#cwaktu').load('home/cekwaktu.php'); }, 1000);
});
</script> </body> </html>
3.
Cek.php
<?php session_start(); ?> <?php
if (!isset($_SESSION[sesipsikologiuser]) or
!isset($_SESSION[sesipsikologipass])){
echo "<script> document.location.href='login.php'; </script>";
} ?>
4.
Cekuser.php
<?php session_start(); ?> <?php
if (!isset($_SESSION['sesiidpeserta']) or
!isset($_SESSION['sesitgllahir'])){
echo "<script> document.location.href='index.php'; </script>";
} ?>
5.
Koneksi.php
<?php
(10)
include 'config.php'; }
elseif (file_exists('../config.php')){ include '../config.php';
}
elseif (file_exists('../../config.php')){ include '../../config.php';
}
elseif (file_exists('../../../config.php')){ include '../../../config.php';
}
$db=new database('localhost', 'root', '', 'dbpsikotest'); $db->konekdb();
?>
6.
Login.php
<!doctype html> <html>
<head>
<meta charset="utf-8"> <title>Login System</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/jquery.min.js"></script> </head>
<body>
(11)
<div class="col-md-4 col-xs-offset-4"> <div class="panel panel-info">
<div class="panel-heading">Login</div> <div class="panel-body">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table">
<tbody> <tr>
<td width="35%">Username</td>
<td width="65%"><input type="text" name="txtusername" id="txtusername" class="form-control"></td>
</tr> <tr>
<td>Password</td>
<td><input type="password" name="txtpassword" id="txtpassword" class="form-control"></td>
</tr> <tr>
<td> </td>
<td><input type="button" name="cmdlogin" id="cmdlogin" value="Login" class="btn btn-primary btn-sm btn-block"></td> </tr>
</tbody> </table>
</div> </div> </div> </div>
(12)
<script>
$(document).ready(function(e) {
$('#cmdlogin').click(function(e) { var u=$('#txtusername').val(); var p=$('#txtpassword').val(); if (u=='' || p==''){
return false; }
$.post('logincek.php', {
u:$('#txtusername').val(), p:$('#txtpassword').val() }, function (data, status){
if (data==''){
document.location.href='administrator/index.php' }
else{
alert(data); }
}); }); });
</script> </body> </html>
7.
Logincek.php
<?php session_start(); ?> <?php
(13)
include 'koneksi.php';
$u=$_POST['u']; $p=$_POST['p'];
if ($db->cekrecord("select * from tbladmin where userku='$u' and passku='$p'")==true){
$_SESSION['sesipsikologiuser']=$u; $_SESSION['sesipsikologipass']=$p; echo '';
} else{
echo 'Terjadi kesalahan!'; }
?>
8.
Registrasi.php
<!doctype html> <html>
<head>
<meta charset="utf-8">
<title>PERANCANGAN APLIKASI SIMULASI PSIKOTEST BERBASIS WEB</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="administrator/alert/css/jquery-confirm.css">
<link rel="stylesheet"
(14)
<script type="text/javascript"
src="bootstrap/js/bootstrap.min.js"></script> <script src="js/jquery.min.js"></script>
<script src="administrator/alert/js/jquery-confirm.js"></script> <script
src="administrator/plugins/datepicker/bootstrap-datepicker.js"></script> </head>
<body>
<div id="wrapper">
<div id="header"></div> <div id="content"> <div class="row">
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">Registrasi Peserta Baru</div> <div class="panel-body">
<form name="form1" method="post" action="simpan.php">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table">
<tbody> <tr>
<td width="22%">Nama</td>
<td width="78%"><div class="col-md-10"><input type="text" name="txtnama" id="txtnama" class="form-control"></div></td> </tr>
<tr>
<td>J. Kelamin</td>
<td><div class="col-md-6"><select name="txtjk" id="txtjk" class="form-control">
(15)
<option value="Pria">Pria</option> <option value="Wanita">Wanita</option> </select></div></td>
</tr> <tr>
<td>Tempat & Tgl Lahir</td>
<td><div class="col-md-8"><input type="text"
name="txttempat" id="txttempat" class="form-control"></div><div class="col-md-4"><input type="text" name="txttgllahir"
id="txttgllahir" class="form-control"></div></td> </tr>
<tr>
<td>Alamat</td>
<td><div class="col-md-12"><input type="text"
name="txtalamat" id="txtalamat" class="form-control"></div></td> </tr>
<tr>
<td>Pendidikan Terakhir</td>
<td><div class="col-md-4"><select name="txtpendidikan" class="form-control" id="txtpendidikan">
<option value="SMA">SMA</option> <option value="D1">D1</option> <option value="D3">D3</option> <option value="S1">S1</option> <option value="S2">S2</option> </select></div></td>
</tr> <tr>
(16)
<td><div class="col-md-5"><input type="text" name="txtemail" id="txtemail" class="form-control"></div></td>
</tr> <tr>
<td>Password</td>
<td><div class="col-md-5"><input type="password"
name="txtpass1" id="txtpass1" class="form-control"></div></td> </tr>
<tr>
<td>re-tye Password</td>
<td><div class="col-md-5"><input type="password"
name="txtpass2" id="txtpass2" class="form-control"></div></td> </tr>
<tr>
<td> </td>
<td><div class="col-md-12"><input name="cmdsimpan" type="submit" id="cmdsimpan" value="Simpan" class="btn
btn-primary"> <input name="cmdkembali" type="button" id="cmdkembali" value="Kembali" class="btn btn-default"></div></td>
</tr> </tbody> </table> </form> </div> </div>
</div> </div> </div> </div>
(17)
<script>
$(document).ready(function(e) {
$('#txttgllahir').datepicker({format:'dd-mm-yyyy'}); $('#cmdkembali').click(function(e) {
document.location.href='index.php'; });
$('#cmdsimpan').click(function(e) { var nama=$('#txtnama').val();
if (nama==''){
$.alert({content:'Nama belum diisi!'}); return false;
}
var tempat=$('#txttempat').val(); if (tempat==''){
$.alert({content:'Tempat lahir belum diisi!'}); return false;
}
var tgllahir=$('#txttgllahir').val(); if (tgllahir==''){
$.alert({content:'Tanggal lahir belum diisi!'}); return false;
}
var email=$('#txtemail').val(); if (email==''){
$.alert({content:'email belum diisi!'}); return false;
}
var pwd=$('#txtpass1').val(); if (pwd==''){
(18)
$.alert({content:'Password belum diisi!'}); return false;
}
var pwd1=$('#txtpass2').val(); if (pwd2==''){
$.alert({content:'retype Password belum anda isi!'});
return false; }
if (pwd1!=pwd2){
$.alert({content:'Password tidak sama!'}); return false;
} }); });
</script> </body> </html>
9.
Regsukses.php
<!doctype html> <html>
<head>
<meta charset="utf-8">
<title>PERANCANGAN APLIKASI SIMULASI PSIKOTEST BERBASIS WEB</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="style.css">
(19)
<link rel="stylesheet" href="administrator/alert/css/jquery-confirm.css">
<link rel="stylesheet"
href="administrator/plugins/datepicker/datepicker3.css"> <script type="text/javascript"
src="bootstrap/js/bootstrap.min.js"></script> <script src="js/jquery.min.js"></script>
<script src="administrator/alert/js/jquery-confirm.js"></script> <script
src="administrator/plugins/datepicker/bootstrap-datepicker.js"></script> </head>
<body>
<div id="wrapper">
<div id="header"></div> <div id="content"> <div class="row">
<div class="col-md-12">
<div class="alert alert-success" role="alert"><strong>Registrasi Sukses !</strong> Terima kasih, data anda sudah disimpan. Untuk memulai simulai psikologi silahkan klik tombol dibawah <p><a
href="index.php" class="btn btn-primary btn-sm">Login</a></div> </div>
</div> </div> </div> </body> </html>
(20)
10.
Simpan.php
<?php
include 'koneksi.php'; $nama=$_POST['txtnama']; $jk=$_POST['txtjk'];
$tempat=$_POST['txttempat']; $tgllahir=$_POST['txttgllahir']; $alamat=$_POST['txtalamat'];
$pendidikan=$_POST['txtpendidikan']; $email=$_POST['txtemail'];
$pwd=$_POST['txtpass1'];
$tgl=$db->ubahtanggal($tgllahir);
if ($db->cekrecord("select * from tblpeserta where email='$email'")==true){
echo 'Email sudah terdaftar, periksa kembali data anda!'; }
else{
$qry=mysql_query("insert into tblpeserta (nama, jk, tempat, tgllahir, alamat, pendidikan, email, password) values ('$nama', '$jk', '$tempat', '$tgl', '$alamat', '$pendidikan', '$email', '$pwd')");
if ($qry){
echo "<script> document.location.href='regsukses.php'; </script>";
} else{
(21)
echo 'Terjadi kesalahan, silahkan hubungi panitia!'; }
} ?>
11.
Simpanreg.php
<?php
echo 'Sukses'; ?>
12.
Validuser.php
<?php session_start(); ?> <?php
include 'koneksi.php';
$temail=$_POST['temail']; $pwd=$_POST['pwd'];
if ($db->cekrecord("select * from tblpeserta where email='$temail' and password='$pwd'")==true){
$id=$db->tampilrecord("tblpeserta", "email='$temail'", "idpeserta");
$tgl=$db->tampilrecord("tblpeserta", "email='$temail'", "tgllahir");
$_SESSION['sesiidpeserta']=$id; $_SESSION['sesitgllahir']=$tgl;
(22)
$idpeserta=$id;
$qry=mysql_query("select * from tblujianpeserta where idpeserta='$idpeserta' order by idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$data=mysql_fetch_array($qry); $idujian=$data['idujian']; #echo $idujian.' '.$idpeserta;
$qry=mysql_query("update tblujianpeserta set ket='' where idpeserta='$idpeserta' and idujian='$idujian'");
if ($qry){
} else{
echo 'Gagal'; }
$qry=mysql_query("select * from tblujiankategori where idujian='$idujian'");
while ($data=mysql_fetch_array($qry)){ $kategori=$data['kategori']; $waktu=$data['waktu'];
if ($db->cekrecord("select * from tblujianwaktu where idpeserta='$idpeserta' and idujian='$idujian' and
kategori='$kategori'")==false){
$qrywaktu=mysql_query("insert into tblujianwaktu (idujian, idpeserta, kategori, waktu) values ('$idujian', '$idpeserta', '$kategori', '$waktu')");
if ($qrywaktu){
(23)
else
echo "Gagal"; }
} }
echo ''; }
else{
echo 'Terjadi kesalahan!'; }
?>
13.
Logout.php
<?php session_start(); ?> <?php
unset($_SESSION['sesiidpeserta']); unset($_SESSION['sesitgllahir']);
echo "<script> document.location.href='index.php'; </script>"; ?>
14.
Cekwaktu.php
<?php error_reporting("E_ALL ^ E_NOTICE"); ?> <?php session_start(); ?>
<?php
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta'];
$skategori=$_SESSION['sesikategori']; ?>
(24)
<?php
$qry=mysql_query("select tblujian.idujian, tblujian.st,
tblujianpeserta.idpeserta from tblujian INNER JOIN tblujianpeserta ON tblujian.idujian=tblujianpeserta.idujian where
tblujianpeserta.idpeserta='$id' and tblujian.st='1' order by tblujian.idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$dataujian=mysql_fetch_array($qry); $idujian=$dataujian[0];
$ket=$db->tampilrecord("tblujian", "idujian='$idujian'", "keterangan");
$jabatan=$db->tampilrecord("tblujian", "idujian='$idujian'", "jabatan");
}
if (isset($_SESSION['sesikategori'])){
$waktu=$db->tampilrecord("tblujianwaktu", "idpeserta='$id' and idujian='$idujian' and kategori='$skategori'", "waktu");
$waktu--;
$qry=mysql_query("update tblujianwaktu set waktu='$waktu' where idujian='$idujian' and idpeserta='$id' and
kategori='$skategori'"); }
?>
15.
Hasil.php
<?php #error_reporting("E_ALL ^ E_NOTICE"); ?> <?php session_start(); ?>
(25)
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta'];
$qry=mysql_query("select * from tblujianpeserta where idpeserta='$id' order by idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$data=mysql_fetch_array($qry); $idujian=$data['idujian']; $hasil=$data['ket'];
$lulus=$data['lulus']; $nilai=$data['nilai'];
$jlhkategori=$db->totalrecord("tblujiankategori", "idujian='$idujian'");
$hasil=str_replace('Anda tidak lulus ujian', '', $hasil); $hasil=str_replace('.', ', ', $hasil);
$score=(($nilai*$jlhkategori)/$jlhkategori)*10; #$score=$jlhkategori;
} else{
}
if ($hasil<>''){ ?>
<div style="width:400px; margin-left:auto; margin-right:auto"> <div class="panel panel-primary">
<div class="panel-heading">Hasil Ujian</div> <div class="panel-body">
<!-- --> <?php
(26)
if ($lulus>=1){ ?>
<div style="font-size:14px; color:#002CB9;">Selamat! Anda Lulus Simulasi Psikotest <br>
Score Anda : <?php echo $score; ?> </div>
<?php } else{
?> <!-- --> <div>
<div style="color:red; font-size:16px;">Maaf Anda Gagal.</div> <br> Anda tidak memenuhi kriteria yang telah ditetapkan.<br> Score Anda : <?php echo $score; ?> <br>
Anda Gagal di bagian : <?php echo $hasil; ?> <br>
Silahkan mencoba kembali! </div>
<?php } ?> <!-- --> </div> </div> </div> <?php } ?>
16.
Hasil.php
<?php #error_reporting("E_ALL ^ E_NOTICE"); ?> <?php session_start(); ?>
(27)
<?php
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta'];
$qry=mysql_query("select * from tblujianpeserta where idpeserta='$id' order by idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$data=mysql_fetch_array($qry); $idujian=$data['idujian']; $hasil=$data['ket'];
$lulus=$data['lulus']; $nilai=$data['nilai'];
$jlhkategori=$db->totalrecord("tblujiankategori", "idujian='$idujian'");
$hasil=str_replace('Anda tidak lulus ujian', '', $hasil); $hasil=str_replace('.', ', ', $hasil);
$score=(($nilai*$jlhkategori)/$jlhkategori)*10; #$score=$jlhkategori;
} else{
}
if ($hasil<>''){ ?>
<div style="width:400px; margin-left:auto; margin-right:auto"> <div class="panel panel-primary">
<div class="panel-heading">Hasil Ujian</div> <div class="panel-body">
(28)
<?php
if ($lulus>=1){ ?>
<div style="font-size:14px; color:#002CB9;">Selamat! Anda Lulus Simulasi Psikotest <br>
Score Anda : <?php echo $score; ?> </div>
<?php } else{
?> <!-- --> <div>
<div style="color:red; font-size:16px;">Maaf Anda Gagal.</div> <br> Anda tidak memenuhi kriteria yang telah ditetapkan.<br> Score Anda : <?php echo $score; ?> <br>
Anda Gagal di bagian : <?php echo $hasil; ?> <br>
Silahkan mencoba kembali! </div>
<?php } ?> <!-- --> </div> </div> </div> <?php } ?>
17.
Hasilakhir.php
(29)
<?php session_start(); ?> <?php
include '../koneksi.php';
$idpeserta=$_SESSION['sesiidpeserta']; echo $idpeserta;
$qry=mysql_query("select * from tblujianpeserta where idpeserta='$idpeserta' order by idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$data=mysql_fetch_array($qry); $idujian=$data['idujian']; $hasil=$data['ket'];
$lulus=$data['lulus']; $nilai=$data['nilai'];
$jlhkategori=$db->totalrecord("tblujiankategori", "idujian='$idujian'");
$hasil=str_replace('Anda tidak lulus ujian', '', $hasil); $hasil=str_replace('.', ', ', $hasil);
$score=($nilai*10)/$jlhkategori; #$score=$jlhkategori;
} else{
exit; }
echo $idujian;
$i=0;
$qry=mysql_query("select * from tblujiankategori where idujian='$idujian'");
(30)
while ($data=mysql_fetch_array($qry)){ $jlhlulus=$data['jlhlulus']; $kategori=$data['kategori'];
$hasil=$db->hitungjawabanbenar($idujian, $idpeserta, $kategori);
if ($hasil>=$jlhlulus){
$ket='Selamat! Anda Lulus '; }
else{
$k=$k.'Anda tidak lulus ujian '.$kategori.'. '; $i++;
} }
#
$jlhbenar=$db->jumlahrecord("select * from tbljawaban where idpeserta='$idpeserta' and idujian='$idujian' and st='1'");
if ($i<=0){
$query="update tblujianpeserta set ket='$ket',
nilai='$jlhbenar', lulus='1' where idpeserta='$idpeserta' and idujian='$idujian'";
} else{
$query="update tblujianpeserta set ket='$k',
nilai='$jlhbenar', lulus='0' where idpeserta='$idpeserta' and idujian='$idujian'";
}
$qryhasil=mysql_query($query); if ($qryhasil){
(31)
echo 'Sukses '; }
else{
echo 'Gagal '; }
?>
18.
Hitung.php
<?php session_start(); ?> <?php
include '../koneksi.php';
$idpeserta=$_SESSION['sesiidpeserta'];
$qry=mysql_query("select tblujian.idujian, tblujian.st,
tblujianpeserta.idpeserta from tblujian INNER JOIN tblujianpeserta ON tblujian.idujian=tblujianpeserta.idujian where
tblujianpeserta.idpeserta='$id' and tblujian.st='1' order by tblujian.idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$dataujian=mysql_fetch_array($qry); $idujian=$dataujian[0];
$ket=$db->tampilrecord("tblujian", "idujian='$idujian'", "keterangan");
$jabatan=$db->tampilrecord("tblujian", "idujian='$idujian'", "jabatan");
(32)
$i=0;
$qry=mysql_query("select * from tblujiankategori where idujian='$id'");
$k='';
while ($data=mysql_fetch_array($qry)){ $jlhlulus=$data['jlhlulus']; $kategori=$data['kategori']; $idpeserta=$dataku['idpeserta'];
$hasil=$db->hitungjawabanbenar($id, $idpeserta, $kategori);
if ($hasil>=$jlhlulus){
$ket='Selamat! Anda Lulus '; }
else{
$k=$k.'Anda tidak lulus ujian '.$kategori.'. '; $i++;
} }
#
$jlhbenar=$db->jumlahrecord("select * from tbljawaban where idpeserta='$dataku[idpeserta]' and idujian='$id' and st='1'");
if ($i<=0){
$query="update tblujianpeserta set ket='$ket',
nilai='$jlhbenar', lulus='1' where idpeserta='$dataku[idpeserta]' and idujian='$id'";
} else{
(33)
$query="update tblujianpeserta set ket='$k',
nilai='$jlhbenar', lulus='0' where idpeserta='$dataku[idpeserta]' and idujian='$id'";
}
$qryhasil=mysql_query($query); if ($qryhasil){
echo 'Sukses '; }
else{
echo 'Gagal '; }
?>
19.
Pilih.php
<?php
include '../koneksi.php';
$nilai=$_POST['nilai'];
$qry=mysql_query("update tbljawaban set jwb='0' where idjawaban='$nilai'");
if ($qry){
#echo 'Sukses'; }
else{
echo 'Gagal'; }
(34)
?>
20.
Pilihkategori.php
<?php session_start(); ?>
<?php$kategori=$_POST['kategori'];
$_SESSION['sesikategori']=$kategori; echo '';
?>
21.
Ulangi.php
<?php session_start(); ?> <?php
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta']; ?>
<?php
$qry=mysql_query("select tblujian.idujian, tblujian.st,
tblujianpeserta.idpeserta from tblujian INNER JOIN tblujianpeserta ON tblujian.idujian=tblujianpeserta.idujian where
tblujianpeserta.idpeserta='$id' and tblujian.st='1'"); $jlh=mysql_num_rows($qry);
if ($jlh>=1){
$dataujian=mysql_fetch_array($qry); $idujian=$dataujian[0];
$ket=$db->tampilrecord("tblujian", "idujian='$idujian'", "keterangan");
(35)
$jabatan=$db->tampilrecord("tblujian", "idujian='$idujian'", "jabatan");
}
$qry=mysql_query("select * from tblujiankategori where idujian='$idujian'");
while ($data=mysql_fetch_array($qry)){ $kategori=$data['kategori'];
$waktu=$data['waktu'];
$qrywaktu=mysql_query("update tblujianwaktu set waktu='$waktu' where idpeserta='$id' and idujian='$idujian' and
kategori='$kategori'"); }
$qry=mysql_query("update tblujianpeserta set ket='' where idpeserta='$id' and idujian='$idujian'");
$qry=mysql_query("update tbljawaban set jwb='0' where idujian='$idujian' and idpeserta='$id'");
?>
22.
Zindex.php
<?php #error_reporting("E_ALL ^ E_NOTICE"); ?> <?php session_start(); ?>
<?php
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta']; ?>
<div class="col-md-4">
(36)
<div class="panel-heading">Pilih Kategori</div> <div class="panel-body">
<?php
$qry=mysql_query("select tblujian.idujian, tblujian.st,
tblujianpeserta.idpeserta from tblujian INNER JOIN tblujianpeserta ON tblujian.idujian=tblujianpeserta.idujian where
tblujianpeserta.idpeserta='$id' and tblujian.st='1' order by tblujian.idujian desc");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$dataujian=mysql_fetch_array($qry); $idujian=$dataujian[0];
$ket=$db->tampilrecord("tblujian", "idujian='$idujian'", "keterangan");
$jabatan=$db->tampilrecord("tblujian", "idujian='$idujian'", "jabatan");
} ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table">
<tbody> <?php
#echo $idujian.' '.$id;
$qry=mysql_query("select * from tblujianwaktu where
idujian='$idujian' and idpeserta='$id' and waktu>0 order by kategori asc");
while ($data=mysql_fetch_array($qry)){ ?>
(37)
<td><a href="#" class="btn btn-warning btn-block cmdpilih" id="<?php echo $data['kategori']; ?>"><?php echo
$data['kategori']; ?></a></td> </tr>
<?php } ?> </tbody> </table>
</div> </div> </div>
<div class="col-md-8"> <?php
echo '<div class="alert alert-danger" role="alert"> <h3>Petunjuk Soal:</h3>
<p>
Soal terdiri dari 3 kategori.<br>
Anda dapat beralih ke soal berikutnya secara otomatis ketika menjawab pertanyaan. <br>
Apabila soal sudah terjawab semua, anda dapat memperbaiki jawaban anda sesuai nomor urutannya, nomor urutannya berada pada sisi bawah.
</p>
<p><a href="logout.php" class="btn btn-danger btn-sm">Logout</a> <a href="#" class="btn btn-danger btn-sm"
id="cmdulangi">Ulangi</a> </p>
</div>'; ?>
(38)
<div id="hasilakhir"></div> </div>
<script>
$(document).ready(function(e) {
$('.cmdpilih').click(function(e) { var nilai=$(this).attr('id');
$.post('home/pilihkategori.php', { kategori:nilai
}, function (data, status){
document.location.href='home.php'; });
});
$('#cmdulangi').click(function(e) { $.post('home/ulangi.php', {
}, function (data, status){
document.location.href='home.php?page=zindex'; });
});
$('#cmdhasil').click(function(e) { $.post('home/hasilakhir.php', {
}, function (data, status){
});
$('#hasilakhir').load('home/hasil.php'); });
}); </script
(39)
23.
Cekwaktu.php
<?php session_start(); ?> <?php
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta']; ?>
<?php
$waktu=$db->tampilrecord("tblpretesthasil", "idpeserta='$id' and st='1'", "waktu");
$idhasilpretest=0;
$idhasilpretest=$db->tampilrecord("tblpretesthasil", "idpeserta='$id' and st='1'", "idhasilpretest"); #echo $waktu;
if ($idhasilpretest!=0 and $waktu>=0){ $waktu--;
$qry=mysql_query("update tblpretesthasil set waktu='$waktu' where idhasilpretest='$idhasilpretest'");
if ($waktu<=0){
$qry=mysql_query("update tblpretesthasil set st='0', waktu='0' where idhasilpretest='$idhasilpretest'");
} } ?>
24.
Hitung.php
<?php session_start(); ?> <?php
include '../koneksi.php';
(40)
$jabatan=$_GET['jabatan'];
$jlhsoal=0; $jbenar=0; $ket=''; $stlulus=0;
$qry=mysql_query("select * from tblpretestpengaturan where jabatan='$jabatan'");
while ($data=mysql_fetch_array($qry)){ $jlhlulus=$data['lulus'];
$jlhsoal=$jlhsoal+$data['jlh']; $kategori=$data['kategori'];
$jlhbenar=$db->totalrecord("tblpretest", "idpeserta='$id' and jabatan='$jabatan' and kategori='$kategori' and st='1'");
if ($jlhbenar>=$jlhlulus){
} else{
$ket=$ket.$data['kategori'].' '; $stlulus=1;
} } # #
#echo "ST LULUS ".$stlulus;
#echo " JUMLAH BENAR ".$jlhbenar;
$jbenar=$db->totalrecord("tblpretest", "idpeserta='$id' and jabatan='$jabatan' and st='1'");
$nilai=($jbenar/$jlhsoal) * 100; #
(41)
if ($stlulus>=1){
$keterangan="Maaf anda tidak lulus. Anda gagal pada kategori ".$ket;
$klulus=0; }
else{
$keterangan="Selamat! Anda lulus"; $klulus=1;
}
$qry=mysql_query("update tblpretesthasil set hasil='$keterangan', nilai='$nilai', stlulus='$klulus' where idpeserta='$id' and
jabatan='$jabatan'"); if ($qry){
echo
"<script>document.location.href='tampilhasil.php?jabatan=$jabatan' ; </script>";
} else{
echo 'Terjadi kesalahan!'; }
?>
25.
Pilihjabatan.php
<?php session_start(); ?> <?php
(42)
$idpeserta=$_SESSION['sesiidpeserta']; $jabatan=$_GET['jabatan'];
$_SESSION['sesijabatan']=$jabatan; #
$qry=mysql_query("delete from tblpretest where idpeserta='$idpeserta' and jabatan='$jabatan'"); if($qry){
} else{
echo "Terjadi kesalahan!"; exit;
} #
$waktu=0;
$qry=mysql_query("select * from tblpretestpengaturan where jabatan='$jabatan'");
while ($dataku=mysql_fetch_array($qry)){ $jlhsoal=$dataku['jlh'];
$kategori=$dataku['kategori']; $waktu=$waktu+$dataku['waktu']; #
$qrysoal=mysql_query("SELECT * FROM tblsoal where
kategori='$dataku[kategori]' and jabatan='$jabatan' ORDER BY RAND() LIMIT ".$jlhsoal);
while ($datasoal=mysql_fetch_array($qrysoal)){ $idsoal=$datasoal['idsoal'];
$db->simpansoalpretest($idpeserta, $idsoal, $kategori, $jabatan);
(43)
}
if ($db->cekrecord("select * from tblpretesthasil where idpeserta='$idpeserta' and jabatan='$jabatan'")==true){
$qry=mysql_query("update tblpretesthasil set st='0' where idpeserta='$idpeserta'");
$qry=mysql_query("update tblpretesthasil set hasil='',
nilai='', waktu='$waktu', st='1' where idpeserta='$idpeserta' and jabatan='$jabatan'");
if ($qry){
} else{
echo "Gagal Edit"; }
} else{
$qry=mysql_query("insert into tblpretesthasil (idpeserta, jabatan, hasil, nilai, waktu, st) values ('$idpeserta', '$jabatan', '', '0', '$waktu', '1')");
if ($qry){ }
else{
echo "gagal tambah"; }
}
echo "<script> document.location.href='index.php'; </script>"; ?>
(44)
26.
Soal.php
<?php error_reporting("E_ALL ^ E_NOTICE"); ?> <?php session_start(); ?>
<?php
include '../koneksi.php';
$id=$_SESSION['sesiidpeserta']; ?>
<div class="col-md-12"> <?php
$qry=mysql_query("select * from tblpretesthasil where idpeserta='$id' and st='1'");
$jlh=mysql_num_rows($qry); if ($jlh>=1){
$jabatan=$db->tampilrecord("tblpretesthasil", "idpeserta='$id' and st='1'", "jabatan");
?>
<!-- -->
<p style="font-family:Lucida Sans Cambria, 'Hoefler Text', 'Liberation Serif', Times, 'Times New Roman', serif; font-size:16px; color:#B30002; font-weight:bold;
text-transform:uppercase" align="center">JABATAN : <?php echo strtoupper($jabatan); ?></p>
<p align="center">
<div style="width:280px; margin-left:auto; margin-right:auto"> <?php
$waktu=$db->tampilrecord("tblpretesthasil", "idpeserta='$id' and st='1'", "waktu");
(45)
if ($waktu<=0){ echo "<script>
document.location.href='index.php?page=hasil&jabatan=$jabatan'; </script>";
} ?>
<div class="alert alert-warning" role="alert" style="text-align:center">
<small>Waktu</small>
<h1 align="center"><?php echo $waktu; ?></h1> </div>
</div> </p> <!-- --> <?php
$qry=mysql_query("select * from tblpretest where
idpeserta='$id' and jabatan='$jabatan' and jwb='0' order by idpretest asc");
$jlhsoal=mysql_num_rows($qry); if ($jlhsoal>=1){
$data=mysql_fetch_array($qry); $soal=$db->tampilrecord("tblsoal", "idsoal='$data[idsoal]'", "soal");
$jwba=$db->tampilrecord("tblsoal", "idsoal='$data[idsoal]'", "jwb_a");
$jwbb=$db->tampilrecord("tblsoal", "idsoal='$data[idsoal]'", "jwb_b");
$jwbc=$db->tampilrecord("tblsoal", "idsoal='$data[idsoal]'", "jwb_c");
(46)
$jwbd=$db->tampilrecord("tblsoal", "idsoal='$data[idsoal]'", "jwb_d");
$kelompok=$db->tampilrecord("tblsoal", "idsoal='$data[idsoal]'", "kategori");
?>
<h3 style="margin-top:5px;" align="center">SOAL <?php echo strtoupper($kelompok); ?></h3>
<div style="width:100%; border-bottom:solid 2px #477E00;"></div> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table" style="font-size:16px; font-weight:bold;">
<tbody> <tr>
<td colspan="2"><div style="font-size:14px; color:#01118F; font-weight:bold;">No Soal : <?php echo $_SESSION['nosoal']; ?></div></td>
</tr> <tr>
<td colspan="2"><?php echo $soal; ?><input type="hidden" name="txtidsoal" id="txtidsoal" value="<?php echo $data[idsoal]; ?>">
<input type="hidden" name="txtidpeserta" id="txtidpeserta" value="<?php echo $id;?>"> <input name="txtidujian" type="hidden" id="txtidujian" value="<?php echo $idujian; ?>"></td>
</tr> <tr>
<td width="3%"><input type="button" name="a" id="a" value="A" class="btn btn-primary cmdok"></td>
<td width="97%"><?php echo $jwba; ?></td> </tr>
(47)
<td><input type="button" name="b" id="b" value="B" class="btn btn-primary cmdok"></td>
<td><?php echo $jwbb; ?></td> </tr>
<tr>
<td><input type="button" name="c" id="c" value="C" class="btn btn-primary cmdok"></td>
<td><?php echo $jwbc; ?></td> </tr>
<tr>
<td><input type="button" name="d" id="d" value="D" class="btn btn-primary cmdok"></td>
<td><?php echo $jwbd; ?></td> </tr>
</tbody> </table> <?php
} ?> <p>
<div style="font-size:16px; margin-bottom:5px; margin-top:10px; border-top:solid 1px #B0B0B0;">No Soal</div>
<ul class="pagination" style="margin:0"> <?php
$no=0;
$qry=mysql_query("select * from tblpretest where
idpeserta='$id' and jabatan='$jabatan' order by idsoal asc"); while ($data=mysql_fetch_array($qry)){
$no++; ?>
(48)
<li><a href="#" class="cmdpilih" id="<?php echo $data['idpretest']; ?>"><?php echo $no; ?></a>
</li> <?php } ?> </ul> <br>
<a href="index.php?page=zindex" class="btn default btn-sm">Kembali</a>
</p> <?php } else{
$jabatan=$_SESSION['sesijabatan'];
echo '<div class="alert alert-danger" role="alert"> <h3>Petunjuk Soal:</h3>
<p>
Soal terdiri dari 3 kategori.<br>
Anda dapat beralih ke soal berikutnya secara otomatis ketika menjawab pertanyaan. <br>
Apabila soal sudah terjawab semua, anda dapat memperbaiki jawaban anda sesuai nomor urutannya, nomor urutannya berada pada sisi bawah.
</p> <p>
<a href="hitung.php?jabatan='.$jabatan.'" class="btn btn-primary btn-sm">Lihat Hasil</a>
<a href="index.php?page=ulang" class="btn warning btn-sm">Ulangi</a>
<a href="../logout.php" class="btn btn-danger btn-sm">Logout</a> </div>';
(49)
} ?> </div>
<script>
$(document).ready(function(e) { $('.cmdok').click(function(e) { var nilai=$(this).attr('id');
$.post('simpan.php', {
idujian:$('#txtidujian').val(), idsoal:$('#txtidsoal').val(),
idpeserta:$('#txtidpeserta').val(), nilai:nilai
}, function (data, status){ if (data==''){
} else{
$.alert({content:data}); }
}); });
$('.cmdpilih').click(function(e) { var nilai=$(this).attr('id');
$.post('pilih.php', { nilai:nilai
(50)
if (data==''){
} else{
$.alert({content:data}); }
}); }); });
</script>
27.
Tampilhasil.php
<?php error_reporting("E_ALL ^ E_NOTICE"); ?> <?php include '../cekuser.php'; ?>
<?php include '../koneksi.php'; ?> <?php
$idpeserta=$_SESSION['sesiidpeserta'];
$nama=$db->tampilrecord("tblpeserta", "idpeserta='$idpeserta'", "nama");
$temail=$db->tampilrecord("tblpeserta", "idpeserta='$idpeserta'", "email");
$jabatan=$_SESSION['sesijabatan'];
$pretest=$db->tampilrecord("tblpengaturan", "kriteria='PRETEST'", "nilai");
if ($pretest<=0){
echo "<script> document.location.href='../home.php'; </script>";
(51)
# # #
?>
<!doctype html> <html>
<head>
<meta charset="utf-8">
<title>PERANCANGAN APLIKASI SIMULASI PSIKOTEST BERBASIS WEB</title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="../style-home.css">
<link rel="stylesheet" href="../administrator/alert/css/jquery-confirm.css">
<script type="text/javascript"
src="../bootstrap/js/bootstrap.min.js"></script> <script src="../js/jquery.min.js"></script> <script src="../administrator/alert/js/jquery-confirm.js"></script>
</head>
<body> <?php
?>
<div id="wrapper">
<div id="header"></div> <div id="container">
(52)
<div class="row" style="padding:10px;">
<div class="panel panel-info"> <div class="panel-heading">
<h4 class="panel-title">Simulasi Psikotest</h4> </div>
<div class="panel-body">
<div class="col-md-6 col-xs-offset-3"> <!-- -->
<div class="panel panel-primary"> <div class="panel-heading">
<h4 class="panel-title">Hasil Ujian</h4> </div>
<div class="panel-body"> <?php
$nilai=$db->tampilrecord("tblpretesthasil",
"idpeserta='$idpeserta' and jabatan='$jabatan'", "nilai"); $status=$db->tampilrecord("tblpretesthasil",
"idpeserta='$idpeserta' and jabatan='$jabatan'", "stlulus"); $keterangan=$db->tampilrecord("tblpretesthasil",
"idpeserta='$idpeserta' and jabatan='$jabatan'", "hasil");
$status>=1 ? $stx="<div class='label label-success'>Lulus</div>" : $stx="<div class='label label-danger'>Tidak Lulus</div>";
if ($status>=1){
$ket="<div class='alert
alert-success'><h3>$keterangan</h3></div>"; }
(53)
$ket="<div class='alert alert-danger'><h4>$keterangan</h4></div>"; }
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="table table-striped">
<tbody> <tr>
<td width="26%"><em>Nama</em></td>
<td width="74%"><?php echo $nama; ?></td> </tr>
<tr>
<td><em>Jabatan diuji</em></td> <td><?php echo $jabatan; ?></td> </tr>
<tr>
<td><em>Nilai</em></td>
<td><?php echo $nilai; ?></td> </tr>
<tr>
<td><em>Status</em></td> <td><?php echo $stx; ?></td> </tr>
<tr>
<td><em>Keterangan</em></td> <td><?php echo $ket; ?></td> </tr>
<tr>
(54)
<td><a href="index.php" class="btn primary btn-sm">Ulangi</a></td>
</tr> </tbody> </table>
</div> </div> <!-- --> </div> </div> </div>
</div> </div> </div>
</body> </html>
28.
Administrator/menu.php
<ul class="sidebar-menu">
<li class="header">MAIN NAVIGATION</li> <li class="active">
<a href="index.php">
<i class="fa fa-dashboard"></i> <span>Dashboard</span> <i class="fa fa-angle-left pull-right"></i>
</a> </li>
(55)
<li class="header">PENGATURAN PESERTA</li>
<li><a href="index.php?page=peserta"><i class="fa fa-th"></i> <span>Data Peserta</span></a></li>
<?php
$pretest=$db->tampilrecord("tblpengaturan", "kriteria='PRETEST'", "nilai");
if ($pretest>=1){
echo '<li><a href="index.php?page=ujian"><i class="fa fa-circle-o text-red"></i> <span>Ujian</span></a></li>';
} else{ ?>
<li><a href="index.php?page=dataujian"><i class="fa fa-circle-o text-red"></i> <span>Data Ujian</span></a></li>
<?php } ?>
<li class="header">SOAL</li>
<li><a href="index.php?page=kategori"><i class="fa fa-circle-o text-red"></i> <span>Kategori</span></a></li>
<li><a href="index.php?page=jabatan"><i class="fa fa-circle-o text-red"></i> <span>Jabatan</span></a></li>
<li><a href="index.php?page=_soal"><i class="fa fa-circle-o text-yellow"></i> <span>Data Soal</span></a></li>
<li><a href="index.php?page=gambar"><i class="fa fa-circle-o text-yellow"></i> <span>File Gambar</span></a></li>
</ul>
29.
Administrator/isi.php
<?php
(56)
$sfile=$_GET["sfile"]; if ($page==''){
include 'page/index.php'; }
else{
if ($sfile=='' or !isset($sfile)){
if (file_exists('page/'.$page.'/index.php')){ include 'page/'.$page.'/index.php'; }
else{
include 'error404.html'; }
} else{
if (file_exists('page/'.$page.'/'.$sfile.'.php')){ include 'page/'.$page.'/'.$sfile.'.php'; }
else{
include 'error404.html'; }
} }
?>
30.
Asministrator/cetak.php
<?php
ini_set("memory_limit","1000M");
require_once("dompdf_config.inc.php"); $namafile=$_POST['namafile'];
(57)
if ( isset( $_POST["html"] )) {
if ( get_magic_quotes_gpc() )
$_POST["html"] = stripslashes($_POST["html"]);
$dompdf = new DOMPDF();
$dompdf->load_html($_POST["html"]); $dompdf->set_paper("a4", "potrait"); $dompdf->render();
$dompdf->stream($namafile, array("Attachment" => false));
exit(0); }
?>
31.
Administrator/logout.php
<?php session_start(); ?> <?php
unset($_SESSION['sesipsikologiuser']); unset($_SESSION['sesipsikologipass']);
echo "<script> document.location.href='../index.php'; </script>";
(58)
Daftar Pustaka
Kristanto, A, 2003. Perancangan Sistem Informasi dan Aplikasinya, Yogyakarta:
Gava Media.
Betha, Sidik, Ir. 2007. Pemrograman Web dengan HTML.Bandung: Informatika
Bandung.
Adnyani, Nyoman. 2002. Kelemahan-Kelemahan Penerimaan Siswa SMP yang
Beracuan pada
NUAN. Makalah yang Disampaikan dalam Seminar Ilmiah
Universitas Mahasaraswati, September 2003.
Abdul, Kadir. 2003. Pengenalan Sistem Informasi. Andi : Yogyakarta.
Fadjar. 2002.
Pengenalan Nilai Budaya dan Etika Bagi Mahasiswa. Yogyakarta :
Yayasan
Penerbitan.
Kristanto, Andri. 2008.
Perancangan Sistem Informasi dan Aplikasinya. Gava Ilmu :
Yogyakarta.
Munandar, Imam dkk. 2012. Sistem Basis Data Akademik Sekolah Berbasis Web Pada
SMPN 5
Jakarta.
Betha, Sidik, Ir. 2007. Pemrograman Web dengan HTML.Bandung: Informatika
Bandung.
Adnyani, Nyoman. 2002. Kelemahan-Kelemahan Penerimaan Siswa SMP yang
Beracuan pada NUAN. Makalah yang Disampaikan dalam Seminar Ilmiah Universitas
Mahasaraswati,
September 2003.
Abdul, Kadir. 2003. Pengenalan Sistem Informasi. Andi : Yogyakarta.
Kristanto, Andri. 2008. Perancangan Sistem Informasi dan Aplikasinya. Gava Ilmu :
Yogyakarta.
Munandar, Imam dkk. 2012. Sistem Basis Data Akademik Sekolah Berbasis Web Pada
SMPN 5 Jakarta.
(59)
BAB 3
ANALISA PERANCANGAN SISTEM
3.1
Perancangan Sistem
Perancangan Sistem adalah upaya suatu organisasi atau lembaga untuk memulai
memiliki suatu sistem yang lebih baik lagi dari sistem yang sebelumnya. Perancangan
sistem dilakukan setelah mendapat gambaran dengan jelas apa yang harus dikerjakan.
Tujuan dari perancangan sistem adalah untuk memenuhi kebutuhan pemakai (
user
)
mengenai gambaran yang jelas tentang perancangan sistem yang akan dibuat serta
diimplementasikan.Perancangan sistem adalah suatu upaya untuk membuat suatu
sistem yang baru atau memperbaiki sistem yang lama secara keseluruhan atau
memperbaiki sistem yang telah ada. Desain sistem secara umum mengidentifikasikan
komponen-komponen sistem informasi yang akan didesain secara terinci. Desain
terinci dimaksudkan untuk pemrogram komputer dan ahli teknik lainnya yang akan
mengimplementasikan sistem.
3.2
Data Flow Diagram (DFD)
Data Flow Diagram
(DFD) adalah suatu diagram yang menggunakan notasi-notasi
untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu
untuk memahami sistem secara logika, tersruktur dan jelas. DFD merupakan alat
bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan logis.
DFD terdiri dari diagram konteks dan diagram rinci. Diagram konteks merupakan
(60)
diagram yang menggambarkan hubungan antarsistem dengan entitas di luar sistem,
merupakan sistem secara keseluruhan. Diagram rinci menggambarkan sistem sebagai
jaringan kerja antara fungsi yang berhubungan satu dengan yang lain dengan aliran
penyimpanan data, model ini hanya memodelkan sistem dari sudut pandang fungsi.
Agar suatu sistem terstruktur, dapat dibuat suatu proses modeling dimana hasil dari
proses modeling tersebut berupa diagram konteks. Aplikasi perancangan simulasi
psikotest berbasis web bekerja dengan proses user terlebih dulu melakukan registrasi
sebelum memulai dan akan dientrykan administrator ke dalam sebuah database data
peserta. Dari
website
tersebut akhirnya dirancang sebuah form pendaftaran simulasi
psikotest untuk dapat dilihat dan diisi oleh pihak pendaftar. Untuk lebih jelasnya dapat
dilihat pada gambar 3.2.1 diagram konteks berikut ini :
Peserta Administrator
Registrasi Ujian
Data Kategori Data Soal Data Peserta
Data Ujian Hasil Ujian
0.0
Simulasi Psikotest
(61)
3.3
Data Flow Diagram
Level 0 Simulasi Psikotest
Administrator 1.0 Login Administrator 2.0 Data Peserta Peserta 3.0 Data Kategori 4.0 Data Jabatan 5.0 Data Soal 6.0 Registrasi Peserta 7.0 Login Peserta 8.0 Simulasi Ujian 9.0 Hasil Ujian D1 D2 D3 D4 D5Username & Password
Verifikasi Data Password
Verifikasi Password Data Kategori Data Kategori Data Jabatan Data Jabatan Data Peserta Verifikasi Data
Email & Password Data Peserta Data Peserta Data Peserta Data Soal Data Kategori Data Jabatan Daftar Soal D6 Jawaban Hasil Jabawan Nilai Hasil Ujian Tabel Login Tabel Peserta Tabel Kategori Tabel Soal Tabel Jawaban Tabel Jabatan
(62)
3.4
Data Flow Diagram
Level 1 Simulasi Psikotest
Peserta
8.1 Pilih Kategori
8.2 Acak Soal
8.3 Ujian
8.4 Hasil Ujian
D8
D8
D8
Kategori
Data Kategori
Soal Berkategori Soal Berkategori
Soal Acak Jawaban
Jawaban
Hasil Ujian Hasil Ujian
Soal
Soal
Tabel kategori
Tabel Soal
Tabel Jawaban
Gambar 3.4.1 DFD Level 1
3.5
Entity Relationship Diagram
(ERD)
Berikut ini adalah gambaran dari
Entity Relationship Diagram
(ERD) dari admin
simulasi psikotest. Berikut merupakan penjelasan ERD, yaitu dimulai dari entitas table
peserta. Entitas table peserta memiliki sepuluh atribut yaitu id peserta, nama, jenis
kelamin, tempat, tanggal lahir, alamat, pendidikan, email, password dan waktu. Jika
user memiliki atribut tersebut maka admin akan menyajikan soal ke entitas peserta. Di
dalam entitas tabel soal ada beberapa atribut, yaitu id soal, kategori, jabatan dan soal.
Soal menyajikan bentuk berupa kategori soal. Di dalam entitas kategori ada atribut
(63)
kategori dan di dalam entitas tabel jawaban ada beberapa atribut, yaitu id jawaban, id
ujian, id peserta, id soal, jawab, dan kategori. Di dalam tabel jawaban, jawaban akan
disimpan. Untuk lebih jelasnya dapat dilihat pada gambar 3.5.1
Entity Relationship
Diagram
(ERD) berikut ini:
tblpeserta tblsoal tbljawaban menyajikan menyimpan alamat email nama jabatan idsoal idpeserta idjawaban menyajikan tblkategori kategori 1 1 idpeserta waktu jk tempat tgllahir pendidika n pass soal kategori idsoal kategori idujian jwb n n 1 n
Gambar 3.5.1
Entity Relationship Diagram
(ERD)
3.6
Perancangan
Database
Perancangan
database
adalah perancangan yang dilakukan untuk menentukan file
database
seperti
field
dan tipe data.Dalam hal merancang sebuah sistem yang berbasis
database
, perancangan
database
merupakan hal yang perlu mendapat perhatian
khusus. Karena
database
berperanpenting untuk memanipulasi data
user
dari aplikasi
yang dibuat. Kesulitan utamadalam perancangan
database
adalah mengelompokkan
field-field
secara terstruktur kedalam beberapa tabel sesuai dengan informasi yang
terkandung di dalamnya. Berikut adalah rancangan tabel yang digunakan dalam
membangun
database
:
(64)
Tabel 3.1 Tabel Admin
No
Field Nama
Data Tipe
Size
Keterangan
1
2
user
pass
Varchar
Varchar
50
50
Username
Password
Tabel 3.2 Tabel Gambar
No
Field Nama
Data Tipe
Size
Keterangan
1
2
idgambar
gambar
Integer
Varchar
11
200
Id Gambar
Nama Gambar
Tabel 3.3 Tabel Jabatan
No
Field Nama
Data Tipe
Size
Keterangan
1.
jabatan
Varchar
50
Jabatan
Tabel 3.4 Tabel Jawaban
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
7.
idjawaban
id ujian
idpeserta
idsoal
jwb
kategori
st
Integer
Integer
Integer
Integer
Varhar
Varchar
Integer
11
11
11
11
1
50
1
Jawaban
Ujian
Peserta
Soal
Jawaban
Kategori
Jawaban Benar/Salah
(65)
Tabel 3.5 Tabel Kategori
No
Field Nama
Data Tipe
Size
Keterangan
1.
kategori
Varchar
50
Kategori
Tabel 3.6 Tabel Pengaturan
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
kriteria
nilai
Varchar
Text
200
-
Kriteria
Nilai
Tabel 3.7 Tabel Peserta
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
idpeserta
nama
jk
tempat
tgllahir
alamat
pendidikan
password
waktu
Varchar
Varchar
Varchar
Varchar
Date
Varchar
Varchar
Varchar
Varchar
Integer
200
-
50
100
-
100
10
50
60
11
Kriteria
Nilai
Jenis Kelamin
Tempat
Tanggal Lahir
Alamat
Pendidikan
Password
Waktu
(66)
Tabel 3.8 Tabel Test
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
7.
idtest
idpeserta
idsoal
kategori
jabatan
jwb
st
Integer
Integer
Integer
Varchar
Varchar
Integer
Integer
11
11
11
50
50
1
1
Kriteria
Nilai
Soal
Kategori
Jabatan
Jawaban
Jawaban Benar / Salah
Tabel 3.9 Tabel Hasil Test
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
7.
8.
idhasiltest
idpeserta
jabatan
hasil
nilai
waktu
st
stlulus
Integer
Integer
Varchar
Varchar
double
Integer
Integer
Integer
11
11
50
255
-
11
1
1
Id Hasil Test
Id Peserta
Jabatan
Hasil
Nilai
Waktu
Jawaban Benar / Salah
Selesai Test
(67)
Tabel 3.10 Tabel Pengaturan Test
No
Field Nama
Data
Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
idtestpengaturan
jabatan
kategori
jlh
lulus
waktu
Integer
Varchar
Varchar
Integer
Integer
Integer
11
50
50
11
11
11
Id Pengaturan Test
Jabatan
Kategori
Jumlah
Lulus
Waktu
Tabel 3.11 Tabel Soal
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
idsoal*
kategori
jabatan
soal
Integer
Varchar
Varchar
Text
11
50
50
-
Id Soal
Kategori
Jabatan
Soal
Tabel 3.12 Tabel Ujian
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
idujian
keterangan
tgl
st
waktu
Integer
Varchar
Date
Integer
Integer
11
255
-
1
11
Id Ujian
Keterangan
Tanggal
Jawaban Benar / Salah
Waktu
(68)
6.
7.
8.
cwaktu
hasil
jabatan
Integer
Varchar
Varchar
11
255
50
Cek Waktu
Hasil
Jabatan
Tabel 3.13 Tabel Ujian Kategori
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
idujiankategori
idujian
kategori
jlhsoal
jlhlulus
waktu
Integer
Integer
Varchar
Integer
Integer
Integer
11
11
50
11
11
11
Id Ujian Kategori
Id Ujian
Kategori
Jumlah Soal
Jumlah Lulus
Waktu
Tabel 3.14 Tabel Ujian Peserta
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
idujianpeserta
idujian
idpeserta
ket
nilai
lulus
Integer
Integer
Integer
Varchar
Integer
Integer
11
11
11
255
11
1
Id Ujian Peserta
Id Ujian
Id Peserta
Keterangan
Nilai
Lulus
(69)
Tabel 3.15 Tabel Ujian Waktu
No
Field Nama
Data Tipe
Size
Keterangan
1.
2.
3.
4.
5.
6.
idujianwaktu
idpeserta
idujian
kategori
st
waktu
Integer
Integer
Integer
Varchar
Integer
Integer
11
11
11
50
11
1
Id Ujian Waktu
Id Peserta
Id Ujian
Kategori
Jawaban Benar / Salah
Waktu
3.7
Flowchart
Flowchart
adalah
sekumpulan
simbol-simbol
yang
menunjukkan
atau
menggambarkan rangkaian kegiatan-kegiatan program dari awal hingga akhir,
flowchart
juga digunakan untuk menggambarkan urutan langkah-langkah pekerjaan di
suatu algoritma. Di dalam web ini ada beberapa
flowchart
, yaitu
flowchart
menu
utama,
flowchart administrator
, dan lain-lain. Berikut ini merupakan penjelasan
program Perancangan Aplikasi Simulasi Psikotest Berbasis Web berikut ini.
3.7.1
Flowchart
Menu
Admin
Flowchart
ini menjelaskan bagan dari halaman
web administrator
. Untuk masuk ke
halaman admin maka akan muncul tampilan halaman admin. Selanjutnya
home page
halaman admin, maka akan muncul menu-menu yang tersedia di halaman admin.
(70)
Mulai
Tampilan Halaman Admin
Menu Data Peserta
Menu Ujian
Menu Kategori
Menu Jabatan Data
Peserta
Pengatura n Soal
KategoriSoal
Jenis Jabatan
Keluar
Selesai Admin
S
B S
B
B S
S
B S
B
Data Soal
Komentar S
B
Gambar 3.7.1
Flowchart
Menu
Administrator
3.7.2
Flowchart
Menu Kategori
Dalam menu kategori soal, admin dapat menambah dan menghapus jenis kategori
soal. Jika kategori soal dihapus maka soal-soal otomatis juga terhapus semua. Berikut
ini merupakan
flowchart
halaman menu kategori soal.
(71)
Mulai
Kategori
Tampilan Kategori
Tambah Kategori
Hapus Kategori Simpan
Kategori
Kategori Telah Dihapus
Selesai S B
B
Gambar 3.7.2
Flowchart
Menu Kategori Soal
3.7.3
Flowchart
Menu Jabatan
Berikut ini merupakan penjelasan
flowcahart
jabatan. Didalam menu ini terdapat
beberapa jenis jabatan yang nantinya akan dipilih user. Jadi user dapat memilih
tingkatan jabatan yang diinginkan. Berikut ini merupakan
flowchart
menu tingkatan
jabatan.
(72)
Mulai
Jabatan
Tampilan Jabatan
Tambah Jabatan
Hapus Jabatan Simpan
Jabatan
Jabatan Telah Dihapus
Selesai S B
B
(73)
3.7.4
Flowchart
Menu Soal
Berikut ini merupakan penjelasan
flowchart
menu soal, dimana dalam menu soal
terdapat soal-soal berdasarkan kategori soal yang telah disimpan. Admin dapat
menambah dan menghapus jenis soal. Berikut merupakan
flowchart
menu soal.
Mulai
Soal
Daftar Jabatan
Pilih Materi
Tambah Soal
Edit Soal Simpan Soal
Simpan Hasil Editan
Keluar
Selesai B
S S
Pilih Kategori Soal
B S
S
B
S
B Hapus Soal
Data Telah Dihapus
S
B
Gambar 3.7.4
Flowchart
Menu Soal
(74)
Pada form ini terdapat login Admin, Registrasi user dan Login user. Admin akan
langsung login ke halaman admin jika melakukan login system. Untuk lebih
jelasnya dapat dilihat pada gambar tampilan berikut ini.
Gambar 3.7.5 Tampilan Halaman Utama
2.
Tampilan Menu Registrasi
Sebelum user memulai simulasi, terlebih dahulu user melakukan registrasi. Jika
user telah selesai melakukan registrasi, user akan langsung dapat login untuk
memulai simulasi. Untuk lebih jelasnya dapat dilihat pada gambar tampilan
berikut ini.
(75)
Gambar 3.7.6 Tampilan Menu Registrasi
3.
Tampilan Menu Jabatan
Di dalam tampilan menu jabatan, terdapat beberapa tingkatan jabatan yang akan
dipilih user yaitu Manager, Staff dan Supervisor serta diberikan petunjuk soal.
Jadi, sebelum user melakukan soal simulasi, simaklah dengan baik petunjuk soal
yang telah ditampilkan. Setelah itu user dapat langsung mengerjakan soal simulasi.
(76)
4.
Tampilan Simulasi
Di dalam tampilan ini, user dapat langsung mengerjakan soal simulasi setelah
memilih jabatan yang diinginkan. Terdapat timer pada simulasi psikotest
sehingga user dapat mengelola waktu mengerjakan soal
–
soal simulasi dengan
baik.
(77)
BAB 4
IMPLEMENTASI SISTEM
4.1
Pengertian Implementasi Sistem
Implementasi sistem adalah suatu prosedur yang dilakukan untuk menyelesaikan
sistem yang ada dalam dokumen rancangan sistem yang telah disetujui dan telah diuji,
menginstal dan menggunakan sistem baru yang telah diperbaiki. Adapun
langkah-langkah yang dibutuhkan dalam implementasi sistem adalah:
1.
Mendapatkan
software
dan
hardware
yang tepat serta sesuai untuk merancang
website.
2.
Menyelesaikan rancangan sistem.
3.
Menulis, menguji, mengontrol, dan mendokumentasikan
website.
4.
Mendapatkan persetujuan.
4.2
Tujuan Implementasi Sistem
Adapun tujuan implementasi sistem adalah sebagai berikut:
1.
Mengkaji rangkaian sistem baik dari segi
software
maupun
hardware
sebagai
sarana pengolahan data dan penyajian informasi.
2.
Menyelesaikan rancangan sistem yang ada didalam dokumen sistem yang baru atau
yang telah disetujui.
(78)
3.
Memastikan pengujung dapat mengoprasikan dengan mudah terhadap sistem yang
baru dan mendapat informasi yang baik dan jelas.
4.
Memastikan bahwa yang telah berjalan dengan lancer dan melakukan instalasi secara
benar .
4.3
Komponen Sistem
Komponen-komponen system yang dibutuhkan dalam membangun aplikasi ini
diantaranya adalah:
a.
Hardware
Hardware
adalah suatu komponen yang sangat dibutuhkan dalam mewujudkan sistem
yang diusulkan. Dalam hal ini penulis merinci spesifikasi komponen hardware yaitu:
1.
Sistem Operasi menggunakan windows 7
2.
PC dengan processor intel inside
3.
RAM dengan kapasitas 2.00 GB.
4.
Flash disk 16 GB
5.
Monitor super VGA.
6.
Memory minimal 128MB.
7.
Keyboard.
8.
Mouse.
b.
Software
Hardware
tidak akan pernah memecahkan suatu masalah tanpa adanya komponen
software
. Adapun
software
yang digunakan dalam pembuatan
website
ini adalah :
1.
Sistem Opersai Ms. Windows .
(1)
Akhir kata Penulis berharap semoga Tugas Akhir ini bermanfaat bagi siapa pun yang membacanya. Semoga Tuhan Yang Maha Esa senantiasa memberikan rahmat kepada kita semua. Amin.
Medan, Juni 2016 Penulis,
(2)
ABSTRAK
Perancangan Aplikasi Simulasi Psikotest Berbasis Web bertujuan untuk mengukur aspek individu secara psikis. Tes ini dapat berbentuk tertulis, proyektif, atau evaluasi secara verbal yang teradministrasi untuk mengukur fungsi atau kemampuan kognitif dan emosional seseorang. Pada Proses pembuatan aplikasi ini perangkat lunak yang digunakan adalah XAMPP yang merupakan gabungan dari Apache Web Server, PHP, dan MySQL, Sublime Text 2, Browser Mozilla Firefox dan Google Chrome.
(3)
DAFTAR ISI
HALAMAN
PERSETUJUAN i
PERNYATAAN ii
PENGHARGAAN iii
ABSTRAK v
DAFTAR ISI vi
DAFTAR TABEL viii
DAFTAR GAMBAR ix
BAB 1 Pendahuluan 1.1 Latar Belakang 1
1.2 Perumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 4
1.5 Manfaat Peneltian 4
1.6 Metodologi Penelitian 5
1.7 Sistematika Penulisan 6
BAB 2 Landasan Teori 2.1 Pengertian Aplikasi 8
2.1.1 Aplikasi Web 9
2.1.1 Keunggulan Aplikasi Web 10
2.2 Bagian Alir (Flowchart) 11
2.3 Pengertian Basis Data (Database) 12
2.4 Sejarah dan Perkembangan Internet 12
2.4.1 Jaringan Internet 14
(4)
2.5.1 Web Browser 17
2.5.2 Web Server 17
2.6 PHP 18
2.7 MySQL 18
2.8 HTML 19
2.9 Javasript 19
2.10 CSS 20
2.11 Studi Sejenis 21
BAB 3 ANALISA PERANCANGAN SISTEM 3.1 Perancangan Sistem 24
3.2 Data Flow Diagram (DFD) 24
3.3 Data Flow Diagram Level 0 26
3.4 Data Flow Diagram Level 1 27
3.5 Entity Relationship Diagram (ERD) 27
3.6 Perancangan Database 28
3.7 Flowchart 34
3.7.1 Flowchart Menu Admin 34
3.7.2 Flowchart Menu Kategori 35
3.7.3 Flowchart Menu Jabatan 36
3.7.4 Flowchart Menu Soal 37
BAB 4 IMPLEMENTASI SISTEM 4.1 Pengertian Implementasi Sistem 42
4.2 Tujuan Implementasi Sistem 42
4.3 Komponen Sistem 43
4.4 Tampilan Halaman 45
BAB 5 5.1 Kesimpulan 49
(5)
DAFTAR TABEL
2.1 Tabel Simbol-Simbol flowchart 11
3.1 Tabel Admin 29
3.2 Tabel Gambar 29
3.3 Tabel Jabatan 29
3.4 Tabel Jawaban 29
3.5 Tabel Kategori 30
3.6 Tabel Pengaturan 30
3.7 Tabel Peserta 30
3.8 Tabel Test 31
3.9 Tabel Hasil Test 31
3.10 Tabel Pengaturan Test 32
3.11 Tabel Soal 32
3.12 Tabel Ujian 32
3.13 Tabel Ujian Kategori 33
3.14 Tabel Peserta 33
(6)
DAFTAR GAMBAR
Nomor Judul Halaman Gambar
3.2.1 Gambar Diagram Konteks 25
3.3.1 Gambar DFD Level 0 26
3.4.1 Gambar DFD Level 1 27
3.5.1 Gambar Entity Relationship Diagram (ERD) 28
3.7.1 Gambar Flowchart Menu Admin 35
3.7.2 Gambar Flowchart Menu Kategori 36
3.7.3 Gambar Flowchart Menu Jabatan 37
3.7.4 Gambar Flowchart Menu Soal 38
3.7.5 Gambar Flowchart Menu Halaman Utama 39
3.7.6 Gambar Flowchart Menu Registrasi 39
3.7.7 Gambar Flowchart Menu Jabatan 40
3.7.8 Gambar Flowchart Menu Simulasi 41
4.4.1 Gambar Tampilan Halaman Utama 45
4.4.2 Gambar Tampilan Menu Registrasi 46
4.4.3 Gambar Tampilan Menu Jabatan 47