Anda di halaman 1dari 6

Post test

Nama: Salbani rafael tyi balaprdhana


Kelas/NIM: IF 02-03/1203220106

Buat database kelas :


CREATE TABLE kelas (
kelas_id INT PRIMARY KEY,
nama_kelas VARCHAR(255) NOT NULL
);
Buat database guru :
CREATE TABLE guru (
guru_id INT PRIMARY KEY,
nama_guru VARCHAR(255) NOT NULL,
tanggal_lahir DATE NOT NULL,
jenis_kelamin VARCHAR(15) NOT NULL
);
Buat database siswa :
CREATE TABLE siswa (
siswa_id INT PRIMARY KEY,
nama_siswa VARCHAR(255) NOT NULL,
tanggal_lahir DATE NOT NULL,
jenis_kelamin VARCHAR(15) NOT NULL
);
Buat database mata pelajaran :
CREATE TABLE mata_pelajaran (
mata_pelajaran_id INT PRIMARY KEY,
nama_pelajaran VARCHAR(255) NOT NULL
);
Buat database nilai
CREATE TABLE nilai (
nilai_id INT PRIMARY KEY,
siswa_id INT,
mata_pelajaran_id INT,
nilai INT NOT NULL,
FOREIGN KEY (siswa_id) REFERENCES siswa(siswa_id),
FOREIGN KEY (mata_pelajaran_id) REFERENCES mata_pelajaran(mata_pelajaran_id)
);
Buat database jadwal pelajaran :
CREATE TABLE jadwal_pelajaran (
jadwal_id INT PRIMARY KEY,
hari VARCHAR(255) NOT NULL,
jam_mulai TIME NOT NULL,
jam_selesai TIME NOT NULL,
mata_pelajaran_id INT,
kelas_id INT,
guru_id INT,
FOREIGN KEY (mata_pelajaran_id) REFERENCES mata_pelajaran(mata_pelajaran_id),
FOREIGN KEY (kelas_id) REFERENCES kelas(kelas_id),
FOREIGN KEY (guru_id) REFERENCES guru(guru_id)
);
Isi database siswa :
INSERT INTO siswa (siswa_id, nama_siswa, tanggal_lahir, jenis_kelamin) VALUES
(1, 'Dhimas baharudin', '2001-28-09', 'Laki-laki'),
(2, 'Dini', '2002-07-22', 'Perempuan'),
(3, 'fajrul', '2006-01-05', 'Laki-laki');

Isi database kelas :


INSERT INTO kelas (kelas_id, nama_kelas) VALUES
(1, 'Kelas IF-02-01'),
(2, 'Kelas IF-02-02'),
(3, 'Kelas IF-02-03');

Isi database mata pelajaran :


INSERT INTO mata_pelajaran (mata_pelajaran_id, nama_pelajaran) VALUES
(1, 'Basis data'),
(2, 'Analis perancangan perangkat lunak'),
(3, 'Jaringan Komputer');
Isi database guru :
INSERT INTO guru (guru_id, nama_guru, tanggal_lahir, jenis_kelamin) VALUES
(1, 'bu Alqis', '1995-05-15', 'pr'),
(2, 'pak satria', '1987-08-20', 'lk'),
(3, 'pak Aldo', '1989-02-10', 'lk');

Isi database jadwal pelajaran :


INSERT INTO jadwal_pelajaran (jadwal_id, hari, jam_mulai, jam_selesai, mata_pelajaran_id,
kelas_id, guru_id) VALUES
(1, 'Senin', '07:00', '08:30', 1, 1, 1),
(2, 'Selasa', '10:00', '11:30', 2, 2, 2),
(3, 'Rabu', '13:00', '14:30', 3, 3, 3);

Isi database nilai :


INSERT INTO nilai (nilai_id, siswa_id, mata_pelajaran_id, nilai) VALUES
(1, 1, 1, 95),
(2, 1, 2, 90),
(3, 1, 3, 85);

Tampilan nilai terendah dan tertinggi :


Andi coffee shop
No.1 query

WITH TotalPembelianPelanggan AS (
SELECT
p.id AS pelanggan_id,
p.nama_pelanggan,
ps.tanggal_pesan,
SUM(dp.jumlah * dp.harga_satuan) AS total_pembelian
FROM
pelanggan p
JOIN pesanan ps ON p.id = ps.pelanggan_id
JOIN detail_pesanan dp ON ps.id = dp.pesanan_id
WHERE
ps.tanggal_pesan IN ('2023-12-09', '2023-12-10')
GROUP BY
p.id, p.nama_pelanggan, ps.tanggal_pesan
),
Top3Pelanggan AS (
SELECT
pelanggan_id,
nama_pelanggan,
DATE_FORMAT(tanggal_pesan, '%e %M') AS tanggal,
total_pembelian,
ROW_NUMBER() OVER (PARTITION BY tanggal_pesan ORDER BY total_pembelian DESC) AS row_num
FROM
TotalPembelianPelanggan
)
SELECT
tp.tanggal,
tp.pelanggan_id,
tp.nama_pelanggan,
tp.total_pembelian,
0.15 * tp.total_pembelian AS diskon,
tp.total_pembelian - (0.15 * tp.total_pembelian) AS total_bayar_setelah_diskon
FROM
Top3Pelanggan tp
WHERE
tp.row_num <= 3
ORDER BY
tp.tanggal DESC, total_bayar_setelah_diskon DESC;

output :
No 2

Query :

SELECT
tanggal,
produk_id,
nama_produk,
total_penjualan
FROM (
SELECT
CASE
WHEN DATE(tp.tanggal_transaksi) = '2023-12-09' THEN '9 Desember'
WHEN DATE(tp.tanggal_transaksi) = '2023-12-10' THEN '10 Desember'
END AS tanggal,
dp.produk_id,
pr.nama_produk,
SUM(dp.jumlah) AS total_penjualan,
ROW_NUMBER() OVER (PARTITION BY DATE(tp.tanggal_transaksi) ORDER BY SUM(dp.jumlah) DESC) AS ranking
FROM
transaksi tp
JOIN pesanan ps ON tp.pesanan_id = ps.id
JOIN detail_pesanan dp ON ps.id = dp.pesanan_id
JOIN produk pr ON dp.produk_id = pr.id
WHERE
DATE(tp.tanggal_transaksi) IN ('2023-12-09', '2023-12-10')
GROUP BY
DATE(tp.tanggal_transaksi), dp.produk_id, pr.nama_produk
) AS ranked_data
WHERE
ranking = 1
ORDER BY
CASE tanggal WHEN '9 Desember' THEN 1 WHEN '10 Desember' THEN 2 END, total_penjualan DESC;

Output:
No 3

CREATE VIEW transaksi_non_tunai_view AS


SELECT
t.id AS transaksi_id,
t.tanggal_transaksi,
SUM(dp.jumlah * dp.harga_satuan) AS jumlah_transaksi,
t.metode_pembayaran
FROM
transaksi t
JOIN
pesanan p ON t.pesanan_id = p.id
JOIN
detail_pesanan dp ON p.id = dp.pesanan_id
WHERE
t.metode_pembayaran <> 'tunai'
GROUP BY
t.id, t.tanggal_transaksi, t.metode_pembayaran;

Query run :
SELECT * FROM transaksi_non_tunai_view;

Output :

Anda mungkin juga menyukai