Progres Belajar
FUNGSI AGREGASI

Setelah kegiatan pembelajaran ini, diharapkan:

  1. Siswa mampu memahami macam-macam fungsi agregasi dalam basis data
  2. Siswa mampu menuliskan perintah fungsi agregasi dengan benar
  3. Siswa mampu menerapkan fungsi agregasi dalam basis data
Pengantar

Di samping menampilkan nilai-nilai atribut yang ada dalam tabel, sering pula diperlukan untuk meringkas data tanpa benar-benar mengambil semuanya. Contohnya adalah kebutuhan untuk menampilkan banyaknya data, total nilai suatu atribut, rata-rata nilai atribut, dan nilai atribut terbesar ataupun terkecil. Data semacam itu dapat diperoleh dengan menggunakan fungsi-fungsi yang memiliki padanan dalam bahasa kueri formal.

Fungsi agregasi adalah fungsi yang digunakan untuk melakukan operasi terhadap himpunan data dalam perintah kueri. Fungsi agregasi disebut juga fungsi ringkasan yaitu fungsi yang beroperasi pada sekumpulan baris untuk menghitung dan mengembalikan nilai tunggal. Fungsi agregasi dapat digabungkan dengan parameter WHERE untuk memberikan hasil yang lebih kompleks.

Fungsi ini sering digunakan untuk mengambil data dengan tujuan analisis dan pelaporan. Contoh dari jenis pengambilan ini adalah menentukan banyak baris dalam tabel, mendapatkan jumlah sekelompok baris dalam sebuah tabel, menemukan nilai tertinggi, terendah, dan rata-rata dalam kolom tabel (baik untuk semua baris atau untuk baris tertentu).

Format dasarnya adalah:

SELECT FUNCTION_AGGREGATE(nama_kolom)

Catatan: Antara nama aggregate dan kurung tidak boleh ada spasi

Berikut adalah beberapa fungsi agregasi yang akan kita bahas yaitu:

  • COUNT
  • SUM
  • AVG
  • MAX
  • MIN

Sistem manajemen database yang kita gunakan dalam pembelajaran ini adalah MariaDB.

Dalam pembelajaran ini, database telah disediakan dengan nama id19979687_db_sekolah. Contoh penerapan fungsi agregasi pada materi menggunakan tabel yang telah disediakan. Diagram hubungan entitas pada database id19979687_db_sekolah dapat dilihat pada gambar dibawah ini.

Berikut adalah tabel yang telah disediakan:

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

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

id_matpel id_guru nama_matpel jurusan jp_perminggu
M01 G01 Desain Media Interaktif MM 12
M02 G05 Basis Data RPL 4
M03 G01 Animasi 2D dan 3D MM 12
M04 G02 Desain Grafis Percetakan MM 12
M05 G05 Pemodelan Perangkat Lunak RPL 4
M06 G06 Administrasi Infrastruktur Jaringan TKJ 9
M07 G07 Teknik Pengolahan Audio dan Video MM 13
M08 G04 Pemrograman Berorientasi Objek RPL 8
M09 G03 Teknologi Layanan Jaringan TKJ 8
M10 G06 Administrasi Sistem Jaringan TKJ 6
M11 G04 Pemrograman Web dan Perangkat Bergerak RPL 8

id_guru nip nama jns_kel gaji pendidikan_terakhir
G01 13254 Indah Wijaya P 4000000 S1
G02 14325 Siska Nur Azizah P 4500000 S1
G03 12543 Fauzi Rahmadi L 5000000 S2
G04 15234 Luna Ardhita Puspita P 3000000 D3
G05 13542 Hafizh L 4200000 S1
G06 15432 Dita Anggraini P 4800000 S2
G07 12235 Farhan Alfi L 3500000 D3

id_ortu id_siswa nama_ayah gaji pendidikan_terakhir
R01 S01 Budi Santoso 5000000 S1
R02 S02 Kurniawan Prasetya 7000000 S2
R03 S03 Adi Pranata 4000000 SMA
R04 S04 Andrea 5500000 S1
R05 S05 Hadi Saputra 8000000 S2
R06 S06 Ario Jati 3500000 SMA
R07 S07 Sofyan Wanandi 4500000 SMA
R08 S08 Indra Budiman 7500000 S1
R09 S09 Denny Prasetyo 8500000 S2
R10 S10 Taufik Hidayat 6000000 S1

Adapun untuk latihan, database telah disediakan dengan nama id19979687_db_perusahaan. Tabel untuk latihan juga telah disediakan. Diagram hubungan entitas pada database id19979687_db_perusahaan dapat dilihat pada gambar dibawah ini.

Berikut adalah tabel yang telah disediakan untuk latihan:

id_karyawan id_jabatan nama jns_kel umur status_karyawan sertifikasi
1 J07 Adam Pramudita L 28 Kontrak 3
2 J11 Ade Indriani P 30 Tetap 1
3 J02 Bella P 26 Kontrak 2
4 J06 Bunga Fitriani P 33 Tetap 4
5 J13 Deni Hermawan L 38 Tetap 5
6 J03 Eko Prasetyo L 35 Tetap 3
7 J04 Galang Pratama L 26 Kontrak 1
8 J01 Hadi Susilo L 32 Tetap 2
9 J15 Indah Purnama P 29 Tetap 1
10 J14 Kurnia Anugerah L 36 Tetap 4
11 J12 Nindy Puspita P 25 Kontrak 2
12 J08 Oktavia P 27 Tetap 3
13 J05 Saiful Muzakir L 37 Tetap 1
14 J10 Trias Wibowo L 30 Kontrak 2
15 J09 Wahyu Pradana L 34 Tetap 1

id_jabatan nama_jabatan divisi gaji_pokok
J01 Administrator Jaringan Infrastruktur IT 12000000
J02 Administrator Sistem Infrastruktur IT 12000000
J03 Analis Bisnis Marketing 12000000
J04 Analis Sistem Arsitektur Solusi 17000000
J05 Back-end Developer RnD 15000000
J06 Data Analyst Data Science 12000000
J07 Data Scientist Data Science 15000000
J08 Desainer UI/UX RnD 14000000
J09 Front-end Developer RnD 14000000
J10 Full-stack Developer RnD 16000000
J11 IT Support Infrastruktur IT 11000000
J12 Konsultan Teknis Arsitektur Solusi 18000000
J13 Mobile Developer RnD 13000000
J14 Pengembang Bisnis Marketing 13000000
J15 QA Engineer RnD 12000000

id_proyek penanggung_jawab nama_proyek anggaran durasi_bulan status
P01 13 Pembuatan Profil Perusahaan 30000000 4 Sedang Dikerjakan
P02 15 Implementasi Sistem Absensi Karyawan 20000000 3 Sedang Dikerjakan
P03 5 Pengembangan Aplikasi Mobile Survei 15000000 3 Selesai
P04 13 Implementasi Cloud Server 40000000 6 Selesai
P05 15 Pengembangan Aplikasi Penggajian 25000000 4 Menunggu
P06 8 Peningkatan Keamanan Jaringan 20000000 3 Belum Dimulai
P07 1 Pengembangan Aplikasi Data Mining 40000000 7 Menunggu
P08 7 Pemeliharaan Sistem Informasi 20000000 5 Sedang Dikerjakan
P09 8 Peningkatan Infrastruktur Jaringan 35000000 7 Belum Dimulai
P10 4 Implementasi Big Data untuk Analisis Data 80000000 10 Menunggu

id_kinerja id_karyawan proyek_selesai nilai_kinerja kategori_kinerja insentif
1 1 5 85 baik 500000
2 2 7 78 cukup 0
3 3 9 92 sangat baik 600000
4 4 6 80 baik 300000
5 5 4 88 sangat baik 500000
6 6 8 75 cukup 0
7 7 3 90 sangat baik 600000
8 8 10 80 baik 300000
9 9 7 85 baik 500000
10 10 12 93 sangat baik 600000
11 11 4 82 baik 300000
12 12 6 75 cukup 0
13 13 11 91 sangat baik 600000
14 14 9 86 baik 500000
15 15 8 79 cukup 0

id_kehadiran id_karyawan kehadiran terlambat kategori_absensi
1 1 258 4 baik
2 2 254 2 cukup
3 3 255 8 cukup
4 4 256 1 baik
5 5 257 2 sangat baik
6 6 258 0 sangat baik
7 7 253 5 cukup
8 8 259 2 sangat baik
9 9 258 4 baik
10 10 260 3 sangat baik
11 11 257 6 baik
12 12 256 4 baik
13 13 258 1 sangat baik
14 14 259 2 sangat baik
15 15 257 0 sangat baik