Posted by : Unknown
22 Oktober 2014
Muhamad Syahrul Efendi | 13650106 | Kelas A Hari
Jum'at
BAB I PENDAHULUAN
BAHASAN DAN TUJUAN PRAKTIKUM
Bahasan
dan Sasaran
Bahasan
-
Agregasi sql yang diperlukan dalam perhitungan data
- View
yang merupakan tabel bayangan yang berisi query baik dari satu tabel atau berbagai
tabel
Sasaran
1. Mahasiswa memahami
operator agregasi sql sehingga mempermudah dalam hal perhitungan data.
2. Mahasiswa memahami
cara penggunaan view.
Materi
AGREGATE
OPERATOR
Fungsi Agregate 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 agregate 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
|
Yogakarta
|
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
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
|
1
|
Harry Potter
|
JK Rowling
|
British
|
2002
|
2
|
Sistem Basis Data
|
Abdul Kadir
|
Andi
|
2002
|
3
|
Pemrograman
|
Abdul Kadir
|
Andi
|
2004
|
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
|
Untuk menampilkan
informasi jumlah total uang tiap tahunnya :
Select tahun_buk, sum(harga_buk) as total from buku group by tahun_buk;
Hasil :
Tahun
|
Total
|
2004
|
60000
|
2002
|
80000
|
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. Berikut
Struktur yang digunakan :
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
|
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
|
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
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
|
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
|
BAB III PENUTUP
PERBANDINGAN
Perbedaan dalam
Modul ini hanya pada penulisan Spasi ( jarak ) pada Operator Min, Max, AVG dan
COUNT, pada postgres bisa menggunakan spasi bisa tidak menggunakan, pada MySQL
harus tanpa Spasi.
KESIMPULAN
Operator MIN untuk mendapatkan Nilai Minimal pada suatu data.
Operator MAX untuk mendapatkan Nilai Maksimal pada suatu data.
Operator AVG untuk mengitung Nilai Rata-rata pada suatu data.
Operator Count untuk menghitung banyaknya jumlah data pada suatu data.
GROUP BY
merupakan fungsi yang
digunakan untuk melakukan pengelompokan dari
perintah SELECT.
HAVING terkait dengan
GROUP BY, kegunaanya
adalah untuk menentukan kondisi
bagi GROUP BY,
dimana kelompok yang
memenuhi kondisi saja yang akan
di hasilkan.
CASE merupakan perbandingan
dalam bentuk output kolom. Jadi intinya penggunaan CASE akan membentuk output tersendiri berupa
sebuah kolom baru dengan data dari operasi yang di dalamnya.
Kritik & Saran
Gunakan ketelitian untuk mengerjakan SQL agar terhindar dari kesulitan dan
kesalahan.
Manfaat Bagi Pembaca
Mampu memahami operator agregasi sql sehingga mempermudah dalam hal
perhitungan data.
Mampu memahami cara penggunaan view.
DAFTAR PUSTAKA
web.unair.ac.id/admin/file/f_33720_SDP_5_SQL2.pdf
id.slideshare.net/dimasje/bab-6-sql
m24klik.wordpress.com/2013/01/10/sql-functiongroup-by-having/
agunghermawan14.wordpress.com/2013/01/18/dml/