-- Schema database untuk Sistem Klasifikasi Jurusan Siswa -- Jalankan file ini di database: db_klasifikasi CREATE TABLE IF NOT EXISTS admin ( id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, password_hash VARCHAR(64) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS hasil_prediksi ( id SERIAL PRIMARY KEY, nama_siswa VARCHAR(100) NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Informatika nilai_informatika_sem1 DOUBLE PRECISION, nilai_informatika_sem2 DOUBLE PRECISION, nilai_informatika DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Fisika nilai_fisika_sem1 DOUBLE PRECISION, nilai_fisika_sem2 DOUBLE PRECISION, nilai_fisika DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Kimia nilai_kimia_sem1 DOUBLE PRECISION, nilai_kimia_sem2 DOUBLE PRECISION, nilai_kimia DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Biologi nilai_biologi_sem1 DOUBLE PRECISION, nilai_biologi_sem2 DOUBLE PRECISION, nilai_biologi DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk BIG Lanjut nilai_big_lanjut_sem1 DOUBLE PRECISION, nilai_big_lanjut_sem2 DOUBLE PRECISION, nilai_big_lanjut DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Ekonomi nilai_ekonomi_sem1 DOUBLE PRECISION, nilai_ekonomi_sem2 DOUBLE PRECISION, nilai_ekonomi DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk MAT Lanjut nilai_mat_lanjut_sem1 DOUBLE PRECISION, nilai_mat_lanjut_sem2 DOUBLE PRECISION, nilai_mat_lanjut DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk SEJ Lanjut nilai_sej_lanjut_sem1 DOUBLE PRECISION, nilai_sej_lanjut_sem2 DOUBLE PRECISION, nilai_sej_lanjut DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Sosiologi nilai_sosiologi_sem1 DOUBLE PRECISION, nilai_sosiologi_sem2 DOUBLE PRECISION, nilai_sosiologi DOUBLE PRECISION NOT NULL, -- Kolom Semester 1, 2, dan Rata-rata untuk Geografi nilai_geografi_sem1 DOUBLE PRECISION, nilai_geografi_sem2 DOUBLE PRECISION, nilai_geografi DOUBLE PRECISION NOT NULL, paket_prediksi INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX IF NOT EXISTS idx_hasil_prediksi_nama ON hasil_prediksi (nama_siswa); CREATE INDEX IF NOT EXISTS idx_hasil_prediksi_paket ON hasil_prediksi (paket_prediksi);