Anda di halaman 1dari 102

LAPORAN RESMI AKHIR

PRAKTIKUM BASIS DATA 2

Disusun oleh :

NAMA : SATRIA BAYU SETA


KELOMPOK : B1
JURUSAN : TEKNIK INFORMATIKA
DOSEN PENGAMPU : RIKA YUNITARINI, ST.,MT
ASPRAK : AZZA DEVI MANZILIA

LABORATORIUM COMMON COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016
LEMBAR PENGESAHAN PRAKTIKUM
BASIS DATA 2
LABORATORIUM COMMON COMPUTING

NAMA : SATRIA BAYU SETA


NRP : 140411100125
KELAS :B
KELOMPOK : B1
Dengan rincian kegiatan praktikum :
Paraf
No Hari/ Tanggal Modul
Asisten
1 Selasa, 5 April 2016 Perancangan Basis Data

2 Selasa, 19 April 2016 Mengenal DDL dan DML


Mengenal UNION, JOIN dan
3 Selasa, 3 Mei 2016
View
Mengenal Stored Procedure dan
4 Selasa,17 Mei 2016
Trigger
Melakukan Koneksi dari Web ke
5 Selasa, 31 Mei 2016
Database
Pengembangan Sistem Informasi
6 Selasa, 14 Juni 2016
Sederhana berbasis Web

Nilai Akhir : ________________


Bangkalan, 18 Juni 2016
Mengetahui,
Dosen Pengampu, Koordinator Praktikum

Rika Yunitarini, ST.,MT Abdul Suroso


NIP. 19830607 200604 2 001 NIM. 130411100024KATA
PENGANTAR

Puji syukur saya panjatkan kehadirat Tuhan Yang Maha Esa yang telah
memberikan rahmat dan karunia-Nya sehingga kami dapat melaksanakan
sebuah praktikum dan menyelesaikannya dengan baik hingga menjadi sebuah
laporan praktikum.
Dalam proses penyelesaian laporan ini, penulis banyak menerima
bantuan, dukungan serta bimbingan dari berbagai pihak. Oleh karena itu, pada
kesempatan kali ini penulis ingin menyampaikan rasa terima kasih kepada :
1. Ibu Rika Yunitarini, ST.,MT Dosen pengampu Basis Data 2
2. Azza Devi Manzilia , selaku Asisten praktikum 1
3. Annisa Ulfa, selaku asisten praktikum 2
4. Serta teman-teman kelas B yang telah membantu dan memberikan
motivasi kepada penulis
Penulis hanya bisa berharap semoga laporan ini memberikan manfaat
dan dapat menambah pengetahuan bagi para pembaca. Kami menyadari
sebagai manusia tidak luput dari kekurangan. Oleh karena itu , kami
menerima kritik dan saran dari pembaca demi perbaikan menuju arah yang
lebih baik.

Bangkalan, 18 Juni 2016

Penulis

DAFTAR ISI

LEMBAR PENGESAHAN PRAKTIKUM...................................................


KATA PENGANTAR.....................................................................................
DAFTAR ISI..................................................................................................
LAPORAN
MODUL 1 .................................................................................................
MODUL 2..................................................................................................
MODUL 3..................................................................................................
MODUL 4..................................................................................................
MODUL 5..................................................................................................
MODUL 6..................................................................................................
PENUTUP PRAKTIKUM.............................................................................
DAFTAR RIWAYAT HIDUP.........................................................................

LAPORAN RESMI
PRAKTIKUM BASIS DATA 2

MODUL I
PERANCANGAN BASIS DATA
Disusun Oleh :
TGL. PRAKTIKUM : 5 April 2015
NAMA TELAH DISETUJUI
: Satria Bayu SetaTANGGAL :
NRP ...........................................
: 140411100125
KELOMPOK ASISTEN
: B1 PRAKTIKUM
DOSEN : Rika Yunitarini.ST.,MT

Azza Devi Manzilia


(120411100110)

LABORATORIUM COMMON COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016
BAB I
PENDAHULUAN

1.1. Latar Belakang


Basis data adalah kumpulan informasi yang disimpan di dalam komputer
secara sistematik sehingga dapat diperiksa menggunakan suatu program
komputer untuk memperoleh suatu informasi dari database tersebut.
Perangkat lunak yang digunakan untuk mengolah dan mengambil query basis
data disebut sistem manajement basis data(Data Base Management System
atau DBMS). Pemrosesan basis data sebagai perangkat andalan sangat
diperlukan oleh berbagai institusi dan perusahaan. Dalam pengembangan
sistem informasi diperlukan basis data sebagai media penyimpanan data.
Kehadiran basis data dapat meningkatkan daya saing perusahaan tersebut.
Basis data dapat mempercepat upaya pelayanan kepada pelanggan,
menghasilkan informasi dengan cepat dan tepat sehingga membantu
pengambilan keputusan untuk segera memutuskan suatu masalah berdasaran
informasi yang ada.
Proses perancangan database sangatlah diperlukan dalam mengumpulkan
informasi, oleh karena itu diperlukan tahap perancangan database yang baik
untuk membuat suatu sistem. Pada praktikum kali ini akan dibahas bagaimana
merancang database yang baik.

1.2. Tujuan
Tujuan dari Praktikum Basis Data 2 Modul 1 antara lain:
1. Mahasiswa mampu menjelaskan konsep basis data relasional
2. Mahasiswa mampu menjelaskan perancangan pada level konsep dan
level fisik
3. Mahasiswa mampu melakukan normalisasi 1 NF, 2 NF, 3 NF
4. Mahasiswa mampu membuat perancangan ERD dari studi kasus yang
diberikan
BAB II
DASAR TEORI
2.1 Materi
Konsep Basis Data dan Perancangannya
DBMS (Database Management System) merupakan perangkat lunak
yang didisain untuk melakukan penyimpanan dan pengaturan basis
data. Selain itu, DBMS jugamenerapkan mekanisme pengamanan data,
pemakaian data secara bersama, beberapa batasan untuk menjaga
keakuratan data. DBMS diperlukan untuk :
a) Independensi data dan akses yang efisien
b) Mereduksi waktu pengembangan aplikasi
c) Integritas dan keamanan data
d) Administrasi keseragaman data
e) Menangani adanya akses data secara bersamaan (concurrency locking)
f) Melakukan backup dan recovery data apabila diperlukan.
Oleh karena itu, keberadaan DBMS adalah sangat penting dalam sebuah
Sistem Informasi.
Data merupakan fakta mengenai suatu objek seperti manusia, benda,
peristiwa,konsep, keadaan dan sebagainya yang dapat dicatat dan
mempunyai arti secara implisit. Data dapat dinyatakan dalam bentuk
angka, karakter atau simbol. sehingga bila data dikurnpulkan dan saling
berhubungan maka dikenal dengan istilah basis data (database).
Basis data merupakan kumpulan informasi bermanfaat yang
diorganisasikan ke dalam aturan yang khusus. Informasi ini adalah data
yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan
seseorang. Metodologi perancangan basis data adalah kumpulan teknik
terorganisasi untuk pembuatan rancangan basis data. Teknik terorganisasi
ini merupakan kumpulan tahap- tahapan yang memiliki aturan-aturan
terurut. Teknik yang digunakan pada perancangan basis data dibagi
menjadi ada 3 yaitu:
1. Pemodelan data secara konseptual (CDM: Conceptual Data
Modelling)
2. Pemodelan data secara logis (Data Model Mapping)
3. Pemodelan data secara fisik (PDM: Physical Data Modelling)
Membangun rancangan data secara konseptual dimulai dengan
mengidentifikasikan himpunan entitas entitas , keterhubungan antar
entitas (relationship), atribut-atribut padaentitas, menentukan atribut-
atribut candidate key dan primary key,
melakukanspesialisasi/generalisasi, dan menggambarkan ERD (Entity
Relationship Diagram) ataupu CDM (Conceptual Data Model).
Membangun rancangan secara logis adalah dengan melakukan pemetaan
model datakonsep ke model data logik, melakukan turunan relasi-relasi
dari model data logik, validasi model menggunakan normalisasi,
validasi model berdasarkan transaksi - transaksi pemakai,
menggambarkan ER nya, mendefinisikan integrity constraint yang
digunakan.
Membangun rancangan secara fisik adalah dengan menerjemahkan
model data logis untuk DBMS yang ditentukan, yaitu dengan merancang
relasi-relasi basis untuk DBMS target, merancang aturan-aturan
integritas sesuai dengan yang ada pada DBMS yang ditentukan.
Hubungan diantara ketiga pemodelan data tersebut dapat kita lihat pada
diagram dibawah ini.
Gambar 1. Diagram untuk menunjukkan hubungan antar pemodelan data [1]
BAB III
TUGAS PENDAHULUAN

3.1 Soal
1. Jelaskan dan beri contoh tentang :
Simple/atomic attribute dan Composite Attribute
Single-valued attribute dan Multi-valued attribute
Stored attribute dan Derived attribute
2. Jelaskan tentang referential integrity constraint, dan sebut dan jelaskan
jenis jenisnya!
3. Jelaskan tentang rasio kardinalitas, tunjukkan dengan gambar!
4. Jelaskan perbedaan pemodelan data secara konseptual dan fisik!
5. Sebuah koperasi siswa (KOPSIS) melayani penjualan ATK, kebutuhan
sekolah, minuman serta snack kepada siswa. Dalam menjalankan
usahanya, KOPSIS melakukan pembelian barang kepada pemasok
dengan menggunakan faktur pembelian barang. Rancang model relasi
antar entitas sesuai dengan form faktur pemesanan barang berikut ini
dengan menggunakan normalisasi 1NF, 2NF dan 3NF.
6. Selain penjualan dan pemesanan barang, KOPSIS juga memiliki data
stok barang yang tersedia, harga pembelian barang, dan harga penjualan.
Lengkapi perancangan yang dibuat pada no 1 berdasarkan penjelasan
diatas sehingga menjadi CDM. Generate PDM dan script databasenya.
Asumsi yang digunakan adalah sebagai berikut:
a. Pemesanan barang umumnya menggunakan satuan lusin, dus, pak,
dst. Yang sesuai untuk masing masing jenis barang. Sedangkan
penjualan barang menggunakan satuan pc karena KOPSIS
merupakan kategori retailer. Akan tetapi, dalam tugas ini,
diasumsikan bahwa semua satuan barang adalah sama. Sebagai
contoh: diakukan transaksi pembelian Aqua gelas 220 ml sejumlah
48 pc, Aqua botol 350 ml sejumlah 24 pc, sehingga tidak
dinyatakan dalam satuan dus maupun lusin.
b. Harga pembelian barang kepada supplier, utk beberapa barang
kadang bervariasi ketika dilakukan pembelian pada waktu yang
berbeda. Contohnya adalah harga Aqua gelas 220 ml pada bulan
Januari dan bulan Februari berbeda, karena ada fluktuasi harga.
Akan tetapi dalam tugas ini, diasumsikan bahwa suatu barang
dengan kode barang yang sama memiliki harga beli dan harga jual
yang tetap. Jika terdapat perubahan harga beli, maka barang
tersebut disimpan dengan kode barang yang berbeda.

3.2 Jawab
1. Penjelasan dan contoh attribute :
Simple/atomic attribute dan Composite Attribute
Atribut sederhana/ Simple Attribute adalah atribut yang tidak dapat
dibagi-bagi menjadi atribut yang lebih mendasar.
Contoh : atribut harga dari entity barang.
Atribut komposit/ Composite Attribute : atribut yang terdiri dari
beberapa atribut yang lebih mendasar.
Contoh : Entity mahasiswa memiliki atribut nama yang terdiri dari
nama depan (first name), nama tengah (middle name) dan nama
belakang (last name).

Single-valued attribute dan Multi-valued attribute


Atribut Berharga Tunggal (Single-valued Attribute) : atribut yang
hanya mempunyai satu harga untuk suatu entitas tertentu.
Contoh : atribut umur.
Atribut Berharga Banyak (Multi-valued Attribute) : atribut yang dapat
terdiri dari sekumpulan harga untuk suatu entitas tertentu.
Contoh : atribut hobi.

Stored attribute dan Derived attribute


Stored atribut: atribut yang tidak perlu dan tidak bisa diturunkan
Derived atribut: atribut yang merupakan turunan dari atribut induk
(sebenarnya dapat ditiadakan karena tidak begitu perlu).
Contoh:
Mahasiswa: {nim, nama, alamat, angkatan}
Angkatan -> derived atribut dari nim

2. Referential integrity constraint adalah aturan untuk relasi antar tabel


untuk menjamin validasi hubungan antar record didalam tabel-tabel
yang terkait.

a. Aturan untuk Update :


Cascade : update dari sebuah baris diikuti oleh update pada tabel
yang berelasi.
Restrict : mencegah update jika ada baris yang berelasi.
Ignore : mengabaikan referensi. Boleh update pada tabel parent
tetapi tabel child tidak update.
b. Aturan untuk Delete :
Cascade : menghapus seluruh baris data pada tabel yang berelasi.
Restrict : mencegah penghapusan data jika ada baris data yang
berelasi.
Ignore : boleh menghapus data, tetapi tidak berpengaruh pada
tabel lain yang berelasi.
c. Aturan untuk Insert :
Restrict : tidak boleh menambah data pada tabel child jika nilai
yang dimasukkan pada kolom yang berelasi tidak terdapat pada
tabel parent.
Ignore : boleh menambah data pada tabel child meskipun nilai
yang dimasukkan pada kolom yang berelasi tidak terdapat pada
tabel parent-nya.

3. Kardinalitas pemetaan atau rasio kardinalitas menunjukkan jumlah


entitas yang dapat dihubungkan ke satu entity lain dengan suatu
relasi. Kardinalitas pemetaan meliputi :
Hubungan satu ke satu (one to one).
Yaitu satu entity dalam A dihubungkan dengan maksimum satu
entity dalam B.
Hubungan satu ke banyak (one to many)
Yaitu satu entity dalam A dihubungkan dengan sejumlah entity
dalam B. Satu entity dalam B dihubungkan dengan maksimum
satu entity dalam A.
Hubungan banyak ke satu (many to one)
Yaitu satu entity dalam A dihubungkan dengan maksimum satu
entity dalam B. Satu entity dalam B dapat dihubungkan dengan
sejumlah entity dalam A.
Hubungan banyak ke banyak (many to many).
Satu entity dalam A dihubungkan dengan sejumlah entity
dalam B, dan satu entity dalam B dihubungkan dengan
sejumlah entity dalam A.
4. Model data fisik yaitu konsep bagaimana data disimpan pada media
penyimpanan (storage) dalam suatu susunan secara fisik. Sedangkan
model konseptual merupakan kombinasi beberapa cara untuk
memproses data dalam beberapa aplikasi. Model konseptual tidak
tergantung pada aplikasi individual, tidak tergantung pada DBMS
yang digunakan, tidak tergantuk pada hardware yang digunakan serta
tidak tergantung juga pada phisikal model.
5. Unnormalized
No. Tgl Kode Nama Qt Harga Total Kode Nama Alamat Kota
Fakt Fakt Barang Barang y Satua Suppli Supplie Supplie Supplier
ur ur n er r r
FPS 05- ATK01 Buku 12 Rp. Rp. S0001 Ahmad Perak Surabaya
05 Jan- Tulis 1.300 15.600 Rifai Timur
15 SIDU III - 10
38lbr
ATK02 Buku 12 Rp. Rp.
Tulis 3.300 39.600
SIDU
64lbr
FPS 06- MNM0 Aqua 48 Rp. Rp. S0002 Irwans Telang Bangkalan
06 Feb- 1 Gelas 500 24.000 yah Indah 1
15 220 ml A-5
MNM0 Aqua 12 Rp. Rp.
2 botol 2.500 30.000
300 ml
MNM0 Aqua 12 Rp. Rp.
3 botol 4.500 54.000
1000
ml
FPS 10- MNM0 Teh 48 Rp. Rp. S0003 Hanum Telang Bangkalan
07 Feb- 4 pucuk 3.500 168.00 Salsabil Asri C-
15 Harum 0 a 15
300 ml

First Normalized 1NF


No. Tgl Kode Nama Qt Harga Total Kode Nama Alamat Kota
Fakt Fakt Barang Barang y Satua Suppli Supplie Supplier Supplier
ur ur n er r
FPS 05- ATK01 Buku 12 Rp. Rp. S0001 Ahmad Perak Surabaya
05 Jan- Tulis 1.300 15.600 Rifai Timur III
15 SIDU - 10
38lbr
FPS 05- ATK02 Buku 12 Rp. Rp. S0001 Ahmad Perak Surabaya
05 Jan- Tulis 3.300 39.600 Rifai Timur III
15 SIDU - 10
64lbr
FPS 06- MNM0 Aqua 48 Rp. Rp. S0002 Irwans Telang Bangkala
06 Feb- 1 Gelas 500 24.000 yah Indah 1 n
15 220 ml A-5
FPS 06- MNM0 Aqua 12 Rp. Rp. S0002 Irwans Telang Bangkala
06 Feb- 2 botol 2.500 30.000 yah Indah 1 n
15 300 ml A-5
FPS 06- MNM0 Aqua 12 Rp. Rp. S0002 Irwans Telang Bangkala
06 Feb- 3 botol 4.500 54.000 yah Indah 1 n
15 1000 A-5
ml
FPS 10- MNM0 Teh 48 Rp. Rp. S0003 Hanum Telang Bangkala
07 Feb- 4 pucuk 3.500 168.00 Salsabil Asri C- n
15 Harum 0 a 15
300 ml

Second Normalized 2NF


Tabel Struk / Faktur
No. Tgl Kode Qt Harga Total Kode
Faktu Faktur Baran y Satua Suppli
r g n er
FPS0 05- ATK0 12 Rp. Rp. S0001
5 Jan- 1 1.300 15.600
15
FPS0 05- ATK0 12 Rp. Rp. S0001
5 Jan- 2 3.300 39.600
15
FPS0 06- MNM 48 Rp. Rp. S0002
6 Feb- 01 500 24.000
15
FPS0 06- MNM 12 Rp. Rp. S0002
6 Feb- 02 2.500 30.000
15
FPS0 06- MNM 12 Rp. Rp. S0002
6 Feb- 03 4.500 54.000
15
FPS0 10- MNM 48 Rp. Rp. S0003
7 Feb- 04 3.500 168.000
15
Tabel Barang
Kode Nama Barang Harga
Barang Satuan
ATK01 Buku Tulis SIDU 38lbr Rp. 1.300
ATK02 Buku Tulis SIDU 64lbr Rp. 3.300
MNM01 Aqua Gelas 220 ml Rp. 500
MNM02 Aqua botol 300 ml Rp. 2.500
MNM03 Aqua botol 1000 ml Rp. 4.500
MNM04 Teh pucuk Harum 300 Rp. 3.500
ml

Tabel Supplier
Kode Nama Supplier Alamat Supplier Kota
Supplie Supplier
r
S0001 Ahmad Rifai Perak Timur III - Surabaya
10
S0002 Irwansyah Telang Indah 1 A- Bangkalan
5
S0003 Hanum Telang Asri C-15 Bangkalan
Salsabila

Third Normalized 3NF


Tabel Struk / Faktur
No. Tgl Faktur Qt Harga Total
Faktur y Satuan
FPS05 05-Jan-15 12 Rp. 1.300 Rp. 15.600
FPS05 05-Jan-15 12 Rp. 3.300 Rp. 39.600
FPS06 06-Feb-15 48 Rp. 500 Rp. 24.000
FPS06 06-Feb-15 12 Rp. 2.500 Rp. 30.000
FPS06 06-Feb-15 12 Rp. 4.500 Rp. 54.000
FPS07 10-Feb-15 48 Rp. 3.500 Rp. 168.000
Tabel Transaksi
No. Kode Qt Harga Total Kode
Faktu Barang y Satuan Supplie
r r
FPS0 ATK01 12 Rp. Rp. 15.600 S0001
5 1.300
FPS0 ATK02 12 Rp. Rp. 39.600 S0001
5 3.300
FPS0 MNM0 48 Rp. 500 Rp. 24.000 S0002
6 1
FPS0 MNM0 12 Rp. Rp. 30.000 S0002
6 2 2.500
FPS0 MNM0 12 Rp. Rp. 54.000 S0002
6 3 4.500
FPS0 MNM0 48 Rp. Rp. 168.000 S0003
7 4 3.500

Tabel Barang
Kode Nama Barang Harga
Barang Satuan
ATK01 Buku Tulis SIDU 38lbr Rp. 1.300
ATK02 Buku Tulis SIDU 64lbr Rp. 3.300
MNM01 Aqua Gelas 220 ml Rp. 500
MNM02 Aqua botol 300 ml Rp. 2.500
MNM03 Aqua botol 1000 ml Rp. 4.500
MNM04 Teh pucuk Harum 300 Rp. 3.500
ml

Tabel Supplier
Kode Nama Supplier Alamat Supplier Kota
Supplier Supplier
S0001 Ahmad Rifai Perak Timur III - Surabaya
10
S0002 Irwansyah Telang Indah 1 A- Bangkalan
5
S0003 Hanum Telang Asri C-15 Bangkalan
Salsabila
6. CDM
barang
kode_barang <pi> Variable characters (10) <M>
nama_barang Variable characters (50)
harga_barang Integer
Identifier_1 <pi>

0,n

transaksi
quantity Integer
tanggal Date

0,n

Faktur
No_faktur <pi> Variable characters (10) <M> pembelian
total Integer supplier
Identifier_1 <pi> kode_supplier <pi> Variable characters (10) <M>
nama_supplier Variable characters (50)
alamat_supplier Variable characters (50)
kota_supplier Variable characters (20)
Identifier_1 <pi>

PDM
barang
kode_barang varchar(10) <pk>
nama_barang varchar(50)
harga_barang int

transaksi
No_faktur varchar(10) <pk,fk2>
kode_barang varchar(10) <pk,fk1>
quantity int
tanggal date

Faktur
No_faktur varchar(10) <pk>
supplier
kode_supplier varchar(10) <fk>
total int kode_supplier varchar(10) <pk>
nama_supplier varchar(50)
alamat_supplier varchar(50)
kota_supplier varchar(20)

drop table if exists BARANG;

drop table if exists FAKTUR;

drop table if exists SUPPLIER;

drop table if exists TRANSAKSI;

/
*======================================================
========*/
/* Table: BARANG */
/
*======================================================
========*/
create table BARANG
(
KODE_BARANG varchar(10) not null,
NAMA_BARANG varchar(50),
HARGA_BARANG int,
primary key (KODE_BARANG)
);
/
*======================================================
========*/
/* Table: FAKTUR */
/
*======================================================
========*/
create table FAKTUR
(
NO_FAKTUR varchar(10) not null,
KODE_SUPPLIER varchar(10),
TOTAL int,
primary key (NO_FAKTUR)
);

/
*======================================================
========*/
/* Table: SUPPLIER */
/
*======================================================
========*/
create table SUPPLIER
(
KODE_SUPPLIER varchar(10) not null,
NAMA_SUPPLIER varchar(50),
ALAMAT_SUPPLIER varchar(50),
KOTA_SUPPLIER varchar(20),
primary key (KODE_SUPPLIER)
);

/
*======================================================
========*/
/* Table: TRANSAKSI */
/
*======================================================
========*/
create table TRANSAKSI
(
NO_FAKTUR varchar(10) not null,
KODE_BARANG varchar(10) not null,
QUANTITY int,
TANGGAL date,
primary key (NO_FAKTUR, KODE_BARANG)
);

alter table FAKTUR add constraint FK_PEMBELIAN foreign key


(KODE_SUPPLIER)
references SUPPLIER (KODE_SUPPLIER) on delete restrict on update
cascade;

alter table TRANSAKSI add constraint FK_TRANSAKSI foreign key


(NO_FAKTUR)
references FAKTUR (NO_FAKTUR) on delete restrict on update
cascade;

alter table TRANSAKSI add constraint FK_TRANSAKSI2 foreign key


(KODE_BARANG)
references BARANG (KODE_BARANG) on delete restrict on update
cascade;

BAB IV
IMPLEMENTASI

4.1 Tugas Praktikum


4.1.1 Soal
a. Buat perancangan studi kasus yang telah ditentukan oleh asisten
dalam bentuk CDM dan PDM.
b. Generate PDM yang telah dibuat menjadi script DDL dengan DBMS
MySQL 5

4.1.2 Jawab
1. Studi kasus Gudang Produksi

CDM
barang gudang
id_barang <pi> Integer <M> i d_gudang <pi > Integer <M>
nama_ barang Vari able characters (50) j enis_gudang Variable characters (30)
transaksi_pembel ian
satuan_barang Vari able characters (20) kuota_gudang Integer
juml ah_barang Integer kuota_tersedia Integer
exp Date Identi fier_1 <pi>
Identifi er_1 <pi >

0,n

transaksi_pemakaian
banyak_barang Integer

0,n

produksi
i d_produksi <pi> Integer <M>
nama_produksi Variabl e characters (50)
alamat_produksi Variabl e characters (50)
Identi fier_1 <pi>

PDM
barang gudang
id_barang int <pk> transaksi_pembelian
id_gudang int <pk>
nama_ barang varchar(50) id_gudang int <pk,fk2> jenis_gudang varchar(30)
satuan_barang varchar(20) id_barang int <pk,fk1> kuota_gudang int
jumlah_barang int kuota_tersedia int
exp date

transaksi_pemakaian
id_barang int <pk,fk1>
id_produksi int <pk,fk2>
banyak_barang int

produksi
id_produksi int <pk>
nama_produksi varchar(50)
alamat_produksi varchar(50)
2. Script DDL

drop table if exists BARANG;

drop table if exists GUDANG;

drop table if exists PRODUKSI;

drop table if exists TRANSAKSI_PEMAKAIAN;

drop table if exists TRANSAKSI_PEMBELIAN;

/
*===================================================
===========*/
/* Table: BARANG */
/
*===================================================
===========*/
create table BARANG
(
ID_BARANG int not null,
NAMA__BARANG varchar(50),
SATUAN_BARANG varchar(20),
JUMLAH_BARANG int,
EXP date,
primary key (ID_BARANG)
);

/
*===================================================
===========*/
/* Table: GUDANG */
/
*===================================================
===========*/
create table GUDANG
(
ID_GUDANG int not null,
JENIS_GUDANG varchar(30),
KUOTA_GUDANG int,
KUOTA_TERSEDIA int,
primary key (ID_GUDANG)
);

/
*===================================================
===========*/
/* Table: PRODUKSI */
/
*===================================================
===========*/
create table PRODUKSI
(
ID_PRODUKSI int not null,
NAMA_PRODUKSI varchar(50),
ALAMAT_PRODUKSI varchar(50),
primary key (ID_PRODUKSI)
);

/
*===================================================
===========*/
/* Table: TRANSAKSI_PEMAKAIAN */
/
*===================================================
===========*/
create table TRANSAKSI_PEMAKAIAN
(
ID_BARANG int not null,
ID_PRODUKSI int not null,
BANYAK_BARANG int,
primary key (ID_BARANG, ID_PRODUKSI)
);

/
*===================================================
===========*/
/* Table: TRANSAKSI_PEMBELIAN */
/
*===================================================
===========*/
create table TRANSAKSI_PEMBELIAN
(
ID_GUDANG int not null,
ID_BARANG int not null,
primary key (ID_GUDANG, ID_BARANG)
);

alter table TRANSAKSI_PEMAKAIAN add constraint


FK_TRANSAKSI_PEMAKAIAN foreign key (ID_BARANG)
references BARANG (ID_BARANG) on delete restrict on update
cascade;

alter table TRANSAKSI_PEMAKAIAN add constraint


FK_TRANSAKSI_PEMAKAIAN2 foreign key (ID_PRODUKSI)
references PRODUKSI (ID_PRODUKSI) on delete restrict on update
cascade;

alter table TRANSAKSI_PEMBELIAN add constraint


FK_TRANSAKSI_PEMBELIAN foreign key (ID_GUDANG)
references GUDANG (ID_GUDANG) on delete restrict on update
cascade;

alter table TRANSAKSI_PEMBELIAN add constraint


FK_TRANSAKSI_PEMBELIAN2 foreign key (ID_BARANG)
references BARANG (ID_BARANG) on delete restrict on update
cascade;

BAB V
PENUTUP

5.1 Kesimpulan
Teknik yang digunakan pada perancangan basis data dibagi menjadi ada
3 yaitu Pemodelan data secara konseptual (CDM: Conceptual Data
Modelling), Pemodelan data secara logis (Data Model Mapping) dan
Pemodelan data secara fisik (PDM: Physical Data Modelling). Masing
masing tahap dalam perancangan database ini tidak dapat dipisahkan,
masing-masing tahap mempunyai fungsi dalam sistem, jika salah satu
tahap tidak dilakukan maka kemungkinan akan terjadi kegagalan sistem
dikemudian hari.
5.2 Saran
Praktikum Basis data 2 modul 1 telah berjalan lancar dan asprak telah
menjelaskan materi dengan baik.

LAPORAN RESMI
PRAKTIKUM BASIS DATA 2

MODUL II
MENGENAL DDL DAN DML
Disusun Oleh :
TGL. PRAKTIKUM : 19 April 2016
NAMA TELAH DISETUJUI
: Satria Bayu SetaTANGGAL :
NRP ...........................................
: 140411100125
KELOMPOK ASISTEN
: B1 PRAKTIKUM
DOSEN : Rika Yunitarini.ST.,MT

Azza Devi Manzilia


(120411100110)

LABORATORIUM COMMON COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016
BAB I
PENDAHULUAN

1.1. Latar Belakang


Basis data adalah kumpulan informasi yang disimpan di dalam
komputer secara sistematik sehingga dapat diperiksa menggunakan suatu
program komputer untuk memperoleh suatu informasi dari database
tersebut. Informasi ini adalah data yang telah diorganisasikan ke dalam
bentuk yang sesuai dengan kebutuhan seseorang. Sedangkan SQL
merupakan merupakan suatu bahasa (language) yang digunakan untuk
mengakses database. Hampir semua software database mengenal atau
mengerti SQL. Jadi, perintah SQL pada semua software database hampir
sama. terdapat tiga jenis perintah SQL, yaitu DDL, DML dan DCL .
Oleh karena itu pada modul 2 ini akan dijelaskan tentang DDL,DML,
dan DCL

1.2. Tujuan
Tujuan dari Praktikum Basis Data 2 Modul 2 antara lain:
5. Mahasiswa mampu menjelaskan dan menggunakan script DDL
(create, alter, drop)
6. Mahasiswa mampu menjelaskan dan menggunakan script DML
(select, insert, update,delete)
7. Mahasiswa mampu menjelaskan script DCL (revoke, grant)
8. Mahasiswa mampu menjelaskan dan menggunakan operator
function (is [not] null,between, like, in)
BAB II
DASAR TEORI
2.1 Materi

SQL merupakan singkatan dari Structured Query Language. SQL


atau juga sering disebut sebagai query merupakan suatu bahasa
(language) yang digunakan untuk mengakses database. Hampir semua
software database mengenal atau mengerti SQL. Jadi, perintah SQL pada
semua software database hampir sama.
Terdapat 3 (tiga) jenis perintah SQL, yaitu :
1.DDL atau Data Definition Language
2.DML atau Data Manipulation Language
3.DCL atau Data Control Language

1. DDL (Data Definition Language)


DDL merupakan perintah SQL yang berhubungan dengan
pendefinisian suatu struktur database, dalam hal ini database dan table.
Beberapa perintah dasar yang termasuk DDL ini antara lain :
CREATE untuk membuat basis data dan tabel
ALTER untuk mengubah struktur tabel
RENAME untuk mengubah nama tabel
DROP untuk menghapus basis data dan table

CREATE DATABASE

Sintaks : CREATE DATABASE nama_database


Contoh : CREATE DATABASE BARANG

CREATE TABLE
Perintah ini digunakan untuk membuat tabel dalam database. Syntax:
CREATE TABLE tbl_name (
column_name data_type
[DEFAULT expr]
[column _constraint] ,
[table_constraint] );
Contoh:
Buat tabel untuk menampung data supplier:
CREATE TABLE
SUPPLIER
(KODE_SUPPLIER
CHAR(9)

NOT NULL,
NAMA_SUPPLIER
VARCHAR(50)

NOT NULL,
ALAMAT_SUPPLIER
VARCHAR(50),
KOTA_SUPPLIER
VARCHAR(50),
PRIMARY KEY (KODE_SUPPLIER));

Buat tabel pembelian yang menampung foreign key dari tabel supplier.

CREATE TABLE Pembelian (


KODE_PEMBELIAN CHAR(9)NOT NULL,
NAMA_TRANS_PEMBELIAN VARCHAR(50), TANGGAL_TRANS
DATE,
HARGA_BELI INT, QTY_BELI INT, JML_TRANS_BELI INT,
KODE_SUPPLIER CHAR(9),
PRIMARY KEY (KODE_SUPPLIER),
FOREIGN KEY (KODE_SUPPLIER)
REFERENCES SUPPLIER (KODE_SUPPLIER) ON DELETE
RESTRICT ON UPDATE CASCADE);

ALTER TABLE

Perintah ini digunakan untuk mengubah struktur tabel. Syntax:


ALTER TABLE tbl_name
alter_specification [, alter_specification];

Untuk mengubah struktur dalam tabel, terdapat tiga macam spesifikasi


perubahan (alter specification) yang dapat dilakukan, yaitu:
Menambah (Add):

Sintaks SQL untuk menambah kolom:

ADD [COLUMN] col_name column_definition [FIRST |


AFTER col_name ];

Atau :
ADD [COLUMN] (col_name column_definition,...);

a. Mengubah (Change atau Modify): Sintaks SQL untuk mengubah


kolom:

CHANGE [COLUMN] old_col_name new_col_name


column_definition
[FIRST|AFTER col_name];

Atau
MODIFY [COLUMN] col_name column_definition [FIRST
| AFTER col_name];

b. Menghapus (Drop):

Sintaks SQL untuk menghapus kolom:

DROP [COLUMN] col_name; DROP PRIMARY KEY;


DROP FOREIGN KEY fk_symbol ;

Contoh:

Tambahkan kolom KETERANGAN pada tabel SUPPLIER


dengan tipe text. Perintah:
ALTER TABLE SUPPLIER ADD KETERANGAN TEXT;

DROP DATABASE

Sintaks:

DROP DATABASE nama_database;


Contoh: Menghapus basisdata KOPSIS

DROP DATABASE KOPSIS;


DROP TABLE

Sintaks:
DROP TABLE nama_table;
Contoh: Menghapus tabel SUPPLIER
DROP TABLE SUPPLIER;

2. DML atau Data Manipulation Language


DML merupakan perintah SQL yang berhubungan dengan
manipulasi atau pengolahan data atau record dalam tabel. Manipulasi data
dapat berupa:
- Penyisipan/penambahan data baru ke suatu basisdata (INSERT)

- Pemanggilan/menampilkan data yang ada dalam basisdata (SELECT)

- Pengubahan data di suatu basis data (UPDATE)

- Penghapusan data dari suatu basisdata (DELETE)

PERINTAH INSERT

Sintaks perintah INSERT langsung:


INSERT INTO <table specification> [<column list>]
VALUES (<expression> [{,<expression>}. . . ]);

Contoh:
Masukkan data pada tabel SUPPLIER dengan isian Kode Supplier =
S0001
Nama Supplier = H. Subur
Alamat Supplier = Telang Indah Permai W-10 Kota Supplier = Bangkalan

Maka kalimat SQL yang dapat digunakan adalah sebagai berikut:

INSERT INTO SUPPLIER


(KODE_SUPPLIER,NAMA_SUPPLIER,
ALAMAT_SUPPLIER,KOTA_SUPPLIER)
VALUES('S0001','H.Subur','Telang Indah Permai W-
10','Bangkalan');

Atau
INSERT INTO SUPPLIER VALUES ('S0001','H. Subur','
Telang Indah Permai W-10','Bangkalan');

PERINTAH SELECT

SELECT satu tabel


Syntax:
SELECT field_name FROM table_name
WHERE [kondisi];

SELECT lebih dari satu tabel


SELECT
table_name1.field_name,table_name2.field
_name FROM table_name1, table_name2
WHERE [kondisi];

Contoh:
SELECT NAMA_SUPPLIER,ALAMAT_SUPPLIER FROM
SUPPLIER
WHERE KODE_SUPPLIER ='S0001';
PERINTAH UPDATE

Syntax:
UPDATE <table specification> SET <column name =
expression> [ WHERE <condition> ];

Contoh:
Ubah data supplier diatas untuk field alamat menjadi Telang Raya No.2
Bangkalan
UPDATE SUPPLIER
SET ALAMAT_SUPPLIER = 'Telang Raya
No.2 Bangkalan' WHERE KODE_SUPPLIER =
'S0001';
PERINTAH DELETE

Syntax:
DELETE
FROM <table specification> [ WHERE <condition>
]
Contoh:
Hapus data supplier diatas pada tabel SUPPLIER
DELETE FROM SUPPLIER
WHERE KODE_SUPPLIER = S0001;
3. DCL atau Data Control Language
MySQL pada dasarnya merupakan sistem database yang aman. Di
MySQL kita dapat mengatur hak akses tiap user terhadap data di
database. MySQL memungkinkan kita mengatur hak akses user terhadap
database, tabel, dan kolom. DCL merupakan perintah SQL yang
berhubungan dengan manipulasi user dan hak akses (priviledges).
GRANT
Syntax:
GRANT priv_type
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password'] [WITH
GRANT OPTION]

REVOKE

Syntax:
REVOKE priv_type
ON {tbl_name | * | *.* | db_name.*} FROM user_name

Berikut ini pilihan untuk priv_type dalam bentuk umum perintah GRANT
dan REVOKE di atas:

ALL PRIVILEGES FILE RELOAD


ALTER INDEX SELECT
CREATE INSERT SHUTDOWN
DELETE PROCESS UPDATE
DROP REFERENCES USAGE
4. FUNCTION OPERATOR
Function yang dimaksud adalah function yang telah disediakan oleh
server basisdata atau dapat juga disebut sebagai build-in-function, meski
sebenarnya function dapat dibuat sendiri oleh pemrogram.

Operator IS [NOT] NULL

Operator IS NULL digunakan untuk memilih baris dalam kolom tertentu


yang tidak memiliki nilai atau NULL.
Sintaks:
<predicate with null> ::=
<scalar expression> IS [ NOT ] NULL

Contoh:
SELECT NAMA_SUPPLIER FROM SUPPLIER
WHERE ALAMAT_SUPPLIER IS NOT NULL;

Operator BETWEEN

Operator BETWEEN digunakan untuk menentukan range nilai suatu


ekspresi dalam perintah SQL.
Syntax:
<predicate with between> ::=
<scalar expression> [ NOT ] BETWEEN <scalar
expression> AND <scalar expression>

Contoh:

Cari nama dan tanggal transaksi pembelian barang antara tahun 2014
sampai 2015

SELECT NAMA_TRANSAKSI,TGL_TRANSAKSI
FROM PEMBELIAN
WHERE YEAR(TGL_TRANSAKSI) BETWEEN 2014 AND 2015;

Operator LIKE

Operator LIKE digunakan untuk memilih nilai alfanumerik yang


memiliki pola tertentu. Syntax:
<predicate with like> ::=
<scalar expression> [ NOT ] LIKE <like pattern>
[ ESCAPE <character> ]
<like pattern> ::= <scalar alphanumeric
expression>

Contoh:
Cari NAMA_SUPPLIER dari tabel SUPPLIER yang huruf kedua
terakhirnya adalah a tanpa melihat panjang charakter dalam namanya.
SELECT NAMA_SUPPLIER FROM SUPPLIER
WHERE NAMA_SUPPLIER LIKE %a_;
Operator IN

Operator ini digunakan ketika data disajikan bentuk list/daftar yang dicek
kondisinya. Operator IN dapat dibandingkan dengan operator OR.
Syntax:
<predicate with in> ::=
<scalar expression> [ NOT ] IN <scalar expression
list> |
<row expression> [ NOT ] IN <row expression list>
<row expression list> ::= ( <scalar expression
list>
[ , <scalar expression list> ]... )
<scalar expression list> ::=
( <scalar expression> [ , <scalar expression> ]...
)

Contoh:
Tampilkan nama dan kota dari supplier pada table SUPPLIER yang
tinggal di kota Bangkalan dan Surabaya

Perintah SQL dengan menggunakan operator OR:

SELECT NAMA_SUPPLIER, KOTA_SUPPLIER FROM


SUPPLIER
WHERE KOTA_SUPPLIER =Bangkalan OR KOTA_SUPPLIER=
SURABAYA;

Perintah SQL dengan menggunakan operator IN:


SELECT NAMA_SUPPLIER, KOTA_SUPPLIER FROM SUPPLIER
WHERE KOTA_SUPPLIER IN (Bangkalan, Surabaya);

BAB III
TUGAS PENDAHULUAN

3.1 Soal
1. Buat script create table Mahasiswa dan Dosen dengan relasi perwalian
dan integrity constraint cascade on updatedan restrict on delete.
2. Dari script DDL pada tugas pendahuluan modul 1, jalankan pada DBMS
my SQL untuk membuat tabel tabel dan relasinya. Gunakan mode
integrity constraint cascade on updatedan restrict on delete.
3. Buat script penambahan data transaksi penjualan dan penambahan
data transaksi pemesanan barang pada database KOPSIS yang telah
dibuat selama bulan Januari Mei dengan minimal 15 transaksi setiap
bulannya.
4. Buat script untuk menampilkan data pembelian barang pada
Supplier X, yang dilakukan bulan Januari sampai dengan bulan
Februari.
5. Buat script untuk melakukan penghapusan data Supplier X pada no 4.
Perhatikan keberadaan integrity constraint.

3.2 Jawab
1.
drop table if exists DOSEN;

drop table if exists MAHASISWA;


/
*===================================================
===========*/
/* Table: DOSEN */
/
*===================================================
===========*/
create table DOSEN
(
NIP varchar(30) not null,
NAMA_DOSEN varchar(50),
ALAMAT_DOSEN varchar(50),
primary key (NIP)
);

/
*===================================================
===========*/
/* Table: MAHASISWA */
/
*===================================================
===========*/
create table MAHASISWA
(
NIM varchar(12) not null,
NIP varchar(30),
NAMA_MHS varchar(50),
PRODI_MHS varchar(20),
FAKULTAS_MHS varchar(20),
primary key (NIM)
);

alter table MAHASISWA add constraint FK_PERWALIAN foreign key


(NIP)
references DOSEN (NIP) on delete restrict on update cascade;

2.

drop table if exists BARANG;

drop table if exists FAKTUR;

drop table if exists SUPPLIER;

drop table if exists TRANSAKSI;


/
*======================================================
========*/
/* Table: BARANG */
/
*======================================================
========*/
create table BARANG
(
KODE_BARANG varchar(10) not null,
NAMA_BARANG varchar(20),
HARGA_BARANG int,
primary key (KODE_BARANG)
);

/
*======================================================
========*/
/* Table: FAKTUR */
/
*======================================================
========*/
create table FAKTUR
(
NO_FAKTUR varchar(10) not null,
KODE_SUPPLIER varchar(10),
TOTAL int,
primary key (NO_FAKTUR)
);

/
*======================================================
========*/
/* Table: SUPPLIER */
/
*======================================================
========*/
create table SUPPLIER
(
KODE_SUPPLIER varchar(10) not null,
NAMA_SUPPLIER varchar(30),
ALAMAT_SUPPLIER varchar(30),
KOTA_SUPPLIER varchar(20),
primary key (KODE_SUPPLIER)
);

/
*======================================================
========*/
/* Table: TRANSAKSI */
/
*======================================================
========*/
create table TRANSAKSI
(
NO_FAKTUR varchar(10) not null,
KODE_BARANG varchar(10) not null,
QUANTITY int,
TANGGAL date,
primary key (NO_FAKTUR, KODE_BARANG)
);

alter table FAKTUR add constraint FK_PEMBELIAN foreign key


(KODE_SUPPLIER)
references SUPPLIER (KODE_SUPPLIER) on delete restrict on update
cascade;

alter table TRANSAKSI add constraint FK_TRANSAKSI foreign key


(NO_FAKTUR)
references FAKTUR (NO_FAKTUR) on delete restrict on update
cascade;

alter table TRANSAKSI add constraint FK_TRANSAKSI2 foreign key


(KODE_BARANG)
references BARANG (KODE_BARANG) on delete restrict on update
cascade;

3. Januari
INSERT INTO `transaksi`(`NO_FAKTUR`, `KODE_BARANG`,
`QUANTITY`, `TANGGAL`) VALUES
('FPS05','ATK01',12,'2016-01-05'), ('FPS05','ATK02',10,'2016-01-
05'),
('FPS05','MNM01',10,'2016-01-05'), ('FPS05','MNM04',5,'2016-01-
05'), ('FPS05','MNM03',2,'2016-01-05'),
('FPS06','ATK01',10,'2016-01-07'), ('FPS06','ATK02',2,'2016-01-
07'), ('FPS06','MNM03',5,'2016-01-07'),
('FPS06','MNM01',4,'2016-01-07'), ('FPS06','MNM02',3,'2016-01-
07'),
('FPS07','MNM01',6,'2016-01-20'), ('FPS07','MNM03',5,'2016-01-
20'), ('FPS07','MNM02',10,'2016-01-20'),
('FPS07','MNM04',6,'2016-01-20'), ('FPS07','ATK01',12,'2016-01-
20')

Februari
INSERT INTO `transaksi`(`NO_FAKTUR`, `KODE_BARANG`,
`QUANTITY`, `TANGGAL`) VALUES
('FPS01','ATK01',12,'2016-02-05'), ('FPS01','ATK02',10,'2016-02-05'),
('FPS01','MNM01',10,'2016-02-05'), ('FPS01','MNM04',6,'2016-02-05'),
('FPS01','MNM03',2,'2016-02-05'),
('FPS02','ATK01',10,'2016-02-07'), ('FPS02','ATK02',2,'2016-02-07'),
('FPS02','MNM03',5,'2016-02-07'), ('FPS02','MNM01',4,'2016-02-07'),
('FPS02','MNM02',5,'2016-02-07'),
('FPS03','MNM01',6,'2016-02-20'), ('FPS03','MNM03',6,'2016-02-20'),
('FPS03','MNM02',12,'2016-02-20'), ('FPS03','MNM04',6,'2016-02-20'),
('FPS03','ATK01',12,'2016-02-20')

Maret
INSERT INTO `transaksi`(`NO_FAKTUR`, `KODE_BARANG`,
`QUANTITY`, `TANGGAL`) VALUES
('FPS08','ATK01',12,'2016-03-05'), ('FPS08','ATK02',10,'2016-03-05'),
('FPS08','MNM01',10,'2016-03-05'), ('FPS08','MNM04',6,'2016-03-05'),
('FPS08','MNM03',2,'2016-03-05'),
('FPS09','ATK01',10,'2016-03-07'), ('FPS09','ATK02',2,'2016-03-07'),
('FPS09','MNM03',5,'2016-03-07'), ('FPS09','MNM01',4,'2016-03-07'),
('FPS09','MNM02',5,'2016-03-07'),
('FPS10','MNM01',6,'2016-03-20'), ('FPS10','MNM03',6,'2016-03-20'),
('FPS10','MNM02',12,'2016-03-20'), ('FPS10','MNM04',6,'2016-03-20'),
('FPS10','ATK01',12,'2016-03-20')

April
INSERT INTO `transaksi`(`NO_FAKTUR`, `KODE_BARANG`,
`QUANTITY`, `TANGGAL`) VALUES
('FPS11','ATK01',12,'2016-04-05'), ('FPS11','ATK02',10,'2016-04-05'),
('FPS11','MNM01',10,'2016-04-05'), ('FPS11','MNM04',6,'2016-04-05'),
('FPS11','MNM03',2,'2016-04-05'),
('FPS12','ATK01',10,'2016-04-07'), ('FPS12','ATK02',2,'2016-04-07'),
('FPS12','MNM03',5,'2016-04-07'), ('FPS12','MNM01',4,'2016-04-07'),
('FPS12','MNM02',5,'2016-04-07'),
('FPS13','MNM01',6,'2016-04-20'), ('FPS13','MNM03',6,'2016-04-20'),
('FPS13','MNM02',12,'2016-04-20'), ('FPS13','MNM04',6,'2016-04-20'),
('FPS13','ATK01',12,'2016-04-20')

Mei
INSERT INTO `transaksi`(`NO_FAKTUR`, `KODE_BARANG`,
`QUANTITY`, `TANGGAL`) VALUES
('FPS14','ATK01',12,'2016-05-05'), ('FPS14','ATK02',10,'2016-05-05'),
('FPS14','MNM01',10,'2016-05-05'), ('FPS14','MNM04',6,'2016-05-05'),
('FPS14','MNM03',2,'2016-05-05'),
('FPS15','ATK01',10,'2016-05-07'), ('FPS15','ATK02',2,'2016-05-07'),
('FPS15','MNM03',5,'2016-05-07'), ('FPS15','MNM01',4,'2016-05-07'),
('FPS15','MNM02',5,'2016-05-07'),
('FPS16','MNM01',6,'2016-05-20'), ('FPS16','MNM03',6,'2016-05-20'),
('FPS16','MNM02',12,'2016-05-20'), ('FPS16','MNM04',6,'2016-05-20'),
('FPS16','ATK01',12,'2016-05-20')

4. Data pembelian barang pada Supplier X, yang dilakukan bulan


Januari sampai dengan bulan Februari

SELECT transaksi.NO_FAKTUR , transaksi.KODE_BARANG


,transaksi.QUANTITY , transaksi.TANGGAL
,faktur.KODE_SUPPLIER , faktur.TOTAL
FROM transaksi ,faktur
WHERE transaksi.NO_FAKTUR=faktur.NO_FAKTUR AND
(month(tanggal)=01 OR month(tanggal)=02)
ORDER BY `transaksi`.`TANGGAL` ASC
5. Melakukan penghapusan data Supplier X
DELETE FROM `supplier`
WHERE KODE_SUPPLIER='S0001'
Tidak bisa dihapus karena integrity constraintnya on delete restrict,
penghapusan tidak bisa dilakukan karena terdapat relasi dengan tabel child-
nya yaitu table faktur.

BAB IV
IMPLEMENTASI

4.2 Tugas Praktikum


4.1.1. Soal
1. Implementasikan perancangan yang sudah dibuat pada tugas
praktikum modul 1 dengan DBMS MySQL 5.
2. Buat script penambahan data untuk masing masing tabel pada
database yang sudah dibuat, @minimal 5 record.
3. Tampilkan derived attribute dari database yang sudah dibuat
dengan menggunakan operasi sum, avg, count dan group_by
4.1.2. Jawab
a. . Implementasi tugas praktikum modul 1 dengan DBMS MySQL
5

b. Input data
Produksi
INSERT INTO `produksi`(`ID_PRODUKSI`,
`NAMA_PRODUKSI`, `ALAMAT_PRODUKSI`) VALUES
(1,'Tas Kulit','Bandung'),(2,'SepatuKulit','Magetan'),
(3,'Roti','Surabaya'),(4,'Baju','Jakarta'),
(5,'Celana','Bangkalan')

Barang
INSERT INTO `barang`(`ID_BARANG`, `NAMA__BARANG`,
`SATUAN_BARANG`, `JUMLAH_BARANG`, `EXP`) VALUES
(1,'kain','gulung',100,' '),(2,'tepung','kardus',100,'2017-03-25'),
(3,'Telur','kotak',100,'2016-02-11'),(4,'kulit sapi','gulung',50,' '),
(5,'benang','kotak',150,' ')

Gudang
INSERT INTO `gudang`(`ID_GUDANG`, `JENIS_GUDANG`,
`KUOTA_GUDANG`, `KUOTA_TERSEDIA`) VALUES
(1,'gudang kain',400,400),(2,'gudang tepung',300,300),
(3,'gudang ikan',200,200),(4,'gudang telur',200,200),
(5,'gudang makanan',400,400)

Transaksi Pemakaian
INSERT INTO `transaksi_pemakaian`(`ID_BARANG`,
`ID_PRODUKSI`, `BANYAK_BARANG`) VALUES
(1,4,20), (2,3,30),(3,3,50),(4,1,50),(4,2,60)

Transaksi Pembelian
INSERT INTO `transaksi_pembelian`(`ID_GUDANG`,
`ID_BARANG`) VALUES (1,1),(2,2),(4,3),(1,4),(1,5)

c. Sum
SELECT SUM(JUMLAH_BARANG) as 'Banyak Barang' FROM
barang

Avg
SELECT AVG(KUOTA_GUDANG)as 'Avg kuota gudang' FROM
`gudang`

Count
SELECT COUNT(*) as 'jumlah gudang' FROM `gudang`

Group by
SELECT * FROM `transaksi_pemakaian` GROUP BY
ID_BARANG

BAB V
PENUTUP

5.1 Kesimpulan
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian
suatu struktur database, dalam hal ini database dan table (CREATE ,
ALTER, RENAME, dan DROP).
DML merupakan perintah SQL yang berhubungan dengan manipulasi
atau pengolahan data atau record dalam tabel (INSERT, SELECT,
UPDATE, dan DELETE).
Di MySQL kita dapat mengatur hak akses tiap user terhadap data di
database. MySQL memungkinkan kita mengatur hak akses user terhadap
database, tabel, dan kolom. DCL merupakan perintah SQL yang
berhubungan dengan manipulasi user dan hak akses (priviledges)
(REVOKE dan GRANT)

5.2 Saran
Praktikum Basis data 2 modul 2 telah berjalan lancar dan asprak telah
menjelaskan materi dengan baik.

LAPORAN RESMI
PRAKTIKUM BASIS DATA 2

MODUL III
MENGENAL UNION, JOIN DAN VIEW
Disusun Oleh :
TGL. PRAKTIKUM : 3 Mei 2016
NAMA : Satria Bayu Seta
NRP : 140411100125
KELOMPOK : B1
DOSEN : Rika Yunitarini.ST.,MT

TELAH DISETUJUI TANGGAL :


...........................................
ASISTEN PRAKTIKUM

Azza Devi Manzilia


(120411100110)

LABORATORIUM COMMON COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS
TRUNOJOYO MADURA
2016
BAB I
PENDAHULUAN

1.1. Latar Belakang


Terdapat tiga jenis perintah SQL, yaitu DDL, DML dan DCL . Pada
suatu masalah kita perlu untuk menggabungkan 2 tabel atau lebih, sebagai
contoh pada suatu saat kita perlu menampilkan data dari 2 tabel yang berbeda
namun berhubungan/berelasi dengan perintah UNION dan JOIN kita dapat
menampilkannya.
Selanjutnya VIEW merupakan 'derived tables' sehingga ia harus
didefinisikan dalam perintah SQL pada tabel basis atau view yang lain.
Dengan adanya perintah VIEW ini kita tidak perlu menuliskan query secara
berulang jika telah dibuat table view dengan isi query yang kita inginkan
tersebut. Oleh karena itu pada modul 3 ini akan dijelaskan tentang
UNION,JOIN dan VIEW.

1.2. Tujuan
Tujuan dari Praktikum Basis Data 2 Modul 3 antara lain:
1. Mahasiswa mampu menjelaskan dan menggunakan operator union dan
join (INNER JOIN, LEFT JOIN dan RIGHT JOIN)
2. Mahasiswa mampu membuat view yang melibatkan beberapa tabel
BAB II
DASAR TEORI

2.1 Materi
1. UNION
Union didukung oleh MySQL mulai dari versi 4.0. Pemakaian union dapat
menyederhanakan perintah persyaratan OR yang bertingkat. Bila dalam sebuah
query menghasilkan pemakaian perintah OR yang lebih dari satu sehingga
dapat membuat bingung, sebagai gantinya digunakan perintah UNION. Union
dapat dikatakan sebagai perintah untuk menggabungkan hasil query sql yang
fungsinya sama dengan perintah OR.
Syntax:
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

Contoh:
SELECT TANGGAL_TRANS, NAMA_TRANS_PEMBELIAN,
JML_TRANS_BELI FROM PEMBELIAN
UNION
SELECT TANGGAL_TRANS, NAMA_TRANS_PENJUALAN,
JML_TRANS_JUAL FROM PENJUALAN
ORDER BY TANGGAL_TRANS;

2. JOIN
Operator Join digunakan untuk menghubungkan dua tabel atau lebih pada
kolom yang bersesuaian. Perintah JOIN ada beberapa macam, diantaranya:
INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN.

INNER JOIN
Di dalam INNER JOIN, hasil akhir hanya akan menampilkan data yang ada
di kedua tabel.
Jika pada tabel PEMBELIAN terdapat data sebagai berikut:

Tabel PEMBELIANtersebut berelasi dengan tabel SUPPLIERdan terdapat


data sebagai berikut:

Maka kita dapat menggunakan INNER JOIN untuk menampilkan kode


pembelian, nama supplier dan tanggal pembelian.
Contoh:
SELECT a.Kode_PEMBELIAN, b.NAMA_SUPPLIER, a.TANGGAL_TRANS
FROM PEMBELIAN a
INNER JOIN SUPPLIER b
ON a.KODE_SUPPLIER=b.KODE_SUPPLIER;

LEFT JOIN
Perintah dengan operator ini akan menghasilkan data pada tabel kiri (tabel
satu) walaupun tidak memiliki relasi pada tabel kanan (tabel dua). Jika data
yang terdapat di sebelahkiri tidak terdapat pada tabel sebelah kanan, maka SQL
Engine akan tetap mengeluarkannilai NULL. Sebagai gambaran LEFT JOIN
adalah sebagai berikut:
Hasilnya:
Contoh:
SELECT a.Kode_PEMBELIAN, b.NAMA_SUPPLIER, a.TANGGAL_TRANS
FROM PEMBELIAN a
LEFT JOIN SUPPLIER b
ON a.KODE_SUPPLIER=b.KODE_SUPPLIER;
Hasilnya:

RIGHT JOIN
Perintah dengan operator ini akan menghasilkan data pada tabel kanan
(tabel dua) walaupun tidak memiliki relasi pada tabel kiri (tabel satu). Sebagai
gambaran RIGHT JOIN adalah sebagai berikut

Contoh:
SELECT a.Kode_PEMBELIAN, b.NAMA_SUPPLIER, a.TANGGAL_TRANS
FROM PEMBELIAN a
RIGHT JOIN SUPPLIER b
ON a.KODE_SUPPLIER=b.KODE_SUPPLIER;
Hasilnya:

3. VIEW
View merupakan 'derived tables'sehingga ia harus didefinisikan dalam
perintah SQL padatabel basis atau view yang lain. Tabel basis yang dimaksud
di sini adalah tabel yang dimiliki oleh suatu basisdata.
Sintaks:
CREATE VIEW view_name (column_name) AS
[SELECT BLOCK]

- Isi View bisa berupa gabungan beberapa tabel


- Didalam sintaks view bisa dimasukkan functionyang sering digunakan dalam,
seperti:
IS [NOT] NULL, JOIN, DISTINCT, BETWEEN, Operator AND, OR, MIN,
MAX, AVG dan lain-lain
Selain tabel basis yang menjadi referensi, view lainpun dapat digunakan
sebagai referensiketika kita membuat view yang baru
Contoh:
Buatlah view untuk menampilkan semua transaksi (tanggal transaksi, nama
transaksi, nilai /jumlah transaksi) yang pernah dilakukan:
CREATE VIEW V_TRANSAKSI AS
SELECT
TANGGAL_TRANS,NAMA_TRANS_PEMBELIAN,JML_TRANS_BELI
FROM PEMBELIAN
UNION
SELECT
TANGGAL_TRANS,NAMA_TRANS_PENJUALAN,JML_TRANS_JUAL
FROM PENJUALAN
ORDER BY TANGGAL_TRANS;
Menghapus VIEW
View yang ada dalam basisdata dapat dihapus dengan menggunakan sintaks
SQL berikut:
DROP VIEW view_name;

Contoh : Hapuslah view V_TRANSAKSI


DROP VIEW v_TRANSAKSI;
BAB III
TUGAS PENDAHULUAN

3.1 Soal
1. Jelaskan tentang operator UNION, INNER JOIN, LEFT JOIN dan
RIGHT JOIN. Berikan contoh dengan gambar.
2. a. Pada database KOPSIS yang sudah dibuat, buat view untuk
menampilkan kode barang, nama barang, harga pembelian barang dan
harga penjualan barang.
b. Buat view untuk menampilkan tanggal transaksi, dan nama
transaksi baik pembelian barang maupun penjualan barang beserta
harga pembelian dan harga penjualannya. Harga pembelian dan
penjualan tiap kode barang menggunakan view yang telah dibuat pada
no. 2a. (nested view)
3. Pada database KOPSIS yang sudah dibuat, tampilkan semua kode
barang, nama barang, data stok barang terakhir yang dimiliki oleh
KOPSIS, baik yang berada di gudang maupun di display
menggunakan UNION/JOIN..
3.2 Jawab
1. Pengertian operator UNION, INNER JOIN, LEFT JOIN dan RIGHT
JOIN, yaitu :

UNION : Merupakan operator yang digunakan untuk


menggabungkan hasil query, dengan ketentuan jumlah, nama dan
tipe kolom dari masing-masing tabel yang akan ditampilkan
datanya harus sama

A B
INNER JOIN : digunakan untuk menampilkan data dari dua tabel
yang berisi data sesuai dengan syarat dibelakang on (tidak boleh
null).

LEFT JOIN : digunakan untuk menampilkan semua data dari tabel


sebelah kiri perintah left join beserta pasangannya dari tabel
sebelah kanan.

RIGHT JOIN : digunakan untuk menampilkan semua data dari


tabel sebelah kanan perintah right join beserta pasangannya dari
tabel sebelah kiri.
2. A. View untuk Kopsis

Skript
CREATE VIEW barang_kopsis as
SELECT barang.KODE_BARANG as kode ,
barang.NAMA_BARANG as nama,
barang.HARGA_PEMBELIAN as harga_pembelian,
barang.HARGA_PENJUALAN as harga_Penjualan
FROM barang


Running

B. View untuk Transaksi



Skript
CREATE VIEW Pembelian AS
SELECT transaksi.NO_FAKTUR as NoFaktur,
transaksi.KODE_BARANG as kode, barang_kopsis.nama
as nama, barang_kopsis.harga_Penjualan as
HargaJual, transaksi.QUANTITY as QTY,
barang_kopsis.harga_Penjualan*transaksi.QUANTITY
as TotalHarga,

transaksi.TANGGAL as tanggal
FROM barang_kopsis , transaksi
WHERE transaksi.KODE_BARANG=barang_kopsis.kode

Running

3. Menampilkan data kopsis dengan perintah join



Skript
SELECT faktur.NO_FAKTUR as NoFaktur,
faktur.KODE_SUPPLIER as KodeSupplier,
supplier.NAMA_SUPPLIER as nama,
faktur.TOTAL as total
FROM `faktur` INNER JOIN `supplier` on
faktur.KODE_SUPPLIER=supplier.KODE_SUPPLIER


Running

......
BAB IV
IMPLEMENTASI

4.1 Tugas Praktikum


4.1.1 Soal
1. Buat view dengan menggunakan operator UNION atau JOIN pada
DBMS studi kasus masing masing yang telah ditentukan pada
modul 1. (atas petunjuk asisten)
2. Buat nested view dengan menggunakan operator UNION atau JOIN
pada DBMS studi kasus masing masing yang telah ditentukan pada
modul 1. (atas petunjuk asisten).
4.1.2 Jawab
1. View dengan menggunakan operator UNION atau JOIN pada
DBMS
CREATE VIEW produksi_barang AS SELECT
transaksi_pemakaian.ID_BARANG, barang.NAMA__BARANG,
transaksi_pemakaian.ID_PRODUKSI ,BANYAK_BARANG FROM
transaksi_pemakaian INNER JOIN barang ON
transaksi_pemakaian.ID_BARANG=barang.ID_BARANG

2. Nested view dengan menggunakan operator UNION atau JOIN


pada DBMS
CREATE VIEW pemakaian AS SELECT
ID_BARANG,NAMA_BARANG,produksi_barang.ID_PRODUKSI,pr
oduksi.NAMA_PRODUKSI,BANYAK_BARANG FROM
produksi_barang INNER JOIN produksi ON
produksi_barang.ID_PRODUKSI = produksi.ID_PRODUKSI
BAB V
PENUTUP

5.1 Kesimpulan
Pemakaian union dapat menyederhanakan perintah persyaratan OR yang
bertingkat. Bila dalam sebuah query menghasilkan pemakaian perintah OR
yang lebih dari satu sehingga dapat membuat bingung, sebagai gantinya
digunakan perintah UNION. Union dapat dikatakan sebagai perintah untuk
menggabungkan hasil query sql yang fungsinya sama dengan perintah OR.
Operator Join digunakan untuk menghubungkan dua tabel atau lebih pada
kolom yang bersesuaian. Perintah JOIN ada beberapa macam, diantaranya
INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
View merupakan 'derived tables'sehingga ia harus didefinisikan dalam
perintah SQL padatabel basis atau view yang lain. Tabel basis yang dimaksud
di sini adalah tabel yang dimiliki oleh suatu basisdata.

5.2 Saran
Praktikum Basis data 2 modul 3 telah berjalan lancar dan asprak telah
menjelaskan materi dengan baik.

LAPORAN RESMI
PRAKTIKUM BASIS DATA 2

MODUL IV
MENGENAL STORED PROCEDURE DAN TRIGGER
Disusun Oleh :
TGL. PRAKTIKUM : 17 Mei 2016
NAMA TELAH DISETUJUI
: Satria Bayu SetaTANGGAL :
NRP ...........................................
: 140411100125
KELOMPOK ASISTEN
: B1 PRAKTIKUM
DOSEN : Rika Yunitarini.ST.,MT

Azza Devi Manzilia


(120411100110)

LABORATORIUM COMMON COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016
BAB I
PENDAHULUAN

1.1. Latar Belakang


Stored procedure adalah salah satu objek routine yang tersimpan pada
database MySQL dan dapat digunakan untuk menggantikan berbagai kumpulan
perintah yang sering kita gunakan, seperti misalkan sejumlah row ke table lain
dengan filter tertentu. Stored procedure sangat berguna ketika kita tidak ingin
user mengakses table secara langsung, atau dengan kata lain membatasi hak
akses user dan mencatat operasi yang dilakukan. Dengan demikian resiko
kebocoran dan kerusakan data dapat lebih diminalisir.
Sebuah trigger merupakan kode prosedural yang akan secara otomatis
dieksekusi akibat dipicu oleh seuah event / kejadian pada suatu Tabel. Trigger
dapat mencegah akses terhadap data yang spesifik, melakukan logging atau
melakukan audit perubahan data. Trigger digunakan untuk pemrosesan kondisi
statemen DML (Data Manipulation Language) seperti INSERT, DELETE dan
UPDATE, Namun trigger tidak dapat digunakan dalam statemen SELECT.Pada
modul 4 ini akan dijelaskan tentang pengenalan trigger dan stored procedure.

1.2. Tujuan
Tujuan dari Praktikum Basis Data 2 Modul 4 antara lain:
9. Mahasiswa mampu menjelaskan dan menggunakan stored procedure
10. Mahasiswa mampu menjelaskan dan menggunakan trigger
BAB II
DASAR TEORI

1 MATERI

Stored procedure dan trigger sama-sama merupakan perintah yang dibuat


dalam bentuk deklaratif dan prosedural. Perbedaannya adalah Stored
procedure diaktifkan sebagai suatu perintah oleh editor SQL, program,
atau oleh Stored Procedure atau Trigger lain. Sedangkan Trigger
diaktifkan hanya oleh Sistem Manajemen Basisdata dalam suatu kondisi
tertentu (ketika pernyataan INSERT, UPDATE, DELETE dilaksanakan).

Stored Procedure
Syntax:
<create procedure statement> ::=
CREATE PROCEDURE <procedure name> ([<parameter
list>])
<routine body>
<parameter list> ::= <parameter
specification> [ , <parameter
specification> ]...
<parameter specification> ::= [IN|OUT|INOUT]
<parameter>
<data type>
<routine body> ::= <begin-end block>
<begin-end block> ::=
[ <label> : ] BEGIN
<statement list> END
[ <label> ]
<statement list> ::= { <body statement> ; }...
<statement in body> ::=
<declarative statement>| <procedural statement>

Sintaks untuk mengaktifkan atau memanggil stored procedure yang telah


dibuat:
<call statement> ::=
CALL [<database name>. ]<stored
procedure name> ([<scalar
expression>[,<scalar
expression>]...])

Sedangkan penghapusan Stored Procedure dapat dilakukan dengan sintaks


SQL:
<drop procedure
statement> ::=
DROP PROCEDURE [
IF EXISTS ]
[ <database name> . ] <procedure name>

Stored procedure dapat dibuat tanpa menggunakan parameter


(bersifat statis) atau dengan menggunakan parameter yang bersifat
dinamis karena pengguna dapat mengisikan nilai sesuai yang diinginkan
ketika stored procedure diaktifkan. Parameter yang dapat digunakan
terdiri dari tiga macam, yaitu parameter masukan (IN), parameter
keluaran (OUT), dan parameter masukan-keluaran (IN OUT).

Kasus: Pada database KOPSIS telah terjadi kesalahan dalam


memasukkan transaksi pembelian. Karena itu diperlukan suatu prosedur
untuk menghapus data transaksi pembelian yang dilakukan pada tanggal
13 Januari 2015.
Berikut ini contoh stored procedure tanpa penggunaan parameter.

CREATE PROCEDURE
HAPUS_TRANSAKSI()
BEGIN
DELETE FROM PEMBELIAN
WHERE TGL_TRANS = 20150115;
END;

Berikut ini contoh stored procedure dengan penggunaan


parameter.berupa tanggal transaksi berdasarkan input user.

CREATE PROCEDURE
HAPUS_TRANSAKSI
(IN P_TGL_TRANS
DATE)
BEGIN
DELETE FROM PEMBELIAN
WHERE TGL_TRANS = P_TGL_TRANS;
END;

Deklarasi variabel yang digunakan untuk menyimpan hasil ekspresi


sebelumnya, dapat dibuat dengan perintah:
DECLARE NAMA_VARIABEL TYPE_DATA;
Penggunaan blok IF-THEN untuk menyeleksi kondisi, dapat digunakan
didalam perintah stored procedure. Perintah yang digunakan yaitu:
IF kondisi_seleksi THEN
[Blok pernyataan bila
kondisi terpenuhi]; END IF;

Perintah SQL untuk aktivasi/pemanggilan stored procedure:

CALL nama_storedprocedure;

Perintah SQL untuk menghapus stored procedure:

DROP PROCEDURE nama_storedprocedure;

Trigger

Syntax:

<create trigger
statement> ::=
CREATE
[ <definer
option> ]
TRIGGER <trigger name>
<trigger moment>
<trigger event>
<trigger action>
<definer option> ::=
DEFINER = { <user name> | CURRENT_USER }
<trigger moment> ::= BEFORE | AFTER
<trigger event> ::=
{ INSERT | DELETE | UPDATE }
ON <table specification> FOR EACH ROW
<trigger action> ::= <statement>

Sintaks SQL untuk menghapus Trigger:

<drop trigger statement> ::= DROP TRIGGER


[ <table name> . ]
<trigger name>

Untuk mempermudah pemahaman penggunaan trigger, maka


perhatikan contoh berikut ini. Pada basis data KOPSIS, dibutuhkan
trigger untuk menghitung stok barang di display. Trigger ini dijalankan
setiap kali dilakukan transaksi penjualan.

CREATE
TRIGGER
TR_STOK
AFTER
UPDATE ON PENJUALAN FOR EACH ROW

BEGIN
SELECT a.STOK
into v_stok
FROM BARANG a
WHERE (a.KODE_BARANG = NEW.KODE_BARANG);

UPDATE BARANG
SET (STOK = v_stok
NEW.JML_ITEM) END;
BAB III
TUGAS PENDAHULUAN

1 Soal
1 Jelaskan perbedaan stored procedure dan trigger dari kegunaan dan
syntax perintahnya !
2 Pada database KOPSIS, buat stored procedure untuk menampilkan kode
barang, nama barang dan laba yang dihasilkannya. Laba ini diperoleh dari
selisih harga pembelian tiapitem barang dan harga penjualan barang
dikalikan jumlah barang terjual. Buat view untuk menampilkannya pada
semua data kode barang.
3 Pada database KOPSIS, lakukan modifikasi pada tabel yang
menyimpan data pembelian barang agar dapat menampung satuan
kemasan barang seperti lusin (12 pc),gross (144 pc), rim (500 lembar),
pak (10 pc) dan buah (1 pc). Buat trigger untuk menghitung jumlah
barang dengan satuan buah setiap kali memasukkan transaksi
pembelian barang dengan jumlah satuan kemasan lusin, gross, rim dan
pak.

2 Jawab
1 perbedaan stored procedure dan trigger dari kegunaan dan syntax
perintahnya
a Stored Procedure :
Merupakan salah satu fitur dari SQL yang digunakan untuk
mengaktifkan perintah oleh editor SQL yang mempercepat proses
kerja dari database, dan syntaxnya pada Stored Procedure dapat
diberi inputan parameter atau tidak diberi inputan parameter setelah
create procedure.

Syntax :

CREATE [DEFINER = {user|current_user}]


PROCEDURE stored_procedure_name (procedure_parameter[,..])
[characteristic...] routine_body

b Trigger :
Merupakan fitur dari database SQL yang digunakan untuk
mengeksekusi query jika suatu tabel mengalami event seperti
ketika ditambah, diedit, atau dihapus. Syntax pada Trigger jika ada
kondisi, dan kondisi tersebut dipenuhi maka Trigger akan
dijalankan.
Syntax :

CREATE
[DEFINER = {user|curent_user}]
TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW trigger_body
2 Membuat view untuk menampilkannya pada semua data kode barang.
- Script View :

- Script Procedure
Membuat

Memanggil

3 Script Trigger (menentukan satuan pada pembelian barang)


BAB IV
IMPLEMENTASI

4.1 Tugas Praktikum


4.1.1. Soal
a. Buat stored procedure pada DBMS studi kasus masing masing
yang telah ditentukan pada modul 1. (atas petunjuk asisten)
b. Buat trigger pada DBMS studi kasus masing masing yang telah
ditentukan pada modul 1. (atas petunjuk asisten).
4.1.2. Jawab
1 Stored procedure barang kadaluwarsa
CREATE PROCEDURE `barangexp`()
BEGIN
SELECT * FROM barang WHERE barang.EXP<CURDATE();
END

call barangexp()

2 Trigger
CREATE TRIGGER `pemakaian` AFTER INSERT ON
`transaksi_pemakaian` FOR EACH ROW
BEGIN
UPDATE barang SET
barang.JUMLAH_BARANG=barang.JUMLAH_BARANG-
NEW.banyak_barang
WHERE barang.ID_BARANG=NEW.ID_BARANG;
END;

Tabel barang sebelum ada proses pemakaian

Tabel transaksi pemakaian

Tabel barang sesudah ada proses pemakaian


BAB V
PENUTUP

5.1 Kesimpulan
Stored Procedure Merupakan salah satu fitur dari SQL yang
digunakan untuk mengaktifkan perintah oleh editor SQL yang mempercepat
proses kerja dari database, dan syntaxnya pada Stored Procedure dapat
diberi inputan parameter atau tidak diberi inputan parameter setelah create
procedure.
Trigger Merupakan fitur dari database SQL yang digunakan untuk
mengeksekusi query jika suatu tabel mengalami event seperti ketika
ditambah, diedit, atau dihapus. Syntax pada Trigger jika ada kondisi, dan
kondisi tersebut dipenuhi maka Trigger akan dijalankan.

5.2 Saran
Praktikum Basis data 2 modul 4 telah berjalan lancar dan asprak telah
menjelaskan materi dengan baik.

LAPORAN RESMI
PRAKTIKUM BASIS DATA 2

MODUL V
MELAKUKAN KONEKSI DARI WEB KE DATABASE

Disusun Oleh :
TGL. PRAKTIKUM : 31 Mei 2016
NAMA TELAH DISETUJUI
: Satria Bayu SetaTANGGAL :
NRP ...........................................
: 140411100125
KELOMPOK ASISTEN
: B1 PRAKTIKUM
DOSEN : Rika Yunitarini.ST.,MT

Azza Devi Manzilia


(120411100110)

LABORATORIUM COMMON COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016

BAB I
PENDAHULUAN

1.1 Latar Belakang


Pada praktikum modul 5 ini membahas tentang koneksi ke database dengan
menggunakan bahasa pemrograman PHP. PHP adalah salah satu bahasa
pemrograman berbasis web. PHP bersifat cepat, gratis dan murah, selain itu
PHP mendukung penggunaan basisdata seperti MySQL, PostgreSQL, mSQL,
Oracle dll. Untuk melakukan koneksi ke MySQL kita bisa menggunakan
library API dari PHP 5.0 yaitu MySQL, MySQLi dan PDO.
1.2 Tujuan
1. Mahasiswa mampu menjelaskan arsitektur sistem basisdata berbasis web
2. Mahasiswa mampu melakukan koneksi ke database menggunakan library
MySQL, MySQLi dan PDO
BAB II
DASAR TEORI

2.1 Arsitektur Web Database


PHP adalah salah satu bahasa pemrograman berbasis web. PHP bersifat cepat,
gratis dan murah, selain itu PHP mendukung penggunaan basisdata seperti
MySQL, PostgreSQL, mSQL, Oracle dll. Langkah kerja pada sistem basis
data berbasis web sangat berbeda dengan sistem basis data berbasis desktop.
Pada sistem basis data berbasis web, terdapat web server yang menjembatani
antara request dari client kepada database server. Arsitektur sistemnya dapat
dilihat pada gambar berikut ini.

Berikut ini penjelasannya:


1. Web browser pada client mengeluarkan HTTP REQUEST pada web
server tentang sebuah halaman web. Contohnya client melakukan request
halaman view_data.php
2. Web server menerima request dari client, membaca filenya dan kemudian
di proses oleh engine PHP.
3. PHP engine mulai membaca script (parsing) PHP. Didalam script
ditemukan perintah untuk melakukan koneksi ke database server
(MySQL). Sehingga PHP engine melakukan koneksi dan query ke
MySQL.
4. Server MySQL menerima query dari PHP engine dan memproses query
tersebut. Hasil query bisa berupa nilai tunggal ataupun beberapa baris
data. Hasil query kemudian dikirimkan lagi ke PHP engine.
5. PHP engine menyelesaikan pemrosesan script. Dalam hal ini, termasuk
menerjemahkan script PHP menjadi HTML untuk diberikan kepada web
server.
6. Web server mengirimkan HHTML tersebut e web browser client

2.2 Koneksi ke database


Untuk melakukan koneksi ke MySQL kita bisa menggunakan library API dari
PHP 5.0 yaitu MySQL, MySQLi dan PDO. Berikut ini contoh script untuk
melakukan koneksi ke database menggunakan MySQL, MySQLi dan PDO.

<?php
// mysqli
$mysqli = new mysqli("localhost", "user", "password", "databas
e");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!
AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);
// PDO
$pdo = new PDO('mysql:host= localhost;dbname=database','user',
'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS
_message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);
// mysql
$c = mysql_connect("localhost", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _me
ssage FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Berikut adalah contoh script untuk melakukan koneksi ke


server "localhost" kita dengan user "root" tanpa password
(kosong) dengan library mysql:

<?php
error_reporting(0);
$koneksi = mysql_connect("localhost","root","") or
die("Koneksi Gagal !" . mysql_error());
if($koneksi) echo "Koneksi Berhasil";
mysql_close($koneksi);
?>

Jika koneksi berhasil dibuka maka akan muncul Koneksi Berhasil dan
apabilah gagal, maka di web akan muncul tulisan Koneksi Gagal.

2.3 Menentukan Database


Setelah koneksi berhasil, maka selanjutnya adalah memilih database yang
akan digunakan. berikut adalah syntax perintahnya :
mysql_select_db ( nama_database )
Atau
mysql_select_db ( nama_database, $var_koneksi)
Berikut adalah contoh scriptnya :
<?php
error_reporting(0);
$koneksi=mysql_connect("localhost","root","")or die("Koneksi
Gagal !" . mysql_error());
if($koneksi) echo "Koneksi Berhasil";
$db = mysql_select_db("KOPSIS") or die("Database tidak
ada !" . mysql_error());
echo "<br />";
if($db) echo "Database KOPSIS berhasil dibuka !";
mysql_close($koneksi);
?>
Dan jika berhasil maka tampilan akan muncul tulisan Koneksi Berhasil dan
dibawanya muncul Database KOPSIS berhasil dibuka

BAB III
TUGAS PENDAHULUAN
3.1 Soal
1. Jelaskan database server dan web server yang sudah diinstal dan
keterkaitannya dengan XAMPP. Sebutkan nama dan versinya.
2. Jelaskan syntax PHP dan penggunaannya untuk membuka koneksi ke
server database dengan menggunakan library mysql pada PHP
3. Jelaskan syntax PHP dan penggunaannya untuk membuka koneksi ke
server database dengan menggunakan library PDO pada PHP.
4. Bagaimana untuk menampilkan apakah koneksi database yang dilakukan
berhasil atau tidak?Jelaskan
5. Jelaskan syntax PHP dan penggunaannya untuk menentukan database yang
akan digunakan.
3.2 Jawab
1. Penjelasan Database Server dan Web Server :
Database server adalah sebuah program komputer yang menyediakan
layanan pengolahan basis data dan melayani komputer atau program
aplikasi basis data yang menggunakan model client/server. Database
server yang digunakan pada XAMPP yaitu MYSQL. SQL
merupakan bahasa terstuktur yang digunakan untuk mengolah
database. MYSQL dapat digunakan untuk membuat dan mengelola
database beserta isinya. Kita dapat memanfaatkan MYSQL untuk
menambah, mengubah, dan menghapus data yang berada dalam
database.
Web server adalah suatu server yang memberikan layanan kepada
client yang meminta informasi berkaitan dengan web. Web server
yang digunakan pada XAMPP yaitu APACHE. Tugas utama
APACHE adalah menghasilkan halaman web yang benar kepada user
berdasarkan kode PHP atau HTML yang dituliskan oleh pembuat
halaman web.

2. Syntak PHP dan penggunaannya :

Penjelasannya :
TAG FUNGSI
<?php Untuk membuka
?> Untuk menutup
$... Untuk membuat variabel
mysql_connect Untuk membuat koneksi dengan
MySQL yang membutuhkan proses
penutupan database
Unutuk memilih database yang akan
mysql_select_db
digunakan

3. Sintaks PHP dengan menggunakan library PDO :

Penjelasannya :
TAG FUNGSI
<?php Untuk membuka
?> Untuk menutup
$... Untuk membuat variabel

4. Sintaks menampilkan apakah koneksi database berhasil atau tidak :

Yang pertama dilakukan adalah membuat percabangan agar bisa


mengetahui koneksi yang dilakukan, koneksinya itu berhasil atau gagal.
kemudian kondisinya dapat di isi dengan variabel koneksi tadi. Jika
berhasil membangun suatu koneksi maka koneksi ke database berhasil dan
apabila koneksi tersebut tidak terkoneksi maka koneksi ke database
gagal .Untuk melakukan pengecekannya bisa di panggil dari web browser.
5. Sintaks PHP untuk menentukan database yang digunakan :

Mysql dengan nama db_website.

BAB IV
IMPLEMENTASI

4.1 Tugas
4.1.2 Tugas Praktikum
1. Lakukan koneksi ke database server dari web server yang ada dan
tampilkan hasil koneksi yang dilakukannya dengan menggunakan
library MySQL pada PHP.
2. Lakukan koneksi ke database server dari web server yang ada dan
tampilkan hasil koneksi yang dilakukannya dengan menggunakan
library MySQLi pada PHP.
3. Buat script PHP untuk menampilkan stored procedure dan trigger
yang sudah dibuat pada modul 4.

4.1.2 Jawaban
1. Koneksi database dengan menggunaan library MySql pada PHP .
Source Code :

<?php
$con = new PDO('mysql:host=localhost','root', ');
if ($con) {
echo "Berhasil Connect ke Mysql";
}else{
echo "Error!!!";
}
?>

2. Koneksi database dengan menggunaan library MySqli pada PHP


Source Code :

<?php
$con = mysqli_connect('localhost','root','');
$db = mysqli_select_db($con,"dbc4");

if ($con and $db) {


echo "Berhasil Connect ke Mysql";
}else{
echo "Error!!!";
}
?>

3. Menampilkan stored procedure dan trigger yang sudah dibuat pada


modul 4.
Menampilkan Trigger :

<?php
$json = array();
$requete = "SHOW TRIGGERS";
try {
$bdd = new PDO('mysql:host=localhost;dbname=koperasi', 'root', ');
} catch(Exception $e) {
exit('Unable to connect to database.');
}
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
$row = $resultat->fetch();
array_push($json, array($row));
echo json_encode($json);
?>

Menampilkan Prosedure :

<?php
$json = array();
$requete = "SELECT routine_name, routine_type, routine_schema FROM
information_schema.routines WHERE routine_type = 'PROCEDURE' AND
routine_schema = 'rawat_inap' ";
try {
$bdd = new PDO('mysql:host=localhost;dbname=koperasi', 'root', '');
} catch(Exception $e) {
exit('Unable to connect to database.');
}

$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));


$row = $resultat->fetch();

array_push($json, array($row));
echo json_encode($json);
?>

BAB V
PENUTUP

5.1 Kesimpulan

Dari laporan diatas dapat disimpulkan bahwa ada beberapa cara untuk
membuat koneksi database yaitu dengan menggunakan library MySql,
MySqli, dan PDO. Tetapi biasanya yang sering digunakan untuk
mengkoneksikan suatu database server dengan web server yaitu koneksi
database dengan menggunakan MySql .

5.2 Saran

Praktikum Basis data 2 modul 5 telah berjalan lancar dan asprak telah
menjelaskan materi dengan baik.

LAPORAN RESMI
PRAKTIKUM BASIS DATA 2

MODUL VI
PENGEMBANGAN SISTEM INFORMASI SEDERHANA

Disusun Oleh :
TGL. PRAKTIKUM : 14 Juni 2016
NAMA TELAH DISETUJUI
: Satria Bayu SetaTANGGAL :
NRP ...........................................
: 140411100125
KELOMPOK ASISTEN
: B1 PRAKTIKUM
DOSEN : Rika Yunitarini.ST.,MT

Azza Devi Manzilia


(120411100110)
LABORATORIUM COMMON COMPUTING
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016
BAB I
PENDAHULUAN
1.1 Latar Belakang
PHP : Hypertext Preprocesor.ini marupakan bahasa yang hanya
dapat berjalan pada server dan hasilnya dapat di tampilakn pada Client.
Sebagian besar sintaks mirip dengan bahasa C, Java ditambah beberapa
fungsi PHP yang spesifik. Tujuan utama penggunaan PHP adalah untuk
memungkinkan perancang web menulis halaman web dinamik dengan
cepat. Program php harus diterjemahkan oleh web-server sehingga
menghasilkan kode html yang dikirim ke browser agar dapat
ditampilkan. Program ini dapat berdiri sendiri ataupun disisipkan
diantara kode-kode html sehingga dapat langsung ditampilkan bersama
dengan kode-kode html tersebut. File html yang telah dibumbuhi
program php harus diganti ekstensi-nya menjadi .php
Pada praktikum kali di harapkan praktikan mengerti dan
memahami dalam penerapan CRUD sesuai dengan versi masing-
masing.

1.2 Tujuan
Adapun tujuan dari praktikum Basisdata II ini adalah:
1. Mahasiswa mampu menjelaskan dan mengeksekusi query dari
PHP
2. Mahasiswa mampu membuat dan menjelaskan sistem
informasi sederhana berbasis web.
BAB II
DASAR TEORI

2.1 Built-in-function MySQL pada PHP


mysql_query() merupakan built-in-function untuk melakukan query ke
database server.
Perintah ini digunakan untuk mengeksekusi query baik itu insert,
update maupun delete.
Syntax:
Mysql_query(kalimat_sql,connection)
Contoh:
<?php
$koneksi=mysql_connect("localhost","root","")or
die("Koneksi Gagal !" . mysql_error());
if($koneksi) echo "Koneksi Berhasil";
$db = mysql_select_db("KOPSIS") or die("Database
tidak ada !" . mysql_error());
echo "<br />";
if($db) echo "Database KOPSIS berhasil dibuka !";
$klmt_sql = 'INSERT INTO supplier'.
'(kode_supplier,nama_supplier,alamat_supplier) '.
'VALUES ( "123", "H. Agung", Telang Indah c-15)';
$rec_insert = mysql_query( $sql_statemanet);
if(! $rec_insert )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($koneksi);
?>
Beberapa built-in-function MySQL pada PHP antara lain :
mysql_affected_rows mengembalikan banyaknya jumlah baris yang
terpengaruh oleh operasi MySQL yang dilakukan sebelumnya
mysql_client_encoding mengembalikan nama character set
mysql_close menutup koneksi pada server MySQL
mysql_connect membuka koneksi pada server MySQL
mysql_create_db membuat database pada server MySQL
mysql_db_name mengembalikan nama database yang ada pada
mysql_list_dbs
mysql_db_query memilih database dan melakukan query pada
database tersebut
mysql_drop_db menghapus database MySQL
mysql_errno Mengembalikan kode /nomer error yang terjadi karena
operasi MySQL yang dilakukan sebelumnya
mysql_error Menampilkan pesan error yang terjadi karena operasi
MySQL yang dilakukan sebelumnya
mysql_fetch_array Membaca satu baris data pada array asosiasi,
ataupun array numerik.
mysql_fetch_assoc Membaca satu baris data pada array asosiasi
BAB III
TUGAS PENDAHULUAN
3.1 Soal
6. Jelaskan cara menampilkan hasil query yang berupa beberapa baris record
dalam database.
7. Buat script PHP untuk melakukan query menampilkan soal no 2 pada
modul 4.
8. Jelaskan perbedaan penggunaan method GET dan POST pada form.
9. Buat form HTML sederhana untuk memasukan data pada tabel master
barang di database KOPSIS. Jelaskan penggunaan masing-masing syntax
yang digunakan.
10. Buat form HTML sederhana untuk mnegubah data pada tabel master
Barang di database KOPSIS. Jelaskan penggunaan masing- masing syntax
yang digunakan.
3.2 Jawab
6. Hasil query yang berupa beberapa baris record yaitu :
<?php
$mysql= mysql_connect("localhost","root","");
$database = mysql_select_db("modul4") or die(mysql_error());
$data = mysql_query("Select * From barang");
while ($baris=mysql_fetch_assoc($data)) {
echo $baris['kode_barang'];
echo $baris['nama_barang'];
echo "<br>";
}
?>

Penjelasan:
$mysql=mysql_connect("localhost","root",""); Untuk mengkoneksikan
dengan SQL
$database= mysql_select_db("modul4") or Untuk memilih database apa
die(mysql_error()); yang akan digunakan atau
dipilih
$data= mysql_query("Select * From barang"); Untuk memilih query pada
tabel barang dengan
database yang digunakan
adalah modul4
while ($baris=mysql_fetch_assoc($data)) Untuk memproses sebanyak
data dalam tabel database.
Contoh pada tabel di atas
digunakan untuk memproses
banyak data pada tabel
barang.
echo $baris['kode_barang']; Untuk menampilkan
kode_barang
echo $baris['nama_barang']; Untuk menampilkan
nama_barang

Hasil Running :

7. Hasil query yaitu :


<?php
$mysql= mysql_connect("localhost","root","");
$database = mysql_select_db("kopsis2") or die(mysql_error());
$data = mysql_query("Select * From laba");
while ($baris=mysql_fetch_assoc($data)) {
echo $baris['kode_barang'];
echo $baris['nama_barang'];
echo $baris['laba'];
echo "<br>";
}
?>

Hasil Running:
8. Perbedaan method GET dan POST pada form
GET
Isian form akan terlihat pada url browser
Biasanya digunakan untuk query pencarian
Digunakan untuk keperluan mengambil data
POST
Data hasil form tidak akan terlihat pada browser.
Biasanya digunakan untuk data yang lebih sensitif seperti yang
berisi password, atau registrasi user.
Data yang dikirim tidak terbatas.
9. form HTML pada tabel master barang :

Pada Tabel Barang maka akan muncul :

Script Konek_4.php (Untuk membuat form barang untuk penginputan


saja) :
<?php

$mysql= mysql_connect("localhost","root","");
$database = mysql_select_db("kopsis2") or die(mysql_error());
$data = mysql_query("Select * From barang");

?>
<h2 align="center"><u>Input Barang</u></h2>
<table width="283" border="0" align="center">
<form name="postform" action="isi_dokter.php" method="post">
<tr>
<td width="95">Kode Barang </td>
<td width="11">:</td>
<td width="163"><input type="text" name="kode_barang" value="<?php ?>"
size="15"/></td>
</tr>
<tr>
<td>Kategori Barang </td>
<td>:</td>
<td><input type="text" name="Kategori_barang" /></td>
</tr>
<tr>
<td>nama barang</td>
<td>:</td>
<td><input type="text" name="nama_barang" /></td>
</tr>
<tr>
<td>expaide</td>
<td>:</td>
<td><input type="text" name="expaide" /></td>
</tr>
<tr>
<td>jumlah</td>
<td>:</td>
<td><input type="text" name="jumlah"/></td>
</tr>
</tr>
<tr>
<td>harga beli</td>
<td>:</td>
<td><input type="text" name="harga_beli"/></td>
</tr>
<tr>
<td>harga jual</td>
<td>:</td>
<td><input type="text" name="harga_jual"/></td>
</tr>
<tr>
<td colspan="3"><div align="center">
<input type="submit" name="Submit" value="Input Data" />
</div></td>
</tr>
</form>
</table>

Script untuk tampil_data:


<?php
$mysql= mysql_connect("localhost","root","");
$database = mysql_select_db("kopsis2") or die(mysql_error());

//mengambil data dari form


$kode_barang = $_POST['kode_barang'];
$nama_barang = $_POST['nama_barang'];
$expaide = $_POST['expaide'];
$jumlah = $_POST['jumlah'];
$harga_beli= $_POST['harga_beli'];
$harga_jual= $_POST['harga_jual'];

$query = mysql_query("INSERT INTO barang (kode_barang, nama_barang,


expaide, jumlah, harga_beli,harga_jual) VALUES('$kode_barang',
'$nama_barang', '$expaide', '$jumlah', '$harga_beli', '$harga_jual')");
if ($query){
//echo "sukses";
}else{
echo "gagal : ".mysql_error();
}
?>

10. Sintaks PHP untuk menentukan database yang digunakan :


Script konek_5.php menginputkan :
<?php

$mysql= mysql_connect("localhost","root","");
$database = mysql_select_db("kopsis2") or die(mysql_error());
$data = mysql_query("Select * From barang");

?>

<h2 align="center"><u>Input Barang</u></h2>


<table width="283" border="0" align="center">
<form name="postform" action="update_data.php" method="post">
<tr>
<td width="95">Kode Barang </td>
<td width="11">:</td>
<td width="163"><input type="text" name="kode_barang" value="<?php ?>"
size="15"/></td>
</tr>
<tr>
<td>Kategori Barang </td>
<td>:</td>
<td><input type="text" name="kategori_barang" /></td>
</tr>
<tr>
<td>nama barang</td>
<td>:</td>
<td><input type="text" name="nama_barang" /></td>
</tr>
<tr>
<td>expaide</td>
<td>:</td>
<td><input type="text" name="expaide" /></td>
</tr>
<tr>
<td>jumlah</td>
<td>:</td>
<td><input type="text" name="jumlah"/></td>
</tr>
</tr>
<tr>
<td>harga beli</td>
<td>:</td>
<td><input type="text" name="harga_beli"/></td>
</tr>
<tr>
<td>harga jual</td>
<td>:</td>
<td><input type="text" name="harga_jual"/></td>
</tr>
<tr>
<td colspan="3"><div align="center">
<input type="submit" name="Submit" value="Input Data" />
</div></td>
</tr>
</form>
</table>

Script update_data.php (untuk mengupdate data yang kita akan update) :


<?php
$mysql= mysql_connect("localhost","root","");
$database = mysql_select_db("kopsis2") or die(mysql_error());
$data = mysql_query("Select * From barang");

//mengambil data dari form


$kode_barang = $_POST['kode_barang'];
$kategori_barang = $_POST['kategori_barang'];
$nama_barang = $_POST['nama_barang'];
$expaide = $_POST['expaide'];
$jumlah = $_POST['jumlah'];
$harga_beli= $_POST['harga_beli'];
$harga_jual= $_POST['harga_jual'];

$query = mysql_query("UPDATE barang SET kode_barang = '$kode_barang',


kategori_barang = '$kategori_barang', nama_barang = '$nama_barang', expaide =
'$expaide', jumlah = '$jumlah', harga_beli = '$harga_beli', harga_jual =
'$harga_jual' WHERE kode_barang = '$kode_barang'");
if ($query){
//echo "sukses";
}else{
echo "gagal : ".mysql_error();
}
?>
BAB IV
IMPLEMENTASI
4.1. Tugas Praktikum
4.1.1 Soal
1. Buat form HTML sederhana untuk memasukkan data pada tabel
didatabase pada studi masing-masing.
2. Buat form HTML sederhana untuk mengubah data pada tabel di
database pada studi kasus masing-masing.
4.1.2 Jawaban
1. Form untuk menambah data barang:
<!DOCTYPE html>
<html>
<head>
<title>Input Data</title>
</head>
<header>
<h1>FORM INPUT BARANG</h1>
</header>
<body>
<form action="savedata.php" method="post">
<table align="left">

<tr>
<td>KODE BARANG</td>
<td>:</td>
<td><input type="text" name="id "></td>

</tr>
<tr>
<td>NAMA BARANG</td>
<td>:</td>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<td>STOCK</td>
<td>:</td>
<td><input type="text" name="stock"></td>

</tr>
<tr>
<td>SATUAN</td>
<td>:</td>
<td><input type="text" name="satuan"></td>

</tr>
<tr>
<td>EXPAIRED</td>
<td>:</td>
<td><input type="date" name="expaired"></td>

</tr>
<tr>
<td> </td>
<td> </td>
<td>
<input name="submit" value="submit"
type="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>
2. Edit Barang

<?php
include"koneksi.php";
$id=$_GET['id'];
$sql = mysql_query("SELECT * FROM barang WHERE
KODE_BARANG = '$id'");
$tampil = mysql_fetch_array($sql);
?>

<!DOCTYPE html>
<html>
<head>
<title>Edit Data</title>
</head>
<header>
<h1>FORM EDIT BARANG</h1>
</header>
<body>
<form action="saveedit.php" method="post">
<table align="left">

<tr>
<td>ID Dokter</td>
<td>:</td>
<td><input type="text" name="id" value="<?php
echo $tampil['KODE_BARANG']; ?>"></td>

</tr>
<tr>
<td>Nama</td>
<td>:</td>
<td><input type="text" name="nama" value="<?php
echo $tampil['NAMA_BARANG']; ?>"></td>

</tr>
<tr>
<td>Alamat</td>
<td>:</td>
<td><input type="text" name="stock" value="<?php
echo $tampil['STOCKBARANG']; ?>"></td>

</tr>
<tr>
<td>No HP</td>
<td>:</td>
<td><input type="text" name="satuan" value="<?php
echo $tampil['SATUAN']; ?>"></td>

</tr>
<tr>
<td>Spesialis</td>
<td>:</td>
<td><input type="date" name="expaired" value="<?
php echo $tampil['EXPAIREDBARANG']; ?>"></td>

</tr>

<tr>
<td> </td>
<td> </td>
<td>
<input name="submit" value="Edit" type="submit"
/>
</td>
</tr>
</table>
</form>
</body>
</html>
BAB V
PENUTUP

5.1 Kesimpulan
Dalam melakukan pengembangan sistem informasi di butuhkan
ketelitian daam pembuatannya. Karena kesalahan pada pemuatan sistem
informasi ini tidak sama saat kita memuat program dengan editor netbeans
yang mudah dalam pencarian kesalahannya.
Dalam memprogram php harus dilihat versi xampp yang kita gunakan
karena setiap versi xampp maka code nya pun berbeda kadang terdapat code
yang tidak support. Maka dalam hal ini kita sangat membutuhkan ketelitian.
5.2 Saran
Praktikum Basis data 2 modul 6 telah berjalan lancar dan asprak telah
menjelaskan materi dengan baik.
PENUTUP LAPORAN AKHIR

Kesimpulan
Basisdata adalah kumpulan informasi yang disimpan di
dalam komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data
tersebut. Perangkat lunak yang digunakan untuk mengelola dan
memanggil kueri (query) basis data disebut sistem manajemen basis
data (database management system/ DBMS).
Dalam Praktikum Basis Data 2 ini membahas materi meliputi:
1. Perancangan Basisdata
2. Mengenal DDL dan DML
3. Mengenal Union, Join, dan View
4. Mengenal Stored dan Trigger
5. Melakukan Koneksi dari Web ke Database
6. Pengembangan Sistem Informasi Sederhana

Saran
Dalam melaksanakan praktikum, diiharapkan lebih di perjelas kembali
karena masih ada beberapa praktikan yg masih belom mengerti.
Kepada asisten praktikum sistem mengajarnya sudah baik dengan
membagi asisten di beberapa sudut ruangan agar dapat membantu
praktikan yang programnya eror
BIODATA
DAFTAR RIWAYAT HIDUP

Data Pribadi
Nama : Satria Bayu Seta
Tempat Tanggal Lahir : Bangkalan, 26 Maret 1996
Alamat : Jl.Tidar No.7 Rt/Rw. 004/001 Kel. Mlajah
Kec/Kab.Bangkalan
E-mail : satriabayuseta14125@gmail.com
Web-blog : jendelasatria.wordpress.com

Riwayat Pendidikan
SDN KEMAYORAN 1 BANGKALAN 2002-2008
Kecamatan Bangkalan, Kab Bangkalan, Jawa Timur
SMPN 2 BANGKALAN 2008-2011
Kecamatan Bangkalan, Kab Bangkalan, Jawa Timur
SMAN 1 BANGKALAN 2011-2014
Kecamatan Bangkalan, Kab Bangkalan, Jawa Timur
Universitas Trunojoyo Madura 2014- sekarang
Kecamatan Kamal, Kab Bangkalan, Jawa Timur