AGREGASI SQL DAN VIEW
A. LANDASAN TEORI
1
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 dapat dilihat pada tabel berikut :
Agregate
|
Keterangan
|
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
|
Berikut
contoh aggregate query dari suatu tabel pegawai :
Id_peg
|
Nama_peg
|
Alamat_peg
|
Telp_peg
|
Jabatan_peg
|
1
|
Hendro
|
Solo
|
081223300
|
Teknisi
|
2
|
Tika
|
Semarang
|
0897735357
|
Sekretaris
|
3
|
Wijaya
|
Jogjakarta
|
0865433225
|
Kepala
|
4
|
Dodi
|
Banyuwangi
|
076544677
|
Staf
|
Untuk pencarian banyaknya pegawai kita bisa menggunakan query berikut:
select count (*) from pegawai;
hasil
: 4
untuk
pencarian nilai terbesar berdasarkan ID :
select
max(Id_peg) from pegawai;
hasi
: 4
untuk
pencarian nilai terkecil :
select
min(Id_peg) from pegawai;
hasil
: 1
untuk
pencarian rata-rata :
select
avg(Id_peg) from pegawai;
hasil
: 2.5000
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;
Contoh
:
Kode_buk
|
Judul_buk
|
Pengarang_buk
|
Penerbit_buk
|
Tahun_buk
|
Resensi_buk
|
Harga_buk
|
11
|
Harry Potter
|
JK Rowling
|
British
|
2002
|
Fiksi
|
50000
|
12
|
Sistem Basis
Data
|
Abdul Kadir
|
Andi
|
2002
|
Teks
|
30000
|
13
|
Pemrograman
|
Abdul Kadir
|
Andi
|
2004
|
Teks
|
60000
|
Untuk menampilkan informasi nama pengarang :
Select
pengarang_buk from buku group by pengarang_buk;
Hasil
:
Pengarang
JK
Rowling
Abdul
Kadir
Pada
hasil query terlihat pengarang muncul hanya sekali.
Untuk
menampilkan informasi nama pengarang beserta jumlah buku yang
dikarang
:
Select pengarang_buk, count(*) from buku group by pengarang_buk;
hasil:
Pengarang
|
Count(*)
|
JK
Rowling
|
1
|
Abdul
Kadir
|
2
|
Untuk menampilkan informasi buku tiap tahunnya :
Select tahun_buk, count(*) from buku group by tahun_buk;
Hasil :
Tahun
|
Count(*)
|
2004
|
1
|
2002
|
2
|
Untu menampilkan informasi jumlah total uang tiap tahunnya :
Select
tahun_buk, sum(harga_buk) as total from buku group by tahun_buk;
Tahun
|
Total
|
2004
|
60000
|
2002
|
80000
|
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 :
No
|
Tanggal
Order
|
Harga
Order
|
Pelanggan
|
1
|
2011/11/12
|
1000
|
Ratih
|
2
|
2011/10/23
|
1600
|
Anita
|
3
|
2011/09/02
|
700
|
Ratih
|
4
|
2011/09/03
|
300
|
Ratih
|
5
|
2011/08/30
|
2000
|
Teguh
|
6
|
2011/10/04
|
100
|
Anita
|
Sekarang jika kita ingin mencari pelanggan yang memiliki total order kurang dari 2000. Maka, kita dapat menggunakan statement :
select
pelanggan, sum (hargaorder) from pesanan group by pelanggan having
sum
(hargaorder) <2000;
Maka,
hasilnya :
Pelanggan
|
SUM(HargaOrder)
|
Anita
|
1700
|
Meskipun
SQL bukan merupakan sebuah prosedur bahasa perograman, namun
dalam
prosesnya dapat dengan bebas mengontrol data yang kembali dari query.
KataWHERE
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 didalam select seperti berikut :CASE WHEN condition
THEN result [WHEN ...] [ELSE result] END Berikut
contoh query penggunaan case, penentuan umur jika umurnya dibawah
1986-01-01 dianggap dewasa dan lebih dari itu dianggap remaja :select
txt_namadepan, txt_namaakhir, dt_tgllahir, case when dt_tgllahir <
'1986-01-01'
then 'dewasa' else 'balita' end as umur from pegawai
Hasil
:
txt_NamaDepan
|
txt_NamaAkhir
|
dt_TglLahir
|
Umur
|
Andhie
|
Lala
|
1960-08-08
|
Dewasa
|
Ade
|
Fajar
|
1986-11-01
|
Balita
|
Panuju
|
Sasongko
|
1970-09-12
|
Dewasa
|
Dudy
|
Rudianto
|
1973-12-11
|
Dewasa
|
Ana
|
Hidayati
|
1988-10-01
|
Balita
|
5. 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.
create
view nama_tabel_view as query;
Catatan
: Query diatas merupakan query untuk menampilkan data
menggunakan
query sql select.
Berikut
adalah tabel contoh kasus penggunaan VIEW :
Kita akan menggunakan tabel “pesanan”
No
|
Tanggal
Order
|
Harga
Order
|
Pelanggan
|
1
|
2011/11/12
|
1000
|
Ratih
|
2
|
2011/10/23
|
1600
|
Anita
|
3
|
2011/09/02
|
700
|
Ratih
|
4
|
2011/09/03
|
300
|
Ratih
|
5
|
2011/08/30
|
2000
|
Teguh
|
6
|
2011/10/04
|
100
|
Anita
|
Kita akan membuat view dari tabel diatas dengan ketentuan harga dikumpulkan
berdasarkan nama pelanggannya. Sebagai berikut :
create
view total_pelanggan as select pelanggan, sum (hargaorder) from
pesanan
group by pelanggan;
Untuk
melihat hasil kita bisa melakukan query select sebagai berikut :
Select
* from total_pelanggan;
Hasil
:
Pelanggan
|
SUM(HargaOrder)
|
Anita
|
1700
|
Ratih
|
2000
|
Teguh
|
2000
|
B.TUGAS PRAKTIKUM RUMAH
Menggunakan MySQL ==>
Nim : 12
Nama : edi
Alamat : malang
Fakultas : SAINTEK
Nim : 13
Nama : sinta
Alamat : jogja
Fakultas : SAINTEK
Nim : 14
Nama : luki
Alamat : ponorogo
Fakultas : PSIKOLOGI
Tampilan input dari tabel mahasiswa yang telah di buat di atas;
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.
Berikut query dan hasilnya untuk mencari nim-mah yang paling kecil;
Berikut query dan hasilnya untuk mencari rata-rata nim-mah;
2. Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
Berikut query dan tampilan hasil dari soal di atas;
3. Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti
berikut:
Berikut query beserta hasilnya dengan menggunakan MySQL;
|
4. 4.)Tampilkan
seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama
dengan saja
yang di tampilkan.
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.
C.PERBANDINGAN POSTGRE DAN MYSQL
Dilihat dari segi perbedaan dan kesamaan :
S Semua penulisan query MySQL dan PostgreSQL sama pada pembahasan Agregasi SQL dan View.
Dilihat dari segi kelebihan dan kekurangan :
· Kelebihan : Sama-sama mampu melatih ketelitian
kita
· Kekurangan : PostgreSQL kurang unggul dalam hal
ketersediaan fungsi.
3.
D.KESIMPULAN
Dalam percobaan ini kita Dapat
menarik kesimpulan bahwa :
Fungsi aggregate atau disebut
fungsi ringkasan digunakan untuk melakukanpenghitungan menjadi sebuah nilai
dari beberapa nilai input.Aggregate dapat digabungkan dengan sebuah parameter
seperti WHERE untuk menghasilkan suatu hasil yang lebih kompleks lagi. Aggregate
dapat digabungkan dengan sebuah parameter seperti WHERE untuk menghasilkan
suatu hasil yang lebih kompleks lagi.
Group By merupakan fungsi yang
digunakan untuk melakukan pengelompokan dari perintah SELECT.
Pemakaian HAVING terkait dengan
GROUP BY, kegunaanya adalah untuk menentukan kondisi bagi GROUP BY, dimana
kelompok yang memenuhi kondisi saja yang akan di hasilkan
Views dapat juga disebut tabel
bayangan tetapi buka temporary table, bukan juga merupakan sebuah tabel yang
asli 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
E. KRITIK DAN SARAN
Postgre lebih sedikit rempong di banding MySQL
F.DAFTAR PUSTAKA
Modul Praktikum DBD V
Tidak ada komentar:
Posting Komentar