A. LANDASAN TEORI


FUNGSI AGREGAT
Fungsi Agregat (terkadang disebut fungsi grup atau fungsi ringkasan) adalah fungsi yang disediakan SQL untuk menghasilkan sebuah nilai berdasarkan sejumlah data masukan (input). Agregasi dapat digabungkan dengan sebuah parameter seperti WHERE untuk menghasilkan suatu hasil yang lebih kompleks.
Adapun fungsi Agregasi adalah sebagai berikut :
Fungsi Agregat
Keterangan
COUNT (*)
Menghitung cacah data
MAX
Menghasilkan nilai terbesar
MIN
Menghasilkan nilai terkecil
SUM
Menghitung penjumlahan data
AVG
Menghasilkan nilai rata-rata

COUNT
select count(nama_kolom) from nama_tabel;

MAX
select max(nama_kolom) from nama_tabel;

MIN
select min(nama_kolom) from nama_tabel;

SUM
select sum(nama_kolom) from nama_tabel;

AVERAGE
select avg(nama_kolom) from nama_tabel;

GROUP BY
Group By merupakan fungsi yang digunakan untuk melakukan pengelompokkan dari perintah SELECT . Group by sering digunakan untuk menjalankan fungsi agregat menjadi sebuah kelompok hasil query.
select nama_kolom from nama_tabel group by nama_kolom;
#NOTE: nama_kolom yang ada setelah perintah SELECT harus SAMA dengan nama_kolom yang ada setelah perintah GROUP BY

HAVING
Pemakaian  HAVING terkait dengan GROUP BY, kegunaannya adalah untuk menentukan kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan dihasilkan. Bisa dikatakan, HAVING ini adalah pengganti dari klausa bersyarat WHERE.
select nama_kolom from nama_tabel group by nama_kolom having syarat;
kalo pake where,
select nama_kolom from nama_tabel where syarat group by nama_kolom;
CASE
Penggunaan CASE akan membentuk output tersendiri berupa sebuah kolom baru dengan data dari operasi didalamnya. Struktur CASE didalam SELECT adalah sebagai berikut:
CASE WHEN kondisi THEN hasil
[WHEN....]
[ELSE hasil] AND

VIEW
VIEW dapat juga disebut dengan tabel bayangan tetapi bukan temporary table, bukan juga merupakan sebuah tabel yang asli. Suatu view adalah suatu relasi virtual yang tidak perlu ada pada database tetapi dapat diproduksi atas permintaan oleh pemakai tertentu, pada ketika permintaan. Kelebihan view yang lain yaitu dapat menyimpan perintah query, dan dapat mewakili sebuah subset dari tabel asli dan memilih kolom atau row tertentu seperti tabel biasa. Berikut ini cara membuat VIEW
create view nama_view as query;

#NOTE: query diatas merupakan query untuk menampilkan data menggunakan fungsi SELECT.


B. TUGAS PRAKTIKUM


Haiii, haiii :D Kembali lagi berjumpa dengan sayaa di praktikum ke 5. Are you ready  to do it ? Check it outt !!

ini niiiih soal modul ke 5


1. Siapkan tabel mahasiswa yang sudah dibuat pada praktikum sebelumnya. Tampilkan dan cek tabelnya terlebih dahulu

2. Dengan menggunakan fungsi agregat, carilah nim mahasiswa yang paling kecil, paling besar, jumlah dari nim mahasiswa  dan juga cari nilai rata-rata dari nim mahasiswa.

3.  Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga, hasilnya nanti kira-kira seperti ini,
Nama Fakultas
Count (*)
Psikologi
2
Saintek
1

4. Tampilkan seperti nomer 3, tapi kali ini bersyarat. Yaitu, hanya mashasiswa yang jumlahnya lebih dari 2 saja yang ditampilkan

5. Tampilkan data mahasiswa dengan persyaratan jika gendernya L , maka akan tertulis 'LAKI-LAKI'. Jika gendernya P, maka akan tertulis 'PEREMPUAN'.

6. Buatlah view untuk query penampilan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa dan nama fakultas

TAMBAHAN
Khusus di hari jum'at, pak Aziz Musthofa selaku dosen Praktikum DBD memberikan tugas tambahan (bagi yang pengen ngerjain, kalo nggak ya gapapa :D). Ini nih tugas tambahannya :
1. Tampilkan jumlah mahasiswa perempuan berdasarkan fakultas beserta jumlah mahasiswa yang laki-laki


2. Buatlah view, tetapi dengan struktur SQL yang berbeda dari nomor 6.

atau

C. TUGAS RUMAH


Aktifin XAMPPnya dulu sob ;)
1. Siapkan tabel mahasiswa yang sudah dibuat pada praktikum sebelumnya. Tampilkan dan cek tabelnya terlebih dahulu

2. Dengan menggunakan fungsi agregat, carilah nim mahasiswa yang paling kecil, paling besar, jumlah dari nim mahasiswa  dan juga cari nilai rata-rata dari nim mahasiswa.

3.  Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga, hasilnya nanti kira-kira seperti ini,
Nama Fakultas
Count (*)
Psikologi
2
Saintek
1

4. Tampilkan seperti nomer 3, tapi kali ini bersyarat. Yaitu, hanya mashasiswa yang jumlahnya lebih dari 2 saja yang ditampilkan

5. Tampilkan data mahasiswa dengan persyaratan jika gendernya L , maka akan tertulis 'LAKI-LAKI'. Jika gendernya P, maka akan tertulis 'PEREMPUAN'.

6. Buatlah view untuk query penampilan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa dan nama fakultas

TAMBAHAN
Khusus di hari jum'at, pak Aziz Musthofa selaku dosen Praktikum DBD memberikan tugas tambahan (bagi yang pengen ngerjain, kalo nggak ya gapapa :D). Ini nih tugas tambahannya :
1. Tampilkan jumlah mahasiswa perempuan berdasarkan fakultas beserta jumlah mahasiswa yang laki-laki

atau 

2. Buatlah view, tetapi dengan struktur SQL yang berbeda dari nomor 6.

atau 

D. EVALUASI PERBEDAAN MySQL dan POSTGRE


Kinii, tibalah saatnya untuk mengcompare kedua DBMS kitaa. Jeng jeeeng :D
Setelah dievaluasi, semua sintaks sqlnya sama, nggak ada yang beda, mirip persiis antara Postgre dengan MySQL. Entah itu dalam gungsi agregat, klausa having, group by dan juga view.

Tetapi, ada satu hal yang penting, sepele tapi fatal. Yaitu, penggunaan spasi setelah fungsi agregat. Dalam Postgre, penulisan SELECT MAX (nama_kolom) FROM nama_tabel ; diperbolehkan. Sedangkan dalam MySQL tidak bisa. Setelah kata MAX tidak boleh ada spasi dan langsung ketikkan buka kurung, nama kolom, tutup kurung.
Mau bukti ?
Ini yang di Postgre


Kalo yang ini di MySQL,

Ini berlaku untuk semua fungsi agregat.

E. KESIMPULAN

Selain operasi himpunan yang telah dibahas di laporan IV, database juga bisa melakukan operasi statistika yang dinamakan dengan fungsi agregasi. Yaitu, mencari nilai minimum (MIN), nilai maksimum (MAX), nilai rata-rata (AVG), penjumlahan data (SUM), dan COUNT untuk menghitung cacah data.


Selain itu, terdapat fungsi pengelompokkan (GROUP BY) dan klausa HAVING yang sedikit banyak mirip-mirip seperti klausa WHERE. Bedanya hanya, HAVING digunakan setelah melakukan GROUP BY.

Dan yang terakhiiir, database dapat membuat view (pandangan). Ini bukan tabel permanen, bukan pula tabel temporary. Nah loh (?).  View itu kalo diumpamakan seperti bayangan dari tabel yang asli. Dia merupakan salinan dari tabel yang asli.

Sekiaan dari saya untuk laporan V ini. Terimakasih atas perhatiannya. Jangan LUPA taruh KOMEN kalian SOB :) Saran dan Kritikan Anda akan membangun kami untuk ke depannya.