
Bayangin Budi dan Siti Pegang Buku Berbeda...
Bayangin Budi jadi panitia lomba. Dia pegang Buku Pendaftaran. Isinya: "Peserta Nomor 001 namanya Budi. Nomor 002 namanya Joko."
Di ruangan lain, Siti jadi juri. Dia pegang Buku Nilai. Isinya: "Peserta Nomor 001 dapat nilai 90. Nomor 002 dapat nilai 80."
Pak Kepala Sekolah minta laporan lengkap: "Saya mau daftar Nama Peserta beserta Nilainya!"
Kalau manual, Budi harus membacakan "Nomor 001 namanya Budi", lalu Siti mencari di bukunya "Oh, 001 nilainya 90". Mereka harus mencocokkannya satu per satu pakai pulpen. Kalau pesertanya ada 10.000 orang, mereka bakal gempor!
Masalahnya: Normalisasi Memecah Data
Di Database SQL, data memang sengaja dipisah-pisah ke dalam tabel yang berbeda agar rapi dan tidak memakan banyak tempat (disebut Normalisasi). Tabel Users hanya berisi Nama, Tabel Transaksi hanya berisi Harga dan user_id. Tapi di layar *Frontend*, pengunjung ingin melihat semuanya menyatu di satu tabel!
Nah, Di Sinilah Sihir 'SQL JOIN' Masuk!
Daripada *Backend* menarik data dua kali lalu menggabungkannya manual pakai *Javascript Array Map* (yang sangat boros memori), kita menyuruh Database SQL (MySQL/Postgres) untuk merajutnya di dalam mesin mereka menggunakan perintah INNER JOIN.
SELECT Users.nama, Transaksi.nilai
FROM Users
INNER JOIN Transaksi ON Users.id = Transaksi.user_id;Cara Mesin Membacanya:
- "Hei Database, tolong tempelkan Buku Budi dan Buku Siti!"
- "Gimana cara mencocokkannya?" (Tanya Database).
- "Cocokkan baris di mana Nomor ID di buku Budi (Primary Key) SAMA PERSIS dengan Nomor ID di buku Siti (Foreign Key)!"
Intinya: JOIN adalah fitur terkuat di Database Relasional. Ia menggabungkan kepingan *puzzle* yang berserakan di banyak tabel, dan mengirimkannya ke Frontend dalam bentuk satu paket data (JSON) yang rapi, mulus, dan siap dibaca *user*!
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates