Vicky Hariadi

Yang saya kerjakan

Satu proyek, dan sampai sekarang masih saya pegang.

Selama ini saya bikin software sebagai karyawan, yang tercantum nama perusahaan, bukan nama saya. Yang ini saya pegang sendiri dari awal. Dan cuma lewat ini saya bisa menunjukkan dengan jujur apa artinya tidak menghilang setelah rilis.

Cuma satu. Justru itu intinya, bukan alasan.

Proyeknya

Sistem ujian sekolah

Ujian untuk sebuah madrasah ibtidaiyah. Siswa mengerjakannya lewat browser, guru mengoreksi dan mencetak rapor di tempat yang sama. Kelas empat sampai enam, semua mata pelajaran, tiap semester.

Sekilas

Yang memakainya
Sekitar lima ratus siswa dan tiga puluhan guru. Yang ujian kelas empat sampai enam. Kelasnya dipisah banin dan banat, dan satu wali kelas cuma memegang salah satunya.
Jalan sejak
September 2025. Mulai dikerjakan Juli, dan dua bulan kemudian sudah dipakai ujian betulan.
Cara mengaksesnya
Lewat browser, pakai perangkat apa pun yang ada di ruangan. Di HP bisa dipasang langsung ke layar depan, tidak usah lewat Play Store.
Dibangun pakai
Ruby on Rails dan Hotwire, PostgreSQL, Docker di balik Cloudflare tunnel. Tidak ada yang aneh-aneh. Yang aneh-aneh ujungnya jadi tagihan perawatan.

Yang sudah jalan

  • Siswa mengerjakan ujian lewat browser, dengan hitung mundur yang menutup sendiri pas waktunya habis.
  • Lima jenis soal, termasuk yang dijawab dengan menggambar pakai jari di layar.
  • Pilihan ganda dinilai otomatis. Jawaban uraian dan gambar masuk antrean untuk dikoreksi guru.
  • Guru mengoreksi dari daftar yang sudah difilter: satu mata pelajaran, satu kelas, sekali duduk.
  • Wali kelas menyusun rapor lalu langsung mencetaknya.
  • Pengawas membacakan token. Tidak ada yang bisa dibuka sebelum token itu diketik.
  • Leger nilai satu kelas: siswa ke bawah, mata pelajaran ke samping.
  • Di akhir tahun seluruh sekolah naik kelas sekaligus.
Yang dilihat anak waktu ujian
Yang dilihat guru setelahnya

Sketsa, bukan screenshot.

Cara menilainya

Musim ujian, bukan tanggal rilis

Tanggal rilis tidak membuktikan apa-apa. Semua sistem kelihatan mulus di hari demo. Minggu ujian beda: tenggat yang tidak bisa digeser. Ratusan anak duduk di jam yang sama, dan sistemnya kuat atau sekolahnya balik ke kertas.

Sudah lima, belum termasuk minggu-minggu di antaranya.

  1. Sep – Okt 2025

    Yang pertama

    Sumatif tengah semester. Lima belas mata pelajaran, tiga tingkatan kelas, dan sistem yang belum pernah dipakai siapa pun. Fitur token pengawas dan ekspor nilai saya kerjakan di tengah dua minggu itu, di sela mata pelajaran.
  2. Nov 2025 – Jan 2026

    Akhir semester ganjil

    Musim kedua, dan pertama kalinya guru benar-benar mengoreksi di dalamnya, bukan sekadar melihat. Sampai rapornya pun keluar dari sistem yang sama.
  3. Mar 2026

    Tengah semester genap

    Minggu ujian sudah ada polanya. Pekerjaannya bergeser dari supaya jalan jadi supaya lebih ringan, dan itu masalah yang jauh lebih enak.
  4. Mei 2026

    Olimpiade, di rel yang sama

    Sekolah memakai sistem ini untuk uji coba lomba. Tidak ada yang merancangnya buat itu, dan biasanya di situlah ketahuan sebuah sistem memang luwes atau selama ini cuma beruntung.
  5. Jun 2026

    Akhir tahun, dan yang mau lulus

    Sumatif akhir untuk kelas empat dan lima, ditambah ujian madrasah untuk angkatan yang mau lulus. Dua belas mata pelajaran untuk kelas enam saja.
  6. Agu 2026

    Di antara musim

    Tidak ada ujian, tapi justru di sini pekerjaannya paling banyak. Editor soal, leger nilai, dan kenaikan kelas semuanya lahir di minggu-minggu sepi ini.

Rilis tidak bikin siapa pun terkesan. Yang layak ditanya: bagaimana keadaannya di minggu ujian keempat.

Kalau boleh menunjuk satu bagian

Setahun penuh, semua soal masuk lewat saya.

Malam sebelum hari ujian, soal dari guru saya masukkan sendiri: satu set per mata pelajaran, per tingkatan, per hari. Sampai tahun ajaran itu habis jumlahnya lebih dari seratus tiga puluh set, saya ketik satu-satu, biasanya habis makan malam.
Awalnya tidak masalah, sampai saya sadar itu sebenarnya apa: seluruh ujian sekolah menggantung di satu orang, dan orang itu saya. Kalau saya tidak bangun, ujiannya tidak jalan.

Tetap ada bukan berarti harus terus dibutuhkan.

Jadi Agustus kemarin saya bikinkan editor soal buat gurunya. Sekarang mereka sendiri yang menulis, mengubah, dan menerbitkan soalnya. Tersimpan otomatis sambil diketik, dan soal yang sudah pernah dijawab siswa tidak bisa ditarik di tengah ujian.
Saya kehilangan pekerjaan yang saya lakukan tiap malam ujian selama setahun. Dan itu memang tujuannya.

Begitulah "tanpa terikat kontrak" kalau benar-benar dijalankan.

Yang terbuka

Dan satu hal yang justru saya tinggalkan.

Bagian di atas soal mengembalikan pekerjaan. Ini sisi lain dari kebiasaan yang sama: tahu kapan sesuatu memang sudah selesai, lalu membiarkannya, bukan pura-pura masih dirawat.

Tidak disentuh sejak 2020. Bukan karena terbengkalai.

nano

Router HTTP kecil untuk Go: bagian yang menentukan alamat mana dijawab oleh kode yang mana. Sekitar seribu empat ratus baris, dan semuanya bisa dibaca dalam satu sore.

Saya menulisnya tahun 2020 untuk benar-benar belajar Go, lalu keterusan jauh lebih dalam dari yang sebenarnya perlu: route group, middleware, request binding dan validasi, CORS dan gzip, seribu seratus baris test, dan dokumentasi yang cukup lengkap untuk dipakai membangun sesuatu.
Sekarang gunanya justru yang dulu saya cari sendiri. Orang yang baru belajar bahasa pemrograman biasanya cuma dapat to-do list dan hello world, dan dua-duanya tidak memperlihatkan bagaimana sebuah library yang benar-benar jalan itu disusun di dalamnya. Yang ini cukup kecil untuk dipahami sekali baca, dan cukup utuh untuk di-fork.
Terbuka sejak
Januari 2020. Dikerjakan sembilan bulan, dan commit terakhirnya Oktober di tahun yang sama.
Sampai mana
Berhenti di tag v1.0.0-alpha. Tidak pernah sampai 1.0, dan memang tidak diarahkan ke sana.
Isinya
Sekitar 1.400 baris Go, ditambah 1.100 baris test. Lisensi MIT, jadi silakan di-fork, dibongkar, dipakai.

Tidak ada bisnis siapa pun yang bergantung padanya.

Dan justru di situ bedanya. Sistem di atas dipakai satu sekolah, jadi malam-malam saya untuk itu. Router yang memang dibuat untuk dibaca tidak perlu saya tunggui. Dia cuma perlu diam di tempat dan tetap enak dibaca.

Sebelum Anda tanya

Batasnya sampai mana

Ini baru satu sekolah. Belum pernah dijual ke sekolah kedua, dan memang bukan produk.

Belum selesai, dan saya bisa sebutkan bagian mananya. Fitur lockdown yang sudah terpasang tapi sengaja dimatikan. Dua framework testing, padahal cukup satu.

Tidak ada satu pun soal di dalamnya yang saya tulis. Semua dikerjakan gurunya. Saya cuma menyiapkan tempatnya.

Kalau daftar seperti itu bisa disebut satu-satu, artinya sistemnya memang benar-benar dipegang. Pilihan satunya: developer yang bilang semuanya aman-aman saja.

Giliran Anda

Mau orang yang sama di tempat Anda?

Anda tidak butuh sistem sebesar ini.

Anda butuh orang yang masih ada di minggu ujian keempat.

Ngobrol yuk

Langsung ke WhatsApp saya. Saya sendiri yang balas.

Sapa saya