SlideShare una empresa de Scribd logo
1 de 15
Nama : Arozisokhi Zebua
Nim : 1042100986
Mata Ujian : Basis Data Lanjut
Jawaban soal:
--Nomor 1—
create database arozisokhi_zebua_uts_bdl;
use arozisokhi_zebua_uts_bdl;
create table provinsi(
id_provinsi int not null auto_increment,
nama_provinsi varchar(200),
primary key(id_provinsi)
);
create table kabupaten(
id_kabupaten int not null auto_increment,
id_provinsi int not null,
nama_kabupaten varchar(200),
foreign key(id_provinsi) references provinsi(id_provinsi),
primary key (id_kabupaten, id_provinsi)
);
create table alamat(
id int not null auto_increment,
id_provinsi int not null,
id_kabupaten int not null,
foreign key(id_provinsi) references provinsi(id_provinsi),
foreign key(id_kabupaten) references kabupaten(id_kabupaten),
primary key (id, id_kabupaten, id_provinsi)
);
create table biodata(
id int not null auto_increment,
nama varchar(200),
tgl_lahir date,
primary key(id)
);
create table transaksi(
id int not null auto_increment,
id_biodata int not null,
tanggal_transaksi date,
jumlah_transaksi int,
foreign key (id_biodata) references biodata(id),
primary key(id,id_biodata)
);
--Nomor 2--
--Procedure isi_Provinsi--
delimiter $$
create
procedure isi_provinsi()
begin
declare p int;
set p=0;
label : loop
set p=p+1;
insert into provinsi (id_provinsi, nama_provinsi)
values(p, concat("provinsi",p));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_provinsi();
--Procedure Isi kabupaten--
delimiter $$
create
procedure isi_kabupaten()
begin
declare p int;
set p=0;
label : loop
set p=p+1;
insert into kabupaten (id_provinsi, id_kabupaten, nama_kabupaten)
values(p, p, concat("kabupaten",p));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_kabupaten();
--Procedure isi_alamat--
delimiter $$
create
procedure isi_alamat()
begin
declare p int;
set p=0;
label : loop
set p=p+1;
insert into alamat (id, id_provinsi, id_kabupaten)
values(p,p,p);
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_alamat();
--Procedure isi_biodata--
delimiter $$
create
procedure isi_biodata()
begin
declare p int;
set p=0;
label : loop
set p=p+1;
insert into biodata (id, nama, tgl_lahir)
values(p, concat("Biodata",p), concat("1992","-",p,"-",p));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_biodata();
---Procedure isi_transaksi pertama--
delimiter $$
create
procedure isi_transaksi_pertama()
begin
declare p int;
set p=0;
label : loop
set p=p+1;
insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi)
values(p,p,concat("2000","-",p,"-",p),concat(p));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_transaksi_pertama();
---Procedure isi_transaksi kedua--
delimiter $$
create
procedure isi_transaksi_kedua()
begin
declare p int;
declare urut int;
set p=0;
set urut=12;
label : loop
set p=p+1;
set urut = urut+1;
insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi)
values(urut, p,concat("2000","-",p,"-",p),concat(urut));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_transaksi_kedua();
--procedure isi_transaksi_ketiga--
delimiter $$
create
procedure isi_transaksi_ketiga()
begin
declare p int;
declare urut int;
declare urut2 int;
set p=0;
set urut=24;
set urut2=15;
label : loop
set p=p+1;
set urut = urut+1;
set urut2 = urut2+1;
insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi)
values(urut, p,concat("2000","-",p,"-",p),concat(urut2));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_transaksi_ketiga();
--procedure isi_transaksi_keempat--
delimiter $$
create
procedure isi_transaksi_keempat()
begin
declare p int;
declare urut int;
declare urut2 int;
set p=0;
set urut=36;
set urut2=9;
label : loop
set p=p+1;
set urut = urut+1;
set urut2 = urut2+1;
insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi)
values(urut, p,concat("2000","-",p,"-",p),concat(urut2));
if p <12 then iterate label; end if;
leave label;
end loop label;
end$$
delimiter ;
call isi_transaksi_keempat();
--Nomor 3—
catatan yang bisa dihapus
hanya isi tabel transaksi
--Trigger untuk provinsi---
CREATE TABLE transaksi_deleted LIKE transaksi;
ALTER TABLE transaksi_deleted ADD
(
tgl_hapus DATETIME,
nama_user VARCHAR(200)
);
DELIMITER $$
CREATE
TRIGGER hapus_transaksi AFTER DELETE ON transaksi FOR EACH ROW
BEGIN
INSERT INTO transaksi_deleted(
id,
id_biodata,
tanggal_transaksi,
jumlah_transaksi,
tgl_hapus,
nama_user
)
VALUES(
OLD.id,
OLD.id_biodata,
OLD.tanggal_transaksi,
OLD.jumlah_transaksi,
SYSDATE(),
CURRENT_USER
);
END;
$$
DELIMITER ;
SHOW TRIGGERS FROM arozisokhi_zebua_uts_bdl;
--Triger untuk restore data yang sudah dihapus--
cara kerja: Jika data yang ada pada transaksi_deleted dihapus maka data tersebut otomatis
dikembalikan ke tabel transaksi
DELIMITER $$
CREATE
TRIGGER restore_transaksi AFTER DELETE ON transaksi_deleted FOR EACH ROW
BEGIN
INSERT INTO transaksi(
id,
id_biodata,
tanggal_transaksi,
jumlah_transaksi
)
VALUES(
OLD.id,
OLD.id_biodata,
OLD.tanggal_transaksi,
OLD.jumlah_transaksi
);
END;
$$
DELIMITER ;
--Nomor 4--
A. Untuk Menampilkan biodata beserta umur dan alamat
SELECT
a.id,
nama,
tgl_lahir,
(YEAR(CURDATE())-YEAR(tgl_lahir)) AS umur,
(CONCAT(nama_provinsi,",",nama_kabupaten)) AS alamat
FROM
biodata a
LEFT JOIN alamat b ON (b.id=a.id)
LEFT JOIN provinsi c ON (c.id_provinsi=b.id_provinsi)
LEFT JOIN kabupaten d ON (d.id_kabupaten=b.id_kabupaten);
Hasilny :
B. Untuk Menampilkan biodata beserta nama dan jumlah transaksi perbulan
SELECT
id,nama,IFNULL (jml_jan,0) AS Januari,IFNULL (jml_feb,0) AS Februari,
IFNULL (jml_mar,0) AS Maret,IFNULL (jml_apr,0) AS April,
IFNULL (jml_mei,0) AS Mei,IFNULL (jml_jun,0) AS Juni,
IFNULL (jml_jul,0) AS Juli,IFNULL (jml_agst,0) AS Agustus,
IFNULL (jml_sep,0) AS September,IFNULL (jml_okt,0) AS Oktober,
IFNULL (jml_nov,0) AS November,IFNULL (jml_des,0) AS Desember
FROM
biodata a
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_jan
FROM transaksi
WHERE MONTH(tanggal_transaksi)=1
GROUP BY id_biodata
) AS Januari ON(Januari.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_feb
FROM transaksi
WHERE MONTH(tanggal_transaksi)=2
GROUP BY id_biodata
) AS Februari ON(Februari.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_mar
FROM transaksi
WHERE MONTH(tanggal_transaksi)=3
GROUP BY id_biodata
) AS Maret ON(Maret.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_apr
FROM transaksi
WHERE MONTH(tanggal_transaksi)=4
GROUP BY id_biodata
) AS April ON(April.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_mei
FROM transaksi
WHERE MONTH(tanggal_transaksi)=5
GROUP BY id_biodata
) AS Mei ON(Mei.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_jun
FROM transaksi
WHERE MONTH(tanggal_transaksi)=6
GROUP BY id_biodata
) AS Juni ON(Juni.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_jul
FROM transaksi
WHERE MONTH(tanggal_transaksi)=7
GROUP BY id_biodata
) AS Juli ON(Juli.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_agst
FROM transaksi
WHERE MONTH(tanggal_transaksi)=8
GROUP BY id_biodata
) AS Agustus ON(Agustus.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_sep
FROM transaksi
WHERE MONTH(tanggal_transaksi)=9
GROUP BY id_biodata
) AS September ON(September.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_okt
FROM transaksi
WHERE MONTH(tanggal_transaksi)= 10
GROUP BY id_biodata
) AS Oktober ON(Oktober.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_nov
FROM transaksi
WHERE MONTH(tanggal_transaksi)=11
GROUP BY id_biodata
) AS November ON(November.id_biodata=a.id)
LEFT JOIN
(
SELECT id_biodata, SUM(jumlah_transaksi) AS jml_des
FROM transaksi
WHERE MONTH(tanggal_transaksi)=12
GROUP BY id_biodata
) AS Desember ON(Desember.id_biodata=a.id)
;
Hasilnya :
---Sekian Terimaksih, Tuhan Memberkati---

Más contenido relacionado

Destacado (7)

Non credo - SOLO IN ITALIA
Non credo - SOLO IN ITALIANon credo - SOLO IN ITALIA
Non credo - SOLO IN ITALIA
 
Dasar dasar Database
Dasar dasar DatabaseDasar dasar Database
Dasar dasar Database
 
Tugas terjemahan referensi alkitab
Tugas terjemahan referensi alkitabTugas terjemahan referensi alkitab
Tugas terjemahan referensi alkitab
 
Dissertation (1)
Dissertation (1)Dissertation (1)
Dissertation (1)
 
Laporan tki
Laporan tkiLaporan tki
Laporan tki
 
Как рассказать о себе по-английски во время собеседования на работу.
Как рассказать о себе по-английски во время собеседования на работу.Как рассказать о себе по-английски во время собеседования на работу.
Как рассказать о себе по-английски во время собеседования на работу.
 
Pasos na creacion dun texto expositivo
Pasos na creacion dun texto expositivoPasos na creacion dun texto expositivo
Pasos na creacion dun texto expositivo
 

Último

1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
MetalinaSimanjuntak1
 
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.pptppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
AgusRahmat39
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docx
NurindahSetyawati1
 
Latsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSLatsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNS
dheaprs
 

Último (20)

1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.pptppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
ppt-akhlak-tercela-foya-foya-riya-sumah-takabur-hasad asli.ppt
 
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
POWER POINT MODUL 1 PEBI4223 (PENDIDIKAN LINGKUNGAN HIDUP)
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docx
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxPPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsx
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ika
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
Latsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNSLatsol TWK Nasionalisme untuk masuk CPNS
Latsol TWK Nasionalisme untuk masuk CPNS
 
presentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiapresentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesia
 

Dasar Database

  • 1. Nama : Arozisokhi Zebua Nim : 1042100986 Mata Ujian : Basis Data Lanjut Jawaban soal: --Nomor 1— create database arozisokhi_zebua_uts_bdl; use arozisokhi_zebua_uts_bdl; create table provinsi( id_provinsi int not null auto_increment, nama_provinsi varchar(200), primary key(id_provinsi) ); create table kabupaten( id_kabupaten int not null auto_increment, id_provinsi int not null, nama_kabupaten varchar(200), foreign key(id_provinsi) references provinsi(id_provinsi), primary key (id_kabupaten, id_provinsi) ); create table alamat( id int not null auto_increment, id_provinsi int not null, id_kabupaten int not null, foreign key(id_provinsi) references provinsi(id_provinsi), foreign key(id_kabupaten) references kabupaten(id_kabupaten), primary key (id, id_kabupaten, id_provinsi)
  • 2. ); create table biodata( id int not null auto_increment, nama varchar(200), tgl_lahir date, primary key(id) ); create table transaksi( id int not null auto_increment, id_biodata int not null, tanggal_transaksi date, jumlah_transaksi int, foreign key (id_biodata) references biodata(id), primary key(id,id_biodata) );
  • 3. --Nomor 2-- --Procedure isi_Provinsi-- delimiter $$ create procedure isi_provinsi() begin declare p int; set p=0; label : loop set p=p+1; insert into provinsi (id_provinsi, nama_provinsi) values(p, concat("provinsi",p)); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_provinsi(); --Procedure Isi kabupaten-- delimiter $$ create procedure isi_kabupaten() begin declare p int; set p=0; label : loop set p=p+1; insert into kabupaten (id_provinsi, id_kabupaten, nama_kabupaten)
  • 4. values(p, p, concat("kabupaten",p)); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_kabupaten(); --Procedure isi_alamat-- delimiter $$ create procedure isi_alamat() begin declare p int; set p=0; label : loop set p=p+1; insert into alamat (id, id_provinsi, id_kabupaten) values(p,p,p); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_alamat(); --Procedure isi_biodata-- delimiter $$ create
  • 5. procedure isi_biodata() begin declare p int; set p=0; label : loop set p=p+1; insert into biodata (id, nama, tgl_lahir) values(p, concat("Biodata",p), concat("1992","-",p,"-",p)); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_biodata(); ---Procedure isi_transaksi pertama-- delimiter $$ create procedure isi_transaksi_pertama() begin declare p int; set p=0; label : loop set p=p+1; insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi) values(p,p,concat("2000","-",p,"-",p),concat(p)); if p <12 then iterate label; end if; leave label; end loop label;
  • 6. end$$ delimiter ; call isi_transaksi_pertama(); ---Procedure isi_transaksi kedua-- delimiter $$ create procedure isi_transaksi_kedua() begin declare p int; declare urut int; set p=0; set urut=12; label : loop set p=p+1; set urut = urut+1; insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi) values(urut, p,concat("2000","-",p,"-",p),concat(urut)); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_transaksi_kedua(); --procedure isi_transaksi_ketiga-- delimiter $$ create
  • 7. procedure isi_transaksi_ketiga() begin declare p int; declare urut int; declare urut2 int; set p=0; set urut=24; set urut2=15; label : loop set p=p+1; set urut = urut+1; set urut2 = urut2+1; insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi) values(urut, p,concat("2000","-",p,"-",p),concat(urut2)); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_transaksi_ketiga(); --procedure isi_transaksi_keempat-- delimiter $$ create procedure isi_transaksi_keempat() begin declare p int; declare urut int; declare urut2 int; set p=0;
  • 8. set urut=36; set urut2=9; label : loop set p=p+1; set urut = urut+1; set urut2 = urut2+1; insert into transaksi (id, id_biodata,tanggal_transaksi,jumlah_transaksi) values(urut, p,concat("2000","-",p,"-",p),concat(urut2)); if p <12 then iterate label; end if; leave label; end loop label; end$$ delimiter ; call isi_transaksi_keempat(); --Nomor 3— catatan yang bisa dihapus hanya isi tabel transaksi --Trigger untuk provinsi--- CREATE TABLE transaksi_deleted LIKE transaksi; ALTER TABLE transaksi_deleted ADD ( tgl_hapus DATETIME, nama_user VARCHAR(200) );
  • 9. DELIMITER $$ CREATE TRIGGER hapus_transaksi AFTER DELETE ON transaksi FOR EACH ROW BEGIN INSERT INTO transaksi_deleted( id, id_biodata, tanggal_transaksi, jumlah_transaksi, tgl_hapus, nama_user ) VALUES( OLD.id, OLD.id_biodata, OLD.tanggal_transaksi, OLD.jumlah_transaksi, SYSDATE(), CURRENT_USER ); END; $$ DELIMITER ; SHOW TRIGGERS FROM arozisokhi_zebua_uts_bdl; --Triger untuk restore data yang sudah dihapus-- cara kerja: Jika data yang ada pada transaksi_deleted dihapus maka data tersebut otomatis dikembalikan ke tabel transaksi
  • 10. DELIMITER $$ CREATE TRIGGER restore_transaksi AFTER DELETE ON transaksi_deleted FOR EACH ROW BEGIN INSERT INTO transaksi( id, id_biodata, tanggal_transaksi, jumlah_transaksi ) VALUES( OLD.id, OLD.id_biodata, OLD.tanggal_transaksi, OLD.jumlah_transaksi ); END; $$ DELIMITER ;
  • 11. --Nomor 4-- A. Untuk Menampilkan biodata beserta umur dan alamat SELECT a.id, nama, tgl_lahir, (YEAR(CURDATE())-YEAR(tgl_lahir)) AS umur, (CONCAT(nama_provinsi,",",nama_kabupaten)) AS alamat FROM biodata a LEFT JOIN alamat b ON (b.id=a.id) LEFT JOIN provinsi c ON (c.id_provinsi=b.id_provinsi) LEFT JOIN kabupaten d ON (d.id_kabupaten=b.id_kabupaten); Hasilny :
  • 12. B. Untuk Menampilkan biodata beserta nama dan jumlah transaksi perbulan SELECT id,nama,IFNULL (jml_jan,0) AS Januari,IFNULL (jml_feb,0) AS Februari, IFNULL (jml_mar,0) AS Maret,IFNULL (jml_apr,0) AS April, IFNULL (jml_mei,0) AS Mei,IFNULL (jml_jun,0) AS Juni, IFNULL (jml_jul,0) AS Juli,IFNULL (jml_agst,0) AS Agustus, IFNULL (jml_sep,0) AS September,IFNULL (jml_okt,0) AS Oktober, IFNULL (jml_nov,0) AS November,IFNULL (jml_des,0) AS Desember FROM biodata a LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_jan FROM transaksi WHERE MONTH(tanggal_transaksi)=1 GROUP BY id_biodata ) AS Januari ON(Januari.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_feb FROM transaksi WHERE MONTH(tanggal_transaksi)=2 GROUP BY id_biodata ) AS Februari ON(Februari.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_mar FROM transaksi WHERE MONTH(tanggal_transaksi)=3
  • 13. GROUP BY id_biodata ) AS Maret ON(Maret.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_apr FROM transaksi WHERE MONTH(tanggal_transaksi)=4 GROUP BY id_biodata ) AS April ON(April.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_mei FROM transaksi WHERE MONTH(tanggal_transaksi)=5 GROUP BY id_biodata ) AS Mei ON(Mei.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_jun FROM transaksi WHERE MONTH(tanggal_transaksi)=6 GROUP BY id_biodata ) AS Juni ON(Juni.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_jul FROM transaksi WHERE MONTH(tanggal_transaksi)=7
  • 14. GROUP BY id_biodata ) AS Juli ON(Juli.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_agst FROM transaksi WHERE MONTH(tanggal_transaksi)=8 GROUP BY id_biodata ) AS Agustus ON(Agustus.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_sep FROM transaksi WHERE MONTH(tanggal_transaksi)=9 GROUP BY id_biodata ) AS September ON(September.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_okt FROM transaksi WHERE MONTH(tanggal_transaksi)= 10 GROUP BY id_biodata ) AS Oktober ON(Oktober.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_nov FROM transaksi
  • 15. WHERE MONTH(tanggal_transaksi)=11 GROUP BY id_biodata ) AS November ON(November.id_biodata=a.id) LEFT JOIN ( SELECT id_biodata, SUM(jumlah_transaksi) AS jml_des FROM transaksi WHERE MONTH(tanggal_transaksi)=12 GROUP BY id_biodata ) AS Desember ON(Desember.id_biodata=a.id) ; Hasilnya : ---Sekian Terimaksih, Tuhan Memberkati---