Advertisement
BlackBoY_

TUGAS SQL

Jul 31st, 2024
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.80 KB | None | 0 0
  1. -- Perancangan database
  2. CREATE DATABASE universitas;
  3.  
  4. -- 1. Membuat tabel mahasiswa
  5. CREATE TABLE mahasiswa (
  6.     nim CHAR(10) PRIMARY KEY,
  7.     nama VARCHAR(10),
  8.     jenis_kelamin CHAR(2),
  9.     alamat TEXT
  10. );
  11.  
  12. -- 2. Membuat tabel matkul
  13. CREATE TABLE matkul (
  14.     kode_mk CHAR(20) PRIMARY KEY,
  15.     nama_mk VARCHAR(50),
  16.     sks INT(2),
  17.     semester CHAR(2)
  18. );
  19.  
  20. -- 3. Membuat tabel perkuliahan
  21. CREATE TABLE perkuliahan (
  22.     kode_perkuliahan CHAR(10) PRIMARY KEY,
  23.     nim CHAR(10),
  24.     kode_mk CHAR(20),
  25.     nilai DECIMAL(3,1),
  26.     FOREIGN KEY (nim) REFERENCES mahasiswa(nim),
  27.     FOREIGN KEY (kode_mk) REFERENCES matkul(kode_mk)
  28. );
  29.  
  30. -- 4. Memasukkan data ke table mahasiswa (10 record)
  31. INSERT INTO mahasiswa (nim, nama, jenis_kelamin, alamat) VALUES
  32. ('0000000001', 'Andi', 'L', 'Jl. Merdeka 1'),
  33. ('0000000002', 'Budi', 'L', 'Jl. Merdeka 2'),
  34. ('0000000003', 'Cici', 'P', 'Jl. Merdeka 3'),
  35. ('0000000004', 'Dedi', 'L', 'Jl. Merdeka 4'),
  36. ('0000000005', 'Eka', 'P', 'Jl. Merdeka 5'),
  37. ('0000000006', 'Feri', 'L', 'Jl. Merdeka 6'),
  38. ('0000000007', 'Gina', 'P', 'Jl. Merdeka 7'),
  39. ('0000000008', 'Hadi', 'L', 'Jl. Merdeka 8'),
  40. ('0000000009', 'Ira', 'P', 'Jl. Merdeka 9'),
  41. ('0000000010', 'Joko', 'L', 'Jl. Merdeka 10');
  42.  
  43. -- 5. Memasukkan data ke table matkul (5 record)
  44. INSERT INTO matkul (kode_mk, nama_mk, sks, semester) VALUES
  45. ('MK001', 'Matematika', 3, '1'),
  46. ('MK002', 'Fisika', 3, '1'),
  47. ('MK003', 'Kimia', 3, '2'),
  48. ('MK004', 'Biologi', 3, '2'),
  49. ('MK005', 'Bahasa Inggris', 2, '1');
  50.  
  51. -- 6. Memasukkan data ke table perkuliahan (10 record random)
  52. INSERT INTO perkuliahan (kode_perkuliahan, nim, kode_mk, nilai) VALUES
  53. ('PK001', '0000000001', 'MK001', 3.5),
  54. ('PK002', '0000000002', 'MK002', 3.7),
  55. ('PK003', '0000000003', 'MK003', 3.2),
  56. ('PK004', '0000000004', 'MK004', 2.8),
  57. ('PK005', '0000000005', 'MK005', 3.9),
  58. ('PK006', '0000000006', 'MK001', 3.0),
  59. ('PK007', '0000000007', 'MK002', 2.5),
  60. ('PK008', '0000000008', 'MK003', 3.8),
  61. ('PK009', '0000000009', 'MK004', 3.1),
  62. ('PK010', '0000000010', 'MK005', 2.9);
  63.  
  64. -- JAWABAN SOAL DARI SINI YAA
  65.  
  66. -- SOAL NOMOR 1
  67. SELECT
  68.     m.nim,
  69.     m.nama,
  70.     m.jenis_kelamin,
  71.     m.alamat,
  72.     COUNT(p.kode_mk) AS jumlah_mata_kuliah
  73. FROM
  74.     mahasiswa m
  75. JOIN
  76.     perkuliahan p ON m.nim = p.nim
  77. GROUP BY
  78.     m.nim,
  79.     m.nama,
  80.     m.jenis_kelamin,
  81.     m.alamat;
  82.  
  83. -- SOAL NOMOR 2
  84. SELECT
  85.     m.nim,
  86.     m.nama,
  87.     m.jenis_kelamin,
  88.     m.alamat,
  89.     p.kode_perkuliahan,
  90.     p.kode_mk,
  91.     p.nilai
  92. FROM
  93.     mahasiswa m
  94. LEFT JOIN
  95.     perkuliahan p ON m.nim = p.nim;
  96.  
  97. -- SOAL NOMOR 3
  98. SELECT
  99.     p.kode_perkuliahan,
  100.     p.nim,
  101.     m.nama,
  102.     m.jenis_kelamin,
  103.     m.alamat,
  104.     p.kode_mk,
  105.     p.nilai
  106. FROM
  107.     perkuliahan p
  108. RIGHT JOIN
  109.     mahasiswa m ON p.nim = m.nim;
  110.  
  111. -- SOAL NOMOR 4
  112. SELECT
  113.     m.nim,
  114.     m.nama AS nama_mahasiswa,
  115.     m.jenis_kelamin,
  116.     m.alamat,
  117.     p.kode_perkuliahan,
  118.     p.kode_mk,
  119.     mk.nama_mk,
  120.     p.nilai
  121. FROM
  122.     perkuliahan p
  123. RIGHT JOIN
  124.     mahasiswa m ON m.nim = p.nim
  125. LEFT JOIN
  126.     matkul mk ON p.kode_mk = mk.kode_mk;
  127.  
  128. -- SOAL NOMOR 5
  129. SELECT
  130.     p.kode_perkuliahan,
  131.     p.kode_mk,
  132.     mk.nama_mk,
  133.     AVG(p.nilai) AS rata_rata_nilai
  134. FROM
  135.     perkuliahan p
  136. JOIN
  137.     matkul mk ON p.kode_mk = mk.kode_mk
  138. GROUP BY
  139.     p.kode_perkuliahan,
  140.     p.kode_mk,
  141.     mk.nama_mk
  142. HAVING
  143.     AVG(p.nilai) >= 75;
  144.  
  145. --SOAL NOMOR 6
  146. SELECT
  147.     p.kode_perkuliahan,
  148.     p.nim,
  149.     p.kode_mk,
  150.     mk.nama_mk,
  151.     p.nilai
  152. FROM
  153.     perkuliahan p
  154. JOIN
  155.     matkul mk ON p.kode_mk = mk.kode_mk
  156. WHERE
  157.     p.nilai = (SELECT MAX(nilai) FROM perkuliahan);
  158.  
  159. -- SOAL NOMOR 7
  160. DELETE FROM perkuliahan WHERE kode_perkuliahan = 'PK005';
  161.  
  162. -- SOAL NOMOR 8
  163. INSERT INTO perkuliahan (kode_perkuliahan, nim, kode_mk, nilai) values ('PK005', '0000000005', 'MK005', 80.5);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement