Selasa, 21 Oktober 2014

Laporan Praktikum Desain Basis Data 5 : Agregasi SQL dan View


A. LANDASAN TEORI

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

  2. 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.
  3. 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. 
   4. 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.
   5. 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.

B. HASIL PRAKTIKUM

         Soal Praktikum Ke 5 :
1.  Dari tabel mahasiswa yang telah dibuat  tambahkan 3 data lagi  ,  tambahkan kolom gender kemudian update datanya  dan  tampilkan banyaknya data mahasiswa yang telah di inputkan. Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
2.  Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
3.  Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut: 


4.  Tampilkan  seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
5.  Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
6.  Buatlah view untuk query  penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

1. Menggunakan PostgreSQL

 Tambahkan tiga data mahasiswa menggunakan perintah seperti yang pernah diulas pada praktikum sebelumnya, lalu tampilkan isi tabelnya menggunakan perintah query
SELECT * FROM mahasiswa;

Kemudian cari nim mahasiswa paling besar, paling kecil dan rata-rata dengan menggunakan perintah query 
SELECT MAX (nim_mah) FROM mahasiswa;
SELECT MIN (nim_mah) FROM mahasiswa;
SELECT AVG (nim_mah) FROM mahasiswa;

Lalu tampilkan rata-rata nim mahasiswa yang nimnya lebih dari 12 dengan perintah query
SELECT AVG (nim_mah) FROM mahasiswa WHERE nim_mah > 12;

 
Selanjutnya tampilkan jumlah mahasiswa berdasarkan fakultas menggunakan perintah query
SELECT nama_fak, COUNT(*) FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak;


Lalu tampilkan perintah seperti di atas, tetapi hanya yang berjumlah lebih dari 2 mahasiswa dengan perintah query
SELECT nama_fak, COUNT(*) FROM mahasiswa, fakultas  WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak HAVING COUNT (*) >2;


Kemudian tampilkan data mahasiswa, dengan syarat jika jenis kelaminnya “L” maka laki-laki, jika “P” maka perempuan dengan perintah query
SELECT nim_mah, nama_mah, gender_mah, CASE WHEN gender_mah=’L’ THEN ‘Laki-laki’ ELSE ‘Perempuan’ END AS jenis_kelamin FROM mahasiswa,fakultas WHERE mahasiswa.id_fak=fakultas.id_fak;

 *di atas saya menambahkan alamat_fak untuk kelengkapan saja

Sekarang buat tabel VIEW untuk penampilkan tabel mahasiswa dan fakultas berdasarkan nim_mah dan nama_fak menggunakan perintah query
CREATE VIEW informasi_mah AS SELECT nim_mah, nama_mah, nama_fak FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak;

Selanjutnya tampilkan view yang terlah dibuat  dengan perintah query
SELECT * FROM informasi_mah;

2. Menggunakan My SQL (Command Prompt)

Tambahkan tiga data mahasiswa menggunakan perintah seperti yang pernah diulas pada praktikum sebelumnya, lalu tampilkan isi tabelnya menggunakan perintah query
SELECT * FROM mahasiswa;
  
Kemudian cari nim mahasiswa paling besar, paling kecil dan rata-rata dengan menggunakan perintah query 
SELECT MAX (nim_mah) FROM mahasiswa;
SELECT MIN (nim_mah) FROM mahasiswa;
SELECT AVG (nim_mah) FROM mahasiswa;

Lalu tampilkan rata-rata nim mahasiswa yang nimnya lebih dari 12 dengan perintah query
SELECT AVG (nim_mah) FROM mahasiswa WHERE nim_mah > 12;

Selanjutnya tampilkan jumlah mahasiswa berdasarkan fakultas menggunakan perintah query
SELECT nama_fak, COUNT(*) FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak;

Lalu tampilkan perintah seperti di atas, tetapi hanya yang berjumlah lebih dari 2 mahasiswa dengan perintah query
SELECT nama_fak, COUNT(*) FROM mahasiswa, fakultas  WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak HAVING COUNT (*) >2;

Kemudian tampilkan data mahasiswa, dengan syarat jika jenis kelaminnya “L” maka laki-laki, jika “P” maka perempuan dengan perintah query
SELECT nim_mah, nama_mah, CASE WHEN gender_mah=’L’ THEN ‘Laki-laki’ ELSE ‘Perempuan’ END AS jenis_kelamin FROM mahasiswa,fakultas WHERE mahasiswa.id_fak=fakultas.id_fak;

Sekarang buat tabel VIEW untuk penampilkan tabel mahasiswa dan fakultas berdasarkan nim_mah dan nama_fak menggunakan perintah query
CREATE VIEW info_mah AS SELECT nim_mah, nama_mah, nama_fak FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak;

Selanjutnya tampilkan view yang telah dibuat  dengan perintah query
SELECT * FROM info_mah ORDER BY nim_mah ASC;
* "ORDER BY nim_mah ASC" perintah tersebut untuk menampilkan secara urut dari kecil ke besar

C. PERBANDINGAN PostgreSQL dan MySQL

    Dari praktik diatas disimpulkan bahwa perbedaan antara keduanya hanya sedikit, yakni terletak pada perintah query COUNT,AVG,MAX dan MIN. Pada postgreSQL perintah COUNT,AVG,MAX dan MIN tidak harus di gandengankan dengan tanda (*) ataupun (namakolom), akan tetapi jika pada MySQL harus digandengankan , Contohnya SELECT MAX(nim_mah) FROM mahasiswa; dan  pada perintah SELECT nama_fak, COUNT(*) FROM mahasiswa, fakultas WHERE mahasiswa.id_fak=fakultas.id_fak GROUP BY nama_fak;. jika tidak digandengkan maka akan error.

D. KESIMPULAN, MANFAAT dan SARAN

   Kesimpulan dari hasil praktikum yakni kita harus lebih jeli dan hati-hati ketika mengerjakan dan mencoba karna pada DBMS MySQL perintah yang diketik sangat sensitive dan itu berbeda pada PostgreSQL yang tidak berpengaruh ketika kita mengetik dengan huruf besar ke kecil ataupun sebaliknya.
     Sarannya mungkin sama saja dari percobaan praktikum pertama sampai kelima ini. Kita harus sering-sering mencoba,mencoba dan mencoba karena segala sesuatu akan mudah ketika kita terbiasa dengan sesuatu yang kita lakukan secara berulang dan teratur.
      Akhir kata, semoga laporan praktikum kelima tentang agregasi SQL dan view ini bermanfaat untuk para pembaca yang selalu ingin mencoba hal baru dan sedang belajar tentang database seperti saya :) Semoga bermanfaat dan terus mencoba. 

E. REFERENSI

Mustafa, Aziz .2014. Modul Praktikum DBD.pdf
Unknown Web Developer

Tidak ada komentar:

Posting Komentar