Senin, 13 Oktober 2014

PENGGABUNGAN

PRAKTIKUM V
AGREGASI SQL dan VIEW


Apa kabar, kawan blogger..., pastinya harus pada sehat semua yak. Jangan bosen-bosen maen ke blogku. Meskipun isinya ya begini-gini aje.. :D
Kali ini ak ng-post tentang AGREGASI SQL dan VIEW, ini praktikum yang ke-5, bray..
Apaan sih AGREGASI SQL dan VIEW itu ????????. check it out !!!!

      A.      LANDASAN TEORI

Fungsi Agregasi

Biasanya digunakan untuk menampilkan kebutuhan perolehan data, seperti cara menampilkan banyaknya record, total nilai suatu atribut, rata-ratanya nilai atribut, nilai terkecil ataupun terbesar, dsb.
Macam-macam fungsi agregasi di sini yaitu :
1.       Count            : dipakai untuk mendapatkan nilai banyaknya record
2.       Sum              : dipakai untuk mendapatkan nilai total
3.       Avg                : dipakai untuk mendapatkan nilai rata-rata
4.       Max              : dipakai untuk mendapatkan nilai tertinggi atau terbesar
5.       Min               : dipakai untuk mendapatkan nilai terkecil atau terendah



Note*) untuk SUM dan AVG, maka nilainya harus numerik (INTEGER, SMALLINT, FLOAT/NUMBER). Fungsi-fungsi itu kalo dikenain sama nilai NULL, maka nilai yang itu bakalan diabaikan alias nggak ikut dihitung, terkecuali kata kunci COUNT(*).


Berikut ini contoh-contoh penggunaan fungsi agregasi SQL :
·        
Menampilkan banyak record dosen
       select count(*) from DOSEN
·        
Menampilkan banyaknya mata kuliah pada semester
       select count(*) from kuliah where semester =’6’
·        
Menampilkan total sks di semster 6
       select sum (SKS) from kuliah where semester=’6’
·        
Menampilkan rata-rata sks untuk tiap-tiap semester
       Select avg (SKS) from kuliah
·        
Menampilkan mhs dengan usia termuda
       select max (TGL_LHR) from Mahasiswa
·        
Menampilkan mhs dengan usia tertua
       select min(TGL_LHR) from Mahasiswa



Group by
               
ini fungsinya untuk mengelompokkan. Perintah ini dari perintah select. Biasanya agregasi ini diperlukan untuk menjalankan agregate menjadi sebuah kelompok dari hasil query.
Select nama_kolom from nama_tabel group by nama_kolom;
               
 Having

Pemakaian having ini berhubungan dengan “group by”, gunanya untuk menentukan kondisi bagi group by, dimana kelompok yang memenuhi kondisi aja yang bakalan dihasilkan. 

ini struktur yang dipakai

SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING AVG(nilai)>80;

+------------+------+-----------+
| nim        | nama | rata_rata |
+------------+------+-----------+
| 0911500101 | ADI  | 82.0000   |
| 0911500102 | IDA  | 81.0000   |
| 0911500103 | EDI  | 80.6000   |
| 0911500105 | ANI  | 84.4000   |
+------------+------+-----------+

Case

Perintah  CASE ini sering dipakai untuk menampilkan nilai tertentu dari beberapa barisan data dengan syarat-syarat / kondisi yang kita beri. kalo di bahasa pemrograman CASE ini fungsinya hampir sama kaya IF condition. Bedanya perintah case itu dipakai untuk beberapa kondisi sekaligus, dan di dalam SQL, CASE nggak bisa berdiri sendiri tapi musti disisipin sama perintah SELECT.
begini contohnya :

menentukan kategori nilai :
SELECT no_induk, nilai, kategori =CASE WHEN nilai > 8.5 THEN ‘A’ WHEN nilai > 6.5 THEN ‘B’ WHEN nilai > 5.5 THEN ‘C’ WHEN nilai > 4.5 THEN ‘D’ ELSE ‘E’ END FROM daftar_nilai
Hasilnya =>
No_induk Nilai Kategori
IT1001 9 A
IT1002 8 C
IT1003 6 B
IT1004 4.5 E
IT1005 3 E
IT1006 5.5 D
IT1007 8 B
IT1008 7 B
IT1009 6 C
IT1010 6.5 C





View

Itu adalah sebuah virtual tabel yang dibangun dari satu atau beberapa table yang udah ada. biasa disebut table bayangan, tapi bukan 'temporary table'.
Penerapan VIEW diaplikasikan pada situasi berikut :

- Menangani data kompleks
- Menyederhanakan pandangan user terhadap data
- Memudahkan penggunaan query yang berulang 

CREATE View

create view nama_table_view as query;
(query untuk nampilin data pakai query sql select





       B.      HASIL PRAKTIKUM

POSTGRESQL

1.       Dari tabel Mahasiswa yang udah dibuat dengan adanya tambahan gender. Sekarang tampilkan banyaknya data Mahasiswa yang udah diinput. Trus, cari nim mahasiswanya yang paling kecil, paling besar, dan rata-ratanya.

Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]: shinta
Password for user shinta:
psql (9.3.5)
WARNING: Console code page (850) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres=# select*from Mahasiswa;
 nim_mah | nama_mah | alamat_mah |   no_telp    | id_fak | gender
---------+----------+------------+--------------+--------+--------
      11 | Riyan    | Bandung    | 085735888090 |      1 | L
      12 | Uta      | Jakarta    | 085735887770 |      1 | P
      14 | Kadha    | Jogja      | 085725884881 |      2 | P
      15 | Made     | Bali       | 085725884800 |      3 | L
      16 | Binta    | Jogja      | 085725884111 |      3 | P
      17 | Beni     | Solo       | 085725884121 |      2 | L
      13 | Heru     | Jakarta    | 085725884880 |      2 | L
(7 rows)


postgres=# select count(*) from Mahasiswa;
 count
-------
     7
(1 row)


postgres=# select min(nim_mah) from Mahasiswa;
 min
-----
  11
(1 row)


postgres=# select max(nim_mah) from Mahasiswa;
 max
-----
  17
(1 row)


postgres=# select avg(nim_mah) from Mahasiswa;
         avg
---------------------
 14.0000000000000000
(1 row)


2.  Menampilkan rata-rata id atau nim mhs yang data nimnya lebih dari 12

postgres=# select avg(nim_mah) from Mahasiswa where nim_mah>12;
         avg
---------------------
 15.0000000000000000
(1 row)

3. Menampilkan jumlah mhs berdasarkan fakultas. Biar hasilnya jadi kaya begini..

postgres=# select nama_fak, count(*) from Mahasiswa, Fakultas where Mahasiswa.id
_fak=Fakultas.id_fak group by nama_fak;
  nama_fak  | count
------------+-------
 EKONOMI    |     3
 KEDOKTERAN |     2
 SAINTEK    |     2
(3 rows)

4.  Menampilkan table kaya di nomer 3 dengan persyaratan jumlah mhs yang lebih dari sama dengan 2 aja yang ditampilin.

postgres=# select nama_fak, count(*) from Mahasiswa, Fakultas where Mahasiswa.id
_fak=Fakultas.id_fak group by nama_fak having count (nama_fak)>=2;
  nama_fak  | count
------------+-------
 EKONOMI    |     3
 KEDOKTERAN |     2
 SAINTEK    |     2
(3 rows)

5. Menampilkan data mhs dengan persyaratan, kalo jenis kelaminnya “L” so otomatis bakalan tertulis “laki-laki” dan kalo jenis kelaminnya atau gendernya “P” so otomatis akan tertulis”Perempuan”.

postgres=# select nim_mah, nama_mah, alamat_mah, id_fak, no_telp, gender, case when gender='L' then 'Laki-laki' else 'Perempuan' end as gender from Mahasiswa;
 nim_mah | nama_mah | alamat_mah | id_fak |   no_telp    | gender |  gender
---------+----------+------------+--------+--------------+--------+-----------
      11 | Riyan    | Bandung    |      1 | 085735888090 | L      | Laki-laki
      12 | Uta      | Jakarta    |      1 | 085735887770 | P      | Perempuan
      14 | Kadha    | Jogja      |      2 | 085725884881 | P      | Perempuan
      15 | Made     | Bali       |      3 | 085725884800 | L      | Laki-laki
      16 | Binta    | Jogja      |      3 | 085725884111 | P      | Perempuan
      17 | Beni     | Solo       |      2 | 085725884121 | L      | Laki-laki
      13 | Heru     | Jakarta    |      2 | 085725884880 | L      | Laki-laki
(7 rows)

6.  Membuat view untuk query penampilan data mhs, fakultas. Ambil berdasarkan nim_mah, nama_mah, nama_fak.

postgres=# create view MahasiswaBaru as select nim_mah, nama_mah, nama_fak from
Mahasiswa, Fakultas where Mahasiswa.id_fak=Fakultas.id_fak;
CREATE VIEW
postgres=# select*from MahasiswaBaru;
 nim_mah | nama_mah |  nama_fak
---------+----------+------------
      11 | Riyan    | SAINTEK
      12 | Uta      | SAINTEK
      14 | Kadha    | EKONOMI
      15 | Made     | KEDOKTERAN
      16 | Binta    | KEDOKTERAN
      17 | Beni     | EKONOMI
      13 | Heru     | EKONOMI
(7 rows)


postgres=#



XAMPP SHELL

1.       Dari tabel Mahasiswa yang udah dibuat dengan adanya tambahan gender. Sekarang tampilkan banyaknya data Mahasiswa yang udah diinput. Trus, cari nim mahasiswanya yang paling kecil, paling besar, dan rata-ratanya.


   



           2. Menampilkan rata-rata id atau nim mhs yang data nimnya lebih dari 12







3. Menampilkan jumlah mhs berdasarkan fakultas. Biar hasilnya jadi kaya begini..




 



     4. Menampilkan table kaya di nomer 3 dengan persyaratan jumlah mhs yang lebih dari sama dengan 2 aja yang ditampilin.



5. Menampilkan data mhs dengan persyaratan, kalo jenis kelaminnya “L” so otomatis bakalan tertulis “laki-laki” dan kalo jenis kelaminnya atau gendernya “P” so otomatis akan tertulis”Perempuan”.






 
 6. Membuat view untuk query penampilan data mhs, fakultas. Ambil berdasarkan nim_mah, nama_mah, nama_fak.
  




        C.      TUGAS RUMAH
         Evaluasi Perbedaan dari kedua DBMS


Xampp Shell
PostgreSQL
Kelebihan dan kemudahan
Kelebihan dan kemudahan
       Query yang dipakai sama dengan Query yang ada di dalam PostgreSQL.
       Query yang ada di dalam postgerSQL sama dengan query yang ada di dalam Xampp Shell.
Bahasa yang dipakai bahasa SQL, sehingga mudah dipahamiBahasa yang dipakai bahasa SQL, sehingga mudah dipahami
      
 D.     
EVALUASI

        Evaluasi yang ada di dalam praktikum ini sama dengan Tugas Rumah. Jadi, intinya query yang dipakai tidak menyulitkan dan antara aplikasi xammp shell dengan postgreSQL sama.

        E.      KESIMPULAN

       AGREGASI
KETERANGAN
Count   

                     Sum      

               Avg

                                              
               Max                     

               Min                      
         dipakai untuk mendapatkan nilai banyaknya record
         dipakai untuk mendapatkan nilai total
         
           dipakai untuk mendapatkan nilai rata-rata
        
           dipakai untuk mendapatkan nilai tertinggi atau terbesar
         
           dipakai untuk mendapatkan nilai terkecil atau terendah

          Group by
Select nama_kolom from nama_tabel group by nama_kolom;


          Having
SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING AVG(nilai)>80;
          Case
select txt_namadepan, txt_namaakhir, dt_tgllahir, case when dt_tgllahir < '1986-01-01' then 'dewasa' else 'balita' end as umur from pegawai ;
         View
create view total_pelanggan as select pelanggan, sum (hargaorder) from pesanan group by pelanggan;



          F.      SARAN dan KRITIK

          Dalam praktikum kali ini, praktikan jarang menemukan kesulitan-kesulitan yang ada baik          dalam bentuk soal maupun dalam bentuk querynya.

          G.       MANFAAT

            Melalui praktikum ini ,pembaca mampu memahami apa sih itu operator agregasi sql. Jadi, mempermudah dalam menghitung sebuah data. Selain itu, juga bisa tahu apa ituView dan buat apa View itu. Ini bisa jadi sebuah jembatan pemahaman awal untuk para pembaca.

          H.       Sumber-sumber

   Mustafa, Aziz.Modul Desain Basis Data.pdf
   Subekti, Muhammad.2004.Sistem Manajemen Basis Data.Jakarta.Ghalia Indonesia
   http://web.unair.ac.id/admin/file/f_33720_SDP_5_SQL2.pdf




Related Posts:

  • Teknologi Printer 3D Waoww.. apa yang bakalan terjadi kalo semua orang di dunia ini bakalan bisa nyetak desainnya apapun itu dalam bentuk 3D jadi REAL cuma pake printer ???        Sobat, makin lama ide orang-ora… Read More
  • PENGGABUNGAN PRAKTIKUM V AGREGASI SQL dan VIEW Normal 0 false false false IN X-NONE X-NONE … Read More
  • Kepribadian si Anak Tunggal "Jaket yang sobek mudah diperbaiki,tidak seperti luka hati seorang anak yang terkoyak oleh kata-kata tajam." Henry Woodsworth Longfellow - Penyair        Oke, guys. aku mau berbagi tulisan… Read More
  • Penormalan Data Normal 0 false false false IN X-NONE X-NONE MicrosoftInternetExplorer4 … Read More
  • Pengenalan Operator Dasar PRAKTIKUM IV PENGENALAN OPERAOR DASAR azz 12.00 Normal 0 false false false IN X-NONE X-NONE … Read More

0 komentar:

Posting Komentar