You are on page 1of 16

TRIK PEMROGRAMAN PHP

Script PHP untuk Membuat


Soal Ujian Pilihan Ganda
Tampil Acak
www.bunafit-komputer.com
www.planetKode.Com

Koleksi Buku dari Penerbit GAVAMEDIA, Yogyakarta


Penulis : Bunafit Nugroho, dan Indah Indriyanna

Harga: Rp. 57.500,- Harga: Rp. 65.500,- Harga: Rp. 36.500,- Harga: Rp. 67.500,-

Harga: Rp. 66.500,- Harga: Rp. 49.500,- Harga: Rp. 49.500,- Harga: Rp. 33.500,-
2 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

Script yang dibahas ada di buku “ Membuat Aplikasi e-


Learning dengan PHP – MySQL dan Editor
Dreamweaver “, terbitan Penerbit Atmajaya Yogyakarta,
2008. Masih beredar sampek sekarang.

Web eLearning Real yang sudah dikembangkan berbasis


Siswa (anggota) dan Guru, dapat dilihat di situs
www.planetKode.Com , atau di www.Scribd.com/bunafit
Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 3

MEMBUAT SOAL PILIHAN GANDA


TAMPIL ACAK

Pada bab ini kita akan membuat aplikasi kuis yang biasanya dipasang pada web e-
Learning. Konsep aplikasi ini adalah menampilkan pertanyaan dan beberapa jawaban
pilihan. Sebagai contoh, pada aplikasi ini hasil pilihan akan ditampilkan secara
langsung.
Mempersiapkan Tabel dan Koneksi
Sebelum mendesain program, ada baiknya Anda juga kami bimbing untuk dapat
mempersiapkan tabel yang digunakan serta koneksinya.
Membuat Tabel Kuis
Pada aplikasi ini, kita akan menggunakan tabel kuis. Tabel ini nantinya akan
digunakan untuk merekam semua data pertanyaan lengkap dengan jawaban. Selain
itu, kunci jawaban juga disimpan pada tabel ini.
1. Masuklah pada database MySQL, kemudian buatlah database elearningdb dengan
perintah berikut.

CREATE DATABASE IF NOT EXISTS elearningdb;

2. Perintah di atas tidak akan dijalankan apabila database elearningdb sudah ada.
Sekarang masuklah pada database tersebut dengan perintah :

USE elearningdb;

3. Sekarang Anda dapat membuat tabel di dalam database aktif, tabel yang diperlukan
adalah kuis. Berikut adalah desain strukturnya:

Tabel Desain struktur tabel kuis


Kolom Tipe Panjang Keterangan
id_kuis INT 4 KUNCI
PRIMER,
AUTO
soal VARCHAR 100
jawab_a VARCHAR 60
jawab_b VARCHAR 60
jawab_c VARCHAR 60
4 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

jawab_d VARCHAR 60
kunci ENUM ('A','B','C','D')

Dari desain tabel di atas, berikut adalah perintah SQL-nya:

CREATE TABLE kuis (


id_kuis INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
soal VARCHAR(100) NOT NULL,
jawab_a VARCHAR(60) NOT NULL,
jawab_b VARCHAR(60) NOT NULL,
jawab_c VARCHAR(60) NOT NULL,
jawab_d VARCHAR(60) NOT NULL ,
kunci ENUM('A','B','C','D') NOT NULL
) ENGINE = MYISAM;

4. Setelah tabel selesai dibuat, Anda dapat memastikan keberadaan tabel materi
dengan perintah SHOW TABLES;.

5. Sekarang masukkanlah beberapa data di dalam tabel, berikut adalah contoh


perintahnya.

INSERT INTO `kuis` VALUES (1, 'Dibawah ini, mana yang bukan
termasuk database Server ?', 'MySQL', 'Ms Access',
'Oracle', 'PostgreSQL', 'B');

INSERT INTO `kuis` VALUES (2, 'Di bawah ini, manakah database
yang berlisensi Open Source ?', 'MySQL',
'Ms Access', 'Oracle', 'FoxPro', 'A');
Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 5

Membuat Koneksi Database MySQL


Untuk dapat membuat aplikasi berbasis database, maka kita harus membuat file
koneksi yang berfungsi menghubungkan aplikasi dengan database MySQL. Berikut
adalah skrip yang perlu Anda buat.
1. Masuklah pada editor Dreamweaver kesayangan Anda, kemudian buatlah halaman
baru dengan tipe PHP.
2. Masuklah pada halaman kode (menu View  Code), hapuslah semua kode
standar yang ada disana.
3. Tuliskan listing program berikut.

Listing Program Bab5/inc.koneksidb.php

<?PHP
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_data = "elearningdb";

// Perintah koneksi Server MySQL


$koneksi = mysql_connect($db_host, $db_user, $db_pass)
or die ("Koneksi gagal".mysql_error());

mysql_select_db($db_data, $koneksi)
or die ("Baca DB gagal".mysql_error());
?>

Akhir Listing

4. Simpanlah skrip program di atas pada folder Bab5, apabila belum ada, maka Anda
harus membuatnya terlebih dahulu.
5. Buatlah juga file inc.koneksidb.php pada subfolder Bab5/cPanel, yang nantinya
digunakan untuk membuat halaman manajemen data.

Memahami Folder Kerja Latihan


Semua latihan program yang akan dipelajari pada bab ini akan disimpan di dalam
subfolder Bab5, tentunya di bawah folder kerja utama bernama eLearning. Pada
latihan bab ini, setidaknya Anda nanti akan membuat subfolder dan file program
seperti struktur berikut:
6 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

Gambar Struktur folder dan file untuk latihan

Dari struktur folder di atas, subfolder cPanel kita buat untuk menyimpan file program
admin, yaitu untuk mengelola data kuis.

Halaman Utama Aplikasi Kuis


Untuk membuat halaman utama kuis, Anda harus sudah mengisi data pertanyaan
pada tabel kuis. Tentunya, apabila Anda mengikuti dengan sempurna pelajaran pada
Subbab 5.2.1. Langsung saja, sekarang Anda dapat membuat halaman utama kuis
dengan mengikuti langkah berikut.
1. Masih menggunakan editor Dreamweaver versi kesukaan Anda, sekarang bukalah
halaman baru dengan tipe PHP.
2. Masuklah pada halaman kode (dari menu View  Code), kemudian hapuslah
semua tag HTML standar yang ada di sana.
3. Selanjutnya, tuliskan skrip lengkap yang berguna sebagai halaman utama aplikasi
kuis online. Berikut adalah skrip lengkapnya:

Listing Program Bab5/index.php


<html>
<head>
<title>Aplikasi Kuis Online</title>
</head>
<body>
<?php
include "inc.koneksidb.php";

$sql = "SELECT * FROM kuis ORDER BY id_kuis";


Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 7

$qry = mysql_query($sql, $koneksi)


or die ("SQL Error".mysql_error());

// Memeriksa keberadaan data


if (! mysql_num_rows($qry) >=1 ) {
echo "BELUM ADA SOAL YANG DIINPUT";
exit;
}

// Kode untuk form


echo "<form name='form1' method='post'
action='JawabHasil.php'>";
while ($data=mysql_fetch_array($qry)) {
$no++;
// Kode untuk menampilkan soal
echo "$no. $data[soal] <br>";

echo "A.<input type='radio' value='A'


name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_a] <br>";

echo "B.<input type='radio' value='B'


name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_b] <br>";

echo "C.<input type='radio' value='C'


name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_c] <br>";

echo "D.<input type='radio' value='D'


name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_d] <br><br>";
}

// Kode untuk tombol


echo "<input type='submit' name='Submit' value='Jawab'>";
echo "</form>";
?>
</body>
</html>
Akhir Listing

Penjelasan Kode :
Dari listing program index.php di atas, kemungkinan dari pembaca masih ada yang
belum paham. Berikut adalah penjelasan setiap kode penting yang digunakan:
 Kode :
8 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

include "inc.koneksidb.php";

Digunakan untuk memanggil file koneksi, yaitu berisi kode untuk


menghubungkan program dengan database MySQL.

 Kode :

$sql = "SELECT * FROM kuis ORDER BY id_kuis";


$qry = mysql_query($sql, $koneksi)
or die ("SQL Error".mysql_error());

Digunakan untuk menampilkan semua data pertanyaan dan jawaban yang ada di
dalam tabel kuis.
Supaya soal tampil acak, kamu bisa menggunakan fungsi RAND()
$sql = "SELECT * FROM kuis ORDER BY ORDER BY RAND()";
$qry = mysql_query($sql, $koneksi)
or die ("SQL Error".mysql_error());

 Kode :
if (! mysql_num_rows($qry) >=1 ) {
echo "BELUM ADA SOAL YANG DIINPUT";
exit;
}

Digunakan untuk memeriksa apakah ada data soal di dalam tabel kuis, apabila
datanya kosong, maka pesan “BELUM ADA SOAL YANG DIINPUT” akan
ditampilkan dan form tidak tampil.

 Kode :
echo "A.<input type='radio' value='A'
name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_a] <br>";

Digunakan untuk membuat pilihan pada jawaban A, untuk nama pengenalnya


menggunakan array berindeks nomor soal (id_kuis).

 Kode :
echo "B.<input type='radio' value='B'
name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_b] <br>";
Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 9

Digunakan untuk membuat pilihan pada jawaban B, untuk nama pengenalnya


menggunakan array berindeks nomor soal (id_kuis).

 Kode :

echo "C.<input type='radio' value='C'


name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_c] <br>";

Digunakan untuk membuat pilihan pada jawaban C, untuk nama pengenalnya


menggunakan array berindeks nomor soal (id_kuis).

 Kode :

echo "D.<input type='radio' value='D'


name='RbJawaban[$data[id_kuis]]'>";
echo "$data[jawab_d] <br><br>";

Digunakan untuk membuat pilihan pada jawaban D, untuk nama pengenalnya


menggunakan array berindeks nomor soal (id_kuis).

4. Setelah semua skrip program di atas dibuat, simpanlah menggunakan nama


index.php, dan letakkan pada folder Bab5.
5. Untuk menjalankan halaman utama program di atas, masuklah pada browser dan
ketikkan “http://localhost/eLearning/Bab5/index.php”.

Gambar Tampilan utama aplikasi kuis online


10 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

Dari program utama kuis yang telah dibuat sebelumnya, pada kode formulir
parameter Action diarahkan pada halaman JawabanHasil.php Pada bagian ini kita
akan membuat program tersebut, yaitu berisi kode untuk memeriksa benar tidaknya
setiap jawaban yang dipilih
1. Masih menggunakan Editor Dreamweaver kesayangan Anda.
2. Bukalah halaman baru menggunakan tipe Dynamic Page  PHP.
3. Masuklah pada halaman kode (dari menu View  Code), kemudian hapuslah
semua kode HTML standar yang ada.
4. Supaya mempermudah langkah, Anda dapat menuliskan kode program simpan
secara lengkap seperti listing berikut.

Listing Program Bab5/JawabHasil.php


<html>
<head>
<title>Hasil jawaban kuis</title>
</head>
<body>
<?php
include "inc.koneksidb.php";
$RbJawaban = $_REQUEST['RbJawaban'];
if (! count($RbJawaban) >=1) {
echo "<b>ANDA BELUM MEMILIH JAWABAN</b>";
include "index.php";
exit;
}

$benar = 0;
foreach($RbJawaban as $indeks=>$nilai) {
$sql = "SELECT * FROM kuis WHERE id_kuis='$indeks'";
$qry = mysql_query($sql, $koneksi);
$data=mysql_fetch_array($qry);

if ($data['kunci'] == $nilai) {
$benar = $benar + 1;
}
}

$sql_jum = "SELECT COUNT(*) FROM kuis";


$qry_jum = mysql_query($sql_jum, $koneksi);
$data_jum= mysql_fetch_row($qry_jum);
$jumlah= $data_jum[0];
$salah = $jumlah - $benar;
$persen_benar = round(($benar/$jumlah)*100,2);
$persen_salah = round(($salah/$jumlah)*100,2);
Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 11

echo "<h3> Hasil Kuis : </h3> ";


echo "Jumlah Benar : $benar ($persen_benar %)";
echo "<br> Jumlah salah : $salah ($persen_salah %)";
?>
</body>
</html>
Akhir Listing

Penjelasan Kode :
Dari listing program JawabHasil.php di atas, kemungkinan dari pembaca masih ada
yang belum paham. Berikut adalah penjelasan setiap kode penting yang digunakan:
 Kode :

if (! count($RbJawaban) >=1) {
echo "<b>ANDA BELUM MEMILIH JAWABAN</b>";
include "index.php";
exit;
}

Digunakan untuk memeriksa apakah salah satu pertanyaan telah dijawab belum,
apabila tidak ada satupun pertanyaan yang dijawab, maka pesan kesalahan akan
ditampilkan.

 Kode :

$benar = 0;
foreach($RbJawaban as $indeks=>$nilai) {
$sql = "SELECT * FROM kuis WHERE id_kuis='$indeks'";
$qry = mysql_query($sql, $koneksi);
$data=mysql_fetch_array($qry);

if ($data['kunci'] == $nilai) {
$benar = $benar + 1;
}
}

Digunakan untuk memeriksa kebenaran jawaban Anda dengan kunci jawaban


yang dimiliki setiap soal.
12 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

5. Berikut adalah tampilan hasil perhitungan jawaban yang dipilih, Anda akan
mendapatkan nilai berupa persentase.

Gambar Tampilan hasil jawab

oooOooo
Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 13

PENGEMBANGAN ELEARNING
(SOAL ACAK, MULTI SISWA)

#1
Contoh Program TA dan Skripsi: eLearning : Sistem
Informasi Pembelajaran Online Untuk Siswa : Aplikasi ini
dibuat dengan PHP dan MySQL. Merupakan Web Pembelajaran berbasis
Multi User (banyak pengguna) sebagai anggota Web. Studi kasus program
ini pada semuah pondok pesantren.

Para siswa dapat mendownload materi pelajaran jika sudah mengerjakan Tes
Online (ujian) dan lulus. Jika belum lulus, maka tes dapat dilakukan besok.
Tes akan diacak, sehingga berbeda soalnya dengan santri/siswa yang lain.

Harga Script Web contoh skripsi ini : Rp. 350.000,-.

Yang didapat:
[1]. ERD (Relasi Tabel) Sistem Informasi Pembelajaran Siswa
[2]. Source Code (Script) Web Pembelajaran Siswa
[3]. eBooks (buku PDF : 7 Langkah Menguasai Web PHP Dreamweaver )

#2
Contoh Program TA dan Skripsi: eLearning Sistem
Informasi Latihan Ujian Secara Online (atau Lokal
Jaringan) : Aplikasi ini dibuat dengan PHP dan MySQL. Ini merupakan
web yang berbasis Multi User. Gunanya untuk ujian atau test atau latihan
ujian dengan pengelompokan soal (kategori soal) yang berbeda.

Konsep inti dari web ini adalah web sitem informasi yang berisi banyak soal,
pengelompokkan berdasarkan mata pelajaran. Siswa yang mendaftar akan
menjadi anggtoa sistem eLearning. Siswa dalam satu hari boleh berlatih
mengerjakan soal-soal ujian yang ada di web, dan hasilnya langsung
didapat. Dalam satu hari, siswa hanya diberikan satu kesempatan untuk
14 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

masing-masing matapelajarang, dan selanjutnya boleh mengerjakan


matapelajaran yang sama di esok hari.

Harga Script Web contoh skripsi ini : Rp. 450.000,-.

Silahkan kembangkan sendiri untuk kepentingan yang lain.

Yang didapat:
[1]. ERD (Relasi Tabel) Sistem Informasi Test Ujian Masuk
[2]. Source Code (Script) Web Test Ujian Masuk Langsung Komputer
[3]. eBooks (buku PDF : 7 Langkah Menguasai Web PHP dan Dreamweaver )

#3
Contoh Program Skripsi dan TA : Sistem Informasi Test Ujian
Masuk Langsung Komputer (Secara Online) : Konsep dari web ini
adalah untuk Test Langsung, atau Ujian Langsung Komputer secara
bersama-sama (Multi User).

Anda pasti sudah tau, jika beberapa kampus atau sekolah sekarang telah
mengadakan Test Langsung Komputer. Jadi, calon siswa/mahasiswa baru
setelah mendaftar boleh memilih 2 model ujian. [1]. Ujian reguler, atau yang
dilakukan secara manual bersama2. [2]. Ujian langsung komputer, yang
langsung mengerjakan soal di komputer, dan hasilnya langsung di dapat.
Nah, web program ini dipakai untuk opsi ujian ke-2. Sudah maksud ya???

Kemampuan Web ini:


[1]. Web Berbasis Multi User, Peserta Ujian (Test) boleh berbarengan
[2]. Soal yang dimasukkan tidak acak, tapi soal yang tampil di halaman
peserta akan diacak.
[3]. Multi Mata Pelajaran, jadi bisa ujian beberapa mata pelajaran sekaligus.
[4]. Timer Mundur. Jadi, jika waktu yang disediakan sudah habis, maka
program akan secara otomatis menyimpan soal yang sudah dipilih (pilihan
ganda).
[5]. Bisa diterapkan untuk Online, atau Tes Langsung (Lokal).
[6]. ...dan kelebihan lain, Web ini dibuat lewat Dreamweaver 8 (Terstruktur).

Harga Script Web contoh skripsi ini : Rp. 750.000,-.


Script PHP Untuk Membuat Soal Ujian Pilihan Ganda Tampil Acak 15

Yang didapat:
[1]. ERD (Relasi Tabel) Sistem Informasi Test Langsung (Ujian Masuk
Siswa/Mahasiswa)
[2]. Source Code (Script) Web Test Langsung (Ujian)
[3]. eBooks (buku PDF : 7 Langkah Menguasai Web PHP dan Dreamweaver )

#4
E-Learning Custom (By Request, Desan dan Konsep
dari Anda) : Kami akan membuatkan sesuai konsep yang kamu
inginkan, silahkan dibuat konsepnya. Biaya menyesuaikan konsep.

PANDUAN PEMBAYARAN SKRIP DI ATAS

Okay, PANDUAN TRANSFER-nya

Jika No HP: 0819-------1709 (3 digit, Sesuaikan dg No HP Anda)

Jika pesan Script eLearning v 1, biaya Rp 350.000,- (Promo)

Silahkan transfer Rp. 350.709 ke rek BNI, a/n: Bunafit Nugroho, NoRek: 003
009 4812.

Jika transf dri ATM Selain BNI / ATM Bersama (contoh: Mandiri, Syariah
Mandiri, dll) No Rek ditambah angka 009. Jadi, No Rekening BNI kami
Menjadi : 009 003 009 4812

Oiya, dari BCA tidak bisa transfer ke BNI (sebaiknya jangan)

Setelah transfer, konfirmasi lewat Email ,


atau SMS Ke : 0838 6716 1314
Terimakasih Super.
Buanfit Komputer Team
16 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta

You might also like