Sunday, 19 October 2014

Praktikum 5: AGREGASI SQL DAN VIEW



          Assalamu’alaikum sadayana, kumaha damang ?  aku harap pada sehat-sehat yaa :D
Kita jumpa lagi dalam pembahasan laporan praktikum ku. Kali ini praktikumku membahas tentang “AGREGASI SQL DAN VIEW”. Eits, jangan beranjak dulu, semuanya akan kita bahas bareng kok. Tetep semangat belajar ya temen-temen :D:D:D
Yang pertama, apasih yang dimaksud agregasi, view dan apa saja yang termasuk di dalamnya? Yuk mari cekidooot ------------

      A. Landasan Teori
1.    Agregasi
Fungsi agregasi digunakan untuk melakukan operasi pada kelompok-kelompok baris data. Agregasi dapat digabungkan dengan sebuah parameter seperti WHERE untuk menghasilkan suatu hasil yang lebih kompleks lagi.
Yang termasuk fungsi-fungsi agregasi adalah :
Ø  Average (AVG): digunakan untuk memperoleh nilai rata-rata dari seluruh nilai pada suatu kolom. Pemakaian fungsi Avg: SELECT AVG nama_kolom FROM nama_tabel;
Ø  Minimum (MIN): dugunakan untuk memperoleh nilai minimum (yang terkecil) dari suatu kolom). Pemakaian fungsi Min : SELECT MIN nama_kolom FROM nama_tabel;
Ø  Maximum (MAX): digunakan untuk memperoleh nilai maksimum (yang beesar) dari suatu kolom. Pemakaian fungsi max: SELECT MAX nama_kolom FROM nama_tabel;
Ø  Total (SUM): digunakan untuk memperoleh nilai penjumlahan seluruh baris pada suatu kolom. Pemakaian fungsi Sum: SELECT SUM nama_kolom FROM nama_tabel;
Ø  Count (COUNT): sering digunakan untuk menghitung jumlah tuple dalam suatu relasi. Pemakaian fungsi Count: SELECT COUNT nama_kolom FROM nama_tabel;

2.    Grup By
Group By merupakan fungsi yang digunakan untuk melakukan pengelompokan dari perintah SELECT. Group by seringkali diperlukan untuk menjalankan agregasi menjadi sebuah kelompok dari hasil Query. Berikut struktur SQL untuk penampilan data: SELECT nama_kolom FROM nama_tabel GROUP BY nama_kolom;

3.    Having
Jika suatu fungsi diterapkan pada grup by yang telah dibentuk, maka digunakan kalusa having setelah group by dan kelompok yang memenuhi kondisi saja yang akan di hasilkan. Query nya adalah : SELECT nama_kolom FROM nama_tabel GROUP BY nama_kolom HAVING kondisi;

4.    Case
Dalam prosesnya, SQL dapat bebas mengontrol data yang kembali dari query, kata WHERE menggunakan perbandingan untuk mengontrol pemilihan data, sedangkan CASE perbandingan dalam bentuk output kolom. Jadi penggunaan CASE akan membentuk output berupa sebuah kolom baru dengan data dari operasi yang di dalamnya. Struktur query dalam select sepertiberikut: CASE WHEN kondisi THEN hasil END;

5.    View
View dapat disebut tabel banyangan tetapi bukan temporary table,  bukan juga merupakan tabel yang asli. Suatu view adalah suatu relasi virtual yang tidak perlu ada database tetapi dapat dibuat atas permintaan pemakai. View juga dapat menyimpan perintah query, dan dapat mewakili sebuah subset dari tabel asli dan memilih kolom atau row tertentu dari tabel biasa. Berikut struktur query nya: CREATE VIEW nama_tabel_view as query;

      B.  Hasil Praktikum
          Oke fix, sekarang cuss ke soalnya yaa.. kali ini langsung aja kita bahas soalnya dan disertai gambar dari DBMS Potgre dan MySql.
1.    Dari tabel mahasiswa yang telah dibuat tampilkan banyaknya data mahasiswa yang telah di inputkan. Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.



Untuk menampilkan banyaknya data mahasiswa:
 SELECT count(*) from mahasiswa;


Untuk menampilkan nim mahasiswa yang paling kecil:
SELECT min(nim_mah) from mahasiswa;



Utnuk menampilkan nim mahasiswa yang paling besar:
 SELECT max(nim_mah) from mahasiswa;



Untuk menampilkan rata-rata dari nim mahasiswa:
SELECT avg(nim_mah) from mahasiswa;


2.    Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14:
SELECT avg(nim_mah) from mahasiswa where nim_mah > 14;



3.    Tampilkan jumlah mahasiswa berdasarkan fakultas:
SELECT nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak;


4.    Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari 3 saja yang ditampilkan:
SELECT nama_fak, count(*) from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak having count(nama_mah) > 3;


5.    Tampilkan jenis kelamin “L” menjadi “Laki-laki” dan “P” menjadi “Perempuan” pada tabel mahasiswa:
SELECT nim_mah, nama_mah, alamat_mah, id_fak, no_telp, gender, case when gender=’L’ then ‘Laki-laki’ else ‘Perempuan’ end as jenis_kelamin from mahasiswa;



6.    Buatlah view untuk query penampilan data mahasiswa, fakultas dan jurusan. Ambil berdasarkan nim, nama mahasiswa, nama fakultas, nama jurusan:
CREATE VIEW mahasiswa_baru as select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;



 C. Perbandingan dan Evaluasi 2 DBMS
Setelah menjelaskan teori dan membahas semua soalnya, sekarang kita sampai pada perbandingan kedua DBMS yaitu PostgreSQL dan MySql. Apasih yang berbeda dari keduanya? Hmm Alhamdulillah, kali ini keduanya cukup rukun, tidak ada perbedaan query dan perintah, semua query nya sama dari awal sampai akhir.

      D. Kesimpulan dan Penutup
Oke aku udah selesai nih, ga susah kan membuat AGREGASI SQL DAN VIEW? Mudah banget kok, ingat-ingat lagi yaa
Count: untuk menjumlahkan baris
Min: untuk mencari nilai minimum
Max: untuk mencari nilai maksimum
Avg: untuk mencari rata-rata
Group by: mengelompokkan suatu kolom
Having: group by yang diberikan suatu kondisi, jadi kolom tertentu saja yang ditampilkan
Case: menampilkan kolom baru, yang dibentuk dari kolom yang sudah ada
View: menampilkan tabel baru, yang bukan temporary table dan bisa ditampilkan kembali.
          Baiklah, sampai sini dulu yaa, kita jumpa lagi di sesi selanjutnya. Simak dan kunjungi terus blog ku buat nambah-nambah ilmu, silakan juga komentar atau bertanya apabila ada yang kurang jelas. Wassalamu’alaykum :)

      E.  Daftar Pustaka
Musthafa, Aziz. 2014. Modul Praktikum Desain Basis Data. Fakultas Sains Dan Teknologi UIN Malang.
Solichin, Achmad. 2010. MySQL dari Pemula Hingga Mahir diakses melalui http://achmatim.net/download/21/

Leave a Reply