Sabtu, 18 Oktober 2014

LANDASAN TEORI



Landasan Teori
“Agregasi SQL dan View”

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 :
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

Untuk pencarian banyaknya pegawai kita bisa menggunakan query berikut :
select count(*) from pegawai;
Untuk pencarian nilai terbesar berdasarkan ID :
select max(Id_peg) from pegawai;
Untuk pencarian nilai terkecil :
select min(Id_peg) from pegawai;
Untuk pencarian rata-rata :
select avg(Id_peg) from pegawai;

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;

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.
Contoh :
select pelanggan, sum (hargaorder) from pesanan group by pelanggan having sum (hargaorder) <2000;

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 ;

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.

Pengelompokan Data dan Agregasi Fungsi
Agregasi dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau kombinasi kolom yang dipilih.
Beberapa fungsi untuk agregasi adalah:
· MAX         : Mencari data terbesar dari sekelompok data
· MIN          : Mencari data terkecil dari sekelompok data
· COUNT    : Mencari cacah data
· SUM          : Mencari jumlah dari sekumpulan data numeris
· AVG         : Mencari nilai rata-rata dari sekumpulan data numeris

Sintaks SQL untuk melakukan pengelompokan adalah
SELECT field-1, …, field-n, fungsi_untuk_agregasi(nama_field)
FROM table
GROUP BY field-1, …, field-n
Untuk memperjelas mekanisme pengelompokan, kita gunakan contoh tabel P berikut :
nim      kodemk           thnakademik   nilai     bobot
50        A1                   1999/2000       B         3
50        A1                   2000/2001       B         3
60        A1                   2000/2001       A         3         
50        A1                   2001/2002       B         3
50        A2                   2001/2002       B         2
60        A2                   2002/2003       B         2
50        A2                   2003/2004       A         2
50        A1                   2004/2005       A         3
Penggunaan fungsi agregasi tanpa pengelompokan berarti melakukan agregasi dari seluruh data.

SELECT max(thnakademik) as thnambilterakhir
FROM P
Maka akan mengambil tahunakademik terbesar yaitu '2004/2005'
Penggunaan fungsi agregasi dengan pengelompokan berdasar pada kolom berarti melakukan pengelompokan dengan aturan dasar record-record yang memiliki nilai sama untuk kolom tersebut sebagai satu kelompok, dan bila nilai kolom pengelompokan tidak sama maka berada kelompok yang berbeda. Selanjutnya agregasi akan dilakukan untuk masing-masing kelompok data.

Agregasi berdasar kolom
SELECT nim as NIM, kodemk as KodeMK, max(thnakademik) as thnambilterakhir, nilai as Nilai
FROM P
GROUP BY nim
Maka akan membentuk kelompok seperti gambar di bawah ini:
NIM         KodeMK         thnambilterakhir          nilai    
50             A1                   2004/2005                   A                    
50             A2                   2003/2004                   A
60             A1                   2000/2001                   A                                            
60             A2                   2002/2003                   B

SELECT nim as NIM, kodemk as KodeMK, min(thnakademik) as thnambilpertama, nilai as Nilai
FROM P
GROUP BY nim
Maka akan membentuk kelompok seperti gambar di bawah ini:
NIM         KodeMK         thnambilpertama         nilai    
50             A1                   1999/2000                   B                    
50             A2                   2001/2002                   B
60             A1                   2000/2001                   A                                            
60             A2                   2002/2003                   B

Sintaks SQL untuk membentuk tabel P adalah
CREATE TABLE P (nim varchar(3), kodemk varchar(3), thnakademik varchar(10), nilai char(1), constraint pk_P primary key(nim));


Sumber (Daf_Pus) :
·         Modul 5 Praktikum DBD

Tidak ada komentar:

Posting Komentar