Query Lanjutan: JOIN & Fungsi Agregat

image

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

https://images.openai.com/static-rsc-4/i_j0ZdWlUp60ghDxHs8qGDNTCyCV-Pghd-gHPGOP7NHvmqfxWNVbLeKZCc_NzroIHoDDvcveCECuvwXHiehqhBfOEdO6qICpVs1d8Y50LtcTEKHRalAHsUBl_qVx1mnM4blbm2_oWyr5K0rb6Oe86jlD0v0t9_CiYd8OgTYJf3YIK8ZdVJKhQglzTxcDVCoy?purpose=fullsize
https://images.openai.com/static-rsc-4/rP0aoXlCTGwh1E48dexLtSoK2nwFazV9V0qI_vLtF4n621YR_aiaaoOSvctsfXsYZ2xFKfck5-ZPfvLWvjgaoXe-eB2duPbKXNaiqD1CGC0_5bZrICgaafFORLGhsbqelf24IB5mBV7QoJMmJvgUfAZaUVQZ6tWZ4fXHwueqlbRRsybVu6ZJ70LSxCuh690u?purpose=fullsize
https://images.openai.com/static-rsc-4/X-PIjwrYpo52vxWKgv429VjJhTfHYrG4klmEDIG1ynjXKWENJR584SKCx3VGTxsY6qK0OYFwwXZHhwDK_Fniu76nO1NXANTXcK3imyvFjuIQwXB9x9YUGD5UNJn0x7CL16uC3KokTbR-rOyI7C50zEVJ1949OUA9WCvMrH8jA0tBWoj-4wD8RH7fmjuWCRNo?purpose=fullsize

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

https://images.openai.com/static-rsc-4/J1MKvg-JXPYlZGyx9tcxGFSvMhqfSydE3_1P8yqg2lq1BuAxtM3rFHQEvDZH-OdXLSLNqnZHRmWK96kbJow51IAOPQISutGyBMMSi2oYmPyxXnbZs0k0nAsrODuQB30mUwDEhATIz2jlbmysM1X99sCGeDO8FI1ua0WVOFROJDI3cMKVM3W-ysdmQv_tjOmr?purpose=fullsize
https://images.openai.com/static-rsc-4/VCskIbSta0ck0EhdotogVZjdVEZOd6ufEEZ8FZtF1f-d7MG3Eao6XRk3jvlKcO1_HkfFIx3-LoD73JtnEZZdl9QgeMsa003lLDgc1rOFco6wjuMswdsO4B-GRkh6xkjnyUfSejJK0L7gFTnKWkiDFesLo5i8W-j2xqB6twn6TS8aKHsS_SVvESkiQnzqwCMa?purpose=fullsize
https://images.openai.com/static-rsc-4/zax8CEYG2J59_axnf7g7Q7N_Tf6kMJFnwNYHPj88HevcFtTaK7wTVKJ2CNHDlTE6HueqLONvu9mzrbbohWOo7fv34MChuXKov7lfJdl8ccbZl29TD2hlddtQcxRkuBuaaNg3AcZZJV_wv_57y9whu8DR2U2UWrCZZ4j5m9E8VrpSz48f1snFPRq_ZiwHl2r4?purpose=fullsize

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

https://images.openai.com/static-rsc-4/8HHvOsCiXgsuFnILySivEU3gnqaQjRfYvVwPDfSPLO9kG4AVuzKNVwjC4W51goGgUCLiJYm8f4ZDfWolZ2lukKbhCwQukVBzBvdUc0DIAlsuXQvygmrPNUOsOt2Sz9KygTcrcjzLcpz5A2PGIRRW8RLqRlFs3RSoHyB_JWzH2wcCXNs2vfN8CeOx16hKh02s?purpose=fullsize
https://images.openai.com/static-rsc-4/VCskIbSta0ck0EhdotogVZjdVEZOd6ufEEZ8FZtF1f-d7MG3Eao6XRk3jvlKcO1_HkfFIx3-LoD73JtnEZZdl9QgeMsa003lLDgc1rOFco6wjuMswdsO4B-GRkh6xkjnyUfSejJK0L7gFTnKWkiDFesLo5i8W-j2xqB6twn6TS8aKHsS_SVvESkiQnzqwCMa?purpose=fullsize
https://images.openai.com/static-rsc-4/alCWIxaUj2KAYcDBkPFbbZU5Ezq3pUeR3WODhqmHA9cQxJbsV_b5JmiFzbkP27izXd68dBaRb0dcQ0m4vMGqszdqCcy6D0kh_wp0wJM3nN1-3kbvI8X2gnz20UZQdnaozlpgzdOLTmSYCJOD843hTHP9xInpaBjbH2tqixoc0b9NXWObpNJ2cZmn1L2YuSIb?purpose=fullsize

6

SELECT mahasiswa.nama, krs.kode_mk
FROM mahasiswa
RIGHT JOIN krs ON mahasiswa.nim = krs.nim;

4.4 ๐Ÿ”ด FULL JOIN (Konsep)

https://images.openai.com/static-rsc-4/o2IFaZgf7hJ0kEizmLxIcCPz7nmlOg4QFYWSXRFW_nhIM_8GJXQlT1s6OvzNY6kUs6MvpbYbF2QVRrbUPXTLCo4ZO6k6IEGzMfs2942Z54kvVZsmIYTC0nMFAj6RYP4fwoK9iQlaR8ELDf5vFHSOBCVkJvupQu9y2HUk078EjwjyzQvnQAjsll2_AyUECawH?purpose=fullsize
https://images.openai.com/static-rsc-4/-IraeAV87CAr6uCZRK45kUSgrbVsQCi9K4eYX8DyVIYYkIMa4q2hbd66cW1GCLjWCIlHkOeN78YAcwJyEOedSvN5Uvxnzkbh-5B91TcSgEaDDNkJRWN8Sq4GgjTJ-U3wqIamE0ICiAAAA68bSSSrrcq8nkUA0AgIBvlRRpXuT7ooOIzJIbUI3mhTWn2El9xk?purpose=fullsize
https://images.openai.com/static-rsc-4/VCskIbSta0ck0EhdotogVZjdVEZOd6ufEEZ8FZtF1f-d7MG3Eao6XRk3jvlKcO1_HkfFIx3-LoD73JtnEZZdl9QgeMsa003lLDgc1rOFco6wjuMswdsO4B-GRkh6xkjnyUfSejJK0L7gFTnKWkiDFesLo5i8W-j2xqB6twn6TS8aKHsS_SVvESkiQnzqwCMa?purpose=fullsize

6

โš ๏ธ Catatan: MySQL tidak mendukung FULL JOIN secara langsung


5. ๐Ÿ“Š Contoh Relasi Tabel

https://images.openai.com/static-rsc-4/I3cGctL_QfEGdA7X_f8-nMEfoKF8QsDKXsPRGMqgzEAdELFFlFOzxA0_lADP62DrLVsQsRqhyJMzKS1uxmgPX5NDLFyMG0YRDGk74OX_QOTNZEYbARaEM72Hr2Trx47397oNlHuQDFqC4ZkJ3o5pQIr_a_q5Ly2QyaBHCrgE0llVH1xjtnYNaVEdRyNpoo96?purpose=fullsize
https://images.openai.com/static-rsc-4/nBfVWNqXhYktKb_WmDPe0iY1j9tyOzxe9Wb5TPN5K3ZZBctX2hLBvQNCym20NEJVqLVF59ooQ0I3n1P9S-vEHRDXYyJp285qlcly10MBbmlJCWn-C3au67YRRZdvJMvbHUtSWXLX-KnbMyltWVHON6GBBWTCQCQ-RKjwoLIfE9eGjmY37UTMthqegWSLvzsf?purpose=fullsize
https://images.openai.com/static-rsc-4/0TPm8UpoMuirBCpbnW1ns-OupuIodapQbrqEB0RoICKbhYBc4y2nVP87ajAPuh51IOUloOMmo-WK7hdwYoLkED0I0i-JveTzJPhbIQPoWKQAabbmw49GobDzEBn6dmqKwol7ovruuU1gOLJ8DxSa-wtwyhIW4CpJn5AKjnl5U7tpnmlYBol_g8V7saQ3liQC?purpose=fullsize

7


๐Ÿงฎ BAGIAN 2: FUNGSI AGREGAT


6. ๐Ÿ“Œ Pengertian Fungsi Agregat

Fungsi agregat digunakan untuk melakukan perhitungan pada sekumpulan data.


7. ๐Ÿ“Š Jenis Fungsi Agregat

FungsiKeterangan
COUNT()Menghitung jumlah data
SUM()Menjumlahkan
AVG()Rata-rata
MAX()Nilai terbesar
MIN()Nilai terkecil

8. ๐Ÿงฎ Contoh Fungsi Agregat

https://images.openai.com/static-rsc-4/98bqYehASV8yJMcwXKn4g8ISOR_r23cRtBhzikjICn99PN03T_JGDUk_IliPw9BbyY5m8RvaaRjRYaeKJ82a6j5MR5p_Z5wB08FM4Nn-HaEcDUIJAe7Om5u2l9CdOPuIdO76VxlNmt5Umc6s-XBkNuuDF0mLWfQnKhOPGvmY2jwVjlOysXAG7dDo9XjOrexZ?purpose=fullsize
https://images.openai.com/static-rsc-4/3QIJ5vLK6lNi5y4A__M6LVtntB-vOAOrNEu7EvbhjMa2vKe2UaNFcGdG47cqnH94ifLngD2jSX3Exrpf4MtdmoonkksSxDDUmSI3bEiGxVQo9V7dQQgwkGEUwnPTfdH9O__o6t1yYVxgTFcc7LPvEspbDg0HUnd7Oj_jMty99cQl5kyEUCZwV6SHxDLpJih4?purpose=fullsize
https://images.openai.com/static-rsc-4/0FoXkIeWHB_dU9fdwu-knzxZUVRo5B80xBN_uEl1jk9ljqK6iEJJpXJaIOeCjxlzOWqrWIw_-KnQbv3oD8NMrkX8cY0NApm8op287r4t5-7g83iz_QbnbxnOXy2FmpkvNIqVoOVwXX5g6_DbLYYaCUyBkSh6ZWQZXHJ7fcvZxruSAOOqpqEdMhNR6QJbDkq3?purpose=fullsize

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

https://images.openai.com/static-rsc-4/MVU1wb-Bbq8HBOhYAKY3XRn_UuF7-_Db8JZCQBf7q2D5Zt3lNgewf8tf3Fp3EiHilEOCWwl8K17at9ldzX3Cuzh-i39T_ktnoEJTr6-5_3oQQT-jjPB3iZhLUikso2ZyIfRI7EZ4q9b6zbMTrnxVG9WI9yTNFGi8vIp8GIoSHRNXC-AgekZG_dG_D9FJssOy?purpose=fullsize
https://images.openai.com/static-rsc-4/AuOLYzGfDErvl6UCOAXP47IVjb9pQskhv1gl6DtiP94PibVLNsFMBGsROG3wQcqEzgv5VhxD1tK-A7wDphDoJnmppife1eAnsYu-BzZf6VLBCnSSt2MkpjMDog6cFuzrx5v0fzJOmHd0P5mFOApvXpNvUZ07-jxJCS8nEQLuQCM2r0tfpqw3keeS4PhxA4Xf?purpose=fullsize
https://images.openai.com/static-rsc-4/fZPvNWniCqcGJyZyauatEiHowGBHhpcBcpg6Vabx-UzVaMK3Zvou5ZbpN7TCXh4M-ysdVrOiyBPFVVW6FLr-UeZNItZhNZ8eOiYz9oq-RQR0i0mBE-_418jYGigU5prd_WUn685jHReBLvgP6UWCmN8i1_yseZb9fDEXjZmxtDPurWSxiagsmSSsKAZ01_mc?purpose=fullsize

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

https://images.openai.com/static-rsc-4/XZlcsDh3gCUFLdTNEOA8zztN0KUz5AeVK9-dO0ojA8ZqyhXO5qcgCIijhU6_YFCM88Xw40H11mKMVI2smriXiN5yxPReYJsLCW-7msfUSDYVW_JK42ISwEFwI96wwa42iyPZA64AAiBY2TcV_f2CKIy3bwS0xoG1tBod3Hh36Bz9zhXZvOFz-eP4SiNkbXSO?purpose=fullsize
https://images.openai.com/static-rsc-4/xq8ZFottVUAfeY2ENoJmvNEIiqTxn0bvcPhjVMrSpw5mmh4pYjsr-PCYDzHb15fxwo-bC4GCKHdrafpkMLWQka1sFFGKQ9DHmjaO_1UvzSgQGVeEis3cOpxedpF3rNp5gdD9bXmfEmG7mqqKtmpgiZ353HITvyom_eGMpsrOs2LlzD44ee0bLGeufmvf-pb8?purpose=fullsize
https://images.openai.com/static-rsc-4/98bqYehASV8yJMcwXKn4g8ISOR_r23cRtBhzikjICn99PN03T_JGDUk_IliPw9BbyY5m8RvaaRjRYaeKJ82a6j5MR5p_Z5wB08FM4Nn-HaEcDUIJAe7Om5u2l9CdOPuIdO76VxlNmt5Umc6s-XBkNuuDF0mLWfQnKhOPGvmY2jwVjlOysXAG7dDo9XjOrexZ?purpose=fullsize

8

๐Ÿ“Œ Ketentuan:

  1. Buat tabel:
    • Produk
    • Pelanggan
    • Transaksi
  2. 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

  1. Apa perbedaan INNER dan LEFT JOIN?
  2. Apa fungsi GROUP BY?
  3. Kapan menggunakan HAVING?
  4. Apa fungsi SUM()?