Praktikum Database Management System
-
Upload
khairunnisa-mulyana -
Category
Technology
-
view
227 -
download
0
Transcript of Praktikum Database Management System
Nama : Khairunnisa
NIM : 1205467
Program Studi : Teknologi Pendidikan
Mata Kuliah : Database Management System
Praktikum Modul
MODUL 1
1. Tabel Mahasiswa
Hasil :
2. Matakuliah yang sksnya 1 ATAU 2
Syntax :
SELECT * FROM matakuliah
WHERE sks=1 OR sks=2
3. Matakuliah yang nama depannya tidak sama dengan “Praktikum”
syntax :
SELECT * FROM matakuliah
WHERE nama_mk NOT LIKE "praktikum*"
MODUL 3
1. Urutan berdasarkan semester dan kode_mk
Syntax :
SELECT kode_mk, nama_mk, sks, semester
FROM matakuliah
ORDER BY semester, kode_mk;
2. Urutan berdasarkan nama_mk
Syntax :
SELECT kode_mk, nama_mk, sks, (sks*2)
AS js FROM matakuliah
ORDER BY nama_mk;
3. Total sks dari tiap semester
Syntax :
SELECT semester, SUM(sks) AS jumlah
FROM matakuliah
GROUP BY semester;
4. Pengelompokan sks berdasarkan jumlah kemunculan, jumlah > 2
Syntax :
SELECT sks, COUNT(sks) AS jumlah
FROM matakuliah
WHERE sks > 2
GROUP BY sks
MODUL 4
1. Isi Data Tabel Mahasiswa
Membuat Database
Start -> cmd
Ketik cd c:\xampp\mysql\bin
mysql –u root
CREATE DATABASE _KHAIRUNNISA ;
\u _KHAIRUNNISA ;
Membuat tabel mahasiswa
Syntax :
CREATE TABLE mahasiswa(
Nim INT(12) NOT NULL,
Nama VARCHAR(60) NOT NULL,
Jenis_kelamin CHAR(1) NOT NULL,
Alamat VARCHAR(120),
PRIMARY KEY(nim)
);
SHOW TABLES;
Mengisi data ke tabel mahasiswa :
Mengisi di localhost/phpmyadmin -> pilih database _KHAIRUNNISA -> mahasiwa
-. Insert. Lalu isikan data sesuai tabel.
SQL pada XAMPP:
INSERT INTO `_khairunnisa`.`mahasiswa` (`nim`, `nama`, `jenis_kelamin`,
`alamat`) VALUES ('101', 'arief', 'L', 'Jl. Kenangan'), ('102', 'Budi', 'L', 'Jl.
Jombang'), ('103', 'Wati', 'P', 'Jl. Surabaya'), ('104', 'Ika', 'P', 'Jl. Jombang'), ('105',
'Tono', 'L', 'Jl. Jakarta'), ('106', 'Iwan', 'L', 'Jl. Bandung'), ('107', 'Sari', 'P', 'Jl.
Malang');
Di cmd : select *from mahasiswa ;
2. Tabel matakuliah
Syntax :
CREATE TABLE matakuliah(
Kode_mk CHAR(10) NOT NULL,
Nama_mk VARCHAR(30) NOT NULL,
Sks INT(1) NOT NULL,
Semester INT(1),
PRIMARY KEY(kode_mk)
);
SQL pada XAMPP :
INSERT INTO `_khairunnisa`.`matakuliah` (`kode_mk`, `nama_mk`, `sks`,
`semester`) VALUES ('PTI447', 'Praktikum Basis Data', '1', '3'), ('PTI777', 'Sistem
Informasi', '2', '3'), ('TIK342', 'Praktikum Basis Data', '1', '3'), ('PTI123', 'Grafika
Multimedia', '3', '5'), ('PTI333', 'Basis DataTerdistribusi', '3', '5'), ('TIK123', 'Jaringan
Komputer', '2', '5'), ('TIK333', 'Sistem Operasi', '3', '5');
Select *from matakuliah ;
3. Tabel ambil_mk
Syntax :
CREATE TABLE ambil_mk(
Nim INT(12) NOT NULL,
Kode_mk CHAR(10) NOT NULL
);
SQL pada XAMPP :
INSERT INTO `_khairunnisa`.`ambil_mk` (`nim`, `kode_mk`) VALUES ('101',
'PTI447'), ('103', 'TIK333'), ('104', 'PTI333'), ('104', 'PTI777'), ('111', 'PTI123'),
('123', 'PTI999');
Select *from ambil_mk ;
MODUL 5
1. Data mahasiswa yang mengambil matakuliah
Syntax :
SELECT DISTINCT mahasiswa.nim, mahasiswa.nama
FROM mahasiswa
INNER JOIN ambil_mk
ON mahasiswa.nim=ambil_mk.nim;
2. Data mahasiswa yang tidak mengambil mata kuliah berdasarkan jenis kelamin
Syntax :
SELECT jenis_kelamin, COUNT(jenis_kelamin) AS jumlah
FROM mahasiswa
LEFT OUTER JOIN ambil_mk
ON mahasiswa.nim=ambil_mk.nim
WHERE ambil_mk.nim IS NULL
GROUP BY jenis_kelamin;
3. Data mahasiswa yang mengambil matakuliah beserta kode_mk dan nama_mk
Syntax :
SELECT a.nim, mhs.nama, a.kode_mk, m.nama_mk
FROM mahasiswa mhs, ambil_mk a, matakuliah m
WHERE m.kode_mk=a.kode_mk
AND mhs.nim=a.nim;
4. Nim, nama, dan total sks lebih > 4 dan <10
Syntax :
SELECT mahasiswa.nim, mahasiswa.nama, SUM(semester+2) AS total_sks
FROM mahasiswa, ambil_mk, matakuliah
WHERE mahasiswa.nim = ambil_mk.nim and ambil_mk.kode_mk =
matakuliah.kode_mk and matakuliah.semester <>’5,6,7,8,9’;
5. Matakuliah yang tidak diambil oleh mahasiswa terdaftar
Syntax :
SELECT m.kode_mk, m.nama_mk, m.sks, m.semester
FROM matakuliah m
LEFT JOIN
(mahasiswa mhs LEFT JOIN ambil_mk a
ON mhs.nim=a.nim)
ON m.kode_mk=a.kode_mk
WHERE a.kode_mk IS NULL
ORDER BY nama_mk;
MODUL 7
1. Definisikan stored procedure untuk mendapatkan banyaknya matakuliah dan
jumlah total sks dengan melibatkan dua buah parameter OUT
Syntax :
BEGIN
SELECT COUNT(kode_mk), SUM(sks)
/* hasil counting di-pass back ke variable jumlah */
/* hasil suming di-pass back ke variable total */
INTO jumlah,total
FROM matakuliah;
END
Hasil :
2. Definisikan stored procedure untuk penambahan data ambil_mk.
Skenarionya, penambahan dapat dilakukan jika dan hanya jikanilai nim eksis
di tabel mahasiswa dan nilai kode_mk eksis di tabel matakuliah. Apabila
operasi berhasil, kembalikan status “OK”; sebaliknya jika gagal, kembalikan
pesan “Operasi Gagal”
Syntax :
BEGIN
DECLARE message VARCHAR(30);
IF(exists(select nim from mahasiswa where nim = n) AND exists(select kode_mk
from matakuliah where kode_mk = kode)) THEN
SET message = 'OK';
insert into ambil_mk (nim,kode_mk) values (n,kode);
else
set message = 'operasi gagal';
end if;
select message;
END
Hasil jika nim eksis pada tabel mahasiswa dan kode_mk eksis pada tabel
matakuliah:
Hasil jika nim tidak eksis pada tabel mahasiswa dan kode_mk tidak eksis pada tabel
matakuliah:
3. Definisikan stored procedure untuk memodifikasi data dosen apabila eksis
dan melakukan penambahan jika belum eksis.
Syntax :
BEGIN
DECLARE message VARCHAR(30);
IF(exists(select kode_dosen from dosen where kode_dosen = c)) THEN
SET message = 'Perbaharui Dosen';
update dosen set nama = n where kode_dosen = c;
else
set message = 'Masukan Dosen';
insert into dosen values (c,n);
end if;
select message;
END
Hasil jika memperbaharui dosen dari dosen yang telah ada :
Modul 9
1. Definisikan updatable viewdengan check optionuntuk mendapatkan data
matakuliah yang sksnya di antara 1 dan 4, dan semesternya lebih dari
semester terkecil.
Syntax :
CREATE VIEW vMatkul1
AS
SELECT matakuliah.kode_mk, matakuliah.nama_mk, matakuliah.sks,
matakuliah.semester
FROM matakuliah
WHERE sks < 4 and semester > 1
WITH CHECK OPTION;
SELECT * FROM vMatkul1;
2. Definisikan nested view untuk mendapatkan data mahasiswa yang jenis
kelaminnya L, dengan main view berupa mahasiswa yang mengambil
sembarang matakuliah yang sksnya lebih dari sks terkecil.
Syntax :
CREATE VIEW vMatkul2
AS
SELECT mahasiswa.nim, mahasiswa.nama, mahasiswa.jenis_kelamin,
matakuliah.kode_mk, matakuliah.nama_mk, matakuliah.sks
FROM mahasiswa, matakuliah;
CREATE VIEW vMatkul3
AS
SELECT *
FROM vMatkul2
WHERE jenis_kelamin=’L’ AND sks>1;
SELECT * FROM vMatkul3 ;
3. Definisikan updatable viewuntuk mendapatkan nim dan nama mahasiswa
yang mengambil matakuliah di semester 3.
Syntax :
CREATE VIEW vUpdateNisa
AS
SELECT DISTINCT mahasiswa.nim, mahasiswa.nama
FROM mahasiswa, matakuliah
WHERE semester=3;
SELECT * FROM vUpdatNisa;
4. Definisikan view untuk mendapatkan nama dosen yang mengajar
matakuliah dengan jumlah siswa terbanyak.
Syntax :
CREATE VIEW vDosenNisa
AS
SELECT DISTINCT dosen.nama, dosen.kode_dosen
FROM dosen
LEFT JOIN
(mahasiswa LEFT JOIN ambil_mk
ON mahasiswa.nim=ambil_mk.nim)
ON dosen.kode_dosen=ambil_mk.kode_dosen
WHERE dosen.kode_dosen
ORDER BY COUNT (mahasiswa.nama);