100% found this document useful (1 vote)
221 views5 pages

Database Restoran: Struktur dan Data

The document details steps to create tables (Menu, Package, Employee, Customer, Transaction) in a restaurant database based on a relational schema. It provides SQL commands to define the database and tables, then inserts sample data into the tables. It also includes some queries to retrieve data from the tables.

Uploaded by

Rizky Eka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
221 views5 pages

Database Restoran: Struktur dan Data

The document details steps to create tables (Menu, Package, Employee, Customer, Transaction) in a restaurant database based on a relational schema. It provides SQL commands to define the database and tables, then inserts sample data into the tables. It also includes some queries to retrieve data from the tables.

Uploaded by

Rizky Eka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

1.

Buatlah tabel Menu, Paket, Employee, Customer, Transaction dalam database


Restoranberdasarkan relational database schema berikut.

mysql -h localhost -u root

CREATE DATABASE restoran


USE restoran

CREATE TABLE customer(


id_customer VARCHAR(5),
nama_depan VARCHAR(30),
nama_belakang VARCHAR(30),
alamat VARCHAR(30),
email VARCHAR(30),
nomor_telepon VARCHAR(15),
PRIMARY KEY (id_customer)
);

CREATE TABLE employee(


id_employee VARCHAR(5),
nama_depan VARCHAR(30),
nama_belakang VARCHAR(30),
jabatan VARCHAR(30),
alamat VARCHAR(30),
email VARCHAR(30),
nomor_telepon VARCHAR(15),
gaji INT,
PRIMARY KEY (id_employee)
);

CREATE TABLE paket(


id_paket VARCHAR(5),
harga_paket INT,
PRIMARY KEY (id_paket)
);

CREATE TABLE transaction(


id_customer VARCHAR(5),
id_paket VARCHAR(5),
id_employee VARCHAR(5),
transaction_date DATE,
FOREIGN KEY (id_customer) REFERENCES customer(id_customer),
FOREIGN KEY (id_paket) REFERENCES paket(id_paket),
FOREIGN KEY (id_employee) REFERENCES employee(id_employee)
);

CREATE TABLE menu(


id_menu VARCHAR(5),
nama_menu VARCHAR(30),
jenis_menu VARCHAR(20),
id_paket VARCHAR(5),
PRIMARY KEY (id_menu),
FOREIGN KEY (id_paket) REFERENCES paket(id_paket)
);

2. Masukkan data berikut ke dalam table Employee.


INSERT INTO employee(id_employee, nama_depan, jabatan, alamat, email,
nomor_telepon, gaji)
VALUES ('E0001','Anthony', 'Manager', '70 Cool Guy', 'anthony@umn.ac.id', '123-456-
4565', 5000000);

INSERT INTO employee(id_employee, nama_depan, nama_belakang, jabatan, alamat,


email, nomor_telepon, gaji)
VALUES ('E0002','Akino', 'Archilles', 'Chef', '21 Kino Kino', 'akino@student.com',
'354-124-5786', 3500000);

INSERT INTO employee(id_employee, nama_depan, nama_belakang, jabatan, alamat,


email, nomor_telepon, gaji)
VALUES ('E0003','Kevin', 'Alexander', 'Cashier', '34 Nishinoya', 'alex@yahoo.com',
'096-123-7832', 3000000);

INSERT INTO employee(id_employee, nama_depan, nama_belakang, jabatan, alamat,


email, nomor_telepon, gaji)
VALUES ('E0004','Ivy', 'Marcia', 'Chef', '06 Wall Street', 'ivy@yahoo.com', '846-
732-8427', 3500000);

INSERT INTO employee(id_employee, nama_depan, nama_belakang, jabatan, alamat,


email, nomor_telepon, gaji)
VALUES ('E0005','Martha', 'Saphia', 'Customer Service', '78 Ruby Fort',
'martha@umn.ac.id', '718-296-2873', 3200000);

INSERT INTO employee(id_employee, nama_depan, jabatan, alamat, email,


nomor_telepon, gaji)
VALUES ('E0006','Nofiandy', 'Cashier', '03 Smooth Hair', 'nofiandy@gmail.com',
'516-927-9268', 3250000);

INSERT INTO employee(id_employee, nama_depan, jabatan, alamat, email,


nomor_telepon, gaji)
VALUES ('E0007','Octavany', 'Cashier', '23 Relaxing Cafe', 'octa@iseng.com', '654-
876-1928', 3150000);

3. Masukkkan data berikut ke dalam table Customer.


INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,
nomor_telepon)
VALUES ('C0001', 'Michael', 'Oswin', '125 Laugh Land', 'oswin@yahoo.com', '745-387-
2874');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0002', 'Anna', 'Jeane', '163 Lolita Land', 'anna@gmail.com', '982-397-
4862');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0003', 'Raymond', NULL, '287 Chucky Suburb', 'raymond@gmail.com', '917-
376-4672');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0004', 'Theodore', 'Mulia', '287 Idea Annex', 'mulia@gmail.com', '122-
187-1111');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0005', 'Niki', 'Emersan', '297 Cult Annex', 'niki@yahoo.com', '196-292-
2223');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0006', 'Christine', 'Liviani', '275 Love Annex', 'liviani@live.com',
'000-198-2836');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0007', 'Hermawan', NULL, '212 Tall Building', 'hermawan@yahoo.com', '192-
168-1001');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0008', 'Agung', NULL, '293 Short Building', 'agung@yahoo.com', '192-168-
1993');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0009', 'Samuel', 'Sandro', '206 Oppa Annex', 'sam@live.com', '192-168-
2973');

INSERT INTO customer(id_customer, nama_depan, nama_belakang, alamat, email,


nomor_telepon)
VALUES ('C0010', 'Kennard', 'Alcander', '202 Brother Annex', 'ken@live.com', '198-
782-3864');

4.Masukkan data berikut kedalam table Paket.


INSERT INTO paket(id_paket, harga_paket)
VALUES ('P0001', 3000000);

INSERT INTO paket(id_paket, harga_paket)


VALUES ('P0002', 2500000);

INSERT INTO paket(id_paket, harga_paket)


VALUES ('P0003', 2000000);

5. Masukkan data berikut ke dalam table Menu.


INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)
VALUES ('M0001', 'Nasi Goreng Cinta', 'Makanan', 'P0001');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0002', 'Ayam Bumbu PHP', 'Makanan', 'P0002');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0003', 'Soto Daging CPP', 'Makanan', 'P0003');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0004', 'Siomay Pak BoBi', 'Makanan', 'P0001');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0005', 'Blue Integer', 'Minuman', 'P0001');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0006', 'Mocha Float', 'Dessert', 'P0003');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0007', 'Choco Banana Split', 'Dessert', 'P0002');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0008', 'Es Teh Panas', 'Minuman', 'P0002');
INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)
VALUES ('M0009', 'Nasi Micin', 'Makanan', 'P0002');

INSERT INTO menu(id_menu, nama_menu, jenis_menu, id_paket)


VALUES ('M0010', 'Sapi Chabe', 'Makanan', 'P0003');

6. Masukkan data berikut ke dalam table Transaction


INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)
VALUES ('C0001', 'E0002', 'P0003', '2016-02-25');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0002', 'E0001', 'P0002', '2016-03-12');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0003', 'E0002', 'P0002', '2016-04-10');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0004', 'E0004', 'P0001', '2016-06-28');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0005', 'E0001', 'P0002', '2016-03-30');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0006', 'E0003', 'P0003', '2016-03-10');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0007', 'E0005', 'P0001', '2016-03-01');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0008', 'E0002', 'P0002', '2016-08-30');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0009', 'E0002', 'P0003', '2016-11-02');

INSERT INTO transaction(id_customer, id_employee, id_paket, transaction_date)


VALUES ('C0010', 'E0005', 'P0001', '2016-08-18');

7. Tampilkan semua isi dari tabel Menu.


SELECT * FROM menu;

8. Tampilkan nama depan dan nama belakang semua pekerja yang bekerja sebagai
kasir(Cashier).
SELECT nama_depan AS 'Nama Depan', nama_belakang AS 'Nama Belakang' FROM
employee WHERE jabatan = 'Cashier';

9. Tampilkan ID Paket, Harga Awal, dan Harga Akhir setelah Didiskon 30% dari harga
awal.
SELECT id_paket AS 'ID paket', harga_paket AS 'Harga Awal', TRUNCATE(harga_paket
* 70/100,0) AS 'Harga Akhir' FROM paket;

10. Tampilkan total gaji karyawan.


SELECT CONCAT('Rp. ', SUM(gaji)) AS 'Total Gaji' FROM employee;

11. Tampilkan Nama Depan, Nama Belakang, Jabatan serta E-mail karyawan yang
memiliki E-mail Yahoo.
SELECT nama_depan AS 'Nama Depan', nama_belakang AS 'Nama Belakang', jabatan AS
'Jabatan', email AS 'E-mail' FROM employee WHERE email LIKE '%@yahoo.com%';

12. Tampilkan Nama Depan, Nama Belakang, Jabatan, dan Jumlah Gaji. Dimana gaji
dibawah 3.800.000.
SELECT nama_depan AS 'Nama Depan', nama_belakang AS 'Nama Belakang', jabatan AS
'Jabatan', gaji AS 'Gaji' FROM employee WHERE gaji < 3800000;

13. Bapak Oswin selaku owner restoran ingin membuat email khusus untuk setiap
pelayan yang bekerja di restoran tersebut dengan cara:
1. E-mail dibuat berdasarkan nama depan (contoh: Anna Jeane = Anna).
2. Domain e-mail adalah “@restoswin.rs.id”
SELECT nama_depan AS 'Nama Depan', nama_belakang AS 'Nama Belakang',
LOWER(CONCAT(nama_depan, '@restoswin.rs.id')) AS 'Email Khusus' FROM employee;

14. Pak Chanek sangat suka membuat nama baru. Nama baru dapat dibangun dengan
menggabungkan 4 huruf pertama dari nama depan dan kata tengah dari alamat. Data
yang ditampilkan hanyalah yang memiliki digit pertama nomor tengah dari nomor
telepon adalah
‘1’ atau ‘7’.
Contoh:
a) Ambil 4 huruf pertama dari nama depan (“Christine” menjadi “Chri”)
b) Ambil kata tengah dari alamat (“275 Love Annex” menjadi “Love”)
c) Gabungkan hasil a dan b menjadi “ChriLove”
d) Cek digit pertama nomor tengah dari nomor telepon (“000-198-2836” memiliki
nomor tengah “198” dan digit pertama-nya adalah ‘1’ dan digit terakhir ‘8’)
SELECT CONCAT(LEFT(nama_depan,4),LEFT(SUBSTR(alamat,(INSTR(alamat,' ')
+1)),INSTR(alamat,' ')+1)) AS 'Nama Gabungan' FROM customer
-> WHERE SUBSTR(nomor_telepon, 5,3) LIKE '1%' OR SUBSTR(nomor_telepon, 5,3)
LIKE '%7';

15. Mr. Eka Harsono sangat menyukai string. Dia sedang mendalami materi hashing.
Hashing merupakan pengubahan suatu data menjadi data lain. Metode hashing yang
digunakan adalah
sebagai berikut:
a. Buat kalimat menjadi lowercase semua (“Nasi Goreng Cinta menjadi “nasi
goreng cinta”)
b. Ambil 2 huruf pertama dan 3 huruf terakhir dan buang leading space atau
trailing space jika
ada (“nasi goreng cinta” menjadi “nanta”)
c. Tambahkan kebalikan dari hasil B ke hasil B (“nanta” menjadi “nantaatnan”)
Data hashing yang ditampilkan adalah data menu yang berjenis makanan.
SELECT LOWER(TRIM(CONCAT(LEFT(nama_menu,2),
RIGHT(nama_menu,3),REVERSE(CONCAT(LEFT(nama_menu,2), RIGHT(nama_menu,3)))))) AS
'Hashing'
-> FROM menu WHERE jenis_menu = 'Makanan';

16. Pak Bagong ingin menyembunyikan gaji dari satiap karyawan. Metode yang dia
gunakan adalah sebagai berikut:
a. Untuk satuan 200.000 di-representasikan dengan ‘$’ contoh: ‘$$$$$’ =
1.000.000
b. Ditambahkan dengan sisanya untuk satuan 10.000 yang di-representasikan
dengan ‘#’
contoh: ‘#####’ = 50.000
Contoh akhir: ‘$$$$$##’ = (5*200.000)+(2*10.000) = 1.200.000
SELECT CONCAT(nama_depan, ' ', nama_belakang) AS 'Nama',
CONCAT(LPAD('',FLOOR(gaji/200000),'$'), LPAD('',MOD(gaji,200000)/10000,'#')) AS
'Gaji'
-> FROM employee WHERE NOT nama_belakang = 'NULL';

You might also like