Senin, 07 Desember 2015

belajar php dan mysql : program aplikasi sederhana untuk menghitung jumlah jawaban ujian

Disini saya mau menshare tugas saya untuk menghitung jumlah jawaban benar pada lembar jawaban dengan menggunakan DBMS mysql dan bahasa pemrograman PHP dengan bantuan xampp. Untuk jawaban A bernilai 1, Jawaban B bernilai 2, Jawaban C bernilai 3, Jawaban D bernilai 4.
berikut tabel tabel yang ada beserta tipe data dan panjang data :
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