Perancangan Aplikasi Simulasi Psikotest Berbasis Web

(1)

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>&nbsp;</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>&nbsp;</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 &amp; 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>&nbsp;</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 D5

Username & 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

email

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

Email

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