🧩 Pertemuan 2 β€” Struktur Tabel & Constraint di SQL Server

🎯 Tujuan Pembelajaran

Pada pertemuan ini kamu akan belajar cara mendesain tabel, menentukan tipe data yang tepat, dan mengatur aturan integritas data (constraint) menggunakan Microsoft SQL Server.

Setelah pertemuan ini, kamu diharapkan bisa:

  • Membuat dan mengubah tabel dengan CREATE TABLE dan ALTER TABLE
  • Memahami fungsi dan penggunaan berbagai constraint
  • Menjaga kualitas data dengan aturan logis dan relasi antar tabel

πŸ“˜ Konsep Dasar Tabel dan Tipe Data

🧱 Apa itu Tabel?

Tabel adalah struktur utama dalam database yang berisi data dalam bentuk baris (record) dan kolom (field).
Setiap kolom memiliki nama dan tipe data tertentu.

Contoh sederhana:

id nama usia tgl_lahir
1Andi212004-03-01

🧩 Tipe Data Umum di SQL Server

Jenis Tipe Data Contoh
AngkaINT, BIGINT, DECIMAL(10,2), FLOAT10, 12000.50
TeksCHAR(n), VARCHAR(n), NVARCHAR(n)'Andi', 'Jl. Merdeka'
Tanggal/WaktuDATE, DATETIME, SMALLDATETIME'2025-10-20'
LogikaBIT1 (true), 0 (false)
LainnyaUNIQUEIDENTIFIER, IMAGE, VARBINARYβ€”

πŸ’‘ Tips: Gunakan tipe data sekecil mungkin yang masih cukup menampung data β€” agar database lebih efisien.


βš™οΈ Membuat, Mengubah, dan Menghapus Tabel

πŸ”Ή Membuat Tabel

Gunakan perintah CREATE TABLE untuk membuat tabel baru.

1
2
3
4
5
6
7
CREATE TABLE siswa (
id_siswa INT PRIMARY KEY IDENTITY(1,1),
nama NVARCHAR(100) NOT NULL,
tanggal_lahir DATE,
nilai_ujian DECIMAL(5,2) DEFAULT 0,
status_aktif BIT DEFAULT 1
);

πŸ”Ή Mengubah Struktur Tabel

Menambahkan kolom baru:

1
2
ALTER TABLE siswa
ADD alamat NVARCHAR(200);

Mengubah tipe data kolom:

1
2
ALTER TABLE siswa
ALTER COLUMN nama NVARCHAR(150);

Menghapus kolom:

1
2
ALTER TABLE siswa
DROP COLUMN alamat;

πŸ”Ή Menghapus Tabel

1
DROP TABLE siswa;

⚠️ Hati-hati! Setelah DROP TABLE, semua data di tabel tersebut akan hilang.


πŸ”’ Mengenal Constraint (Aturan Data)

Constraint adalah aturan yang membatasi isi tabel agar data tetap valid dan konsisten.

Jenis Constraint Fungsi Contoh
PRIMARY KEYMenandai kolom unik dan tidak boleh kosongid_siswa
FOREIGN KEYMenghubungkan dua tabel (relasi)id_kelas di tabel siswa merujuk ke tabel kelas
UNIQUENilai kolom tidak boleh samaemail
CHECKMembatasi nilai berdasarkan kondisiumur >= 18
DEFAULTMemberi nilai otomatis jika kosongDEFAULT 0
NOT NULLKolom tidak boleh kosongnama

Contoh Lengkap

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE kelas (
id_kelas INT PRIMARY KEY IDENTITY(1,1),
nama_kelas NVARCHAR(50) UNIQUE,
kapasitas INT CHECK (kapasitas > 0)
);

CREATE TABLE siswa (
id_siswa INT PRIMARY KEY IDENTITY(1,1),
nama NVARCHAR(100) NOT NULL,
umur INT CHECK (umur >= 15),
id_kelas INT FOREIGN KEY REFERENCES kelas(id_kelas),
tanggal_daftar DATE DEFAULT GETDATE()
);

Menghapus Constraint

Gunakan ALTER TABLE diikuti nama constraint (biasanya auto-generated).
Untuk mencari nama constraint:

1
EXEC sp_helpconstraint 'siswa';

Lalu hapus:

1
ALTER TABLE siswa DROP CONSTRAINT FK__siswa__id_kelas;


πŸ§‘β€πŸ’» LATIHAN 1

πŸ”Έ Langkah 1

Buat database baru bernama db_sekolah.

1
2
3
4
CREATE DATABASE db_sekolah;
GO
USE db_sekolah;
GO

πŸ”Έ Langkah 2

Buat dua tabel:

  • kelas dengan kolom id_kelas, nama_kelas, kapasitas
  • siswa dengan kolom id_siswa, nama, umur, id_kelas, tanggal_daftar

Gunakan constraint seperti PRIMARY KEY, FOREIGN KEY, DEFAULT, dan CHECK.

πŸ”Έ Langkah 3

Tambahkan minimal 5 data ke masing-masing tabel.

πŸ”Έ Langkah 4

Gunakan query SELECT untuk memastikan relasi antar tabel berjalan benar.


🧩 LATIHAN 2

Estimasi waktu: Β±1,5 jam

  1. Buat database dengan nama db_<nama>
    Contoh: db_Budi
  2. Buat minimal 3 tabel dengan relasi antar tabel (gunakan FOREIGN KEY).
  3. Terapkan minimal 4 jenis constraint berbeda (PRIMARY KEY, UNIQUE, CHECK, DEFAULT, dll).
  4. Isi dengan minimal 5 data per tabel.
  5. Tampilkan hasil dengan SELECT dan screenshot hasilnya.

πŸ’Ύ Kumpulkan file SQL dengan nama:
Pertemuan2_Nama.sql


πŸ’‘ Tantangan (Opsional)

  • Coba ubah tipe data kolom tanpa menghapus tabel (ALTER COLUMN).
  • Tambahkan constraint baru (ADD CONSTRAINT) setelah tabel dibuat.
  • Gunakan CHECK constraint untuk membatasi nilai gaji antara 3.000.000 dan 20.000.000.

πŸ” Refleksi

  • Apa perbedaan antara PRIMARY KEY dan UNIQUE?
  • Kapan kita perlu menggunakan DEFAULT?
  • Mengapa FOREIGN KEY penting dalam menjaga konsistensi data?

πŸ“š Referensi Tambahan