Wednesday, 12 August 2026

Menguji uji sistem reminder manual dan cli

 Tentu! Menguji sistem secara menyeluruh di *server lokal/staging* sangat penting sebelum sistem ini benar-benar diaktifkan untuk seluruh guru di sekolah.


Berikut adalah panduan skenario uji coba (UAT - *User Acceptance Testing*) yang sebaiknya Anda lakukan untuk memastikan semua logika filter yang kita buat berjalan sempurna:


### 1. Skenario Normal (KBM Berjalan Biasa)


* **Belum Mengisi Jurnal:** Biarkan satu guru yang sudah selesai jam mengajarnya tidak mengisi jurnal. Pastikan nama guru tersebut muncul di `reminder_manual.php` dan skrip CLI mencatatnya sebagai penerima pesan.

* **Sudah Mengisi Jurnal:** Simulasikan guru tersebut mengisi jurnal (entri data ke tabel `{local_jurnalmengajar}`). Pastikan namanya **hilang** dari daftar `reminder_manual.php` dan CLI tidak lagi memprosesnya.


### 2. Skenario "Jam Tidak Belajar" (Kegiatan Global)


* **Persiapan:** Masukkan data di `kegiatan_add.php`. Pilih **Tanggal hari ini**, centang **Pilih Semua Kelas**, dan masukkan Jam Ke: `1, 2`.

* **Ekspektasi (Hasil yang Diharapkan):**

* Semua guru yang mengajar di jam ke-1 dan ke-2 pada hari ini **tidak muncul** di halaman reminder.

* Guru yang mengajar mulai jam ke-3 ke atas harus **tetap muncul** di halaman reminder jika mereka belum mengisi jurnal (setelah jam ke-3 terlewat).




### 3. Skenario "Jam Tidak Belajar" (Kegiatan Spesifik Per Kelas)


* **Persiapan:** Hapus data kegiatan sebelumnya. Buat data baru: Pilih **Tanggal hari ini**, centang **hanya satu kelas** (misal: Kelas IX-A), dan masukkan Jam Ke: `3, 4`.

* **Ekspektasi:**

* Guru yang mengajar Kelas IX-A pada jam ke-3 dan 4 **tidak dinotifikasi**.

* Namun, jika ada guru lain yang mengajar di Kelas IX-B pada jam ke-3 dan 4, guru tersebut **tetap mendapat notifikasi** (namanya muncul di halaman reminder).




### 4. Skenario Filter Blok Jam Berurutan (Mencegah Spam)


* **Persiapan:** Pastikan ada guru yang jadwal mengajarnya berurutan di kelas yang sama, misalnya jam ke `1, 2, 3`.

* **Ekspektasi:**

* Saat waktu *real-time* baru menunjukkan selesainya jam ke-1 atau ke-2, guru ini **tidak boleh** masuk ke daftar reminder.

* Guru ini baru boleh muncul di daftar reminder setelah waktu selesainya **jam ke-3** terlewati.




### 5. Skenario Guru Tidak Hadir


* **Persiapan:** Tandai satu orang guru sebagai "Tidak Hadir" pada hari ini di sistem Moodle Anda (sesuai fungsi `jurnalmengajar_get_status_takhadir`).

* **Ekspektasi:** Meskipun jam mengajarnya sudah lewat, nama guru tersebut tidak akan masuk ke dalam target penerima pesan WhatsApp. (Namanya hanya akan muncul di bagian bawah pada ringkasan **Preview Rekap Admin**).


### 6. Skenario Mode Rekap Malam (Admin)


* **Persiapan:** Pada skrip CLI (`notif_jurnal.php`), ubah sementara atau jalankan *script* pada jam yang melewati batas `$jamrekap` (misal 19:50).

* **Ekspektasi:** Sistem tidak lagi mengirim pesan tunggal ke masing-masing guru, melainkan menyatukan datanya dan hanya mengirim satu pesan rekapitulasi panjang kepada nomor Admin.


---


**Tips Tambahan untuk Uji Coba:**

Gunakan opsi `--dry-run` saat mengeksekusi skrip CLI di server untuk sekadar melihat *log* (hasil teks) tanpa benar-benar memotong kuota pengiriman WhatsApp Anda.


Apakah Anda membutuhkan cara cepat untuk memanipulasi waktu (jam) pada *server lokal* Anda, sehingga Anda tidak perlu repot menunggu jam pelajaran benar-benar habis saat melakukan simulasi ini?

Share:

0 comments:

Post a Comment