UAS
--1. Buatkan sebuah database (database Toko)
-- lengkap dengan min 5 table lalu tuliskan perintah SQL
-- untuk membuat database dan table tersebut? (Poin 15)
create database db_toko
use db_toko
create table t_barang ( id_barang int primary key not null, nama_barang varchar(50), tanggal_beli datetime, stok_barang money, harga money )
create table t_pelanggan ( kd_pelanggan char(5) primary key not null, nama_pelanggan varchar(50), alamat varchar(255), saldo money, ket varchar(255) )
create table t_supplier ( kd_supplier char(5) primary key not null, nama_supplier varchar(50), alamat varchar(255), saldo money, ket varchar(255) )
create table t_sales ( kd_sales char(5) primary key not null, nama_sales varchar(50), alamat varchar(255), telepon varchar(20), ket varchar(255) )
create table t_kurir ( kd_kurir char(5) primary key not null, nama_kurir varchar(50), alamat varchar(255), telepon varchar(20), ket varchar(255) )
--2. Berkaitan dengan soal no 1, buatkan perintah SQL yaitu
-- untuk menambah record (min 5 record) pada setiap table? (poin 15)
insert into t_barang values
(1, 'Popok Bayi', '2013-10-05 10:10:10.000', 100, 0),
(2, 'Celana Bayi', '2013-10-24 10:10:10.000', 100, 0),
(3, 'Baju Bayi', '2013-10-25 10:10:10.000', 100, 0),
(4, 'Baju Anak-Anak', '2013-10-25 10:10:10.000', 100, 0),
(5, 'Baju Dewasa', '2013-10-25 10:10:10.000', 100, 15000)
select * from t_barang
insert into t_pelanggan values
('00001', 'Pelanggan A', 'Jl. A', 12345, 'Keterangan 1'),
('00002', 'Pelanggan B', 'Jl. B', 12345, 'Keterangan 2'),
('00003', 'Pelanggan C', 'Jl. C', 12345, 'Keterangan 3'),
('00004', 'Pelanggan D', 'Jl. D', 12345, 'Keterangan 4'),
('00005', 'Pelanggan E', 'Jl. E', 12345, 'Keterangan 5')
select * from t_pelanggan
insert into t_supplier values
('00001', 'Supplier A', 'Jl. A', 12345, 'Keterangan 1'),
('00002', 'Supplier B', 'Jl. B', 12345, 'Keterangan 2'),
('00003', 'Supplier C', 'Jl. C', 12345, 'Keterangan 3'),
('00004', 'Supplier D', 'Jl. D', 12345, 'Keterangan 4'),
('00005', 'Supplier E', 'Jl. E', 12345, 'Keterangan 5')
select * from t_supplier
insert into t_sales values
('00001', 'Sales A', 'Jl. A', '62-215708088', 'Keterangan 1'),
('00002', 'Sales B', 'Jl. B', '62-215708088', 'Keterangan 2'),
('00003', 'Sales C', 'Jl. C', '62-215708088', 'Keterangan 3'),
('00004', 'Sales D', 'Jl. D', '62-215708088', 'Keterangan 4'),
('00005', 'Sales E', 'Jl. E', '62-215708088', 'Keterangan 5')
select * from t_sales
insert into t_kurir values
('00001', 'Kurir A', 'Jl. A', '62-215708088', 'Keterangan 1'),
('00002', 'Kurir B', 'Jl. B', '62-215708088', 'Keterangan 2'),
('00003', 'Kurir C', 'Jl. C', '62-215708088', 'Keterangan 3'),
('00004', 'Kurir D', 'Jl. D', '62-215708088', 'Keterangan 4'),
('00005', 'Kurir E', 'Jl. E', '62-215708088', 'Keterangan 5')
select * from t_kurir
--3. Ada sebuan record table (t_barang), isi record table sebegai berikut : (poin 25)
--3a. Perintah untuk menambahkan harga pada record “Popok Bayi”
-- dengan harga 1500?
update t_barang set harga=1500 where nama_barang='POPOK BAYI'
select * from t_barang
--3b. Menghapus record “celana bayi”?
delete from t_barang where nama_barang='CELANA BAYI'
select * from t_barang
--3c. Menampilkan data dengan rentang waktu dari 05/10/2013 sampai dengan 24/10/2013 ?
select * from t_barang where tanggal_beli between '2013-10-05' and '2013-10-24'
--3d. Menampilkan data dengan tanggal lebih dari 24/10/2013 dan dengan nama barang “Baju Bayi”?
select * from t_barang where tanggal_beli > '2013-10-24' and nama_barang='BAJU BAYI'
--3e. Tampilkan data nama barang dan stok yang berkaitan dengan “Bayi”?
select * from t_barang where nama_barang like '%bayi%' or stok_barang like '%bayi%'
--3f. Buatkan Table log untuk Table barang tersebut?
--Trigger
create table log_barang (kejadian varchar(25), waktu datetime)
create trigger ins_barang on t_barang after insert as insert into log_barang values ('Tambah Data', GETDATE());
create trigger upd_barang on t_barang after update as insert into log_barang values ('Update Data', GETDATE());
create trigger del_barang on t_barang after delete as insert into log_barang values ('Delete Data', GETDATE());
--3g. Buatkan stored procedure Insert, Update & Delete untuk table tersebut?
create procedure insert_barang_store_proc
@id_barang int, @nama_barang varchar(50), @tanggal_beli datetime, @stok_barang money, @harga money
begin
insert into t_barang values (@id_barang, @nama_barang, @tanggal_beli, @stok_barang, @harga)
end;
exec insert_barang_store_proc 999, 'Lain-lain', '2014-01-01 10:10:10.000', 100, 0
create procedure update_barang_store_proc
@id_barang int, @nama_barang varchar(50), @tanggal_beli datetime, @stok_barang money, @harga money
begin
update t_barang set id_barang=@id_barang, nama_barang=@nama_barang, tanggal_beli=@tanggal_beli, stok_barang=@stok_barang, harga=@harga)
end;
exec update_barang_store_proc 999, 'Others', '2014-01-01 10:10:10.000', 100, 1000
create procedure delete_barang_store_proc
@id_barang int
as
begin
delete from t_barang WHERE id_barang=@id_barang;
end;
exec delete_barang_store_proc 999
--4. Ada 3 buah table dengan struktur & isi record sebagai berikut : (45)
-- t_record_surat :
-- t_surat_disposisi :
-- t_divisi :
create table t_record_surat ( id_inbox int primary key not null, id_surat int, terusan varchar(250) )
insert into t_record_surat values (1, 1020, 'HCD'), (2, 1020, 'MD4'), (3, 1023, 'BTN3'), (4, 1023, 'BTN7'), (5, 1023, 'BTN5'), (6, 1024, 'DU'), (7, 1024, 'BTN2')
select * from t_record_surat
create table t_surat_disposisi ( id_surat int primary key not null, no_surat varchar(550), dari varchar(550), perihal varchar(550), tgl_surat datetime, segera varchar(550), terusan text, cat text, no_reg varchar(550), tgl_reg datetime, aksi text, copyto varchar(550), file1 text, file2 text, file3 text, ket text, asal varchar(550), no_urut_reg_div int )
insert into t_surat_disposisi values
(1020, '788/MCSD/IR/IV/2013', 'CSD', 'Rakerda DPD REI', '2013-04-15 12:00:00.000', '', 'MD4HCD', 'Setuju','1', '2013-04-16 12:00:00.000', 'Untuk difile, Setuju,', '', '2ASPxGridView1', '', '', '788/M/CSD/I', 'DU', 1),
(1021, 'huhhi', 'Departemen Keuangan', 'ihhh', '2013-05-02 12:00:00.000', '', 'BTN2 CEBD CMD', 'Oke','1', '', 'Untuk dilaksanakan', '', '', '', '', 'huhhi', 'CMFD', 1),
(1022, 'dadas', 'Departemen', 'dasdasd', '2013-05-02 12:00:00.000', 'Segera', 'DU BTN3', 'dsa','2', '2013-05-08 12:00:00.000', '', '', '', '', '', 'dadas', 'CMFD', 2),
(1023, '78/M/VIII/2013', 'Departemen Keuangan', 'Uang Palsu', '2013-05-08 12:00:00.000', '', 'BTN3 BTN7 BTN5 CMPD CNFD CWD', 'moh..','3', '2013-05-01 12:00:00.000', 'Untuk dipertimbangkan, Untuk dilaksanakan,', '', '2ASPxGridView1', '', '', '788/M/VIII/2013', 'CMFD', 3),
(1024, '79/M/VIII/2013', 'Departemen Keuangan', 'Uang Palsu', '2013-05-08 12:00:00.000', '', 'DU BTN2 BTN4 BTN7 CEBO CMO MCLD', 'Oke..','4', '2013-05-15 12:00:00.000', 'Untuk dipertimbangkan, Untuk dilaksanakan, Setuju,', '', '', '', '', '788/M/VIII/2013', 'CMFD', 4),
(1025, '77/M/VIII/2013', 'Departemen Keuangan', 'Uang Palsu', '2013-05-08 12:00:00.000', '', 'DU BTN2 BTN4 BTN7 CEBO CMO MCLD', 'Oke..','5', '2013-05-15 12:00:00.000', 'Untuk dipertimbangkan, Untuk dilaksanakan, Setuju,', '', '', '', '', '788/M/VIII/2013', 'CMFD', 5),
(1026, '80/M/VIII/2013', 'Departemen Keuangan', 'Uang Palsu', '2013-05-08 12:00:00.000', '', 'BTTN5 LGND LLDD', 'Man..','6', '2013-05-15 12:00:00.000', 'Untuk diedarkan, Untuk dipertimbangkan, Untuk dilaksanakan,', '', '', '', '', '788/M/VIII/2013', 'CMFD', 6),
(1027, '78/M/VIII/2013', 'Departemen Keuangan', 'Uang Palsu', '2013-05-08 12:00:00.000', '', 'BTTN5 LGND LLDD', 'Man..','7', '2013-05-15 12:00:00.000', 'Untuk diedarkan, Untuk dipertimbangkan, Untuk dilaksanakan,', '', '', '', '', '788/M/VIII/2013', 'CMFD', 7),
(1028, 'M/345/VII/2013', 'CMFD', 'Kenaggotaan', '2013-05-01 12:00:00.000', '', 'BTN4 BTN7 BTN6 BTN5 CEBO CMFD', 'Mak..','8', '2013-05-22 12:00:00.000', 'Untuk difile, Untuk dipertimbangkan, Untuk dilaksanakan, Untuk diproses,', '', '', '', '', 'M/345/VII/2', 'CMFD', 8),
(1029, 'YT/98/VII/2013', 'Dep Kes', 'Tes', '2013-05-17 12:00:00.000', 'Segera', 'DU BTN2 BTN7 BTN6 CMPD CNFD CSO CWD', 'oKE','9', '2013-05-16 12:00:00.000', 'Untuk dilaksanakan, Untuk diproses, Untuk dibicarakan, Setuju,', '', '', '', '', 'YT/98/VII/2013', 'CMFD', 9),
(1030, 'HU/98/VII/013', 'CMF', 'Utang', '2013-05-16 12:00:00.000', 'Segera', 'DU BTN2 BTN3 CMO CMPD CNFD CSO', 'Ma..','10', '2013-05-15 12:00:00.000', 'Untuk dipertimbangkan, Untuk dilaksanakan, Untuk diproses,', '', '', '', '', 'HU/98/VII/013', 'CMFD', 10),
(1031, 'HU/98/VII/013', 'CMF', 'Utang', '2013-05-16 12:00:00.000', 'Segera', 'DU BTN2 BTN3 HCD HCLD IAO ICTD', 'Man..','11', '', 'Untuk dipertimbangkan, Untuk dilaksanakan, Untuk diproses, Untuk dibicarakan,', '', '', '', '', 'HU/98/VII/013', 'CMFD', 11)
select * from t_surat_disposisi
create table t_divisi ( id_divisi int primary key not null, k_divisi varchar(250), ket text, cat varchar(250), n_divisi varchar(250) )
insert into t_divisi values
(34, 'Administrator', 'Admin of Letter', 'Administrator', 'Administrator'),
(35, 'DU', 'Maryono', 'BOD', 'Direktur Utama'),
(36, 'BTN2', 'Evi Firmansyah', 'BOD', 'MD Human Capital Finance& IT'),
(37, 'BTN3', 'Irman A.Z', 'BOD', 'MD Retail Funding & Distribution'),
(38, 'BTN4', 'Saut Pardede', 'BOD', 'MD Treasury & Collection'),
(39, 'BTN7', 'Mas Guntur D.S', 'BOD', 'MD Risk Compliance & Strategy'),
(40, 'BTN6', 'Poernomo', 'BOD', 'MD Commercial Banking'),
(41, 'BTN5', 'Mansyur S.N', 'BOD', 'MD Mortgage & Consumer Lending'),
(42, 'CEBD', '', 'Division', 'Card Business & Electronic Banking Desk Division'),
(43, 'CMFD', '', 'Division', 'Commercial Funding & Services Division'),
(44, 'CMO', '', 'Division', 'Change Management Office Division'),
(45, 'CMPD', '', 'Division', 'Compliance Desk Division'),
(46, 'CNFD', '', 'Division', 'Consumer Funding & Services Division'),
(47, 'CSD', '', 'Division', 'Corporate Secreatary Division'),
(48, 'CWD', '', 'Division', 'Collection & Workout Division'),
(49, 'FAD', '', 'Division', 'Finance & Accounting Division'),
(50, 'HCD', '', 'Division', 'Human Capital Division'),
(51, 'HCLD', '', 'Division', 'Housing & Commercial Lending Division'),
(52, 'IAD', '', 'Division', 'Intern Audit Division'),
(53, 'ICTD', '', 'Division', 'Information & Communication Technology Division'),
(54, 'LGND', '', 'Division', 'Logistic & Network Division'),
(55, 'LLDD', '', 'Division', 'Legal & Loan Document Division'),
(56, 'MCLD', '', 'Division', 'Mortgage & Consumer Lending Division')
select * from t_divisi
--4a. Menampilkan data seperti tampilan berikut:
SELECT a.id_inbox, a.id_surat, c.ket, b.segera, c.k_divisi, c.n_divisi, b.no_urut_reg_div, c.id_divisi FROM t_record_surat a, t_surat_disposisi b, t_divisi c WHERE a.id_surat=b.id_surat AND a.terusan=c.k_divisi ORDER BY a.id_inbox
--atau
SELECT t_record_surat.id_inbox, t_record_surat.id_surat, t_divisi.ket, t_surat_disposisi.segera, t_divisi.k_divisi, t_divisi.n_divisi FROM t_record_surat JOIN t_surat_disposisi ON t_record_surat.id_surat = t_surat_disposisi.id_surat JOIN t_divisi ON t_record_surat.terusan = t_divisi.k_divisi ORDER BY id_inbox
--4b. Menampilkan data seperti tampilan berikut:
SELECT a.id_inbox, a.id_surat, c.ket, b.segera, c.k_divisi, c.n_divisi, b.no_urut_reg_div, c.id_divisi FROM t_record_surat a, t_surat_disposisi b, t_divisi c WHERE a.id_surat=b.id_surat AND a.terusan=c.k_divisi AND a.id_inbox=6
--atau
SELECT t_record_surat.id_inbox, t_record_surat.id_surat, t_divisi.ket, t_surat_disposisi.segera, t_divisi.k_divisi, t_divisi.n_divisi FROM t_record_surat JOIN t_surat_disposisi ON t_record_surat.id_surat = t_surat_disposisi.id_surat JOIN t_divisi ON t_record_surat.terusan = t_divisi.k_divisi WHERE t_record_surat.id_inbox=6





Tidak ada komentar:
Posting Komentar