Anda di halaman 1dari 3

Nama : Robert Mahendra S

NRP : 171111120

1. Store Procedure
a. Delimiter //
Create Procedure soal1a(In Tanggal Date )
Begin
SELECT judulB.Buku, NamaPenerbit.Penerbit FROM Penerbit, Buku, Peminjaman
WHERE IdPenerbit.Penerbit = IdPenerbit.Buku
AND IdBuku.Buku = IdBuku.Peminjaman
AND TglPinjam.Peminjaman = Tanggal;
END
Delimiter//

CALL soal1a(‘01/02/2019’)

b. Delimiter //
Create Procedure soal1b ( kategorii VARCHAR (25))
Begin
SELECT judulB.Buku, NamaPengarang.Pengarang FROM Buku, Pengarang, Peminjaman
WHERE IdPengarang.Pengarang = IdPengarang.Buku
AND IdBuku.Buku = IdBuku.Peminjaman
AND MONTH(TglPinjam.Peminjaman) = 7
AND YEAR(TglPinjam.Peminjaman)=2021
AND Kategori.Buku = kategorii;
END
Delimiter//

CALL soal1b(‘IPA’)

c. Delimiter //
Create Procedure soal1c ( In TanggalKembali Date)
Begin
SELECT Nama.Anggota FROM Anggota, Peminjaman,Kembali
WHERE IdAnggota.Anggota = IdAnggota.Peminjaman
AND TglKembali = TanggalKembali
AND StatusKembali.Peminjaman = ‘Belum’;
END
Delimiter//

CALL soal1C (‘01/02/2021’)

d. Delimiter //
Create Function JumlahStok (Kode Varchar(5))
Return Varchar(100)
Begin
Declare jumlah int ;
SELECT Sum(StokBuku) into jumlah FROM Buku
WHERE IdBuku.Buku = Kode
RETURN jumlah;
END
Delimiter//

SELECT JumlahStok (B001)


2. Trigger
a. Delimiter //
Create Trigger soal2a
After Insert on Buku
For each row
UPDATE Pengarang,Penerbit SET
JmlTerbit.Penerbit = JmlTerbit.Penerbit +1
AND JmlPengarang.Pengarang = JmlPengarang.Pengarang +1
WHERE IdPenerbit.Penerbit = IdPenerbit.Buku
AND IdPengarang.Pengarang = IdPengarang.Buku
Delimiter //
b. Delimiter //
Create Trigger soal2b
After Insert on Peminjaman
For each row
UPDATE Anggota,Buku
SET StokBuku.Buku = StockBuku.Buku - 1
AND StatusPinjam.Anggota = ‘Y’;
WHERE IdBuku.Buku = IdBuku.Peminjaman
AND IdAnggota.Peminjaman = IdAnggota.Anggota
Delimiter
c. Delimiter //
Create Trigger soal2c
After Insert on Kembali
UPDATE Anggota,Peminjaman
SET StokBuku.Buku = StockBuku.Buku + 1
AND StatusKembali.Peminjaman = ‘N’;
WHERE IdBuku.Buku = IdBuku.Peminjaman
AND IdPinjam.Peminjaman=IdPinjam.Kembali
Delimiter//
d. Delimiter //
Create Trigger soal2d
After Delete on Buku
UPDATE Pengarang,Penerbit SET
JmlTerbit.Penerbit = JmlTerbit.Penerbit -1
AND JmlPengarang.Pengarang = JmlPengarang.Pengarang -1
WHERE IdPenerbit.Penerbit = IdPenerbit.Buku
AND IdPengarang.Pengarang = IdPengarang.Buku
3. Temporal Database
a. SELECT IdAnggota FROM Anggota
WHERE StatusPinjam.Anggota = ‘Y’
AND VST = Curdate() - interval 1 Year and VET = Curdate() - interval 1 MONTH
b. SELECT IdPengarang, JmlPengarang FROM Pengarang
WHERE VST = Curdate() - interval 1 Year and VET = Curdate() - interval 1 Year
c. SELECT IdAnggota FROM Peminjaman
WHERE YEAR(VST) = 2021 AND YEAR(VET) = 2021
AND MONTH(VST)=08 AND MONTH(VET)=08
4. Optimasi Heuristik
a. SELECT Nama.Anggota FROM Anggota
WHERE IdAnggota.Anggota
IN(SELECT Id.Anggota.Peminjanam From Peminjaman
WHERE Year(TglPinjam.Peminjaman) = 2021
AND MONTH(TglPinjam.Peminjaman) = 6
AND IdBuku.Peminjaman
IN(SELECT IdBuku.Buku FROM Buku
WHERE JudulB.Buku = “Basis Data”
AND IdPenerbit.Buku
IN(SELECT IdPenerbit.Penerbit FROM Penerbit
WHERE NamaPenerbit.Penerbit = “Gramedia”
)
)
)
b. SELECT JudulB.Buku FROM Buku
WHERE IdBuku.Buku
IN(SELECT IdBuku.Peminjaman FROM Peminjaman
WHERE Year(TglPinjam.Peminjaman) = 2021
AND MONTH(TglPinjam.Peminjaman) = 7
AND IdAnggota.Peminjaman
IN(SELECT IdAnggota.Anggota FROM Anggota
WHERE Nama.Anggota = “Bambang”
)
)
c. SELECT Nama.Anggota FROM Anggota,Peminjaman
WHERE IdAnggota.Anggota = IdAnggota.Peminjaman
AND IdBuku.Peminjaman IN(SELECT idBuku.Buku FROM Buku
Where Kategori.Buku = “Computer”
)
AND IdPinjam.Peminjaman IN(Select IdPinjam.Kembali From Kembali
Where MONTH(TglKembali.Kembali) = 9
AND YEAR(TglKembali.Kembali) = 2021)
d. SELECT NamaPengarang.Pengarang FROM Pengarang
WHERE IdPengarang.Pengarang IN(SELECT IdPengarang.Buku From Buku
Where IdPenerbit.Buku IN(SELECT IdPenerbit.Penerbit
From Penerbit
Where YEAR(TglTerbit) = 2020
AND NamaPenerbit = “Andi Offset”
)
)

Anda mungkin juga menyukai