1. ๐ Pengertian Query Lanjutan
Query lanjutan digunakan untuk:
- Menggabungkan data dari beberapa tabel (JOIN)
- Melakukan perhitungan data (fungsi agregat)
2. ๐ฏ Tujuan Pembelajaran
- Memahami konsep JOIN
- Menggunakan fungsi agregat
- Mengolah data relasional secara kompleks
๐งฉ BAGIAN 1: JOIN
3. ๐ Pengertian JOIN
JOIN adalah teknik untuk menggabungkan data dari dua atau lebih tabel berdasarkan relasi tertentu.
4. ๐ Jenis-Jenis JOIN
4.1 ๐ต INNER JOIN
6
๐ Fungsi:
Menampilkan data yang memiliki kecocokan di kedua tabel
SELECT mahasiswa.nama, matakuliah.nama_mk
FROM mahasiswa
INNER JOIN krs ON mahasiswa.nim = krs.nim
INNER JOIN matakuliah ON krs.kode_mk = matakuliah.kode_mk;
4.2 ๐ข LEFT JOIN
6
๐ Fungsi:
Menampilkan semua data dari tabel kiri
SELECT mahasiswa.nama, krs.kode_mk
FROM mahasiswa
LEFT JOIN krs ON mahasiswa.nim = krs.nim;
4.3 ๐ RIGHT JOIN
6
SELECT mahasiswa.nama, krs.kode_mk
FROM mahasiswa
RIGHT JOIN krs ON mahasiswa.nim = krs.nim;
4.4 ๐ด FULL JOIN (Konsep)
6
โ ๏ธ Catatan: MySQL tidak mendukung FULL JOIN secara langsung
5. ๐ Contoh Relasi Tabel
7
๐งฎ BAGIAN 2: FUNGSI AGREGAT
6. ๐ Pengertian Fungsi Agregat
Fungsi agregat digunakan untuk melakukan perhitungan pada sekumpulan data.
7. ๐ Jenis Fungsi Agregat
| Fungsi | Keterangan |
|---|---|
| COUNT() | Menghitung jumlah data |
| SUM() | Menjumlahkan |
| AVG() | Rata-rata |
| MAX() | Nilai terbesar |
| MIN() | Nilai terkecil |
8. ๐งฎ Contoh Fungsi Agregat
6
๐ COUNT:
SELECT COUNT(*) FROM mahasiswa;
๐ SUM:
SELECT SUM(gaji) FROM karyawan;
๐ AVG:
SELECT AVG(nilai) FROM mahasiswa;
๐ MAX & MIN:
SELECT MAX(gaji), MIN(gaji) FROM karyawan;
9. ๐ GROUP BY
6
SELECT jurusan, COUNT(*)
FROM mahasiswa
GROUP BY jurusan;
10. โ ๏ธ HAVING Clause
SELECT jurusan, COUNT(*)
FROM mahasiswa
GROUP BY jurusan
HAVING COUNT(*) > 2;
๐ป IMPLEMENTASI PRAKTIK
11. ๐ Struktur Database
CREATE TABLE mahasiswa (
nim VARCHAR(10),
nama VARCHAR(100)
);CREATE TABLE krs (
nim VARCHAR(10),
kode_mk VARCHAR(10)
);CREATE TABLE matakuliah (
kode_mk VARCHAR(10),
nama_mk VARCHAR(100)
);
12. ๐ PHP + MySQL (JOIN)
<?php
$conn = mysqli_connect("localhost","root","","kampus");$query = "SELECT mahasiswa.nama, matakuliah.nama_mk
FROM mahasiswa
JOIN krs ON mahasiswa.nim = krs.nim
JOIN matakuliah ON krs.kode_mk = matakuliah.kode_mk";$result = mysqli_query($conn, $query);while($row = mysqli_fetch_assoc($result)){
echo $row['nama']." - ".$row['nama_mk']."<br>";
}
?>
13. ๐งช Latihan Sederhana
๐ฏ Latihan 1:
Buat 2 tabel:
- pelanggan
- transaksi
๐ฏ Latihan 2:
- Tampilkan data menggunakan JOIN
๐ฏ Latihan 3:
- Hitung jumlah transaksi
14. ๐ Tugas Praktikum
๐ฏ Tugas: Sistem Penjualan
8
๐ Ketentuan:
- Buat tabel:
- Produk
- Pelanggan
- Transaksi
- Buat query:
- JOIN (tampilkan nama produk & pelanggan)
- COUNT transaksi
- SUM total penjualan
15. ๐ฏ Kesimpulan
- JOIN digunakan untuk menggabungkan tabel
- Fungsi agregat digunakan untuk analisis data
- GROUP BY dan HAVING memperkuat analisis
16. ๐ Diskusi
- Apa perbedaan INNER dan LEFT JOIN?
- Apa fungsi GROUP BY?
- Kapan menggunakan HAVING?
- Apa fungsi SUM()?