Tracking Kehadiran dari Laporan Microsoft Teams
Ringkasan
Saya bikin tool untuk mencatat kehadiran dari Microsoft Teams secara otomatis. Nama peserta dinormalisasi dulu, lalu dicocokkan ke database resmi pakai fuzzy matching, dan hasilnya langsung bisa dipakai lewat aplikasi web Streamlit.
Masalah
Mencatat kehadiran dari Microsoft Teams biasanya masih dikerjakan manual. Laporan kehadirannya dicocokkan satu per satu dengan database peserta.
Yang bikin repot:
- Nama peserta tidak konsisten
- Nama disingkat
- Cuma nama depan dan nama belakang
- Ada label tambahan seperti
(Unverified),(External),(guest) - Kapitalisasi, tanda baca, dan formatnya beda-beda
- Skalanya besar:
- Dipakai di 10+ kelas
- Banyak sesi dengan puluhan peserta
- Kerja manual menyita waktu
- Rawan human error
- Susah diaudit dan susah dijaga konsistensinya
Ujungnya, pencatatan kehadiran jadi bottleneck operasional yang menghabiskan banyak waktu dan tenaga.
Solusi
Saya bangun Attendance Synchronization & Matching System pakai Python yang:
- Membaca laporan kehadiran Microsoft Teams
- Preprocessing dan normalisasi nama
- Mencocokkan peserta ke database resmi pakai fuzzy string matching
- Otomatis bikin ringkasan kehadiran (hadir/tidak hadir + statistik)
graph LR
A[Upload Participant DB] --> B[Upload Teams Report]
B --> C{Process}
C --> D[Normalize Names]
D --> E[Fuzzy Match]
E --> F[Set Status]
F --> G[Download Results]
Alurnya:
- Upload Database Peserta
- Upload Laporan Kehadiran Microsoft Teams
- Sistemnya jalan sendiri:
- Membersihkan dan menyeragamkan nama peserta
- Mencocokkan pakai fuzzy matching dengan threshold yang bisa diatur
- Menentukan status kehadiran
- Menggabungkan data kehadiran dari semua sesi
- Hasilnya siap dipakai, tanpa kerja manual.
Solusinya di-deploy sebagai aplikasi web Streamlit, jadi orang non-teknis pun bisa pakai.
![]()
![]()
Dampak
- β±οΈ Hemat waktu
- Dari hitungan jam jadi hitungan detik
- π Human error berkurang
- Pencocokan nama konsisten dan standar
- π Data kehadiran rapi dan terstruktur
- Lebih gampang dianalisis, dilaporkan, dan diaudit
- π Bisa dipakai ulang
- Dipakai di banyak kelas tanpa mengubah alurnya
- πΌ Siap dipakai di program beneran
- Cocok untuk Edu-Tech, program training, dan laporan ke stakeholder
Teknologi
- Python
- Pandas, buat olah dan agregasi data
- RapidFuzz, buat fuzzy string matching
- Regex (re), buat preprocessing dan normalisasi teks
- Streamlit, buat aplikasi web interaktif
- Microsoft Teams Attendance Report sebagai sumber data
Tambahan
- Threshold fuzzy matching bisa diatur sesuai kualitas datanya.
- Struktur kode modular, gampang dikembangkan.
- Rencana ke depan:
- Export CSV / Excel
- Dashboard analytics
- Integrasi langsung ke database atau LMS
- Pelaporan kehadiran otomatis
Satu hal yang saya akui: threshold-nya masih saya atur manual tiap kali format datanya berubah, dan itu yang paling sering saya lupa.