• Tidak ada hasil yang ditemukan

POKOK BAHASAN 5 QUERY DAN VIEW (1)

N/A
N/A
Protected

Academic year: 2018

Membagikan "POKOK BAHASAN 5 QUERY DAN VIEW (1)"

Copied!
12
0
0

Teks penuh

(1)

POKOK BAHASAN 5 QUERY DAN VIEW PENDAHULUAN

Pada pokok bahasan ini akan dibahas mengenai query dan view dalam basis data. Setelah mempelajari bab ini diharapkan mahasiswa mampu :

1. Mengelolah data dengan kriteria tertentu. 2. Mengelolah data dari beberapa tabel. 3. Memahami dan membuat View 4. Dapat Memanggil data melalui View 5. Merubah definisi View

6. Insert, Update, dan Delete data melalui View

7. Menghapus (drop) view

PENYAJIAN (TUTORIAL) A. Query

Query merupakan suatu proses pengolahan data yang digunakan untuk memberikan hasil dari basis data berdasarkan kriteria tertentu. Query tidak hanya membaca atau mengambil data, query biasanya melibatkan beberapa tabel yang direlasikan dengan menggunakan field kunci. Namun query juga dapat digunakan pada satu tabel saja, tetapi hasilnya kurang informatif dan terbatas.

1. Aturan dalam melakukan query antar tabel :

a. Setiap field disebutkan bersama dengan nama tabelnya, dipisahkan tanda titik (.).

Syntax : Namatabel.namafield.

Contoh : buku.kode_buku artinya field kode_buku dari tabel buku.

b. Setiap tabel yang terlibat dalam proses query harus disebutkan dalam klausa FROM, dengan pemisah koma (,).Dimana urutan tabel tidak mempengaruhi proses query.

Contoh : FROM buku, anggota.

c. Kondisi dalam klausa WHERE mempengaruhi jenis join yang tercipta.

2. Jenis-jenis join pada query : a. Operator Cross Join

Operator ini berguna untuk melakukan operasi penggabungan dengan perkalian kartesain. Namun penggabungan jenis ini jarang digunakan karena tidak menghasilkan nilai informasi yang efektif.

Contoh :

(2)

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengan syarat dibelakang on (tidak boleh null), dengan kata lain semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan. Berikut ini perintah untuk menampilkan data dari tabel pengarang dan buku dengan syarat berdasarkan kolom kode_pengarang :

Mysql> select * from pengarang join buku on (pengarang.kode_pengarang=buku.kode_pengarang);

c. Operator Equijoin

Equijoin adalah penggabungan antar tabel dengan menggunakan operator ‘=’ pada kondisi klausa WHERE

Contoh :

SELECT buku.kode_buku, buku.judul_buku,

pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku, pengarang WHERE

buku.kode_pengarang=pengarang.kode_pengarang;

d. Operator Self-Join

Self-join adalah jenis penggabungan antar field dari tabel yang sama. Untuk melakukan penggabungan self-join menggunakan alias.

Contoh :

SELECT a.kode_buku, b.judul_buku FROM buku a,

buku b WHERE a.harga=’25000’ AND

(3)

e. Operator Natural Join

Operator ini digunakan untuk melakukan operasi equijoin dengan memperlakukan nama-nama kolom yang sama sebagai kolom penghubung. Contoh :

SELECT buku.kode_buku, buku.judul_buku,

pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku NATURAL JOIN pengarang

Natural Join dibedakan menjadi 2 yaitu :  Natural Left Join

Natural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah natural left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.

Mysql> select *from pengarang natural left join buku;

 Natural Right Join

(4)

Mysql> select * from pengarang natural right join buku;

3. UNION, INTERSECT dan EXCEPT

1. UNION

UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama. Berikut ini perintah untuk memperoleh data pada tabel buku dimana tahun penerbitan 2003 dan 2004 :

Mysql> select tahun_terbit,judul from buku where tahun_terbit=’2003’ union > select tahun_terbit,judul from buku where

tahun_terbit=’2004’;

Perintah di atas identik dengan :

(5)

Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja pada dua tabel atau lebih.

2. INTERSECT

INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

Syntax :

SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2

Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.

3. EXCEPT / Set Difference

EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

Syntax :

SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2

Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.

4. Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)

Subquery berarti query di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di atasnya.

(6)

Contoh 1 : perintah untuk menampilkan data pada tabel pengarang yang mana data pada kolom kode_pengarang-nya tercantum pada tabel buku menggunakan IN :

Mysql> select * from pengarang where kode_pengarang in (select kode_pengarang from buku);

atau menggunakan EXISTS

Mysql> select * from pengarang where exists

(select * from buku where

pengarang.kode_pengarang=buku.kode_pengarang);

Pada contoh di atas :

SELECT kode_pengarang FROM buku

disebut subquery, sedangkan :

SELECT * FROM pengarang

berkedudukan sebagai query. Perhatikan, terdapat data jenis dan harga pada tabel pengarang yang tidak ditampilkan. Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabel buku.

Contoh 2 : perintah untuk menampilkan data pada tabel pengarang yang mana data pada kolom jenis-nya tidak tercantum pada tabel buku menggunakan NOT IN :

Mysql> select * from pengarang where kode_pengarang not in (select kode_pengarang from buku);

(7)

Mysql> select*from pengarang where not exists (select * from buku where

pengarang.kode_pengarang=buku.kode_pengarang);

B. View

View adalah perintah query yang disimpan pada database dengan suatu nama tertentu, sehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut.

Syntax dasar perintah untuk membuat view adalah sebagai berikut :

CREATE

[OR REPLACE]

VIEW view_name [(column_list)] AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang sama dengan perintah tersebut. Jika tidak maka perintah CREATE VIEW akan menghasilkan error jika nama view yang ingin dibuat sudah ada sebelumnya.

C. Penggunaan view 1. View antar 2 tabel

Kita akan membuat view dari relasi antara tabel "buku" dan "penerbit" untuk menampilkan data buku dan penerbitnya dari database perpustakaan dengan nama "view_buku". Perintahnya adalah sebagai berikut :

Mysql > CREATE VIEW view_buku > AS

> SELECT a.kode_buku, a.judul_buku, > a.tahun_terbit, b.nama_penerbit > FROM

(8)

Eksekusi perintah berikut untuk memastikan view telah dibuat :

SELECT * FROM information_schema.views WHERE table _name = 'view_buku';

Lihat hasil query view view_buku :

SELECT * FROM view_buku;

2. View dengan 3 tabel

Membuat view dari relasi antara tabel “buku”, “angota” dan “peminjaman” untuk menampilkan data peminjaman buku dari database perpustakaan dengan nama "view_peminjaman". Perintahnya adalah sebagai berikut :

Mysql > CREATE VIEW view_peminjaman > AS

> SELECT a.id_pemijaman, b.kode_buku, b.judul_buku, > c.kode_anggota,

c.nama_anggota, a.tanggal_pinjam,

> a.tanggal_kembali FROM peminjaman a, buku b, > anggota c WHERE a.kode_buku= b.kode_buku AND > a.kode_anggota=c.kode_anggota;

Eksekusi perintah berikut untuk memastikan view telah dibuat :

SELECT * FROM information_schema.views WHERE table _name = 'view_peminjaman';

Lihat hasil query view view_peminjaman :

SELECT * FROM view_peminjaman; LEMBAR KERJA DAN TUGAS

1. Buatlah contoh pengolahan data dari database hasil analisa pokok bahasan 4 menggunakan query : Inner Join, Equijoin, self-join dan Natural Join (antar mahasiswa atau kelompok tidak boleh sama), print screen hasil eksekusi script.

2. Buatlah view yang menampilkan :

a. Data lengkap pegawai (jabatan,bagian dan golongan yang ditampilkan buka kode saja tapi juga namanya).

(9)

KUNCI LEMBAR KERJA

1. Pengolahan data menggunakan query : a. Inner join

select nip,nama,jabatan from pegawai join jabatan on (pegawai.kd_jabatan=jabatan.kode);

hasil :

Gambar 5.1 Hasil Inner Join Tabel Pegawai

b. Equijoin

Select pegawai.nip,pegawai.nama,jabatan.jabatan from pegawai, jabatan where pegawai.kd_jabatan=jabatan.kode;

Hasil :

(10)

c. Self-join Select

absensi.nip,pegawai.nama,absensi.tgl_absen,absensi.jam_masuk ,absensi.jam_keluar,absensi.keterangan from absensi natural join pegawai;

Hasil :

Gambar 5.3 Hasil Self-join Tabel Pegawai

d. Natural join

Select absensi.nip,

pegawai.nama,absensi.tgl_absen,absensi.jam_masuk,a bsensi.jam_keluar,absensi.keterangan from absensi natural join pegawai;

Hasil :

Gambar 5.4 Hasil Natural Join Tabel Pegawai

2. Membuat view :

(11)

create view pegawai_view as select

a.nip,a.nama,a.kelamin,a.tmp_lahir,a.tgl_lahir,a.alamat,a.ka bupaten,a.telpon,a.pend_akhir,a.kd_jabatan,b.jabatan,a.gol,c .golongan,a.jenis,d.nama_bagian

from pegawai a, jabatan b, golongan c, bagian d where a.kd_jabatan=b.kode and a.gol=c.id_golongan;

hasil :

Gambar 5.5 Hasil View Data Lengkap Pegawai

b. Absensi Pegawai

Create view absensi_view as Select a.nip,

b.nama,a.tgl_absen,a.jam_masuk,a.jam_keluar,a.keterang an from absensi a, pegawai b where a.nip=b.nip;

Hasil :

(12)

REFERENSI

 D3 Manajemen Informatika, Modul Praktikum Basis data 1, Laboratorium Universitas Trunojoyo Madura, Madura.

 Sutanta Edhy, Sistem Basis Data, Graha Ilmu, Bandung, 2004.

 Sutanta Edhy, Basis Data dalam Tinjauan Konseptual, Andi Yogyakarta, Yogyakarta, 2011.

Gambar

Gambar 5.4 Hasil Natural Join Tabel Pegawai

Referensi

Dokumen terkait

Dari data diatas diatas dapat dilihat bahwa kelompok data kecil atau record yang sedikit kecepatan waktu(detik) query dalam melakukan pencarian data ketiga query diatas

Penerapan Database Query dengan menggunakan aljabar relasional terdapat dua model yaitu Data Manipulation Language (DML) pengolahan database yang tidak

Query Nested Join Scalar ada kelompok data kecil waktu yang dibutuhkan tidak ada perubahan dari relasi sebelumnya untuk data jumlah data yang kecil tetap konsisten

Dalam penelitian ini dilakukan sejumlah pengujian dengan membandingkan waktu respon query yang mereferensikan langsung pada view dan indexed view, untuk mengetahui

Akomodasi adalah suatu bentuk proses sosial yang di dalamnya terdapat dua atau lebih individu atau kelompok yang berusaha untuk saling menyesuaikan diri, tidak

Query Nested Join Scalar ada kelompok data kecil waktu yang dibutuhkan tidak ada perubahan dari relasi sebelumnya untuk data jumlah data yang kecil tetap konsisten

 Dalam animasi sprite yang dapat kita edit adalah animasi dari layar yang mengandung sprite, kita tidak dapat mengedit bagian dalam yang ditampilkan oleh

Jumlah mesin yang dibutuhkan dalam kegiatan produksi ragum yaitu sebanyak 14 buah dan jumlah operator sebanyak 16 orang, dimana total operator pada mesin yaitu 14 orang dan total