Assalamu’alaikum,, kali ini saya akan membahas tentang Agregasi Sql dan View. Apa itu agregasi? Apa itu View? Mari kita bahas.
         A.  Dasar Teori
1.      Agregasi  SQL
Agregasi dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau kombinasi kolom yang dipilih.
Untuk mendapatkan fungsi agregat, kita harus menggunakan aggregate operator atau fungsi agregat.  Berikut ini adalah beberapa fungsi atau operator untuk agregasi.
a.       MAX(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai terbesar dari suatu atribut hasil query.
b.      MIN(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai terkecil dari suatu atribut hasil query.
c.       COUNT(*) : fungsi ini digunakan untuk mendapatkan nilai banyaknya record dari query.
d.      SUM(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai total suatu atribut bertipekan numeric dari query.
e.       AVG(NAMA_KOLOM) : fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu atribut bertipe numeric hasil query.
Bentuk query untuk menggunakan agregat operator ini adalah select [operator agregat] from [nama_tabel];
2.      Group By
Group By merupakan fungsi yang digunakan untuk melakukan pengelompokan dari perintah SELECT. Group by seringkali diperlukan untuk menjalankan agregate menjadi sebuah kelompok dari hasil Query. Berikut struktur SQL untuk penampilan data :
select [nama_kolom] from [nama_tabel] group by [nama_kolom];
3.      Having
Pemakaian HAVING terkait dengan GROUP BY, kegunaanya adalah untuk menentukan kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan di hasilkan. Berikut Struktur yang digunakan :
select [nama_kolom] from [nama_tabel] group by [nama_kolom] having [kondidsi];
4.      Case
Kata WHERE menggunakan perbandingan untuk mengontrol pemilihan data, sedangkan CASE perbandingan dalam bentuk output kolom. Jadi intinya penggunaan CASE akan membentuk output tersendiri berupa sebuah kolom baru dengan data dari operasi yang di dalamnya. Struktur di dalam select seperti berikut :
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result] END
5.      View
Views merupakan suatu tampilan tabel virtual. Views berisi perintah SELECT ke tabel dalam database. Views dapat digunakan untuk mempermudah kita dalam pembuatan laporan atau tampilan database yang diinginkan dengan cepat. Dengan kata lain, views merupakan perintah SELECT yang disimpan, sehingga setiap saat kita membutuhkannya, kita dapat langsung memanggilnya tanpa perlu mengetikkan perintah SELECT kembali.
View dibuat atau didefinisikan dengan menggunakan perintah CREATE VIEW. Bentuk umum perintah untuk membuat (mendefinisikan) view, sebagai berikut: create view nama_tabel_view as query;
Yang dimaksud query pada perintah tersebut adalah perintah select yang kita inginkan. Sedangkan untuk menampilkan view kita tinggal ketik perintah select*from [nama_view];

          B.  Hasil Praktikum
Seperti biasa, saya akan mengerjakan tugas praktikum dengan DBMS PostgreSQL dan MySQL. Dengan PostgreSQL saya menggunakan psql dan dengan MySQL saya menggunakan phpMyAdmin. Berikut ini adalah tugas praktikum saya.
1.      Dari tabel mahasiswa yang telah dibuat tambahkan 3 data lagi , tambahkan kolom gender kemudian update datanya dan tampilkan banyaknya data mahasiswa yang telah di inputkan. Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
2.      Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14.
3.      Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:
Nama Fakultas            Count(*)
Saintek                                    2
Psikologi                     1
4.      Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
5.      Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
6.      Buatlah view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

·         Menggunakan PostgreSQL (psql)
            1.   Pertama kita lihat dulu tabel mahasiswa yang telah kita buat dulu dengan select*from mahasiswa.




Seperti terlihat di atas, kolom gender sudah ada, jadi kita langsung menegerjakan soalnya. Untuk menampilkan data mahasiswa yang telah diinputkan, ketik select count(*) from mahasiswa;
Kemudian untuk menampilkan nim mahasiswa terkecil, ketik select min(nim_mah) from mahasiswa;
Untuk menampilkan nim mahasiswa dengan nim mahasiswa terbesar, ketik select max(nim_mah) from mahasiswa;
Untuk menampilkan rata-rata nim mahasiswa, ketik select avg(nim_mah) from mahasiswa;
Di bawah ini adalah screenshoot hasil querynya.
           


2.      Untuk menampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14, ketik select avg(nim_mah) from mahasiswa where nim_mah>14; seperti di bawah ini.
3.      Untuk menampilkan jumlah mahasiswa berdasarkan fakultas seperti soal, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak; seperti di bawah ini.
4.      Untuk meampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak having count(nama_fak)>=2; seperti di bawah ini.
5.      Untuk menampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan, ketik select nim_mah, nama_mah, alamat_mah, no_telp, id_fak, case when gender='L' then 'Laki-Laki' else 'Perempuan' end as gender from mahasiswa; seperti di bawah ini.
6.      Untuk membuat view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas, ketik create view data_mahasiswa as select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak; Lalu kita tampilkan dengan mengetikkan select*from data_mahasiswa; seperti di bawah ini.




·         Menggunakan MySQL (phpMyAdmin)
            1.   Pertama kita lihat dulu tabel mahasiswa yang telah kita buat dulu dengan select*from mahasiswa.
            


            Kemudian klik go dan hasilnya seperti di bawah ini.
            


Seperti terlihat di atas, kolom gender sudah ada, jadi kita langsung menegerjakan soalnya. Untuk menampilkan data mahasiswa yang telah diinputkan, ketik select count(*) from mahasiswa;
           


           Kemudian klik go dan hasilnya seperti di bawah ini.
           


Kemudian untuk menampilkan nim mahasiswa terkecil, ketik select min(nim_mah) from mahasiswa;
           


           Kemudian klik go dan hasilnya seperti di bawah ini.
           


Untuk menampilkan nim mahasiswa dengan nim mahasiswa terbesar, ketik select max(nim_mah) from mahasiswa;
           


           Kemudian klik go dan hasilnya seperti di bawah ini.
           


Untuk menampilkan rata-rata nim mahasiswa, ketik select avg(nim_mah) from mahasiswa;
          


          Kemudian klik go dan hasilnya seperti di bawah ini.
          


2.      Untuk menampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14, ketik select avg(nim_mah) from mahasiswa where nim_mah>14; seperti di bawah ini.
            Kemudian klik go dan hasilnya seperti di bawah ini.
           



3.      Untuk menampilkan jumlah mahasiswa berdasarkan fakultas seperti soal, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak; seperti di bawah ini.
          Kemudian klik go dan hasilnya seperti di bawah ini.
         



4.      Untuk meampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan, ketik select nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak having count(nama_fak)>=2; seperti di bawah ini.
          Kemudian klik go dan hasilnya seperti di bawah ini.
        



5.      Untuk menampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan, ketik select nim_mah, nama_mah, alamat_mah, no_telp, id_fak, case when gender='L' then 'Laki-Laki' else 'Perempuan' end as gender from mahasiswa; seperti di bawah ini.
      Kemudian klik go dan hasilnya seperti di bawah ini.
      


6.      Untuk membuat view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas, ketik create view data_mahasiswa as select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak; 
      
Jika sukses, akan muncul seperti di bawah ini
    



 Lalu kita tampilkan dengan mengetikkan select*from data_mahasiswa; seperti di bawah ini.
 


      Kemudian klik go dan hasilnya seperti di bawah ini.
      


          C. Tugas Rumah
Tugas rumah kali ini saya mendapatkan tugas yang sama lagi, yaitu evaluasi perbedaan kelebihan dan kemudahan dari kedua DBMS yaitu PostgreSQL dan MySQL. Namun pada praktikum kali ini memiliki banyak persamaan.
      Persamaan : Dalam praktikum kali ini, setelah saya mengerjakan nomor 1 sampai nomor 6, semua query yang dipakai sama. Alasannya, karena bahasa yang dipakai oleh kedua DBMS yaitu MySQL maupun PostgreSQL adalah bahasa SQL, yaitu suatu bahasa (language) yang digunakan untuk mengakses database yang sudah memiliki standar ISO dan ANSII ditetapkan untuk SQL. Sehingga termasuk pada praktikum kali ini, yaitu pada fungsi agregat dan fungsi view, struktur query yang dipakai untuk kedua fungsi tersebut sama. Jadi teman-teman, fungsi agregasi dan view pada DBMS PostgreSQL dan DBMS MySQL adalah sama. Sehingga lebih mudah bagi kita untuk menggunakannya pada kedua DBMS tersebut.
Apabila kita membicarakan kelebihan dan kekurangan dari DBMS tersebut, menurut saya hampir sama, selama praktikum ini. Karena seperti yang telah kita ketahui persamaan dari keduanya.
          D.   Evaluasi Perbandingan DBMS MySQL dan DBMS PostgreSQL
Pada bagian ini, saya tidak akan meng-capture satu-satu setiap nomor yang akan saya bandingkan, karena sudah terjawab di bagian tugas rumah tadi, bahwa dalam praktikum kali ini, setelah saya mengerjakan nomor 1 sampai nomor 6, semua query yang dipakai  pada fungsi agregat dan view pada kedua DBMS adalah sama. Alasannya, karena bahasa yang dipakai oleh kedua DBMS yaitu MySQL maupun PostgreSQL adalah bahasa SQL, yaitu suatu bahasa (language) yang digunakan untuk mengakses database yang sudah memiliki standar ISO dan ANSII ditetapkan untuk SQL. Sehingga termasuk pada praktikum kali ini, yaitu pada fungsi agregat dan fungsi view, struktur query yang dipakai untuk kedua fungsi tersebut sama. Jadi teman-teman, fungsi agregasi dan view pada DBMS PostgreSQL dan DBMS MySQL adalah sama. Sehingga lebih mudah bagi kita untuk menggunakannya pada kedua DBMS tersebut.
Apabila kita membicarakan kelebihan dan kekurangan dari DBMS tersebut, menurut saya hampir sama, selama praktikum ini. Karena seperti yang telah kita ketahui persamaan dari keduanya.
E.     Kesimpulan, Saran, Kritik dan Manfaat bagi Pembaca
1.      Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan bahwa Agregasi dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau kombinasi kolom yang dipilih. Fungsi agrgasi dapat digunakan menggunakan operator-operator agregasi seperti COUNT, MIN, MAX, SUM dan AVG. Kita juga dapat menggunkan fungsi Group By, Having dan Case. Sedangkan View merupakan suatu tampilan tabel virtual. Dengan kata lain, views merupakan perintah SELECT yang disimpan, sehingga setiap saat kita membutuhkannya, kita dapat langsung memanggilnya tanpa perlu mengetikkan perintah SELECT kembali.
2.      Saran
Diperlukan pembelajaran lebih lanjut mengenai agregasi dan view dalam database menggunakan PostgreSQL maupu MySQL agar praktikan dapat menguasai kedua DBMS tersebut dalam membuat database yang lebih baik.
3.      Kritik
Dalam laporan ini, masih banyak terdapat kekurangan karena terbatasnya pengetahuan saya dalam menguasai 2 DBMS yang digunakan dalam praktikum ini.        
4.      Manfaat
Manfaat yang akan didapat pembaca dalam laporan ini antara lain dapat mengetahui struktur query fungsi agregasi dan operator-operator agregasi yang digunkan  dalam database. Pembaca juga dapat mengetahui fungsi view dalam sebuah database. Pembaca juga dapat mengetahui persamaan dari kedua DBMS tersebut.