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;
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.