Laporan Praktikum Basis Data 5: Relasi Antar Tabel (SQL JOIN)
databasesLaporan Praktikum Basis Data 5: Relasi Antar Tabel (SQL JOIN)
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 JOINsecara langsung, operasi ini diimplementasikan dengan menggabungkan perintahLEFT JOINdanRIGHT JOINmenggunakan operatorUNION.
Metodologi
Alat dan Bahan
Dalam melaksanakan praktikum ini, diperlukan beberapa perangkat keras dan perangkat lunak sebagai berikut:
- Laptop dengan koneksi internet
- Sistem Operasi Windows
- Aplikasi Paket Web server XAMPP
- Windows Powershel
- Medium
- GitHub
Langkah Kerja
- Mengaktifkan service MySQL melalui XAMPP Control Panel.
- Membuka command prompt, terminal, atau antarmuka phpMyAdmin untuk mengeksekusi SQL.
- Membuat database baru dengan format
DBMS11-[NIM]. - Membuat tabel
TbPegawaidanTbGajisesuai dengan spesifikasi tipe data pada modul. - Melakukan insert data pegawai dan gaji ke masing-masing tabel.
- Merelasikan tabel dan mengeksekusi perintah operasi Join (INNER, LEFT, RIGHT, FULL) menggunakan perintah
SELECT. - 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.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
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
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
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
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.
- GitHub Repositori: https://github.com/asfadani/asfadani_kuliah.git
- Referensi: Ahmad Ngroho. Modul 5— RELASI ANTAR TABEL. Universitas Tidar Magelang
메타데이터
- 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