LAPORAN PRAKTIKUM BASIS DATA
OLEH :
Y.NIMROD LEORI
2A / 42516006
D4 TEKNIK KOMPUTER & JARINGAN
POLITEKNIK NEGERI UJUNG PANDANG
2017
PRAKTIKUM 6
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
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 :
Nama : Y.Nimrod Leori NIM : 42516006
Prodi : D4 Teknik Komputer dan Jaringan
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
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 :
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 FILM GROUP BY JENIS HAVING COUNT(KODE_FILM)>1;
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.
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?
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
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
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
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.
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.