Beranda Artikel Web Development Membangun Sistem Absensi Siswa
Web Development

Membangun Sistem Absensi Siswa

4 bulan lalu TARYADI 3 menit baca

Membangun sistem absensi dan penanganan siswa di WordPress adalah langkah cerdas untuk digitalisasi sekolah. Menggunakan Child Theme GeneratePress adalah pilihan tepat karena temanya ringan, stabil, dan sangat ramah bagi pengembang.

Berikut adalah panduan teknis dasar untuk membangun sistem tersebut menggunakan pendekatan koding (custom code).


Membangun Sistem Absensi Siswa di WordPress

Dengan menggunakan Child Theme, perubahan kode yang kita lakukan tidak akan hilang saat tema utama diperbarui.

1. Persiapan Child Theme

Pastikan Anda sudah mengaktifkan Child Theme GeneratePress. Struktur folder Anda minimal akan memiliki file style.css dan functions.php.

2. Membuat Database Siswa (Custom Post Type)

Kita tidak menggunakan “Post” biasa, melainkan membuat tipe konten khusus bernama “Siswa”. Masukkan kode ini di functions.php:

PHP

function buat_post_type_siswa() {
    register_post_type('siswa',
        array(
            'labels'      => array('name' => 'Siswa', 'singular_name' => 'Siswa'),
            'public'      => true,
            'has_archive' => true,
            'menu_icon'   => 'dashicons-businessman',
            'supports'    => array('title', 'editor', 'thumbnail', 'custom-fields'),
        )
    );
}
add_action('init', 'buat_post_type_siswa');

3. Logika Absensi (PHP & AJAX)

Untuk mencatat kehadiran tanpa refresh halaman, kita gunakan AJAX. Buat fungsi di functions.php untuk menangkap input dari form absensi:

  • PHP: Gunakan update_post_meta() untuk menyimpan status kehadiran (Hadir, Izin, Alpa) berdasarkan ID siswa dan tanggal hari ini.
  • Keamanan: Gunakan check_admin_referer() untuk memastikan data yang masuk aman dari serangan CSRF.

4. Interface Form Absensi (HTML & CSS)

Buat halaman khusus (Page Template) untuk guru mengabsen. Gunakan CSS di style.css agar tampilan tabel absen rapi di HP:

CSS

/* Custom CSS untuk Tabel Absen */
.tabel-absen {
    width: 100%;
    border-collapse: collapse;
}
.tabel-absen th, .tabel-absen td {
    padding: 12px;
    border-bottom: 1px solid #ddd;
}
.btn-hadir { background-color: #27ae60; color: white; border: none; padding: 5px 10px; cursor: pointer; }

5. Fitur Penanganan Siswa (Catatan Konseling)

Gunakan Custom Fields untuk mencatat poin pelanggaran atau prestasi. Anda bisa menggunakan plugin ACF (Advanced Custom Fields) agar proses input lebih mudah, lalu panggil datanya di front-end menggunakan PHP:

PHP

$poin_siswa = get_field('poin_pelanggaran', $post_id);
echo "Total Poin: " . $poin_poin_siswa;

6. Interaktivitas dengan JavaScript

Gunakan sedikit Vanilla JS atau jQuery (yang sudah ada di WordPress) untuk memberikan notifikasi sukses saat tombol absen diklik.

JavaScript

// Contoh sederhana feedback absen
document.querySelectorAll('.btn-hadir').forEach(button => {
    button.addEventListener('click', function() {
        this.innerHTML = "Tercatat!";
        this.style.backgroundColor = "#95a5a6";
    });
});

Mengapa Pendekatan Ini Efektif?

  • Ringan: Tidak banyak memakan memori karena minim plugin pihak ketiga.
  • Kustom: Anda bisa menentukan sendiri apakah siswa yang terlambat 3 kali otomatis mendapat poin pelanggaran melalui logika PHP.
  • Privasi: Data tersimpan di server sendiri, bukan di pihak ketiga.

Catatan Penting: Karena ini melibatkan data siswa, pastikan Anda membatasi akses halaman absensi ini hanya untuk pengguna dengan role “Editor” atau “Teacher” menggunakan fungsi current_user_can().

Share:

Artikel Terkait

7 Pentingnya Website untuk Perusahaan Web Development
4 bulan lalu

7 Pentingnya Website untuk Perusahaan

Di era digital yang serba cepat ini, keberadaan internet telah mengubah cara manusia berinteraksi, berbelanja, dan mencari informasi. ... Baca Selengkapnya

Baca Selengkapnya
Kenapa Content Creator Wajib Punya Blog? Web Development
4 bulan lalu

Kenapa Content Creator Wajib Punya Blog?

Di era media sosial yang serba cepat seperti TikTok, Instagram, dan YouTube, banyak content creator berpikir bahwa hanya ... Baca Selengkapnya

Baca Selengkapnya
Jasa Website: Investasi Kecil, Dampak Besar Web Development
4 bulan lalu

Jasa Website: Investasi Kecil, Dampak Besar

Banyak pengusaha pemula berpikir bahwa menyewa jasa pembuatan website adalah pengeluaran besar yang bisa dipangkas. Mereka tergiur untuk ... Baca Selengkapnya

Baca Selengkapnya

Tertarik Menerapkan Hal Ini?

Jika artikel ini relevan dengan kebutuhan Anda, mari diskusikan bagaimana saya bisa membantu mewujudkannya.