SlideShare a Scribd company logo
1 of 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---

More Related Content

Viewers also liked

Dissertation (1)
Dissertation (1)Dissertation (1)
Dissertation (1)ronak_12694
 
Tugas terjemahan referensi alkitab
Tugas terjemahan referensi alkitabTugas terjemahan referensi alkitab
Tugas terjemahan referensi alkitabAerozed Zedbeua
 
Как рассказать о себе по-английски во время собеседования на работу.
Как рассказать о себе по-английски во время собеседования на работу.Как рассказать о себе по-английски во время собеседования на работу.
Как рассказать о себе по-английски во время собеседования на работу.EngSuccess
 
Pasos na creacion dun texto expositivo
Pasos na creacion dun texto expositivoPasos na creacion dun texto expositivo
Pasos na creacion dun texto expositivomarat1963
 

Viewers also liked (7)

Dissertation (1)
Dissertation (1)Dissertation (1)
Dissertation (1)
 
Non credo - SOLO IN ITALIA
Non credo - SOLO IN ITALIANon credo - SOLO IN ITALIA
Non credo - SOLO IN ITALIA
 
Dasar Database
Dasar DatabaseDasar Database
Dasar Database
 
Tugas terjemahan referensi alkitab
Tugas terjemahan referensi alkitabTugas terjemahan referensi alkitab
Tugas terjemahan referensi alkitab
 
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
 

Recently uploaded

"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak""Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"HaseebBashir5
 
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar JudiCimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar JudiHaseebBashir5
 
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptxPROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptxMelandaNiuwa
 
RISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptxRISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptxerlyndakasim2
 
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di IndonesiaJudul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di IndonesiaHaseebBashir5
 
Investment Analysis Chapter 5 and 6 Material
Investment Analysis Chapter 5 and 6 MaterialInvestment Analysis Chapter 5 and 6 Material
Investment Analysis Chapter 5 and 6 MaterialValenciaAnggie
 
PPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptxPPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptxYasfinaQurrotaAyun
 
Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2PutriMuaini
 
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptx
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptxTERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptx
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptxFORTRESS
 
"Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind...
"Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind..."Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind...
"Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind...HaseebBashir5
 
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs TogelTogel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs TogelHaseebBashir5
 
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaTajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaHaseebBashir5
 
Tugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptxTugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptxHeripurwanto62
 
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...HaseebBashir5
 
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...gamal imron khoirudin
 
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptxPCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptxmuhammadfajri44049
 
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYAPRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYALex PRTOTO
 
10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptx10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptxerlyndakasim2
 
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda AcehTERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda AcehFORTRESS
 
KEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDOKEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDOANNISAUMAYAHS
 

Recently uploaded (20)

"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak""Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
"Melompati Ramtoto: Keterampilan dan Kebahagiaan Anak-anak"
 
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar JudiCimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
Cimahitoto: Situs Togel Online Terpercaya untuk Penggemar Judi
 
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptxPROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
PROMOTIF KESEHATAN JIWA TERBARUHGFF.pptx
 
RISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptxRISK BASED INTERNAL AUDIT - AUDITING .pptx
RISK BASED INTERNAL AUDIT - AUDITING .pptx
 
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di IndonesiaJudul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
Judul: Memahami Jabrix4D: Situs Togel dan Slot Online Terpercaya di Indonesia
 
Investment Analysis Chapter 5 and 6 Material
Investment Analysis Chapter 5 and 6 MaterialInvestment Analysis Chapter 5 and 6 Material
Investment Analysis Chapter 5 and 6 Material
 
PPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptxPPT Presentasimatkul Hukum Komersial.pptx
PPT Presentasimatkul Hukum Komersial.pptx
 
Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2Time Value of Money Mata Kuliah Ekonomi 2
Time Value of Money Mata Kuliah Ekonomi 2
 
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptx
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptxTERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptx
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Pintu Rumah 2 Pintu di Banda Aceh.pptx
 
"Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind...
"Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind..."Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind...
"Menjelajahi Keberagaman Permainan di Sumaterabet: Situs Slot Terbesar di Ind...
 
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs TogelTogel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
Togel Online: Panduan Lengkap tentang Dkitoto, Dkitogel, dan Situs Togel
 
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di IndonesiaTajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
Tajuk: SV388: Platform Unggul Taruhan Sabung Ayam Online di Indonesia
 
Tugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptxTugas unjuk keterampilan_HERI PURWANTO1.pptx
Tugas unjuk keterampilan_HERI PURWANTO1.pptx
 
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
Judul: Mengenal Lebih Jauh Tentang Jamintoto: Platform Perjudian Online yang ...
 
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
WA/TELP : 0822-3006-6162, Toko Box Delivery Sayur, Toko Box Delivery Donat, T...
 
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptxPCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
PCM STRUKTUR JALAN JONGKANGOK JONGKANG.pptx
 
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYAPRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
PRTOTO SITUS SPORTING BET DAN TOGEL TERPERCAYA
 
10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptx10. (C) MERGER DAN AKUISISI Presentation.pptx
10. (C) MERGER DAN AKUISISI Presentation.pptx
 
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda AcehTERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
TERBAIK!!! WA 0821 7001 0763 (FORTRESS) Aesthetic Pintu Aluminium di Banda Aceh
 
KEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDOKEAGENAN KAPAL DALAM DUNIA MARITIME INDO
KEAGENAN KAPAL DALAM DUNIA MARITIME INDO
 

Dasar 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---