-- ============================================================
-- InternTrack - Database MySQL / MariaDB
-- Sistem Informasi Monitoring PKL - SMK Hidayah Semarang
-- ============================================================
-- Cara import:
--   1. phpMyAdmin  -> Import -> pilih file ini
--   2. Terminal    -> mysql -u root -p < interntrack.sql
--
-- Struktur tabel di file ini SUDAH SESUAI dengan kode PHP.
-- Semua akun demo memakai password: password123
--   admin          / password123   (admin)
--   pembimbing01   / password123   (pembimbing)
--   2526001        / password123   (siswa, username = NIS)
-- ============================================================

CREATE DATABASE IF NOT EXISTS interntrack
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

USE interntrack;

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS monitoring;
DROP TABLE IF EXISTS absensi;
DROP TABLE IF EXISTS jurnal;
DROP TABLE IF EXISTS penempatan;
DROP TABLE IF EXISTS pembimbing;
DROP TABLE IF EXISTS perusahaan;
DROP TABLE IF EXISTS siswa;
DROP TABLE IF EXISTS users;
SET FOREIGN_KEY_CHECKS = 1;

-- 1. users (akun login: admin, pembimbing, siswa)
CREATE TABLE users (
  id         INT AUTO_INCREMENT PRIMARY KEY,
  username   VARCHAR(50)  NOT NULL UNIQUE,
  password   VARCHAR(255) NOT NULL,
  role       ENUM('admin','pembimbing','siswa') NOT NULL,
  nama       VARCHAR(100) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 2. siswa
CREATE TABLE siswa (
  id         INT AUTO_INCREMENT PRIMARY KEY,
  user_id    INT NULL UNIQUE,
  nis        VARCHAR(20)  NOT NULL UNIQUE,
  nama       VARCHAR(100) NOT NULL,
  kelas      VARCHAR(20)  NOT NULL,
  jurusan    VARCHAR(60)  NOT NULL,
  no_hp      VARCHAR(20),
  alamat     TEXT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_siswa_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 3. perusahaan
CREATE TABLE perusahaan (
  id              INT AUTO_INCREMENT PRIMARY KEY,
  nama_perusahaan VARCHAR(150) NOT NULL,
  alamat          TEXT NOT NULL,
  bidang          VARCHAR(100) NOT NULL,
  kontak          VARCHAR(50),
  created_at      TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 4. pembimbing (email unik, dipakai untuk pencarian)
CREATE TABLE pembimbing (
  id         INT AUTO_INCREMENT PRIMARY KEY,
  user_id    INT NULL UNIQUE,
  nip        VARCHAR(30) NULL UNIQUE,
  nama       VARCHAR(100) NOT NULL,
  no_hp      VARCHAR(20),
  email      VARCHAR(100) NULL UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_pembimbing_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 5. penempatan
CREATE TABLE penempatan (
  id              INT AUTO_INCREMENT PRIMARY KEY,
  siswa_id        INT NOT NULL,
  perusahaan_id   INT NOT NULL,
  pembimbing_id   INT NOT NULL,
  tanggal_mulai   DATE NOT NULL,
  tanggal_selesai DATE NULL,
  status          ENUM('Belum Mulai','Aktif','Selesai') NOT NULL DEFAULT 'Belum Mulai',
  created_at      TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_pen_siswa      FOREIGN KEY (siswa_id)      REFERENCES siswa(id)      ON DELETE CASCADE,
  CONSTRAINT fk_pen_perusahaan FOREIGN KEY (perusahaan_id) REFERENCES perusahaan(id) ON DELETE CASCADE,
  CONSTRAINT fk_pen_pembimbing FOREIGN KEY (pembimbing_id) REFERENCES pembimbing(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 6. jurnal
CREATE TABLE jurnal (
  id         INT AUTO_INCREMENT PRIMARY KEY,
  siswa_id   INT NOT NULL,
  tanggal    DATE NOT NULL,
  kegiatan   TEXT NOT NULL,
  hasil      TEXT,
  kendala    TEXT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_jurnal_siswa FOREIGN KEY (siswa_id) REFERENCES siswa(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 7. absensi
CREATE TABLE absensi (
  id         INT AUTO_INCREMENT PRIMARY KEY,
  siswa_id   INT NOT NULL,
  tanggal    DATE NOT NULL,
  status     ENUM('Hadir','Izin','Sakit','Alpa') NOT NULL,
  keterangan TEXT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY unique_absensi (siswa_id, tanggal),
  CONSTRAINT fk_absen_siswa FOREIGN KEY (siswa_id) REFERENCES siswa(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 8. monitoring
CREATE TABLE monitoring (
  id                 INT AUTO_INCREMENT PRIMARY KEY,
  siswa_id           INT NOT NULL,
  pembimbing_id      INT NOT NULL,
  tanggal_monitoring DATE NOT NULL,
  catatan            TEXT NOT NULL,
  nilai              INT,
  rekomendasi        TEXT,
  created_at         TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT chk_nilai CHECK (nilai IS NULL OR (nilai >= 0 AND nilai <= 100)),
  CONSTRAINT fk_mon_siswa      FOREIGN KEY (siswa_id)      REFERENCES siswa(id)      ON DELETE CASCADE,
  CONSTRAINT fk_mon_pembimbing FOREIGN KEY (pembimbing_id) REFERENCES pembimbing(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ============================================================
-- DATA DEMO (password semua akun: password123)
-- ============================================================

-- users (1 admin + 10 pembimbing + 25 siswa = 36)
INSERT INTO users (id, username, password, role, nama) VALUES
(1,  'admin',         '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'admin',       'Administrator'),
(2,  'pembimbing01',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Drs. Slamet Riyadi'),
(3,  'pembimbing02',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Siti Nurhaliza, S.Kom'),
(4,  'pembimbing03',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Budi Hartono, S.T'),
(5,  'pembimbing04',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Retno Wulandari, S.Pd'),
(6,  'pembimbing05',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Agus Salim, S.Kom'),
(7,  'pembimbing06',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Dewi Anggraeni, S.Pd'),
(8,  'pembimbing07',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Heru Cahyono, S.T'),
(9,  'pembimbing08',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Yuni Astuti, S.Kom'),
(10, 'pembimbing09',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Eko Prabowo, S.Pd'),
(11, 'pembimbing10',  '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'pembimbing',  'Lilis Suryani, S.Kom'),
(12, '2526001',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Ahmad Fauzi'),
(13, '2526002',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Bella Safitri'),
(14, '2526003',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Citra Lestari'),
(15, '2526004',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Dimas Prasetyo'),
(16, '2526005',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Eka Putri Wulandari'),
(17, '2526006',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Farhan Maulana'),
(18, '2526007',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Gita Permata'),
(19, '2526008',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Hendra Saputra'),
(20, '2526009',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Indah Kurniawati'),
(21, '2526010',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Joko Santoso'),
(22, '2526011',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Kevin Aditya'),
(23, '2526012',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Lina Marlina'),
(24, '2526013',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Muhammad Rizky'),
(25, '2526014',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Nadia Rahma'),
(26, '2526015',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Oki Setiawan'),
(27, '2526016',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Putri Ayu Ningrum'),
(28, '2526017',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Qori Hidayat'),
(29, '2526018',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Rina Oktaviani'),
(30, '2526019',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Satria Nugroho'),
(31, '2526020',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Tania Anggraini'),
(32, '2526021',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Umar Abdullah'),
(33, '2526022',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Vina Melati'),
(34, '2526023',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Wahyu Hidayat'),
(35, '2526024',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Yusuf Ramadhan'),
(36, '2526025',       '$2y$12$3QL/D60QLT24rbFPaa9kVOMHdr75hZLPCLinpMiGS7TGTGgC0c6ry', 'siswa',       'Zahra Aulia');

-- siswa (25 data)
INSERT INTO siswa (id, user_id, nis, nama, kelas, jurusan, no_hp, alamat) VALUES
(1,  12, '2526001', 'Ahmad Fauzi',         'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123400137', 'Jl. Melati No. 1, Semarang'),
(2,  13, '2526002', 'Bella Safitri',       'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123400274', 'Jl. Melati No. 2, Semarang'),
(3,  14, '2526003', 'Citra Lestari',       'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123400411', 'Jl. Melati No. 3, Semarang'),
(4,  15, '2526004', 'Dimas Prasetyo',      'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123400548', 'Jl. Melati No. 4, Semarang'),
(5,  16, '2526005', 'Eka Putri Wulandari', 'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123400685', 'Jl. Melati No. 5, Semarang'),
(6,  17, '2526006', 'Farhan Maulana',      'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123400822', 'Jl. Melati No. 6, Semarang'),
(7,  18, '2526007', 'Gita Permata',        'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123400959', 'Jl. Melati No. 7, Semarang'),
(8,  19, '2526008', 'Hendra Saputra',      'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123401096', 'Jl. Melati No. 8, Semarang'),
(9,  20, '2526009', 'Indah Kurniawati',    'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123401233', 'Jl. Melati No. 9, Semarang'),
(10, 21, '2526010', 'Joko Santoso',        'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123401370', 'Jl. Melati No. 10, Semarang'),
(11, 22, '2526011', 'Kevin Aditya',        'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123401507', 'Jl. Melati No. 11, Semarang'),
(12, 23, '2526012', 'Lina Marlina',        'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123401644', 'Jl. Melati No. 12, Semarang'),
(13, 24, '2526013', 'Muhammad Rizky',      'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123401781', 'Jl. Melati No. 13, Semarang'),
(14, 25, '2526014', 'Nadia Rahma',         'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123401918', 'Jl. Melati No. 14, Semarang'),
(15, 26, '2526015', 'Oki Setiawan',        'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123402055', 'Jl. Melati No. 15, Semarang'),
(16, 27, '2526016', 'Putri Ayu Ningrum',   'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123402192', 'Jl. Melati No. 16, Semarang'),
(17, 28, '2526017', 'Qori Hidayat',        'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123402329', 'Jl. Melati No. 17, Semarang'),
(18, 29, '2526018', 'Rina Oktaviani',      'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123402466', 'Jl. Melati No. 18, Semarang'),
(19, 30, '2526019', 'Satria Nugroho',      'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123402603', 'Jl. Melati No. 19, Semarang'),
(20, 31, '2526020', 'Tania Anggraini',     'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123402740', 'Jl. Melati No. 20, Semarang'),
(21, 32, '2526021', 'Umar Abdullah',       'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123402877', 'Jl. Melati No. 21, Semarang'),
(22, 33, '2526022', 'Vina Melati',         'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123403014', 'Jl. Melati No. 22, Semarang'),
(23, 34, '2526023', 'Wahyu Hidayat',       'XI RPL 2',  'Rekayasa Perangkat Lunak', '08123403151', 'Jl. Melati No. 23, Semarang'),
(24, 35, '2526024', 'Yusuf Ramadhan',      'XII RPL 1', 'Rekayasa Perangkat Lunak', '08123403288', 'Jl. Melati No. 24, Semarang'),
(25, 36, '2526025', 'Zahra Aulia',         'XI RPL 1',  'Rekayasa Perangkat Lunak', '08123403425', 'Jl. Melati No. 25, Semarang');

-- perusahaan (10 data)
INSERT INTO perusahaan (id, nama_perusahaan, alamat, bidang, kontak) VALUES
(1,  'PT Nusantara Teknologi',      'Jl. Pemuda No. 12, Semarang',       'Pengembangan Perangkat Lunak', '024-7612345'),
(2,  'CV Digital Kreasi',           'Jl. Pandanaran No. 45, Semarang',   'Desain & Web',                 '024-8312456'),
(3,  'PT Smart Solusi Indonesia',   'Jl. Gajah Mada No. 7, Semarang',    'Konsultan IT',                 '024-3512211'),
(4,  'Diskominfo Kota Semarang',    'Jl. Pemuda No. 148, Semarang',      'Instansi Pemerintah',          '024-3513366'),
(5,  'PT Cipta Jaringan Prima',     'Jl. Majapahit No. 88, Semarang',    'Jaringan & Infrastruktur',     '024-6711902'),
(6,  'Bank Jateng Cabang Utama',    'Jl. Pemuda No. 142, Semarang',      'Perbankan',                    '024-3547541'),
(7,  'PT Karya Data Mandiri',       'Jl. Setiabudi No. 21, Semarang',    'Analisis Data',                '024-7470088'),
(8,  'Studio Piksel Kreatif',       'Jl. Tlogosari Raya No. 5, Semarang','Multimedia',                   '024-6700456'),
(9,  'PT Mitra Aplikasi Bersama',   'Jl. Ungaran Raya No. 30, Ungaran',  'Aplikasi Mobile',              '024-6921033'),
(10, 'RS Cendekia Medika',          'Jl. Diponegoro No. 90, Ungaran',    'Sistem Informasi Rumah Sakit', '024-6921777');

-- pembimbing (10 data)
INSERT INTO pembimbing (id, user_id, nip, nama, no_hp, email) VALUES
(1,  2,  '198501102010001', 'Drs. Slamet Riyadi',      '08571200211', 'slamet.riyadi@smkhidayah.sch.id'),
(2,  3,  '198502102010002', 'Siti Nurhaliza, S.Kom',   '08571200422', 'siti.nurhaliza@smkhidayah.sch.id'),
(3,  4,  '198503102010003', 'Budi Hartono, S.T',       '08571200633', 'budi.hartono@smkhidayah.sch.id'),
(4,  5,  '198504102010004', 'Retno Wulandari, S.Pd',   '08571200844', 'retno.wulandari@smkhidayah.sch.id'),
(5,  6,  '198505102010005', 'Agus Salim, S.Kom',       '08571201055', 'agus.salim@smkhidayah.sch.id'),
(6,  7,  '198506102010006', 'Dewi Anggraeni, S.Pd',    '08571201266', 'dewi.anggraeni@smkhidayah.sch.id'),
(7,  8,  '198507102010007', 'Heru Cahyono, S.T',       '08571201477', 'heru.cahyono@smkhidayah.sch.id'),
(8,  9,  '198508102010008', 'Yuni Astuti, S.Kom',      '08571201688', 'yuni.astuti@smkhidayah.sch.id'),
(9,  10, '198509102010009', 'Eko Prabowo, S.Pd',       '08571201899', 'eko.prabowo@smkhidayah.sch.id'),
(10, 11, '198510102010010', 'Lilis Suryani, S.Kom',    '08571202110', 'lilis.suryani@smkhidayah.sch.id');

-- penempatan (10 data)
INSERT INTO penempatan (id, siswa_id, perusahaan_id, pembimbing_id, tanggal_mulai, tanggal_selesai, status) VALUES
(1,  1,  1,  1,  '2026-08-03', '2026-12-18', 'Aktif'),
(2,  2,  2,  2,  '2026-08-03', '2026-12-18', 'Aktif'),
(3,  3,  3,  3,  '2026-08-03', '2026-12-18', 'Aktif'),
(4,  4,  4,  4,  '2026-08-03', '2026-12-18', 'Aktif'),
(5,  5,  5,  5,  '2026-08-03', '2026-12-18', 'Aktif'),
(6,  6,  6,  6,  '2026-08-03', '2026-12-18', 'Aktif'),
(7,  7,  7,  7,  '2026-08-03', '2026-12-18', 'Aktif'),
(8,  8,  8,  8,  '2026-07-01', '2026-09-30', 'Selesai'),
(9,  9,  9,  9,  '2026-07-01', '2026-09-30', 'Selesai'),
(10, 10, 10, 10, '2026-11-02', '2027-02-26', 'Belum Mulai');

-- jurnal (30 data)
INSERT INTO jurnal (siswa_id, tanggal, kegiatan, hasil, kendala) VALUES
(1,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Membuat desain database',                              'ERD selesai dibuat',                      'Masih mengalami kesulitan menentukan relasi tabel'),
(1,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Membuat CRUD data pelanggan',                          'Fitur tambah dan edit selesai',           'Query join sempat error'),
(1,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Memperbaiki bug pada modul laporan',                   'Laporan tampil sesuai filter',            '-'),
(2,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Membuat halaman login dengan PHP',                     'Halaman login berjalan',                  'Validasi belum lengkap'),
(2,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Mengikuti rapat tim pengembangan',                    'Memahami alur kerja sprint',              '-'),
(2,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Menyusun dokumentasi teknis',                         'Dokumen API selesai',                     'Format dokumentasi belum seragam'),
(3,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Merapikan tampilan dengan CSS',                        'Tampilan responsif di layar kecil',       'Perlu belajar CSS grid'),
(3,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Menguji aplikasi bersama tim QA',                     '12 bug berhasil dicatat',                 'Skenario uji belum jelas'),
(3,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Presentasi progres kepada pembimbing industri',       'Mendapat masukan perbaikan',              'Kurang percaya diri saat presentasi'),
(4,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Membuat CRUD data pelanggan',                          'Fitur tambah dan edit selesai',           'Query join sempat error'),
(4,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Memperbaiki bug pada modul laporan',                   'Laporan tampil sesuai filter',            '-'),
(4,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Menginstal dan mengonfigurasi XAMPP di komputer kerja','Lingkungan pengembangan siap dipakai',    'Versi PHP belum sesuai'),
(5,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Mengikuti rapat tim pengembangan',                    'Memahami alur kerja sprint',              '-'),
(5,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Menyusun dokumentasi teknis',                         'Dokumen API selesai',                     'Format dokumentasi belum seragam'),
(5,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Membuat desain database',                              'ERD selesai dibuat',                      'Masih mengalami kesulitan menentukan relasi tabel'),
(6,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Menguji aplikasi bersama tim QA',                     '12 bug berhasil dicatat',                 'Skenario uji belum jelas'),
(6,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Presentasi progres kepada pembimbing industri',       'Mendapat masukan perbaikan',              'Kurang percaya diri saat presentasi'),
(6,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Membuat halaman login dengan PHP',                     'Halaman login berjalan',                  'Validasi belum lengkap'),
(7,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Memperbaiki bug pada modul laporan',                   'Laporan tampil sesuai filter',            '-'),
(7,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Menginstal dan mengonfigurasi XAMPP di komputer kerja','Lingkungan pengembangan siap dipakai',    'Versi PHP belum sesuai'),
(7,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Merapikan tampilan dengan CSS',                        'Tampilan responsif di layar kecil',       'Perlu belajar CSS grid'),
(8,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Menyusun dokumentasi teknis',                         'Dokumen API selesai',                     'Format dokumentasi belum seragam'),
(8,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Membuat desain database',                              'ERD selesai dibuat',                      'Masih mengalami kesulitan menentukan relasi tabel'),
(8,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Membuat CRUD data pelanggan',                          'Fitur tambah dan edit selesai',           'Query join sempat error'),
(9,  DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Presentasi progres kepada pembimbing industri',       'Mendapat masukan perbaikan',              'Kurang percaya diri saat presentasi'),
(9,  DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Membuat halaman login dengan PHP',                     'Halaman login berjalan',                  'Validasi belum lengkap'),
(9,  DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Mengikuti rapat tim pengembangan',                    'Memahami alur kerja sprint',              '-'),
(10, DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Menginstal dan mengonfigurasi XAMPP di komputer kerja','Lingkungan pengembangan siap dipakai',    'Versi PHP belum sesuai'),
(10, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Merapikan tampilan dengan CSS',                        'Tampilan responsif di layar kecil',       'Perlu belajar CSS grid'),
(10, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Menguji aplikasi bersama tim QA',                     '12 bug berhasil dicatat',                 'Skenario uji belum jelas');

-- absensi (30 data)
INSERT INTO absensi (siswa_id, tanggal, status, keterangan) VALUES
(1, DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Hadir', NULL),
(1, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Hadir', NULL),
(1, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Hadir', NULL),
(1, DATE_SUB(CURDATE(), INTERVAL 3 DAY), 'Hadir', NULL),
(1, DATE_SUB(CURDATE(), INTERVAL 4 DAY), 'Hadir', NULL),
(1, DATE_SUB(CURDATE(), INTERVAL 5 DAY), 'Hadir', NULL),
(2, DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Hadir', NULL),
(2, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Hadir', NULL),
(2, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Hadir', NULL),
(2, DATE_SUB(CURDATE(), INTERVAL 3 DAY), 'Hadir', NULL),
(2, DATE_SUB(CURDATE(), INTERVAL 4 DAY), 'Hadir', NULL),
(2, DATE_SUB(CURDATE(), INTERVAL 5 DAY), 'Izin',  'Keperluan keluarga'),
(3, DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Hadir', NULL),
(3, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Hadir', NULL),
(3, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Hadir', NULL),
(3, DATE_SUB(CURDATE(), INTERVAL 3 DAY), 'Hadir', NULL),
(3, DATE_SUB(CURDATE(), INTERVAL 4 DAY), 'Izin',  'Urusan administrasi'),
(3, DATE_SUB(CURDATE(), INTERVAL 5 DAY), 'Sakit', 'Demam'),
(4, DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Hadir', NULL),
(4, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Hadir', NULL),
(4, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Hadir', NULL),
(4, DATE_SUB(CURDATE(), INTERVAL 3 DAY), 'Izin',  NULL),
(4, DATE_SUB(CURDATE(), INTERVAL 4 DAY), 'Sakit', 'Flu'),
(4, DATE_SUB(CURDATE(), INTERVAL 5 DAY), 'Alpa',  NULL),
(5, DATE_SUB(CURDATE(), INTERVAL 0 DAY), 'Hadir', NULL),
(5, DATE_SUB(CURDATE(), INTERVAL 1 DAY), 'Hadir', NULL),
(5, DATE_SUB(CURDATE(), INTERVAL 2 DAY), 'Hadir', NULL),
(5, DATE_SUB(CURDATE(), INTERVAL 3 DAY), 'Hadir', NULL),
(5, DATE_SUB(CURDATE(), INTERVAL 4 DAY), 'Hadir', NULL),
(5, DATE_SUB(CURDATE(), INTERVAL 5 DAY), 'Hadir', NULL);

-- monitoring (10 data)
INSERT INTO monitoring (siswa_id, pembimbing_id, tanggal_monitoring, catatan, nilai, rekomendasi) VALUES
(1,  1,  DATE_SUB(CURDATE(), INTERVAL 1 DAY),  'Siswa mampu berkomunikasi dengan baik dan dapat menyelesaikan tugas yang diberikan industri.', 85, 'Pertahankan kinerja dan mulai mengerjakan proyek yang lebih kompleks.'),
(2,  2,  DATE_SUB(CURDATE(), INTERVAL 2 DAY),  'Siswa rajin, namun perlu meningkatkan ketelitian saat menulis kode.',                           78, 'Latih penggunaan standar penulisan kode.'),
(3,  3,  DATE_SUB(CURDATE(), INTERVAL 3 DAY),  'Siswa aktif bertanya dan cepat beradaptasi dengan lingkungan kerja.',                           88, 'Libatkan siswa pada pekerjaan tim.'),
(4,  4,  DATE_SUB(CURDATE(), INTERVAL 4 DAY),  'Kehadiran perlu ditingkatkan agar tugas tidak tertunda.',                                       65, 'Lakukan pembinaan kehadiran bersama orang tua.'),
(5,  5,  DATE_SUB(CURDATE(), INTERVAL 5 DAY),  'Siswa disiplin dan bertanggung jawab pada pekerjaan.',                                          90, 'Berikan tanggung jawab modul kecil secara mandiri.'),
(6,  6,  DATE_SUB(CURDATE(), INTERVAL 6 DAY),  'Siswa mampu berkomunikasi dengan baik dan dapat menyelesaikan tugas yang diberikan industri.', 82, 'Pertahankan kinerja dan mulai mengerjakan proyek yang lebih kompleks.'),
(7,  7,  DATE_SUB(CURDATE(), INTERVAL 7 DAY),  'Siswa rajin, namun perlu meningkatkan ketelitian saat menulis kode.',                           76, 'Latih penggunaan standar penulisan kode.'),
(8,  8,  DATE_SUB(CURDATE(), INTERVAL 8 DAY),  'Siswa aktif bertanya dan cepat beradaptasi dengan lingkungan kerja.',                           70, 'Libatkan siswa pada pekerjaan tim.'),
(9,  9,  DATE_SUB(CURDATE(), INTERVAL 9 DAY),  'Kehadiran perlu ditingkatkan agar tugas tidak tertunda.',                                       86, 'Lakukan pembinaan kehadiran bersama orang tua.'),
(10, 10, DATE_SUB(CURDATE(), INTERVAL 10 DAY), 'Siswa disiplin dan bertanggung jawab pada pekerjaan.',                                          80, 'Berikan tanggung jawab modul kecil secara mandiri.');

-- ============================================================
-- SELESAI: users 36, siswa 25, perusahaan 10, pembimbing 10,
--          penempatan 10, jurnal 30, absensi 30, monitoring 10
-- ============================================================
