Selamat Datang di mi-akakom.blogspot.com Area Manajemen Informatika: Laporan Praktikum Sistem Basis Data Modul 14

menu

22 Mei 2012

Laporan Praktikum Sistem Basis Data Modul 14

PERTEMUAN KE - 14

Penggunaan Query Kompleks

Pada pertemuan keempatbelas ini, mahasiswa diajarkan tentang perintah-perintah mampu menggunakan perintah subquery untuk memproses databases pada MySql.

View

Merupakan suatu cara untuk menampilkan data dari satu atau lebih table di dalam database yang terbentuk virtual table atau stored query. Data dalam view sebenarnya tidak ada, view sendiri hanya berupa query yang berfungsi sebagai cara cepat untuk menampilkan data-data table.

Pembahasan Praktikum

mysql> create view vdmhs

-> as

-> select nim, nama from mhs;

Query OK, 0 rows affected (0.08 sec)

Digunakan untuk menciptakan view baru dengan nama vdmhs. Dimana view tersebut akan menampung tampilan kolom nim, dan kolom nama yang diambil dari table mhs.

mysql> select * from vdmhs;

+------------+--------+

| nim | nama |

+------------+--------+

| 0802100011 | Emy |

| 0802100012 | Waldan |

| 0802100013 | Tasya |

| 0802100014 | Rika |

| 0802100015 | Thomas |

+------------+--------+

5 rows in set (0.01 sec)

Untuk mengecek hasil pembuatan view vdmhs yang telah dilakukan sebelumya.

mysql> create view vdmhsaktif

-> as

-> select m.nim, m.nama from mhs m join khs k

-> on m.nim=k.nim

-> group by m.nim, m.nama;

Query OK, 0 rows affected (0.08 sec)

Untuk menciptakan view baru dengan nama vdmhsaktif. Dimana view tersebut menampung kolom nim dan kolom nama dari table mhs yang nim digabung menggunakan join dengan nim yang ada pada table khs, serta mengurutkannya hasilnya berdasarkan nim dari table mks, dan nama dari table mhs.

mysql> select * from vdmhsaktif;

+------------+--------+

| nim | nama |

+------------+--------+

| 0802100011 | Emy |

| 0802100012 | Waldan |

| 0802100013 | Tasya |

| 0802100015 | Thomas |

+------------+--------+

4 rows in set (0.08 sec)

Untuk mengecek hasil pembuatan view vdmhsaktif yang telah dilakukan sebelumya.

mysql> update dosen

-> set namadosen="Aulia Natasya, M.Kom"

-> where namadosen="aulia";

Query OK, 1 row affected, 1 warning (0.06 sec)

Rows matched: 1 Changed: 1 Warnings: 1

Digunakan untuk mengubah data pada table dosen dimana kolom namadosen yang berisikan “aulia” diganti menjadi “Aulia Natasya, M. Kom”.

mysql> select * from dosen;

+-----------+-----------------+----+------------+------------+------------+

| nip | namadosen | jk | alamat | tgl_lahir | pendidikan |

+-----------+-----------------+----+------------+------------+------------+

| 132312490 | Aulia Natasya, | P | Yogyakarta | 1970-11-02 | S2 |

| 132312478 | Putri | P | Janti | 1950-12-30 | S3 |

| 132312455 | Ratna | P | Sleman | 1966-04-24 | S2 |

| 132312445 | Mirza | L | Bantul | 1972-02-22 | S3 |

| 132312433 | Budi | L | Bantul | 1962-07-10 | S2 |

+-----------+-----------------+----+------------+------------+------------+

5 rows in set (0.00 sec)

Digunakan mengecek data pada tebel dosen yang sebelumnya telah dirubah.

mysql> drop view vdmhs;

Query OK, 0 rows affected (0.00 sec)

Digunakan untuk menghapus view vdmhs yang sebelumnya pernah dibuat.

mysql> create view vdpegawai

-> as

-> select nip, nama from pegawai;

Query OK, 0 rows affected (0.02 sec)

Digunakan untuk membuat view baru dengan nama vdpegawai dimana view tersebut menampung nip dan nama yang diambil dari table pegawai.

mysql> select * from vdpegawai;

+----------+----------------+

| nip | nama |

+----------+----------------+

| 13235539 | Emy Susanti |

| 13235540 | S. Rochmadi |

| 13235500 | Muhamad Waldan |

| 13235552 | Aulia Natasya |

+----------+----------------+

4 rows in set (0.00 sec)

Untuk mengecek data pada view vdpegawai yang sebelumnya telah dibuat.

mysql> create view vdproyek

-> as

-> select l.kodepro, l.lokpro, p.namapro from lokasipro l join proyek p

-> on l.kodepro=p.kodepro

-> group by l.lokpro;

Query OK, 0 rows affected (0.00 sec)

Untuk menciptakan view baru dengan nama vdproyek. Dimana view tersebut menampung kolom kodepro dan kolom lokpro dari table lokasipro yang kodepro digabung menggunakan join dengan kodepro yang ada pada table proyek, serta mengurutkannya hasilnya berdasarkan lokpro dari table lokasipro.

mysql> select * from vdproyek;

+---------+------------+-------------------+

| kodepro | lokpro | namapro |

+---------+------------+-------------------+

| p002 | Bandung | Project Manager 2 |

| p001 | Jakarta | Project Manager 1 |

| p003 | Yogyakarta | Project Manager 3 |

+---------+------------+-------------------+

3 rows in set (0.00 sec)

Untuk mengecek data pada view vdproyek yang sebelumnya telah dibuat.

mysql> drop view vdpegawai;

Query OK, 0 rows affected (0.00 sec)

Digunakan untuk menghapus view vdpegawai yang sebelumnya pernah dibuat.

Latihan

Gunakan perintah view pada database system informasi perpustakaan yang sudah dibangun.

mysql> select*from buku;

+---------+----------+------------------+--------------+

| kd_buku | kd_jenis | nm_buku | nm_pengarang |

+---------+----------+------------------+--------------+

| 20012 | 10122 | lovasket | Cahyono |

| 20013 | 10134 | cinta pertama | Devita |

| 20014 | 10145 | matematika dasar | Suryini |

+---------+----------+------------------+--------------+

3 rows in set (0.00 sec)

mysql> create view vbuku

-> as

-> select kd_buku,nm_buku,nm_pengarang from buku;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from vbuku;

+---------+------------------+--------------+

| kd_buku | nm_buku | nm_pengarang |

+---------+------------------+--------------+

| 20012 | lovasket | Cahyono |

| 20013 | cinta pertama | Devita |

| 20014 | matematika dasar | Suryini |

+---------+------------------+--------------+

3 rows in set (0.01 sec)

mysql> create view vdbuku

-> as

-> select a.kd_buku,a.kd_jenis,a.nm_buku,a.nm_pengarang,b.nm_jenis

-> from buku a inner join jenis b on a.kd_jenis=b.kd_jenis;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from vdbuku;

+---------+----------+------------------+--------------+-----------+

| kd_buku | kd_jenis | nm_buku | nm_pengarang | nm_jenis |

+---------+----------+------------------+--------------+-----------+

| 20012 | 10122 | lovasket | Cahyono | Novel |

| 20013 | 10134 | cinta pertama | Devita | Novel |

| 20014 | 10145 | matematika dasar | Suryini | Pelajaran |

+---------+----------+------------------+--------------+-----------+

3 rows in set (0.00 sec)

mysql> create view vdbukuX

-> as

-> select m.kd_jenis,m.nm_buku from buku m join jenis k

-> on m.kd_jenis = k.kd_jenis

-> group by m.kd_jenis,m.nm_buku;

mysql> select * from vdbukuX;

+----------+------------------+

| kd_jenis | nm_buku |

+----------+------------------+

| 10122 | lovasket |

| 10134 | cinta pertama |

| 10145 | matematika dasar |

+----------+------------------+

3 rows in set (0.00 sec)

mysql> create view vbukuA

-> as

-> select a.kd_buku as no_buku,a.nm_buku as nama_buku,b.kd_jenis as kd_jenis,

-> b.nm_jenis as nama_jenis

-> from buku a join jenis b

-> on a.kd_jenis=b.kd_jenis;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from vbukuA;

+---------+------------------+----------+------------+

| no_buku | nama_buku | kd_jenis | nama_jenis |

+---------+------------------+----------+------------+

| 20012 | lovasket | 10122 | Novel |

| 20013 | cinta pertama | 10134 | Novel |

| 20014 | matematika dasar | 10145 | Pelajaran |

+---------+------------------+----------+------------+

3 rows in set (0.00 sec)

mysql> drop view vdbukuX;

Query OK, 0 rows affected (0.00 sec)

Tugas

Gunakan perintah view pada database system informasi penjualan online yang sudah dibangun.

mysql> create view vtanggungan

-> as

-> select a.id_pkrj,a.nama_ttg,a.hubungan,b.nama_pkrj

-> from tanggungan a inner join pekerja b on a.id_pkrj=b.id_pkrj;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from vtanggungan;

+---------+----------+----------+-----------+

| id_pkrj | nama_ttg | hubungan | nama_pkrj |

+---------+----------+----------+-----------+

| 22341 | Nataniel | Suami | Melani |

| 22351 | Shasha | Anak | Anggar |

| 22361 | Defan | Anak | Sintya |

+---------+----------+----------+-----------+

3 rows in set (0.06 sec)

mysql> create view vtanggunganA

-> as

-> select m.id_pkrj,m.nama_ttg from tanggungan m join pekerja k

-> on m.id_pkrj = k.id_pkrj

-> group by m.hubungan,m.jnsklm;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from vtanggunganA;

+---------+----------+

| id_pkrj | nama_ttg |

+---------+----------+

| 22361 | Defan |

| 22351 | Shasha |

| 22341 | Nataniel |

+---------+----------+

3 rows in set (0.04 sec)

mysql> create view vtansferB

-> as

-> select a.id_bank as no_bank,a.tgl_trans as tanggal,b.nama_bank as nm_bank,

-> b.alm_bank as alamat_bank

-> from transfer a join bank b

-> on a.id_bank=b.id_bank;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from vtransferB;

+---------+------------+------------+-------------+

| no_bank | tanggal | nm_bank | alamat_bank |

+---------+------------+------------+-------------+

| 11112 | 2010-03-03 | BCA | Surabaya |

| 11113 | 2010-01-15 | DANAMON | SOlo |

| 11114 | 2010-10-23 | CIMB NIAGA | Sumatra |

+---------+------------+------------+-------------+

mysql> drop view vtanggungan;

Query OK, 0 rows affected (0.00 sec)

Kesimpulan

Pada pertemuan ke 14 ini dapat disimpulkan bahwa dengan menggunakan view kita bisa mempersingkat query yang sangat panjang. Sehingga kita terhindar dari rumitnya menyusun query yang kadang kita juga susah memahminya. Dengan adanya view maka data yang kita perlukan saja atau data yang penting-penting saja yang akan ditampilkan tanpa harus kita berhadapan dengan queri yang sangat panjang. Adapun kenapa view ini dibuat adalah untuk mempersingkat perintah yang sangat rumit, selain itu juga digunakan untuk menyembunyikan informasi-informasi yang mungin tidak ita butuhkan atau perlukan dalam pengolahan data.