Melakukan Rekapitulasi Kehadiran Siswa menggunakan Query SQL


Melakukan Rekapitulasi Kehadiran Siswa menggunakan Query SQL | kangriyanto.net – Tulisan ini akan menunjukkan betapa mudahnya melakukan rekapitulasi jumlah kehadiran ataupun ketidakhadiran siswa dengan menggunakan query SQL. Tulisan ini terinspirasi dari salah satu pertanyaan dari seseorang di salah satu grup pemrograman di Facebook.

Membuat Tabel

Oke, langsung saja di sini kita akan membuat dua buah tabel yang akan kita beri nama siswa dan kehadiran yang masing-masing akan kita buat seperti pada sintaks berikut ini:

CREATE TABLE siswa (
  nis varchar(10),
  nama varchar(25),
  primary key(nis)
);

CREATE TABLE kehadiran (
  nis varchar(10),
  tanggal date,
  hadir int(2),
  sakit int(2),
  izin int(2),
  alpha int(2),
  primary key(nis, tanggal)
);

Sintaks di atas akan menghasilkan struktur tabel seperti ini:

Struktur Tabel Siswa dan Tabel Kehadiran

Menyimpan Data

Sebelum kita lakukan proses rekapitulasi kehadrian, tetantunya langkah selanjutnya kita akan membuat dummy data untuk masing-masing tabel di atas, dengan perintah:

INSERT INTO siswa VALUES
('112233', 'Adi Firmansyah'),
('223344', 'Budi Arianto');

INSERT INTO kehadiran VALUES
('112233', '2020-03-01', 1, 0, 0, 0),
('112233', '2020-03-02', 0, 1, 0, 0),
('223344', '2020-03-01', 0, 0, 1, 0),
('223344', '2020-03-02', 0, 0, 1, 0);

Query di atas akan menyimpan data-data seperti pada gambar berikut:

Dummy data pada tabel Siswa dan tabel Kehadiran

Angka 1 di atas memiliki arti “Ya”, jadi jika seorang siswa “hadir”, maka kolom “hadir” bernilai “1”. Jika siswa “alpha”, maka akan diberi nilai “1” pada kolom “alpha”, dan sebagainya.

Merekap Data

Untuk merekap kehadiran siswa dari kedua tabel tersebut, bahasa SQL yang dapat kita gunakan adalah sebagai berikut:

SELECT siswa.nis, nama, 
SUM(hadir) as hadir,
SUM(sakit) as sakit,
SUM(izin) as izin, 
SUM(alpha) as alpha
FROM siswa
JOIN kehadiran
ON siswa.nis = kehadiran.nis
GROUP BY nis;

Hasilnya terlihat seperti ini:

Hasil query SQL untuk rekapitulasi data kehadiran siswa

Itulah tadi query SQL yang dapat kita gunakan untuk menghitung jumlah hadir, sakit, izin ataupun alpha pada tabel kehadiran untuk melakukan rekapitulasi data kehadiran. Semoga bermanfaat 🙂

1 thought on “Melakukan Rekapitulasi Kehadiran Siswa menggunakan Query SQL

  1. Pingback: Menghapus Data Dari Beberapa Tabel pada MySQL Menggunakan Satu Query | Kangriyanto.net

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.