Lampiran 1. Kode Program
Kode Program 1. Proses Mengambil Soal
1. $id_judul_soal = $_GET['isiMateriSoal'];
2. include_once "modal/inputMateri.php";
3. $judulSoal = mysqli_query($conn, "SELECT * FROM tbl_judul_soal WHERE id_judul_soal='$id_judul_soal' ");
4. $rowJudulSoal = mysqli_fetch_array($judulSoal);
5. if (!empty($rowJudulSoal['materi'])) { 6. $name = "Edit Materi";
7. } else {
$name = "Input Materi";
}
8. if (isset($_POST['inputMateri'])) {
9. $id_judul_soal = $_POST['id_judul_soal'];
10. $materi = $_POST['materi'];
11. $inputMateri = mysqli_query($conn, "UPDATE tbl_judul_soal SET materi='$materi' WHERE id_judul_soal='$id_judul_soal' ");
12. if ($inputMateri) {
13. $_SESSION['pesan'] = "<div class='alert alert-success' role='alert'>
Berhasil Menginput Materi $rowJudulSoal[judul_soal] !!
</div>";
14. } else {
$_SESSION['pesan'] = '<div class="alert alert-danger" role="alert">
<span class="iconify" data-icon="ic:outline-do-not-disturb-off" data-inline="false"></span>
Terjadi Kesalahan !!
</div>';
15. } 16. } else {
17. $_SESSION['pesan'] = "";
18. }
Kode Program 1 berfungsi untuk menampilkan data soal. Kode program pada baris 1 digunakan untuk mendapatkan value dari ‘IsiMateriSoal’ method get yang dikirimkan dari halaman sebelumnya. Kode program baris 2 digunakan untuk memanggil file InputMateri.php dari folder modal. Kode program pada baris 3 digunakan untuk melakukan
query dari database untuk mendapatkan semua data. Kode program pada baris 4 digunakan untuk menyimpan hasil query ke dalam variable $rowJudulSoal lalu di fetch array, fetch array = mengembalikan nilai data bisa berupa nama atau berupa aray [0], [1], [2], dan seterusnya. Kode program pada baris 5 digunakan untuk memulai percabangan jika materi tidak kosong karena ada tanda !. Kode program pada baris 6 digunakan untuk perintah yang dieksekusi jika materi tidak kosong.
Kode program pada baris 7 digunakan untuk perintah yang dieksekusi jika materi kosong. Kode program pada baris 8 digunakan jika tombol dengan name inputMateri di klik maka akan masuk ke if. Kode program pada baris 9 digunakan untuk mendapatkan value dari form dengan name = id_judul_soal. Kode program 10 digunakan untuk mendapatkan value dari form dengan name = materi. Kode program pada baris 11 digunakan untuk query update ke tabel tbl_judul_soal, untuk materi berisikan value dari variabel $materi, dimana id judul soal adalah value dari variabel $id_judul_soal. Kode program pada baris 12 digunakan untuk percabangan berupa return boolean true/false. Jika query $inputMateri berupa true atau benar atau sukses, maka akan masuk ke if. Kode program pada baris 13 digunakan untuk melempar pesan berupa tag html dengan session jika query $inputMateri benar. Kode program pada baris 14 digunakan untuk melempar pesan berupa tag html dengan session jika query $inputMateri salah. Kode program pada baris 15-18 melempar pesan berupa nilai kosong dengan session, jika tombol dengan nama inputMateri tidak diklik atau tidak ada action.
Kode Program 2. Jawab Soal Pada Siswa
1. $id_judul_soal = $_GET['jawabSoal'];
2. $judulSoal = mysqli_query($conn, "SELECT * FROM tbl_judul_soal WHERE kelas='$rowSiswa[kelas]' AND id_judul_soal='$id_judul_soal' ");
3. $rowJudulSoal = mysqli_fetch_array($judulSoal);
4. $waktu = $rowJudulSoal['waktu'];
$telah_berlalu = 0;
$temp_waktu = ($waktu * 60) - $telah_berlalu;
$temp_menit = (int)($temp_waktu / 60);
$temp_detik = $temp_waktu % 60;
5. if ($temp_menit < 60) {
$jam = 0;
$menit = $temp_menit;
$detik = $temp_detik; } 6. else {
$jam = (int)($temp_menit / 60);
$menit = $temp_menit % 60;
$detik = $temp_detik;
}
Kode Program 2 berfungsi untuk mengambil data soal yang akan dijawab oleh siswa. Kode program pada baris 1 digunakan untuk mendapatkan value dari ‘JawabSoal’
method get yang dikirimkan dari halaman sebelumnya. Kode program pada baris 2 digunakan untuk melakukan query dari database untuk mendapatkan semua data. Kode program pada baris 3 digunakan untuk menyimpan hasil query ke dalam variabel
$rowJudulSoal lalu di fetch array, fetch array = mengembalikan nilai data bisa berupa nama atau berupa array [0], [1], [2], dan seterusnya. Kode program pada baris 4-6 digunakan untuk mengatur waktu pada saat mengerjakan soal.
Kode Program 3. Ulasan Nilai Pada Siswa
1. $cekMenjawabEssay = mysqli_query($conn, "SELECT * FROM tbl_nilai_essay WHERE nisn='$_SESSION[nisn]' AND id_judul_soal='$id_judul_soal' ");
2. if (mysqli_num_rows($cekMenjawabEssay) > 0) {
3. $nilaiBenar = mysqli_query($conn, "SELECT * FROM tbl_nilai_essay WHERE nisn='$_SESSION[nisn]' AND id_judul_soal='$id_judul_soal' AND nilai='10' ");
4. $nilaiSalah = mysqli_query($conn, "SELECT * FROM tbl_nilai_essay WHERE nisn='$_SESSION[nisn]' AND id_judul_soal='$id_judul_soal' AND nilai='0' ");
5. $ygBenar = mysqli_num_rows($nilaiBenar);
6. $ygSalah = mysqli_num_rows($nilaiSalah);
7. $rataEssay = 100 / $jumlahSoalEssay * $ygBenar;
8. } else {
$ygBenar = 0;
$ygSalah = 0;
$rataEssay = 0;
}
9. if ($rataEssay == 0) {
$nilaiRata2 = $nilaiChoise / 2;
$nilai = round($nilaiRata2);
} 10. else {
$nilaiRata2 = $nilaiChoise + $rataEssay;
$dibagi = $nilaiRata2 / 2;
$nilai = round($dibagi);
}
Kode Program 3 berfungsi untuk menilai soal essay siswa. Kode program pada baris 1 digunakan untuk mengambil semua data yang ada di database. Kode program pada baris 2-4 digunakan untuk memberikan nilai jika jawaban benar diberi nilai 10 dan jika jawaban salah diberi nilai 0. Kode program pada baris 5-6 total data dari query nilai benar dan nilai salah. Kode program pada baris 7-10 digunakan untuk melakukan perhitungan nilai essay dan menghitung nilai rata-rata.
Kode Program 4. Jawaban Essay
1. $jawabanEssay = mysqli_query($conn, "SELECT * FROM tbl_jawaban_essay ");
2. if (isset($_POST['periksaSoalEssay'])) { 3. $jumlahSoal = $_POST['jumlahSoal'];
4. $pilihan = $_POST["pilihan"];
5. $id_judul_soal = $_POST['id_judul_soal'];
6. $nisn = $_POST['nisn'];
7. $tambahSatu = $jumlahSoal + 1;
8. for ($x = 1; $x < $tambahSatu; $x++) {
$inputNilaiEssay = mysqli_query($conn, "INSERT INTO tbl_nilai_essay (soal,nilai,id_judul_soal,nisn)
VALUES('$x','$pilihan[$x]','$id_judul_soal','$nisn')");
$ubahStatus = mysqli_query($conn, "UPDATE tbl_jawaban_essay SET status='sudah diperiksa' WHERE nisn='$nisn' AND id_judul_soal='$id_judul_soal' ");
}
Kode Program 4 berfungsi untuk memeriksa soal essay yang telah dikerjakan oleh siswa. Kode program pada baris 1 digunakan untuk mengambil data jawaban essay dari
database. Kode program pad baris 2-6 digunakan untuk mengambil data jumlah soal, pilihan, id judul soal, dan nisn. Kode program pada baris 7 digunakan untuk menjumlah soal ditambah 1. Kode program pada baris 8 berfungsi untuk membuat perulangan, jika sudah diperiksa dan diberi nilai maka ubah di tbl_jawaban_essay menjadi sudah diperiksa.
Kode Program 5. Feedback
1. $judulSoal = mysqli_query($conn, "SELECT * FROM tbl_judul_soal WHERE nip='$_SESSION[nip]' ");
2. if (isset($_POST['nisn'])) { 3. $nisn = $_POST['nisn'];
4. $resultSiswa = mysqli_query($conn, "SELECT * FROM tbl_siswa WHERE nisn='$nisn' ");
5. $rowResult = mysqli_fetch_array($resultSiswa);
6. $result = $rowResult['nama'];
7. } 8. else { 9. $result = "";
10. }
Kode Program 5 berfungsi untuk memberikan feedback hasil jawaban soal essay kepada setiap siswa. Kode program pada baris 1 digunakan untuk mengambil data dari database. Kode program pada baris 2 digunakan untuk mendapatkan value dari form dengam name = nisn. Kode program pada baris 3 digunakan untuk mendapatkan semua data Berdasarkan nisn. Kode program pada baris 4 digunakan untuk menyimpan hasil query yang ditampung dalam variabel $rowResult. Kode program pada baris 5-10 digunakan untuk menaruh hasil fetch array dari database ke dalam variable $result.
Lampiran 2. Tabel Database
Tabel 1. Tabel Registrasi Akun Guru
Entitas Tipe Data Deskripsi
Id_guru Int Primary Key
nip Int Nip Guru
Nama Char Nama guru
waliKelas Int Sebagai wali kelas
universitas Text Asal universitas
password Char Kata sandi akun guru
Tabel 2. Tabel Biodata Siswa
Entitas Tipe Data Deskripsi
Id_siswa Int Primary Key
Nisn Char Nisn siswa
Nama Char Nama siswa
Kelas Int Kelas siswa
tanggalLahir Date Tanggal lahhir siswa
password Char Kata sandi akun siswa
Ortu Char Nama orang tua
hpOrtu Char No Hp orang tua
Alamat Text Alamat tinggal siswa
Jk Enum Jenis kelamin siswa
Foto Char Foto siswa
Tabel 3. Tabel Tambah Materi
Entitas Tipe Data Deskripsi
Id_materi Int Primary Key
Id_judul soal Int Foreign Key
Listmateri Text Materi-materi yang
dibagikan
Tanggalterbit Date Waktu terbit materi
Judulmateri Char Judul materi
Tabel 4. Tabel Kunci Jawaban Soal
Entitas Tipe Data Deskripsi
Id_soal Int Primary Key
Soal Text Nama soal
Knc_jawaban Varchar Kunci jawaban soal
Id_judul_soal Int Foreign key
Aktif Enum Status
Tabel 5. Tabel Nilai
Entitas Tipe Data Deskripsi
Id_jawaban Int Primary Key
Nisn Char Nisn siswa
Benar Int Kunci jawaban soal
Salah Int Kunci jawaban soal
Kosong Int Status
Nilai Char Nilai siswa
Id_judul_Soal Int Foreign Key
jenisSoal Enum Jenis soal yang dikerjakan