ikhsan3adi / absensi-sekolah-qr-code

Sistem absensi siswa dan guru berbasis QR Code menggunakan CodeIgniter 4 🔥
https://youtube.com/watch?v=E1ho6wRBIUs
GNU General Public License v3.0
154 stars 51 forks source link

mengatur jam masuk #6

Closed lialubna closed 2 months ago

lialubna commented 12 months ago

bagaimana cara mengatur jam masuk ? sehingga keterangan otomatis jika ada siswa terlambat

ikhsan3adi commented 12 months ago

Untuk mengatuk jam masuk, masuk ke menu absensi siswa/guru lalu pilih menu edit.

Saat ini aplikasi belum memiliki fitur keterangan otomatis jika absen terlambat, kami akan mencatat permintaan Anda untuk menambahkan fitur tersebut. Kami akan mempertimbangkan permintaan ini untuk pengembangan dan pembaruan masa depan.

kevindoni commented 11 months ago

Mungkin jika absen siswa di buat per jam pelajaran sepertinya lebih efektif untuk menghindari siswa bolos di jam pelajaran tertentu 😅

ikhsan3adi commented 11 months ago

Mungkin jika absen siswa di buat per jam pelajaran sepertinya lebih efektif untuk menghindari siswa bolos di jam pelajaran tertentu 😅

Memungkinkan, tapi akan banyak sistem yang dirombak karena membutuhkan banyak tabel tambahan. Mungkin bisa dibuatkan dulu gambaran sistemnya seperti apa, bisa pake diagram ERD.

kevindoni commented 11 months ago
private function view_berkali(){
    $view=$this->M_absen->view_berkali_kali()->berapa_kali;
    if ($view=="bisa") {
        return "bisa";
    }elseif($view=="tidak") {
        return "tidak";
    }else{
        return "gagal";
    }
}

mungkin bisa menambahkan contoler dan models seperti ini untuk absensi per jam pelajaran

function view_berkali_kali(){ return $this->db->get_where("buat",['id'=>1])->row(); } }

kevindoni commented 11 months ago

sebagai refrensi

image

image

kevindoni commented 11 months ago

Absensi Controllers

class Absensi extends CI_Controller {

   public function __construct() {
       parent::__construct();
       $this->load->model('Absensi_model');
   }

   public function index() {
       // Tampilkan halaman absensi siswa
       $this->load->view('absensi');
   }

   public function absen_siswa() {
       // Ambil data dari form
       $id_siswa = $this->input->post('id_siswa');
       $jam_pelajaran = $this->input->post('jam_pelajaran');

       // Cek apakah qrcode valid dan belum absen
       $is_valid = $this->Absensi_model->is_valid_qrcode($id_siswa, $jam_pelajaran);
       if ($is_valid) {
           // Tambahkan data absensi ke database
           $this->Absensi_model->tambah_absensi($id_siswa, $jam_pelajaran);

           // Tampilkan pesan berhasil absen
           echo json_encode(['status' => 'success', 'message' => 'Absensi berhasil']);
       } else {
           // Tampilkan pesan qrcode tidak valid atau sudah absen
           echo json_encode(['status' => 'error', 'message' => 'QRCode tidak valid atau anda sudah absen']);
       }
   }

}

Absensi_model

class Absensi_model extends CI_Model {

   public function is_valid_qrcode($id_siswa, $jam_pelajaran) {
       // Cek apakah qrcode valid
       // Misalnya dengan membandingkan qrcode yang di-scan dengan data siswa dan jam pelajaran dari database

       // Jika qrcode valid, cek apakah sudah absen pada jam pelajaran yang sama hari ini
       $tanggal_absen = date('Y-m-d');
       $this->db->where('id_siswa', $id_siswa);
       $this->db->where('jam_pelajaran', $jam_pelajaran);
       $this->db->where('tanggal_absen', $tanggal_absen);
       $absen = $this->db->get('absensi_siswa')->row();

       return (!$absen) ? true : false;
   }

   public function tambah_absensi($id_siswa, $jam_pelajaran) {
       // Tambahkan data absensi ke database
       $tanggal_absen = date('Y-m-d');
       $data = array(
           'id_siswa' => $id_siswa,
           'jam_pelajaran' => $jam_pelajaran,
           'tanggal_absen' => $tanggal_absen
       );

       $this->db->insert('absensi_siswa', $data);
   }

}

absensi Views

<!DOCTYPE html>

Absen Siswa

Absen Siswa