UAS BASIS DATA LANJUT


Tugas 1
1.      FUNCTION ? Ada berapa macam ? Jelaskan bedanya ?
2.      Apa package ? Jelaskan beri contoh ?
3.      Dari masing-masing kelompok cari warna merah di materi dan kerjakan ?
4.      Dari masing-masing kelompok buat topik / judul tentang suatu rencana sistem ?
5.      Dari masing-masing kelompok buat ERD tingkat lanjut dan transformasi ?
6.      Dari masing-masing kelompok buat table beserta relasi ?
7.      Dari masing-masing kelompok buat desain active database yang meliputi Procedure, function, trigger dan tampilkan dalam bentuk Arsitektur PL metode PIPE dan FILTER ?

v  Kelebihan Sistem aplikasi rekam medis :
§  Aplikasi terdapat tabel relasi turunan antar tabel
§  Dalam aplikasi terdapat data pegawai rumah sakit yang terintegrasi dengan sitem diagnosa
§  Dapat meminimalisasi antrian
§  Mempermudah proses pengambilan data pasien

      Alir Data CDM :

Alir Data PDM :



Relasi tabel pada database rekam medis
Ø  Relasi inheritance pada database tarjadi antara tabel pegawai dengan table kepala_RS, admin, Apoteker, Dokter. Dengan table pegawai sebagai induk.
 Relasi antara table dokter dan rekam_medis many to one

Ø  Relasi antara table pasien dengan admin many to one

Ø  Relasi antara tabel admin dengan rekam medis one to many

Ø  Relasi antara table resep dengan rekam_medis one to one



 
Ø  Relasi antara tabel resep dengan data_obat many to many



Ø  Relasi antara table apoteker dengan resep one to many


Jawaban Tugas 1
1.      Desain active database yang meliputi Procedure, function, trigger dan tampilkan dalam bentuk Arsitektur PL metode PIPE dan FILTER .
§  Procedure
ü  Update_dokter : procedure untuk mengupdate data dokter yang telah di inputkan
Input : id_pegawai, SIP_Dokter, spesialis
Proses : pada table dokter data di update kedalam data baru atau melakukan perubahan
Output : SIP_Dokter dan spesialis
ü  Sp_insertpegawai : procedure untuk memasukkan data pegawai baru
Input : id_pegawai, nama_pegawai, jenis_kelamin, alamat, telepon
Proses : pada table pegawai terjadi proses penginputan data
Output : nama_pegawai, jenis_kelamin, alamat, telepon
ü  Delete_RM : Procedure untuk mendelet data rekam medis pada table rekam medis
Input : nomer_RM
Proses : pada table rekam_medis terjadi proses delete data rekam medis
Output : hapus data
ü  Sp_insertobat : Procedure untuk memasukkan data obat ke dalam table data_obat
Input : kode_obat, nama_obat, jumlah, kemasan,harga,harga total
Proses : melakukan proses penginputan data pada table data_obat
Output : kode_obat, nama_obat, jumlah, kemasan,harga,harga total

ü  Lihat Rekam_Medis : Pada procedure lihat data Rekam_medis akan menunjukkan data rekam medis yang telah di input
Input : nomer_RM
Proses : melakukan proses menampilkan data rekam medis
Output : data Rekam_medis

§  Function
·         Function fceknama_pegawai berfungsi untuk mengecek keberadaan nama pegawai dalam table pegawai
·         Function fcekno_registrasi berfungsi untuk mengecek keberadaan nomer registrasi yang ada di dalam table pasien
·         Function  fcekdata_obat  berfungsi untuk mengecek data obat pada table data obat dengan field kode_obat
·         Function fcekrekam_medis berfungsi untuk mengecek data rekam medis pada tabel rekam medis
·         Function fcekdata_dokter berfungsi untuk mengecek data dokter pada table dokter

§  Trigger
·         Delete : deletedata_pegawai
Berfungsi untuk memberikan pesan telah berhasil di hapus sebuah data
Input : id_pegawai
Proses : jika terjadi proses delete data pegawai maka akan mucul pesan delete data yang di hapus.
Output : menampilkan id_pegawai yang di hapus
·         Update : his_updtpegawai
Berfungsi untuk membuat hitory pengupdatetan data yang telah di lakukan.
Inputan : id_pegawai
Proses : jika terjadi proses update pada table pegawai maka secara otomatis id_pegawai yang telah di update akan masuk kedalam table history beserta tanggal update terjadi.
Output : pada table history akan muncul field keterangan id yang di update beserta tanggal update.
·         Update : his_deletepegawai
Berfungsi untuk menampilkan data pegawai yang telah di delete kedalam table history_delete
Inputan : id_pegawai
Proses : jika terjadi proses pendeletan data pegawai maka akan secara otomatis terupdate id_pegawai dan tanggal proses terjadinya delete pada table history_delete.
Output : pada table history_delete akan terupdate secara otomatis id yang di hapus dan tanggal proses penghapusan data.




Tugas 2 & 3
Backup dan Sinkronisasi SQL, ORACLE
§  Query SQL Server
create database rekam_medis
use rekam_medis

------------------------------------------------------------------
tabel pegawai
------------------------------------------------------------------
create table pegawai(
id_pegawai varchar (5),
nama_pegawai varchar (15),
jenis_kelamin char (8),
alamat varchar (20),
telepon varchar (12),
constraint PK_pegawai primary key (id_pegawai))
select *from pegawai
insert into pegawai values ('00001','ria','wanita','kebraon',12345678)
insert into pegawai values ('00002','tara','pria','gogor city',987654321)
insert into pegawai values ('00003','alif','pria','papua',333333333333)
insert into pegawai values ('00004','budi','pria','JL rajawali',999999999999)
insert into pegawai values ('00005','selly','wanita','JL. semarang',888888888888)
insert into pegawai values ('00006','ridho','pria','ahmad yani',65432189)
insert into pegawai values ('00007','jelita','wanita','gunung sari',098765)
insert into pegawai values ('00008','rifky','pria','rungkut',765432)

------------buat procedure untuk insert pegawai
create proc sp_insertpegawai (
@id_pegawai varchar (5),
@nama_pegawai varchar (15),
@jenis_kelamin varchar (8),
@alamat varchar(20),
@telepon varchar (12))
as begin
insert into pegawai values(@id_pegawai, @nama_pegawai,@jenis_kelamin, @alamat, @telepon)
end

insert into pegawai values ('00001','ria','wanita','kebraon',12345678)
exec sp_insertpegawai '00010','danu','pria','karangpilang',12345678
select *from pegawai
-----------------------------------function cek nama pegawai

create function fceknama_pegawai (@nama_pegawai varchar (15))
returns varchar (5)
as begin
declare @data varchar(15), @status varchar (5)
declare cStatus cursor for select nama_pegawai from pegawai where nama_pegawai=@nama_pegawai
set @status=0
open cStatus
fetch next from cStatus into @nama_pegawai
while @@FETCH_STATUS=0
begin
set @data=(select nama_pegawai from pegawai where nama_pegawai=@nama_pegawai)
if(@data<>@nama_pegawai)
begin
set @status=0
end
else
begin
set @status=1
end
fetch next from cStatus into @nama_pegawai
end
close cStatus
deallocate cStatus
return @status
end
------Stored Procedure cek nama pegawai
select * from pegawai

create proc sp_ceknama_pegawai (@nama_pegawai varchar(15))
as begin
declare @status varchar (5)
set @status = dbo.fceknama_pegawai(@nama_pegawai)
if(@status=0)
begin
print 'Nama pegawai TIDAK ADA DALAM DATABASE'

end

else
begin
print ' Nama pegawai anda tersedia dalam database '
end
end

exec sp_ceknama_pegawai 'danu'
select * from pegawai
--- stored procedure update pegawai

create proc sp_updatepegawai(
@id_pegawai varchar (5),
@nama_pegawai varchar (15),
@jenis_kelamin varchar (8),
@alamat varchar(20),
@telepon varchar (12))
as begin
update pegawai set
nama_pegawai=@nama_pegawai,
jenis_kelamin=@jenis_kelamin,
alamat=@alamat, telepon=@telepon
where id_pegawai=@id_pegawai
end

exec sp_updatepegawai '00010','surti','wanita','jombang',12345678
select *from pegawai
select *from history
------------buat triger untuk history update pegawai

create trigger his_updtpegawai on pegawai
for update as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from pegawai
insert into history(keterangan,tgl)
values ('update data pada tabel pegawai dengan id : ' +@id_pegawai,GETDATE())
select *from history_delete
------------buat triger untuk history delete pegawai

create trigger his_deletepegawai on pegawai
for delete as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from deleted
insert into history_delete(ket,tgl)
values ('penghapusan data pada tabel pegawai dengan id : ' +@id_pegawai,GETDATE())
select *from history_delete
------------buat trigger untuk delete data pegawai

select * from history_delete
create trigger deletedata_pegawai on pegawai
after delete
as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from deleted
print 'pegawai yang di delete :' +@id_pegawai

create trigger delete_pegawai
after delete as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
delete from pegawai where id_pegawai=@id_pegawai
inner join delete from admin where id_pegawai=@id_pegawai
inner join delete from dokter where id_pegawai=@id_pegawai
inner join delete from apoteker where id_pegawai=@id_pegawai
inner join delete from rekam_medis where id_pegawai=@id_pegawai
inner join delete from kepala_RS where id_pegawai=@id_pegawai
end
delete ini masih belum selesai
exec delete_pegawai '00007'
select*from pegawai

------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_pegawai(@id_pegawai varchar (5))
as begin
delete from pegawai where id_pegawai=@id_pegawai

end
exec delete_pegawai '00010'

------------------------------------------------------------------
tabel kepala rumah sakit
------------------------------------------------------------------
create table kepala_RS(
id_pegawai varchar (5),
jabatan varchar (20),
constraint FK_pegawai_kep foreign key(id_pegawai) references pegawai(id_pegawai))
insert into kepala_RS values ('00006','kepala_RS')
select *from kepala_RS
--------------- buat procedure insert kepala RS
create proc sp_insertkepalaRS (
@id_pegawai varchar (5),
@jabatan varchar (20))
as begin
insert into kepala_RS values(@id_pegawai, @jabatan)
end

exec sp_insertkepalaRS '',''
------------buat procedure untuk update kepala_RS
create procedure update_kepalaRS
@id_pegawai varchar (5),
@jabatan varchar (20)
as begin
update kepala_RS set jabatan=@jabatan where id_pegawai=@id_pegawai
end

exec update_kepalaRS '00008','kepala RS'
select *from kepala_RS
------------buat triger untuk history update kepala RS

create trigger his_updtkepRS on kepala_RS
for update as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from kepala_RS
insert into history(keterangan,tgl)
values ('update data pada tabel kepala RS dengan id : ' +@id_pegawai,GETDATE())
select *from history_delete
------------buat trigger untuk delete data kepala RS

select * from history_delete
create trigger deletedata_kepalaRS on kepala_RS
after delete
as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from deleted
print 'data kepala RS yang di delete :' +@id_pegawai
------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_kepalaRS(@id_pegawai varchar (5))
as begin
delete from pegawai where id_pegawai=@id_pegawai
end
exec delete_pegawai '00010'
select *from kepala_RS

------------------------------------------------------------------
tabel admin
------------------------------------------------------------------
create table admin(
id_pegawai varchar (5),
constraint FK_pegawai_adm foreign key(id_pegawai) references pegawai(id_pegawai))
insert into admin values ('00003')
select *from admin
--------------- buat procedure insert admin
create proc sp_insertadmin (
@id_pegawai varchar (5))
as begin
insert into admin values(@id_pegawai)
end

exec sp_insertadmin '00005'
select*from pegawai
select *from admin
------------buat triger untuk history delete admin

create trigger his_deleteadmin on admin
for delete as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from deleted
insert into history_delete(ket,tgl)
values ('penghapusan data pada tabel admin dengan no : ' +@id_pegawai,GETDATE())
select *from history_delete
------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_admin(@id_admin varchar (5))
as begin
delete from admin where id_pegawai=@id_admin
end
exec delete_admin '00005'
select*from admin
select *from history_delete
------------------------------------------------------------------
tabel apoteker
------------------------------------------------------------------
create table apoteker (
no_apotik varchar (5) not null,
id_pegawai varchar (5),
constraint PK_apoteker primary key (no_apotik,id_pegawai),
constraint FK_pegawai foreign key(id_pegawai) references pegawai(id_pegawai))
insert into apoteker values ('30001','00007')
insert into apoteker values ('30002','00008')
select *from apoteker
--------------- buat procedure insert apoteker
create proc sp_insertapoteker (
@no_apotik varchar (5),
@id_pegawai varchar (5))
as begin
insert into apoteker values(@no_apotik,@id_pegawai)
end

exec sp_insertapoteker '',''
------------buat procedure untuk update apoteker
create procedure update_apoteker(
@no_apotik varchar (5),
@id_pegawai varchar (5))
as begin
update apoteker set no_apotik=@no_apotik where id_pegawai=@id_pegawai
end

exec update_apoteker '00008','kepala RS'
select *from apoteker
------------buat triger untuk history update apoteker

create trigger his_updtapoteker on apoteker
for update as
declare @no_apotik varchar (5)
select @no_apotik=no_apotik
from apoteker
insert into history(keterangan,tgl)
values ('update data pada tabel apoteker dengan no : ' +@no_apotik,GETDATE())
select *from history
select *from apoteker
exec update_apoteker '30003','00007'
------------buat triger untuk history delete apoteker

create trigger his_deleteapoteker on apoteker
for delete as
declare @no_apotik varchar (5)
select @no_apotik=no_apotik
from deleted
insert into history_delete(ket,tgl)
values ('penghapusan data pada tabel apoteker dengan no : ' +@no_apotik,GETDATE())
select *from history_delete

------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_apoteker(@no_apotik varchar (5))
as begin
delete from apoteker where no_apotik=@no_apotik
end
exec delete_apoteker '00010'
------------------------------------------------------------
tabel dokter
------------------------------------------------------------------create table dokter (
id_pegawai varchar (5),
SIP_Dokter varchar (16),
Spesialis varchar (15)
constraint FK_pegawai_dok foreign key (id_pegawai) references pegawai (id_pegawai))
insert into dokter values ('00001','dok123456789anak','dokter anak')
insert into dokter values ('00002','dok234567890umum','umum')
insert into dokter values ('00008','dok777777777umum','umum')
select *from dokter
-----------------------------------function cek data dokter

create function fcekdata_dokter (@id_pegawai varchar (5))
returns varchar (6)
as begin
declare @data varchar(20), @status varchar (6)
declare cStatus cursor for select id_pegawai from dokter where id_pegawai=@id_pegawai
set @status=0
open cStatus
fetch next from cStatus into @id_pegawai
while @@FETCH_STATUS=0
begin
set @data=(select ID_PEGAWAI from dokter where id_pegawai=@id_pegawai)
if(@data<>@id_pegawai)
begin
set @status=0
end
else
begin
set @status=1
end
fetch next from cStatus into @id_pegawai
end
close cStatus
deallocate cStatus
return @status
end

------Stored Procedure cek id dokter
select * from pasien

create proc sp_cekdata_dokter (@id_pegawai varchar(5))
as begin
declare @status varchar (6)
set @status = dbo.fcekdata_dokter(@id_pegawai)
if(@status=0)
begin
print 'id dokter TIDAK ADA DALAM DATABASE'

end

else
begin
print ' id ' +@id_pegawai +' tersedia dalam database dokter '
end
end

exec sp_cekdata_dokter '00001'
select *from dokter
------------buat trigger untuk delete dokter

create trigger deletedata_dokter on dokter
after delete
as
declare @id_pegawai varchar (5)
select @id_pegawai=id_pegawai
from deleted
print 'dokter yang di delete :' +@id_pegawai

------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_dokter(@id_pegawai varchar (5))
as begin
delete from dokter where id_pegawai=@id_pegawai
end
exec delete_dokter '00008'
select*from dokter
select*from history_delete
------------buat procedure untuk melihat data dokter
create procedure d_dokter
as begin
select *from dokter
end

exec d_dokter
------------buat procedure untuk update dokter
create procedure update_dokter
@id_pegawai varchar (5),
@SIP_Dokter varchar (16),
@Spesialis varchar (15)
as begin
update dokter set SIP_Dokter=@SIP_Dokter, Spesialis=@Spesialis where id_pegawai=@id_pegawai
end

exec update_dokter '00002','dok111111anak','anak'
select*from history
selec

select * from dokter
------------buat triger untuk history update dokter

create trigger Tupdt_dokter on dokter
for update as
insert into history_delete(kete,tgl)
values ('pengubahan data pada tabel dokter',GETDATE())
select*from history
------------------------------------------------------------
tabel pasien
------------------------------------------------------------------create table pasien (
no_registrasi varchar (6) not null,
nama_pasien varchar (15),
usia varchar (7),
jenis_kelamin char (8),
alamat varchar (20)
constraint PK_pasien primary key (no_registrasi))
insert into pasien values ('100001','danny','16','wanita','kebraon')
insert into pasien values ('100002','sugeng','30','pria','gogor')
insert into pasien values ('100003','rio','12','pria','pondok indah')
insert into pasien values ('100004','tari','20','wanita','sepanjang')
select *from pasien
------------buat procedure untuk update pasien
create procedure update_pasien
@no_registrasi varchar (6),
@nama_pasien varchar (15),
@usia varchar (7),
@jenis_kelamin char (8),
@alamat varchar (20)
as begin
update pasien set nama_pasien=@nama_pasien,
                          usia=@usia, jenis_kelamin=@jenis_kelamin,
                          alamat=@alamat where no_registrasi=@no_registrasi
end

exec update_pasien '100004','juki','22','pria','sepanjang'
select *from pasien
------------buat procedure untuk melihat pasien
create procedure d_pasien
as begin
select *from pasien
end

exec d_pasien
-----------------------------------function cek no.regitrasi pasien

create function fceknama_pasien (@nama_pasien varchar (15))
returns varchar (6)
as begin
declare @data varchar(20), @status varchar (6)
declare cStatus cursor for select nama_pasien from pasien where nama_pasien=@nama_pasien
set @status=0
open cStatus
fetch next from cStatus into @nama_pasien
while @@FETCH_STATUS=0
begin
set @data=(select NAMA_PASIEN from pasien where nama_pasien=@nama_pasien)
if(@data<>@nama_pasien)
begin
set @status=0
end
else
begin
set @status=1
end
fetch next from cStatus into @nama_pasien
end
close cStatus
deallocate cStatus
return @status
end

------Stored Procedure cek no. registrasi pasien
select * from pasien

create proc sp_cekNO_REGISTRASI (@nama_pasien varchar(15))
as begin
declare @status varchar (6)
set @status = dbo.fcekno_registrasi(@nama_pasien)
if(@status=0)
begin
print 'nama pasien TIDAK ADA DALAM DATABASE'

end

else
begin
print ' nama pasien tersedia dalam database '
end
end

exec sp_cekNo_registrasi 'aaa'
select * from pasien

------------------------------------------------------------
tabel resep
------------------------------------------------------------------create table resep(
id_pegawai varchar (5),
no_registrasi varchar (6),
nomer_RM varchar (6),
no_resep varchar (6) not null,
kode_obat varchar (5),
nama_obat varchar (15),
jumlah integer,
aturan_pemakaian varchar (20),
dosis varchar (10),
masa_pemakaian varchar (20),
keterangan varchar (50),
harga_obat numeric (9),
biaya_periksa numeric (9),
biaya_total numeric (9)
constraint PK_resep primary key (no_resep,id_pegawai,no_registrasi,kode_obat,nama_obat),
constraint FK_pegawai_apotik foreign key (id_pegawai) references pegawai (id_pegawai),
constraint FK_pasienresep foreign key (no_registrasi) references pasien (no_registrasi),
constraint FK_obat foreign key (kode_obat,nama_obat) references data_obat (kode_obat,nama_obat))
insert into resep values ('00002','100001','200001','400001','40003','komix','3','3 kali sehari','1 gram','1 minggu','bila belum sembuh kembali','10000','50000','60000')
select *from resep
------------buat procedure untuk insert resep
create proc sp_insertresep (
@id_pegawai varchar (5),
@no_registrasi varchar (6),
@nomer_RM varchar (6),
@no_resep varchar(6),
@kode_obat varchar (5),
@nama_obat varchar (15),
@jumlah integer,
@aturan_pemakaian varchar (20),
@dosis varchar (10),
@masa_pemakaian varchar (20),
@keterangan varchar (50),
@harga_obat numeric (9),
@biaya_periksa numeric (9),
@biaya_total numeric (9))
as begin
insert into resep values(@id_pegawai, @no_registrasi,@nomer_RM,
                                     @no_resep, @kode_obat, @nama_obat,
                                     @jumlah,@aturan_pemakaian,@dosis
                                     ,@masa_pemakaian,@keterangan,@harga_obat
                                     ,@biaya_periksa,@biaya_total)
end

insert into pegawai values ('00001','ria','wanita','kebraon',12345678)
exec sp_insertpegawai '00010','danu','pria','karangpilang',12345678
select *from pegawai
------------buat procedure untuk insert resep
create proc sp_insertresep (
@id_pegawai varchar (5),
@no_registrasi varchar (6),
@nomer_RM varchar (6),
@no_resep varchar(6),
@kode_obat varchar (5),
@nama_obat varchar (15),
@jumlah int,
@aturan_pemakaian varchar (20),
@dosis varchar (10),
@masa_pemakaian varchar(20),
@keterangan varchar (50),
@harga_obat numeric (9),
@biaya_periksa numeric (9),
@biaya_total numeric (9))
as begin
insert into resep values(
@id_pegawai, @no_registrasi,
@nomer_RM, @no_resep,
@kode_obat, @nama_obat,
@jumlah, @aturan_pemakaian,
@dosis, @masa_pemakaian,
@keterangan, @harga_obat,
@biaya_periksa, @biaya_total)
end
exec sp_insertresep '','','','','','','','','','','','','',''
------------------------------------------------------------
tabel data obat
------------------------------------------------------------------
create table data_obat(
kode_obat varchar (5) not null,
nama_obat varchar (15) not null,
jumlah float,
kemasan varchar (9),
harga float,
harga_total float,
constraint PK_data_obat primary key (kode_obat,nama_obat))
-----------------------------------function cek data obat

CREATE function fcekdata_obat (@nama_obat varchar (15))
returns varchar (6)
as begin
declare @data varchar(20), @status varchar (6)
declare cStatus cursor for select nama_obat from data_obat where nama_obat=@nama_obat
set @status=0
open cStatus
fetch next from cStatus into @nama_obat
while @@FETCH_STATUS=0
begin
set @data=(select NAMA_OBAT from data_obat where nama_obat=@nama_obat)
if(@data<>@nama_obat)
begin
set @status=0
end
else
begin
set @status=1
end
fetch next from cStatus into @nama_obat
end
close cStatus
deallocate cStatus
return @status
end
------Stored Procedure cek data obat
select * from pegawai

create proc sp_ceknama_obat (@nama_obat varchar(15))
as begin
declare @status varchar (5)
set @status = dbo.fcekdata_obat(@nama_obat)
if(@status=0)
begin
print 'Nama Obat TIDAK ADA DALAM DATABASE'

end

else
begin
print ' Nama pegawai anda tersedia dalam database '
end
end

EXEC sp_ceknama_obat 'mixagrip'
select *from data_obat
------------buat procedure untuk insert data obat
create proc sp_insertobat(@kode_obat varchar (5), @nama_obat varchar (15), @jumlah float, @kemasan varchar(9), @harga float,@harga_total float)
as begin

insert into data_obat values(@kode_obat, @nama_obat,@jumlah, @kemasan, @harga,@harga_total)
end

exec sp_insertobat '40003','komix','10','tablet','4500','45000'
select *from data_obat
create function f_data_obat
(@kode_obat varchar (5))
as begin
@harga total=jumlah * harga
insert into data_obat values(@harga_total where @kode_obat=kode_obat)
------------buat procedure untuk melihat data obat
create procedure d_obat
as begin
select *from data_obat
end

exec d_obat
------------buat procedure untuk delete data obat
create proc obat_delete
@kode_obat varchar (5)
as begin
delete data_obat where kode_obat=@kode_obat
end
exec obat_delete '40006'

select *from data_obat
------------buat trigger untuk delete data_obat

select * from data_obat

create trigger delete_kode_obat on data_obat
instead of delete
as
begin
declare @kode_obat varchar (5), @nama_obat varchar (15)
set @kode_obat=(select kode_obat from deleted)
delete from data_obat where kode_obat=@kode_obat

end
select * from data_obat

create trigger deletedata_obat on data_obat
after delete
as
declare @kode_obat varchar (5)
select @kode_obat=kode_obat
from deleted
print 'data obat yang di delete :' +@kode_obat
------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_data_obat(@kode_obat varchar (5))
as begin
delete from data_obat where kode_obat=@kode_obat
end

exec delete_data_obat '40003'
select * from data_obat

insert into data_obat values ('40006','laserin','0','botol','8000','0')
insert into data_obat values ('40001','mixagrip','20','tablet','4500','90000')
insert into data_obat values ('40002','panadol','15','tablet','3500','52500')
insert into data_obat values ('40003','komix','12','sirup','9000','108000')
insert into data_obat values ('40004','antangin','14','tablet','5500','77000')
insert into data_obat values ('40005','paramex','18','tablet','6500','117000')
select *from data_obat
------------------------------------------------------------
tabel rekam medis
------------------------------------------------------------------
create table rekam_medis(
id_pegawai varchar (5),
nomer_RM varchar (6) not null,
no_registrasi varchar (6),
diagnosa varchar (15),
keterangan varchar (50),
biaya numeric (9)
constraint PK_rekam_medis primary key (nomer_RM,id_pegawai),
constraint FK_pegawai_RM foreign key (id_pegawai) references pegawai (id_pegawai),
constraint FK_pasienrm foreign key (no_registrasi) references pasien (no_registrasi))
insert into rekam_medis values ('00002','200001','100001','batuk','batuk berdahak','50000')
select *from rekam_medis
------------buat procedure untuk update rekam medis
create procedure update_RM
@id_pegawai varchar (5),
@nomer_RM varchar (6),
@no_registrasi varchar (6),
@diagnosa varchar (15),
@keterangan varchar (50),
@biaya numeric (9)
as begin
update rekam_medis set
id_pegawai=@id_pegawai,
no_registrasi=@no_registrasi,
diagnosa=@diagnosa,
keterangan=@keterangan,
biaya=@biaya
where nomer_RM=@nomer_RM
end
exec update_RM '00003','200001','100001','batuk','batuk berdahak','60000'
select *from history

CREATE function fcekrekam_medis (@nomer_RM varchar (6))
returns varchar (6)
as begin
declare @data varchar(20), @status varchar (6)
declare cStatus cursor for select nomer_RM from rekam_medis where nomer_RM=@nomer_RM
set @status=0
open cStatus
fetch next from cStatus into @nomer_RM
while @@FETCH_STATUS=0
begin
set @data=(select NOMER_RM from rekam_medis where nomer_RM=@nomer_RM)
if(@data<>@nomer_RM)
begin
set @status=0
end
else
begin
set @status=1
end
fetch next from cStatus into @nomer_RM
end
close cStatus
deallocate cStatus
return @status
end
------Stored Procedure cek data obat
select * from pegawai

create proc sp_cekrekam_medis (@nomer_RM varchar(6))
as begin
declare @status varchar (5)
set @status = dbo.fcekrekam_medis(@nomer_RM)
if(@status=0)
begin
print 'Nomer Rekam Medis TIDAK ADA DALAM DATABASE'

end

else
begin
print ' Nomer Rekam Medis anda tersedia dalam database '
end
end

exec sp_cekrekam_medis '200001'
select *from rekam_medis
------------buat triger untuk history update rekam medis

create trigger trg_tambahRM on rekam_medis
for update as
insert into history(keterangan,tgl)
values ('pengubahan data pada tabel rekam medis',GETDATE())

create table history(
keterangan varchar (50),
tgl date)
------------buat procedure untuk melihat rekam medis
create procedure lihat_data_RM1
as begin
select *from rekam_medis
end

exec lihat_data_RM1
------------buat procedure untuk insert rekam medis
create proc sp_insertRM(@id_pegawai varchar (5), @nomer_RM varchar (6), @no_registrasi varchar (6), @diagnosa varchar(15), @keterangan varchar (50),@biaya numeric(9))
as begin

insert into rekam_medis values(@id_pegawai, @nomer_RM,@no_registrasi, @diagnosa, @keterangan,@biaya)

end

exec sp_insertRM '00001','200002','100002','demam','demam berdarah','100000'
select *from rekam_medis
select *from dokter
------------buat triger untuk history delete RM

create trigger his_deleteRM on rekam_medis
for delete as
declare @nomer_RM varchar (6)
select @nomer_RM = nomer_RM
from deleted
insert into history_delete(ket,tgl)
values ('penghapusan data pada tabel rekam medis dengan no : ' +@nomer_RM,GETDATE())
select *from history_delete
------------- Pemanggilan Trigger delete menggunakan Stored Procedure delete Data obat
create proc delete_RM(@nomer_RM varchar (6))
as begin
delete from rekam_medis where nomer_RM=@nomer_RM
end
exec delete_RM '00010'
select
insert into pasien values ('100001','danny','16','wanita','kebraon')
insert into pasien values ('100002','sugeng','30','pria','gogor')
insert into pasien values ('100003','rio','12','pria','pondok indah')
insert into pasien values ('100004','tari','20','wanita','sepanjang')
insert into pasien values ('100005','rafa','18',pria)
select *from pasien

select *from dokter
select *from data_obat
select *from admin
select *from apoteker
select *from rekam_medis
select *from resep
------------------------------------------------------------------
tabel history delete
------------------------------------------------------------------
create table history_delete(
ket varchar (70),
tgl date)


§  Backup SQL Server



 
Gambar 1 : Di database klik kanan pilih tasks-back up.

 
Gambar 2 : Pilih recovery model FULL. Backup type full. Backup componen centang. Isi nama backup file. Pada destination pilih lokasi yang diinginkan untuk backup file.

 
Gambar 3 : Pilih ok biarkan proses berjalan sampai complete.

 
Gambar 4 : Backup successfuly.

Gambar 5 : Cek backup pada folder backup yang ditentukan.
  

§  Singkronisasi database rekam_medis1 dengan rekam_medis
Ø  Buat new publicaton



  

 
Ø  Setelah muncul jendela new publication klik next

 
Ø  Pilih database yang akan dipublikasikan

 
Ø  Pilih marger publication


 



Ø  Centang Subscreeber type pilih sql server 2005 dan sql server 2008

 
Ø  Centang table yang akan di publis dalam database


 
Ø  Pilih article issues. uniqueidentifier columns will be added to tables



Ø  Pada jendela fillter table klik next

 Ø  Pilih snapshoot agen
 

Ø  Pada jendela agen security pilih security setting kemudian pilih Run under the SQL Server agen services account



Ø  Klik next pada jendela security agen


Ø  Pada jendela wizard action pilih Creat the Publication


Ø  Pada jendela complite the wizard isikan publication name kemudian klik finish


Ø  Tunggu proses sampai selesai kemudian close


Ø  Lihat pada local publication apakah publication sudah terbentuk


Ø  Sekarang buat local subscriptions dengan cara : Klik kanan pada object local subscription kemudian pilih new subscription


Ø  Pada jendela new subscription wizard klik next


Ø  Pada jendela Publication pilih nama replication yang telah kita buat tadi kemudaian next














0 komentar:

Posting Komentar