Setiap aplikasi berbasis data—seperti Sistem Informasi Sekolah—membutuhkan struktur tabel yang dirancang dengan presisi. Melalui latihan praktis ini, Anda akan belajar menerapkan perintah DDL (Data Definition Language) untuk merancang tabel data siswa dari nol hingga siap digunakan.
Latihan ini sangat cocok bagi Anda yang sedang mendalami SQL dasar, khususnya penerapan tipe data, penentuan kunci utama (Primary Key), serta penerapan aturan validasi (Constraints).
Skenario Kebutuhan Bisnis
Sebuah sekolah menengah membutuhkan tabel baru bernama siswa untuk mencatat biodata murid-muridnya. Berdasarkan analisis kebutuhan dari pihak sekolah, data yang wajib dicatat mencakup kriteria berikut:
- ID Sistem: Angka acuan unik internal sistem yang bertambah secara otomatis.
- NIS (Nomor Induk Siswa): Kode identitas unik sepanjang 10 karakter yang tidak boleh ada duplikasi dan tidak boleh kosong.
- Nama Lengkap: Nama siswa dengan batas maksimal 100 karakter dan wajib diisi.
- Jenis Kelamin: Pilihan terbatas pada
L(Laki-laki) atauP(Perempuan). - Tanggal Lahir: Mencatat tanggal lahir siswa untuk perhitungan umur.
- Email: Alamat surel siswa yang bersifat opsional tetapi harus unik jika diisi.
- Status Aktif: Penanda apakah siswa masih aktif sekolah (nilai default:
TRUEatau1). - Waktu Dibuat: Tanggal dan waktu otomatis saat data dimasukkan ke sistem.
Perancangan Skema Tabel (Data Dictionary)
Sebelum mengeksekusi sintaks SQL, mari petakan kebutuhan di atas ke dalam pemetaan tipe data dan constraint:
| Nama Kolom | Tipe Data | Constraint / Aturan | Keterangan |
|---|---|---|---|
id |
INT |
PRIMARY KEY, AUTO_INCREMENT |
ID unik internal |
nis |
VARCHAR(10) |
UNIQUE, NOT NULL |
Nomor Induk Siswa |
nama_lengkap |
VARCHAR(100) |
NOT NULL |
Nama siswa |
jenis_kelamin |
ENUM('L', 'P') |
NOT NULL |
Pilihan L/P |
tanggal_lahir |
DATE |
NOT NULL |
Format YYYY-MM-DD |
email |
VARCHAR(100) |
UNIQUE |
Email opsional |
is_aktif |
BOOLEAN |
DEFAULT TRUE |
Status keaktifan |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Waktu pembuatan data |
Langkah Eksekusi SQL
Gunakan perintah-perintah berikut untuk mengeksekusi latihan ini di RDBMS pilihan Anda (seperti MySQL atau MariaDB).
1. Membuat Database dan Memilihnya
Langkah pertama adalah memastikan Anda bekerja di dalam database yang tepat:
CREATE DATABASE IF NOT EXISTS sekolah_db;
USE sekolah_db;
2. Membuat Tabel siswa
Jalankan query DDL CREATE TABLE berikut berdasarkan perancangan skema yang sudah kita buat:
CREATE TABLE siswa (
id INT PRIMARY KEY AUTO_INCREMENT,
nis VARCHAR(10) UNIQUE NOT NULL,
nama_lengkap VARCHAR(100) NOT NULL,
jenis_kelamin ENUM('L', 'P') NOT NULL,
tanggal_lahir DATE NOT NULL,
email VARCHAR(100) UNIQUE,
is_aktif BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Pengujian Tabel (Testing)
Untuk memastikan struktur tabel bekerja sesuai aturan, mari lakukan pengujian dengan memasukkan beberapa contoh data.
1. Pengujian Input Data Valid
Coba masukkan dua baris data siswa yang valid berikut:
INSERT INTO siswa (nis, nama_lengkap, jenis_kelamin, tanggal_lahir, email)
VALUES
('1024001', 'Budi Santoso', 'L', '2008-05-14', 'budi@sekolah.sch.id'),
('1024002', 'Siti Rahma', 'P', '2008-11-20', 'siti@sekolah.sch.id');
Jalankan perintah SELECT untuk melihat hasilnya:
SELECT * FROM siswa;
2. Pengujian Validasi Error (Constraint Check)
Untuk menguji ketahanan tabel, cobalah beberapa kasus error berikut di query editor Anda untuk melihat bagaimana RDBMS menolaknya:
-
Uji Coba Duplicate NIS: Masukkan data baru dengan NIS yang sama (
1024001). Database akan menolak karena pelanggaran aturanUNIQUE.-- Harus Error: Duplicate entry '1024001' for key 'nis' INSERT INTO siswa (nis, nama_lengkap, jenis_kelamin, tanggal_lahir) VALUES ('1024001', 'Andi Pratama', 'L', '2008-01-10'); -
Uji Coba Opsi ENUM Tidak Valid: Masukkan jenis kelamin di luar opsi
LatauP.-- Harus Error: Data truncated for column 'jenis_kelamin' INSERT INTO siswa (nis, nama_lengkap, jenis_kelamin, tanggal_lahir) VALUES ('1024003', 'Dewi Lestari', 'X', '2008-03-25');
Soal Tantangan Tambahan
Jika Anda sudah berhasil menyelesaikan latihan di atas, cobalah selesaikan dua tantangan modifikasi tabel menggunakan perintah ALTER TABLE berikut:
- Tambahkan kolom baru bernama
alamatdengan tipe dataTEXTyang diposisikan setelah kolomtanggal_lahir. - Tambahkan kolom
no_teleponbertipeVARCHAR(15)yang bersifat unik.
Kesimpulan
Melalui latihan studi kasus ini, Anda tidak hanya belajar menulis sintaks CREATE TABLE, tetapi juga memahami pentingnya memilih tipe data dan constraint yang tepat untuk menjaga integritas data aplikasi di masa mendatang.