Analitik Pendidikan: Menganalisis Nilai dan Kehadiran Siswa di Sheets
TL;DR
Analisis nilai dan kehadiran siswa di Google Sheets butuh dua tabel rapi: satu baris per siswa per mata pelajaran, dan satu baris per siswa per hari absen. Dari situ AVERAGEIFS dan COUNTIFS ngasih rata-rata per kelas, persentase kehadiran, dan daftar siswa yang nilainya turun. Di data 184 siswa kelas 8, siswa dengan kehadiran di bawah 85% punya rata-rata nilai 10,7 poin lebih rendah.
Data nilai dan absen di sekolah biasanya berhenti jadi angka rata-rata di rapor. Padahal dua tabel itu, kalau disusun rapi, bisa nunjukin siswa mana yang mulai tertinggal dua bulan sebelum rapor keluar.
Aku olah data latihan 184 siswa kelas 8 semester ganjil di Google Sheets. Yang kehadirannya di bawah 85% punya rata-rata nilai 68,4. Yang kehadirannya 95% ke atas punya rata-rata 79,1. Selisih 10,7 poin.
Di bawah ini cara nyusun datanya, rumus yang kepakai, dan tiga angka yang paling berguna buat wali kelas.
Struktur data kayak gimana yang bikin analisis nilai siswa gampang?
Dua sheet terpisah, masing-masing dalam bentuk tabel panjang. Sheet nilai isinya satu baris per siswa per mata pelajaran per penilaian. Sheet absen isinya satu baris per siswa per hari. Jangan bikin satu kolom per mata pelajaran, karena nambah mata pelajaran berarti ngubah semua rumus.
Bentuk sheet nilai:
| nis | nama | kelas | mapel | jenis | tanggal | nilai |
|---|---|---|---|---|---|---|
| 8A-014 | Rani Puspita | 8A | Matematika | UH-1 | 2025-08-12 | 78 |
| 8A-014 | Rani Puspita | 8A | Matematika | UH-2 | 2025-09-16 | 71 |
| 8B-003 | Dimas Aryo | 8B | IPA | UH-1 | 2025-08-14 | 84 |
Bentuk sheet absen:
| tanggal | nis | kelas | status |
|---|---|---|---|
| 2025-08-12 | 8A-014 | 8A | Hadir |
| 2025-08-12 | 8B-003 | 8B | Sakit |
| 2025-08-13 | 8A-014 | 8A | Alfa |
Kolom nis jadi kunci yang nyambungin dua sheet. Nama siswa jangan dipakai sebagai kunci, soalnya di satu angkatan gampang banget ada dua Putri atau dua Muhammad.
Status absen aku batasi jadi empat: Hadir, Sakit, Izin, Alfa. Empat kategori itu cukup, dan bikin rumus hitungnya pendek.
Gimana cara ngitung rata-rata nilai per kelas dan per mapel?
Pakai AVERAGE versi berkondisi, yaitu AVERAGEIFS. Rumus ini ngerata-ratain kolom nilai cuma buat baris yang cocok sama kelas dan mapel yang kamu sebut.
=AVERAGEIFS(nilai!G:G; nilai!C:C; $A2; nilai!D:D; B$1)
Kolom A isinya nama kelas, baris 1 isinya nama mapel. Tarik ke kanan dan ke bawah, jadilah matriks rata-rata per kelas per mapel.
Hasil dari data 184 siswa:
| Kelas | Matematika | IPA | B. Indonesia | Rata-rata |
|---|---|---|---|---|
| 8A | 72,8 | 76,4 | 81,2 | 76,8 |
| 8B | 69,1 | 74,9 | 80,5 | 74,8 |
| 8C | 66,3 | 71,2 | 78,8 | 72,1 |
| 8D | 74,5 | 77,1 | 82,0 | 77,9 |
Matematika 8C paling rendah, 66,3. Selisihnya 8,2 poin dari 8D. Angka ini yang layak dibawa ke rapat guru, bukan rata-rata sekolah yang 75,4 dan nggak nunjukin apa-apa.
Rata-rata doang gampang nyesatin kalau ada satu dua siswa yang nilainya ekstrem. Cek juga nilai tengahnya pakai MEDIAN. Kalau rata-rata dan median beda jauh, berarti ada outlier yang narik angkanya.
Gimana cara ngitung persentase kehadiran tiap siswa?
Bagi jumlah hari Hadir sama total hari yang tercatat. Dua-duanya pakai COUNTIFS.
=IFERROR(
COUNTIFS(absen!B:B; $A2; absen!D:D; "Hadir") /
COUNTIFS(absen!B:B; $A2);
"")
Bungkus IFERROR penting di sini. Siswa yang baru pindah dan belum punya satu pun baris absen bakal bikin pembagian nol, dan sheet kamu penuh #DIV/0!.
Buat rincian alasan absen, ganti kriteria statusnya:
=COUNTIFS(absen!B:B; $A2; absen!D:D; "Alfa")
=COUNTIFS(absen!B:B; $A2; absen!D:D; "Sakit")
Pisahin Alfa dari Sakit itu wajib. Siswa yang absen 12 hari gara-gara tipes butuh penanganan yang beda banget dari siswa yang alfa 12 hari.
Daftar rumus lengkap yang bisa dipakai di Sheets ada di daftar fungsi resmi Google Sheets.
Gimana nyambungin nilai dan kehadiran jadi satu sheet rekap?
Bikin sheet rekap yang barisnya satu siswa satu baris. Kolom identitas ditarik pakai XLOOKUP, kolom angka dihitung pakai rumus di atas.
Langkahnya:
- Bikin daftar NIS unik. Di kolom A, tulis
=UNIQUE(nilai!A2:A). - Tarik nama dan kelas:
=XLOOKUP($A2; nilai!$A:$A; nilai!$B:$B; "")lalu ganti kolom hasilnya buat kelas. - Hitung rata-rata nilai siswa:
=AVERAGEIFS(nilai!G:G; nilai!A:A; $A2). - Hitung persentase kehadiran pakai rumus COUNTIFS di bagian sebelumnya.
- Tandai status:
=IF(D2<0,85; "Perhatian"; IF(C2<70; "Nilai turun"; "Aman")).
Fungsi IF bertingkat di langkah 5 sengaja nyari kehadiran dulu, baru nilai. Alasannya kehadiran biasanya bergerak duluan sebelum nilai ikut turun.
Hasil sheet rekap kelihatan gini:
| NIS | Nama | Rata-rata nilai | Kehadiran | Alfa | Status |
|---|---|---|---|---|---|
| 8C-021 | Bagas Nugroho | 62,4 | 78% | 14 | Perhatian |
| 8A-014 | Rani Puspita | 74,5 | 96% | 1 | Aman |
| 8B-009 | Sinta Maharani | 68,1 | 92% | 3 | Nilai turun |
Terakhir, pasang conditional formatting di kolom Status biar baris Perhatian langsung kelihatan merah. Wali kelas nggak perlu baca 184 baris, cukup lihat yang merah.
Contoh kasus: 184 siswa kelas 8 semester ganjil
Data yang aku olah: 184 siswa, 4 kelas, 8 mata pelajaran, 92 hari efektif. Total 4.416 baris nilai dan 16.928 baris absen.
Aku kelompokkan siswa berdasarkan persentase kehadiran, lalu hitung rata-rata nilainya per kelompok. Cara segmentasi sederhana ini yang paling cepat nunjukin polanya.
| Kelompok kehadiran | Jumlah siswa | Rata-rata nilai | Alfa rata-rata |
|---|---|---|---|
| 95% ke atas | 97 | 79,1 | 1,2 hari |
| 85% sampai 94% | 56 | 74,3 | 4,8 hari |
| Di bawah 85% | 31 | 68,4 | 11,6 hari |
Tiga temuan yang menurutku paling kepakai:
Satu. Selisih 10,7 poin antara kelompok teratas dan terbawah lebih besar dari selisih antar kelas mana pun (paling besar 5,8 poin). Jadi kalau mau naikin nilai, ngurusin kehadiran lebih berdampak dari ngubah pembagian kelas.
Dua. Dari 31 siswa kelompok terbawah, 19 di antaranya kehadirannya masih di atas 90% di bulan Agustus. Penurunannya mulai September. Kalau rekapnya jalan bulanan, 19 siswa itu ketahuan tiga bulan sebelum rapor.
Tiga. Ada 11 siswa dengan kehadiran di bawah 85% yang nilainya tetap di atas 80. Angka rata-rata nggak berlaku buat semua orang, dan daftar nama tetap perlu dibaca satu per satu sebelum ambil tindakan.
Kesalahan umum waktu ngolah data nilai siswa
- Nama siswa jadi kunci penggabungan. Dua siswa bernama sama bikin nilai ketuker. Pakai NIS, dan pastiin formatnya seragam (
8A-014, bukan kadang8a-14). - Nilai kosong dianggap nol. Siswa yang belum ikut ulangan susulan bakal kelihatan dapat 0 dan rata-ratanya anjlok. Biarkan selnya kosong, karena AVERAGEIFS otomatis ngelewatin sel kosong tapi ikut ngitung angka nol.
- Tanggal disimpan sebagai teks. Format
12/08/2025yang kebaca teks bikin filter per bulan gagal total. Cek pakai TODAY dikurangi selnya. Kalau hasilnya error, itu masih teks. - Rata-rata semua mapel digabung tanpa bobot. Ulangan harian dan ujian akhir bobotnya beda. Kalau sekolah kamu punya aturan bobot, hitung pakai SUMPRODUCT nilai dikali bobot, bagi total bobot.
- Data pribadi siswa ditaruh di spreadsheet yang share link-nya terbuka. Nomor telepon orang tua dan alamat rumah nggak perlu ada di sheet analisis. Simpan kolom identitas seperlunya saja.
- Rekapnya cuma jalan sekali di akhir semester. Nilai analisis ini ada di deteksi dini. Jadwalkan update bulanan, dan bandingkan rekap bulan ini sama bulan lalu.
FAQ
Data nilai dan kehadiran sebaiknya digabung dalam satu sheet atau dipisah?
Pisah. Nilai punya satu baris per siswa per mata pelajaran per penilaian, sedangkan absen punya satu baris per siswa per hari. Kalau digabung, kamu bakal ngulang nilai di ratusan baris absen dan angkanya jadi kacau waktu dijumlah. Simpan dua sheet terpisah, lalu gabungin cuma di sheet rekap pakai XLOOKUP berdasarkan NIS.
Gimana cara ngitung persentase kehadiran siswa di Google Sheets?
Pakai COUNTIFS dua kali. Hitung jumlah baris berstatus Hadir buat NIS tertentu, lalu bagi sama total baris absen buat NIS yang sama. Rumusnya COUNTIFS(absen!B:B; A2; absen!D:D; "Hadir") dibagi COUNTIFS(absen!B:B; A2). Bungkus pakai IFERROR biar siswa baru yang belum punya data absen nggak nampilin error.
Berapa ambang kehadiran yang wajar buat nandain siswa berisiko?
Sekolah biasanya pakai 85% sebagai batas minimal, tapi angka itu perlu kamu cek ke aturan sekolah sendiri karena tiap sekolah beda. Yang lebih berguna daripada satu ambang tetap: lihat tren per bulan. Siswa yang kehadirannya turun tiga bulan berturut-turut lebih perlu ditemui daripada siswa yang absen banyak sekali gara-gara sakit.
Apakah kehadiran rendah selalu bikin nilai jelek?
Nggak selalu. Di data yang aku olah, hubungannya kuat tapi ada 11 siswa dengan kehadiran di bawah 85% yang nilainya tetap di atas 80. Angka korelasi cuma nunjukin pola umum, bukan sebab akibat. Pakai hasilnya buat nentuin siapa yang perlu ditanyain duluan, bukan buat nyimpulin penyebabnya.
Google Sheets sanggup nggak buat data satu sekolah penuh?
Sanggup buat sekolah ukuran menengah. Satu spreadsheet Google Sheets muat sampai 10 juta sel, jadi 600 siswa dikali 180 hari absen dikali 5 kolom masih jauh di bawah batas. Yang bikin lemot biasanya rumus array di seluruh kolom. Batasi rentang rumus ke baris yang beneran ada isinya.
Penutup
Dua hal yang bikin analisis ini kepakai: data disimpan dalam bentuk tabel panjang dengan NIS sebagai kunci, dan rekapnya jalan bulanan, bukan cuma di akhir semester.
Kalau kamu mau mulai minggu ini, cukup bikin satu kolom persentase kehadiran pakai COUNTIFS. Kolom itu doang udah bisa nunjukin nama-nama yang perlu ditemui duluan.
Mau latihan rumus AVERAGEIFS dan COUNTIFS langsung di browser? Coba latihan interaktif di NgulikSheet. Buat pola rekap yang mirip di konteks kantor, cara nyusunnya bisa kamu lihat di dashboard people analytics.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
INDEX MATCH Google Sheets: Lookup Lebih Fleksibel dari VLOOKUP (2026)
INDEX MATCH gabung dua fungsi buat lookup yang bisa nyari ke kiri dan nggak gampang rusak. Ini alasan banyak analis pindah dari VLOOKUP.
SUMPRODUCT Google Sheets: Hitung Berbobot Tanpa Ribet (2026)
SUMPRODUCT ngaliin dua kolom atau lebih baris per baris, terus jumlahin hasilnya. Cocok buat total qty kali harga sampai hitungan bersyarat.
REGEXMATCH Google Sheets: Cek Kecocokan Pola Teks (2026)
REGEXMATCH ngecek apakah teks cocok sama pola tertentu dan balikin TRUE atau FALSE. Cocok buat validasi nomor HP, email, sampai filter data berantakan.