Tentang Aplikasi Ini

Ini adalah aplikasi PPDB yang paling mudah dipakai dan paling fleksibel, tapi tangguh. Siapa pun anda, pasti bisa memasang dan menggunakannya. Cocok dipakai untuk SMP/SMA/SMK mana pun.

A. Latar Belakang

Aplikasi ini berangkat dari pemikiran: Bagaimana menciptakan sistem dan aplikasi PPDB yang:

  1. Setiap sekolah (satuan pendidikan) boleh membuat dan mengembangkan aplikasinya sendiri-sendiri, yang disimpan di web servernya sendiri (misalkan di website sekolah). Ada keuntungan dari cara ini, yaitu beban prosesor dan bandwidth terdistribusi ke masing-masing server sekolah, sehingga tidak diperlukan server khusus yang mahal (seperti kebutuhan sistem PPDB dengan aplikasi terpusat).
    Masing-masing sekolah cukup menyewa web hosting berbiaya murah.
    Arsitekturnya mirip aplikasi UNBK, yaitu aplikasi ada di sekolah masing-masing, tapi aplikasi di sekolah tetap terhubung dengan server pusat (untuk mendapat token, upload / mengunggah jawaban siswa, dan sebagainya).
  2. Walau pun tiap sekolah (satuan pendidikan) boleh membuat dan mengembangkan aplikasinya sendiri-sendiri, tapi masing-masing sekolah dapat saling bertukar informasi tentang calon peserta didik yang mendaftar di sekolahnya, sehingga bisa mencegah usaha pendaftaran ganda, yaitu satu Calon Peserta Didik mendaftar di berbagai sekolah sekaligus.

Sekolah yang belum mampu membuat aplikasi PPDB sendiri, boleh memakai aplikasi buatan saya ini hanya untuk mencegah pendaftar ganda, kemudian dilanjutkan dengan alur PPDB di sekolah masing-masing misalkan memakai Google Form, atau diketik manual di Excel. Bebas! Boleh juga terus lanjut memakai aplikasi ini. Bila tetap memakai aplikasi ini, maka Calon Peserta Didik diminta mengetik nilai rapor semester 1 sampai 5, dan menentukan koordinat rumahnya (untuk SMA jalur zonasi).

Sekolah yang mampu membuat aplikasi PPDB sendiri, boleh terus memakai aplikasi buatannya, dengan menambahkan beberapa baris kode PHP untuk berkoordinasi dengan Server Master / Server API agar tidak terjadi pendaftar ganda. Selanjutnya, sila gunakan aplikasi buatan sekolah masing-masing sesuai alur PPDB yang diterapkan di sekolahnya.

Sistem PPDB di atas sangat cocok digunakan oleh wilayah yang ingin menghemat biaya penyelenggaraan PPDB, sekaligus memberdayakan para programmer komputer di sekolah masing-masing untuk berkreasi membuat aplikasi PPDB sebagus dan secanggih mungkin untuk sekolahnya sendiri.

B. Penerapan

Dari pemikiran di atas, maka saya membuat 2 aplikasi, yaitu aplikasi yang dipasang di web server sekolah masing-masing, dan satu aplikasi yang dipasang di satu server khusus. Server ini bertindak sebagai Server Master / Server API yang mencatat NIK Calon Peserta Didik di seluruh sekolah yang bergabung dengan sistem ini.

1. Aplikasi di web server sekolah-sekolah.

Anda saat ini sedang memakai aplikasi pertama, yaitu yang dipasang di setiap web server sekolah.
Aplikasi ini dibuat berfokus pada syarat:

  1. Biaya penyelenggaraan harus bisa ditekan semurah mungkin. Sekolah tidak perlu menyediakan printer, tinta / toner printer, dan kertas. Bahkan aplikasi ini bisa dioperasikan oleh panitia PPDB hanya dengan pulpen dan ponselnya. Boleh ditambah stempel agar lebih resmi.
  2. Menghindari kerumuman massa di lingkungan sekolah. Tanpa printer bisa mempercepat proses pendaftaran yang berarti mengurangi antrian panjang pada sekolah-sekolah favorit. Bila perlu, seluruh panitia PPDB dikerahkan untuk mengentry data. Hanya bermodal pulpen dan ponsel. Yang diketik pun minimal NIK, kemudian yang ditulis hanya nomor pendaftaran, password, dan tanda tangan. Setelah itu Calon Peserta Didik pulang untuk mengetik nilai dari rumah masing-masing.
  3. Harus bisa dipasang dan kuat dijalankan di web hosting sekolah dengan spec rendah.
  4. Tanpa PHP Framework. Hanya dibutuhkan web server (Apache, Nginx, Litespeed), database (MySQL, MariaDB, PostgreSQL), dan PHP (disarankan versi 7.x atau 8.x).
  5. Harus mudah dipasang oleh siapa pun, bahkan oleh guru non-komputer yang hanya paham cara memakai cPanel / Plesk yang disediakan penyedia web hosting. Cukup copy-kan file-file aplikasi PPDB ini ke web server dan tentukan databasenya. Selesai. Semudah itu!
    Konfigurasi ditentukan di file config.php. Admin sekolah hanya perlu menyentuh file itu. Bila tidak ada perubahan informasi ke masyarakat, file index.php tidak perlu diubah.
    Selain 2 file di atas, tidak ada yang perlu diubah.
  6. Untuk memperkecil beban web server, maka file-file PDF (misalkan tanda bukti Serah Terima Berkas, dan Pengumuman Kelulusan) tidak dihasilkan oleh PHP yang pastinya membebani server, tetapi dihasilkan dari Mailmerge Microsoft Word secara luring yang kemudian diprint (save as) menjadi file PDF.
    File-file PDF ini kemudian diunggah ke web server. Ketika Calon Peserta Didik mencoba mengunduh, yang bekerja hanya Apache atau Nginx. Nyaris tidak diperlukan PHP dan akses ke database.
    Saya telah menyediakan file-file Microsoft Word tersebut yang dilengkapi dengan macro VBA agar proses menjadi lebih mudah. File-file yang telah disediakan adalah:
    • Formulir Serah Terima Berkas.
    • Formulir Pendaftaran.
    • Pengumuman Diterima atau Tidak Diterima.
  7. Mudah diperbarui (diupdate). Cukup copykan file terbaru ke web server. Bisa juga dengan memakai perintah git pull bila diunduh dari Github.
  8. Walau pun minimalis dan sederhana, tapi security harus maksimal.

2. Aplikasi server (data terpusat)

Selain aplikasi PPDB yang sedang anda lihat ini, saya juga membuat satu aplikasi yang dipasang di server lain. Sebut saja ini sebagai Server Master atau Server API.

Masing-masing aplikasi PPDB di web sekolah, berkomunikasi dengan Server Master / Server API. Tujuannya untuk mencegah Calon Peserta Didik mendaftar di lebih dari satu sekolah. Karena posisi Server Master / Server API berada "di belakang" aplikasi PPDB tiap sekolah, maka masyarakat tidak bisa mengakses langsung. Beban Server Master / Server API pun berkurang.

Server Master / Server API bisa diletakkan di servernya MKKS, KCD, Kominfo, atau di server pribadi. Tidak diperlukan server dengan spesifikasi garang. Server biasa pun cukup.

Tidak usah khawatir dengan bandwidth. Komunikasi dari web PPDB sekolah dengan Server Master / Server API hanya terjadi ketika Calon Peserta Didik mendaftar dan ketika mencabut berkas. Data yang dikirim pun hanya NPSN, NIK, nama siswa, dan operator. Sangat kecil. Operasi lainnya tidak perlu komunikasi dengan Server Master / Server API, misalkan operasi login / logout, mengetik nilai rapor, mengunduh berkas, dan sebagainya.

Perhitungannya begini.
Misalkan di kota Tangerang ada 15 SMA Negeri dan 9 SMK Negeri. Total 24 sekolah. Tiap sekolah menugaskan 10 guru untuk menjadi operator PPDB. Bila proses pendaftaran satu orang Calon Peserta Didik membutuhkan waktu 15 detik, maka dalam 15 detik hanya terjadi maksimal 240 query. Ini sangat jauh lebih ringan dari pada aplikasi CBT / LMS yang diakses ribuan siswa. Artinya, bila suatu server kuat dijadikan server CBT / LMS, maka pasti juga kuat dijadikan Server Master / Server API.

Lain halnya bila Server Master / Server API diakses langsung oleh Calon Peserta Didik, misalkan seperti aplikasi PPDB terpusat. Bila satu sekolah diminati oleh 1000 Calon Peserta Didik, maka dalam 15 detik bisa terjadi 24.000 query. Itu baru satu kota. Bagaimana bila 1 provinsi? Itu sebabnya mengapa sering terjadi server PPDB terpusat yang akhirnya "down" karena tidak kuat diakses oleh puluhan ribuan orang.

Singkatnya, sistem ini memecah 24.000 query menjadi 1.000 query ke masing-masing web PPDB sekolah. Bila satu web PPDB sekolah down, maka hanya sekolah itu yang down. Sekolah lain tidak. Server Master / Server API malah lebih santai. Tidak diakses ribuan peserta didik, tapi hanya diakses oleh operator PPDB sekolah.

Dokumentasi cara mengakses Server Master / Server API bisa dipelajari di tes.web.id

C. Alur PPDB

  1. Calon Peserta Didik mengunduh file formulir.pdf, di-print di kertas ukuran F4, dan diisi sejak dari rumah.
  2. Calon Peserta Didik datang ke sekolah yang dituju.
  3. Panitia PPDB memeriksa kelengkapan berkas yang dibawa Calon Peserta Didik.
  4. Panitia PPDB mengetik NIK Calon Peserta Didik di aplikasi PPDB.
  5. Aplikasi PPDB sekolah berkomunikasi dengan Server Master / Server API.
  6. Bila Calon Peserta Didik belum mendaftar di sekolah mana pun, maka Muncul Nomor Pendaftaran dan Password untuk Calon Peserta Didik.
  7. Dengan menggunakan pulpen, Operator menulis Nomor Pendaftaran dan Password di lembar Tanda Terima Berkas dan Formulir Pendaftaran.
  8. Calon Peserta Didik boleh pulang.
  9. Di rumah, Calon Peserta Didik login ke aplikasi web PPDB sekolah, menggunakan NIK dan Password yang ditulis oleh Panitia PPDB.
  10. Calon Peserta Didik mengisi Biodata dan Nilai Rapor.
  11. Panitia PPDB dapat mencocokkan ketikan Calon Peserta Didik dengan hardcopy yang dibawa ketika pendaftaran. Bila tidak ada data yang salah, panitia PPDB dapat mengunci sehingga Calon Peserta Didik tidak bisa mengubah.
  12. Ketika waktu Pendaftaran Selesai (menjelang Tes Khusus), Admin mengunduh nilai rapor yang diketik oleh para Calon Peserta Didik.
  13. Nilai rapor dan nilai Tes Khusus diolah.
  14. Admin membuat file Excel sebagai Data Source untuk Mail Merge Microsoft Word.
  15. Dengan memakai Microsoft Word, Admin membuat file-file PDF tentang status Calon Peserta Didik apakah diterima atau tidak diterima. Satu Calon Peserta Didik mendapat satu file. Tidak bisa mengunduh file milik Calon Peserta Didik yang lain.
  16. Ketika jadwal Pengumuman tiba, file-file PDF diunggah ke server web PPDB.
  17. Calon Peserta Didik mengunduh file PDF.
  18. Yang lulus datang ke sekolah untuk Daftar Ulang.

Semua file Microsoft Word telah disediakan. Admin sekolah cukup mengubah kop dan beberapa kalimat.

D. Fitur-Fitur Aplikasi PPDB di Sisi Sekolah

  1. Bisa diset apakah aplikasi PPDB di web server sekolah harus berkoordinasi dengan Server Master / Server API ataukah benar-benar berdiri sendiri (tidak mengecek sekolah lain).
  2. Perlindungan sistem dari SQL injection, serangan Brute Force Attack, serangan XSS, dan serangan CSRF.
  3. Bisa diset apakah semua Calon Peserta Didik diizinkan mengedit biodata dan nilai rapornya, ataukah hanya diizinkan membaca saja (read only). Setting ini bisa secara manual, dan bisa juga secara otomatis dengan timer yang ditentukan sebelumnya.
  4. Seorang operator bisa mengunci seorang Calon Peserta Didik agar dia tidak bisa mengedit biodata dan nilainya, termasuk operator lain. Bila dikunci, maka operator yang mengunci itulah yang bisa membuka. Operator lain tidak bisa.
  5. Hasil ketikan Calon Peserta Didik bisa diunduh menjadi file Excel.
  6. Pengumuman diterima atau tidak diterima, berbentuk file PDF yang bisa diunduh oleh Calon Peserta Didik yang bersangkutan. Tidak bisa mengunduh file milik Calon Peserta Didik lain.

E. Unduhan dan Dukungan

Bapak/ibu guru yang sekolahnya ingin menggunakan aplikasi ini, atau sudah punya aplikasi sendiri tapi ingin menggunakan layanan Server Master / Server API, bisa mengirim email ke dengan isi email seperti ini:

Nama sekolah: [Nama sekolah]
NPSN: [NPSN]
URL aplikasi PPDB: [https://www.namasekolah.sch.id]
Nama admin: [Nama admin]

Catatan 10 Juni 2022:
Mulai tanggal 10 Juni 2022, Source Code aplikasi ini tidak diberikan secara bebas. Bila bapak/ibu ingin memakai aplikasi ini, saya menyediakan server yang telah terpasang aplikasi ini.
Sekolah bapak/ibu bisa langsung pakai.

F. Penyangkalan (Disclaimer)

Anda boleh memakai aplikasi ini, tapi tidak boleh dipakai untuk tujuan komersil. Teks hak cipta tidak boleh dihapus. Dengan memakai aplikasi ini, anda dianggap menyetujui semua ketentuan dan saya (Mawan) tidak bertanggung jawab terhadap kerugian berbentuk apapun yang diakibatkan oleh penggunaan aplikasi ini.

G. Donasi

Proses pembuatan aplikasi Native PHP sangat menyita waktu dan menguras energi. Bila anda mendapat manfaat dari aplikasi ini, dukungan donasi akan sangat berguna bagi perbaikan aplikasi ini dan pengembangan aplikasi lain di masa depan. Kirimkan donasi anda ke:

Mawan Agus Nugroho
Bank BCA: 868-0164-348

Dimohon mengabari saya bila telah mentransfer, berikut nama sekolahnya. Terima kasih.

H. FAQs (Pertanyaan Yang Sering Diajukan)

Diprogram oleh Mawan Agus Nugroho, S.Kom, M.Kom.
Website: https://www.mawan.net.


© Copyright 2022-2024 Mawan Agus Nugroho.
All rights reserved.