Tugas Praktikum Basis Data 2 - Pertemuan 5

Tugas Praktikum Basis Data 2 - Pertemuan 5

Dalam artikel ini saya akan menyelesaikan tugas praktikum mata kuliah Basis Data 2 yang diberikan oleh bapak Nurcholis Ali Sya’bana, M.Kom pada pertemuan ke 5. Sebelumnya saya telah mempublikasi artikel tentang Latihan Praktikum Basis Data 2 - Pertemuan 5 sebagai referensi untuk menyelesaikan tugas praktikum ini.

Tugas praktikum kali ini saya menggunakan basis data yang sebelumnya saya pakai untuk latihan praktikum, didalam basis data tersebut saya menambahkan 2 tabel yang akan diolah yaitu tabel 1 dan tabel 2. Berikut adalah data tabel yang akan diolah:

Tabel 1

kode_buku
jenis_buku
nama_buku
harga
stok
NVL479 Novel Penjelajah Senja
50000
20
NVL123 Novel Dilan
60000
10
TKS567 Teks Metode Numerik
90000
7
KMK876 Komik Avatar
40000
5
KMK889 Komik Doraemon
45000
1
TKS009 Teks Java Mobile
95000
3
KMS112 Kamus Kamus Jerman
99000
40

Tabel 2

kode_mk
nama_mk
sks
semester
FTI961 Algoritma
3
3
TIK267 Kalkulus 3
2
4
TOP777 Basis Data 2
3
6
FTI776 Struktur Data
3
2
MUK091 ANSI
2
6
LKT229 AIKA 1
1
1
UKT222 Jarkom
2
2
 
Berikut ini adalah beberapa soal yang harus diselesaikan:
  1. Berdasarkan tabel 1, dapatkan data buku dengan harga termurah, kelompokkan berdasarkan jenis bukunya!
  2. Berdasarkan tabel 1, dapatkan total stok buku berdasarkan jenis bukunya. Dapatkan hanya jenis buku yang stoknya kurang dari 10!
  3. Berdasarkan tabel 2, Dapatkan jumlah matakuliah tanpa duplikasi field nama_mk!
  4. Bedasarkan tabel 2, dapatkan jumlah total sks pada matakuliah dengan kode_mk selain FTI! 
  5. Berdasarkan tabel 1, dapatkan rata-rata penghasilan kotor yang didapat dari penjualan buku dengan stok diatas 10!
  6. Berdasarkan tabel 1, dapatkan harga buku terbesar yang bukan komik dengan harga dibawah 2000 dan stok diatas 16!
  7. Berdasarkan tabel 2, dapatkan jumlah matakuliah yang mengandung kata “Sistem” hanya jika jumlahnya lebih dari 3! (jika jumlah kurang dari 3 maka akan menghasilkan “empty set”)


Penyelesaian:
  1. Berdasarkan tabel 1, dapatkan data buku dengan harga termurah, kelompokkan berdasarkan jenis bukunya!
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT jenis_buku, nama_buku, MIN(harga) AS harga
    FROM `tabel_1`
    GROUP BY jenis_buku;

    Berikut hasilnya:


  2. Berdasarkan tabel 1, dapatkan total stok buku berdasarkan jenis bukunya. Dapatkan hanya jenis buku yang stoknya kurang dari 10!
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT jenis_buku, SUM(stok) AS stok
    FROM `tabel_1`
    GROUP BY jenis_buku
    HAVING stok < 10;

    Berikut hasilnya:


  3. Berdasarkan tabel 2, Dapatkan jumlah matakuliah tanpa duplikasi field nama_mk!
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT DISTINCT COUNT(nama_mk) AS jumlah_mk
    FROM `tabel_2`;

    Berikut hasilnya:


  4. Bedasarkan tabel 2, dapatkan jumlah total sks pada matakuliah dengan kode_mk selain FTI!
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT SUM(sks) AS total_sks
    FROM `tabel_2`
    WHERE kode_mk NOT LIKE 'FTI%';

    Berikut hasilnya:


  5. Berdasarkan tabel 1, dapatkan rata-rata penghasilan kotor yang didapat dari penjualan buku dengan stok diatas 10!
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT AVG(harga) AS penghasilan_kotor
    FROM `tabel_1`
    WHERE stok > 10;

    Berikut hasilnya:


  6. Berdasarkan tabel 1, dapatkan harga buku terbesar yang bukan komik dengan harga dibawah 2000 dan stok diatas 16!
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT MAX(harga) AS harga_tertinggi
    FROM `tabel_1`
    WHERE stok > 16 
    AND jenis_buku NOT LIKE 'Komik' 
    AND harga < 2000;

    Berikut hasilnya:


  7. Berdasarkan tabel 2, dapatkan jumlah matakuliah yang mengandung kata “Sistem” hanya jika jumlahnya lebih dari 3! (jika jumlah kurang dari 3 maka akan menghasilkan “empty set”)
    Untuk menyelesaikan soal ini, gunakan syntax berikut:
    SELECT IF(COUNT(nama_mk) > 3, COUNT(nama_mk), "empty set") AS total
    FROM `tabel_2`
    WHERE nama_mk NOT LIKE 'Sistem%';

    Berikut hasilnya:


Penutup
Demikian tugas praktikum basis data 2 pertemuan ke 5 ini, semoga artikel ini bermanfaat bagi para pembaca. Sekian dan terima kasih.
Tugas Praktikum Basis Data 2 - Pertemuan 5
4/ 5
Oleh