PRAKTIKUM V
AGREGASI SQL dan VIEW
Apa kabar, kawan blogger..., pastinya harus pada sehat semua yak.
Jangan bosen-bosen maen ke blogku. Meskipun isinya ya begini-gini aje.. :D
Kali ini ak ng-post tentang AGREGASI SQL dan VIEW, ini praktikum yang
ke-5, bray..
Apaan sih AGREGASI SQL dan VIEW itu ????????. check it out !!!!
A.
LANDASAN TEORI
Fungsi Agregasi
Biasanya digunakan untuk menampilkan
kebutuhan perolehan data, seperti cara menampilkan banyaknya record, total
nilai suatu atribut, rata-ratanya nilai atribut, nilai terkecil ataupun terbesar,
dsb.
Macam-macam fungsi agregasi di
sini yaitu :
1.
Count :
dipakai untuk mendapatkan nilai banyaknya record
2.
Sum :
dipakai untuk mendapatkan nilai total
3.
Avg :
dipakai untuk mendapatkan nilai rata-rata
4.
Max :
dipakai untuk mendapatkan nilai tertinggi atau terbesar
5.
Min :
dipakai untuk mendapatkan nilai terkecil atau terendah
Note*) untuk SUM
dan AVG, maka nilainya harus numerik (INTEGER, SMALLINT, FLOAT/NUMBER).
Fungsi-fungsi itu kalo dikenain sama nilai NULL, maka nilai yang itu bakalan
diabaikan alias nggak ikut dihitung, terkecuali kata kunci COUNT(*).
Berikut ini contoh-contoh penggunaan fungsi agregasi SQL :
· Menampilkan banyak record dosen
select count(*) from DOSEN
· Menampilkan banyaknya mata kuliah pada semester
select count(*) from kuliah where semester =’6’
· Menampilkan total sks di semster 6
select sum (SKS) from kuliah where semester=’6’
· Menampilkan rata-rata sks untuk tiap-tiap semester
Select avg (SKS) from kuliah
· Menampilkan mhs dengan usia termuda
select max (TGL_LHR) from Mahasiswa
· Menampilkan mhs dengan usia tertua
select min(TGL_LHR) from Mahasiswa
Group by
Select nama_kolom from nama_tabel group by
nama_kolom;
Having
ini struktur yang dipakai
SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING AVG(nilai)>80;
+------------+------+-----------+ | nim | nama | rata_rata | +------------+------+-----------+ | 0911500101 | ADI | 82.0000 | | 0911500102 | IDA | 81.0000 | | 0911500103 | EDI | 80.6000 | | 0911500105 | ANI | 84.4000 | +------------+------+-----------+
Case
Perintah CASE ini sering dipakai untuk menampilkan nilai tertentu dari beberapa barisan data dengan syarat-syarat / kondisi yang kita beri. kalo di bahasa pemrograman CASE ini fungsinya hampir sama kaya IF condition. Bedanya perintah case itu dipakai untuk beberapa kondisi sekaligus, dan di dalam SQL, CASE nggak bisa berdiri sendiri tapi musti disisipin sama perintah SELECT.
begini contohnya :
menentukan kategori nilai :
SELECT no_induk, nilai, kategori =CASE WHEN nilai > 8.5 THEN ‘A’ WHEN nilai > 6.5 THEN ‘B’ WHEN nilai > 5.5 THEN ‘C’ WHEN nilai > 4.5 THEN ‘D’ ELSE ‘E’ END FROM daftar_nilai
Hasilnya =>
No_induk | Nilai | Kategori |
---|---|---|
IT1001 | 9 | A |
IT1002 | 8 | C |
IT1003 | 6 | B |
IT1004 | 4.5 | E |
IT1005 | 3 | E |
IT1006 | 5.5 | D |
IT1007 | 8 | B |
IT1008 | 7 | B |
IT1009 | 6 | C |
IT1010 | 6.5 | C |
View
Itu adalah sebuah virtual tabel yang dibangun dari satu atau beberapa table yang udah ada. biasa disebut table bayangan, tapi bukan 'temporary table'.
Penerapan VIEW diaplikasikan pada situasi berikut :
- Menangani data kompleks
- Menyederhanakan pandangan user terhadap data
- Memudahkan penggunaan query yang berulang
CREATE View
create view nama_table_view as query;
(query untuk nampilin data pakai query sql select
B.
HASIL PRAKTIKUM
POSTGRESQL
1.
Dari tabel Mahasiswa yang udah dibuat dengan
adanya tambahan gender. Sekarang tampilkan banyaknya data Mahasiswa yang udah
diinput. Trus, cari nim mahasiswanya yang paling kecil, paling besar, dan
rata-ratanya.
Server
[localhost]:
Database
[postgres]:
Port
[5432]:
Username
[postgres]: shinta
Password
for user shinta:
psql
(9.3.5)
WARNING:
Console code page (850) differs from Windows code page (1252)
8-bit characters might not work
correctly. See psql reference
page "Notes for Windows
users" for details.
Type
"help" for help.
postgres=#
select*from Mahasiswa;
nim_mah | nama_mah | alamat_mah | no_telp
| id_fak | gender
---------+----------+------------+--------------+--------+--------
11 | Riyan | Bandung
| 085735888090 | 1 | L
12 | Uta | Jakarta | 085735887770 | 1 | P
14 | Kadha | Jogja
| 085725884881 | 2 | P
15 | Made | Bali | 085725884800 | 3 | L
16 | Binta | Jogja
| 085725884111 | 3 | P
17 | Beni | Solo | 085725884121 | 2 | L
13 | Heru | Jakarta | 085725884880 | 2 | L
(7
rows)
postgres=#
select count(*) from Mahasiswa;
count
-------
7
(1 row)
postgres=#
select min(nim_mah) from Mahasiswa;
min
-----
11
(1 row)
postgres=#
select max(nim_mah) from Mahasiswa;
max
-----
17
(1 row)
postgres=#
select avg(nim_mah) from Mahasiswa;
avg
---------------------
14.0000000000000000
(1 row)
2. Menampilkan rata-rata id atau nim mhs yang data nimnya lebih
dari 12
postgres=# select avg(nim_mah) from Mahasiswa where
nim_mah>12;
avg
---------------------
15.0000000000000000
(1 row)
3. Menampilkan jumlah mhs berdasarkan fakultas. Biar hasilnya
jadi kaya begini..
postgres=# select nama_fak, count(*) from Mahasiswa,
Fakultas where Mahasiswa.id
_fak=Fakultas.id_fak group by nama_fak;
nama_fak | count
------------+-------
EKONOMI |
3
KEDOKTERAN | 2
SAINTEK |
2
(3 rows)
4. Menampilkan table kaya di nomer 3 dengan persyaratan jumlah
mhs yang lebih dari sama dengan 2 aja yang ditampilin.
postgres=# select nama_fak, count(*) from Mahasiswa,
Fakultas where Mahasiswa.id
_fak=Fakultas.id_fak group by nama_fak having count
(nama_fak)>=2;
nama_fak | count
------------+-------
EKONOMI |
3
KEDOKTERAN | 2
SAINTEK |
2
(3 rows)
5. Menampilkan data mhs dengan persyaratan, kalo jenis
kelaminnya “L” so otomatis bakalan tertulis “laki-laki” dan kalo jenis
kelaminnya atau gendernya “P” so otomatis akan tertulis”Perempuan”.
postgres=# select nim_mah, nama_mah, alamat_mah, id_fak,
no_telp, gender, case when gender='L' then 'Laki-laki' else 'Perempuan' end as
gender from Mahasiswa;
nim_mah | nama_mah
| alamat_mah | id_fak | no_telp | gender |
gender
---------+----------+------------+--------+--------------+--------+-----------
11 |
Riyan | Bandung |
1 | 085735888090 | L |
Laki-laki
12 | Uta | Jakarta |
1 | 085735887770 | P |
Perempuan
14 |
Kadha | Jogja |
2 | 085725884881 | P |
Perempuan
15 |
Made | Bali
| 3 | 085725884800 | L | Laki-laki
16 |
Binta | Jogja |
3 | 085725884111 | P |
Perempuan
17 |
Beni | Solo |
2 | 085725884121 | L |
Laki-laki
13 |
Heru | Jakarta |
2 | 085725884880 | L | Laki-laki
(7 rows)
6. Membuat view untuk query penampilan data mhs, fakultas. Ambil
berdasarkan nim_mah, nama_mah, nama_fak.
postgres=#
create view MahasiswaBaru as select nim_mah, nama_mah, nama_fak from
Mahasiswa,
Fakultas where Mahasiswa.id_fak=Fakultas.id_fak;
CREATE
VIEW
postgres=#
select*from MahasiswaBaru;
nim_mah | nama_mah | nama_fak
---------+----------+------------
11 | Riyan | SAINTEK
12 | Uta | SAINTEK
14 | Kadha | EKONOMI
15 | Made | KEDOKTERAN
16 | Binta | KEDOKTERAN
17 | Beni | EKONOMI
13 | Heru | EKONOMI
(7
rows)
postgres=#
1.
Dari tabel Mahasiswa yang udah dibuat dengan
adanya tambahan gender. Sekarang tampilkan banyaknya data Mahasiswa yang udah
diinput. Trus, cari nim mahasiswanya yang paling kecil, paling besar, dan
rata-ratanya.
2. Menampilkan rata-rata id atau nim mhs yang data nimnya lebih
dari 12
3. Menampilkan jumlah mhs berdasarkan fakultas.
Biar hasilnya jadi kaya begini..
4. Menampilkan table kaya di nomer 3 dengan persyaratan jumlah
mhs yang lebih dari sama dengan 2 aja yang ditampilin.
5. Menampilkan data mhs dengan persyaratan, kalo jenis
kelaminnya “L” so otomatis bakalan tertulis “laki-laki” dan kalo jenis
kelaminnya atau gendernya “P” so otomatis akan tertulis”Perempuan”.
6. Membuat view untuk query penampilan data mhs, fakultas. Ambil
berdasarkan nim_mah, nama_mah, nama_fak.
C. TUGAS
RUMAH
Evaluasi Perbedaan dari kedua
DBMS
Xampp Shell
|
PostgreSQL
|
Kelebihan dan kemudahan
|
Kelebihan dan kemudahan
|
Query yang dipakai sama dengan Query yang ada di dalam PostgreSQL.
|
Query yang ada di dalam postgerSQL sama dengan query yang ada di dalam Xampp Shell.
|
Bahasa yang dipakai bahasa SQL, sehingga mudah dipahami | Bahasa yang dipakai bahasa SQL, sehingga mudah dipahami |
D. EVALUASI
Evaluasi yang ada di dalam praktikum ini sama dengan Tugas Rumah. Jadi, intinya query yang dipakai tidak menyulitkan dan antara aplikasi xammp shell dengan postgreSQL sama.
E. KESIMPULAN
AGREGASI
|
KETERANGAN
|
Count
Sum
Avg
Max
Min
|
dipakai
untuk mendapatkan nilai banyaknya record
dipakai untuk mendapatkan nilai total
dipakai
untuk mendapatkan nilai rata-rata
dipakai untuk mendapatkan nilai tertinggi atau
terbesar
dipakai
untuk mendapatkan nilai terkecil atau terendah
|
Group by
|
Select nama_kolom from nama_tabel
group by nama_kolom;
|
Having
|
SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING AVG(nilai)>80;
|
Case
|
select txt_namadepan, txt_namaakhir, dt_tgllahir, case when dt_tgllahir < '1986-01-01' then 'dewasa' else 'balita' end as umur from pegawai ;
|
View
|
create view total_pelanggan as select pelanggan, sum (hargaorder) from pesanan group by pelanggan;
|
F. SARAN
dan KRITIK
Dalam praktikum kali ini,
praktikan jarang menemukan kesulitan-kesulitan yang ada baik dalam bentuk soal
maupun dalam bentuk querynya.
G. MANFAAT
Melalui praktikum ini ,pembaca
mampu memahami apa sih itu operator agregasi sql. Jadi, mempermudah dalam
menghitung sebuah data. Selain itu, juga bisa tahu apa ituView dan buat apa
View itu. Ini bisa jadi sebuah jembatan pemahaman awal untuk para pembaca.
H. Sumber-sumber
Mustafa, Aziz.Modul Desain Basis
Data.pdf
Subekti, Muhammad.2004.Sistem
Manajemen Basis Data.Jakarta.Ghalia Indonesia
http://web.unair.ac.id/admin/file/f_33720_SDP_5_SQL2.pdf
0 komentar:
Posting Komentar