LAPORAN
PRAKTIKUM DESAIN
BASIS DATA
‘Agregasi SQL dan
View”
LANDASAN
TEORI
Terdapat
bermacam-macam operator perhitungan dalam SQL, diantaranya adalah sebagai
berikut:
- AGREGATE OPERATOR
Fungsi
aggregate atau disebut fungsi ringkasan digunakan untuk melakukan penghitungan
menjadi sebuah nilai dari beberapa nilai input. Aggregate dapat digabungkan
dengan sebuah parameter seperti WHERE untuk menghasilkan suatu hasil yang lebih
kompleks lagi. Adapun fungsi agregate
yang disediakan oleh PostgreSQL adalah :
COUNT(*) : Menghitung jumlah
baris
SUM(NAMA
KOLOM) : Menghitung penjumlahan data
MAX(NAMA_KOLOM) : Mencari nilai terbesar
MIN(NAMA
KOLOM) : Mencari nilai terkecil
AVG(NAMA
KOLOM) : Mencari nilai rata-rata
- 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.
- 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.
- CASE
Meskipun
SQL bukan merupakan sebuah prosedur bahasa perograman, namun dalam prosesnya
dapat dengan bebas mengontrol data yang kembali dari query. 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.
- VIEW
Views
dapat juga disebut tabel bayangan tetapi bukan temporary table, bukan juga
merupakan sebuah tabel yang asli. Suatu view adalah suatu relasi virtual yang
tidak perlu ada database tetapi dapat diproduksi atas permintaan oleh pemakai
tertentu, pada ketika permintaan. Satu lagi kelebihan yang dimiliki oleh view
yaitu dapat menyimpan perintah query, dan dapat mewakili sebuah subset dari
tabel asli dan memilih kolom atau row tertentu dari tabel biasa.
PERCOBAAN
- 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.
Mencari nilai tertinggi :
SELECT
max(nim_mahasiswa) FROM mahasiswa;
POSTGRESQL
MYSQL
Mencari nilai terendah :
SELECT
min(nim_mahasiswa) FROM mahasiswa;
POSTGRESQL
MYSQL
Mencari rata-rata :
SELECT
avg(nim_mahasiswa) FROM mahasiswa;
POSTGRESQL
MYSQL
- Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
SELECT
avg(nim_mahasiswa) FROM mahasiswa WHERE nim_mahasiswa >12;
POSTGRESQL
MYSQL
- Tampilkan jumlah mahasiswa berdasarkan fakultas.
SELECT
nama_fak, count(*) FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak;
POSTGRESQL
MYSQL
- Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
SELECT
nama_fak, count(*) FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak
HAVING count(*)>=2;
POSTGRESQL
MYSQL
- Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
SELECT nim_mahasiswa, nama_mahasiswa, CASE WHEN
gender='L' then 'laki-laki' else 'perempuan' end as gender FROM mahasiswa;
POSTGRESQL
MYSQL
- Buatlah view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
CREATE
VIEW mahasiswa_fakultas as select nim_mahasiswa, nama_mahasiswa, nama_fak FROM mahasiswa, fakultas WHERE
mahasiswa.id_fak=fakultas.id_fak;
POSTGRESQL
MYSQL
PERBANDINGAN
POSTGRESQL DAN MYSQL
Dalam percobaan
ini, tidak ada perbedaan yang amat mencolok seperti pada percobaan sebelumnya. Perbedaannya
mungkin hanya pada sisi kecepatan ketika eksekusi. Dalam mysql window query dan
hasil eksekusi query yang kita buat berbeda. Hal ini cukup menyusahkan karena
kita harus bolak balik mengklik window query untuk menuliskan query
selanjutnya.
Berbeda
dengan postgresql, tempat penulisan query dan hasil eksekusi berada dalam satu
window. Ini memudahkan, karena kita tidak perlu berganti-ganti window. Namun dalam
postgresql apabila terjadi error atau kesalahan penulisan, akan tertera pada
window tersebut. Di sana akan ditunjukan dibagian manakah letak keslahan kita. Jadi
akan terlihat berapa error atau kesalahan yang telah kita lakukan dalam
penulisan query.
Dalam mysql,
bentuk error tidak tercantum dalam window. Hanya terdapat peringatan letak
kesalahan saja. Terkadang letak kesalahannya tidak ditunjukkan. Jadi terkadang
kita sebagai user bingung, penulisan apakah yang salah dalam query tersebut.
KESIMPULAN
Terdapat
bermacam-macam operator yang data digunakan dalam perhitungan data, diantaranya
adalah agregate operator, group by, having, case, dan view.
Fungsi
aggregate atau disebut fungsi ringkasan digunakan untuk melakukan penghitungan
menjadi sebuah nilai dari beberapa nilai input. Adapun fungsi agregate yang
disediakan oleh PostgreSQL adalah COUNT(*) digunakan untuk menghitung jumlah
baris, SUM (menghitung penjumlahan data), MAX (mencari nilai terbesar), MIN (mencari
nilai terkecil), dan AVG (mencari nilai rata-rata).
Group
By merupakan fungsi yang digunakan untuk melakukan pengelompokan dari perintah
SELECT, seringkali diperlukan untuk menjalankan agregate menjadi sebuah
kelompok dari hasil Query.
Pemakaian
HAVING terkait dengan GROUP BY, kegunaanya adalah untuk menentukan kondisi bagi
GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan di hasilkan.
Penggunaan
CASE akan membentuk output tersendiri berupa sebuah kolom baru dengan
data dari operasi yang di dalamnya.
Views
dapat juga disebut tabel bayangan tetapi bukan temporary table, bukan juga
merupakan sebuah tabel yang asli. Suatu view adalah suatu relasi virtual yang
tidak perlu ada database tetapi dapat diproduksi atas permintaan oleh pemakai
tertentu, pada ketika permintaan.
KRITIK
DAN SARAN
Penjelasan
penulis tentang contoh-contoh penggunaan operator agregasi dan view kurang. Penulis
hanya menmberikan penjelasa singkat, dan contoh singakat dalam kasus tertentu. Penulis
tidak memberikan beberapa contoh lain atau kemungkinan lain yang bisa dilakukan
dengan operator tersebut.
Diharapkan
bagi penulis untuk memberikan banyak contoh tentang penggunaan operator
agregasi, supaya pembaca tidak merasa bingung dalam perhitungan data.
MANFAAT
- Pembaca dapat memahami operator agregasi sql sehingga mempermudah dalam hal perhitungan data.
- Pembaca dapat memahami cara penggunaan view.





























.png)
.png)
.png)

















