Anda di halaman 1dari 10

Tugas Kelompok ke-3

(Minggu 8 / Sesi 12)

Arighi Yuskowanastra Evi Tarani Ayustina Marya Delima Simanjuntak

Husnul Fikri Ryan Ismail Adnan Bayu Aji

Pada tugas kelompok 2 ini Anda akan diberikan beberapa soal dan gambarkan dalam bentuk
ER Modelnya.

ER Model
Diketahui data dumpsql dari suatu database sebagai berikut:
CREATE DATABASE TK3;

-- Database: `TK3`

--

Introduction to Database System


-- --------------------------------------------------------

--

-- Table structure for table `bagian`

--

CREATE TABLE IF NOT EXISTS `bagian` (

`id_bagian` int(8) NOT NULL AUTO_INCREMENT,

`nama_bagian` varchar(16) NOT NULL,

PRIMARY KEY (`id_bagian`),

UNIQUE KEY `nama_bagian` (`nama_bagian`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

-- --------------------------------------------------------

--

-- Table structure for table `barang`

--

CREATE TABLE IF NOT EXISTS `barang` (

`id_barang` int(16) NOT NULL AUTO_INCREMENT,

`nama_barang` varchar(32) NOT NULL,

PRIMARY KEY (`id_barang`),

UNIQUE KEY `nama_barang` (`nama_barang`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

--

-- --------------------------------------------------------

--

-- Table structure for table `pegawai`

--

CREATE TABLE IF NOT EXISTS `pegawai` (

`id_pegawai` int(16) NOT NULL AUTO_INCREMENT,

`username` varchar(32) NOT NULL,

`password` varchar(16) NOT NULL,

`nama_pegawai` varchar(32) NOT NULL,

`alamat_pegawai` varchar(64) NOT NULL,

`hp_pegawai` varchar(16) NOT NULL,

`id_bagian` int(8) NOT NULL,

Introduction to Database System


PRIMARY KEY (`id_pegawai`),

UNIQUE KEY `username` (`username`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

-- --------------------------------------------------------

--

-- Table structure for table `pemesanan`

--

CREATE TABLE IF NOT EXISTS `pemesanan` (

`id_pesanan` int(16) NOT NULL AUTO_INCREMENT,

`nama_pemesan` varchar(32) NOT NULL,

`id_barang` int(16) NOT NULL,

`jumlah_pesanan` varchar(16) NOT NULL,

`proses` tinyint(1) NOT NULL DEFAULT '0',

PRIMARY KEY (`id_pesanan`),

UNIQUE KEY `id_pesanan` (`id_pesanan`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

-- --------------------------------------------------------

--

-- Table structure for table `pengambilan`

--

CREATE TABLE IF NOT EXISTS `pengambilan` (

`id_pengambilan` int(16) NOT NULL AUTO_INCREMENT,

`nama_pengambil` varchar(32) NOT NULL,

`id_barang` int(16) NOT NULL,

`jumlah_pengambilan` varchar(16) NOT NULL,

PRIMARY KEY (`id_pengambilan`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

--

-- Table structure for table `produksi`

--

CREATE TABLE IF NOT EXISTS `produksi` (

`id_produksi` int(16) NOT NULL AUTO_INCREMENT,

`id_pesanan` int(16) NOT NULL,

Introduction to Database System


`id_barang` int(16) NOT NULL,

`jumlah_produksi` varchar(16) NOT NULL,

`lead_time` varchar(4) NOT NULL,

PRIMARY KEY (`id_produksi`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

Kerjakan dalam bentuk SQL dari perintah-perintah berikut ini! Dan berikan screenshot
hasilnya.

Introduction to Database System


1. Masukkan Source Code SQL tersebut ke dalam DBMS.

Introduction to Database System


2. Masukkan pada tabel bagian berupa data: (anda diperbolehkan memberikan nama
alias)
a. Administrator
b. Penerima pesanan
c. Order ke Produksi
d. Penerimaan Gudang
e. Pengiriman ke pemesan
f. Manager

Query

Result

3. Buatlah hak akses untuk


a. administrator mendapatkan seluruh akses

Introduction to Database System


b. penerima pesanan: hanya input data pesanan dan menambahkan barang baru

c. order ke produksi: hanya menambahkan input order ke produksi (produsen) dan


update pesanan

d. penerimaan gudang: menerima barang dari produsen untuk disimpan di Gudang


sebagai stok

e. pengiriman ke pemesan: mengirimkan barang sesuai pesanan dan update stok

Introduction to Database System


f. manager: input data barang baru dan melihat laporan dari keseluruhan transaksi

4. Implementasikan SQL berikut ini dan berikan komentar, apa kelemahan SQL tersebut
dan bagaimana membuatnya menjadi lebih efektif dan effisien!

SELECT
barang.nama_barang,
ROUND(STDDEV(jumlah_pesanan), 3) AS
s_order,
ROUND(
AVG(pemesanan.jumlah_pesanan),
3
) AS mean_order,
ROUND(STDDEV(jumlah_produksi), 3) AS
s_demand,
ROUND(
AVG(produksi.jumlah_produksi),
3
) AS mean_demand,
ROUND(
(
STDDEV(jumlah_pesanan) /
AVG(jumlah_pesanan)
),
3
) AS cv_order,
ROUND(
(
STDDEV(jumlah_produksi) /
AVG(jumlah_produksi)
),
3
) AS cv_demand,
ROUND(
(
(

STDDEV(jumlah_pesanan) / AVG(jumlah_pesanan)
) / (

STDDEV(jumlah_produksi) / AVG(jumlah_produksi)
)
),
3
) AS BE,

Introduction to Database System


produksi.lead_time,
ROUND(
(
1 + ((2 *
produksi.lead_time) / 30) + (
(2 *
produksi.lead_time ^ 2) / (30 ^ 2)
)
),
3
) AS parameter,
ROUND(
(
(

STDDEV(jumlah_pesanan) / AVG(jumlah_pesanan)
) / (

STDDEV(jumlah_produksi) / AVG(jumlah_produksi)
)
) > 1 + ((2 * produksi.lead_time)
/ 30) + (
(2 * produksi.lead_time ^
2) / (30 ^ 2)
),
3
) AS Bullwhip_Effect
FROM
barang
INNER JOIN pemesanan ON
pemesanan.id_barang = barang.id_barang
INNER JOIN produksi ON
produksi.id_barang = pemesanan.id_barang
GROUP BY
barang.nama_barang,
produksi.lead_time;

Result

Analisa
1. Diperlukan Alias untuk mengubah nama kolom menjadi nama kolom yang
interaktif dan komunikatif seperti nama_barang menjadi ‘Nama Barang’
2. Membuat pembulatan dibelakang koma hanya pada beberapa angka yang
dibutuhkan saja seperti koefisien variabel yang membutuhkan detail koma, selain
itu seharusnya tanpa ada pembulatan koma karena berbentuk barang.
3. Adanya 2 kali kolom dengan informasi sama yaitu BE dan Bullwhip Effect, maka
dihapus salah satu untuk menghilangkan redundansi informasi

Query

Introduction to Database System


Result

---oOo---

Introduction to Database System

Anda mungkin juga menyukai