-- Database Schema untuk Sistem Absensi Kelas
-- Nama Database: absensi_kelas

CREATE DATABASE IF NOT EXISTS absensi_kelas;
USE absensi_kelas;

-- Tabel students untuk data siswa
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    nama_siswa VARCHAR(100) NOT NULL,
    jenis_kelamin ENUM('Laki-laki', 'Perempuan') NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Tabel absensi untuk data kehadiran
CREATE TABLE absensi (
    id INT PRIMARY KEY AUTO_INCREMENT,
    student_id INT NOT NULL,
    hari ENUM('Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', 'Minggu') NOT NULL,
    tanggal DATE NOT NULL,
    kehadiran ENUM('Hadir', 'Tidak Hadir', 'Sakit', 'Izin') NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE
);

-- Index untuk performa query
CREATE INDEX idx_absensi_student_id ON absensi(student_id);
CREATE INDEX idx_absensi_tanggal ON absensi(tanggal);
CREATE INDEX idx_absensi_kehadiran ON absensi(kehadiran);

-- Insert data siswa contoh
INSERT INTO students (nama_siswa, jenis_kelamin) VALUES
('Ahmad Rahman', 'Laki-laki'),
('Siti Aminah', 'Perempuan'),
('Budi Santoso', 'Laki-laki'),
('Maya Sari', 'Perempuan'),
('Rizki Pratama', 'Laki-laki');

-- Insert data absensi contoh
INSERT INTO absensi (student_id, hari, tanggal, kehadiran) VALUES
(1, 'Senin', '2025-01-13', 'Hadir'),
(2, 'Senin', '2025-01-13', 'Hadir'),
(3, 'Senin', '2025-01-13', 'Sakit'),
(4, 'Senin', '2025-01-13', 'Hadir'),
(5, 'Senin', '2025-01-13', 'Tidak Hadir'),
(1, 'Selasa', '2025-01-14', 'Hadir'),
(2, 'Selasa', '2025-01-14', 'Izin'),
(3, 'Selasa', '2025-01-14', 'Hadir'),
(4, 'Selasa', '2025-01-14', 'Hadir'),
(5, 'Selasa', '2025-01-14', 'Hadir');
