Main Menu

Belajar SQL Dasar #11: FOREIGN KEY & Relasi Tabel


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar SQL Dasar #11: FOREIGN KEY & Relasi Tabel

Halo teman-teman semuanya, di seri kesebelas ini kita akan membahas tentang FOREIGN KEY dan bagaimana cara membuat relasi antar tabel dalam SQL. Konsep ini sangat penting saat kita membangun database yang datanya saling berkaitan — contohnya, data siswa yang berelasi dengan data jurusan, atau transaksi yang berelasi dengan data pelanggan.

Contoh Tabel

Untuk mempermudah pemahaman, kita akan membuat dua tabel:

  1. Tabel jurusan

    CREATE TABLE jurusan (
      id INT PRIMARY KEY AUTO_INCREMENT,
      nama_jurusan VARCHAR(50)
    );
    

    Isi data:

    id nama_jurusan
    1 IPA
    2 IPS
  2. Tabel siswa

    CREATE TABLE siswa (
      id INT PRIMARY KEY AUTO_INCREMENT,
      nama VARCHAR(50),
      umur TINYINT,
      kelas VARCHAR(20),
      jurusan_id INT,
      FOREIGN KEY (jurusan_id) REFERENCES jurusan(id)
    );
    

    Kolom jurusan_id di tabel siswa adalah foreign key yang merujuk ke kolom id di tabel jurusan.

Apa Itu FOREIGN KEY?

FOREIGN KEY adalah kolom dalam satu tabel yang digunakan untuk menghubungkan data ke tabel lain. Tujuannya adalah agar data tetap konsisten, saling terhubung, dan tidak terjadi data "liar" yang tidak valid.

Manfaat FOREIGN KEY:

  • Menjaga integritas data antar tabel
  • Mencegah data tidak valid (misalnya, siswa dengan jurusan yang tidak terdaftar)
  • Membentuk hubungan antar entitas, seperti satu ke banyak (one-to-many)

Contoh: Menambahkan Data Berelasi

Tambahkan data ke tabel siswa

INSERT INTO siswa (nama, umur, kelas, jurusan_id)
VALUES ('Ali', 18, 'XII IPA 1', 1),
       ('Budi', 17, 'XI IPS 2', 2);

Hasil Tabel siswa:

id nama umur kelas jurusan_id
1 Ali 18 XII IPA 1 1
2 Budi 17 XI IPS 2 2

JOIN untuk Melihat Data Lengkap

Kalau kita ingin menampilkan nama jurusan berdasarkan jurusan_id, kita bisa menggunakan JOIN:

SELECT siswa.nama, siswa.kelas, jurusan.nama_jurusan
FROM siswa
JOIN jurusan ON siswa.jurusan_id = jurusan.id;

Hasil:

nama kelas nama_jurusan
Ali XII IPA 1 IPA
Budi XI IPS 2 IPS

Kesalahan yang Dihindari

Menambahkan data ke tabel siswa dengan jurusan_id yang tidak ada di tabel jurusan akan gagal, karena foreign key tidak terpenuhi.

-- Akan error jika jurusan_id = 99 tidak ada
INSERT INTO siswa (nama, umur, kelas, jurusan_id)
VALUES ('Citra', 18, 'XII IPA 3', 99);

Kesimpulan

Di artikel ini, kita sudah belajar bahwa FOREIGN KEY adalah penghubung antar tabel di dalam database.

Di artikel berikutnya, kita akan mulai membahas berbagai jenis JOIN (seperti INNER JOIN, LEFT JOIN, dan RIGHT JOIN) untuk menampilkan data dari beberapa tabel sekaligus.

Terima Kasih


SQL
Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami