Anda di halaman 1dari 11

Nama : Trie Adriana Ramadhani

NIM : 09031282227060
Kelas : SI REG 4B
Latihan 6
1. Buatlah sebuah basis data dengan nama Latihan6_NIM!
Jawab :

2. Buatlah tabel KRS, MK_yg_diambil dan MataKuliah serta isilah data pada tabel-tabel
tersebut dengan data dibawah ini!
KRS
Kode_KRS Semester Tahun_Akademik Nama_Mahasiswa
K000001 Ganjil 2017/2018 Roni
K000002 Ganjil 2017/2018 Aan
K000003 Genap 2017/2018 Molly
K000004 Genap 2017/2018 Nini
Jawab :
create table KRS (
-> kode_KRS varchar(10) primary key,
-> Semester varchar(10),
-> Tahun_Akademik varchar(10),
-> Nama_Mahasiswa varchar(100));
insert into KRS (kode_KRS, Semester, Tahun_Akademik, Nama_Mahasiswa) values
-> ('K000001', 'Ganjil', '2017/2018', 'Roni'),
-> ('K000002', 'Ganjil', '2017/2018', 'Aan'),
-> ('K000003', 'Genap', '2017/2018', 'Molly'),
-> ('K000004', 'Genap', '2017/2018', 'Nini');
MataKuliah
KodeMK NamaMK SKS
U0001 Algoritma dan Pemrograman I 3
U0003 Algoritma dan Pemrograman 3
U0002 Basis Data 2
KA001 Administrasi Basis Data 2
SI0001 Sistem Informasi Kesehatan 2
Jawab :
create table MataKuliah (
-> KodeMK varchar(10) primary key,
-> NamaMK varchar(100),
-> SKS int);

insert into MataKuliah (KodeMK, NamaMK, SKS) values


-> ('U0001', 'Algoritma dan Pemograman I', 3),
-> ('U0003', 'Algoritma dan Pemograman', 3),
-> ('U0002', 'Basis Data', 2),
-> ('KA001', 'Administrasi Basis Data', 2),
-> ('SI0001', 'Sistem Informasi Kesehatan', 2);
MK_yg_diambil
ID Kode_KRS KodeMK
1 K000001 U0001
2 K000002 U0001
3 K000002 U0002
4 K000003 U0001
5 K000003 U0002
6 K000003 KA001
Jawab :
create table MK_yg_diambil (
-> ID int primary key,
-> Kode_KRS varchar(10),
-> KodeMK varchar(10),
-> foreign key (kode_KRS) references KRS(Kode_KRS),
-> foreign key (KodeMK) references MataKuliah(KodeMK));
insert into MK_yg_diambil (ID, Kode_KRS, KodeMK) values
-> (1, 'K000001', 'U0001'),
-> (2, 'K000002', 'U0001'),
-> (3, 'K000002', 'U0002'),
-> (4, 'K000003', 'U0001'),
-> (5, 'K000003', 'U0002'),
-> (6, 'K000003', 'KA001');
3. Buatlah view untuk menampilkan data-data berikut :
a. Data mata kuliah yang diambil oleh mahasiswa
Nama_Mahasiswa NamaMK
Roni Algoritma dan Pemrograman
Aan Algoritma dan Pemrograman
Aan Basis Data
Molly Algoritma dan Pemrograman
Molly Basis Data
Molly Administrasi Basis Data
Jawab :
create view MataKuliah_Mahasiswa as
-> select KRS.Nama_Mahasiswa, MataKuliah.NamaMK
-> from KRS
-> Join MK_yg_diambil on KRS.Kode_KRS = MK_yg_diambil.Kode_KRS
-> Join MataKuliah on MK_yg_diambil.KodeMK = MataKuliah.KodeMK;

b. Data mata kuliah yang diambil oleh mahasiswa dengan nama yang mengandung
huruf ‘o’
Nama_Mahasiswa NamaMK
Roni Algoritma dan Pemrograman
Molly Algoritma dan Pemrograman
Molly Basis Data
Molly Administrasi Basis Data
Jawab :
create view MataKuliah_Mahasiswa_o as
-> select KRS.Nama_Mahasiswa, MataKuliah.NamaMK
-> from KRS
-> Join MK_yg_diambil on KRS.Kode_KRS = MK_yg_diambil.Kode_KRS
-> join MataKuliah on MK_yg_diambil.KodeMK = MataKuliah.KodeMK
-> where KRS.Nama_Mahasiswa like '%o%';

c. Data jumlah SKS yang diambil dalam setiap KRS


Kode_KRS Jumlah_SKS
K000001 3
K000002 5
K000003 7
K000004 0
Jawab :
create view Mahasiswa_Jumlah_sks as
-> select MK_yg_diambil.Kode_KRS, sum(MataKuliah.SKS) as Jumlah_SKS
-> from MK_yg_diambil
-> left join MataKuliah on MK_yg_diambil.KodeMK = Matakuliah.KodeMK
-> group by MK_yg_diambil.Kode_KRS;
d. Data jumlah SKS yang pernah diambil oleh setiap mahasiswa
Nama Jumlah_SKS
Roni 3
Aan 5
Molly 7
Nini 0
Jawab :
create view Jumlah_SKS_Mahasiswa as
-> select KRS.Nama_Mahasiswa as Nama, Sum(MataKuliah.SKS) as Jumlah_SKS
-> from KRS
-> left join MK_yg_diambil on KRS.Kode_KRS = MK_yg_diambil.Kode_KRS
-> left join MataKuliah on MK_yg_diambil.KodeMK = MataKuliah.KodeMK
-> group by KRS.Kode_KRS;
e. Data jumlah KRS yang diisi oleh mahasiswa pada setiap semester di tahun akademik
2017/2018
Semester Jumlah_KRS
Ganjil 2
Genap 2

Jawab :
create view Jumlah_SKS_Semester as
-> select Semester, count(*) as Jumlah_KRS
-> From KRS
-> where Tahun_Akademik = '2017/2018'
-> group by semester;

f. Data jumlah mahasiswa yang mengambil setiap mata kuliah


NamaMK Jumlah_Mhs
Algoritma dan Pemrograman 3
Basis Data 2
Administrasi Basis Data 1
Sistem Informasi Kesehatan 0
Jawab :
create view Jumlah_Mahasiswa_permk as
-> select MataKuliah.NamaMK, count(MK_yg_diambil.Kode_KRS) as Jumlah_Mhs
-> from MataKuliah
-> left join MK_yg_diambil on MataKuliah.KodeMK = MK_yg_diambil.KodeMK
-> left join KRS on MK_yg_diambil.Kode_KRS = KRS.Kode_KRS
-> group by MataKuliah.NamaMK;
4. Ubahlah view yang anda buat pada soal 3(a) dengan view yang menampilkan data nama
mahasiswa yang paling banyak mengambil mata kuliah
Nama
Molly
Jawab :
create or replace view MK_Mahasiswa as
-> select KRS.Nama_Mahasiswa as Nama
-> from KRS
-> inner join MK_yg_diambil on KRS.Kode_KRS = MK_yg_diambil.Kode_KRS
-> group by KRS.Nama_Mahasiswa
-> order by count(MK_yg_diambil.KodeMK) desc
-> limit 1;
5. Hapuslah view yang anda buat pada soal 3(b)
Jawab :
drop view MataKuliah_Mahasiswa_o;

~~ Good Luck ~

Anda mungkin juga menyukai