# Impor data siswa, orang tua, dan kartu

```bash
php web/cli/impor-siswa.php database/impor
```

Aman dijalankan berulang: siswa dikenali lewat NISN atau NIPD, sehingga
menjalankan skrip dua kali memperbarui data yang ada, bukan menggandakannya.

## Berkas yang dibaca

| Berkas | Isi |
|---|---|
| `siswa-dapodik.csv` | siswa aktif, kelas, dan nomor orang tua |
| `siswa-pendaftaran.csv` | calon siswa dari PPDB, hanya yang berstatus diterima |
| `kartu.csv` | nomor kartu RFID, dicocokkan lewat nama |

Ketiganya hasil konversi dari berkas asli sekolah. Untuk memperbarui data
nanti, ekspor ulang dari Dapodik lalu susun kembali dengan kolom yang sama.

## Hasil impor pertama

| | Jumlah |
|---|---|
| Kelas | 23 |
| Siswa | 815 |
| Orang tua | 735 |
| Akun wali murid | 714 |
| Kartu terpasang | 174 |

## Akun wali murid

Nama pengguna dan kata sandi awal sama-sama nomor telepon orang tua.

Itu keputusan sadar: orang tua tidak perlu menghafal apa pun untuk masuk
pertama kali, dan sekolah tidak perlu membagikan sandi satu per satu.
Konsekuensinya siapa pun yang tahu nomor seseorang bisa mencoba masuk,
sehingga akun ditandai `must_change_pw` dan sekolah perlu meminta orang tua
menggantinya setelah masuk pertama kali.

Satu nomor yang dipakai beberapa anak otomatis bergabung menjadi satu akun.
Contoh nyata dari data ini: nomor 089671620194 memuat dua anak kembar yang
berada di kelas berbeda, dan keduanya tampil dalam satu layar.

## Kartu yang tidak terpasang

Dari 279 kartu, 174 terpasang dan 105 tidak dapat dicocokkan.

Sebabnya bukan kesalahan sistem: daftar kartu dibuat pada tahun ajaran
sebelumnya, sehingga sebagian pemiliknya sudah lulus dan tidak lagi ada di
data Dapodik. Sisanya karena ejaan nama berbeda tipis antara kedua berkas.

Pencocokan dilakukan tiga tahap: kecocokan persis, kecocokan setelah nama
dibersihkan, lalu kemiripan. Tahap ketiga hanya dipakai bila kemiripannya di
atas 88 persen **dan** jauh lebih mirip daripada kandidat berikutnya —
memasangkan kartu ke siswa yang salah lebih berbahaya daripada membiarkannya
kosong. Dua puluh lima kartu terpasang lewat jalur ini dan dicetak di layar
agar dapat diperiksa sekilas.

Sisanya didaftarkan lewat menu **Data Induk → Kartu Siswa**. Kartu yang
ditempel di gerbang tetapi belum terdaftar otomatis muncul di daftar "Kartu
belum dikenal" — tinggal diklik, nomornya terisi sendiri.

## Jenis kartu

Kolom jenis menyimpan nama pembacanya, bukan nama standar kartunya:

| Nilai | Artinya |
|---|---|
| `RDM6300` | kartu 125 kHz, sepuluh digit angka |
| `RC522` | kartu 13,56 MHz, berupa heks |

Yang perlu diketahui operator bukan bahwa kartunya berjenis EM4100,
melainkan gerbang mana yang bisa membacanya.
