← Back to list

Laporan Praktikum Basis Data 5: Relasi Antar Tabel (SQL JOIN)

Muhammad Fauza Asfadani · 2026-04-07 09:49 · 1 claps · 4.6 min read
#basis-data #basis-data-relasional #teknologi-informasi #universitas-tidar
Open on Medium ↗

databasesLaporan Praktikum Basis Data 5: Relasi Antar Tabel (SQL JOIN)

Photo by GuerrillaBuzz on Unsplash

Photo by GuerrillaBuzz on Unsplash

Nama Lengkap: Muhammad Fauza Asfadani

NPM: 2505060011

Prodi: Teknologi Informasi 25

Kelas: Rombel 1 Praktikum Basis Data

Pendahuluan

Join merupakan salah satu konsep esensial dalam SQL yang berfungsi untuk menggabungkan data dari dua atau lebih tabel berdasarkan kondisi relasi yang telah ditentukan. Melalui penggunaan join, pengguna dapat menghasilkan keluaran query yang lebih terperinci dengan merangkum informasi dari berbagai tabel secara bersamaan.

Berdasarkan hasil data yang ditampilkan, operasi SQL Join terbagi menjadi empat jenis utama, yaitu:

  • INNER JOIN: Operasi ini menggabungkan baris dari dua tabel berdasarkan kondisi yang saling sesuai di kedua tabel tersebut. Hasil dari Inner Join sangat eksklusif, artinya hanya data yang memiliki kecocokan (irisan) di kedua tabel yang akan ditampilkan.
  • LEFT JOIN: Operasi ini akan mengambil dan mengamankan semua baris data dari tabel kiri (tabel pertama yang ditulis dalam klausa JOIN). Baris-baris tersebut kemudian digabungkan dengan data yang cocok dari tabel kanan. Jika ada data di tabel kiri yang tidak memiliki padanan di tabel kanan, maka data tersebut tetap ditampilkan dan nilai kolom untuk tabel kanan akan diisi dengan NULL.
  • RIGHT JOIN: Memiliki prinsip kerja kebalikan dari Left Join. Operasi ini memastikan seluruh baris dari tabel kanan (tabel kedua) tetap termasuk di dalam hasil akhir. Data tersebut lalu dicocokkan dengan baris dari tabel kiri. Jika tidak ditemukan kecocokan di tabel kiri, maka kekosongan tersebut akan diisi dengan nilai NULL.
  • FULL JOIN: Operasi ini menghasilkan gabungan paling lengkap, di mana seluruh baris dari kedua belah tabel akan ditampilkan. Full Join akan mencocokkan data yang sesuai, dan menyertakan data yang tidak memiliki kecocokan di tabel lainnya. Sama seperti sebelumnya, jika tidak ada kecocokan, nilai NULL akan mengisi kolom yang kosong. Khusus pada RDBMS seperti MySQL yang tidak menyediakan sintaks FULL JOIN secara langsung, operasi ini diimplementasikan dengan menggabungkan perintah LEFT JOIN dan RIGHT JOIN menggunakan operator UNION.

Metodologi

Alat dan Bahan

Dalam melaksanakan praktikum ini, diperlukan beberapa perangkat keras dan perangkat lunak sebagai berikut:

  1. Laptop dengan koneksi internet
  2. Sistem Operasi Windows
  3. Aplikasi Paket Web server XAMPP
  4. Windows Powershel
  5. Medium
  6. GitHub

Langkah Kerja

  1. Mengaktifkan service MySQL melalui XAMPP Control Panel.
  2. Membuka command prompt, terminal, atau antarmuka phpMyAdmin untuk mengeksekusi SQL.
  3. Membuat database baru dengan format DBMS11-[NIM].
  4. Membuat tabel TbPegawai dan TbGaji sesuai dengan spesifikasi tipe data pada modul.
  5. Melakukan insert data pegawai dan gaji ke masing-masing tabel.
  6. Merelasikan tabel dan mengeksekusi perintah operasi Join (INNER, LEFT, RIGHT, FULL) menggunakan perintah SELECT.
  7. Mendokumentasikan setiap query dan membandingkan output yang dihasilkan.

Hasil dan Analisis

1. Pembuatan Database dan Tabel

Membuat Database dan Tabel:

CREATE DATABASE DBMS11_NIM;
USE DBMS11_2505060011;

CREATE TABLE TbPegawai (
    nip VARCHAR(5) PRIMARY KEY,
    nama VARCHAR(25),
    tgl_lahir DATE,
    Kota VARCHAR(15),
    thn_masuk YEAR(4),
    gol INT(1)
);

CREATE TABLE TbGaji (
    Gol INT(1),
    Gapok INT(12)
);

Memasukkan Data (Insert):

INSERT INTO TbPegawai VALUES 
('001', 'Ahmad Burhanuddin', '1990-12-12', 'Bandung', 2010, 3),
('002', 'Amin Imsyorry', '1989-12-02', 'Ciamis', 2009, 2),
('003', 'Budhy Bungaox', '1989-01-20', 'Tasikmalaya', 2011, 4),
('004', 'Zulkarnaen', '1991-02-20', 'Bandung', 2009, 1),
('005', 'Dewi Sudewa', '1990-12-02', 'Bogor', 2009, 1),
('006', 'Ina Nurlian', '1993-08-09', 'Sumedang', 2011, 4),
('007', 'Cheppy Chardut', '1992-07-09', 'Garut', 2011, 4),
('008', 'Dodong M', '1990-07-10', 'Bandung', 2010, 3),
('009', 'Gandung P', '1990-06-25', 'Bogor', 2009, 2),
('010', 'Agus Wisman', '1993-10-17', 'Garut', 2010, 3);

INSERT INTO TbGaji (Gol, Gapok) VALUES 
(1, 1500000),
(2, 2000000),
(3, 3500000),
(4, 5000000);

Gambar 1.1 Hasil Tabel TbPegawai

Gambar 1.1 Hasil Tabel TbPegawai

Gambar 1.2 Hasil Tabel TbGaji

Gambar 1.2 Hasil Tabel TbGaji

2. Implementasi SQL JOIN

Berikut adalah pengujian relasi antara TbPegawai dan TbGaji berdasarkan kolom gol

A. Inner join

select * from TbPegawai inner join TbGaji on TbPegawai.Gol = TbGaji.Gol;

Gambar 2.1 Hasil INNER JOIN

Gambar 2.1 Hasil INNER JOIN

Analisis: Perintah ini berhasil menampilkan 10 baris data pegawai berserta nominal gajinya. Karena seluruh pegawai pada TbPegawai memiliki nilai gol (1, 2, 3, atau 4) yang terdaftar di dalam TbGaji, maka tidak ada data pegawai yang tereliminasi dari hasil query.

B. Left join

select * from TbPegawai left join TbGaji on TbPegawai.Gol = TbGaji.Gol;

Gambar 2.2 Hasil LEFT JOIN

Gambar 2.2 Hasil LEFT JOIN

Analisis: Output yang dihasilkan identik dengan Inner Join. Hal ini terjadi karena seluruh data pada tabel kiri (TbPegawai) memiliki pasangan yang valid (cocok) di tabel kanan (TbGaji). Jika ada pegawai dengan golongan '5' (yang tidak ada di TbGaji), barulah kolom Gapok akan bernilai NULL.

C. Right join

select * from TbPegawai right join TbGaji on TbPegawai.Gol = TbGaji.Gol;

Gambar 2.3 Hasil RIGHT JOIN

Gambar 2.3 Hasil RIGHT JOIN

Analisis: Hasilnya juga menampilkan 10 baris yang sama. Seluruh nilai Gol pada tabel kanan (TbGaji) yaitu 1, 2, 3, dan 4 telah digunakan minimal oleh satu orang pegawai di tabel kiri (TbPegawai), sehingga tidak ada baris dari tabel kanan yang menampilkan NULL pada informasi pegawai.

D. Full join

select * from TbPegawai left join TbGaji on TbPegawai.Gol = TbGaji.Gol
union all
select * from TbPegawai right join TbGaji on TbPegawai.Gol = TbGaji.Gol;

Gambar 2.4 Hasil FULL JOIN

Gambar 2.4 Hasil FULL JOIN

Analisis: Karena MySQL tidak mendukung sintaks FULL JOIN secara langsung, pendekatan menggunakan UNION ALLdari hasil LEFT JOIN dan RIGHT JOIN digunakan. Hasilnya menggabungkan semua entitas yang beririsan maupun tidak dari kedua tabel.

Kesimpulan

Berdasarkan praktikum yang telah dilakukan, dapat disimpulkan bahwa penggunaan perintah JOIN sangat esensial untuk mengekstraksi informasi yang tersebar di tabel yang berbeda (seperti identitas pegawai dan detail besaran gaji). Pemilihan antara Inner, Left, Right, atau Full Join bergantung pada kebutuhan integritas data. Pada dataset praktikum ini, hasil keempat join terlihat identik dikarenakan data sangat terstruktur dan setiap referensi golongan (gol) di TbPegawai memiliki padanan nilai yang pasti di TbGaji, sehingga tidak memunculkan baris yang bernilai NULL.

Referensi dan Lampiran

Sebagai bagian dari transparansi dan dokumentasi teknis, seluruh kode sumber (query) yang digunakan dalam praktikum ini telah diunggah ke repositori GitHub. Hal ini juga bertujuan untuk memudahkan pengelolaan versi (version control) di masa mendatang.


메타데이터
post_id
a3f716cf692c
slug
laporan-praktikum-basis-data-5-relasi-antar-tabel-sql-join-a3f716cf692c
url
https://medium.com/@fauza.asfadani/laporan-praktikum-basis-data-5-relasi-antar-tabel-sql-join-a3f716cf692c
canonical_url
https://medium.com/@fauza.asfadani/laporan-praktikum-basis-data-5-relasi-antar-tabel-sql-join-a3f716cf692c
author_url
https://medium.com/@fauza.asfadani
status
ok
fetched_at
2026-07-15 08:17:25