Back to blog
Database

SQL JOIN: Cara Budi dan Siti Menggabungkan Dua Puzzle yang Terpisah

Budi cuma tahu ID Pembeli, Siti cuma tahu Nama Barangnya. Bagaimana cara MySQL menyatukan data yang terpisah di tabel berbeda dalam sedetik?

super admin·19 Juli 2026·2 min read
SQL JOIN: Cara Budi dan Siti Menggabungkan Dua Puzzle yang Terpisah
Article Content

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