Progres Belajar
FUNGSI AGREGASI DENGAN PENGELOMPOKKAN DATA

Setelah kegiatan pembelajaran ini, diharapkan:

  1. Siswa mampu memahami perintah grouping dalam basis data
  2. Siswa mampu menuliskan perintah fungsi agregasi dengan pengelompokan data dengan benar
  3. Siswa mampu menerapkan fungsi agregasi dengan pengelompokan data dalam basis data
COUNT - GROUP BY

Tabel yang kita gunakan adalah nilai_ujian yang dapat dilihat seperti di bawah ini.

id_nilai id_siswa id_matpel nilai predikat_nilai keterangan
N01 S01 M02 73 Cukup Lulus
N02 S02 M02 75 Baik Lulus
N03 S03 M02 65 Kurang Tidak Lulus
N04 S04 M02 55 Kurang Tidak Lulus
N05 S05 M02 80 Baik Lulus
N06 S06 M02 65 Kurang Tidak Lulus
N07 S07 M02 86 Baik Sekali Lulus
N08 S08 M02 85 Baik Sekali Lulus
N09 S09 M02 60 Kurang Tidak Lulus
N10 S10 M02 90 Baik Sekali Lulus

Pada kebutuhan tertentu, kita ingin menghitung agregat untuk data dengan karakteristik tertentu. Misalnya, kita mungkin ingin mengetahui banyak siswa untuk setiap predikat nilai. Kita dapat menghitung setiap angka dengan serangkaian kueri dengan pernyataan WHERE yang berbeda, seperti:

SELECT COUNT(*) AS banyak_siswa FROM nilai_ujian
WHERE predikat_nilai = "Baik Sekali";

SELECT COUNT(*) AS banyak_siswa FROM nilai_ujian
WHERE predikat_nilai = "Baik";

SELECT COUNT(*) AS banyak_siswa FROM nilai_ujian
WHERE predikat_nilai = "Cukup";

SELECT COUNT(*) AS banyak_siswa FROM nilai_ujian
WHERE predikat_nilai = "Kurang";

Tetapi ada cara yang lebih baik, yaitu kita dapat menggunakan GROUP BY untuk melakukan ini dalam satu langkah. Kueri yang bisa digunakan adalah sebagai berikut:


          

Hasilnya adalah:

Tabel Data Pegawai
Gambar 30. Hasil perintah COUNT 7

Cobalah kueri di atas pada kotak inputan coba kueri di bawah ini.

Coba Kueri

Hasil

Pernyataan SELECT di atas menentukan dua kolom, kolom predikat_nilai yang berisi predikat nilai dan banyak_siswa yang merupakan perhitungan banyak siswa (dibuat menggunakan fungsi COUNT(*)). Klausa GROUP BY memerintahkan database untuk mengurutkan data dan mengelompokkannya berdasarkan predikat nilai. Klausa GROUP BY menginstruksikan database untuk mengelompokkan data dan kemudian melakukan agregat pada setiap kelompok.

Contoh selanjutnya, menampilkan banyaknya siswa berdasarkan keterangannya. Kita dapat menggunakan kueri sebagai berikut.


          

Hasilnya adalah:

Tabel Data Pegawai
Gambar 31. Hasil perintah COUNT dengan GROUP BY 1

Cobalah kueri di atas pada kotak inputan coba kueri di bawah ini.

Coba Kueri

Hasil

GROUP BY juga dapat digunakan dengan klausa WHERE. Untuk melakukan hal ini, letakkan GROUP BY setelah WHERE dalam statement SQL.

Tabel yang kita gunakan adalah biodata_siswa yang dapat dilihat seperti di bawah ini.

id_siswa nis nama jns_kel umur tinggi_badan berat_badan
S01 13261 Aisyah Alifa P 17 155 45
S02 13262 Rendra Kurniawan L 18 173 55
S03 13263 Iqbal Maulana Hakim L 19 165 50
S04 13264 Gracia Putri Lestari P 18 158 46
S05 13265 Nanda Amira Athaya P 17 156 41
S06 13266 Fajar Setiawan L 17 153 45
S07 13267 Naura Athalia P 18 171 60
S08 13268 Irfan Maulana L 17 163 58
S09 13269 Yudi Prasetyo Nugroho L 19 175 62
S10 13270 Rayhanah Aziza P 19 154 43

Misalkan kita hanya ingin mengetahui rata-rata tinggi badan siswa yang berumur 17 tahun untuk setiap jenis kelamin. Kita dapat menggunakan kueri sebagai berikut.


          

Hasilnya adalah:

Tabel Data Pegawai
Gambar 32. Hasil perintah COUNT dengan GROUP BY 2

Cobalah kueri di atas pada kotak inputan coba kueri di bawah ini.

Coba Kueri

Hasil

Untuk melihat kemampuan menuliskan perintah COUNT dengan GROUP BY dan menerapkannya dalam basis data, silahkan kerjakan latihan di bawah ini.

Latihan COUNT - GROUP BY
Soal 1
Instruksi

Lengkapilah kueri di bawah ini dengan mengetikkan jawaban pada kotak inputan yang disediakan. Border kotak inputan berwarna hijau jika jawaban Anda benar dan berwarna merah jika jawaban Anda salah.

Melengkapi Kueri

Perintah: Menampilkan banyaknya karyawan dengan nama kolom alias banyak_karyawan dari tabel dengan nama karyawan dan kelompokkan berdasarkan jns_kel

SELECT , AS banyak_karyawan FROM karyawan

;

SELECT jns_kel, COUNT(*) AS banyak_karyawan FROM karyawan

GROUP BY jns_kel;

Soal 2
Instruksi

Tabel telah tersedia dengan nama


Tampilkanlah banyaknya jabatan dengan nama kolom alias banyak_jabatan dan kelompokkan berdasarkan divisi

Hasilnya adalah:

Tabel Data Pendapatan
Gambar 33. Hasil perintah COUNT dengan GROUP BY 3
Kueri

Hasil
Soal 3
Instruksi

Tabel telah tersedia dengan nama


Tampilkanlah banyaknya proyek dengan nama kolom alias banyak_proyek dan kelompokkan berdasarkan status

Hasilnya adalah:

Tabel Data Nilai
Gambar 34. Hasil perintah COUNT dengan GROUP BY 4
Kueri

Hasil

Kamu menjawab dari 3 soal dengan benar!