Jawaban

 --Jawaban No. 7

create database BANK

use BANK


--Jawaban No. 8

a. create table cabang(kode_cabang char(10)primary key,cabang varchar(50),alamat_cabang varchar(100))


b. create table jenis_tabungan(kode_tabungan char(10)primary key,jenis_tabungan varchar(50)) 


c. create table nasabah(kode_tabungan char(10)foreign key references jenis_tabungan(kode_tabungan),

no_rekening char(10)primary key,nama varchar(50),alamat_nasabah varchar(25),saldo int) 


d. create table header_transaksi(no_transaksi char(10)primary key,tgl_transaksi date,

kode_cabang char(10)foreign key references cabang(kode_cabang))


e. create table detail_transaksi(no_transaksi char(10)foreign key references header_transaksi(no_transaksi),

no_rekening char(10)foreign key references nasabah(no_rekening),

jenis_transaksi varchar(50),jml_transaksi int)

--Jawaban No. 9

a. insert into cabang values('CBNI-0001','BNI Abdul Muis','Jl.Abdul Muis No.7A, Jakpus,Gedung Departemen Perhubungan')

insert into cabang values('CBNI-0002','BNI Cempaka Mas','Jl.Letjen Suprapto Jakarta Pusat,Rukan Graha Cempaka Mas Blok A No.30A')

insert into cabang values('CBNI-0003','BNI Cikini','Jl.Cikini Raya Kav.62-64 Jakarta Pusat 10330')

b. insert into jenis_tabungan values('TBNI-001','BNI Taplus')

insert into jenis_tabungan values('TBNI-002','BNI Taplus Bisnis')

insert into jenis_tabungan values('TBNI-003','BNI Haji')


c. insert into nasabah values ('TBNI-001','000000-01','Ali Mukmin','Jakarta Selatan',500000)

insert into nasabah values ('TBNI-002','000000-02','Fika Firdasari','Jakarta Pusat',100000)

insert into nasabah values ('TBNI-003','000000-03','Rosita','Jakarta Barat',5000000) 


d. insert into header_transaksi values('0000000001','10/02/2019','CBNI-0001')

insert into header_transaksi values('0000000002','10/02/2019','CBNI-0002')

insert into header_transaksi values('0000000003','10/02/2019','CBNI-0003')

e. insert into detail_transaksi values('0000000001','000000-01','S',500000)

insert into detail_transaksi values('0000000002','000000-02','S',1000000)

insert into detail_transaksi values('0000000003','000000-03','S',5000000)

--Jawaban No. 10 

select * from cabang

select * from detail_transaksi

select * from header_transaksi

select * from jenis_tabungan

select * from nasabah

--Jawaban No. 11

select nasabah.kode_tabungan, nasabah.no_rekening, nasabah.nama,

nasabah.alamat_nasabah, nasabah.Saldo from nasabah inner join jenis_tabungan on

nasabah.kode_tabungan = jenis_tabungan.kode_tabungan


--Jawaban No. 12

create view View_Transaksi as

Select ns.kode_tabungan, ns.no_rekening, ns.nama,ns.alamat_nasabah, 

ns.saldo, cb.kode_cabang, cb.cabang, cb.alamat_cabang, ht.no_transaksi, ht.tgl_transaksi,

dt.jenis_transaksi, dt.jml_transaksi

From nasabah ns 

inner join detail_transaksi dt on dt.no_rekening = ns.no_rekening

inner join header_transaksi as ht on ht.no_transaksi = dt.no_transaksi

inner join cabang as cb on cb.kode_cabang = ht.kode_cabang

select * from View_Transaksi


--Jawaban No. 13

select * from View_Transaksi where saldo < 500000


--Jawaban No. 14

select * from View_Transaksi where saldo > 500000


--Jawaban No. 15

select * from View_Transaksi where saldo > 500000 and nama like '%f'


--Jawaban No. 16

select No_Transaksi, COUNT(No_Transaksi) as Jumlah from View_Transaksi group by

No_Transaksi


--Jawaban No. 17

delete from detail_transaksi where no_transaksi = '0000000001'

delete from header_transaksi where no_transaksi = '0000000001'

--Jawaban No. 18

create Trigger tambah_detail_transaksibank

on detail_transaksi after insert

as begin

IF exists(select * from insertted where jenis_transaksi='s')

begin

update nasabah set saldo = saldo + jml_transaksi

from nasabah join inserted

on nasabah.no_rekening = inserted.no_rekening 

end

else

begin 

update nasabah set saldo = saldo - jml_transaksi

from nasabah join inserted

on nasabah.no_rekening = inserted.no_rekening

end

end 

go


--Jawaban No. 19

create Procedure tambah_header_transaksibank

@No_Transaksi char (10),

@Tgl_Transaksi date,

@kode_Cabang char (10)

as begin

insert into header_transaksi values 

(@No_Transaksi,@Tgl_Transaksi,@kode_Cabang)

select *from header_transaksi

end

go


--Jawaban No. 20

create Procedure tambah_detail_transaksibank

@No_Transaksi char (10),

@no_rekening char (10),

@Jenis_transaksi varchar (50),

@Jml_Transaksi int

as begin

insert into detail_transaksi values

(@No_Transaksi,@no_rekening,@Jenis_Transaksi,@Jml_Transaksi)

select * from detail_transaksi

end 

go

--Jawaban 21

exec tambah_header_transaksibank '0000000005','10/02/2019','CBNI-0001'

exec tambah_header_transaksibank '0000000006','10/02/2019','CBNI-0002'


exec tambah_detail_transaksibank '0000000005','000000-01','S','5000000'

exec Tambah_Detail_transaksibank '0000000006','000000-02','T','1000000'

Sqllllllll puyeng

 --1. MEMBUAT DATABASE

CREATE DATABASE PMUK_nama

USE PMUK_nama


--2. MEMBUAT TABEL t_kampus

CREATE TABLE t_kampus (idkampus char(10) PRIMARY KEY, namakampus VARCHAR(50),alamat VARCHAR(100),

telepon VARCHAR(15))


--3. MEMBUAT TABEL t_simpanpinjam

CREATE TABLE t_simpanpinjam (idsimpanpinjam CHAR(10) PRIMARY KEY,jenistabungan VARCHAR(20))


--4. MEMBUAT TABLE t_anggota

CREATE TABLE t_anggota(idanggota char(10) PRIMARY KEY,idsimpanpinjam CHAR(10) FOREIGN KEY REFERENCES

t_simpanpinjam(idsimpanpinjam),nama VARCHAR(50),alamat VARCHAR(100),saldo INT)


--5. MEMBUAT TABEL t_tabunganheader

CREATE TABLE t_tabunganheader (notransaksi CHAR(10) PRIMARY KEY,tgl_transaksi DATE,idkampus CHAR(10)

FOREIGN KEY REFERENCES t_kampus(idkampus))


--6. MEMBUAT TABEL t_tabungandetail

CREATE TABLE t_tabungandetail (notransaksi CHAR(10) FOREIGN KEY REFERENCES t_tabunganheader(notransaksi),

idanggota CHAR(10) FOREIGN KEY REFERENCES t_anggota(idanggota),jenistransaksi VARCHAR(50),

jmltransaksi INT)


--7. INPUT DATA SETIAP TABEL

INSERT INTO t_kampus VALUES('CB-0001','Kramat','Jl. Abdul Mandar 20','021-3101662')

INSERT INTO t_kampus VALUES('CB-0002','Pondok Gede','Jl. Pondok Gede Raya','021-908765')

INSERT INTO t_kampus VALUES('CB-0003','Jakut','Jl. Cilincing','021-789654')


INSERT INTO t_simpanpinjam VALUES('TB-001','Taplus')

INSERT INTO t_simpanpinjam VALUES('TB-002','Griya')

INSERT INTO t_simpanpinjam VALUES('TB-003','Umroh')


INSERT INTO t_anggota VALUES('000-01','TB-001','Anan','Jakarta Pusat',500000)

INSERT INTO t_anggota VALUES('000-02','TB-002','Indah','Jakarta Utara',700000)

INSERT INTO t_anggota VALUES('000-03','TB-003','Fahri','Jakarta Barat',200000)


INSERT INTO t_tabunganheader VALUES ('0001','2021-08-04','CB-0001')

INSERT INTO t_tabunganheader VALUES ('0002','2021-08-11','CB-0002')

INSERT INTO t_tabunganheader VALUES ('0003','2021-08-15','CB-0003')


INSERT INTO t_tabungandetail VALUES('0001','000-01','S',500000)

INSERT INTO t_tabungandetail VALUES('0002','000-02','S',800000)

INSERT INTO t_tabungandetail VALUES('0003','000-03','T',300000)


SELECT * FROM t_kampus


SELECT * FROM t_simpanpinjam

SELECT * FROM t_tabunganheader

SELECT * FROM t_anggota

SELECT * FROM t_tabungandetail

--8. Buatlah script untuk menampilkan seluruh data dari t_anggota

    SELECT * FROM t_anggota

--9. Buatlah script untuk menampilkan data dari t_anggota dan t_kampus menggunakan

--inner join dan data yang muncul adalah semua data

    SELECT k.idkampus,k.namakampus,k.alamat,k.telepon,

    a.idanggota,a.idsimpanpinjam,a.nama,a.alamat,a.saldo FROM t_kampus as k

    INNER JOIN t_tabunganheader as th ON k.idkampus=th.idkampus

    INNER JOIN t_tabungandetail as td ON th.notransaksi=td.notransaksi

    INNER JOIN t_anggota as a ON td.idanggota=a.idanggota

   

--10. Buatlah view 4 tabel t_anggota, t_kampus, t_tabunganheader dan t_tabungandetail

--disimpan dengan nama view_tabungan

   

    CREATE VIEW view_tabungan AS

    SELECT k.idkampus,k.namakampus,a.idanggota,a.idsimpanpinjam,

    a.nama,a.saldo,th.notransaksi,th.tgl_transaksi,td.jenistransaksi,

    td.jmltransaksi FROM t_kampus as k

    INNER JOIN t_tabunganheader as th ON k.idkampus=th.idkampus

    INNER JOIN t_tabungandetail as td ON th.notransaksi=td.notransaksi

    INNER JOIN t_anggota as a ON td.idanggota=a.idanggota


--11. Tampilkan data dari view dengan kriteria saldo kurang dari 500.000

SELECT * FROM view_tabungan WHERE saldo < 500000


--12. Tampilkan data dari view dengan kriteria lebih dari 500.000 dan

--nama anggota diawali huruf i

SELECT * FROM view_tabungan WHERE saldo > 500000 AND nama like 'i%'

--13. Buatlah pengelompokan data menggunakan SELECT dan GROUP BY berdasarkan

--view_tabungan, dan pengelompokan berdasarkan nomor transaksi

SELECT notransaksi, SUM(saldo) as saldo,SUM(jmltransaksi)as jml

 FROM view_tabungan GROUP BY notransaksi  


--14. Hapus data pada tabel t_tabunganheader dan t_tabungandetail masing2

--1 record dengan kriteria notransaksi = 0001

    delete from t_tabunganheader where notransaksi = '0001'

    delete from t_tabungandetail where notransaksi = '0001'

--15. Buat trigger pada tabel t_tabungandetail untuk insert dengan no transaksi

--dan lakukan update pada tabel t_anggota, dengan ketentuan

--jika jenistransaksi = S maka saldo = saldo + jmltransaksi

--jika jenistransaksi = M maka saldo = saldo - jmltransaksi

GO

CREATE TRIGGER tg_update_saldo ON t_tabungandetail AFTER INSERT

AS BEGIN

    IF exists(SELECT jenistransaksi FROM inserted 

            where jenistransaksi = 'S')

    BEGIN 

        UPDATE t_anggota SET saldo = saldo + jmltransaksi

        FROM t_anggota JOIN inserted

        ON t_anggota.idanggota = inserted.idanggota

    END ELSE 

    BEGIN

        UPDATE t_anggota SET saldo = saldo - jmltransaksi

        FROM t_anggota JOIN inserted

        ON t_anggota.idanggota = inserted.idanggota

    end

end   


GO



SELECT * FROM t_tabungandetail

SELECT * FROM t_anggota

INSERT INTO t_tabungandetail VALUES('0003','000-03','S',75000)


--16. Buat store procedure untuk menambahkan data pada tabel t_tabunganheader

GO

CREATE PROCEDURE ps_tambah_header

    @notransaksi CHAR(10),

    @tgl_transaksi DATE,

    @idkampus CHAR(10)

AS BEGIN

    INSERT INTO t_tabunganheader VALUES(@notransaksi,

                    @tgl_transaksi,@idkampus)

    SELECT * FROM t_tabunganheader

END

GO 

--17. Buat store procedure untuk menambahkan data pada tabel t_tabungandetail

GO

CREATE PROCEDURE ps_tambah_detail

    @notransaksi CHAR(10),

    @idanggota CHAR(10),

    @jenistransaksi VARCHAR(50),

    @jmltransaksi INT

AS BEGIN

    INSERT INTO t_tabungandetail VALUES(@notransaksi,

                    @idanggota,@jenistransaksi,@jmltransaksi)

    SELECT * FROM t_tabungandetail

END

GO 


--18. Gunakan commit atau Rollback setelah melakukan penambahan data menggunakan store procedure

BEGIN TRAN

EXECUTE ps_tambah_detail '0004','000-01','T',50000


COMMIT

ROLLBACK


--19. Buatlah laporan transaksi pada ms excel dengan cara import data SQL