Anda di halaman 1dari 7

Awalnya mungkin terpikir dalam benak bahwa untuk membuat program

seperti itu kita harus membuat file sebanyak jumlah soal. Namun tidak
demikian jika kita simpan soal-soal tersebut dalam database. Di sini kita
menggunakan mysql yaa.

Pertama kita buat databasenya. Database yang kita buat bernama db_soal,
berisikan no, soal, a, b, c, d, kunci. Di bawah ini adalah isinya. Boleh
langsung di-import saja.
1 /*
2
3 MySQL Data Transfer
4
Source Host: localhost
5
6 Source Database: db_soal
7
8 Target Host: localhost
9
10Target Database: db_soal
11
12Date: 3/19/2014 12:57:40 PM
13
14*/
15SET FOREIGN_KEY_CHECKS=0;
16
17-- ----------------------------
18
19-- Table structure for t_soal
20
21-- ----------------------------
22
23CREATE TABLE `t_soal` (
24
`no` int(11) NOT NULL AUTO_INCREMENT,
25
26`soal` text NOT NULL,
27
28`a` varchar(1000) NOT NULL,
29
30`b` varchar(1000) NOT NULL,
31
32`c` varchar(1000) NOT NULL,
33
34`d` varchar(1000) NOT NULL,
35
`kunci` varchar(1000) NOT NULL,
36
37PRIMARY KEY (`no`)
38
39) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
40
41-- ----------------------------
42
43-- Records
44
45-- ----------------------------
46INSERT INTO `t_soal` VALUES ('1', 'Siapa presiden pertama Indonesia', 'Soekarno', 'Suha
47
48INSERT INTO `t_soal` VALUES ('2', 'Apa kepanjangan dari NKRI', 'Negara Kesatuan Rakyat
49'Negara Kekeluargaan Rakyat Indonesia', 'Negara Kesatuan Republik Indonesia');
50
51INSERT INTO `t_soal` VALUES ('3', '2 + 2 = ', '10:3', '8:4', '(2:2)x(2*2)', '7:3', '(2:
52
53INSERT INTO `t_soal` VALUES ('4', 'UPI merupakan singkatan dari', 'Universitas Padahal
Benar', 'Universitas Pendidikan Indonesia');
54
55INSERT INTO `t_soal` VALUES ('5', 'Siapa nama ayah Arum Yuniarsih', 'Ruman', 'Jajang',
56
57INSERT INTO `t_soal` VALUES ('6', 'Malaikat pencabut nyawa adalah malaikat', 'Izroil',
58
59
60
61
Selanjutnya langsung ke PHP deh yaa.

koneksi.php
1
2 <?php
3
4 $db_host = 'localhost';
5
$db_user = 'root';
6
7 $db_pass = '';
8
9 $db_name = 'db_soal';
10
11 $dbh = mysql_connect($db_host, $db_user, $db_pass);
12
13 if ($dbh) {
14
mysql_select_db($db_name);
15
16 }else{
17
18 echo "database tidak tersedia";
19
20 }
21
22 ?>
23
index.php
<?php
1
2 include 'koneksi.php';
3
4 session_start();
5
$query = mysql_query("select * from t_soal") or die (mysql_error());
6
7 //$_SESSION['soal'] = mysql_fetch_array($query);
8
9 $_SESSION['soal'] = array();
10
11 $_SESSION['no'] = 1;
12
13 $_SESSION['score'] = 0;
14
15 $_SESSION['option'] = array();
16
$_SESSION['jawab'] = array();
17
18 $i=0;
19
20 while($row = mysql_fetch_assoc($query)){
21
22 $_SESSION['soal'][] = $row;
23
24 $_SESSION['option'][] = array($_SESSION['soal'][$i]['a'], $_SESSION['soal'][$i
25
26 $i++;
27
}
28
29 if(isset($_SESSION['soal'])){
30
31 header("location:test.php");
32
33 }
34
35?>
36
37
38
39
test.php
1 <?php
2
3 session_start();
4
$soal = $_SESSION['soal'];
5
6 $no = $_SESSION['no'];
7
8 if(isset($_POST['next'])){
9
10 $_SESSION['jawab'][] = $_POST['option'];
11
12 if($_POST['option'] == $soal[$no-2]['kunci']){
13
14 $_SESSION['score'] = $_SESSION['score'] + 10;
15
}
16
17 }
18
19 if(isset($soal[$no-1])){
20
21 ?>
22
23 <!DOCTYPE html>
24
25 <html>
26
<head>
27
28 <title>Latihan Soal</title>
29
30 </head>
31
32 <body>
33
34 <a href="index.php">Kembali ke soal 1</a>
35
36 <form action="" method="POST">
37
<p>
38
39 <?php
40
41 echo $no.". "; $_SESSION['no']++;
42
43 echo $soal[$no-1]['soal'];
44
45 $jawaban = $_SESSION['option'][$no-1];
46
shuffle($jawaban);
47
48 ?>
49
50 </p>
51
52 <?php
53
54 for ($i=0; $i < 4; $i++) {
55
56 ?>
57
<input type="radio" name="option" value="<?php echo $jawaban[$i]; ?>" r
58
59 <?php
60
61 }
62
63 ?>
64
<input type="submit" name="next" value="next">
65
66 </form>
67
68 </body>
69
70 </html>
71
72 <?php
73
74 }else{
75
header("location:result.php");
76
77 }
78
79 ?>
80
81
82
83
84
85
86
87
result.php
1 <?php
2
3 include 'koneksi.php';
4
session_start();
5
6 $jawab = $_SESSION['jawab'];
7
8 ?>
9
10 <!DOCTYPE html>
11
12 <html>
13
14 <head>
15
<title>Hasil Test</title>
16
17 </head>
18
19 <body>
20
21 <h1>Hasil Latihan</h1>
22
23 <h2>SCORE ANDA: <?php echo $_SESSION['score']; ?></h2>
24
25 <table border="1">
26
<tr>
27
28 <td>NO</td>
29
30 <td>Jawaban Anda</td>
31
32 <td>Kunci Jawaban</td>
33
34 <td>Status</td>
35
36 </tr>
37
<?php
38
39 $i = 0;
40
41 $benar = $salah = 0;
42
43 $sql = mysql_query("select * from t_soal");
44
45 while($key = mysql_fetch_array($sql)){
46
47 ?>
48
<tr>
49
50 <td><?php echo $i+1; ?></td>
51
52 <td><?php echo $jawab[$i] ?></td>
53
54 <td><?php echo $key['kunci']; ?></td>
55
56 <td>
57
<?php
58
59 if ($jawab[$i] == $key['kunci']) {
60
61 echo "Benar";
62
63 $benar++;
64
65 }else{
66
67 echo "Salah";
68
$salah++;
69
70 }
71
72 ?>
73
74 </td>
75
76 </tr>
77
<?php
78
79 $i++;
80
81 }
82
83 ?>
84
85 </table>
86
87 <h3>Benar: <?php echo $benar; ?><br>
88
Salah: <?php echo $salah; ?></h3>
89
90 <a href="index.php">Kembali</a>
91
92 </body>
93
94 </html>
95
96
97
98
99
100
101
102
103
Dalam program yang kita buat di atas masih belum dapat menerima ketika
browser meng-click tombol back.
Semoga bermanfaat (y).

Anda mungkin juga menyukai