Praktikum Database/Sistem Basis Data 2 Labsheet 5



Tuh udh ku buatkan tinggal Copy Paste aja, biar gak usah repot ngetik repot karna lemot komputer labnya wkwkwk

1) Membuat Database dan Tabel

CREATE DATABASE kampus;

Tabel Fakultas:

CREATE TABLE fakultas(
  kode_fakultas CHAR(10) PRIMARY KEY,
  nama_fakultas VARCHAR(30) NOT NULL,
  jml_mhs INT DEFAULT 0,
  CONSTRAINT unq_nama_fakultas UNIQUE (nama_fakultas),
  CONSTRAINT cek_nama_fakultas CHECK (nama_fakultas <> ''),
  CONSTRAINT cek_jml_mhs CHECK (jml_mhs >= 0)
);

Tabel Jurusan:

CREATE TABLE jurusan(
  kode_jur CHAR(5),
  kode_fakultas CHAR(10),
  FOREIGN KEY (kode_fakultas) REFERENCES fakultas(kode_fakultas),
  nama_jur CHAR(30) NOT NULL,
  PRIMARY KEY (kode_jur, kode_fakultas)
);

2) Mengisi Tabel

Isi tabel fakultas:

INSERT INTO fakultas VALUES ('fekon', 'Fakultas Ekonomi', 1000);
INSERT INTO fakultas VALUES ('fmipa', 'Fakultas Matematika IPA', 750);
INSERT INTO fakultas VALUES ('fkip', 'Keguruan dan Ilmu Pendidikan', 1500);

Isi tabel jurusan:

INSERT INTO jurusan VALUES ('mnjmn', 'fekon', 'Manajemen');
INSERT INTO jurusan VALUES ('akunt', 'fekon', 'Akuntansi');
INSERT INTO jurusan VALUES ('matik', 'fmipa', 'Matematika');
INSERT INTO jurusan VALUES ('matik', 'fkip', 'Matematika');
INSERT INTO jurusan VALUES ('matik', 'fmipa', 'Ilmu Matematika');

Ubah yah soalnya jangan mirip woyy, Generate di gpt aja minta buat jangan mirip!

3) TUGAS

TUGAS 1 – Error pada Query Jurusan

INSERT INTO jurusan VALUES('matik', 'fmipa', 'Ilmu Matematika');

Penjelasan:
Error terjadi karena kombinasi (kode_jur='matik', kode_fakultas='fmipa') sudah ada sebelumnya pada data "Matematika".
Tabel jurusan memiliki primary key gabungan sehingga data duplikat tidak diperbolehkan.

TUGAS 2 – Menghapus Jurusan FKIP

DELETE FROM jurusan WHERE kode_fakultas = 'fkip';

Kemungkinan hasil:
Jika tabel mahasiswa belum diisi data, maka baris jurusan dengan kode_fakultas='fkip' akan terhapus tanpa error.
Namun jika sudah ada data yang terhubung, akan muncul error:

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails

Penjelasan:
Ini karena mahasiswa memiliki foreign key ke tabel jurusan dan fakultas, sehingga penghapusan tidak bisa dilakukan jika masih ada data yang terhubung.

TUGAS 3 – Perbedaan Labsheet 5 dan Labsheet 4

Labsheet 5 sudah menerapkan relasi antar tabel menggunakan foreign key, sedangkan Labsheet 4 hanya tabel tunggal tanpa relasi.

TUGAS 4 – Mengisi Data Fakultas dan Jurusan

INSERT INTO fakultas (kode_fakultas, nama_fakultas, jml_mhs) VALUES
('fpik', 'Fakultas Perikanan', 513),
('faperta', 'Fakultas Pertanian', 1020),
('fisip', 'Fakultas Ilmu Sosial dan Politik', 1071),
('fteknik', 'Fakultas Teknik', 215);
INSERT INTO jurusan (kode_jur, kode_fakultas, nama_jur) VALUES
('bdp', 'fpik', 'Budi Daya Perikanan'),
('ptk', 'fpik', 'Perikanan Tangkap'),
('hlt', 'faperta', 'Hortikultura'),
('ilta', 'faperta', 'Ilmu Tanah'),
('adm', 'fisip', 'Administrasi Perkantoran'),
('tmsn', 'fteknik', 'Teknik Mesin'),
('tspl', 'fteknik', 'Teknik Sipil'),
('tinf', 'fteknik', 'Teknik Informatika'),
('ttbg', 'fteknik', 'Teknik Pertambangan');

TUGAS 5 – Menampilkan Data

SELECT fakultas.nama_fakultas, jurusan.nama_jur
FROM jurusan
JOIN fakultas ON jurusan.kode_fakultas = fakultas.kode_fakultas;
SELECT fakultas.nama_fakultas, COUNT(jurusan.kode_jur) AS jumlah_jurusan
FROM fakultas
JOIN jurusan ON fakultas.kode_fakultas = jurusan.kode_fakultas
GROUP BY fakultas.nama_fakultas;
SELECT COUNT(*) AS total_jurusan FROM jurusan;

TUGAS 6 – Tambahkan Tabel Mahasiswa

CREATE TABLE mahasiswa(
  nim CHAR(7) PRIMARY KEY,
  nama_mhs VARCHAR(30),
  kode_fakultas CHAR(10),
  kode_jur CHAR(5),
  FOREIGN KEY (kode_fakultas) REFERENCES fakultas(kode_fakultas),
  FOREIGN KEY (kode_jur) REFERENCES jurusan(kode_jur)
);

TUGAS 7 – Isi Data Mahasiswa

-- FISIP - Administrasi Perkantoran
INSERT INTO mahasiswa VALUES ('2401001','Karin Aoyama','fisip','adm');
INSERT INTO mahasiswa VALUES ('2401002','Ryo Wibisono','fisip','adm');
INSERT INTO mahasiswa VALUES ('2401003','Aiko Prameswari','fisip','adm');
INSERT INTO mahasiswa VALUES ('2401004','Daniel Kusuma','fisip','adm');
INSERT INTO mahasiswa VALUES ('2401005','Mika Salsabila','fisip','adm');

-- FEKON - Akuntansi
INSERT INTO mahasiswa VALUES ('2402001','Kenji Santoso','fekon','akunt');
INSERT INTO mahasiswa VALUES ('2402002','Alya Fujimoto','fekon','akunt');
INSERT INTO mahasiswa VALUES ('2402003','Farhan Okazaki','fekon','akunt');
INSERT INTO mahasiswa VALUES ('2402004','Rina Maulani','fekon','akunt');
INSERT INTO mahasiswa VALUES ('2402005','Haruto Ramadhan','fekon','akunt');

-- FEKON - Manajemen
INSERT INTO mahasiswa VALUES ('2403001','Daffa Ichikawa','fekon','mnjmn');
INSERT INTO mahasiswa VALUES ('2403002','Miyuki Rahma','fekon','mnjmn');
INSERT INTO mahasiswa VALUES ('2403003','Rizal Takanashi','fekon','mnjmn');
INSERT INTO mahasiswa VALUES ('2403004','Aya Marlina','fekon','mnjmn');
INSERT INTO mahasiswa VALUES ('2403005','Renata Kuroki','fekon','mnjmn');

-- FPIK - Budi Daya Perikanan
INSERT INTO mahasiswa VALUES ('2404001','Tomo Nugroho','fpik','bdp');
INSERT INTO mahasiswa VALUES ('2404002','Eri Wulandari','fpik','bdp');
INSERT INTO mahasiswa VALUES ('2404003','Kento Wahyudi','fpik','bdp');
INSERT INTO mahasiswa VALUES ('2404004','Mikael Takahashi','fpik','bdp');
INSERT INTO mahasiswa VALUES ('2404005','Sayaka Fitria','fpik','bdp');

-- FPIK - Perikanan Tangkap
INSERT INTO mahasiswa VALUES ('2405001','Raihan Nakamura','fpik','ptk');
INSERT INTO mahasiswa VALUES ('2405002','Yuki Rahadian','fpik','ptk');
INSERT INTO mahasiswa VALUES ('2405003','Rara Nishimura','fpik','ptk');
INSERT INTO mahasiswa VALUES ('2405004','Hiro Yamazaki','fpik','ptk');
INSERT INTO mahasiswa VALUES ('2405005','Amira Hanazono','fpik','ptk');

-- FAPERTA - Hortikultura
INSERT INTO mahasiswa VALUES ('2406001','Reina Kusnadi','faperta','hlt');
INSERT INTO mahasiswa VALUES ('2406002','Tatsuya Hidayat','faperta','hlt');
INSERT INTO mahasiswa VALUES ('2406003','Sakura Dewanti','faperta','hlt');
INSERT INTO mahasiswa VALUES ('2406004','Bayu Ichiro','faperta','hlt');
INSERT INTO mahasiswa VALUES ('2406005','Keiko Anggraeni','faperta','hlt');

-- FAPERTA - Ilmu Tanah
INSERT INTO mahasiswa VALUES ('2407001','Naoya Permana','faperta','ilta');
INSERT INTO mahasiswa VALUES ('2407002','Aira Kurniati','faperta','ilta');
INSERT INTO mahasiswa VALUES ('2407003','Riko Adiputra','faperta','ilta');
INSERT INTO mahasiswa VALUES ('2407004','Ayumi Rahayu','faperta','ilta');
INSERT INTO mahasiswa VALUES ('2407005','Shota Lestari','faperta','ilta');

-- FMIPA - Matematika
INSERT INTO mahasiswa VALUES ('2408001','Rio Takagi','fmipa','matik');
INSERT INTO mahasiswa VALUES ('2408002','Miyu Pranata','fmipa','matik');
INSERT INTO mahasiswa VALUES ('2408003','Andra Fujii','fmipa','matik');
INSERT INTO mahasiswa VALUES ('2408004','Sinta Yamaguchi','fmipa','matik');
INSERT INTO mahasiswa VALUES ('2408005','Ryoha Putri','fmipa','matik');

-- FTEKNIK - Teknik Informatika
INSERT INTO mahasiswa VALUES ('2409001','Hiroshi Pratama','fteknik','tinf');
INSERT INTO mahasiswa VALUES ('2409002','Karin Seto','fteknik','tinf');
INSERT INTO mahasiswa VALUES ('2409003','Rafli Kato','fteknik','tinf');
INSERT INTO mahasiswa VALUES ('2409004','Chika Nugrahani','fteknik','tinf');
INSERT INTO mahasiswa VALUES ('2409005','Daisuke Putra','fteknik','tinf');

-- FTEKNIK - Teknik Mesin
INSERT INTO mahasiswa VALUES ('2410001','Fumiko Hartono','fteknik','tmsn');
INSERT INTO mahasiswa VALUES ('2410002','Yuta Saputra','fteknik','tmsn');
INSERT INTO mahasiswa VALUES ('2410003','Hanako Ramli','fteknik','tmsn');
INSERT INTO mahasiswa VALUES ('2410004','Rian Kusumoto','fteknik','tmsn');
INSERT INTO mahasiswa VALUES ('2410005','Kana Wirawan','fteknik','tmsn');

-- FTEKNIK - Teknik Sipil
INSERT INTO mahasiswa VALUES ('2411001','Satoru Wibowo','fteknik','tspl');
INSERT INTO mahasiswa VALUES ('2411002','Aika Nurhaliza','fteknik','tspl');
INSERT INTO mahasiswa VALUES ('2411003','Ren Nugraha','fteknik','tspl');
INSERT INTO mahasiswa VALUES ('2411004','Dewi Asakura','fteknik','tspl');
INSERT INTO mahasiswa VALUES ('2411005','Ichiro Saputra','fteknik','tspl');

-- FTEKNIK - Teknik Pertambangan
INSERT INTO mahasiswa VALUES ('2412001','Riko Yamamoto','fteknik','ttbg');
INSERT INTO mahasiswa VALUES ('2412002','Airi Wibisono','fteknik','ttbg');
INSERT INTO mahasiswa VALUES ('2412003','Kenzo Mahendra','fteknik','ttbg');
INSERT INTO mahasiswa VALUES ('2412004','Aya Septiani','fteknik','ttbg');
INSERT INTO mahasiswa VALUES ('2412005','Takumi Herlambang','fteknik','ttbg');

TUGAS 8 – Mahasiswa Fakultas Teknik

SELECT m.nama_mhs, j.nama_jur
FROM mahasiswa m
JOIN jurusan j ON m.kode_jur = j.kode_jur
JOIN fakultas f ON m.kode_fakultas = f.kode_fakultas
WHERE f.nama_fakultas = 'Fakultas Teknik';

TUGAS 9 – Update Jumlah Mahasiswa

UPDATE fakultas SET jml_mhs = 0;
UPDATE fakultas f
SET jml_mhs = (
  SELECT COUNT(*) FROM mahasiswa m
  WHERE m.kode_fakultas = f.kode_fakultas
);
Halo! Saya Aruf, suka ngulik coding dan belajar mandiri. Lewat blog ini, saya berbagi ilmu seputar C++, Java, dan Python. Semoga bermanfaat buat yang sama-sama belajar!