LAPORAN PRAKTIKUM BASIS DATA AGREGAT.doc

LAPORAN PRAKTIKUM BASIS DATA

PRAKTIKUM 6
FUNGSI AGREGAT & GROUP BY

OLEH :

Y.NIMROD LEORI
2A / 42516006
D4 TEKNIK KOMPUTER & JARINGAN

POLITEKNIK NEGERI UJUNG PANDANG
2017

Nama

: Y.Nimrod Leori

NIM

: 42516006


Prodi

: D4 Teknik Komputer dan Jaringan

LAPORAN PRAKTIKUM 6

A. TUJUAN PRAKTIKUM
1. Menggunakan fungsi-fungsi agregat
2. Mengelompokkan data dengn menggunakan klausa GROUP BY
3. Memadukan Fungsi Agregat dengan klausa GROUP BY
4. Menyaring pengelompokan data dengan klausa HAVING

B. TEORI DASAR
A. FUNGSI AGREGAT (COUNT, SUM, AVG, MIN, MAX)
Fungsi Agregat adalah fungsi-fungsi yang beroperasi pada sekumpulan baris
untuk menghitung dan menghasilkan nilai tunggal . Fungsi Agregat dipakai terutama
dalam report/laporan karena seringkali yang dibutuhkan adalah ringkasan (summary)
data di dalam tabel bukan data aktualnya
Fungsi


Keterangan

AVG()

Menghasilkan nilai rata-rata dari sebuah kolom

COUNT()

Menghasilkan jumlah baris pada sebuah kolom

MAX()

Menghasilkan nilai tertinggi dari sebuah kolom

MIN()

Menghasilkan nilai terendah dari sebuah kolom

SUM()


Menghasilkan jumlah nilai dari sebuah kolom

a. COUNT
Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Jika
menambahkan klausa WHERE, fungsi COUNT menampilkan banyaknya record yang
tersaring. Contoh : perintah untuk menghitung jumlah baris kolom jenis pada tabel
jenisfilm :

SELECT COUNT(JENIS) FROM JENIS FILM;
b. SUM
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel.
Contoh : perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm :
SELECT SUM(HARGA) FROM JENIS FILM;

c. AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada
tabel. Nilai 0 (nol) dalam suatu kolom tetap diperhitungkan, sedangkan jika tidak ada
nilai (kosong bukan nol) maka fungsi AVG akan mengabaikannya Contoh : perintah
untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm :

SELECT AVG(HARGA) FROM JENIS FILM;

d. MIN
Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada
tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel
jenisfilm :
SELECT MIN(HARGA) FROM JENIS FILM;

e. MAX
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada
tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel
jenisfilm :
SELECT MAX(HARGA) FROM JENIS FILM;

B. GROUP BY dan HAVING
Klausa GROUP BY digunakan untuk melakukan pengelompokan data.
Sebagai contoh, terdapat tabel film dengan data sebagai berikut : Akan ditampilkan
hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkan
berdasarkan kolom jenis pada tabel film :
SELECT JENIS, SUM(JML_FILM) FROM FILM GROUP BY JENIS;

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan dihasilkan. Contoh : perintah
untuk menampilkan data hanya kolom jenis yang dikelompokkan berdasarkan kolom
jenis, dimana jumlah film berdasarkan kelompoknya harus lebih besar dari satu
pada tabel film :
SELECT JENIS FROM
COUNT(KODE_FILM)>1;

FILM

GROUP

BY

JENIS

HAVING

Untuk efesiensi harus dimengerti urutan pemilihan Where, Group By dan Having :
· Where dipakai untuk filter baris-baris dari operasi yang dinyatakan oleh perintah

from.
· Group By dipakai untuk mengelompokkan hasil dari Where.
· Having dipakai untuk memfilter baris-baris dari hasil pengelompokan.

Daftar Alat dan Bahan
1.

Personal Komputer 1 Unit

2.

Software DBMS (MS. Access, SQL Server, MySQL, Visual Foxpro)

Keselamatan Kerja
1.

Sebelum melakukan langkah percobaan, pastikan kabel power terhubung ke Power
Supply.

2.


Matikan komputer setelah praktikum selesai.

C. PROSEDUR PERCOBAAN
1. Buatlah query menggunakan fungsi-fungsi agregat (COUNT, SUM, AVG, MAX, dan
MIN)
2. Buatlah query menggunakan klausa GROUP BY
3. Lakukan filtering kelompok data dengan menggunakan HAVING
4. Lakukan prosedur 1-3 pada query DBMS yang lain.

Pertanyaan dan Tugas

1. Apa kesimpulan yang Anda dapatkan pada praktikum ini?
2. Berikan contoh sintaks SQL masing-masing menggunakan Where dan Having,
jelaskan perbedaan hasil yang diperoleh !

D. HASIL DAN ANALISA PERCOBAAN
1. Hal pertama yang penulis lakukan adalah membuat database dengan mengisi data
setiap record dari field yang ada. Penulis menyamakan data yang ada pada DBMS
Ms.Access dan Oracle. Berikut merupakan data tabelnya


2. Selanjutnya penulis diharapkan dapat membuat query menggunakan fungsi-fungsi
agregat (COUNT, SUM, AVG, MAX, dan MIN). Berikut merupakan tampilan query
dari Ms.Access

Berikut merupakan tampilan query dari Oracle

Tampilan diatas menggunakan beberapa fungsi. COUNT(NIM) berarti
mengambil data dari field NIM dan menjumlahkan record yang ada pada field NIM
kedalam angka. SUM(nilai_akhir) berarti mengambil data dari field nilai_akhir dan
menjumlahkan isi data dari field itu kedalam angka. AVG(nilai_akhir) berarti
mengambil data dari field nilai_akhir dan merata-ratakan data dari field yang telah
ditentukan kedalam angka. MAX(nilai_akhir) berarti mengambil data dari field
nilai_akhir dan menentukan nilai tertinggi dari field tersebut. MIN(nilai_akhir) berarti
mengambil data dari field nilai_akhir dan menentukan nilai terendah dari field
tersebut. Semua fungsi ini mengambil data dari field nilai_akhir yang ada pada table
bernama Mahasiswa (kecuali Count, tetapi bisa juga mengisi nilai_akhir pada
parameternya).
Semua sintaks fungsi diatas dapat digunakan di Ms.Access, dapat digunakan
pada DBMS Oracle. Bahkan parameter yang digunakan di kedua DBMS ini sama.

Pada fungsi agregat AVG(), bisa pula diakali dengan menjumlahkan nilai dan
membaginya dengan jumlah record yang fieldnya terdapat data unik (Tidak boleh
kosong). Dapat disimpulkan bahwa semua sintaks pada Ms.Access dapat berjalan
pada Oracle.

3. Tahapan selanjutnya yaitu membuat query menggunakan klausa GROUP BY. Berikut
merupakan tampilan query dari Ms.Access

Berikut merupakan tampilan query dari Oracle

Tampilan diatas menggunakan klausa Group By. Klausa ini berarti
mengelompokkan suatu atau beberapa field. Penulis menggabungkan klausa group by
ini dengan fungsi count, dimana count akan menghitung jumlah record yang ada pada
suatu field dan group by akan mengelompokkan jumlah yang di hitung melalui count
dengan memperhatikan suatu field yang ditunjuk oleh group by. Pada penerapannya,
setelah fungsi count menghitung banyaknya record, dengan adanya group by, isi dari
count akan terbagi sesuai inputan field group by yang dimasukkan. Perlu
diperhatikan, bahwa saat menunjuk field group by, harus menunjuk pula field yang
ditunjuk itu pada perintah Select jika ingin ditampilkan keterangan count yang telah di
group by. Namun tidak diperbolehkan menunjuk field lain pada perintah select kecuali

yang ditunjuk pada field dari group by, sebab error akan terbaca mengenai bahwa jika
kita menunjuk field lain selain dari group by, akan berantakan tampilannya, dimana
jika pada penerapannya diatas hanya 3 record dengan 2 field yang terisi, maka akan
error jika ditambahkan field pada perintah select yang menampilkan beberapa record
selain dari yang di group by.
4. Selanjutnya penulis membuat query yang memfilter kelompok data dengan
menggunakan HAVING Berikut merupakan tampilan query dari Ms.Access

Berikut merupakan tampilan query dari Oracle

Pada tampilan diatas, menggunakan klausa group by dengan menggunakan
pula penyaring data having. Dengan sintaks seperti diatas, sama seperti sebelumnya,
yaitu menampilkan jumlah data pada suatu grup field. Dengan menggunakan
penyaring having, data yang tadi pada percobaan sebelumnya disaring sehingga yang
hanya ditampilkan hanyalah field warga_negara dengan isi datanya adalah Indonesia.
Perlu diketahui pula, jika menggunakan field having yang berbeda dengan group by,
harus menuliskan nama field pada perintah select. Group by dan having ini digunakan
setelah penulisan perintah from. Tampillan kedua query diatas sama persis, sebab
keduanya menggunakan sintaks yang sama.


ANALISIS
Pada praktikum ini, selain beberapa analisis yang telah tertera pada hasil, perlu
diketahui, bahwa kedua aplikasi DBMS yang penulis gunakan memiliki sintaks fungsi
yang sama. Menurut pengelamatan penulis, aplikasi DBMS Ms.Access dan Oracle
telah mencakup sintaks fungsi global untuk semua fungsi yang digunakan pada
praktikum ini .
Perbedaan Where dengan Having adalah where digunakan sebelum perintah
from, sedangkan having digunakan setelah perintah from. Where tidak berhubungan
dengan field yang diisi dengan yang ada pada perintah select, sedangkan pada Having
harus mengisi field yang sama pada perintah select. Having juga memiliki kelemahan,
yaitu tidak bisa berdiri sendiri sebagai penyaring, harus menggunakan klausa group
by sebelum melakukan penyaringan data yang diinginkan. Dengan kata lain, Where
dan Having memiliki fungsi yang sama, namun penempatannya yang berbeda.

E. KESIMPULAN

Fungsi Agregat adalah fungsi-fungsi yang beroperasi pada sekumpulan baris
untuk menghitung dan menghasilkan nilai tunggal . Fungsi Agregat dipakai terutama
dalam report/laporan karena seringkali yang dibutuhkan adalah ringkasan (summary)
data di dalam tabel bukan data aktualnya . Fungsi agregat ada beberapa macam,
seperti AVG(), berfungsi menghasilkan nilai rata-rata dari sebuah kolom, COUNT()
berfungsi menghasilkan jumlah baris pada sebuah kolom, MAX() berfungsi
menghasilkan nilai tertinggi dari sebuah kolom, MIN() berfungsi menghasilkan nilai
terendah dari sebuah kolom, SUM() berfungsi menghasilkan jumlah nilai dari sebuah
kolom.
Untuk efesiensi harus dimengerti urutan pemilihan Where, Group By dan
Having. Where dipakai untuk filter baris-baris dari operasi yang dinyatakan oleh
perintah from, Group By dipakai untuk mengelompokkan hasil dari Where, dan
Having dipakai untuk memfilter baris-baris dari hasil pengelompokan.