1.1 AGREGATE OPERATOR
Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil. Fungsi agregat adalah fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan summary, fungsi statistik standar yang dikenakan pada suatu tabel atau query. Macam-macam fungsi agregasi dalam SQL adalah sebagai berikut :
a. AVG(ekspresi)
Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atau ekspresi. Ekspresi dalam fungsi AVG umumnya adalah nama kolom. Kolom yang dicari nilai rata-ratanya adalah kolom dengan tipe data numerik. Berikut ini query dari AVG:
select avg(jumlah_id) from nama_tabel;
b. COUNT(x)
Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom dari suatu tabel. X adalah nama kolom yang ingin dicari jumlah barisnya. Berikut ini query dari COUNT:
select count(*) from nama_tabel;
c. MAX(ekspresi)
Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel. Kolom yang dicari nilai terbesarnya memiliki tipe data numerik. Berikut ini query dari MAX:
select max(jumlah_id) from nama_tabel;
d. MIN(ekspresi)
Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel. Kolom yang dicari nilai terkecilnya memiliki tipe data numerik. Berikut ini query dari MIN:
select min(jumlah_id) from nama_tabel;
1.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. Disebut juga dapat digunakan bersama dengan fungsi kelompok untuk mengambil data dikelompokkan sesuai dengan satu atau lebih kolom. Adapun bentuk umum klausa GROUP BY sebagai berikut: SELECT nama_kolom, aggregate_function (nama_kolom)
FROM nama_tabel WHERE nama_kolom operator nilai GROUP BY nama_kolom
1.3 HAVING
Pemakaian HAVING digunakan untuk menyaring data berdasarkan fungsi kelompok. Hal ini mirip dengan kondisi Where tetapi digunakan dengan fungsi kelompok, fungsi kelompok tidak dapat digunakan dalam mana klausul tetapi dapat digunakan dalam klausa having.
Bentuk umum HAVING: SELECT nama_kolom, aggregate_function (nama_kolom)
FROM nama_tabel WHERE nama_kolom operator nilai GROUP BY nama_kolom HAVING aggregate_function (nama_kolom) Nilai operator
1.4 CASE
Kata Where menggunakan perbandingan untuk mengontrol pemilihan data, sedangkan case perbandingan dalam bentuk output kolom. Jadi intinya penggunaan Case akan membentuk output sendiri berupa sebuah kolom baru dengan data dari operasi yang didalamnya. 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 ;
1.5 VIEW
Definisi view adalah hasil (result) dari sebuah Query terhadap relasi- relasi dasar (atau relasi real). Hasil (view) ini tidak disimpan dalam database seperti relasi dasar. Sebuah view adalah sebuah jendela dinamik, dalam artian bahwa ia mencerminkan semua update yang dilakukan terhadap database. Disamping pemakaiannya di dalam skema external, view juga berguna untuk menjamin data- security dengan cara yang sederhana. Dengan memilih subset dari database, view dapat menyembunyikan beberapa data.
Jika user mengakses database melalui view, mereka tak dapat melihat atau memanipulasi hidden-data, dengan demikian data akan menjadi secure.
Perhatikan bahwa dalam sistem DBMS terdistribusi, sebuah view dapat diturunkan dari relasi-relasi terdistribusi. Akses ke sebuah view akan memerlukan eksekusi dari query terdistribusi yang berhubungan dengan definisi view tersebut. Berikut query pada VIEW:
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 :
Catatan : Query diatas merupakan query untuk menampilkan data menggunakan query sql select.
Berikut adalah tabel contoh kasus penggunaan VIEW :
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 bisa melihat hasil, kita bisa menggunakan query select :
select * from total_pelanggan;Maka, hasilnya yaitu :
2. Hasil Praktikum
2.1 Tugas Praktikum
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.
2. Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
3. Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:
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.
3. Tugas Rumah
3.1 Laporan praktikum menggunakan DBMS mysql
Tugas Praktikum
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.
2. Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
3. Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:
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.
3.2 Evaluasi perbedaan kelebihan dan kemudahan dari postgreSQL dan MySQL
Berikut contoh perbedaan pada PostgreSQL dan MySQL:
PostgreSQL
MySQL
4. Kesimpulan dan Saran
4.1 Kesimpulan
Pada praktikum kali ini, kita belajar tentang Macam-macam fungsi agregasi dalam SQL adalah sebagai berikut :
- Count : fungsi ini digunakan untuk mendapatkan nilai banyaknya record dari query.
- Sum : fungsi ini digunakan untuk mendapatkan nilai total suatu atribut bertipekan numeric dari query.
- Avg : fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu atribut bertipe numeric hasil query.
- Max : fungsi ini digunakan untuk mendapatkan nilai terbesar dari suatu atribut hasil query
- Min : fungsi ini digunakan untuk mendapatkan nilai terkecil dari suatu atribut hasil query.
Group By digunakan untuk melakukan pengelompokan data, Having digunakan untuk menentukan kondisi bagi klausa Group By, Case yang akan membentuk output tersendiri berupa sebuah kolom baru dengan data dari operasi yang di dalamnya, View merupakan suatu relasi virtual yang tidak perlu ada database tetapi dapat diproduksi atas permintaan oleh pemakai tertentu, pada ketika permintaan.
4.2 Saran dan Manfaat Bagi Pembaca
Dengan melakukan dua kali percobaan, membuat kita tahu bahwa pada praktikum kali ini semua query pada postgreSQL dan MySQL sama. Semoga pembaca dapat mengikutinya dirumah. Sekian :)
Daftar Pustaka
- Modul Praktikum Desain Basis Data
- Sanjaya, Ridwan. 2005. Pengolahan Database MySQL dengan Java 2. Yogyakarta: Andi
- Nugroho, Bunafit. 2005. Administrasi Database MySQL. Yogyakarta:Graha Ilmu
- http://ahmadfitriboy.trigunadharma.ac.id/wp-content/uploads/2012/06/CHAPTER6.pdf
- http://mas-anto.com/wp-content/uploads/2013/10/tutorial_sql_mysql.pdf
- http://honeyzharratih.blogspot.com/2011/03/penggunaan-like-having-dan-group-by.html
- http://fairuzelsaid.wordpress.com/2012/06/10/sql-klausa-group-by/
- http://www.haritsthinkso.com/2009/12/pengertian-view-pada-database.html