Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio

SQL JOIN: Cara Menggabungkan Data dari Dua Tabel dengan Contoh Praktik

  • September 8, 2026
  • oleh Maulana Aldi Pradana

Dalam pengolahan data, informasi yang dibutuhkan sering kali tidak berada dalam satu tabel. Misalnya, sebuah toko memiliki tabel pelanggan yang berisi identitas pelanggan dan tabel transaksi yang berisi riwayat pembelian. Jika ingin mengetahui nama pelanggan beserta transaksi yang dilakukan, kedua tabel tersebut perlu digabungkan.

SQL JOIN digunakan untuk menggabungkan data dari dua tabel atau lebih berdasarkan kolom yang memiliki hubungan. Dengan JOIN, kita dapat mengambil informasi yang tersebar di beberapa tabel tanpa harus menggabungkan datanya secara manual.

Pada artikel ini, kita akan membuat dua tabel sederhana menggunakan SQLite, kemudian menggunakan SQL JOIN untuk menggabungkan data pelanggan dengan data transaksi.

📘 Apa yang Akan Dipelajari?

Pada artikel ini kamu akan mempelajari:

  • Pengertian SQL JOIN.
  • Mengapa data sering disimpan dalam beberapa tabel.
  • Cara membuat tabel sederhana menggunakan SQLite.
  • Cara menggunakan INNER JOIN.
  • Cara menentukan kolom yang digunakan sebagai penghubung.
  • Cara melihat hasil penggabungan data.
  • Perbedaan sederhana antara INNER JOIN dan LEFT JOIN.
  • Kesalahan yang sering dilakukan ketika menggunakan JOIN.
  • Penerapan JOIN dalam pekerjaan Data Analyst.

💡 Mengapa SQL JOIN Diperlukan?

Sebuah database biasanya tidak menyimpan seluruh informasi dalam satu tabel. Data dipisahkan ke dalam beberapa tabel agar lebih terstruktur dan mengurangi pengulangan data.

Sebagai contoh, sebuah toko dapat memiliki tabel pelanggan:

id_pelanggan | nama
-------------|---------
1            | Andi
2            | Budi
3            | Citra

Kemudian terdapat tabel transaksi:

id_transaksi | id_pelanggan | produk       | jumlah
-------------|--------------|--------------|-------
101          | 1            | Keyboard     | 2
102          | 2            | Mouse        | 1
103          | 1            | Headset      | 1

Perhatikan bahwa tabel transaksi tidak menyimpan nama pelanggan. Tabel tersebut hanya menyimpan id_pelanggan.

Jika kita ingin mengetahui siapa yang melakukan setiap transaksi, kita perlu menghubungkan kedua tabel tersebut.

Di sinilah SQL JOIN digunakan.

⚠️ Sebelum Memulai

Untuk mengikuti praktik ini, kamu membutuhkan:

  • Google Colab atau lingkungan Python lainnya.
  • Pemahaman dasar Python.
  • Pemahaman dasar SQL.
  • Pengetahuan sederhana mengenai tabel dan kolom.

Pada praktik kali ini kita menggunakan SQLite. SQLite adalah database ringan yang dapat dijalankan langsung tanpa membutuhkan server database terpisah.

Python juga memiliki library bawaan bernama sqlite3 yang dapat digunakan untuk menjalankan database SQLite.

🗃️ Membuat Database dan Tabel

Pertama, kita perlu membuat koneksi ke database SQLite.

Gunakan kode berikut:

import sqlite3

conn = sqlite3.connect("toko.db")
cursor = conn.cursor()

print("Database berhasil dibuat!")

Jika kode berhasil dijalankan, output yang muncul:

Database berhasil dibuat!

Kode sqlite3.connect() digunakan untuk membuat atau membuka database SQLite.

Selanjutnya, kita membuat tabel pelanggan dan transaksi.

cursor.execute("""
CREATE TABLE IF NOT EXISTS pelanggan (
    id_pelanggan INTEGER PRIMARY KEY,
    nama TEXT,
    kota TEXT
)
""")

cursor.execute("""
CREATE TABLE IF NOT EXISTS transaksi (
    id_transaksi INTEGER PRIMARY KEY,
    id_pelanggan INTEGER,
    produk TEXT,
    jumlah INTEGER
)
""")

conn.commit()

print("Tabel berhasil dibuat!")

Pada contoh tersebut terdapat dua tabel:

pelanggan digunakan untuk menyimpan informasi pelanggan.

transaksi digunakan untuk menyimpan informasi transaksi.

Kolom id_pelanggan menjadi penghubung antara kedua tabel tersebut.

📝 Memasukkan Data

Setelah tabel dibuat, kita masukkan data contoh.

pelanggan = [
    (1, "Andi", "Solo"),
    (2, "Budi", "Yogyakarta"),
    (3, "Citra", "Semarang")
]

transaksi = [
    (101, 1, "Keyboard", 2),
    (102, 2, "Mouse", 1),
    (103, 1, "Headset", 1),
    (104, 3, "Webcam", 2)
]

cursor.executemany(
    "INSERT INTO pelanggan VALUES (?, ?, ?)",
    pelanggan
)

cursor.executemany(
    "INSERT INTO transaksi VALUES (?, ?, ?, ?)",
    transaksi
)

conn.commit()

print("Data berhasil dimasukkan!")

Tanda ? digunakan sebagai placeholder untuk nilai yang akan dimasukkan ke dalam query.

Penggunaan placeholder seperti ini merupakan kebiasaan yang baik ketika bekerja dengan query SQL melalui Python karena membantu memisahkan struktur query dari nilai yang diberikan.

🔍 Melihat Data Sebelum JOIN

Sebelum menggabungkan tabel, kita dapat melihat isi masing-masing tabel.

Untuk melihat tabel pelanggan:

cursor.execute("SELECT * FROM pelanggan")

for row in cursor.fetchall():
    print(row)

Output:

(1, 'Andi', 'Solo')
(2, 'Budi', 'Yogyakarta')
(3, 'Citra', 'Semarang')

Kemudian lihat tabel transaksi:

cursor.execute("SELECT * FROM transaksi")

for row in cursor.fetchall():
    print(row)

Output:

(101, 1, 'Keyboard', 2)
(102, 2, 'Mouse', 1)
(103, 1, 'Headset', 1)
(104, 3, 'Webcam', 2)

Dari hasil tersebut terlihat bahwa informasi pelanggan dan transaksi masih berada pada tabel yang berbeda.

🔗 Apa Itu INNER JOIN?

INNER JOIN digunakan untuk mengambil data yang memiliki pasangan pada kedua tabel.

Bentuk dasar syntax-nya:

SELECT kolom
FROM tabel_pertama
INNER JOIN tabel_kedua
ON tabel_pertama.kolom = tabel_kedua.kolom;

Bagian ON digunakan untuk menentukan kondisi hubungan antara kedua tabel.

Dalam kasus kita, kolom penghubungnya adalah id_pelanggan.

Kita dapat menjalankan query berikut:

query = """
SELECT
    pelanggan.nama,
    pelanggan.kota,
    transaksi.produk,
    transaksi.jumlah
FROM pelanggan
INNER JOIN transaksi
ON pelanggan.id_pelanggan = transaksi.id_pelanggan
"""

cursor.execute(query)

for row in cursor.fetchall():
    print(row)

Hasilnya:

('Andi', 'Solo', 'Keyboard', 2)
('Budi', 'Yogyakarta', 'Mouse', 1)
('Andi', 'Solo', 'Headset', 1)
('Citra', 'Semarang', 'Webcam', 2)

Sekarang informasi dari kedua tabel sudah dapat ditampilkan dalam satu hasil query.

Contohnya, data transaksi dengan id_pelanggan = 1 dapat dihubungkan dengan data pelanggan yang memiliki ID yang sama. Hasilnya menunjukkan bahwa transaksi tersebut dilakukan oleh Andi.

📊 Membuat Hasil JOIN Lebih Mudah Dibaca

Jika jumlah data semakin banyak, hasil query akan lebih mudah dianalisis jika ditampilkan dalam bentuk DataFrame.

Kita dapat menggunakan Pandas:

Mau Kuasai SQL JOIN: Cara Menggabungkan Data dari Dua Tabel dengan Contoh Praktik Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

import pandas as pd

query = """
SELECT
    pelanggan.nama,
    pelanggan.kota,
    transaksi.produk,
    transaksi.jumlah
FROM pelanggan
INNER JOIN transaksi
ON pelanggan.id_pelanggan = transaksi.id_pelanggan
"""

df = pd.read_sql_query(query, conn)

print(df)

Output:

    nama        kota     produk    jumlah
0   Andi        Solo     Keyboard      2
1   Budi        Yogyakarta Mouse         1
2   Andi        Solo     Headset       1
3   Citra       Semarang  Webcam        2

Dengan cara ini, hasil query SQL dapat langsung digunakan kembali untuk proses analisis menggunakan Pandas.

🆚 INNER JOIN dan LEFT JOIN

Selain INNER JOIN, terdapat jenis JOIN lain yang sering digunakan, salah satunya LEFT JOIN.

Perbedaannya secara sederhana:

Jenis JOINHasil
INNER JOINHanya menampilkan data yang memiliki pasangan pada kedua tabel
LEFT JOINMenampilkan seluruh data dari tabel sebelah kiri dan pasangan yang tersedia dari tabel kanan

Sebagai contoh, kita dapat menggunakan LEFT JOIN:

query = """
SELECT
    pelanggan.nama,
    transaksi.produk,
    transaksi.jumlah
FROM pelanggan
LEFT JOIN transaksi
ON pelanggan.id_pelanggan = transaksi.id_pelanggan
"""

df = pd.read_sql_query(query, conn)

print(df)

LEFT JOIN berguna ketika kita ingin memastikan seluruh data dari tabel utama tetap muncul meskipun belum memiliki data pasangan.

Misalnya terdapat pelanggan yang belum pernah melakukan transaksi. Dengan INNER JOIN, pelanggan tersebut tidak akan muncul dalam hasil. Dengan LEFT JOIN, pelanggan tetap dapat ditampilkan.

Pemilihan jenis JOIN harus disesuaikan dengan pertanyaan yang ingin dijawab.

🧪 Mini Praktik

Sekarang coba ubah query sebelumnya untuk hanya menampilkan pelanggan yang membeli produk tertentu.

Misalnya kita ingin mencari transaksi untuk produk Keyboard.

query = """
SELECT
    pelanggan.nama,
    transaksi.produk,
    transaksi.jumlah
FROM pelanggan
INNER JOIN transaksi
ON pelanggan.id_pelanggan = transaksi.id_pelanggan
WHERE transaksi.produk = 'Keyboard'
"""

cursor.execute(query)

for row in cursor.fetchall():
    print(row)

Output:

('Andi', 'Keyboard', 2)

Dari query tersebut kita menggunakan dua konsep sekaligus, yaitu JOIN untuk menggabungkan tabel dan WHERE untuk melakukan filter.

Cobalah mengganti Keyboard menjadi Mouse, Headset, atau Webcam untuk melihat hasil lainnya.

💼 Penerapan SQL JOIN dalam Dunia Kerja

Dalam pekerjaan Data Analyst, penggunaan JOIN sangat umum karena data perusahaan biasanya terbagi ke dalam berbagai tabel.

Contohnya pada sistem penjualan dapat terdapat:

customers
products
orders
order_details
payments

Seorang Data Analyst mungkin mendapatkan pertanyaan:

Siapa pelanggan dengan transaksi terbanyak?

Untuk menjawab pertanyaan tersebut, data pelanggan perlu dihubungkan dengan data transaksi.

Contoh lainnya:

Produk apa yang paling banyak dibeli oleh pelanggan dari kota tertentu?

Pertanyaan tersebut dapat membutuhkan data dari tabel pelanggan, transaksi, dan produk sekaligus.

Dengan JOIN, berbagai sumber data tersebut dapat dikombinasikan sebelum dilakukan analisis lebih lanjut.

❌ Kesalahan yang Sering Dilakukan Pemula

Beberapa kesalahan yang sering terjadi ketika menggunakan SQL JOIN antara lain:

  • Menggunakan kolom penghubung yang salah.
  • Tidak memahami hubungan antar tabel.
  • Lupa menuliskan kondisi ON.
  • Menggunakan INNER JOIN ketika sebenarnya membutuhkan LEFT JOIN.
  • Menghasilkan data yang berlipat karena hubungan antar tabel tidak dipahami.
  • Menggabungkan tabel tanpa mengetahui tujuan analisis.
  • Tidak memeriksa hasil JOIN setelah query dijalankan.

Salah satu kebiasaan yang baik adalah memahami struktur tabel terlebih dahulu sebelum menulis query JOIN.

⭐ Tips dan Best Practice

Beberapa tips yang dapat diterapkan ketika menggunakan SQL JOIN:

  1. Kenali struktur tabel sebelum membuat query.
  2. Cari tahu kolom apa yang menjadi penghubung antar tabel.
  3. Gunakan nama tabel atau alias agar query lebih mudah dibaca.
  4. Jangan langsung menggunakan SELECT * untuk query analisis yang kompleks.
  5. Periksa jumlah baris sebelum dan sesudah JOIN.
  6. Pastikan jenis JOIN sesuai dengan kebutuhan analisis.
  7. Uji query menggunakan dataset kecil sebelum menggunakannya pada dataset besar.

Untuk query yang lebih kompleks, penggunaan alias juga dapat membuat syntax menjadi lebih ringkas.

Contohnya:

SELECT
    p.nama,
    t.produk,
    t.jumlah
FROM pelanggan AS p
INNER JOIN transaksi AS t
ON p.id_pelanggan = t.id_pelanggan;

p merupakan alias untuk tabel pelanggan, sedangkan t merupakan alias untuk tabel transaksi.

🔗 Hubungannya dengan Pembelajaran Sebelumnya

Pada pembelajaran sebelumnya, kita telah menggunakan Python dan Pandas untuk melakukan analisis terhadap data. Salah satu tahap sebelumnya adalah mempelajari korelasi antar kolom menggunakan Pandas.

SQL JOIN menjadi penting karena dalam kondisi nyata, data yang akan dianalisis tidak selalu berada dalam satu DataFrame atau satu file.

Alur sederhananya dapat digambarkan sebagai berikut:

Data dari Database
        ↓
Beberapa Tabel
        ↓
SQL JOIN
        ↓
Data yang Digabungkan
        ↓
Pandas / Python
        ↓
Analisis dan Insight

Dengan memahami JOIN, kita mulai belajar bagaimana mengambil data dari struktur database yang lebih realistis sebelum masuk ke tahap analisis.

🎯 Kesimpulan

SQL JOIN merupakan salah satu konsep penting dalam pengolahan data menggunakan SQL. JOIN memungkinkan kita menggabungkan informasi dari beberapa tabel berdasarkan kolom yang memiliki hubungan.

Dalam praktik ini, kita membuat database SQLite sederhana yang terdiri dari tabel pelanggan dan transaksi. Kedua tabel tersebut kemudian digabungkan menggunakan INNER JOIN berdasarkan kolom id_pelanggan.

Kita juga mempelajari penggunaan LEFT JOIN serta mencoba menggabungkan JOIN dengan WHERE untuk melakukan filter terhadap hasil query.

Hal yang paling penting bukan hanya menghafalkan syntax JOIN, tetapi memahami hubungan antar tabel dan menentukan jenis JOIN berdasarkan kebutuhan analisis.

Dengan memahami konsep ini, kita memiliki dasar yang lebih baik untuk mengolah database dan menjawab pertanyaan analisis yang melibatkan data dari beberapa tabel.

✍️ Penulis

Ditulis oleh Maulana Aldi Pradana.

Mau Kuasai SQL JOIN: Cara Menggabungkan Data dari Dua Tabel dengan Contoh Praktik Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

Tags: analisis dataBelajar AQLdata analysisData AnalyticsDatabaseDatabase SQLedusoftgoogle colabpandaspythonsqlSQL JOINSQLite
Previous Post
Next Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Cara Membuat GitHub Pages untuk Portofolio Data Analyst
  • Your Data, Your Rules: Mengapa Self-Hosted Cloud Storage Penting di 2026?
  • Cara Deploy Notebook ke GitHub dengan Dokumentasi Lengkap
  • Menentukan Perangkat Jaringan Bermasalah Menggunakan SQL
  • Navbar Berantakan di HP? Ini Rahasia Bikin Navbar Responsive Auto Rapi Pakai Flexbox

Arsip

  • September 2026
  • August 2026
  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP python security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2026 | Privacy Policy | Site Map | Portfolio Magang | Butuh tim kami langsung yang mengerjakan? Lihat layanan implementasi →

All Right Reserved

WhatsApp us