AGREGASI
SQL DAN VIEW
Dasar Teori :
ok
guys saat ini saya akan mengajak anda semuanya untuk belajar tentang Agregasi
Sql dan View , saya akan menjelaskan apa sajakah fungsi-fungsi yang terdapat
dalam fungsi agregasi sql itu : berikut
penjelasannya :
Fungsi
Agregat ;
Fungsi
– fungsi agregat ini adalah fungsi-fungsi yang mengambil koleksi ( suatu
himpnan atau beberapa himpunan) dan mengembalikan nilai tunggal. SQL
menyediakan lima fungsi agregat baku, yaitu :
1. SUM (Nilai keseluruhan atau total)
2. MAX ( Terbesar )
3. MIN
( Terkecil )
4. AVG
(Rata-Rata)
5. Count
( cacah jumlah )
Fungsi
agregasi digunakan untuk menampilkan kebutuhan perolehan data seperti
menampilkan banyaknya record, total nilai suatu atribut, rata-rata nilai
atribut, nilai atribut terbesar atau terkecil , dan lain sebagainya. Agregate
dapat digabungkan dengan sebuah parameter seperti WHERE untuk menghasilkan
suatu hasil yang lebih kompleks lagi. Macam-macam fungsi agregasi dalam SQL
adalah sebagai berikut :
1. Sum
: fungsi ini digunakan untuk menjumlah suatu kolom tertentu yang telah
definisikan
Sintak
:
SELECT
SUM (nama_kolom) FROM nama_tabel;
Contoh
:
SELECT SUM (SKS) FROM Mata_Kuliah;
2. Max Untuk mengetahui nilai terbesar dari sebuah
kolom tertentu dalam perintah select.
Sintak :
SELECT MAX nama_kolom
FROM nama_tabel;
Contoh :
SELECT
MAX (SKS) FROM Mata_Kuliah;
3. Min
: fungsi ini digunakan untuk mengetahui nilai terkecil dari sebuah kolom
tertentu
dalam perintah select.
SELECT
MIN nama_kolom FROM nama_tabel;
Contoh
:
SELECT
MIN (SKS) FROM Mata_Kuliah
4. Avg
: fungsi ini digunakan untuk menghitung nilai rata – rata dari suatu kolom
tertentu
yang
telah definisikan dalam perintah select.
Sintak :
SELECT
AVG nama_kolom FROM nama_tabel;
Contoh :
SELECT
AVG (SKS) FROM Mata_Kuliah
5. Count
: fungsi ini digunakan untuk menghitung jumlah baris dalam sebuah tabel.
Sintak :
SELECT
COUNT nama_kolom FROM nama_tabel;
Contoh :
SELECT
COUNT (*) FROM mahasiswa
SELECT
COUNT (SKS) FROM Mata_Kuliah
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 : GROUP BY berfungsi untuk menelompokkan suatu
data, namun pada pada fungsi ini juga biasanya paling banyak melibatkan
operator pembanding dan fungsi perhitungan
select nama_kolom from nama_tabel
group by nama_kolom;
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.Struktur didalam select seperti berikut :
CASE
WHEN condition THEN result
[WHEN
...]
[ELSE result] END
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.
view merupakan bentuk alternatif penyajian
data dari satu tabel atau lebih, beberapa tujuan membuat view adalah
meningkatkan keamanan data serta penyederhanaan bagi para pengguna.
create
view nama_tabel_view as query;
Catatan
: Query diatas merupakan query untuk menampilkan data menggunakan query sql
select.
Hasil
Praktikum
Ok guys sekarang kita akan mencoba memecahkan soal ,
kita kan sudah mengetahui tuh , apa saja yang termasuk didalam perintah AGREGASI
SQL DAN VIEW , nahhh sekarang agar pemahaman
kita bisa lebih makin mantab, gak ada salahnya kan untuk menjawab soal- soal
berikut ini .
Nim : 12
Nama : edi
Alamat : malang
Fakultas : SAINTEK
Nim : 13
Nama : sinta
Alamat : jogja
Fakultas : SAINTEK
Nim : 14
Nama : luki
Alamat : ponorogo
Fakultas : PSIKOLOGI
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.
Melihat soal seperti itu ,, Setelah saya berfikir –
fikir lebih baik saya membuat database dari awal aja, agar sesuai dengan
perintah di atas.
So jangan menyerah ya……
Pertama
masuk dulu ke cmd, kemudian aktifkan
mysql, setelah itu lakukan koneksi dengan mysql .
Caranya
berikut : cd C:\xampplite\mysql\bin
mysql –u root
Maka cmd kita telah terhubung dengan mysql .
selanjutnya
saya membuat database baru ,karena ini merupakan praktikum yang ke 5 , jadi
saya beri nama praktikum_5.
caranya : create database
praktikum_5;
Kemudian kita gunakan database tersebut.
Caranya : use praktikum_5 ;
Setelah itu kita buat tabel fakultas nya dulu ,
Caranya: create table fakultas (id_fak integer not
null, nama_fak varchar(25), primary key (id_fak));
Setelah itu kita masukkan data yang di fakultas .
Kita inisialisasikan bahwa jika id_fak = 1 maka berati
dia itu ada di fakultas ‘saintek’ sedangkan jika 2 merupakan fakultas
‘psikologi’;
Query nya :
insert into identitas values (1,’saintek’);
insert into identitas
values(2,’psikologi’);
Sekarang kita lihat tabel fakultas nya .
Caranya : Select * from fakultas;
Lah,,, setelah itu kita baru buat tabel mahasiswa nya
Caranya : create table mahasiswa(nim_mah integer not
null, nama varchar(25), alamat
varchar(20), id_fak integer not null references fakultas, primary
key(nim_mah,id_fak));
Ok kita tinggal memasukkan data yang di perintahkan
seperti diatas,
Caranya
: insert into mahasiswa values (12,
‘edi’, ‘malang’,1)
insert into mahasiswa values (13,
‘shinta’, ‘jogja’,1);
insert into mahasiswa values (14,
‘luki’, ‘ponorogo’ ,2);
Setelah itu kita lihat lagi tabel mahasiswa
Dengan cara : select * from mahasiswa;
Karena perintahnya disuruh tambahkan kolom gender ,
berati kita tambahkan satu kolom lagi, yaitu kolom gender pada tabel mahasiswa
Dengan cara : alter table mahasiswa add column gender
varchar(15);
Selanjutnya kita isikan gender nya pada tiap datanya
dengan cara update ,
Caranya :
update
mahasiswa set gender=’l’ where nim_mah=12;
update mahasiswa set gender=’p’ where nim_mah=13;
update mahasiswa set gender=’l’ where nim_mah=14;
Kita tampilkan lagi tabel mahasiswa yang telah kita
update :
Caranya : select * from mahasiswa;
Ok and fix tabel telah sesuai dengan perintah nya,
Nahh selanjutnya disini kita di perintahkan untuk
menampilkan nilai maksimal,nilai terkecildan rata-rata dari kolom nim_mah atau id mahasiswa di atas.
Untuk yang pertama kita disuruh mncari nilai terbesar
nya .
Caranya : select MAX (nim_mah) from mahasiswa;
Dan Untuk nim_mah terkecil :
Caranya : select MIN (nim_mah) from mahasiswa;
Adapun untuk mencari rata-rata dari nim mah:
Caranya : select AVG (nim_mah) from mahasiswa;
Ok selanjutnya kita beralih ke no 2.
2.
Tampilkan
rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
Caranya : select AVG (nim_mah) from mahasiswa where
nim_mah > ‘12’ ;
3.
Tampilkan jumlah
mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:
Nama fakultas
|
Count(*)
|
Saintek
|
|
Psikologi
|
|
Berikut query nya : select nama_fak , count (*) from
mahasiswa m, fakultas f where m.id_fak=f.id_fak group by nama_fak order by
nama_fak desc ;
4.
Tampilkan seperti
nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja
yang ditampilkan.
Caranya : select nama_fak , count (*) from mahasiswa m,
fakultas f where m.id_fak=f.id_fak group by nama_fak having count(*) >2;
Uppp disitu tertulis empty , yasudah deh kita ubah
menjadi >1;
Lah seperti berikut ini :
5.
Tampilkan data
mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki
dan bila “P” maka tertulis perempuan.
Caranya : select nim_mah, nama_mah, id_fak, no_telp,
case when gender=’l’ then ‘laki-laki’ else ‘perempuan’ end as kelamin from
mahasiswa;
6.
Buatlah view
untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama
mahasiswa, nama fakultas.
Berikut query nya : create view data_mahasiswa as
select nim_mah, nama_mah, nama_fak from mahasiswa m, fakultas f where m.id_fak=
f.id_fak;
Berikut tampilannya :
select * from data_mahasiswa;
Evaluasi
perbedaan kelebihan dan kemudahan dari kedua DBMS.
Kelebihan dan Kemudahan :
tiap
hasil praktikum, pasti kita disuruh membedakan perbedaan antar kedua DBMS, tapi
pada kali ini hanya di perintahkan untuk memberikan kelebihan dan kemudahan apa
yang di rasakan dalam menjalankan DBMS tersebut, oke deh menurut saya, saya
lebih suka menggunakan postgresql , Karena mudah untuk di pahami dan gak ribet.
Sebenarnya dalam cmd mysql juga mudah di pahami sih,,, tapi gak enak nya itu
kita harus mencari dulu query nya gimana , kalau gak sama dengan postgresql.
Dan cmd mysql itu lebih sensitif dari pada postgresql , salah dikit aja
langsung error dan aku langsung kebingungan . tapi kalau di postgresql erornya
itu saya masih bisa untuk membacanya error nya itu di bagian apa. Oh iya
database postgresql dan mysql ini merupakan database yang paling terkenal loohh
dan banyak di gunakan dalam pembuatan database, jadi beruntunglah kita jika
bisa menguasa dan fasih dalam penggunaannya.
Kesimpulan
Nahhh,,, tadi kita kan sudah belajar
mengenai agregasi sql dan view , dan kita juga telah mencoba menjawab soal yang
telah berkaitan seperti diatas tadi, dari semua itu dapat disimpulkan bahwa
agregasi merupakan proses untuk mendapatkan nilai dari sekumpulan data yang
telah dipilih. Dan lima fungsi agregat baku, yaitu :SUM (Nilai keseluruhan atau total), MAX ( Terbesar ), MIN ( Terkecil ), AVG
(Rata-Rata), Count ( cacah jumlah ).
Adapun
dalam fungsi group by itu kita mengelompokkan dari perintah select. Adapun
having ini erat kaitannya dengan group by , karena having ini adalah untuk
menentukan kondisi bagi GROUP BY itu sendiri berdasarkan kondisi yang
diinginkan, adapun case itu fungsinya hapir mirip dengan if else if, yaitu
untuk menentukan suatu kondisi yang di perkukan. Adapun yang terakhir perintah
view, lah view ini kayak apa ya,, pokoknya dia itu gak punya data sendiri, lah
tapi dapat menampilkan dari tabel lainnya. View ini dangat penting kaitannya
untuk memberikan keamanan data. Oh iya view ini bukan termasuk temporary loh…
Kritik dan Saran:
Sesungguhnya mengoperasikan suatu
database baik menggunkan postgreesql ataupun mysql itu mudah, tergantung kita
sendiri mau mencoba belajar atau tidak, karena kata pepatah gak ada yang gak
mungkin di dunia ini, hhe selama kita berusaha untuk bisa pasti kita akan bisa
, hanya saja kita harus lebih sabar n telaten dalam belajarnya, dan juga harus
paham apa yang di maksud dari perintah yang diinginkan tersebut, baru kita mencobanya,
jangan langsung di tulis gitu- gitu aja, syaratnya itu memang kita harus banyak
latihan,, hhee dan untuk lebih mudah dalam memahaminya menurutku sihh kita
belajar dalam postgresql nya dulu, setelah paham baru kita mengaplikasikannya
dengan mysql, jadi kita tidak akan kebngungan. Dan bisa menyelesaikannya baik
dalam bentuk postgresql dan mysql. Amiin .sekian makasih
Rujukan :
modul praktikum desain basis data
Nugroho Adi. 2011.
Perencangan dan Implementasi Basis Data. Yogyakarta: ANDI.
Tidak ada komentar:
Posting Komentar