
Hingga saat ini, kita telah mahir mengolah data di dalam "kotak-kotak" terpisah. Namun, kekuatan sejati dari sebuah sistem manajemen basis data relasional (RDBMS) bukan terletak pada kemampuannya menyimpan data secara terpisah, melainkan kemampuannya untuk menghubungkan kembali potongan-potongan informasi tersebut menjadi satu kesatuan yang bermakna. Di bab ini, Anda akan belajar cara "menjahit" tabel-tabel tersebut.
Dalam pengembangan sistem informasi kampus yang profesional, kita jarang sekali menemukan satu tabel yang berisi semua informasi lengkap. Anda tidak akan menemukan nama mahasiswa, nama dosen, judul mata kuliah, dan nama ruang kelas dalam satu tabel yang sama. Mengapa demikian? Karena kita telah menerapkan prinsip Normalisasi yang kita pelajari di Bab 3, guna menghindari pengulangan data yang mubazir.
Namun, saat pimpinan kampus meminta laporan seperti "Tampilkan daftar mahasiswa beserta nama dosen walinya," kita dihadapkan pada tantangan: Nama Mahasiswa ada di tabel mahasiswa, sedangkan Nama Dosen ada di tabel dosen. Di sinilah teknik JOIN bekerja sebagai "jembatan virtual" yang menyatukan kembali data-data yang terpisah tersebut tepat saat kita membutuhkannya.
Sebelum kita masuk ke perintah teknis, kita harus memahami dasar pemikiran di balik struktur data yang tersebar ini. Basis data dirancang untuk menjadi efisien dalam penyimpanan, tetapi fleksibel dalam penyajian.
Bayangkan jika kita memasukkan nama lengkap dosen wali ke dalam setiap baris data mahasiswa. Jika dosen tersebut pindah rumah atau berganti gelar (misal dari M.T. menjadi Dr.), kita harus mengubah ribuan baris data mahasiswa satu per satu. Ini sangat tidak efisien dan berisiko terjadi kesalahan data.
Dengan Normalisasi, kita cukup menyimpan identitas unik dosen (seperti NIDN) di tabel mahasiswa. Jika data dosen berubah, kita hanya perlu mengubahnya di satu tempat, yaitu di tabel dosen.
Meskipun data tersimpan di meja yang berbeda, mereka memiliki "tali pengikat" yang disebut Foreign Key. Konsep JOIN adalah instruksi kepada basis data untuk mencocokkan Foreign Key di tabel satu dengan Primary Key di tabel lainnya secara real-time.
Proses ini sering disebut sebagai Denormalisasi Virtual. Kita tidak mengubah struktur tabel secara permanen (tetap terpisah), tetapi untuk keperluan laporan, kita menyajikannya seolah-olah mereka adalah satu tabel raksasa yang lengkap.
Analogi Dunia Nyata:
Bayangkan Anda sedang melihat katalog di sebuah toko furnitur.
Tabel A (Produk): Berisi kode barang "Kursi-01" dan harga.
Tabel B (Gudang): Berisi kode barang "Kursi-01" dan nomor rak.
Jika Anda ingin tahu "Kursi seharga 500 ribu ada di rak nomor berapa?", Anda melakukan "Join" di otak Anda berdasarkan kesamaan kode barang "Kursi-01".
Agar proses penggabungan ini berhasil, ada dua hal yang harus tersedia:
nidn di tabel dosen dan nidn_wali di tabel mahasiswa).