# PERTEMUAN 10
## OPERASI JOIN
### Live Preview
- [Click Me](https://hackmd.io/@novaardiansyah/r1xgoYx4p)
## TUGAS PRAKTIKUM
### Soal A.
```sq=
create database koperasi;
use koperasi;
create table member(Id_member varchar(15), Nama char(20), Alamat char(20), primary key (Id_member));
desc member;
```
### Soal B.
```sq=
insert into member values('1111', 'Anang', 'Cipondoh');
insert into member values('1112', 'Budi', 'Ciledug');
insert into member values('1113', 'Cici', 'Cinangka');
insert into member values('1114', 'Darma', 'Cikupa');
insert into member values('1115', 'Endang', 'Cipondoh');
```
### Soal C.
```sq=
create table pinjam(Nota varchar(15), Id_member varchar(20), Tanggal date, Jumlah char(10), primary key (Nota));
desc pinjam;
```
### Soal D.
```sq=
insert into pinjam values('A100', '1111', '2014-02-04', '5000000');
insert into pinjam values('B100', '1113', '2014-02-06', '7000000');
insert into pinjam values('C100', '1112', '2014-02-07', '4000000');
insert into pinjam values('D100', '1115', '2014-02-09', '9000000');
```
### Soal E.
```sq=
select * from member inner join pinjam using(Id_member);
```
### Soal F.
```sq=
select a.Id_member, a.nama, a.alamat, b.nota, b.tanggal, b.jumlah from member a inner join pinjam b on (a.Id_member = b.Id_member);
```
### Soal G.
```sq=
select a.Id_member, a.nama, a.alamat, b.nota, b.tanggal, b.jumlah from member a left outer join pinjam b on (a.Id_member = b.Id_member);
```
### Soal H.
```sq=
select a.Id_member, a.nama, a.alamat, b.nota, b.tanggal, b.jumlah from member a left outer join pinjam b on (a.Id_member = b.Id_member) where b.jumlah is not null;
```
### Soal I.
```sq=
select a.Id_member, a.nama, a.alamat, b.nota, b.tanggal, b.jumlah from member a right outer join pinjam b on (a.Id_member = b.Id_member);
```
### Soal J.
```sq=
select nama, jumlah from member cross join pinjam;
```
### Soal K.
```sq=
select Id_member, nama, alamat from member union select nota, tanggal, jumlah from pinjam;
```
### Soal L.
```sq=
select * from pinjam where nota = (select max(nota) from pinjam);
```
## TUGAS PENDAHULUAN
### Soal
1. Apa yang dimaksud dengan join dalam Mysql?
2. Jelaskan perbedaan dari operasi join inner join dan outer join!
3. Jelaskan perbedaan dari operasi join union dan subquery!
4. Jelaskan perbedaan dari operasi join.
### Jawab
1. **Join** dalam MySQL adalah operasi yang digunakan untuk menggabungkan dua atau lebih tabel dalam database berdasarkan kolom yang terkait. Join memungkinkan pengguna untuk mengambil data dari beberapa tabel dengan satu query saja.
2. Perbedaan antara operasi join inner join dan outer join adalah sebagai berikut:
**Inner join** mengambil data yang memiliki nilai yang cocok di kedua tabel yang digabungkan, sedangkan outer join mengambil semua data dari salah satu tabel dan data yang cocok dari tabel lainnya.
**Outer join** dibagi menjadi left outer join dan right outer join. Left outer join mengambil semua data dari tabel kiri dan data yang cocok dari tabel kanan, sedangkan right outer join mengambil semua data dari tabel kanan dan data yang cocok dari tabel kiri.
3. Perbedaan antara operasi join union dan subquery adalah sebagai berikut:
**Union** menggabungkan hasil dari dua atau lebih query menjadi satu set data, sedangkan subquery adalah query yang diletakkan di dalam query utama untuk mengambil data yang dibutuhkan.
**Union** digunakan untuk mengambil data dari beberapa tabel yang memiliki struktur yang sama, sedangkan subquery digunakan untuk mengambil data dari satu tabel atau beberapa tabel yang berbeda.
4. Perbedaan antara operasi join dapat dilihat dari jenis join yang digunakan. Ada beberapa jenis join yang dapat digunakan dalam MySQL, yaitu:
**Inner join**: mengambil data yang memiliki nilai yang cocok di kedua tabel yang digabungkan.
**Left join**: mengambil semua data dari tabel kiri dan data yang cocok dari tabel kanan.
**Right join**: mengambil semua data dari tabel kanan dan data yang cocok dari tabel kiri.
## KESIMPULAN
**Join** dalam MySQL adalah operasi yang digunakan untuk menggabungkan dua atau lebih tabel dalam database berdasarkan kolom yang terkait. Terdapat beberapa jenis join yang dapat digunakan, yaitu inner join, left join, right join, dan full outer join. Inner join mengambil data yang memiliki nilai yang cocok di kedua tabel yang digabungkan, sedangkan outer join mengambil semua data dari salah satu tabel dan data yang cocok dari tabel lainnya. Union digunakan untuk menggabungkan hasil dari dua atau lebih query menjadi satu set data, sedangkan subquery digunakan untuk mengambil data dari satu tabel atau beberapa tabel yang berbeda. Dalam penggunaannya, join memungkinkan pengguna untuk mengambil data dari beberapa tabel dengan satu query saja, sehingga dapat mengurangi server overhead dan meningkatkan performa MySQL dan aplikasi.