Pages

LAPORAN PRAKTIKUM DESAIN BASIS DATA V (AGREAGASI DAN VIEW)


Semoga laporan ini bermanfaat bagi siapa saja yang membacanya
Bismillah


LAPORAN PRAKTIKUM DESAIN BASIS DATA V AGREGASI SQL DAN VIEW
1.      Bahasan
-          Agregasi sql yang diperlukan dalam perhitungan data
-          View yang merupakan table bayangan yang berisi query baik dari satu table atau berbagi table
2.      Tujuan
-          Memahami operator agregasi sql sehingga mempermudah dalam hal perhitungan data
-          Memahami cara penggunaan view
3.      Landasan teori

Agregate Function
Selain dari pengolahan record-record, SQL juga menyediakan fungsi-fungsi agregate dalam SQL adalah untuk menghitung hasil tampilan. Karena ia sifatnya adalah untuk di tampilkan maka fungsi tersebut  tergolong dalam bagian sintak select. Beberapa jenis fungsinya  antara lain :
Nama fungsi
Fungsi
sum()
Menghitung jumlah ekspresi numerik
avg()
Menghitung rata-rata ekspresi numerik
min()
Menghitung angka minimal ekspresi numerik
max()
Menghitung angka maksimal ekspresi numeric
count()
Menghitung jumlah non-null ekspresi
count(*)
Menghitung jumlah baris
Untuk lebih jelas, perhatikan gambar berikut :

Dari table di atas, perhatikan pada kolom telepon dan umur, karena kedua kolom tersebut yang memiliki value aritmatika.
Perhatikan sintak dasar dari function aggregate di bawah ini :
mysql>select aggregate_function(nama_field) from nama_table;
contoh 1:
select sum(umur) from data;
Sub Agregate Dengan Group By
Fungsi Group By adalah untuk menyatukan antara beberapa field dalam sebuah table di mana salah satu field atau lebih menggunakan agregate function. Misalnya, jika kita ingin menampilkan nama dengan rata-rata umur setiap pelajar maka kita harus menggunakan sintak :
mysql>select field1, aggregate_function(field2) from nama_table order by field1;
contoh :
select alamat, avg(umur) from data group by alamat;
Menyaring Hasil Agregate Function (HAVING)

Untuk menyaring tampilan setelah dilakukan fungsi agregate, maka harus menggunakan keyword having. Misalnya untuk menyaring pelajar dengan umur di bawah 19 tahun, maka sintaknya adalah :
mysql>select field1, aggregate_function(field2) from nama_table group by field1 having agragate_function(field2) operator_perbandingan valuefield;
contoh :
select alamat, avg (umur) from data group by alamat having avg(umur) >20;
CASE
Di MySQL, pernyataan CASE digunakan untuk menerapkan bersyarat membangun kompleks dalam program disimpan.
Syntax
CASE value WHEN [compare_value] THEN result 
[WHEN [compare_value] THEN result ...] 
[ELSE result] 
 
OR
CASE WHEN [condition] THEN result 
[WHEN [condition] 
THEN result ...] 
[ELSE result] 
 
Sintaks pertama kembali hasil mana nilai = compare_value.
Sintaks kedua kembali hasil untuk kondisi pertama yang benar.
Daftar sesuai pernyataan SQL akan mengeksekusi ketika mengevaluasi kondisi pencarian ke true.
Daftar pernyataan dalam bagian ELSE akan mengeksekusi bila ada kondisi pencarian sesuai.
Jika tidak ada nilai pencocokan yang ditemukan di bagian ELSE, NULL akan dikembalikan.
Setiap pernyataan daftar dapat berisi satu atau lebih pernyataan dan daftar kosong pernyataan tidak diperbolehkan.

Jenis kembali ekspresi kasus kompatibel jenis gabungan semua kembali nilai-nilai dan tergantung pada konteks di mana ia digunakan. Jika digunakan dalam konteks numerik, hasilnya dikembalikan sebagai desimal, nyata atau integer nilai. Jika digunakan dalam konteks string, hasilnya dikembalikan sebagai string.

Catatan: Sintaks ekspresi kasus yang ditunjukkan di sini berbeda sedikit dari pernyataan SQL kasus, kasus sintaks, untuk digunakan dalam program disimpan. Pernyataan kasus tidak memiliki klausul lain NULL, dan ditutup dengan akhir kasus bukan akhir.
VIEW
VIEW adalah suatu relasi virtual yang tidak perlu ada database tetapi dapat diproduksi oleh pemakai tertentu, pada ketika permintaan
Contoh
CREATE VIEW SalePerOrder
AS
SELECT orderNumber,
SUM  (quantityOrdered * priceEach) total
FROM orderDetails
GROUP by orderNumber
ORDER BY total DESC
4.      Hasil Praktikum
Langsung saja, saya mencoba menjawab soal nomer 1
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.

Karena pada praktikum kemarin sudah menambahkan kolom gender dan mengupdate data-data yang telah ada, maka saya tidak akan mengulanginya lagi. Silahkan kunjungi laporan sebelumnya.
Kemudian untuk menampilkan banyaknya data mahasiswa yag telah diinputkan maka dapat melakukan query sebagai berikut
Select count(*) from nama_tabel;

Jadi tuliskan sintaks berikut untuk no.1 berdasarkan aturan sintaks diatas:
Select count(*) from mahasiswa;

kemudian, untuk soal mencari nilai terbesar dapat melakukan query berikut
Select max(nama_kolom) from nama_tabel;
Jadi kalo soalnya mencari nim terbesar, berdasarkan sintaks diatas, dapat dituliskan sintaks berikut
Select max(nim_mah) from mahasiswa;
Seperti gambar berikut:

Untuk mencari nilai terkecil, maka tinggal mengganti max menjadi min seperti sintaks berikut
Select min(nama_kolom) from nama_tabel;
Dan hasilnya jika diimplementasikan ke soal, maka menjadi seperti berikut:
Select min(nama_kolom) from nama_tabel;

Sekarang mencari rata-rata, maka lakukan query berikut :
Select avg(nama_kolom) from nama_tabel;
Jadi, dapat menjawab soal berdasarkan sintaks diatas
Select avg(nim_mah) from mahasiswa;

2.      Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
Untuk menjawab soal
Untuk menjawab soal no 2, kita dapat menggunakan query mencari rata-rata pada nomer 1, akan tetapi hanya perlu ditambahkan perintah AND
Maka, berikut hasilnya

3.      Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:
Nama fakultas
Count(*)
Saintek
2
Psikologi
1
Untuk menjawab soal ini, cek dulu data mahasiswa yang telah diinputkan, agar kita tahu bahwa query selanjutnya benar.
Data semua mahasiswa 

Kemudian, berikut adalah query untuk menampilkan jumlah mahasiswa yang ada di fakultas masing-masing

4.      Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
Untuk menjawab soal no.4, maka query yang dipakai seperti no.3. tetapi terdapat penambahan HAVING COUNT, yaitu untuk persyaratan dengan kondisi nim_mah tersebut memiliki banyak perhitungan yang dinginkan

Jika ingin ditambah dengan kondisi gender L/P, maka sintaksnya sebagai berikut

5.      Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
Untuk menjawab soal nomer 5, berikut adalah query nya

6.      Buatlah view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Untuk menjawab no.6, maka kita membuat view nya terlebih dahulu, seperti sintaks dibawah ini

Kemudian tampilkan view yang telah dibuat, maka hanya menggunakan sintaks untuk menampilkan table seperti biasanya

EVALUASI PERBANDINGAN 2 DBMS
Perintah
MySQL
PostgreSQL
Keterangan
Menampilkan banyaknya data yang telah diinputkan
Select count(*) from mahasiswa;

Select count(*) from mahasiswa;

sama
Mencari nim terkecil
Select min(nim_mah) from mahasiswa;
Select min (nim_mah) from mahasiswa;
Perbedaan berada di spasi setelah min
Mencari nim terbesar
select max(nim_mah) from mahasiswa;
select max (nim_mah) from mahasiswa;
Perbedaan berada di spasi setelah max
Mencari rata-rata
select avg(nim_mah) from mahasiswa;
select avg (nim_mah) from mahasiswa;
Perbedaan berada di spasi setelah avg
Mencari rata-rata dengan kondisi
select avg (nim_mah) from mahasiswa where nim_mah>=18;
select avg(nim_mah) from mahasiswa where nim_mah>=18;
Perbedaan berada di spasi setelah avg
Menampilkan banyak data mahasiswa sesuai fakultas
select nama_fak, count(*) from fakultas, mahasiswa where fakulta
s.id_fak=mahasiswa.id_fak group by nama_fak;
select nama_fak, count(*) from fakultas, mahasiswa where fakulta
s.id_fak=mahasiswa.id_fak group by nama_fak;
sama
Menampilkan data mahasiswa sesuai fakultas dengan kondisi gender
select nama_fak, count(*) from fakultas, mahasiswa where fakulta
s.id_fak=mahasiswa.id_fak and gender='L' group by nama_fak;
select nama_fak, count(*) from fakultas, mahasiswa where fakulta
s.id_fak=mahasiswa.id_fak and gender='L' group by nama_fak;
sama
Menampilkan banyaknya data mahasiswa yang lebih dari 2 atau sama dengan 2 bila dikelompokkan sesuai fakultas
select nama_fak, count(*) from fakultas, mahasiswa where fakulta
s.id_fak=mahasiswa.id_fak and gender='P' group by nama_fak having count(nim_mah)
>=2;
select nama_fak, count(*) from fakultas, mahasiswa where fakulta
s.id_fak=mahasiswa.id_fak and gender='P' group by nama_fak having count(nim_mah)
>=2;
sama
Menampilkan data mahasiswa dengan persyaratan jika L menjadi laki-laki dan p menjadi perempuan
select nim_mah, nama_mah, alamat_mah, no_tlp, case when gender='
P' then 'laki-laki' else 'perempuan' end as jenis_kelamin from mahasiswa;
select nim_mah, nama_mah, alamat_mah, no_tlp, case when gender='
P' then 'laki-laki' else 'perempuan' end as jenis_kelamin from mahasiswa;
sama
Membuat view
create view mahasiswa2 as select nim_mah, nama_mah, nama_fak fro
m mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
create view mahasiswa2 as select nim_mah, nama_mah, nama_fak fro
m mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
sama
KESIMPULAN

-          Agregasi operator adalah fungsi operator untuk menghitung hasil tampilan, yaitu dengan menggunakan perintah select kemudian diikuti oleh operator agregasi diantaranya ialah sum, avg, min, max dan lain-lain
-          Group by merupakan fungsi yang digunakan untuk pengelompokan dari perintah select
-          Pemakaian HAVING terkait dengan GROUP BY, kegunaannya adalah untuk menentukan kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan dihasilkan
-          Penggunaan CASE akan membentuk output tersendiri berupa sebuah kolom baru dengan data dari operasi yang didalamnya
-          VIEW adalah suatu relasi virtual yang tidak perlu ada database tetapi dapat diproduksi oleh pemakai tertentu, pada ketika permintaan
KRITIK SARAN DAN MANFAAT
Kritik dan sarannya, bisa dikembangkan bagaimana penggunaan agregasi dalam mengoperasikan sebuah tabel
Manfaatnya, semoga bermanfaat dalam segala pembidangan dalam sql di kemudian hari

REFERENSI
http://uc1n-klik.blogspot.com/2010/11/agregate-function-dan-phpmyadmin.html
http://www.w3resource.com/mysql/control-flow-functions/case-operator.php
http://www.mysqltutorial.org/create-sql-views-mysql.aspx
Modul Praktikum dbd v.pdf
http://dev.mysql.com/
w3schools.com/

fitri

2 komentar:

  1. Saya ingatkan lagi,

    Evaluasi Perbandiangan Berisi

    Perbedaan,Persamaan, Kelemahan, Kelebihan masing-masing DBMS dalam konteks Bab tertentu…

    BalasHapus
  2. sudah ada di tabelnya kan mas -_-

    BalasHapus

Pengunjung

Instagram