Konten Ini Di Lindungi
Silakan masuk atau daftar untuk melihat konten ini
Pada kali ini kita akan memahami dan mampu mengimplementasikan penggunaan View dari satu tabel atau gabungan beberapa tabel. View merupakan tabel virtual yang menyimpan perintah SELECT, bukan data asli. View sangat berguna untuk menyederhanakan query, meningkatkan keamanan data, dan menghasilkan laporan yang lebih rapi.
View adalah tabel virtual dalam sistem basis data yang dibentuk dari hasil query terhadap satu atau lebih tabel. Berbeda dengan tabel biasa, view tidak menyimpan data secara fisik-melainkan hanya menyimpan definisi query yang digunakan untuk menampilkan data.
Dengan menggunakan view, kita bisa:
CREATE DATABASE roaster_rs; USE roaster_rs;
CREATE TABLE spesialis ( kode_spesialis VARCHAR(10) PRIMARY KEY, jns_spesialis VARCHAR(100) );
CREATE TABLE dokter ( kode_dokter VARCHAR(10) PRIMARY KEY, nm_dokter VARCHAR(100), kode_spesialis VARCHAR(10), jk CHAR(1), alamat VARCHAR(100), telp VARCHAR(20), FOREIGN KEY (kode_spesialis) REFERENCES spesialis(kode_spesialis) );
CREATE TABLE roaster ( kode_dokter VARCHAR(10), hari VARCHAR(10), jam_awal TIME, jam_akhir TIME, FOREIGN KEY (kode_dokter) REFERENCES dokter(kode_dokter) );
INSERT INTO spesialis VALUES
('du', 'Dokter Umum'),
('jtg', 'Spesialis Jantung'),
('paru', 'Spesialis Paru'),
('ank', 'Spesialis Anak'),
('tht', 'Spesialis Telinga Hidung Tenggorokan');
INSERT INTO dokter VALUES
('D001', 'dr. Nuriana', 'du', 'P', 'Jl. M.Yamin No.12', '08725667575'),
('D002', 'dr. Sapto Mulyadi, Sp.J', 'jtg', 'L', 'Jl. Wahid Hasyim RT.8', '08872657656'),
('D003', 'dr. Deni Rianto', 'du', 'L', 'Jl. DR. Sutomo Gg.1', '08276476565'),
('D004', 'dr. Henry Cahyadi, Sp.P', 'paru', 'L', 'Jl.A.Yani N0.98', '08117675656'),
('D005', 'dr. Nanan Wijaya, Sp.A', 'ank', 'L', 'Jl. Kusuma Bangsa No.7', '08116756545'),
('D006', 'dr. Sarah Yasmina, Sp.A', 'ank', 'P', 'Jl.M.Yamin No.34', '08128766544'),
('D007', 'dr. Erick Jaya, Sp.THT', 'tht', 'L', 'Jl. DR.Sutomo Gg.5', '08138767665'),
('D008', 'dr. Wayan Bhakti', 'du', 'L', 'Jl.Suryanata Gg.2', '08259878767'),
('D009', 'dr. Ahmad H, Sp.P', 'paru', 'L', 'Jl. Kadrie Oening No76', '08123665467'),
('D010', 'dr. Andini Anastasia', 'du', 'P', 'Jl.Wahid Hasyim No.145', '08652454373');
INSERT INTO roaster VALUES
('D001', 'Senin', '07:00', '15:00'),
('D002', 'Senin', '07:00', '15:00'),
('D003', 'Senin', '14:00', '22:00'),
('D004', 'Selasa', '07:00', '15:00'),
('D005', 'Selasa', '14:00', '22:00'),
('D006', 'Selasa', '07:00', '15:00'),
('D007', 'Selasa', '14:00', '22:00'),
('D008', 'Rabu', '07:00', '15:00'),
('D009', 'Rabu', '14:00', '22:00'),
('D010', 'Kamis', '07:00', '15:00'),
('D001', 'Kamis', '14:00', '22:00'),
('D010', 'Kamis', '07:00', '15:00'),
('D004', 'Jum\'at', '07:00', '15:00'),
('D005', 'Jum\'at', '14:00', '22:00'),
('D003', 'Jum\'at', '07:00', '15:00'),
('D002', 'Jum\'at', '14:00', '22:00');
vw_dokterCREATE VIEW vw_dokter AS SELECT kode_dokter, nm_dokter FROM dokter;
SELECT * FROM vw_dokter;
DROP VIEW vw_dokter; CREATE VIEW vw_dokter(kd_dok, nm_dok) AS SELECT kode_dokter, nm_dokter FROM dokter;
CREATE VIEW vw_dokter_spesialis AS SELECT d.kode_dokter, d.nm_dokter, s.jns_spesialis FROM dokter d JOIN spesialis s ON d.kode_spesialis = s.kode_spesialis;
Silakan masuk atau daftar untuk melihat konten ini
CREATE VIEW vw_jk AS SELECT jk AS jenis_kelamin, COUNT(*) AS jumlah FROM dokter GROUP BY jk;
CREATE VIEW jadwal_dokter AS SELECT d.nm_dokter AS nama_dokter, r.hari, r.jam_awal FROM dokter d JOIN roaster r ON d.kode_dokter = r.kode_dokter;
CREATE VIEW jumlah_dokter_harian AS SELECT hari, COUNT(DISTINCT kode_dokter) AS jumlah_dokter FROM roaster GROUP BY hari;
Melalui kegiatan ini, pemahaman tentang konsep View dalam sistem basis data semakin diperkuat. View memberikan fleksibilitas dalam menampilkan data dari satu atau lebih tabel tanpa mengubah struktur asli, serta memudahkan pengelolaan informasi yang kompleks.
Dengan latihan yang telah dilakukan, diperoleh keterampilan dalam:
Pemahaman ini menjadi fondasi penting dalam pengembangan sistem informasi yang terintegrasi dan dinamis.
Gabung dalam percakapan