Anda di halaman 1dari 9

A.

TUJUAN
Diharapkan mahasiswa mampu :
1. Mahasiswa mampu mengenal dan memahami query MySQL
2. Mahasiswa mampu memanipulasi data dalam basis data MySQL.

B. ALAT DAN BAHAN


1. Personal Computer
2. Xampp, MySQL server

C. TEORI SINGKAT

Proses update dan delete record harus ditandai dengan adanya Foreign Key yang menghubungkan
antar tabel. Proses delete dan update akan terjadi jika masing-masing tabel yang berelasi
didefinisikan dalam struktur On Delete Cascade dan On Update Cascade.

JOIN adalah parameter yang digunakan untuk men-generate records dari dua atau lebih tabel,
untuk melihat sinkronisasi record yang terdapat pada masing-masing tabel. Syarat utamanya
adalah antara tabel yang berelasi harus memiliki penghubung yaitu Primary Key dan Foreign Key.
Parameter JOIN tersebut terdiri dari Inner Join, Right Join dan Left Join.

D. LANGKAH KERJA 1. Update Record Tabel Dengan


Foreign Key
Tabel barang berelasi dengan tabel gudang. Update data akan dilakukan pada tabel barang
(T.Master), data yang sama juga akan ter-update pada tabel gudang, jika foreign key yang
didefinisikan pada tabel gudang benar.!

Tabel Barang (sebelum update)


+-------------+----------------
+-------+ | kode_barang | nama_barang
| harga | +-------------
+----------------+-------+ | BJ01
| Bedak Johnson | 5400 |
| BR02 | Biscuit Roma | 5600 |
| SP01 | Shampo Pantene | 16700 |
| SR03 | Sari Roti | 1500 |
| SS02 | Shampo Sunsilk | 17000
| +-------------+----------------
+-------+ 5 rows in set (0.00 sec)

Tabel Gudang (sebelum update)


+----------+-------------+--------
+--------+ | kode_rak | kode_barang |
jumlah | satuan | +----------
+-------------+--------+--------+
| RB01 | BJ01 | 15 | dus |
| RM01 | BR02 | 10 | kotak |
| RS01 | SP01 | 15 | dus |
+----------+-------------+--------+--------+
3 rows in set (0.00 sec)

Update barang menggunakan query sebagai berikut:

mysql> update barang set kode_barang='BJ5' where


kode_barang='BJ01';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Hasilnya:

Tabel Barang (Setelah update)


+-------------+----------------
+-------+ | kode_barang | nama_barang
| harga | +-------------
+----------------+-------+
| BJ5 | Bedak Johnson | 5400
| | BR02 | Biscuit Roma |
5600 |
| SP01 | Shampo Pantene | 16700 |
| SR03 | Sari Roti | 1500 |
| SS02 | Shampo Sunsilk | 17000 | +-------------
+----------------+-------+
5 rows in set (0.00 sec)

Tabel Gudang (setelah update)


+----------+-------------+--------
+--------+ | kode_rak | kode_barang |
jumlah | satuan | +----------
+-------------+--------+--------+ | RB01
| BJ5 | 15 | dus |
| RM01 | BR02 | 10 | kotak |
| RS01 | SP01 | 15 | dus | +----------
+-------------+--------+--------+
3 rows in set (0.00 sec)
2. INNER JOIN

Inner Join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengan
syarat di belakang ON (tidak boleh null), dengan kata lain semua data dari tabel kiri mendapat
pasangan data dari tabel sebelah kanan.

Misalnya relasi atara tabel barang dengan gudang yang dihubungkan oleh field
kode_barang, karena merupakan Primary Key di tabel barang dan Foreign Key di tabel
gudang.
Dalam teknik INNER JOIN hasil yang ditampilkan hanya record yang memiliki kode_barang
yang sama di kedua tabel tersebut. Apabila terdapat kode_barang (barang) yang tidak
berpasangan dengan kode_barang (gudang), maka tidak akan ditampilkan.

Contoh query Inner Join:


mysql> select nama_barang, harga, satuan, jumlah from barang
INNER
JOIN gudang ON barang.kode_barang=gudang.kode_barang;
+----------------+-------+--------
+--------+ | nama_barang | harga |
satuan | jumlah | +----------------
+-------+--------+--------+
| Bedak Johnson | 5400 | dus | 15
| | Biscuit Roma | 5600 | kotak |
10 | | Shampo Pantene | 16700 | dus |
15 | +----------------+-------+--------
+--------+
3 rows in set (0.00 sec)

Query hanya menghasilkan 3 record. Sementara terdapat 5 record pada tabel barang.

3. RIGHT JOIN
Buat dan eksekusi query sebagai berikut:
mysql> select nama_dosen, hari,jam,ruang from dosen right
join jadwal on dosen.kode_dosen=jadwal.kode_dosen;
+------------+--------+-------------+-------+ |
nama_dosen | hari | jam | ruang | +------------
+--------+-------------+-------+ | Fairuz | Selasa |
10:00-12:00 | ETI02 |
| Dagadul | Rabu | 08:00-10:00 | ETI02 |
| Dagadul | Selasa | 10:00-12:00 | ETI01 |
| Thamrin | Selasa | 08:00-10:00 | ETI01 | +------------
+--------+-------------+-------+
4 rows in set (0.00 sec)

mysql> select nama_matakuliah, sks from matakuliah right join


jadwal on matakuliah.kode_matakuliah=jadwal.kode_matakuliah;
+-------------------+------+
| nama_matakuliah | sks |
+-------------------
+------+ | Dasar Algoritma
| 2 |
| Dasar Algoritma | 2 |
| Sistem Basis Data | 3 |
| Struktur Data | 2 | +-------------------
+------+
4 rows in set (0.00
sec)
Amati hasil query!
4. LEFT JOIN
Buat dan eksekusi query sebagai berikut:
mysql> select nama_dosen, hari,jam,ruang from dosen left
join jadwal on dosen.kode_dosen=jadwal.kode_dosen;
+------------+--------+-------------+-------+ |
nama_dosen | hari | jam | ruang |
+------------+--------+-------------+-------+ | Dagadul
| Rabu | 08:00-10:00 | ETI02 |
| Dagadul | Selasa | 10:00-12:00 | ETI01 |
| Thamrin | Selasa | 08:00-10:00 | ETI01 |
| Fairuz | Selasa | 10:00-12:00 |
ETI02 | | Budiman | NULL | NULL
| NULL | +------------+--------
+-------------+-------+
5 rows in set (0.00 sec)

mysql> select nama_matakuliah, sks from matakuliah left join


jadwal on matakuliah.kode_matakuliah=jadwal.kode_matakuliah;
+-------------------+------+
| nama_matakuliah | sks |
+-------------------
+------+ | Dasar Algoritma
| 2 |
| Dasar Algoritma | 2 |
| Sistem Basis Data | 3 |
| Struktur Data | 2
| | Bahasa Indonesia |
2 |
+-------------------+------+
5 rows in set (0.00 sec)

Amati hasil query!

E. EVALUASI/KASUS

1. Cermati perbedaan yang dihasilkan untuk query yang menggunakan Right Join dengan Left
Join;
2. Buatlah query yang menggunakan Right Join atau Left Join untuk menampilkan informasi:
| Nama Matakuliah | Sks | Hari | Jam | Ruang |

3. Buatlah query yang menggunakan Right Join atau Left Join untuk menampilkan informasi
sebagai berikut:
| Nama Mahasiswa | Nama Matakuliah | Nilai |

4. Jika salah satu dari soal nomor 2 atau 3 Anda kerjakan dengan Right Join, maka anda juga
harus mengerjakannya dengan Left Join. Jelaskan perbedaan hasil query yang diperoleh.
Perbedaan antara hasil query yang diperoleh dari RIGHT JOIN dan
LEFT JOIN terletak pada bagaimana penggabungan atau penyatuan
(join) dilakukan antara dua tabel yang berbeda.
1. **LEFT JOIN**:

- Dalam LEFT JOIN, semua baris dari tabel yang disebut


pertama dalam pernyataan JOIN (tabel kiri) akan ditampilkan,
bahkan jika tidak ada nilai yang sesuai di tabel kedua (tabel
kanan).

- Jika tidak ada nilai yang sesuai di tabel kedua, kolom


untuk tabel kedua akan diisi dengan nilai NULL.

- LEFT JOIN memastikan bahwa semua entri dari tabel yang


ditentukan pertama (tabel kiri) akan tetap terwakili dalam
hasil.

2. **RIGHT JOIN**:

- Dalam RIGHT JOIN, semua baris dari tabel yang disebut


kedua dalam pernyataan JOIN (tabel kanan) akan ditampilkan,
bahkan jika tidak ada nilai yang sesuai di tabel pertama (tabel
kiri).

- Jika tidak ada nilai yang sesuai di tabel pertama, kolom


untuk tabel pertama akan diisi dengan nilai NULL.

- RIGHT JOIN memastikan bahwa semua entri dari tabel yang


ditentukan kedua (tabel kanan) akan tetap terwakili dalam
hasil.

Secara konseptual, LEFT JOIN dan RIGHT JOIN adalah kebalikan


satu sama lain dalam hal ini. Namun, dalam kasus tertentu,
hasil dari RIGHT JOIN dan LEFT JOIN bisa berbeda karena urutan
tabel yang digabungkan atau struktur data yang mendasarinya.
Dalam beberapa kasus, LEFT JOIN dan RIGHT JOIN mungkin
mengembalikan hasil yang sama, terutama jika urutan tabel yang
digabungkan tidak relevan.
KESIMPULAN

Dalam praktikum basis data, penggunaan JOIN merupakan


konsep penting yang memungkinkan penggabungan data dari
dua atau lebih tabel berbeda dalam sebuah query.
Berikut adalah kesimpulan dari praktikum basis data
tentang JOIN:

1. **JOIN memungkinkan penggabungan data**: JOIN


digunakan untuk menggabungkan data dari dua atau lebih
tabel berdasarkan kriteria tertentu, seperti kunci
primer dan kunci asing.

2. **Tipe-tipe JOIN**: Ada beberapa jenis JOIN yang


umum digunakan, termasuk INNER JOIN, LEFT JOIN, RIGHT
JOIN, dan FULL JOIN. Setiap jenis JOIN memiliki cara
kerja yang berbeda dan menghasilkan hasil yang berbeda.

3. **INNER JOIN**: INNER JOIN mengembalikan baris yang


memiliki nilai yang cocok di kedua tabel yang
digabungkan. Ini menghasilkan hasil yang hanya berisi
baris yang memiliki nilai yang sesuai di kedua tabel.

4. **LEFT JOIN**: LEFT JOIN mengembalikan semua baris


dari tabel di sebelah kiri dari pernyataan JOIN, dan
baris-baris yang cocok dari tabel di sebelah kanan.
Jika tidak ada nilai yang cocok di tabel di sebelah
kanan, nilai-nilai tersebut akan diisi dengan NULL.
5. **RIGHT JOIN**: RIGHT JOIN adalah kebalikan dari
LEFT JOIN. Ini mengembalikan semua baris dari tabel di
sebelah kanan dari pernyataan JOIN, dan baris-baris
yang cocok dari tabel di sebelah kiri. Jika tidak ada
nilai yang cocok di tabel di sebelah kiri, nilai-nilai
tersebut akan diisi dengan NULL.

6. **FULL JOIN**: FULL JOIN mengembalikan semua baris


dari kedua tabel yang digabungkan, bahkan jika tidak
ada nilai yang cocok. Jika tidak ada nilai yang cocok,
nilai-nilai tersebut akan diisi dengan NULL.

7. **Kemungkinan kombinasi**: Dalam beberapa kasus,


JOIN dapat digunakan untuk menggabungkan lebih dari dua
tabel. Penggunaan JOIN yang tepat dan pemahaman tentang
hubungan antara tabel sangat penting untuk menghasilkan
hasil yang akurat.

Pemahaman tentang konsep JOIN dalam basis data penting


untuk menggabungkan data dari berbagai sumber dan
menghasilkan hasil yang relevan dan bermakna dalam
praktikum atau proyek basis data.

Anda mungkin juga menyukai