Praktikum Database 2 Labsheet 4

Menyiapkan code MySQL untuk siap pakai saat berada di lab praktikum kampus yang tinggal Coppy & Paste agar cepat selesai praktikum.

Halo sobat coder! kali ini saya menyiapkan code MySQL untuk siap pakai saat berada di lab praktikum kampus yang tinggal Coppy & Paste agar cepat selesai pada saat saya praktikum kampus.

1. Buat database

1. Buat database dengan nama alif_farma

CREATE DATABASE alif_farma;

2. Buat tabel obat, jual dan detailjual

2.1 Buat tabel obat

CREATE TABLE obat(kodeobat VARCHAR(6),
namaobat VARCHAR(30),
harga INTEGER,
PRIMARY KEY(kodeobat));

2.2 Buat tabel jual

CREATE TABLE jual(kodejual VARCHAR(7),
tgljual DATE,
PRIMARY KEY(kodejual));

2.3 Buat tabel detailjual

CREATE TABLE detailjual(kodejual VARCHAR(7),
kodeobat VARCHAR(6),
jmljual INTEGER,
PRIMARY KEY(kodejual,kodeobat),
FOREIGN KEY (kodejual) REFERENCES jual(kodejual) ON DELETE
CASCADE ON UPDATE CASCADE,
FOREIGN KEY (kodeobat)
REFERENCES obat(kodeobat) ON DELETE CASCADE ON UPDATE
CASCADE);

3. Mengisi tabel obat, jual dan detailjual

3.1 Mengisi tabel obat

INSERT INTO obat (kodeobat, namaobat, harga) VALUES
('AF0001', 'Asam Mefenamat', 7000),
('AF0002', 'Amoxilin', 6000),
('AF0003', 'Bisolvon', 12000),
('AF0004', 'Betametason', 15000),
('AF0005', 'Combantrin', 17000),
('AF0006', 'Caladine cair', 22000),
('AF0007', 'Paracetamol', 9000),
('AF0008', 'Gentamicyn', 3500),
('AF0009', 'Nystatin', 23500),
('AF0010', 'Rivanol', 7500),
('AF0011', 'Vicks', 12500);

3.2 Mengisi tabel jual

INSERT INTO jual (kodejual, tgljual) VALUES
('PA00001', '2018-08-23'),
('PA00002', '2018-08-25'),
('PA00003', '2018-09-01'),
('PA00004', '2019-01-02'),
('PA00005', '2019-02-27');

3.3 Mengisi tabel detailjual

INSERT INTO detailjual (kodejual, kodeobat, jmljual) VALUES
('PA00001', 'AF0006', 1),
('PA00001', 'AF0008', 3),
('PA00002', 'AF0001', 2),
('PA00002', 'AF0011', 1),
('PA00002', 'AF0009', 2),
('PA00003', 'AF0001', 1),
('PA00004', 'AF0007', 1),
('PA00004', 'AF0003', 2),
('PA00005', 'AF0001', 3),
('PA00005', 'AF0002', 4),
('PA00005', 'AF0009', 1),
('PA00005', 'AF0010', 2),
('PA00005', 'AF0004', 4);

4. Manipulasi Data pada Basis Data Relasional

4.1 Input

Buat transaksi ke-6 dengan perintah:

INSERT INTO jual VALUES('PA00006', '2019-06-09');

Kemudian jika isi detailjual dengan perintah:

INSERT INTO detailjual VALUES('PA005', 'AF0001',2);
INSERT INTO detailjual VALUES('PA00006', 'AF005',20);

Maka akan gagal/error

Jika kita isi detailjual dengan perintah :

INSERT INTO detailjual VALUES('PA00006', 'AF0005',5);
INSERT INTO detailjual VALUES('PA00006', 'AF0008',3);

Hasilnya berhasil, hal ini terjadi karena detailjual memiliki FOREIGN KEY dari

tabel jual dan tabel obat jadi jika kodeobat dan kodejual tidak ada pada tabel

referensinya maka data tidak dapat diinputkan.

4.2 Penghapusan Data dari tabel referensinya

Hapus penghapus Vicks = AF0011 pada tabel obat

DELETE FROM obat WHERE kodeobat='AF0011';

4.3 Perubahan data pada tabel referensiPerubahan data pada tabel referensi

Ubah data pada tabel jual yang tadinya kodejual=PA00006 menjadi PA00005

Update detailjual

UPDATE detailjual SET kodejual='PA00005' WHERE kodejual='PA00006';

Latihan

1.a) Tampilkan kodejual, namaobat, jmljual

SELECT detailjual.kodejual, obat.namaobat, detailjual.jmljual
FROM detailjual
JOIN obat ON detailjual.kodeobat = obat.kodeobat;

1.b) Tampilkan kodejual, tgljual, namaobat, harga, jmljual, total

SELECT jual.kodejual, jual.tgljual, obat.namaobat, obat.harga,
       detailjual.jmljual, (obat.harga * detailjual.jmljual) AS total
FROM jual
JOIN detailjual ON jual.kodejual = detailjual.kodejual
JOIN obat ON detailjual.kodeobat = obat.kodeobat;

1.c) Total penjualan per tanggal

SELECT jual.tgljual, SUM(obat.harga * detailjual.jmljual) AS total_penjualan
FROM jual
JOIN detailjual ON jual.kodejual = detailjual.kodejual
JOIN obat ON detailjual.kodeobat = obat.kodeobat
GROUP BY jual.tgljual;

2.a) Tambahkan tabel Suplier (kodesup, namasup)

CREATE TABLE suplier (
  kodesup VARCHAR(6) PRIMARY KEY,
  namasup VARCHAR(50)
);

2.b) Tambahkan tabel beli(kodebeli, kodesup, tglbeli)

CREATE TABLE beli (
  kodebeli VARCHAR(7) PRIMARY KEY,
  kodesup VARCHAR(6),
  tglbeli DATE,
  FOREIGN KEY (kodesup) REFERENCES suplier(kodesup)
    ON DELETE CASCADE ON UPDATE CASCADE
);

2.c) Tambahkan tabel detailbeli(kodebeli,kodeobat, jmlbeli)

CREATE TABLE detailbeli (
  kodebeli VARCHAR(7),
  kodeobat VARCHAR(6),
  jmlbeli INT,
  PRIMARY KEY (kodebeli, kodeobat),
  FOREIGN KEY (kodebeli) REFERENCES beli(kodebeli)
    ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (kodeobat) REFERENCES obat(kodeobat)
    ON DELETE CASCADE ON UPDATE CASCADE
);
udh itu aja sih, mager betul kalau ngetik di LabKom mending salin tempel wkwkkwk
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!