Database and SQL Fundamental 6
๐ Pertemuan 6 โ Penggunaan ORDER BY, GROUP BY, dan Logika AND, OR, serta IF (CASE) di SQL Server
๐ฏ Tujuan Pembelajaran
Setelah pertemuan ini, siswa diharapkan mampu:
- Mengurutkan data menggunakan
ORDER BY - Mengelompokkan data dengan
GROUP BY - Menggunakan kondisi logika
AND,ORdanNOT - Menggunakan logika percabangan
IFdenganCASE WHENdi SQL Server
1. ORDER BY
Perintah ORDER BY digunakan untuk mengurutkan hasil query berdasarkan satu atau lebih kolom.
1 | SELECT Judul, Pengarang, TahunTerbit |
๐ก Keterangan:
ASC= urut naik (default)DESC= urut menurun
2. GROUP BY
Perintah GROUP BY digunakan untuk mengelompokkan baris berdasarkan nilai kolom tertentu. Biasanya digunakan bersama fungsi agregat seperti COUNT(), SUM(), AVG(), dll.
1 | SELECT Pengarang, COUNT(*) AS JumlahBuku |
๐ก Contoh hasil:
| Pengarang | JumlahBuku |
|---|---|
| Tere Liye | 5 |
| Dewi Lestari | 2 |
| Andrea Hirata | 3 |
3. Kombinasi GROUP BY dan HAVING
HAVING digunakan untuk memfilter hasil setelah pengelompokan (karena WHERE tidak bisa digunakan pada hasil agregat).
1 | SELECT Pengarang, COUNT(*) AS JumlahBuku |
๐ก Penjelasan:
Menampilkan hanya pengarang yang memiliki lebih dari 2 buku.
4. Logika AND, OR dan NOT
Keduanya digunakan untuk menggabungkan kondisi di perintah WHERE.
1 | -- Contoh 1: Menggunakan AND |
๐ก Penjelasan:
ANDโ kedua kondisi harus benarORโ salah satu kondisi cukup benarNOTโ selain kondisi benar yang diminta
5. Logika Percabangan IF dengan CASE WHEN
SQL Server tidak memiliki IF langsung dalam SELECT, tetapi kita bisa menggunakan CASE.
1 | SELECT |
๐ก Penjelasan:
CASE WHENberfungsi sepertiIF-ELSE- Dapat digunakan di
SELECT,ORDER BY, atau bahkan diUPDATE
6. Latihan Mandiri
- Tampilkan semua data buku dengan urutan berdasarkan
Pengarangsecara alfabetik. - Kelompokkan buku berdasarkan
Penerbit, lalu hitung jumlah buku per penerbit. - Tampilkan hanya penerbit yang memiliki lebih dari 3 buku.
- Gunakan kondisi
AND,ORdanNOTuntuk menampilkan:- Buku terbit setelah 2018 dan diterbitkan oleh โGramediaโ
- Buku terbit sebelum 2010 atau oleh pengarang โAndrea Hirataโ
- Buku yang ditulis selain oleh pengarang โJK Rowlingโ
- Buat kolom baru
StatusTahunmenggunakanCASE:- Jika
TahunTerbit> 2018 โ โTerbaruโ - Jika antara 2010โ2018 โ โMenengahโ
- Jika < 2010 โ โKlasikโ
- Jika
7. Tugas Tambahan
Buat query untuk menampilkan daftar pengarang beserta:
- Jumlah buku yang ditulis (
COUNT) - Tahun terbit tertua (
MIN) - Tahun terbit terbaru (
MAX) - Status buku berdasarkan
CASE:- Jika
MAX(TahunTerbit)>= 2022 โ โAktifโ - Jika antara 2015โ2021 โ โProduktifโ
- Jika < 2015 โ โTidak aktif lagiโ
- Jika
Gunakan GROUP BY Pengarang untuk mengelompokkan hasilnya.
๐ก Catatan Tambahan
ORDER BYselalu ditulis paling akhir di query.HAVINGhanya digunakan setelahGROUP BY.CASE WHENbisa digunakan untuk membuat data lebih informatif tanpa perlu mengubah tabel.
๐ Kesimpulan
| Konsep | Fungsi | Contoh Singkat |
|---|---|---|
| ORDER BY | Mengurutkan hasil | ORDER BY TahunTerbit DESC |
| GROUP BY | Mengelompokkan data | GROUP BY Pengarang |
| HAVING | Filter setelah agregasi | HAVING COUNT(*) > 2 |
| AND / OR | Logika gabungan | WHERE x AND y / WHERE x OR y |
| CASE WHEN | Logika if-else | CASE WHEN Tahun > 2020 THEN 'Baru' |




