• Tidak ada hasil yang ditemukan

Script PHP Untuk Menampilkan Soal Ujian Pilihan Ganda Tampil Acak

N/A
N/A
Protected

Academic year: 2021

Membagikan "Script PHP Untuk Menampilkan Soal Ujian Pilihan Ganda Tampil Acak"

Copied!
16
0
0

Teks penuh

(1)

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.

(2)

33.500,-



(3)

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)

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',

(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)

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";

(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:

(8)

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, ap datanya kosong, maka pesan “BELUM ADA SOAL YANG DIINPU ”T 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>";

(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”.

(10)

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);

(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 be 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)

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

Gambar Tampilan hasil jawab oooOooo

(13)







(14)















(15)





  









  



 

    

  

Setelah transfer, konfirmasi lewat Email ,

atau SMS Ke :

Terimakasih Super.

(16)

Gambar

Tabel Desain struktur tabel kuis
Gambar Struktur folder dan file untuk latihan
Gambar Tampilan utama aplikasi kuis online
Gambar Tampilan hasil jawab

Referensi

Dokumen terkait