Anda di halaman 1dari 5

Tugas Kelompok ke-3

(Minggu 8 / Sesi 12)

Sebuah perusahaan distribusi peralatan mobil dengan nama “DIAN” memiliki beberapa tabel
untuk aplikasi yang dimilikinya sebagai berikut:

1. Tuliskan SQL untuk membuat tabel barang berikut ini


+-----------+-------------+-------------+---------+------+
| id_barang | id_kategori | nama_barang | harga | stok |
+-----------+-------------+-------------+---------+------+
| 1 | 1 | RAM | 230000 | 4 |
| 2 | 1 | Mainboard | 1250000 | 7 |
| 3 | 1 | Mouse | 80000 | 6 |
| 4 | 3 | Mousepad | 35000 | 3 |
| 5 | 3 | Keyboard | 80000 | 5 |
+-----------+-------------+-------------+---------+------+
Jawaban :
CREATE TABLE Barang(
Id_Barang float,
Id_Kategori float,
Nama_Barang varchar(255),
Harga float,
Stok float
);

INSERT INTO Barang


VALUES
('1', '1','RAM','230000','4'),
('2', '1','Mainboard','1250000','7'),
('3', '1','Mouse','80000','6'),
('4', '3','Mousepad','35000','3'),
('5', '3','Keyboard','80000','5');

Select * from Barang

ISYS6513 - Database System and Management


2. Tuliskan SQL untuk membuat tabel pelanggan berikut ini
+--------------+---------+-------------------+
| id_pelanggan | nama | email |
+--------------+---------+-------------------+
| 1 | Alfa | alfa@yahoo.com |
| 2 | Beta | beta@yahoo.com |
| 3 | Charlie | charlie@gmail.com |
| 4 | Delta | delta@gmail.com |
+--------------+---------+-------------------+
Jawaban :
CREATE TABLE Pelanggan(
Id_Pelanggan float,
Nama varchar(255),
Email varchar(255)
);

INSERT INTO Pelanggan


VALUES
('1', 'Alfa','alfa@yahoo.com'),
('2', 'Beta','beta@yahoo.com'),
('3', 'Charlie','charlie@gmail.com'),
('4', 'Delta','delta@gmail.com');

Select * from Pelanggan

3. Tuliskan SQL untuk membuat tabel penjualan berikut ini


+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
| 1 | 1 | 2017-02-22 | 230000 |
| 2 | 3 | 2017-02-22 | 195000 |
| 3 | 2 | 2017-01-01 | 1710000 |
| 4 | 1 | 2017-02-04 | 310000 |
| 5 | NULL | 2017-02-10 | 80000 |
+--------------+--------------+---------------+-----------------+
Jawaban :
CREATE TABLE Penjualan(
Id_Transaksi float,

ISYS6513 - Database System and Management


Id_Pelanggan float,
Tgl_Transaksi date,
Total_Transaksi float
);
INSERT INTO Penjualan
VALUES
('1', '1', '2017-02-22','230000'),
('2', '3', '2017-02-22','195000'),
('3', '2', '2017-01-01','1710000'),
('4', '1', '2017-02-04','310000'),
('5', null, '2017-02-10','80000');

Select * from Penjualan

4. Tuliskan SQL sehingga ditampilkan tabel berikut ini


+--------------+---------+---------------+-----------------+
| id_pelanggan | nama | tgl_transaksi | total_transaksi |
+--------------+---------+---------------+-----------------+
| 1 | Alfa | 2017-02-22 | 230000 |
| 3 | Charlie | 2017-02-22 | 195000 |
| 2 | Beta | 2017-01-01 | 1710000 |
| 1 | Alfa | 2017-02-04 | 310000 |
+--------------+---------+---------------+-----------------+
Jawaban :
select P.Id_Pelanggan, P.Nama, PJ.Tgl_Transaksi, PJ.Total_Transaksi
from Penjualan PJ
inner join Pelanggan P on P.Id_Pelanggan = PJ.Id_Pelanggan

5. Tuliskan SQL sehingga dihasilkan tabel berikut ini


+--------------+---------+---------------+-----------------+
| id_pelanggan | nama | tgl_transaksi | total_transaksi |
+--------------+---------+---------------+-----------------+
| 1 | Alfa | 2017-02-22 | 230000 |
| 3 | Charlie | 2017-02-22 | 195000 |
| 2 | Beta | 2017-01-01 | 1710000 |
| 1 | Alfa | 2017-02-04 | 310000 |
| 4 | Delta | NULL | NULL |
+--------------+---------+---------------+-----------------+

Jawaban :

ISYS6513 - Database System and Management


Apabila tampilan order data yang ditampilkan tidak harus sama dengan table di atas
dapat menggunakan query berikut ini :
Select P.Id_Pelanggan, P.Nama, PJ.Tgl_Transaksi, PJ.Total_Transaksi
from Penjualan PJ
right join Pelanggan P on P.Id_Pelanggan = PJ.Id_Pelanggan
order by PJ.Id_Transaksi asc

Apabila tampilan order data yang ditampilkan harus sama dengan table di atas dapat
menggunakan query berikut ini :
select * from (
select top 5 P.Id_Pelanggan, P.Nama, PJ.Tgl_Transaksi, PJ.Total_Transaksi
from Penjualan PJ
inner join Pelanggan P on P.Id_Pelanggan = PJ.Id_Pelanggan
order by PJ.Id_Transaksi asc) T1
union all
select * from (
select top 5 P.Id_Pelanggan, P.Nama, PJ.Tgl_Transaksi, PJ.Total_Transaksi
from Pelanggan P
left join Penjualan PJ on PJ.Id_Pelanggan = P.Id_Pelanggan
where PJ.Id_Transaksi is null
order by PJ.Id_Transaksi asc)T2

6. Hasil dari SQL sebagai berikut :


SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
RIGHT JOIN penjualan USING(id_pelanggan);

Jawaban :
Query di atas hanya dapat dijalankan apabila menggunakan database MySQL.
Apabila akan dijalankan di SQL Server harus diubah menjadi seperti berikut ini :

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi


FROM pelanggan pl
RIGHT JOIN penjualan pj on pj.id_pelanggan = pl.id_pelanggan

Kedua query itu akan menghasilkan data sebagai berikut :

ISYS6513 - Database System and Management


***

ISYS6513 - Database System and Management