- 01Awalnya Karena “Waktu Habis Hanya untuk Menyortir”
- 02Gambaran Besar Sistemnya
- 03Mengubah PDF Menjadi Gambar per Halaman
- 04Logika Penentuan
- 05Aturan Penilaian Disatukan Hanya dengan “Cek Kotak Centang”
- 06Mengubah “Satuan Kesalahan” Tergantung Mata Pelajaran
- 07Alasan Membuat Struktur Lintas Lingkungan Eksekusi
- 08Yang Saya Rasakan Setelah Mencoba
- 09Cocok untuk Orang Seperti Apa
- 10Rangkuman
Selamat pagi, saya Masakin.
Di rumah saya ada beberapa anak. Buku latihan dan materi yang mereka kerjakan berbeda-beda. Menyortir tumpukan lembar kerja secara manual setiap kali, diam-diam cukup membebani.
Saya coba membuat sistem: scan sekaligus, lalu proses sortirnya diserahkan ke AI. Kali ini saya akan memperkenalkan secara konkret sampai kode dan aturan yang benar-benar saya pakai.
Awalnya Karena “Waktu Habis Hanya untuk Menyortir”
Buku latihan dan lembar kerja yang sudah selesai, jenisnya sebanyak jumlah anak. Mata pelajaran dan tingkat kelasnya juga berbeda-beda. Kalau ditumpuk begitu saja, akhirnya jadi tidak jelas mana milik siapa.
Membalik satu per satu dengan tangan untuk memeriksa adalah kerja sederhana, tapi memakan waktu. Karena itu, saya berpikir apakah bagian “penyortiran” ini saja bisa diotomatisasi.
Gambaran Besar Sistemnya
Alurnya sederhana. Saya bagi menjadi 3 tahap berikut.
- Scan sekaligus lembar kerja yang sudah selesai, jadikan PDF
- Ubah PDF menjadi gambar per halaman, minta AI menentukan “punya siapa dan mata pelajaran apa” berdasarkan ciri header dan layout
- Berdasarkan hasil penentuan, masukkan ke tools per anak dan per mata pelajaran
Poinnya, pada saat scan tidak perlu memikirkan penyortiran. Cukup baca sekaligus semuanya, dan keputusannya diserahkan ke AI belakangan.
Mengubah PDF Menjadi Gambar per Halaman
PDF hasil scan, kalau langsung dibaca AI kadang tidak bisa dikenali dengan baik. Terutama PDF hasil scan yang berisi hasil koreksi tulisan tangan, seringkali hanya berupa kumpulan gambar tanpa layer teks.
Karena itu, saya konversi setiap halaman menjadi gambar PNG satu per satu dengan PyMuPDF (fitz) terlebih dahulu.
import fitz
doc = fitz.open("scan.pdf")
for i in range(doc.page_count):
pix = doc[i].get_pixmap(matrix=fitz.Matrix(2, 2)) # resolusi 2x
pix.save(f"page_{i+1}.png")
Menaikkan resolusi 2x dengan Matrix(2, 2) sebelum dijadikan gambar, meningkatkan akurasi AI dalam membaca teks dan kotak centang. Hasil koreksi tulisan tangan terutama, kalau resolusinya rendah lebih sering terlewat.
Jebakan yang Mudah Terlewat: Satuan Koordinat
Saat ingin memperbesar hanya bagian kotak centang untuk diperiksa, kita bisa menentukan area dengan argumen clip di get_pixmap. Di sini ada satu jebakan. Koordinat clip ditentukan dalam satuan poin PDF, yaitu ukuran halaman asli, bukan koordinat piksel setelah diperbesar.
# meski di-zoom 2x atau 4x, nilai clip tetap mengacu pada ukuran asli halaman (A4 kira-kira 590×836pt)
pix = doc[i].get_pixmap(matrix=fitz.Matrix(4, 4), clip=fitz.Rect(0, 140, 589, 600))
Kalau nilai clip juga dibesarkan seiring perbesaran rasio, area yang dimaksud akan keluar dari gambar dan hasilnya kosong. Kalau ini tertukar, akan terjebak dalam fenomena “kenapa gambar hasil crop-nya putih semua”. Mengetahui hal ini di awal akan menghemat banyak waktu.
Logika Penentuan
Saya perlihatkan instruksi yang diberikan ke AI, sudah digeneralisasi.
Berikut adalah gambar hasil scan lembar latihan.
Berdasarkan petunjuk berikut, tentukan ini milik anak siapa dan mata pelajaran apa.
- Desain logo atau judul di bagian atas halaman
- Format garis atau layout (ukuran kotak, jarak antar baris, dll)
- Nama unit pelajaran atau bentuk soal yang tertulis
- Nama yang tertulis di kolom nama
Hasil penentuan harus dikembalikan dalam 3 item: "ID anak", "Mata pelajaran", "Unit pelajaran".
Jika tidak bisa ditentukan, jawab "tidak diketahui", jangan memaksa menyimpulkan.
Dalam penyortiran sebenarnya, saya membuat “tabel identifikasi” terlebih dahulu yang menggabungkan 3 hal: teks judul, ciri layout, dan kolom nama. AI diminta mencocokkan dengan tabel itu. Misalnya, “latihan menulis kanji dengan nama tingkat kelas di kanan atas” dan “latihan hitung dengan simbol kecil jenis soal tercetak di kiri bawah setiap soal” bisa dibedakan hampir pasti hanya dari tampilannya. Dengan membuat tabelnya lebih dulu, hasil penentuan AI jadi lebih stabil.
Ide mengurangi beban penyortiran lewat sistem ini, mungkin juga bisa diterapkan di luar urusan lembar kerja. Meninjau ulang paket tarif ponsel yang sering dibiarkan, menurut saya adalah hal yang mirip.
Setelah diklik, halaman login Rakuten akan terbuka. Setelah login, detail kampanye akan muncul.
Aturan Penilaian Disatukan Hanya dengan “Cek Kotak Centang”
Dalam menangani materi dari beberapa anak, ada satu hal lagi yang saya tetapkan. Standar penilaian disatukan tanpa membedakan anak.
Secara konkret, saya hanya menjadikan apakah kotak centang di sebelah kiri atau kiri atas setiap soal terisi penuh atau tidak, sebagai patokan benar-salah.
- Kotak centang terisi penuh → salah, perlu diulang
- Kotak centang tetap putih → benar
- Lingkaran merah (◯) di dekat jawaban adalah “tanda konfirmasi benar”, bukan tanda salah
- Jawaban yang ditulis ulang dengan pulpen merah adalah koreksi dari orang tua, bukan jawaban anak. Ada tidaknya tulisan merah tidak dijadikan patokan benar-salah
Kerapian huruf atau bekas hapusan tidak saya masukkan dalam penilaian. Alasannya sederhana. Ada tidaknya kotak yang terisi bisa dibaca secara mekanis, tapi kalau kerapian tulisan tangan dicampurkan ke dalam penilaian, standarnya langsung jadi tidak konsisten.
Karena itu, saya menuliskan sejak awal sebagai instruksi ke AI: “penilaian benar-salah hanya dilakukan berdasarkan kotak centang yang terisi, kerapian huruf atau koreksi tulisan merah tidak dijadikan bahan penilaian”. Ada atau tidaknya kalimat ini cukup mengubah tingkat ketidakkonsistenan hasil penentuan.
Prosedur Perbesaran agar Tidak Melewatkan Kotak Centang
Kalau melihat gambar hasil scan secara keseluruhan dalam ukuran kecil, kotak centang yang terisi kadang tidak terlihat jelas. Agar tidak terlalu cepat menyimpulkan “semua sudah tertulis jadi semua benar”, saya selalu melakukan langkah berikut.
- Periksa seluruh halaman dulu, pahami layout secara garis besar
- Potong dan perbesar hanya kolom kotak centang (memakai
clipseperti yang dijelaskan sebelumnya) - Periksa satu per satu di gambar yang diperbesar, apakah terisi atau tidak
- Kotak centang yang sulit dinilai, atau bagian yang hurufnya memang tidak terbaca, tidak ditebak dan langsung dikonfirmasi ke orang
Saya benar-benar merasakan bahwa hanya dengan gambar thumbnail berukuran kecil, kotak yang terisi lebih mudah terlewat.
Mengubah “Satuan Kesalahan” Tergantung Mata Pelajaran
Ada satu trik lagi yang saya terapkan. Satuan yang dicatat untuk kesalahan, saya ubah tergantung mata pelajaran.
| Mata pelajaran | Satuan yang dicatat | Contoh konkret |
|---|---|---|
| Latihan kanji/hiragana | Per karakter | Karakter itu sendiri dijadikan kunci, seperti “校” atau “ぬ” |
| Matematika | Per pola soal | Tipe soal dijadikan kunci, seperti “konversi satuan”, “pembagian dengan sisa”, “nilai tempat” |
| Sains/sosial | Per tema + sub-item | Kunci berjenjang seperti “nama tema:seksi:nomor” |
Meski sama-sama “soal yang salah”, butiran yang perlu ditinjau ulang berbeda tergantung mata pelajaran. Kalau kanji dikumpulkan per unit, akurasi ulasan berikutnya menurun. Sebaliknya, kalau “pola” matematika dibuat per soal, target ulasan jadi sulit dipersempit.
Untuk matematika, di setiap pojok soal tercetak kecil simbol yang menunjukkan tipe soal, dan saat membaca hasil koreksi, kesalahan dihitung berdasarkan simbol itu. Aturannya sederhana: kalau ada beberapa soal dengan tipe sama dan satu saja salah, seluruh tipe itu diperlakukan sebagai “perlu diulang”.
Untuk sains dan sosial, karena bagian ulasan di akhir lembar kadang berasal dari unit yang berbeda dari tema utama hari itu, saya selalu mencocokkan teks soal dengan daftar tema terlebih dahulu untuk memastikan ulasan tema mana. Bagian yang tidak boleh ditebak, harus selalu dicocokkan dulu sebelum dicatat.
Sistem ini sebenarnya adalah adaptasi dari mekanisme “mencatat item yang salah dan mengulanginya kembali” yang awalnya saya buat untuk tujuan lain. Meski tujuannya berubah, logika dasarnya tetap bisa dipakai apa adanya.
Alasan Membuat Struktur Lintas Lingkungan Eksekusi
Sistem ini dibuat dengan struktur 2 tahap: interaksi dengan AI dilakukan di lingkungan sandbox cloud, sementara operasi file dan pengelolaan state yang sebenarnya diserahkan ke proses yang berjalan terus di komputer rumah.
Alasannya sederhana, database untuk menyimpan hasil penilaian dan script untuk generate latihan hanya ada di komputer rumah. Dari sisi cloud ke sisi rumah, diakses lewat script client ringan yang hanya mengirim perintah sederhana.
# contoh: mencerminkan kunci yang salah berdasarkan hasil penentuan
python3 tools/kanji_drill/kanji_bridge_client.py mark-miss 校庭 音楽
python3 tools/kanji_drill/kanji_bridge_client.py mark-correct 教室
# sebelum mencerminkan, pastikan dulu proses di sisi rumah masih hidup
python3 tools/kanji_drill/kanji_bridge_client.py health
Saya selalu menyisipkan command health ini tepat sebelum proses pencerminan. Kalau tidak sadar proses di sisi rumah sudah mati dan terus mengirim mark-miss, command-nya akan tampak berhasil padahal sebenarnya tidak ada yang tercermin sama sekali — ini bisa jadi kecelakaan yang berbahaya.
Yang Saya Rasakan Setelah Mencoba
Yang paling membantu adalah hilangnya pekerjaan memeriksa “punya siapa dan mata pelajaran apa”. Cukup scan sekaligus, sisanya tinggal melihat hasilnya.
Tapi, saya tidak percaya sepenuhnya pada penentuan AI. Bagian yang hasilnya “tidak diketahui”, atau yang penentuan kotak centangnya ragu, selalu saya periksa dengan mata saya sendiri. Menurut saya, membiarkan AI mengaku tidak tahu kalau memang tidak tahu, pada akhirnya menghasilkan sistem yang lebih bisa dipercaya, dibanding memaksanya untuk menyortir semuanya.
Cocok untuk Orang Seperti Apa
- Orang yang lembar kerja atau buku latihan dari beberapa anak tercampur, dan waktu habis untuk menyortirnya
- Orang yang ingin standar penilaian disatukan berdasarkan aturan mekanis, bukan “kerapian tampilan”
- Orang yang tidak keberatan dengan implementasi seperti PyMuPDF atau script bridge sederhana
Rangkuman
Materi dari beberapa anak, semakin banyak jumlahnya semakin besar beban penyortirannya. Dengan menggabungkan scan dan penyortiran oleh AI, saya bisa mengotomatisasi bagian itu saja.
Trik-trik kecil seperti satuan koordinat dan penulisan eksplisit standar penilaian, menurut saya justru yang paling berpengaruh dalam menstabilkan akurasi. Saat memikirkan otomatisasi, pekerjaan “menentukan standar penilaian itu sendiri” seperti ini mungkin ternyata cukup penting.
Beban yang bisa dikurangi lewat sistem ini mungkin bukan hanya penyortiran lembar kerja. Berikutnya, saya berpikir untuk meninjau ulang paket ponsel dengan cara yang sama.
Setelah diklik, halaman login Rakuten akan terbuka. Setelah login, detail kampanye akan muncul.
Artikel ini mengandung iklan afiliasi. Jika Anda mendaftar produk atau layanan melalui tautan di situs ini, kami mungkin menerima komisi dari perusahaan mitra. Selain itu, pengelola adalah karyawan Rakuten Group dan mungkin menerima imbalan melalui program referral karyawan. Konten dan penilaian artikel dibuat berdasarkan pengalaman nyata dan riset pengelola, terlepas dari ada atau tidaknya iklan, namun kami harap Anda membaca dengan memahami hubungan di atas. Untuk detailnya, silakan lihat Sangkalan & Info Afiliasi. Sangkalan & Info Afiliasi
Artikel ini menggunakan terjemahan mesin. Untuk syarat resmi, silakan cek halaman multibahasa di situs resmi Rakuten Mobile.
Jika Anda memiliki kekhawatiran tentang area jangkauan atau kondisi sinyal Rakuten Mobile, Anda dapat berkonsultasi melalui formulir permintaan perbaikan sinyal resmi.