MEMBUAT DATABASE BENGKEL


Berikut adalah desain dari database bengkel yang sudah saya buat

1. Membuat database dengan nama bengkel
SQL :

CREATE DATABASE bengkel;

2. 


Membuat tabel database dengan nama m_part yang berisi kolom :
id : int(11)
kode : varchar(45)
nama : varchar(45)
stok : varchar(45)
harga : varchar(45)

SQL :

CREATE TABLE m_part (

  id INT(11) AUTO_INCREMENT,
  kode VARCHAR(45),
  nama VARCHAR(45),
  stok VARCHAR(45),
  harga VARCHAR(45),
  PRIMARY KEY (id)
);

3. 



Membuat tabel database dengan nama m_customer yang berisi kolom :
id : int(11)
no_customer : varchar(45)
nama : varchar(45)

SQL : 

CREATE TABLE m_customer (
  id INT(11) AUTO_INCREMENT,
  no_customer VARCHAR(45),
  nama VARCHAR(45),
  PRIMARY KEY (id)
);

4. 


Membuat tabel database dengan nama m_jasa yang berisi kolom :
id : int(11)
kode : varchar(45)
nama : varchar(45)
harga : varchar(45)

SQL : 

CREATE TABLE m_jasa (
  id INT(11) NOT NULL AUTO_INCREMENT,
  kode VARCHAR(45) NOT NULL,
  nama VARCHAR(45) NOT NULL,
  harga VARCHAR(45) NOT NULL,
  PRIMARY KEY (id)
);

4. 



Membuat tabel database dengan nama t_servis_detail_jasa yang berisi kolom :
id : int(11)
qty : varchar(45)
total_harga : varchar(45)
id_jasa : int(11)
id_t_servis_header : int(11)

SQL : 

CREATE TABLE t_servis_detail_jasa (
  id INT(11) AUTO_INCREMENT,
  qty VARCHAR(45),
  total_harga VARCHAR(45),
  id_jasa int(11),
  id_t_servis_header int(11),
  PRIMARY KEY (id)
);

5.



Membuat tabel database dengan nama t_servis_detail_part yang berisi kolom :
id : int(11)
qty : varchar(45)
total_harga : varchar(45)
id_part : int(11)
id_t_servis_header : int(11)

SQL : 

CREATE TABLE t_servis_detail_jasa (
  id INT(11) AUTO_INCREMENT,
  qty VARCHAR(45),
  total_harga VARCHAR(45),
  id_part int(11),
  id_t_servis_header int(11),
  PRIMARY KEY (id)
);

6.



Membuat tabel database dengan nama t_servis_header yang berisi kolom :
id : int(11)
kode_transaksi : varchar(45)
waktu_transaksi : datetime
total_harga : varchar(45)
id_customer : int(11)

SQL : 

CREATE TABLE t_servis_header (
  id INT(11) AUTO_INCREMENT,
  kode_transaksi VARCHAR(45),
  waktu_transaksi DATETIME,
  total_harga VARCHAR(45),
  id_customer int(11),
  PRIMARY KEY (id)
);

7. Berikan relasi pada :

1. Pada tabel t_servis_detail_part :
id_part -> id pada tabel m_part
id_t_servis_header -> id pada tabel t_servis_header

SQL :

ALTER TABLE t_servis_detail_part
ADD FOREIGN KEY (id_part) REFERENCES m_part(id),
ADD FOREIGN KEY (id_t_servis_header) REFERENCES t_servis_header(id);

2. Pada t_servis_header :
id_customer -> id pada tabel m_customer

SQL : 

ALTER TABLE t_servis_header
ADD FOREIGN KEY (id_customer) REFERENCES m_customer(id);

3. Pada t_servis_detail_jasa :
id_jasa -> id pada tabel m_jasa
id_t_servis_header -> id pada tabel t_servis_header

SQL :

ALTER TABLE t_servis_detail_jasa
ADD FOREIGN KEY (id_jasa) REFERENCES m_jasa(id),
ADD FOREIGN KEY (id_t_servis_header) REFERENCES t_servis_header(id);

No. 1 Ganjil Soal Basis Data


Jawab No.1 Ganjil Join :
SQL : 

SELECT
  tsdp.id,
  tsdp.qty,
  tsdp.total_harga,
  mp.kode,
  mp.nama,
  mc.nama
FROM  
  t_servis_detail_part tsdp
JOIN
  m_part mp ON tsdp.id_part = mp.id
JOIN
  t_servis_header tsh ON tsdp.id_t_servis_header = tsh.id
JOIN
  m_customer mc ON tsh.id_customer = mc.id;


Jawab No.2 Ganjil Trigger : 
SQL :

Sebelum menambahkan data pada t_detail_part maka perintahnya adalah mengubah data stok pada tabel m_part di kurangi dengan jumlah data qty pada t_detail_part yang baru di tambahkan

UPDATE m_part
SET m_part.stok = m_part.stok-new.qty
WHERE m_part.id = new.id_part;


Contoh : 
Sebelum Menambahkan Data :



Setelah Membahkan data pada t_detail_part dengan qty 4, maka pada tabel m_part yang awal stok nya ada 9 maka akan di kurangi 4 menjadi 5 :











Komentar

Postingan populer dari blog ini

TABEL JOIN SQL

ROUTINES PROCEDURE

REFLEKSI TRIGGER