| Server IP : 216.106.184.20 / Your IP : 216.73.216.234 Web Server : LiteSpeed System : Linux asmodeus.in-hell.com 5.14.0-570.58.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 29 06:24:11 EDT 2025 x86_64 User : sekoaid1 ( 1891) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/sekoaid1/public_html/ujian/am2425/application/controllers/ |
Upload File : |
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
date_default_timezone_set("Asia/Jakarta");
class Adm extends CI_Controller {
function __construct() {
parent::__construct();
$this->db->query("SET time_zone='+7:00'");
$waktu_sql = $this->db->query("SELECT NOW() AS waktu")->row_array();
$this->waktu_sql = $waktu_sql['waktu'];
$this->opsi = array("a","b","c","d","e");
}
public function get_servertime() {
$now = new DateTime();
$dt = $now->format("M j, Y H:i:s O");
j($dt);
}
public function cek_aktif() {
if ($this->session->userdata('admin_valid') == false && $this->session->userdata('admin_id') == "") {
redirect('adm/login');
}
}
public function index() {
$this->cek_aktif();
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
$a['p'] = "v_main";
$this->load->view('aaa', $a);
}
/* == ADMIN == */
public function m_siswa() {
$this->cek_aktif();
cek_hakakses(array("admin"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
//$a['data'] = $this->db->query("")->result();
if ($uri3 == "det") {
$a = $this->db->query("SELECT * FROM m_siswa WHERE id = '$uri4'")->row();
j($a);
exit();
} else if ($uri3 == "simpan") {
$ket = "";
if ($p->id != 0) {
$this->db->query("UPDATE m_siswa SET nama = '".bersih($p,"nama")."', nim = '".bersih($p,"nim")."', jurusan = '".bersih($p,"jurusan")."' WHERE id = '".bersih($p,"id")."'");
$ket = "edit";
} else {
$ket = "tambah";
$this->db->query("INSERT INTO m_siswa VALUES (null, '".bersih($p,"nama")."', '".bersih($p,"nim")."', '".bersih($p,"jurusan")."')");
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $ket." sukses";
j($ret_arr);
exit();
} else if ($uri3 == "hapus") {
$this->db->query("DELETE FROM m_siswa WHERE id = '".$uri4."'");
$this->db->query("DELETE FROM m_admin WHERE level = 'siswa' AND kon_id = '".$uri4."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "hapus sukses";
j($ret_arr);
exit();
} else if ($uri3 == "non_aktifkan") {
$this->db->query("DELETE FROM m_admin WHERE level = 'siswa' AND kon_id = '".$uri4."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "disable sukses";
j($ret_arr);
exit();
} else if ($uri3 == "user") {
$det_user = $this->db->query("SELECT id, nim FROM m_siswa WHERE id = '$uri4'")->row();
if (!empty($det_user)) {
$q_cek_username = $this->db->query("SELECT id FROM m_admin WHERE username = '".$det_user->nim."' AND level = 'siswa'")->num_rows();
if ($q_cek_username < 1) {
$this->db->query("INSERT INTO m_admin VALUES (null, '".$det_user->nim."', md5('".$det_user->nim."'), 'siswa', '".$det_user->id."')");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "tambah user sukses";
j($ret_arr);
} else {
$ret_arr['status'] = "gagal";
$ret_arr['caption'] = "Username telah digunakan";
j($ret_arr);
}
} else {
$ret_arr['status'] = "gagal";
$ret_arr['caption'] = "tambah user gagal";
j($ret_arr);
}
exit();
} else if ($uri3 == "user_reset") {
$det_user = $this->db->query("SELECT id, nim FROM m_siswa WHERE id = '$uri4'")->row();
$this->db->query("UPDATE m_admin SET password = md5('".$det_user->nim."') WHERE level = 'siswa' AND kon_id = '".$det_user->id."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "Update password sukses";
j($ret_arr);
exit();
} else if ($uri3 == "ambil_matkul") {
$matkul = $this->db->query("SELECT m_mapel.*,
(SELECT COUNT(id) FROM tr_siswa_mapel WHERE id_siswa = ".$uri4." AND id_mapel = m_mapel.id) AS ok
FROM m_mapel
")->result();
$ret_arr['status'] = "ok";
$ret_arr['data'] = $matkul;
j($ret_arr);
exit;
} else if ($uri3 == "simpan_matkul") {
$ket = "";
//echo var_dump($p);
$ambil_matkul = $this->db->query("SELECT id FROM m_mapel ORDER BY id ASC")->result();
if (!empty($ambil_matkul)) {
foreach ($ambil_matkul as $a) {
$p_sub = "id_mapel_".$a->id;
if (!empty($p->$p_sub)) {
$cek_sudah_ada = $this->db->query("SELECT id FROM tr_siswa_mapel WHERE id_siswa = '".$p->id_mhs."' AND id_mapel = '".$a->id."'")->num_rows();
if ($cek_sudah_ada < 1) {
$this->db->query("INSERT INTO tr_siswa_mapel VALUES (null, '".$p->id_mhs."', '".$a->id."')");
} else {
$this->db->query("UPDATE tr_siswa_mapel SET id_mapel = '".$p->$p_sub."' WHERE id_siswa = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
}
} else {
//echo "0<br>";
$this->db->query("DELETE FROM tr_siswa_mapel WHERE id_siswa = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
}
}
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $ket." sukses";
j($ret_arr);
exit();
} else if ($uri3 == "data") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$d_total_row = $this->db->query("SELECT id FROM m_siswa a WHERE a.nama LIKE '%".$search['value']."%'")->num_rows();
$q_datanya = $this->db->query("SELECT a.*,
(SELECT COUNT(id) FROM m_admin WHERE level = 'siswa' AND kon_id = a.id) AS ada
FROM m_siswa a
WHERE a.nama LIKE '%".$search['value']."%' ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$data_ok = array();
$data_ok[] = $no++;
$data_ok[] = $d['nama'];
$data_ok[] = $d['nim'];
$data_ok[] = $d['jurusan'];
$data_ok[] = '<div class="btn-group">
<a href="#" onclick="return m_siswa_e('.$d['id'].');" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-pencil" style="margin-left: 0px; color: #fff"></i> Edit</a>
<a href="#" onclick="return m_siswa_h('.$d['id'].');" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-remove" style="margin-left: 0px; color: #fff"></i> Hapus</a>
';
if ($d['ada'] == "0") {
$data_ok[4] .= '<a href="#" onclick="return m_siswa_u('.$d['id'].');" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-user" style="margin-left: 0px; color: #fff"></i> Aktifkan User</a>';
} else {
$data_ok[4] .= '<a href="#" onclick="return m_siswa_ur('.$d['id'].');" class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-random" style="margin-left: 0px; color: #fff"></i> Reset Password</a>';
$data_ok[4] .= '<a href="#" onclick="return m_siswa_non_aktif('.$d['id'].');" class="btn btn-success btn-xs"><i class="glyphicon glyphicon-flash" style="margin-left: 0px; color: #fff"></i> Disable User</a>';
}
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else if ($uri3 == "import") {
$a['p'] = "f_siswa_import";
} else if ($uri3 == "aktifkan_semua") {
$q_get_user = $this->db->query("select
a.id, a.nama, a.nim, ifnull(b.username,'N') usernya
from m_siswa a
left join m_admin b on concat(b.level,b.kon_id) = concat('siswa',a.id)")->result_array();
$jml_aktif = 0;
if (!empty($q_get_user)) {
foreach ($q_get_user as $j) {
if ($j['usernya'] == "N") {
$this->db->query("INSERT INTO m_admin VALUES (null, '".$j['nim']."', md5('".$j['nim']."'), 'siswa', '".$j['id']."')");
$jml_aktif++;
}
}
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $jml_aktif." user diaktifkan";
j($ret_arr);
exit();
} else {
$a['p'] = "m_siswa";
}
$this->load->view('aaa', $a);
}
public function m_guru() {
$this->cek_aktif();
cek_hakakses(array("admin"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
/*
$a['data'] = $this->db->query("SELECT m_guru.*,
(SELECT COUNT(id) FROM m_admin WHERE level = 'guru' AND kon_id = m_guru.id) AS ada
FROM m_guru")->result();
*/
if ($uri3 == "det") {
$a = $this->db->query("SELECT * FROM m_guru WHERE id = '$uri4'")->row();
j($a);
exit();
} else if ($uri3 == "simpan") {
$ket = "";
if ($p->id != 0) {
$this->db->query("UPDATE m_guru SET nama = '".bersih($p,"nama")."', nip = '".bersih($p,"nip")."' WHERE id = '".bersih($p,"id")."'");
$ket = "edit";
} else {
$ket = "tambah";
$this->db->query("INSERT INTO m_guru VALUES (null, '".bersih($p,"nip")."', '".bersih($p,"nama")."')");
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $ket." sukses";
j($ret_arr);
exit();
} else if ($uri3 == "hapus") {
$this->db->query("DELETE FROM m_guru WHERE id = '".$uri4."'");
$this->db->query("DELETE FROM m_admin WHERE level = 'guru' AND kon_id = '".$uri4."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "hapus sukses";
j($ret_arr);
exit();
} else if ($uri3 == "user") {
$det_user = $this->db->query("SELECT id, nip FROM m_guru WHERE id = '$uri4'")->row();
if (!empty($det_user)) {
$q_cek_username = $this->db->query("SELECT id FROM m_admin WHERE username = '".$det_user->nip."' AND level = 'guru'")->num_rows();
if ($q_cek_username < 1) {
$this->db->query("INSERT INTO m_admin VALUES (null, '".$det_user->nip."', md5('".$det_user->nip."'), 'guru', '".$det_user->id."')");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "tambah user sukses";
j($ret_arr);
} else {
$ret_arr['status'] = "gagal";
$ret_arr['caption'] = "Username telah digunakan";
j($ret_arr);
}
} else {
$ret_arr['status'] = "gagal";
$ret_arr['caption'] = "tambah user gagal";
j($ret_arr);
}
exit();
} else if ($uri3 == "user_reset") {
$det_user = $this->db->query("SELECT id, nip FROM m_guru WHERE id = '$uri4'")->row();
$this->db->query("UPDATE m_admin SET password = md5('".$det_user->nip."') WHERE level = 'guru' AND kon_id = '".$det_user->id."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "Update password sukses";
j($ret_arr);
exit();
} else if ($uri3 == "ambil_matkul") {
$matkul = $this->db->query("SELECT m_mapel.*,
(SELECT COUNT(id) FROM tr_guru_mapel WHERE id_guru = ".$uri4." AND id_mapel = m_mapel.id) AS ok
FROM m_mapel
")->result();
$ret_arr['status'] = "ok";
$ret_arr['data'] = $matkul;
j($ret_arr);
exit;
} else if ($uri3 == "simpan_matkul") {
$ket = "";
//echo var_dump($p);
$ambil_matkul = $this->db->query("SELECT id FROM m_mapel ORDER BY id ASC")->result();
if (!empty($ambil_matkul)) {
foreach ($ambil_matkul as $a) {
$p_sub = "id_mapel_".$a->id;
if (!empty($p->$p_sub)) {
$cek_sudah_ada = $this->db->query("SELECT id FROM tr_guru_mapel WHERE id_guru = '".$p->id_mhs."' AND id_mapel = '".$a->id."'")->num_rows();
if ($cek_sudah_ada < 1) {
$this->db->query("INSERT INTO tr_guru_mapel VALUES (null, '".$p->id_mhs."', '".$a->id."')");
} else {
$this->db->query("UPDATE tr_guru_mapel SET id_mapel = '".$p->$p_sub."' WHERE id_guru = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
}
} else {
//echo "0<br>";
$this->db->query("DELETE FROM tr_guru_mapel WHERE id_guru = '".$p->id_mhs."' AND id_mapel = '".$a->id."'");
}
}
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $ket." sukses";
j($ret_arr);
exit();
} else if ($uri3 == "data") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$d_total_row = $this->db->query("SELECT id FROM m_guru a WHERE a.nama LIKE '%".$search['value']."%'")->num_rows();
$q_datanya = $this->db->query("SELECT a.*,
(SELECT COUNT(id) FROM m_admin WHERE level = 'guru' AND kon_id = a.id) AS ada
FROM m_guru a
WHERE a.nama LIKE '%".$search['value']."%' ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$data_ok = array();
$data_ok[0] = $no++;
$data_ok[1] = $d['nama'];
$data_ok[2] = $d['nip'];
$data_ok[3] = '<div class="btn-group">
<a href="#" onclick="return m_guru_e('.$d['id'].');" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-pencil" style="margin-left: 0px; color: #fff"></i> Edit</a>
<a href="#" onclick="return m_guru_h('.$d['id'].');" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-remove" style="margin-left: 0px; color: #fff"></i> Hapus</a>
<a href="#" onclick="return m_guru_matkul('.$d['id'].');" class="btn btn-success btn-xs"><i class="glyphicon glyphicon-th-list" style="margin-left: 0px; color: #fff"></i> MaPel Diampu</a>
';
if ($d['ada'] == "0") {
$data_ok[3] .= '<a href="#" onclick="return m_guru_u('.$d['id'].');" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-user" style="margin-left: 0px; color: #fff"></i> Aktif User</a>';
} else {
$data_ok[3] .= '<a href="#" onclick="return m_guru_ur('.$d['id'].');" class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-random" style="margin-left: 0px; color: #fff"></i> Reset Pass</a>';
}
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else if ($uri3 == "import") {
$a['p'] = "f_guru_import";
} else if ($uri3 == "aktifkan_semua_guru") {
$q_get_user = $this->db->query("select
a.id, a.nama, a.nip, ifnull(b.username,'N') usernya
from m_guru a
left join m_admin b on concat(b.level,b.kon_id) = concat('guru',a.id)")->result_array();
$jml_aktif = 0;
if (!empty($q_get_user)) {
foreach ($q_get_user as $j) {
if ($j['usernya'] == "N") {
$this->db->query("INSERT INTO m_admin VALUES (null, '".$j['nip']."', md5('".$j['nip']."'), 'guru', '".$j['id']."')");
$jml_aktif++;
}
}
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $jml_aktif." user diaktifkan";
j($ret_arr);
exit();
} else {
$a['p'] = "m_guru";
}
$this->load->view('aaa', $a);
}
public function m_mapel() {
$this->cek_aktif();
cek_hakakses(array("admin"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
$a['data'] = $this->db->query("SELECT m_mapel.* FROM m_mapel")->result();
if ($uri3 == "det") {
$a = $this->db->query("SELECT * FROM m_mapel WHERE id = '$uri4'")->row();
j($a);
exit();
} else if ($uri3 == "simpan") {
$ket = "";
if ($p->id != 0) {
$this->db->query("UPDATE m_mapel SET nama = '".bersih($p,"nama")."'
WHERE id = '".bersih($p,"id")."'");
$ket = "edit";
} else {
$ket = "tambah";
$this->db->query("INSERT INTO m_mapel VALUES (null, '".bersih($p,"nama")."')");
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $ket." sukses";
j($ret_arr);
exit();
} else if ($uri3 == "hapus") {
$this->db->query("DELETE FROM m_mapel WHERE id = '".$uri4."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "hapus sukses";
j($ret_arr);
exit();
} else if ($uri3 == "data") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$d_total_row = $this->db->query("SELECT id FROM m_mapel a WHERE a.nama LIKE '%".$search['value']."%'")->num_rows();
$q_datanya = $this->db->query("SELECT a.*
FROM m_mapel a
WHERE a.nama LIKE '%".$search['value']."%' ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$data_ok = array();
$data_ok[0] = $no++;
$data_ok[1] = $d['nama'];
$data_ok[2] = '<div class="btn-group">
<a href="#" onclick="return m_mapel_e('.$d['id'].');" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-pencil" style="margin-left: 0px; color: #fff"></i> Edit</a>
<a href="#" onclick="return m_mapel_h('.$d['id'].');" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-remove" style="margin-left: 0px; color: #fff"></i> Hapus</a>
';
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else {
$a['p'] = "m_mapel";
}
$this->load->view('aaa', $a);
}
/* == GURU == */
public function m_soal() {
$this->cek_aktif();
cek_hakakses(array("admin", "guru"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
$a['huruf_opsi'] = array("a","b","c","d","e");
$a['jml_opsi'] = $this->config->item('jml_opsi');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
$uri5 = $this->uri->segment(5);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
if ($a['sess_level'] == "guru") {
$a['p_guru'] = obj_to_array($this->db->query("SELECT * FROM m_guru WHERE id = '".$a['sess_konid']."'")->result(), "id,nama");
$a['p_mapel'] = obj_to_array($this->db->query("SELECT
b.id, b.nama
FROM tr_guru_mapel a
INNER JOIN m_mapel b ON a.id_mapel = b.id
WHERE a.id_guru = '".$a['sess_konid']."'")->result(), "id,nama");
} else {
$a['p_guru'] = obj_to_array($this->db->query("SELECT * FROM m_guru")->result(), "id,nama");
$a['p_mapel'] = obj_to_array($this->db->query("SELECT
b.id, b.nama
FROM tr_guru_mapel a
INNER JOIN m_mapel b ON a.id_mapel = b.id")->result(), "id,nama");
}
if ($uri3 == "det") {
$a = $this->db->query("SELECT * FROM m_soal WHERE id = '$uri4' ORDER BY id DESC")->row();
j($a);
exit();
} else if ($uri3 == "import") {
$a['p'] = "f_soal_import";
} else if ($uri3 == "hapus_gambar") {
$nama_gambar = $this->db->query("SELECT file FROM m_soal WHERE id = '".$uri5."'")->row();
$this->db->query("UPDATE m_soal SET file = '', tipe_file = '' WHERE id = '".$uri5."'");
@unlink("./upload/gambar_soal/".$nama_gambar->file);
redirect('adm/m_soal/pilih_mapel/'.$uri4);
} else if ($uri3 == "pilih_mapel") {
if ($a['sess_level'] == "guru") {
$a['data'] = $this->db->query("SELECT m_soal.*, m_guru.nama AS nama_guru FROM m_soal INNER JOIN m_guru ON m_soal.id_guru = m_guru.id WHERE m_soal.id_guru = '".$a['sess_konid']."' AND m_soal.id_mapel = '$uri4' ORDER BY id DESC")->result();
} else {
$a['data'] = $this->db->query("SELECT m_soal.*, m_guru.nama AS nama_guru FROM m_soal INNER JOIN m_guru ON m_soal.id_guru = m_guru.id WHERE m_soal.id_mapel = '$uri4' ORDER BY id DESC")->result();
}
//echo $this->db->last_query();
$a['p'] = "m_soal";
} else if ($uri3 == "simpan") {
$p = $this->input->post();
$pembuat_soal = ($a['sess_level'] == "admin") ? $p['id_guru'] : $a['sess_konid'];
$pembuat_soal_u = ($a['sess_level'] == "admin") ? ", id_guru = '".$p['id_guru']."'" : "";
//etok2nya config
$folder_gb_soal = "./upload/gambar_soal/";
$folder_gb_opsi = "./upload/gambar_opsi/";
$buat_folder_gb_soal = !is_dir($folder_gb_soal) ? @mkdir("./upload/gambar_soal/") : false;
$buat_folder_gb_opsi = !is_dir($folder_gb_opsi) ? @mkdir("./upload/gambar_opsi/") : false;
$allowed_type = array("image/jpeg", "image/png", "image/gif",
"audio/mpeg", "audio/mpg", "audio/mpeg3", "audio/mp3", "audio/x-wav", "audio/wave", "audio/wav",
"video/mp4", "application/octet-stream");
$gagal = array();
$nama_file = array();
$tipe_file = array();
//get mode
$__mode = $p['mode'];
$__id_soal = 0;
//ambil data post sementara
$pdata = array(
"id_guru"=>$p['id_guru'],
"id_mapel"=>$p['id_mapel'],
"bobot"=>$p['bobot'],
"soal"=>$p['soal'],
"jawaban"=>$p['jawaban'],
);
if ($__mode == "edit") {
$this->db->where("id", $p['id']);
$this->db->update("m_soal", $pdata);
$__id_soal = $p['id'];
} else {
$this->db->insert("m_soal", $pdata);
$get_id_akhir = $this->db->query("SELECT MAX(id) maks FROM m_soal LIMIT 1")->row_array();
$__id_soal = $get_id_akhir['maks'];
}
//mulai dari sini id soal diambil dari variabel $__id
//lakukan perulangan sejumlah file upload yang terdeteksi
foreach ($_FILES as $k => $v) {
//var file upload
//$k = nama field di form
$file_name = $_FILES[$k]['name'];
$file_type = $_FILES[$k]['type'];
$file_tmp = $_FILES[$k]['tmp_name'];
$file_error = $_FILES[$k]['error'];
$file_size = $_FILES[$k]['size'];
//kode ref file upload jika error
$kode_file_error = array("File berhasil diupload", "Ukuran file terlalu besar", "Ukuran file terlalu besar", "File upload error", "Tidak ada file yang diupload", "File upload error");
//jika file error = 0 / tidak ada, tipe file ada di file yang diperbolehkan, dan nama file != kosong
//echo $file_error."<br>".$file_type;
//exit;
//echo var_dump($file_error == 0 || in_array($file_type, $allowed_type) || $file_name != "");
//exit;
if ($file_error != 0) {
$gagal[$k] = $kode_file_error[$file_error];
$nama_file[$k] = "";
$tipe_file[$k] = "";
} else if (!in_array($file_type, $allowed_type)) {
$gagal[$k] = "Tipe file ini tidak diperbolehkan!";
$nama_file[$k] = "";
$tipe_file[$k] = "";
} else if ($file_name == "") {
$gagal[$k] = "Tidak ada file yang diupload";
$nama_file[$k] = "";
$tipe_file[$k] = "";
} else {
$ekstensi = explode(".", $file_name);
$file_name = $k."_".$__id_soal.".".$ekstensi[1];
if ($k == "gambar_soal") {
@move_uploaded_file($file_tmp, $folder_gb_soal.$file_name);
} else {
@move_uploaded_file($file_tmp, $folder_gb_opsi.$file_name);
}
$gagal[$k] = $kode_file_error[$file_error]; //kode kegagalan upload file
$nama_file[$k] = $file_name; //ambil nama file
$tipe_file[$k] = $file_type; //ambil tipe file
}
}
//ambil data awal
$get_opsi_awal = $this->db->query("SELECT opsi_a, opsi_b, opsi_c, opsi_d, opsi_e FROM m_soal WHERE id = '".$__id_soal."'")->row_array();
$data_simpan = array();
if (!empty($nama_file['gambar_soal'])) {
$data_simpan = array(
"file"=>$nama_file['gambar_soal'],
"tipe_file"=>$tipe_file['gambar_soal'],
);
}
for ($t = 0; $t < $a['jml_opsi']; $t++) {
$idx = "opsi_".$a['huruf_opsi'][$t];
$idx2 = "gj".$a['huruf_opsi'][$t];
//jika file kosong
$pc_opsi_awal = explode("#####", $get_opsi_awal[$idx]);
$nama_file_opsi = empty($nama_file[$idx2]) ? $pc_opsi_awal[0] : $nama_file[$idx2];
$data_simpan[$idx] = $nama_file_opsi."#####".$p[$idx];
}
$this->db->where("id", $__id_soal);
$this->db->update("m_soal", $data_simpan);
$teks_gagal = "";
foreach ($gagal as $k => $v) {
$arr_nama_file_upload = array("gambar_soal"=>"File Soal ", "gja"=>"File opsi A ", "gjb"=>"File opsi B ", "gjc"=>"File opsi C ", "gjd"=>"File opsi D ", "gje"=>"File opsi E ");
$teks_gagal .= $arr_nama_file_upload[$k].': '.$v.'<br>';
}
$this->session->set_flashdata('k', '<div class="alert alert-info">'.$teks_gagal.'</div>');
redirect('adm/m_soal/pilih_mapel/'.$p['id_mapel']);
} else if ($uri3 == "edit") {
$a['opsij'] = array(""=>"Jawaban","A"=>"A","B"=>"B","C"=>"C","D"=>"D","E"=>"E");
$id_guru = $this->session->userdata('admin_level') == "guru" ? "WHERE a.id_guru = '".$a['sess_konid']."'" : "";
$a['p_mapel'] = obj_to_array($this->db->query("SELECT b.id, b.nama FROM tr_guru_mapel a INNER JOIN m_mapel b ON a.id_mapel = b.id $id_guru")->result(),"id,nama");
if ($uri4 == 0) {
$a['d'] = array("mode"=>"add","id"=>"0","id_guru"=>$id_guru,"id_mapel"=>"","bobot"=>"1","file"=>"","soal"=>"","opsi_a"=>"#####","opsi_b"=>"#####","opsi_c"=>"#####","opsi_d"=>"#####","opsi_e"=>"#####","jawaban"=>"","tgl_input"=>"");
} else {
$a['d'] = $this->db->query("SELECT m_soal.*, 'edit' AS mode FROM m_soal WHERE id = '$uri4'")->row_array();
}
$data = array();
for ($e = 0; $e < $a['jml_opsi']; $e++) {
$iidata = array();
$idx = "opsi_".$a['huruf_opsi'][$e];
$idx2 = $a['huruf_opsi'][$e];
$pc_opsi_edit = explode("#####", $a['d'][$idx]);
$iidata['opsi'] = $pc_opsi_edit[1];
$iidata['gambar'] = $pc_opsi_edit[0];
$data[$idx2] = $iidata;
}
$a['data_pc'] = $data;
$a['p'] = "f_soal";
} else if ($uri3 == "hapus") {
$nama_gambar = $this->db->query("SELECT id_mapel, file, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e FROM m_soal WHERE id = '".$uri4."'")->row();
$pc_opsi_a = explode("#####", $nama_gambar->opsi_a);
$pc_opsi_b = explode("#####", $nama_gambar->opsi_b);
$pc_opsi_c = explode("#####", $nama_gambar->opsi_c);
$pc_opsi_d = explode("#####", $nama_gambar->opsi_d);
$pc_opsi_e = explode("#####", $nama_gambar->opsi_e);
$this->db->query("DELETE FROM m_soal WHERE id = '".$uri4."'");
@unlink("./upload/gambar_soal/".$nama_gambar->file);
@unlink("./upload/gambar_soal/".$pc_opsi_a[0]);
@unlink("./upload/gambar_soal/".$pc_opsi_b[0]);
@unlink("./upload/gambar_soal/".$pc_opsi_c[0]);
@unlink("./upload/gambar_soal/".$pc_opsi_d[0]);
@unlink("./upload/gambar_soal/".$pc_opsi_e[0]);
redirect('adm/m_soal/pilih_mapel/'.$nama_gambar->id_mapel);
} else if ($uri3 == "cetak") {
$html = "<link href='".base_url()."___/css/style_print.css' rel='stylesheet' media='' type='text/css'/>";
if ($a['sess_level'] == "admin") {
$data = $this->db->query("SELECT * FROM m_soal")->result();
} else {
$data = $this->db->query("SELECT * FROM m_soal WHERE id_guru = '".$a['sess_konid']."'")->result();
}
$mapel = $this->db->query("SELECT nama FROM m_mapel WHERE id = '".$uri4."'")->row();
if (!empty($data)) {
$no = 1;
$jawaban = array("A","B","C","D","E");
foreach ($data as $d) {
$arr_tipe_media = array(""=>"none","image/jpeg"=>"gambar","image/png"=>"gambar","image/gif"=>"gambar",
"audio/mpeg"=>"audio","audio/mpg"=>"audio","audio/mpeg3"=>"audio","audio/mp3"=>"audio","audio/x-wav"=>"audio","audio/wave"=>"audio","audio/wav"=>"audio",
"video/mp4"=>"video", "application/octet-stream"=>"video");
$tipe_media = $arr_tipe_media[$d->tipe_file];
$file_ada = file_exists("./upload/gambar_soal/".$d->file) ? "ada" : "tidak_ada";
$tampil_media = "";
if ($file_ada == "ada" && $tipe_media == "audio") {
$tampil_media = '<<< Ada media Audionya >>>';
} else if ($file_ada == "ada" && $tipe_media == "video") {
$tampil_media = '<<< Ada media Videonya >>>';
} else if ($file_ada == "ada" && $tipe_media == "gambar") {
$tampil_media = '<p><img src="'.base_url().'upload/gambar_soal/'.$d->file.'" class="thumbnail" style="width: 300px; height: 280px; display: inline; float: left"></p>';
} else {
$tampil_media = '';
}
$html .= '<table>
<tr><td>'.$no.'.</td><td colspan="2">'.$d->soal.'<br>'.$tampil_media.'</td></tr>';
for ($j=0; $j<($this->config->item('jml_opsi'));$j++) {
$opsi = "opsi_".strtolower($jawaban[$j]);
$pc_pilihan_opsi = explode("#####", $d->$opsi);
$tampil_media_opsi = (file_exists('./upload/gambar_soal/'.$pc_pilihan_opsi[0]) AND $pc_pilihan_opsi[0] != "") ? '<img src="'.base_url().'upload/gambar_soal/'.$pc_pilihan_opsi[0].'" style="width: 100px; height: 100px; margin-right: 20px">' : '';
if ($jawaban[$j] == $d->jawaban) {
$html .= '<tr><td width="2%" style="font-weight: bold">'.$jawaban[$j].'</td><td style="font-weight: bold">'.$tampil_media_opsi.$pc_pilihan_opsi[1].'</td></label></tr>';
} else {
$html .= '<tr><td width="2%">'.$jawaban[$j].'</td><td>'.$tampil_media_opsi.$pc_pilihan_opsi[1].'</td></label></tr>';
}
}
$html .= '</table></div>';
$no++;
}
}
echo $html;
exit;
} else if ($uri3 == "data") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$wh = '';
if ($a['sess_level'] == "guru") {
$wh = "a.id_guru = '".$a['sess_konid']."' AND ";
} else if ($a['sess_level'] == "admin") {
$wh = "";
}
$d_total_row = $this->db->query("SELECT a.*
FROM m_soal a
INNER JOIN m_guru b ON a.id_guru = b.id
INNER JOIN m_mapel c ON a.id_mapel = c.id
WHERE ".$wh." (a.soal LIKE '%".$search['value']."%'
OR b.nama LIKE '%".$search['value']."%'
OR c.nama LIKE '%".$search['value']."%')")->num_rows();
$q_datanya = $this->db->query("SELECT a.*, b.nama nmguru, c.nama nmmapel
FROM m_soal a
INNER JOIN m_guru b ON a.id_guru = b.id
INNER JOIN m_mapel c ON a.id_mapel = c.id
WHERE ".$wh." (a.soal LIKE '%".$search['value']."%'
OR b.nama LIKE '%".$search['value']."%'
OR c.nama LIKE '%".$search['value']."%')
ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
//echo $this->db->last_query();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$jml_benar = empty($d['jml_benar']) ? 0 : intval($d['jml_benar']);
$jml_salah = empty($d['jml_salah']) ? 0 : intval($d['jml_salah']);
$total = ($jml_benar + $jml_salah);
$persen_benar = $total > 0 ? (($jml_benar / $total) * 100) : 0;
$data_ok = array();
$data_ok[0] = $no++;
$data_ok[1] = substr($d['soal'], 0, 300);
$data_ok[2] = $d['nmmapel'].'<br>'.$d['nmguru'];
$data_ok[3] = "Jml dipakai : ".($total)."<br>Benar: ".$jml_salah.", Salah: ".$jml_salah."<br>Persentase benar : ".number_format($persen_benar)." %";
$data_ok[4] = '<div class="btn-group">
<a href="'.base_url().'adm/m_soal/edit/'.$d['id'].'" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-pencil" style="margin-left: 0px; color: #fff"></i> Edit</a>
<a href="'.base_url().'adm/m_soal/hapus/'.$d['id'].'" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-remove" style="margin-left: 0px; color: #fff"></i> Hapus</a>
';
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else {
$a['p'] = "m_soal";
}
$this->load->view('aaa', $a);
}
public function m_ujian() {
$this->cek_aktif();
cek_hakakses(array("guru","admin"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
//$a['data'] = $this->db->query("SELECT tr_guru_tes.*, m_mapel.nama AS mapel FROM tr_guru_tes INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id WHERE tr_guru_tes.id_guru = '".$a['sess_konid']."'")->result();
$a['pola_tes'] = array(""=>"Pengacakan Soal", "acak"=>"Soal Diacak", "set"=>"Soal Diurutkan");
$a['p_mapel'] = obj_to_array($this->db->query("SELECT * FROM m_mapel WHERE id IN (SELECT id_mapel FROM tr_guru_mapel WHERE id_guru = '".$a['sess_konid']."')")->result(), "id,nama");
if ($uri3 == "det") {
$are = array();
$a = $this->db->query("SELECT * FROM tr_guru_tes WHERE id = '$uri4'")->row();
if (!empty($a)) {
$pc_waktu = explode(" ", $a->tgl_mulai);
$pc_tgl = explode("-", $pc_waktu[0]);
$pc_terlambat = explode(" ", $a->terlambat);
$are['id'] = $a->id;
$are['id_guru'] = $a->id_guru;
$are['id_mapel'] = $a->id_mapel;
$are['nama_ujian'] = $a->nama_ujian;
$are['jumlah_soal'] = $a->jumlah_soal;
$are['waktu'] = $a->waktu;
$are['terlambat'] = $pc_terlambat[0];
$are['terlambat2'] = substr($pc_terlambat[1],0,5);
$are['jenis'] = $a->jenis;
$are['detil_jenis'] = $a->detil_jenis;
$are['tgl_mulai'] = $pc_waktu[0];
$are['wkt_mulai'] = substr($pc_waktu[1],0,5);
$are['token'] = $a->token;
} else {
$are['id'] = "";
$are['id_guru'] = "";
$are['id_mapel'] = "";
$are['nama_ujian'] = "";
$are['jumlah_soal'] = "";
$are['waktu'] = "";
$are['terlambat'] = "";
$are['terlambat2'] = "";
$are['jenis'] = "";
$are['detil_jenis'] = "";
$are['tgl_mulai'] = "";
$are['wkt_mulai'] = "";
$are['token'] = "";
}
j($are);
exit();
} else if ($uri3 == "simpan") {
$ket = "";
$ambil_data = $this->db->query("SELECT id FROM m_soal WHERE id_mapel = '".bersih($p, "mapel")."' AND id_guru = '".$a['sess_konid']."'")->num_rows();
$jml_soal_diminta = intval(bersih($p, "jumlah_soal"));
if ($ambil_data < $jml_soal_diminta) {
$ret_arr['status'] = "gagal";
$ret_arr['caption'] = "Jumlah soal diinput, melebihi jumlah soal yang ada: ".$ambil_data;
} else {
if ($p->id != 0) {
$this->db->query("UPDATE tr_guru_tes SET
id_mapel = '".bersih($p,"mapel")."',
nama_ujian = '".bersih($p,"nama_ujian")."',
jumlah_soal = '".bersih($p,"jumlah_soal")."',
waktu = '".bersih($p,"waktu")."',
terlambat = '".bersih($p,"terlambat")." ".bersih($p,"terlambat2")."',
tgl_mulai = '".bersih($p,"tgl_mulai")." ".bersih($p,"wkt_mulai")."',
jenis = '".bersih($p,"acak")."'
WHERE id = '".bersih($p,"id")."'");
$ket = "edit";
} else {
$ket = "tambah";
$token = strtoupper(random_string('alpha', 5));
$this->db->query("INSERT INTO tr_guru_tes VALUES (
null,
'".$a['sess_konid']."',
'".bersih($p,"mapel")."',
'".bersih($p,"nama_ujian")."',
'".bersih($p,"jumlah_soal")."',
'".bersih($p,"waktu")."',
'".bersih($p,"acak")."',
'',
'".bersih($p,"tgl_mulai")." ".bersih($p,"wkt_mulai")."',
'".bersih($p,"terlambat")." ".bersih($p,"terlambat2")."',
'$token')");
}
$ret_arr['status'] = "ok";
$ret_arr['caption'] = $ket." sukses";
}
j($ret_arr);
exit();
} else if ($uri3 == "hapus") {
$this->db->query("DELETE FROM tr_guru_tes WHERE id = '".$uri4."'");
$ret_arr['status'] = "ok";
$ret_arr['caption'] = "hapus sukses";
j($ret_arr);
exit();
} else if ($uri3 == "data") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$d_total_row = $this->db->query("SELECT a.id
FROM tr_guru_tes a
INNER JOIN m_mapel b ON a.id_mapel = b.id
WHERE a.id_guru = '".$a['sess_konid']."'
AND (a.nama_ujian LIKE '%".$search['value']."%'
OR b.nama LIKE '%".$search['value']."%')")->num_rows();
//echo $this->db->last_query();
$q_datanya = $this->db->query("SELECT a.*, b.nama AS mapel
FROM tr_guru_tes a
INNER JOIN m_mapel b ON a.id_mapel = b.id
WHERE a.id_guru = '".$a['sess_konid']."'
AND (a.nama_ujian LIKE '%".$search['value']."%'
OR b.nama LIKE '%".$search['value']."%')
ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$jenis_soal = $d['jenis'] == "acak" ? "Soal diacak" : "Soal urut";
$data_ok = array();
$data_ok[0] = $no++;
$data_ok[1] = $d['nama_ujian']."<br>Token : <b>".$d['token']."</b> <a href='#' onclick='return refresh_token(".$d['id'].")' title='Perbarui Token'><i class='fa fa-refresh'></i></a>";
$data_ok[2] = $d['mapel'];
$data_ok[3] = $d['jumlah_soal'];
$data_ok[4] = tjs($d['tgl_mulai'],"s")."<br>(".$d['waktu']." menit)";
$data_ok[5] = $jenis_soal;
$data_ok[6] = '
<div class="btn-group">
<a href="#" onclick="return m_ujian_e('.$d['id'].');" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-pencil" style="margin-left: 0px; color: #fff"></i> Edit</a>
<a href="#" onclick="return m_ujian_h('.$d['id'].');" class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-remove" style="margin-left: 0px; color: #fff"></i> Hapus</a>
</div>
';
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else if ($uri3 == "refresh_token") {
$token = strtoupper(random_string('alpha', 5));
$this->db->query("UPDATE tr_guru_tes SET token = '$token' WHERE id = '$uri4'");
$ret_arr['status'] = "ok";
j($ret_arr);
exit();
} else {
$a['p'] = "m_guru_tes";
}
$this->load->view('aaa', $a);
}
public function h_ujian() {
$this->cek_aktif();
cek_hakakses(array("guru","admin"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
$uri5 = $this->uri->segment(5);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
$wh_1 = $a['sess_level'] == "admin" ? "" : " AND a.id_guru = '".$a['sess_konid']."'";
//$a['data'] = $this->db->query($wh_1)->result();
$a['p_mapel'] = obj_to_array($this->db->query("SELECT * FROM m_mapel")->result(), "id,nama");
if ($uri3 == "det") {
$a['detil_tes'] = $this->db->query("SELECT m_mapel.nama AS namaMapel, m_guru.nama AS nama_guru,
tr_guru_tes.*
FROM tr_guru_tes
INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id
WHERE tr_guru_tes.id = '$uri4'")->row();
$a['statistik'] = $this->db->query("SELECT MAX(nilai) AS max_, MIN(nilai) AS min_, AVG(nilai) AS avg_
FROM tr_ikut_ujian
WHERE tr_ikut_ujian.id_tes = '$uri4'")->row();
//$a['hasil'] = $this->db->query("")->result();
$a['p'] = "m_guru_tes_hasil_detil";
//echo $this->db->last_query();
} else if ($uri3 == "data_det") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$d_total_row = $this->db->query("
SELECT a.id
FROM tr_ikut_ujian a
INNER JOIN m_siswa b ON a.id_user = b.id
WHERE a.id_tes = '$uri4'
AND b.nama LIKE '%".$search['value']."%'")->num_rows();
$q_datanya = $this->db->query("
SELECT a.id, b.nama, a.nilai, a.jml_benar, a.nilai_bobot
FROM tr_ikut_ujian a
INNER JOIN m_siswa b ON a.id_user = b.id
WHERE a.id_tes = '$uri4'
AND b.nama LIKE '%".$search['value']."%' ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$data_ok = array();
$data_ok[0] = $no++;
$data_ok[1] = $d['nama'];
$data_ok[2] = $d['jml_benar'];
$data_ok[3] = $d['nilai'];
$data_ok[4] = $d['nilai_bobot'];
$data_ok[5] = '<a href="'.base_url().'adm/h_ujian/batalkan_ujian/'.$d['id'].'/'.$this->uri->segment(4).'" class="btn btn-danger btn-xs" onclick="return confirm(\'Anda yakin...?\');"><i class="glyphicon glyphicon-remove" style="margin-left: 0px; color: #fff"></i> Batalkan Ujian</a>';
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else if ($uri3 == "batalkan_ujian") {
$this->db->query("DELETE FROM tr_ikut_ujian WHERE id = '$uri4'");
redirect('adm/h_ujian/det/'.$uri5);
} else if ($uri3 == "data") {
$start = $this->input->post('start');
$length = $this->input->post('length');
$draw = $this->input->post('draw');
$search = $this->input->post('search');
$d_total_row = $this->db->query("SELECT a.id FROM tr_guru_tes a
INNER JOIN m_mapel b ON a.id_mapel = b.id
INNER JOIN m_guru c ON a.id_guru = c.id
WHERE (a.nama_ujian LIKE '%".$search['value']."%' OR b.nama LIKE '%".$search['value']."%' OR c.nama LIKE '%".$search['value']."%') ".$wh_1."")->num_rows();
//echo $this->db->last_query();
$q_datanya = $this->db->query("SELECT a.*, b.nama AS mapel, c.nama AS nama_guru FROM tr_guru_tes a
INNER JOIN m_mapel b ON a.id_mapel = b.id
INNER JOIN m_guru c ON a.id_guru = c.id
WHERE (a.nama_ujian LIKE '%".$search['value']."%' OR b.nama LIKE '%".$search['value']."%' OR c.nama LIKE '%".$search['value']."%') ".$wh_1." ORDER BY a.id DESC LIMIT ".$start.", ".$length."")->result_array();
$data = array();
$no = ($start+1);
foreach ($q_datanya as $d) {
$data_ok = array();
$data_ok[0] = $no++;
$data_ok[1] = $d['nama_ujian'];
$data_ok[2] = $d['nama_guru'];
$data_ok[3] = $d['mapel'];
$data_ok[4] = $d['jumlah_soal'];
$data_ok[5] = $d['waktu']." menit";
$data_ok[6] = '<a href="'.base_url().'adm/h_ujian/det/'.$d['id'].'" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-search" style="margin-left: 0px; color: #fff"></i> Lihat Hasil</a>
';
$data[] = $data_ok;
}
$json_data = array(
"draw" => $draw,
"iTotalRecords" => $d_total_row,
"iTotalDisplayRecords" => $d_total_row,
"data" => $data
);
j($json_data);
exit;
} else {
$a['p'] = "m_guru_tes_hasil";
}
$this->load->view('aaa', $a);
}
public function hasil_ujian_cetak() {
$this->cek_aktif();
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
$a['detil_tes'] = $this->db->query("SELECT m_mapel.nama AS namaMapel, m_guru.nama AS nama_guru,
tr_guru_tes.*
FROM tr_guru_tes
INNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id
INNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id
WHERE tr_guru_tes.id = '$uri3'")->row();
$a['statistik'] = $this->db->query("SELECT MAX(nilai) AS max_, MIN(nilai) AS min_, AVG(nilai) AS avg_
FROM tr_ikut_ujian
WHERE tr_ikut_ujian.id_tes = '$uri3'")->row();
$a['hasil'] = $this->db->query("SELECT m_siswa.nama, tr_ikut_ujian.nilai, tr_ikut_ujian.jml_benar, tr_ikut_ujian.nilai_bobot
FROM tr_ikut_ujian
INNER JOIN m_siswa ON tr_ikut_ujian.id_user = m_siswa.id
WHERE tr_ikut_ujian.id_tes = '$uri3'")->result();
$this->load->view("m_guru_tes_hasil_detil_cetak", $a);
}
/* == SISWA == */
public function ikuti_ujian() {
$this->cek_aktif();
cek_hakakses(array("siswa"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
//return as json
$jeson = array();
//$a['sess_konid']
$a['data'] = $this->db->query("SELECT
a.id, a.nama_ujian, a.jumlah_soal, a.waktu,
b.nama nmmapel,
c.nama nmguru,
IF((d.status='Y' AND NOW() BETWEEN d.tgl_mulai AND d.tgl_selesai),'Sedang Tes',
IF(d.status='Y' AND NOW() NOT BETWEEN d.tgl_mulai AND d.tgl_selesai,'Waktu Habis',
IF(d.status='N','Selesai','Belum Ikut'))) status
FROM tr_guru_tes a
INNER JOIN m_mapel b ON a.id_mapel = b.id
INNER JOIN m_guru c ON a.id_guru = c.id
LEFT JOIN tr_ikut_ujian d ON CONCAT('".$a['sess_konid']."',a.id) = CONCAT(d.id_user,d.id_tes)
ORDER BY a.id ASC")->result();
//echo $this->db->last_query();
$a['p'] = "m_list_ujian_siswa";
$this->load->view('aaa', $a);
}
public function ikut_ujian() {
$this->cek_aktif();
cek_hakakses(array("siswa"), $this->session->userdata('admin_level'));
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
$a['detil_user'] = $this->db->query("SELECT * FROM m_siswa WHERE id = '".$a['sess_konid']."'")->row();
if ($uri3 == "simpan_satu") {
$p = json_decode(file_get_contents('php://input'));
$update_ = "";
for ($i = 1; $i < $p->jml_soal; $i++) {
$_tjawab = "opsi_".$i;
$_tidsoal = "id_soal_".$i;
$_ragu = "rg_".$i;
$jawaban_ = empty($p->$_tjawab) ? "" : $p->$_tjawab;
$update_ .= "".$p->$_tidsoal.":".$jawaban_.":".$p->$_ragu.",";
}
$update_ = substr($update_, 0, -1);
$this->db->query("UPDATE tr_ikut_ujian SET list_jawaban = '".$update_."' WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'");
//echo $this->db->last_query();
$q_ret_urn = $this->db->query("SELECT list_jawaban FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'");
$d_ret_urn = $q_ret_urn->row_array();
$ret_urn = explode(",", $d_ret_urn['list_jawaban']);
$hasil = array();
foreach ($ret_urn as $key => $value) {
$pc_ret_urn = explode(":", $value);
$idx = $pc_ret_urn[0];
$val = $pc_ret_urn[1].'_'.$pc_ret_urn[2];
$hasil[]= $val;
}
$d['data'] = $hasil;
$d['status'] = "ok";
j($d);
exit;
} else if ($uri3 == "simpan_akhir") {
$id_tes = abs($uri4);
$get_jawaban = $this->db->query("SELECT list_jawaban FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'")->row_array();
$pc_jawaban = explode(",", $get_jawaban['list_jawaban']);
$jumlah_benar = 0;
$jumlah_salah = 0;
$jumlah_ragu = 0;
$nilai_bobot = 0;
$total_bobot = 0;
$jumlah_soal = sizeof($pc_jawaban);
for ($x = 0; $x < $jumlah_soal; $x++) {
$pc_dt = explode(":", $pc_jawaban[$x]);
$id_soal = $pc_dt[0];
$jawaban = $pc_dt[1];
$ragu = $pc_dt[2];
$cek_jwb = $this->db->query("SELECT bobot, jawaban FROM m_soal WHERE id = '".$id_soal."'")->row();
$total_bobot = $total_bobot + $cek_jwb->bobot;
if (($cek_jwb->jawaban == $jawaban)) {
//jika jawaban benar
$jumlah_benar++;
$nilai_bobot = $nilai_bobot + $cek_jwb->bobot;
$q_update_jwb = "UPDATE m_soal SET jml_benar = jml_benar + 1 WHERE id = '".$id_soal."'";
} else {
//jika jawaban salah
$jumlah_salah++;
$q_update_jwb = "UPDATE m_soal SET jml_salah = jml_salah + 1 WHERE id = '".$id_soal."'";
}
$this->db->query($q_update_jwb);
}
$nilai = ($jumlah_benar / $jumlah_soal) * 100;
$nilai_bobot = ($nilai_bobot / $total_bobot) * 100;
$this->db->query("UPDATE tr_ikut_ujian SET jml_benar = ".$jumlah_benar.", nilai = ".$nilai.", nilai_bobot = ".$nilai_bobot.", status = 'N' WHERE id_tes = '$id_tes' AND id_user = '".$a['sess_konid']."'");
$a['status'] = "ok";
j($a);
exit;
} else if ($uri3 == "token") {
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$a['du'] = $this->db->query("SELECT a.id, a.tgl_mulai, a.terlambat,
a.token, a.nama_ujian, a.jumlah_soal, a.waktu,
b.nama nmguru, c.nama nmmapel,
(case
when (now() < a.tgl_mulai) then 0
when (now() >= a.tgl_mulai and now() <= a.terlambat) then 1
else 2
end) statuse
FROM tr_guru_tes a
INNER JOIN m_guru b ON a.id_guru = b.id
INNER JOIN m_mapel c ON a.id_mapel = c.id
WHERE a.id = '$uri4'")->row_array();
$a['dp'] = $this->db->query("SELECT * FROM m_siswa WHERE id = '".$a['sess_konid']."'")->row_array();
//$q_status = $this->db->query();
if (!empty($a['du']) || !empty($a['dp'])) {
$tgl_selesai = $a['du']['tgl_mulai'];
//$tgl_selesai2 = strtotime($tgl_selesai);
//$tgl_baru = date('F j, Y H:i:s', $tgl_selesai);
//$tgl_terlambat = strtotime("+".$a['du']['terlambat']." minutes", $tgl_selesai2);
$tgl_terlambat_baru = $a['du']['terlambat'];
$a['tgl_mulai'] = $tgl_selesai;
$a['terlambat'] = $tgl_terlambat_baru;
$a['p'] = "m_token";
$this->load->view('aaa', $a);
} else {
redirect('adm/ikuti_ujian');
}
} else {
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$cek_sdh_selesai= $this->db->query("SELECT id FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."' AND status = 'N'")->num_rows();
//sekalian validasi waktu sudah berlalu...
if ($cek_sdh_selesai < 1) {
//ini jika ujian belum tercatat, belum ikut
//ambil detil soal
$cek_detil_tes = $this->db->query("SELECT * FROM tr_guru_tes WHERE id = '$uri4'")->row();
$q_cek_sdh_ujian= $this->db->query("SELECT id FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'");
$d_cek_sdh_ujian= $q_cek_sdh_ujian->row();
$cek_sdh_ujian = $q_cek_sdh_ujian->num_rows();
$acakan = $cek_detil_tes->jenis == "acak" ? "ORDER BY RAND()" : "ORDER BY id ASC";
if ($cek_sdh_ujian < 1) {
$soal_urut_ok = array();
$q_soal = $this->db->query("SELECT id, file, tipe_file, soal, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e, '' AS jawaban FROM m_soal WHERE id_mapel = '".$cek_detil_tes->id_mapel."' AND id_guru = '".$cek_detil_tes->id_guru."' ".$acakan." LIMIT ".$cek_detil_tes->jumlah_soal)->result();
$i = 0;
foreach ($q_soal as $s) {
$soal_per = new stdClass();
$soal_per->id = $s->id;
$soal_per->soal = $s->soal;
$soal_per->file = $s->file;
$soal_per->tipe_file = $s->tipe_file;
$soal_per->opsi_a = $s->opsi_a;
$soal_per->opsi_b = $s->opsi_b;
$soal_per->opsi_c = $s->opsi_c;
$soal_per->opsi_d = $s->opsi_d;
$soal_per->opsi_e = $s->opsi_e;
$soal_per->jawaban = $s->jawaban;
$soal_urut_ok[$i] = $soal_per;
$i++;
}
$soal_urut_ok = $soal_urut_ok;
$list_id_soal = "";
$list_jw_soal = "";
if (!empty($q_soal)) {
foreach ($q_soal as $d) {
$list_id_soal .= $d->id.",";
$list_jw_soal .= $d->id."::N,";
}
}
$list_id_soal = substr($list_id_soal, 0, -1);
$list_jw_soal = substr($list_jw_soal, 0, -1);
$waktu_selesai = tambah_jam_sql($cek_detil_tes->waktu);
$time_mulai = date('Y-m-d H:i:s');
$this->db->query("INSERT INTO tr_ikut_ujian VALUES (null, '$uri4', '".$a['sess_konid']."', '$list_id_soal', '$list_jw_soal', 0, 0, 0, '$time_mulai', ADDTIME('$time_mulai', '$waktu_selesai'), 'Y')");
$detil_tes = $this->db->query("SELECT * FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'")->row();
$soal_urut_ok= $soal_urut_ok;
} else {
$q_ambil_soal = $this->db->query("SELECT * FROM tr_ikut_ujian WHERE id_tes = '$uri4' AND id_user = '".$a['sess_konid']."'")->row();
$urut_soal = explode(",", $q_ambil_soal->list_jawaban);
$soal_urut_ok = array();
for ($i = 0; $i < sizeof($urut_soal); $i++) {
$pc_urut_soal = explode(":",$urut_soal[$i]);
$pc_urut_soal1 = empty($pc_urut_soal[1]) ? "''" : "'".$pc_urut_soal[1]."'";
$ambil_soal = $this->db->query("SELECT *, $pc_urut_soal1 AS jawaban FROM m_soal WHERE id = '".$pc_urut_soal[0]."'")->row();
$soal_urut_ok[] = $ambil_soal;
}
$detil_tes = $q_ambil_soal;
$soal_urut_ok = $soal_urut_ok;
}
$pc_list_jawaban = explode(",", $detil_tes->list_jawaban);
$arr_jawab = array();
foreach ($pc_list_jawaban as $v) {
$pc_v = explode(":", $v);
$idx = $pc_v[0];
$val = $pc_v[1];
$rg = $pc_v[2];
$arr_jawab[$idx] = array("j"=>$val,"r"=>$rg);
}
$html = '';
$no = 1;
if (!empty($soal_urut_ok)) {
foreach ($soal_urut_ok as $d) {
$tampil_media = tampil_media("./upload/gambar_soal/".$d->file, 'auto','auto');
$vrg = $arr_jawab[$d->id]["r"] == "" ? "N" : $arr_jawab[$d->id]["r"];
$html .= '<input type="hidden" name="id_soal_'.$no.'" value="'.$d->id.'">';
$html .= '<input type="hidden" name="rg_'.$no.'" id="rg_'.$no.'" value="'.$vrg.'">';
$html .= '<div class="step" id="widget_'.$no.'">';
$html .= $d->soal.'<br>'.$tampil_media.'<div class="funkyradio">';
for ($j = 0; $j < $this->config->item('jml_opsi'); $j++) {
$opsi = "opsi_".$this->opsi[$j];
$checked = $arr_jawab[$d->id]["j"] == strtoupper($this->opsi[$j]) ? "checked" : "";
$pc_pilihan_opsi = explode("#####", $d->$opsi);
$tampil_media_opsi = (is_file('./upload/gambar_soal/'.$pc_pilihan_opsi[0]) || $pc_pilihan_opsi[0] != "") ? tampil_media('./upload/gambar_opsi/'.$pc_pilihan_opsi[0],'auto','auto') : '';
$pilihan_opsi = empty($pc_pilihan_opsi[1]) ? "-" : $pc_pilihan_opsi[1];
$html .= '<div class="funkyradio-success" onclick="return simpan_sementara();">
<input type="radio" id="opsi_'.strtoupper($this->opsi[$j]).'_'.$d->id.'" name="opsi_'.$no.'" value="'.strtoupper($this->opsi[$j]).'" '.$checked.'> <label for="opsi_'.strtoupper($this->opsi[$j]).'_'.$d->id.'"><div class="huruf_opsi">'.$this->opsi[$j].'</div> <p>'.$pilihan_opsi.'</p><p>'.$tampil_media_opsi.'</p></label></div>';
}
$html .= '</div></div>';
$no++;
}
}
$a['jam_mulai'] = $detil_tes->tgl_mulai;
$a['jam_selesai'] = $detil_tes->tgl_selesai;
$a['id_tes'] = $cek_detil_tes->id;
$a['no'] = $no;
$a['html'] = $html;
$this->load->view('v_ujian', $a);
} else {
redirect('adm/sudah_selesai_ujian/'.$uri4);
}
}
}
public function jvs() {
$this->cek_aktif();
$data_soal = $this->db->query("SELECT id, gambar, soal, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e FROM m_soal ORDER BY RAND()")->result();
j($data_soal);
exit;
}
public function rubah_password() {
$this->cek_aktif();
//var def session
$a['sess_admin_id'] = $this->session->userdata('admin_id');
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
//var post from json
$p = json_decode(file_get_contents('php://input'));
$ret = array();
if ($uri3 == "simpan") {
$p1_md5 = md5($p->p1);
$p2_md5 = md5($p->p2);
$p3_md5 = md5($p->p3);
$cek_pass_lama = $this->db->query("SELECT password FROM m_admin WHERE id = '".$a['sess_admin_id']."'")->row();
if ($cek_pass_lama->password != $p1_md5) {
$ret['status'] = "error";
$ret['msg'] = "Password lama tidak sama!";
} else if ($p2_md5 != $p3_md5) {
$ret['status'] = "error";
$ret['msg'] = "Password baru konfirmasinya tidak sama!";
} else if (strlen($p->p2) < 6) {
$ret['status'] = "error";
$ret['msg'] = "Password baru minimal terdiri dari 6 huruf!";
} else {
$this->db->query("UPDATE m_admin SET password = '".$p3_md5."' WHERE id = '".$a['sess_admin_id']."'");
$ret['status'] = "ok";
$ret['msg'] = "Password berhasil diubah!";
}
j($ret);
exit;
} else {
$data = $this->db->query("SELECT id, kon_id, level, username FROM m_admin WHERE id = '".$a['sess_admin_id']."'")->row();
j($data);
exit;
}
}
public function sudah_selesai_ujian() {
$this->cek_aktif();
//var def session
$a['sess_level'] = $this->session->userdata('admin_level');
$a['sess_user'] = $this->session->userdata('admin_user');
$a['sess_konid'] = $this->session->userdata('admin_konid');
//var def uri segment
$uri2 = $this->uri->segment(2);
$uri3 = $this->uri->segment(3);
$uri4 = $this->uri->segment(4);
$q_nilai = $this->db->query("SELECT nilai, tgl_selesai FROM tr_ikut_ujian WHERE id_tes = $uri3 AND id_user = '".$a['sess_konid']."' AND status = 'N'")->row();
if (empty($q_nilai)) {
redirect('adm/ikut_ujian/_/'.$uri3);
} else {
$a['p'] = "v_selesai_ujian";
if ($this->config->item('tampil_nilai')) {
$a['data'] = "<div class='alert alert-danger'>Anda telah selesai mengikuti ujian ini pada : <strong style='font-size: 16px'>".tjs($q_nilai->tgl_selesai, "l")."</strong>, dan mendapatkan nilai : <strong style='font-size: 16px'>".$q_nilai->nilai."</strong></div>";
} else {
$a['data'] = "<div class='alert alert-danger'>Anda telah selesai mengikuti ujian ini pada : <strong style='font-size: 16px'>".tjs($q_nilai->tgl_selesai, "l")."</strong>. Nilai akan diumumkan oleh Guru yang bersangkutan.</div>";
}
}
$this->load->view('aaa', $a);
}
/* Login Logout */
public function login() {
$this->load->view('aaa_login');
}
public function act_login() {
$username = $this->input->post('username');
$password = $this->input->post('password');
$password2 = md5($password);
$q_data = $this->db->query("SELECT * FROM m_admin WHERE username = '".$username."' AND password = '$password2'");
$j_data = $q_data->num_rows();
$a_data = $q_data->row();
$_log = array();
if ($j_data === 1) {
$sess_nama_user = "";
if ($a_data->level == "siswa") {
$det_user = $this->db->query("SELECT nama FROM m_siswa WHERE id = '".$a_data->kon_id."'")->row();
if (!empty($det_user)) {
$sess_nama_user = $det_user->nama;
}
} else if ($a_data->level == "guru") {
$det_user = $this->db->query("SELECT nama FROM m_guru WHERE id = '".$a_data->kon_id."'")->row();
if (!empty($det_user)) {
$sess_nama_user = $det_user->nama;
}
} else {
$sess_nama_user = "Administrator";
}
$data = array(
'admin_id' => $a_data->id,
'admin_user' => $a_data->username,
'admin_level' => $a_data->level,
'admin_konid' => $a_data->kon_id,
'admin_nama' => $sess_nama_user,
'admin_valid' => true
);
$this->session->set_userdata($data);
$_log['log']['status'] = "1";
$_log['log']['keterangan'] = "Login Berhasil";
$_log['log']['detil_admin'] = $this->session->userdata;
} else {
$_log['log']['status'] = "0";
$_log['log']['keterangan'] = "username dan password tidak ditemukan";
$_log['log']['detil_admin'] = null;
}
j($_log);
}
public function logout() {
$data = array(
'admin_id' => "",
'admin_user' => "",
'admin_level' => "",
'admin_konid' => "",
'admin_nama' => "",
'admin_valid' => false
);
$this->session->set_userdata($data);
redirect('adm');
}
//fungsi tambahan
public function get_akhir($tabel, $field, $kode_awal, $pad) {
$get_akhir = $this->db->query("SELECT MAX($field) AS max FROM $tabel LIMIT 1")->row();
$data = (intval($get_akhir->max)) + 1;
$last = $kode_awal.str_pad($data, $pad, '0', STR_PAD_LEFT);
return $last;
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */