Sabtu, 14 Januari 2012

Pertemuan 23

create database ContohTrigger
use ContohTrigger

create table TblBagian
(KodeBag char(2)primary key, bagian char(15))

--Membuat tabel pegawai berhubungan dengan tabel Bagian
create table TblPegawai(nip char(5) primary key, nama char(25),
jabatan char(15), gaji int, KodeBag char(2)REFERENCES TblBagian(KodeBag))

insert into TblBagian values('KU','Keuangan')
insert into TblBagian values('KS','Kesehatan')
insert into TblBagian values('AM','Adminst')
insert into TblBagian values('SM','Personalia')

insert into TblPegawai values('09101','Budi','Direktur',5000000,'KU')
insert into TblPegawai values('09102','Iwan','Kabag',3000000,'AM')
insert into TblPegawai values('09103','Dian','Staff',1000000,'KS')
insert into TblPegawai values('09104','Waty','Staff',1000000,'SM')

select * from TblBagian
select * from TblPegawai

/*TRIGGER
Trigger adalah stored prosedur khusus yang dijalankan secara otamatis
pada saat modifikasi data (UPDATE,INSERT,DELETE)
--Trigger untuk menambahkan data baru pada tabel pegawai*/
create trigger tampilpesan
on TblPegawai
for insert
as
print 'DATA SUDAH DISIMPAN'

--Menambah data pegawai yang baru
insert into tblpegawai values('09105','Putra Nababan','sales',2500000,'KS')

/* mengubah trigger (misal) mengubah trigger tampil pesan
dgn mengubah pesan yang ditampilkan*/
Alter trigger tampilpesan
on Tblpegawai
for insert
as
print 'DATA TELAH DISIMPAN DENGAN BAIK'

Insert into TblPegawai values('09106','Diana','Account',8000000,'KU')

--Menonaktifkan trigger pada suatu tabel
ALTER TABLE TblPegawai DISABLE TRIGGER tampilpesan

--Contoh tambahan :
insert into TblPegawai values('09107','Chandra Halim','Kabag',2500000,'KU')

--Mengaktifkan kembali trigger
ALTER TABLE TblPegawai ENABLE TRIGGER tampilpesan

--Menghapus TRIGGER
DROP TRIGGER tampilpesan

/* Membuat TRIGGER dengan nama cek jabatan yang akan menolak jika menambah
pegawai yang jabatannya juga DIREKTUR
Trigger memiliki kemampuan yaitu :
inserted: menimpan data-data yang di insert dan di update
deleted: menimpan data-data yang di delete
*/
create trigger cekjabatan
on Tblpegawai
for insert
as
declare @jumlah int
select @jumlah=count(nip)from TblPegawai
where jabatan='direktur'
if(@jumlah>1)
begin
delete TblPegawai from TblPegawai,inserted
where TblPegawai.nip=inserted.nip
print 'JABATAN DIREKTUR SUDAH ADA'
end
--CONTOH***
insert into TblPegawai values('09109','Dyah Pitaloka','Direktur',8000000,'SM')

/* TRIGGER UPDATE
Trigger yang terjadi pada saat mengubah data
pada suatu tabel, contoh : membuat trigger
yang mengubah gaji pegawai apabila jabatannya
berubah menjadi staff*/

create trigger ubahgaji
on TblPegawai
for update
as
update Tblpegawai set gaji=1500000 where jabatan='Staff'
print 'Gaji telah diubah'
----------------------------------------------
select*from TblPegawai

/* mengubah trigger(misal) mengubah trigger tampil pesan
dgn mengubah pesan yang ditampilkan
mengubah jabatan pegawai yang bernama iwan menjadi staff yang sebelumnya
jabatannya adalah kabag ( diketahui nip=102 )
*/
update TblPegawai set jabatan='Staff'where nip='09104'

select*from TblPegawai

Rabu, 04 Januari 2012

PERTEMUAN 22

create database ContohTrigger
use ContohTrigger

create table TblBagian
(KodeBag char(2)primary key, bagian char(15))

--Membuat tabel pegawai berhubungan dengan tabel Bagian
create table TblPegawai(nip char(5) primary key, nama char(25),
jabatan char(15), gaji int, KodeBag char(2)REFERENCES TblBagian(KodeBag))

insert into TblBagian values('KU','Keuangan')
insert into TblBagian values('KS','Kesehatan')
insert into TblBagian values('AM','Adminst')
insert into TblBagian values('SM','Personalia')

insert into TblPegawai values('09101','Budi','Direktur',5000000,'KU')
insert into TblPegawai values('09102','Iwan','Kabag',3000000,'AM')
insert into TblPegawai values('09103','Dian','Staff',1000000,'KS')
insert into TblPegawai values('09104','Waty','Staff',1000000,'SM')

select * from TblBagian
select * from TblPegawai

/*TRIGGER
Trigger adalah stored prosedur khusus yang dijalankan secara otamatis
pada saat modifikasi data (UPDATE,INSERT,DELETE)
--Trigger untuk menambahkan data baru pada tabel pegawai*/
create trigger tampilpesan
on TblPegawai
for insert
as
print 'DATA SUDAH DISIMPAN'

--Menambah data pegawai yang baru
insert into tblpegawai values('09105','Putra Nababan','sales',2500000,'KS')

/* mengubah trigger (misal) mengubah trigger tampil pesan
dgn mengubah pesan yang ditampilkan*/
Alter trigger tampilpesan
on Tblpegawai
for insert
as
print 'DATA TELAH DISIMPAN DENGAN BAIK'

Insert into TblPegawai values('09106','Diana','Account',8000000,'KU')

--Menonaktifkan trigger pada suatu tabel
ALTER TABLE TblPegawai DISABLE TRIGGER tampilpesan

--Contoh tambahan :
insert into TblPegawai values('09107','Chandra Halim','Kabag',2500000,'KU')

--Mengaktifkan kembali trigger
ALTER TABLE TblPegawai ENABLE TRIGGER tampilpesan

--Menghapus TRIGGER
DROP TRIGGER tampilpesan

/* Membuat TRIGGER dengan nama cek jabatan yang akan menolak jika menambah
pegawai yang jabatannya juga DIREKTUR
Trigger memiliki kemampuan yaitu :
inserted: menimpan data-data yang di insert dan di update
deleted: menimpan data-data yang di delete
*/
create trigger cekjabatan
on Tblpegawai
for insert
as
declare @jumlah int
select @jumlah=count(nip)from TblPegawai
where jabatan='direktur'
if(@jumlah>1)
begin
delete TblPegawai from TblPegawai,inserted
where TblPegawai.nip=inserted.nip
print 'JABATAN DIREKTUR SUDAH ADA'
end
--CONTOH***
insert into TblPegawai values('09109','Dyah Pitaloka','Direktur',8000000,'SM')

/* TRIGGER UPDATE
Trigger yang terjadi pada saat mengubah data
pada suatu tabel, contoh : membuat trigger
yang mengubah gaji pegawai apabila jabatannya
berubah menjadi staff*/

create trigger ubahgaji
on TblPegawai
for update
as
update Tblpegawai set gaji=1500000 where jabatan='Staff'
print 'Gaji telah diubah'
----------------------------------------------
select*from TblPegawai

/* mengubah trigger(misal) mengubah trigger tampil pesan
dgn mengubah pesan yang ditampilkan
mengubah jabatan pegawai yang bernama iwan menjadi staff yang sebelumnya
jabatannya adalah kabag ( diketahui nip=102 )
*/
update TblPegawai set jabatan='Staff'where nip='09104'

select*from TblPegawai

Rabu, 21 Desember 2011

LATIHAN 21

/* LATIHAN
1. Buatkan prosedur untuk menghapus record berdasarkan kode paket yang diinginkan.
2. Buatkan prosedure untuk memperbaiki record berdasarkan kode 04 dengan paket multemedia dan biaya 300000.
*/

jawab No.1
create procedure hapusdata @kode char(2)
as
delete from tblpaket
where kode=@kode
--jalankan procedure hapus data
hapusdata'02'

lihattabel

Tampilan :

jawab No.2
create procedure perbaikidata @kode char(2),@paket char(15),@biaya bigint
as
update tblpaket set paket=@paket,biaya=@biaya
where kode=@kode

---jalankan procedure (memperbaiki kode paket 04)
perbaikidata'04','Multimedia',300000

lihattabel

Tampilan :

pertemuan 21

create database ContohProsedur
use ContohProsedur

create Table TblPaket(Kode char(2)Primary Key,Paket Char(15),Biaya Bigint)

insert into TblPaket Values('01','Mic.SQL Server',100000)
insert into TblPaket Values('02','Mic.Visual.Net',250000)
insert into TblPaket Values('03','Per.WEB',375000)

--Contoh Pembuatan Prosedur untuk lihat data
---(Tanpa Parameter)
Create Procedure LihatTabel
AS
Select*From TblPaket

--Menjalankan Prosedure LihatTabel
LihatTabel

Tampilan :

--Membuat Prosedur dengan 1 parameter input
create Procedure CariTabel @kode Varchar(2)
AS
Select*From TblPaket
Where kode = @kode

--Menjalankan Procedure
CariTabel'01'

Tampilan :


--Pembuatan procedure untuk proses tambah record
create procedure tambahdata @kode char(2),@paket char(15),@biaya bigint
as
insert into tblpaket values(@kode,@paket,@biaya)

--menjalankan procedure tambahdata
tambahdata'04','WEB Programming',350000

lihattabel

--Hapus procedure tambahdata
drop procedure TambahData

Tampilan :

Rabu, 07 Desember 2011

Latihan pertemuan 15

/*lATIHAN

1. Tampilkan tanggal peasan dan tanggal sampai, 5 hari dari
tgl pesan (Dimana tanggal pesan adalah tgl1).

jawab:
*/
--No 1
select tgl1 As "tgl pesan",(tgl1 + 5) As "tgl sampai"
from tbltgl

TAMPILAN :

*
2. Ganti semua isi tgl1 sampai angka tanggal untuk dibawah
tanggal 15 dengan '10/10/1981' dan yang laninya tanggal '11/11/1971'

jawab:
*/
--No 2.
update tbltgl set tgl1=
case when DAY(tgl1)<15 then '10/10/1981' else '11/11/1971' end from tbltgl TAMPILAN :

pertemuan 15

create database tanggal
use tanggal

create table tbltgl(tgl1 datetime,tgl2 datetime)

insert into tbltgl(tgl1,tgl2) values('12/12/2010','01/01/2011')
insert into tbltgl(tgl1,tgl2) values('12/25/2010','01/03/2011')
insert into tbltgl(tgl1,tgl2) values('12/30/2010','01/05/2011')
insert into tbltgl(tgl1,tgl2) values('01/02/2010','01/04/2011')

select*from tbltgl

TAMPILAN :

--Fungsi-fungsi Tanggal
select tgl1,YEAR(tgl1) as Tahun from tbltgl
TAMPILAN :

select tgl1,MONTH(tgl1) as Bulan from tbltgl
TAMPILAN :

select tgl1,DAY(tgl1) as Tangal from tbltgl
TAMPILAN :

---Tampilan Tanggal,Bulan dan Tahun seperti tampilan di bawah ini ?

select DAY(tgl1) as Tanggal, MONTH(tgl1) as Bulan,
YEAR(tgl1) as Tahun from tbltgl
TAMPILAN :

select GETDATE() as "tgl dan jam saat ini / system"
TAMPILAN :

select DATEDIFF(DAY,tgl1,tgl2) as "Selisih hari" from tbltgl
TAMPILAN :

select DATEDIFF(MONTH,tgl1,tgl2) as "selisih bulan" from tbltgl
TAMPILAN :

select DATEDIFF(year,tgl1,tgl2) as "selisih tahun" from tbltgl
TAMPILAN :

--Tambahkan Kolom/Field Tanggal lahir,
--dan isinya Anda sesuaikan Sendiri !

alter table tbltgl add [Tanggal Lahir] datetime

select * from tbltgl

update tbltgl set [tanggal lahir]='10/10/1982' where tgl1='12/12/2010'
update tbltgl set [tanggal lahir]='12/11/1987' where tgl1='12/25/2010'
update tbltgl set [tanggal lahir]='12/10/1988' where tgl1='12/30/2010'
update tbltgl set [tanggal lahir]='12/12/1986' where tgl1='01/07/2010'

tampilan :

--tampilkan tanggal lahir dan usia seperti di bawah ini ???

select [tanggal lahir],
year (getdate())-year([tanggal lahir]) as usia from tbltgl
TAMPILAN :

Rabu, 16 November 2011

PERTEMUAN TERAKHIR

create database PEPUSTAKAAN
Use PERPUSTAKAAN

create table TBLPINJAM(nomor int Primary Key, nama varchar(25),
jurusan varchar(4), BukuPinjaman varchar(30))

insert into TBLPINJAM values(1,'Chyntia','TI1A','Strukdat')
insert into TBLPINJAM values(2,'Chyntia2','SI2B','Oracle')
insert into TBLPINJAM values(3,'Chyntia3','MI23','Mat Stastistik')
insert into TBLPINJAM values(4,'Chyntia4','SA4A','Aljabar')
insert into TBLPINJAM values(5,'Chyntia5','TK21','Bisnis')
insert into TBLPINJAM values(6,'Chyntia6','SA31','Management')
insert into TBLPINJAM values(7,'Chyntia7','KA42','Sistem Komputerisasi')
insert into TBLPINJAM values(8,'Chyntia8','SA4A','B. Inggris')
insert into TBLPINJAM values(9,'Chyntia9','MI23','B. Indonesia')

select * from TBLPINJAM

Fungsi-Funsi AGREGAT
GAMBAR :

SELECT AVG(NOMOR) as "Nilai Rata-rata" FROM TBLPINJAM
GAMBAR :

SELECT MAX(NOMOR) as "Nilai Tertinggi" FROM TBLPINJAM
GAMBAR :

SELECT MIN(NOMOR) as "Nilai Terendah" FROM TBLPINJAM
GAMBAR :

SELECT SUM(NOMOR) as "Nilai Total" FROM TBLPINJAM
GAMBAR :

SELECT COUNT(NOMOR) as "Nilai Banyak Data" FROM TBLPINJAM
gambar :

--Menampilkan Banyak Data sesuai Kelompok (group ,contoh : Jurusan)
SELECT jurusan, COUNT(jurusan) as Kelas FROM TBLPINJAM
GROUP BY jurusan
GAMBAR :

/* COMPUTE -> Untuk membuat subtotal, berdasarkan jurusan dan diurutkan secara ASCENDING*/
SELECT NOMOR,NAMA, jurusan FROM TBLPINJAM
ORDER BY jurusan
COMPUTE COUNT(jurusan) BY jurusan
GAMBAR :

lATIHAN :
1.MENAMBAHKAN KOLOM LAMA (INT) PADA TABEL ANDA
JAWAB :
ALTER TABLE TBLPINJAM ADD LAMA INT

2. Isikan sesuai dengan karakter ke 3 jurusan

Update TBLPINJAM Set Lama=SUBSTRING(jurusan,3,1)

select Jurusan,Lama From TBLPINJAM

--HAVING --> menentukan batasan kondisi hasil proses.
--Mencari Lama pinjam yang lebih dari 2 hari
SELECT jurusan, SUM(Lama) As[yg Lebih Dari 2 Hari] FROM TBLPINJAM
GROUP BY jurusan
HAVING SUM(Lama) > 2