Skip to content

deuscoco/SQL-part-6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

📘 Basis Data Part 6 – JOIN & Relasi Tabel


📌 Pendahuluan

Pada Basis Data Part 6, materi berfokus pada konsep relasi antar tabel dan teknik penggabungan tabel (JOIN) dalam SQL. JOIN sangat penting karena pada praktiknya data jarang disimpan dalam satu tabel saja, melainkan tersebar ke beberapa tabel yang saling berhubungan melalui key columns.

Dokumentasi ini disusun dalam format Markdown agar dapat langsung digunakan sebagai README di GitHub, serta telah dilengkapi dengan jawaban lengkap seluruh quiz sesuai modul.


🔑 Key Columns

Key column adalah kolom yang menjadi penghubung antar tabel karena memiliki data yang saling berelasi.

Contoh:

  • ms_item_warna.nama_barang
  • ms_item_kategori.nama_item

Kedua kolom tersebut memiliki banyak kecocokan nilai sehingga dapat digunakan untuk proses JOIN.


🔗 Menggabungkan Tabel dengan Key Columns

Jika dua tabel digabungkan menggunakan key column, maka hanya baris data yang memiliki nilai yang sama di kedua tabel yang akan ditampilkan.

Baris data yang tidak memiliki pasangan di tabel lain akan di-exclude.


🏷️ Prefix Nama Tabel

Saat melakukan JOIN, jika terdapat nama kolom yang sama di kedua tabel, maka wajib menggunakan prefix nama tabel untuk menghindari error ambiguitas.

Contoh:

SELECT tr_penjualan.kode_produk, ms_produk.kode_produk
FROM tr_penjualan
INNER JOIN ms_produk
ON tr_penjualan.kode_produk = ms_produk.kode_produk;

❌ Penggabungan Tanpa Kondisi (CROSS JOIN)

Jika dua tabel digabungkan tanpa kondisi, maka akan terjadi CROSS JOIN, yaitu hasil penggabungan berupa perkalian jumlah baris dari kedua tabel.

SELECT *
FROM ms_item_warna, ms_item_kategori;

✅ INNER JOIN

INNER JOIN hanya menampilkan data yang memiliki kecocokan di kedua tabel berdasarkan kondisi JOIN.

Sintaks INNER JOIN

SELECT kolom
FROM tabel1
INNER JOIN tabel2
ON kondisi;

Hasil INNER JOIN sama dengan penggunaan WHERE sebagai kondisi penggabungan.


📝 Quiz 1

Soal

Gabungkan tabel tr_penjualan dan ms_produk menggunakan dua query yang berbeda namun menghasilkan output yang sama seperti pada modul.


✅ Jawaban Quiz 1

🔹 Query 1 – INNER JOIN

SELECT
    tr_penjualan.kode_transaksi,
    tr_penjualan.kode_produk,
    ms_produk.nama_produk
FROM tr_penjualan
INNER JOIN ms_produk
ON tr_penjualan.kode_produk = ms_produk.kode_produk;

🔹 Query 2 – WHERE Clause

SELECT
    tr_penjualan.kode_transaksi,
    tr_penjualan.kode_produk,
    ms_produk.nama_produk
FROM tr_penjualan, ms_produk
WHERE tr_penjualan.kode_produk = ms_produk.kode_produk;

📝 Quiz 2

Soal

Gabungkan tabel tr_penjualan dan ms_produk dengan ketentuan:

  • Dari tabel tr_penjualan tampilkan:

    • kode_transaksi
    • kode_pelanggan
    • kode_produk
    • qty
  • Dari tabel ms_produk tampilkan:

    • nama_produk
    • harga
  • Tambahkan kolom total = harga × qty

  • Urutan kolom hasil:

    1. kode_transaksi
    2. kode_pelanggan
    3. kode_produk
    4. nama_produk
    5. harga
    6. qty
    7. total

✅ Jawaban Quiz 2

SELECT
    tr_penjualan.kode_transaksi,
    tr_penjualan.kode_pelanggan,
    tr_penjualan.kode_produk,
    ms_produk.nama_produk,
    ms_produk.harga,
    tr_penjualan.qty,
    ms_produk.harga * tr_penjualan.qty AS total
FROM tr_penjualan
INNER JOIN ms_produk
ON tr_penjualan.kode_produk = ms_produk.kode_produk;

✅ Penutup

Dengan memahami konsep JOIN, khususnya INNER JOIN, pengguna dapat menggabungkan data dari berbagai tabel berdasarkan relasi yang ada. Materi ini menjadi fondasi penting sebelum mempelajari jenis JOIN lain seperti LEFT JOIN, RIGHT JOIN, dan FULL JOIN.


🔗 Referensi

About

Materi SQL basis data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors