01. tugas bdl
Post on 20-Apr-2015
99 Views
Preview:
TRANSCRIPT
TUGAS
BASIS DATA LANJUT
SISTEM INFORMASI PENDAFTARAN PRAKTIKUM
TEKNIK INFORMATIKA
UNIVERSITAS WIJAYA KUSUMA SURABAYA
Nama Kelompok : Ety Sudarwati (09120008)
Farid Kurniawan (09120009)
Untari Kristina (09120065)
Kelas : B
TEKNIK INFORMATIKA
UNIVERSITAS WIJAYA KUSUMA SURABAYA
2011-2012
Active Database
1. STORED PROCEDURE
Store procedure adalah Sekumpulan perintah yang mempunyai nama dan disimpan
sebagai objek dari database yang nantinya bisa kita panggil dari aplikasi.
Stored procedure “hapus_data” pada SQL 2000
Create procedure “hapus_data”
As
Delete from BAWA
Delete from KELOLAH
Delete from KELOLAH2
Delete from DAFTAR
Go
Stored procedure “hapus_data” pada Oracle
create or replace
PROCEDURE HAPUS_DATA AS
BEGIN
Delete from BAWA;
Delete from KELOLAH;
Delete from KELOLAH2;
Delete from DAFTAR;
END HAPUS_DATA;
Keterangan: Store procedure ini digunakan untuk melakukan penghapusan seluruh data
yang ada pada tabel bawa, kelolah, kelolah2, dan daftar
Stored procedure “insert_mahasiswa” pada SQL 2000
create procedure INSERT_MAHASISWA @NPM int,@NAMA
varchar(30),@ALAMAT varchar(50),@TELEPON numeric,@TEMPAT_LAHIR
varchar(30),@TANGGAL_LAHIR datetime as
begin
insert into MAHASISWA
(MAHASISWA.NPM,MAHASISWA.NAMA,MAHASISWA.ALAMAT,MAHASISWA.TELEP
ON,MAHASISWA.TEMPAT_LAHIR,MAHASISWA.TANGGAL_LAHIR)
values(@NPM,@NAMA,@ALAMAT,@TELEPON,@TEMPAT_LAHIR,@TANGGAL_LAHI
R)
end
go
Stored procedure “insert_mahasiswa” pada Oracle
create or replace
PROCEDURE INSERT_MAHASISWA (iNPM int, vNAMA varchar2, vALAMAT
varchar2, iTELEPON number, vTEMPAT_LAHIR varchar2,
dTANGGAL_LAHIR date) AS
BEGIN
insert into mahasiswa VALUES (iNPM, vNAMA, vALAMAT, iTELEPON,
vTEMPAT_LAHIR, dTANGGAL_LAHIR);
end;
Keterangan: Store procedure ini digunakan untuk melakukan penambahan data pada
tabel mahasiswa
Stored procedure “insert_praktikum” pada SQL 2000
create procedure INSERT_PRAKTIKUM @ID_PRAKTIKUM
int,@NAMA_PRAKTIKUM varchar(30),@SEMESTER
varchar(20),@JUMLAH_SKS varchar(20),@KELAS varchar(20) as
begin
insert into PRAKTIKUM
(PRAKTIKUM.ID_PRAKTIKUM,PRAKTIKUM.NAMA_PRAKTIKUM,PRAKTIKUM.SEM
ESTER,PRAKTIKUM.JUMLAH_SKS,PRAKTIKUM.KELAS)
values(@ID_PRAKTIKUM,@NAMA_PRAKTIKUM,@SEMESTER,@JUMLAH_SKS,@KE
LAS)
end
go
Stored procedure “insert_praktikum” pada Oracle
create or replace
PROCEDURE INSERT_PRAKTIKUM (iID_PRAKTIKUM int, vNAMA_PRAKTIKUM
varchar2, vSEMESTER varchar2, vJUMLAH_SKS varchar2, vKELAS
varchar2) AS
BEGIN
insert into PRAKTIKUM VALUES (iID_PRAKTIKUM, vNAMA_PRAKTIKUM,
vSEMESTER, vJUMLAH_SKS, vKELAS);
end;
Keterangan: Store procedure ini digunakan untuk melakukan penambahan data pada
tabel praktikum.
Stored procedure “insert_pengampu” pada SQL 2000
create procedure INSERT_PENGAMPU @ID_PENGAMPU
int,@NAMA_PENGAMPU varchar(30),@ALAMAT_PENGAMPU
varchar(50),@TEMPAT_LAHIR_PENGAMPU
varchar(30),@TANGGAL_LAHIR_PENGAMPU datetime as
begin
insert into PENGAMPU
(PENGAMPU.ID_PENGAMPU,PENGAMPU.NAMA_PENGAMPU,PENGAMPU.ALAMAT_P
ENGAMPU,PENGAMPU.TEMPAT_LAHIR_PENGAMPU,PENGAMPU.TANGGAL_LAHIR_
PENGAMPU)
values(@ID_PENGAMPU,@NAMA_PENGAMPU,@ALAMAT_PENGAMPU,@TEMPAT_LA
HIR_PENGAMPU,@TANGGAL_LAHIR_PENGAMPU)
end
go
Stored procedure “insert_pengampu” pada Oracle
create or replace
PROCEDURE INSERT_PENGAMPU (iID_PENGAMPU int, vNAMA_PENGAMPU
varchar2, vALAMAT_PENGAMPU varchar2, vTEMPAT_LAHIR_PENGAMPU
varchar2, vTANGGAL_LAHIR_PENGAMPU varchar2) AS
BEGIN
insert into PENGAMPU VALUES (iID_PENGAMPU, vNAMA_PENGAMPU,
vALAMAT_PENGAMPU, vTEMPAT_LAHIR_PENGAMPU,
vTANGGAL_LAHIR_PENGAMPU);
end;
Keterangan: Store procedure ini digunakan untuk melakukan penambahan data pada
tabel pengampu
Stored procedure “insert_daftar” pada SQL 2000
create procedure INSERT_DAFTAR @NPM int,@ID_PRAKTIKUM int as
begin
insert into DAFTAR (DAFTAR.NPM,DAFTAR.ID_PRAKTIKUM)
values(@NPM,@ID_PRAKTIKUM)
end
go
Stored procedure “insert_daftar” pada Oracle
create or replace
PROCEDURE insert_Daftar(iNPM int, iId_Praktikum int) as
begin
insert into daftar values (iNPM, iId_Praktikum);
end;
Keterangan: Store procedure ini digunakan untuk melakukan penambahan data pada
tabel daftar
Stored procedure “delete_daftar” pada SQL 2000
create procedure DELETE_DAFTAR @NPM int,@ID_PRAKTIKUM int as
begin
delete from DAFTAR
where DAFTAR.NPM = @NPM and DAFTAR.ID_PRAKTIKUM =
@ID_PRAKTIKUM
end
go
Stored procedure “delete_daftar” pada Oracle
create or replace
PROCEDURE DELETE_DAFTAR (
NPM number
) AS
BEGIN
delete from daftar where NPM=delete_daftar.NPM;
END DELETE_DAFTAR;
Keterangan: Store procedure ini digunakan untuk penghapusan data data pada tabel
daftar
Cara menjalankan store prosedure untuk insert data pada SQL 2000:
EXEC INSERT_MAHASISWA 09120054, 'basuki', 'balongsari', 677,
'surakarta', '10-May-92'
Cara menjalankan store prosedure untuk insert data pada Oracle:
call insert_mahasiswa(09120008, 'ety', 'banyu urip', 9478575,
'surabaya', '12-Apr-90');
FUNCTION
Function adalah merupakan fasilitas yang disediakan oleh database secara umum untuk
memanipulasi data yang kompleks.
Function “FN_USIA1” pada SQL 2000
IF EXISTS (SELECT name FROM sysobjects
WHERE name='FN_USIA1' and type='FN')
DROP FUNCTION FN_USIA1
GO
CREATE FUNCTION FN_USIA1(@tgl datetime,@tgl_now datetime)
RETURNS int
AS
BEGIN
DECLARE @tahun1 int,@tahun2 int,@umur int
SET @tahun1=DATEPART(year,@tgl)
SET @tahun2=DATEPART(year,@tgl_now)
SET @umur=(@tahun2-@tahun1)
RETURN @umur
END
GO
Function “FN_USIA1” pada Oracle
CREATE OR REPLACE FUNCTION FN_USIA1
(
TGL_LAHIR IN DATE,
DATE_NOW IN DATE
)
RETURN NUMBER AS
tahun1 int;
tahun2 int;
umur int;
BEGIN
tahun1:=to_char(TGL_LAHIR,'YYYY');
tahun2:=to_char(date_now,'YYYY');
umur:=tahun2-tahun1;
return umur;
END FN_USIA1;
Keterangan: Berfungsi untuk menghitung umur pada data yang memiliki tanggal_lahir
dengan tipe date.
Cara menjalankan fungsi function yang telah dibuat pada SQL 2000:
select
id_admin,nik,nama_admin,alamat_admin,tlp_admin,tempat_lahir_ad
min,tanggal_lahir_admin,dbo.fn_usia1(tanggal_lahir_admin,getda
te())as usia from dosen
Cara menjalankan fungsi function yang telah dibuat pada Oracle:
select id_admin,NIM,nama_admin,alamat_admin,tlp_admin,
tempat_lahir_admin,tanggal_lahir_admin,
fn_usia1(tanggal_lahir_admin,to_date(sysdate,'dd/mm/yy')) as
Umur from dosen;
TRIGGER
Trigger adalah Store procedure khusus yang otomatis aktif/dijalankan pada saat event-
event tertentu ketika sebuah aksi (INSERT, UPDATE, DELETE) menimpa sebuah tabel.
Trigger “SP_INSERT_MAHASISWA” pada SQL 2000
IF EXISTS(SELECT name FROM sysobjects
WHERE name='SP_INSERT_MAHASISWA' AND type='TR')
DROP TRIGGER SP_INSERT_MAHASISWA
GO
Create TRIGGER SP_INSERT_MAHASISWA on MAHASISWA
FOR INSERT
As
DECLARE
@npm int,@nama varchar(30),@alamat varchar(50),@telepon
int,@lahir varchar(20),@tgl_lahir datetime
SELECT @npm= NPM from inserted
SELECT @nama=nama from inserted
SELECT @alamat=alamat from inserted
SELECT @telepon=telepon from inserted
SELECT @lahir=tempat_lahir from inserted
SELECT @tgl_lahir=tanggal_lahir from inserted
INSERT into History_Mahasiswa
Values (@npm,@nama,@alamat,@telepon,@lahir,@tgl_lahir)
GO
Trigger “SP_INSERT_MAHASISWA” pada Oracle
create or replace
TRIGGER "SP_INSERT_MAHASISWA"
AFTER INSERT ON MAHASISWA
REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW
BEGIN
insert into history_mahasiswa
values
(:new.npm,:new.nama,:new.alamat,:new.telepon,:new.tempat_lahir
,:new.tanggal_lahir);
END;
Keterangan: Digunakan untuk melakukan insert data pada tabel history_mahasiswa,
apabila terjadi penambahan data pada tabel mahasiswa, maka tabel History_mahasiswa
akan dilakukan insert.
Trigger “SP_UPDATE_MAHASISWA” pada SQL 2000
IF EXISTS(SELECT name FROM sysobjects
WHERE name='SP_UPDATE_MAHASISWA' AND type='TR')
DROP TRIGGER SP_UPDATE_MAHASISWA
GO
Create TRIGGER SP_UPDATE_MAHASISWA on MAHASISWA
FOR UPDATE
As
DECLARE
@npm int,@nama varchar(30),@alamat varchar(50),@telepon
int,@lahir varchar(20),@tgl_lahir datetime,@npm_lama int
SELECT @npm= NPM from inserted
SELECT @npm_lama= NPM from deleted
SELECT @nama=nama from inserted
SELECT @alamat=alamat from inserted
SELECT @telepon=telepon from inserted
SELECT @lahir=tempat_lahir from inserted
SELECT @tgl_lahir=tanggal_lahir from inserted
UPDATE HISTORY_MAHASISWA
SET
NPM=@npm,NAMA=@nama,ALAMAT=@alamat,Telepon=@telepon,TEMPAT_LAH
IR=@lahir,Tanggal_Lahir=@tgl_lahir
WHERE NPM=@npm_lama
Go
Trigger “SP_UPDATE_MAHASISWA” pada Oracle
create or replace
TRIGGER SP_UPDATE_MAHASISWA
AFTER UPDATE ON MAHASISWA
REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW
BEGIN
update history_mahasiswa
SET
NPM=:new.npm,NAMA=:new.nama,ALAMAT=:new.alamat,Telepon=:new.te
lepon,TEMPAT_LAHIR=:new.tempat_lahir,Tanggal_Lahir=:new.Tangga
l_lahir
WHERE NPM=:old.NPM;
END;
Keterangan: Digunakan untuk melakukan update data pada tabel history_mahasiswa,
apabila terjadi perubahan pada tabel mahasiswa, maka tabel history_mahasiswa akan
dilakukan update
Trigger “SP_HAPUS_MAHASISWA” pada SQL 2000
IF EXISTS(SELECT name FROM sysobjects
WHERE name='SP_DELETE_MAHASISWA' AND type='TR')
DROP TRIGGER SP_DELETE_MAHASISWA
GO
Create TRIGGER SP_DELETE_MAHASISWA on MAHASISWA
FOR DELETE
As
DECLARE
@npm int
SELECT @npm= NPM from deleted
DELETE FROM HISTORY_MAHASISWA WHERE npm=@npm
GO
Trigger “SP_HAPUS_MAHASISWA” pada Oracle
create or replace
TRIGGER SP_HAPUS_MAHASISWA
AFTER DELETE ON MAHASISWA
REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW
BEGIN
DELETE FROM HISTORY_MAHASISWA
WHERE NPM=:old.npm;
END;
Keterangan: Digunakan untuk melakukan penghapusan data pada tabel
history_mahasiswa, apabila terjadi penghapusan pada tabel mahasiswa, maka tabel
history_mahasiswa akan dihapus juga
Cara menjalankan trigger untuk insert data pada SQL 2000:
EXEC INSERT_MAHASISWA 09120054, 'basuki', 'balongsari', 677,
'surakarta', '10-May-92'
Cara menjalankan trigger untuk insert data pada Oracle:
call insert_mahasiswa(09120008, 'ety', 'banyu urip', 9478575,
'surabaya', '12-Apr-90');
apabila mengisi data pada tabel insert mahasiswa maka secara otomatis pada tabel
history_mahasiswa punya juga terdapat data yang sama dengan tabel mahasiswa
PACKAGE
Package adalah suatu cara untuk memanage class-class yang kita buat. Package akan
sangat bermanfaat Jika class-class yang kita buat sangat banyak sehingga perlu
dikelompokkan berdasarkan kategori tertentu.
Package adalah koleksi dari beberapa class dan interface yang berhubungan, dan
menyediakan proteksi akses dan pengelolaan namespace.
Package “PCKG” pada Oracle
create or replace
PACKAGE PCKG AS
Procedure hapus_asisten(
id_admin number
);
procedure insert_assisten(
id_admin number,
NIM number,
nama_admin varchar2,
alamat_admin varchar2,
tlp_admin number,
tempat_lahir_admin varchar2,
tanggal_lahir_admin date
);
procedure insert_dosen(
id_admin number,
NIK number,
nama_admin varchar2,
alamat_admin varchar2,
tlp_admin number,
tempat_lahir_admin varchar2,
tanggal_lahir_admin date
);
Procedure hapus_dosen(
NIK number
);
END PCKG;
create or replace
PACKAGE BODY PCKG AS
Procedure hapus_asisten(
id_admin number
) AS
BEGIN
Delete from assisten where id_admin=hapus_asisten.id_admin;
END hapus_asisten;
Procedure insert_assisten(
id_admin number,
NIM number,
nama_admin varchar2,
alamat_admin varchar2,
tlp_admin number,
tempat_lahir_admin varchar2,
tanggal_lahir_admin date
) AS
BEGIN
insert into assisten VALUES
(id_admin,NIM,nama_admin,alamat_admin,tlp_admin,tempat_lahir
_admin,tanggal_lahir_admin);
end insert_assisten;
Procedure insert_dosen(
id_admin number,
NIK number,
nama_admin varchar2,
alamat_admin varchar2,
tlp_admin number,
tempat_lahir_admin varchar2,
tanggal_lahir_admin date
) AS
BEGIN
insert into dosen VALUES
(id_admin,NIK,nama_admin,alamat_admin,tlp_admin,tempat_lahir
_admin,tanggal_lahir_admin);
end insert_dosen;
Procedure hapus_dosen(
NIK number
) AS
BEGIN
Delete from dosen where NIK=hapus_dosen.NIK;
END hapus_dosen;
END PCKG;
Keterangan: Didalam package “PCKG” ini terdapat beberapa class dari fungsi store
prosedure yaitu terdapat insert_assisten, hapus_asisten, insert_dosen, hapus_dosen).
Cara menjalankan package pada Oracle:
call
pckg.insert_assisten(6745,65689,'susi','manukan',647847,'blitar','
09-Apr-87');
call pckg.hapus_asisten(5466);
call
pckg.insert_dosen(56,43546,'noven','manukan',4646,'mojokerto','12-
Apr-85');
call pckg.hapus_dosen(43546);
Active Database
1. STORE PROCEDURE
INSERT_MAHASISWA
Store procedure ini digunakan untuk melakukan penambahan data pada tabel
mahasiswa
INSERT_PENGAMPU
Store procedure ini digunakan untuk melakukan penambahan data pada tabel
pengampu
INSERT_PRAKTIKUM
Store procedure ini digunakan untuk melakukan penambahan data pada tabel
praktikum
INSERT_DAFTAR
Store procedure ini digunakan untuk melakukan penambahan data pada tabel daftar
DELETE_DAFTAR
Store procedure ini digunakan untuk penghapusan data data pada tabel daftar
HAPUS_DATA
Store procedure ini digunakan untuk melakukan penghapusan seluruh data yang ada
pada tabel bawa, kelolah, kelolah2, dan daftar
2. FUNCTION
FN_USIA1
Function “FN_USIA1” Berfungsi untuk menghitung umur dengan tipe data (Integer)
pada data yang memiliki tanggal_lahir dengan tipe data (date)
3. TRIGGER
SP_INSERT_MAHASISWA
Digunakan untuk melakukan penambahan data pada tabel history_mahasiswa, apabila
terjadi perubahan pada tabel mahasiswa, maka tabel history_mahasiswa akan
dilakukan penambahan data pula.
SP_HAPUS_MAHASISWA
Digunakan untuk melakukan penghapusan data pada tabel history_mahasiswa, apabila
terjadi penghapusan pada tabel mahasiswa, maka tabel history_mahasiswa akan
dihapus juga
SP_UPDATE_MAHASISWA
Digunakan untuk melakukan update data pada tabel history_mahasiswa, apabila
terjadi perubahan pada tabel mahasiswa, maka tabel history_mahasiswa akan
dilakukan update
4. PACKAGE
PCKG
Didalam package “PCKG” ini terdapat beberapa class dari fungsi store prosedure
yaitu terdapat insert_assisten, hapus_asisten, insert_dosen, hapus_dosen).
ERD dengan SUPERTYPES dan SUBTYPES
Mahasiswa Daftar Praktikum
Asisten
NPM
Nama
Alamat
Telepon
Tempat_lahir
Tanggal_lahir
M M
Nama_praktikum
semester
Jumlah_sks
kelas
Id_praktikumId_daftar
NPM
Id_praktikum
Kelolah
Adminku
M
Id_admin
Nama_admin
Tanggal_daftar
Alamat_admin Tlp_admin
Tempat_lahir_admin
Tanggal_lahir_admin
Id_Kelolah
id_admin
Id_praktikum
keterangan
Dosen
NIM NIK
M
Bawa PengampuM
Nama_pengampu
Alamat_pengampu
Tempat_lahir_pengampu
Tanggal_lahir_pengampu
Id_praktikumId_bawa
Id_pengampu
Id_pengampu
CDM (Conceptual Data Model)
DAFTAR KELOLAH
BAWA
jenis_admin
MAHASISWA
NPM
NAMA
ALAMAT
TELEPON
TEMPAT_LAHIR
TANGGAL_LAHIR
<pi> Integer
Variable characters (30)
Variable characters (50)
Number
Variable characters (30)
Date
<M>
Identifier_1
...
<pi>
PRAKTIKUM
ID_PRAKTIKUM
NAMA_PRAKTIKUM
SEMESTER
JUMLAH_SKS
KELAS
<pi> Integer
Variable characters (30)
Variable characters (20)
Variable characters (20)
Variable characters (20)
<M>
Identifier_1
...
<pi>
ADMINKU
ID_ADMIN
NAMA_ADMIN
ALAMAT_ADMIN
TLP_ADMIN
TEMPAT_LAHIR_ADMIN
TANGGAL_LAHIR_ADMIN
<pi> Integer
Variable characters (30)
Variable characters (50)
Number
Variable characters (20)
Date
<M>
Identifier_1
...
<pi>
PENGAMPU
ID_PENGAMPU
NAMA_PENGAMPU
ALAMAT_PENGAMPU
TEMPAT_LAHIR_PENGAMPU
TANGGAL_LAHIR_PENGAMPU
<pi> Integer
Variable characters (30)
Variable characters (50)
Variable characters (30)
Date
<M>
Identifier_1
...
<pi>
DOSEN
NIK Integer <M>
ASSISTEN
NIM Integer <M>
PDM (Physical Data Model)
MAHASISWA
NPM
NAMA
ALAMAT
TELEPON
TEMPAT_LAHIR
TANGGAL_LAHIR
...
INTEGER
VARCHAR2(30)
VARCHAR2(50)
NUMBER
VARCHAR2(30)
DATE
<pk>
PRAKTIKUM
ID_PRAKTIKUM
NAMA_PRAKTIKUM
SEMESTER
JUMLAH_SKS
KELAS
...
INTEGER
VARCHAR2(30)
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(20)
<pk>
PENGAMPU
ID_PENGAMPU
NAMA_PENGAMPU
ALAMAT_PENGAMPU
TEMPAT_LAHIR_PENGAMPU
TANGGAL_LAHIR_PENGAMPU
...
INTEGER
VARCHAR2(30)
VARCHAR2(50)
VARCHAR2(30)
DATE
<pk>
DOSEN
ID_ADMIN
NIK
NAMA_ADMIN
ALAMAT_ADMIN
TLP_ADMIN
TEMPAT_LAHIR_ADMIN
TANGGAL_LAHIR_ADMIN
...
INTEGER
INTEGER
VARCHAR2(30)
VARCHAR2(50)
NUMBER
VARCHAR2(20)
DATE
<pk>
ASSISTEN
ID_ADMIN
NIM
NAMA_ADMIN
ALAMAT_ADMIN
TLP_ADMIN
TEMPAT_LAHIR_ADMIN
TANGGAL_LAHIR_ADMIN
...
INTEGER
INTEGER
VARCHAR2(30)
VARCHAR2(50)
NUMBER
VARCHAR2(20)
DATE
<pk>
DAFTAR
NPM
ID_PRAKTIKUM
INTEGER
INTEGER
<pk,fk1>
<pk,fk2>
KELOLAH2
ID_ADMIN
ID_PRAKTIKUM
INTEGER
INTEGER
<pk,fk1>
<pk,fk2>
KELOLAH
ID_ADMIN
ID_PRAKTIKUM
INTEGER
INTEGER
<pk,fk2>
<pk,fk1>
BAWA
ID_PENGAMPU
ID_PRAKTIKUM
INTEGER
INTEGER
<pk,fk1>
<pk,fk2>
KETERANGAN RELASI TABEL:
Terdapat 4 Entity, yaitu: Mahasiswa, Praktikum, Pengampu, dan Admin
Terdapat 3 Relasi, yaitu: Daftar, Kelola, Bawa
Admin atau Pengelolah sistem dibagi menjadi 2 jenis: Asisten dan Dosen
setiap praktikum dibawai oleh dosen pengampu mata kuliah praktikum
setiap mahasiswa mendaftar praktikum memiliki detail pendaftaran, yang didalamnya
melibatkan entity mahasiswa dan praktikum
seluruh sistem pendaftaran praktikum memiliki detail pengelolahan praktikum, yang
mana didalamnya melibatkan entity praktikum dan admin
top related