Tabel SIM :
NPM varchar(8)
NAMA varchar(30)
KELAS varchar(5)
KDMK varchar
(8)
JAWAB varchar(40)
SKORE smalint(3)
JML_SOAL smalint(3)
RASIO smalint(3)
GRADE varchar(1)
Tabel KUNCI:
JAWABAN varchar(40)
ket : tabel kunci disini adalah tabel kunci jawaban yang benar
skore, jml_soal, rasio, dan grade dikosongkan, karena itu yang akan kita hitung disini.
lalu isi tabel sesuai dengan record yang ada.
berikut listing programnya :
<?php
//membuat
koneksi ke database nilai
mysql_connect('localhost','root','');
mysql_select_db('nilai');
?>
<table
border="1" style="margin: 10px 10px 10px 20px">
<tr>
<th>NPM</th>
<th>Nama</th>
<th>Kelas</th>
<th>Kode
Matakuliah</th>
<th>Jawaban</th>
<th>Skor</th>
<th>Jumlah
Soal</th>
<th>Rasio</th>
<th>Grade</th>
<tr>
<?php
//mendeklarasikan
variabel jumlah soal,benar,x, dan y
$jumlah_soal=30;
$benar=0;
$x='';
$y='';
//mengubah
jumlah soal
mysql_query("UPDATE
`nilai`.`sim` SET `JML_SOAL` = $jumlah_soal");
//mengubah
jumlah soal menjadi dikurang 1 karena kita menggunakan array yang dimulai dari
nol
$jumlah_soal=$jumlah_soal-1;
//membuat
variabel yang berisi mysql_query yang digunakan untuk menampilkan data
$sqlsim=mysql_query("select
* from sim");
//membuat
variabel yang berisi mysql_query yang digunakan untuk menampilkan data secara
array
$jawabkunci=mysql_fetch_array(mysql_query("select
jawaban from kunci"))[0];
//membuat
perulangan untuk mengisi skore sebanyak jumlah data yang diambil secara baris
while($rowsim=mysql_fetch_row($sqlsim)){
//membuat
variabel yang berisi jawaban dari tabel sim
$jawabsim=$rowsim[4];
//membuat
looping untuk menghitung jumlah soal yang benar dengan cara membandingkan
jawaban dari tabel sim dan jawaban dari tabel kunci
for($n=0;
$n<=$jumlah_soal;$n++){
$x=substr($jawabsim,$n,1);
$y=substr($jawabkunci,$n,1);
if ($x==$y){
$benar=$benar+1;
}
}
//mengubah
skore pada tabel sim menjadi jumlah jawaban yang benar setelah dihitung diatas
dan mengembaikan jumlah benar skor menjadi nol agar record berikutnya dimulai
dari nol
mysql_query("UPDATE
SIM SET SKORE='$benar' where npm='$rowsim[0]'");
$benar=0;
}
//membuat
perulangan untuk mengisi skore sebanyak jumlah data yang diambil secara baris
$sqlsim=mysql_query("select
* from sim");
//mengembalikan
jumlah soal ke awal karena tadi telah di kurang 1
$jumlah_soal=$jumlah_soal+1;
//membuat
perulangan untuk mengisi rasio sebanyak jumlah data yang diambil secara baris
while($rowsim=mysql_fetch_row($sqlsim)){
//menghitung
rasio dengan perhitungan = (skore/jumlah soal)*100
$ro=($rowsim[5]/30)*100;
//mengubah
rasio pada tabel sim menjadi perhitungan rasio diatas
mysql_query("UPDATE
SIM SET RASIO='$ro' where npm='$rowsim[0]'");
}
//membuat
perulangan untuk mengisi skore sebanyak jumlah data yang diambil secara baris
$sqlsim=mysql_query("select
* from sim");
//membuat
perulangan untuk mengisi grade sebanyak jumlah data yang diambil secara baris
while($rowsim=mysql_fetch_row($sqlsim)){
//mengambil
data rasio dari tabel sim yang dimasukkan ke variabel grade
$grade=$rowsim[7];
//membuat
nilai grade sesuai dengan rasio
if ($grade
> 80){
$grade='A';
}
elseif($grade
>60 && $grade <=80){
$grade='B';
}
elseif($grade
>50 && $grade <=60){
$grade='C';
}
elseif($grade
>40 && $grade <=50){
$grade='D';
}
elseif($grade
<=40){
$grade='E';
}
//mengubah
grade pada tabel sim menjadi variabel grade yang dibuat diatas
mysql_query("UPDATE
SIM SET GRADE='$grade' where npm='$rowsim[0]'");
}
//untuk
menampilkan semua data yang ada pada tabel sim ke dalam tabel di browser
$sqlsim=mysql_query("select
* from sim");
while($rowsim=mysql_fetch_row($sqlsim)){
echo
"<td>".$rowsim[0]."</td>";
echo
"<td>".$rowsim[1]."</td>";
echo
"<td>".$rowsim[2]."</td>";
echo
"<td>".$rowsim[3]."</td>";
echo
"<td>".$rowsim[4]."</td>";
echo
"<td>".$rowsim[5]."</td>";
echo
"<td>".$rowsim[6]."</td>";
echo
"<td>".$rowsim[7]."</td>";
echo
"<td>".$rowsim[8]."</td></tr>";
}
?>
</table>
program diatas akan memberikan nilai pada jml_soal, rasio, dan grade yang tadi di kosongkan.
sekian postingan saya kali ini apabila ada kesalahan, kritik ataupun saran bisa tulis dikolom komentar.
terimakasih
Tidak ada komentar:
Posting Komentar