Anda di halaman 1dari 38

Modul Perancangan Basisdata dan database terdistribusi

Hasil Penelitian Normalisasi dalam Perancangan Database dan SQL dalam


database relational.

Zainul Efendy,S.Kom,M.Kom, Vetho Sayuthi,MT,Suardinata,M.Kom

,,

2017
Kata Pengantar

Dengan rahmat Allah SWT Modul Praktikum Perancangan Basisdata ini selesai juga ditulis dengan
lengkap yang merupakan hasil penelitian yang saya ciptakan untuk perkuliahan perancangan
basisdata, semua itu tidak lepas dari kerja keras semua pihak yang membantu kelancaran penelitian
ini.

Tidak lupa saya uncapkan terima kasih kepada yayasan amal bakti mukmin Padang yang melalui
STMIK Indonesia yang telah memberikan dukungan secara moril dan financial dalam bentuk dana
penelitian untuk mensukseskan penelitian sehingga bisa menghasilkan modul praktikum ini.

Semua isi modul ini digunakan untuk kepentingan peningkatan mutu pembelajaran perancangan
database yang ada di STMIK Indonesia Padang, dan bisa dimanfaatkan untuk kepentingan siapa-
saja yang berminat untuk belajar Perancangan database mengunakan DBMS MySQL.

Modul ini masih banyak kekurangan, penulis sangat berterima kasih sekali jika ada kritik dan saran.
Bisa dialamat ke Email:zainulefendy76@gmail.com

Salam Hormat saya

Penulis

Zainul Efendy,

2
Daftar Isi

Kata Pengantar...................................................................................................................................................... 2
Daftar Isi ................................................................................................................................................................ 3
Daftar gambar ....................................................................................................................................................... 4
Modul I(Pengolahan Nilai Mahasiswa Dengan Variabel Komplek) ....................................................................... 5
MODUL II(Studi Kasus Pengolahan Nilai) ............................................................................................................ 10
MODUL III(studi Kasus Pembelian Barang) ......................................................................................................... 15
MODUL IV(Studi Kasus Properti)......................................................................................................................... 19
Modul V(studi Kasus Pengajian) ......................................................................................................................... 25
Modul V(studi kasus pengajian merupakan modul yang tercipta dari hasil penelitian yang berjudul
normalisasi dalam perancangan database ........................................................................................................... 25
Modul VI(Studi kasus Investasi) .......................................................................................................................... 30
Modul VI(studi kasus pengajian merupakan modul yang tercipta dari hasil penelitian yang berjudul SQL
dalam database relational .................................................................................................................................... 30

3
Daftar gambar

Figure 1 Laporan Nilai mahasiswa semester ganjil 2015/2016 ..................................................... 5


Figure 2 laporan pembayaran gaji................................................................................................. 25
Figure 3 bentuk laporan investasi ................................................................................................. 31
Figure 4 Tabel investor ................................................................................................................. 33
Figure 5Tabel investasi. ................................................................................................................ 33
Figure 6 Tabel kontrak .................................................................................................................. 33
Figure 7 Tabel detailkontrak ......................................................................................................... 34

4
Modul I(Pengolahan Nilai Mahasiswa Dengan Variabel Komplek)
Materi:

1. Memahmi perintah sql


2. Memahami perintah modul ddl
3. Memahami perintah modul dml

Modul in dipaparkan dalam bentuk studi kasus. Pada pertemuan Pertama ini. Penulis membuat
rancangan laporan Data Keseluruhan nilai Mahasiswa selama satu semester untuk beberapa
orang dosen dan beberapa orang mahasiswa. Seperti Gambar 1.

Figure 1 Laporan Nilai mahasiswa semester ganjil 2015/2016


Dari gambar 1 diatas kita bisa membuat kamus data untuk masing-masing entity dan
mengkelempokkannya kedalam beberapa entitas yaitu

1. mtk atributnya(kodemk,namamk,sks),
2. mhsatributnya(nobp,namamhs,jeniskel,tmplahir, tgllahir)
3. dosen atributnya(kodedosen, Namadosen)
4. tnilaiatributnya((Semester ,Tahunajaran,prodi ,kodedosen ,kodemk
,nobp,nt,nmid,sem,nakhir ,nhuruf ,mutu , bobot )

Semua Proses diatas bisa anda lewati syaratnya adalah saudara harus menguasai dulu proses
teknik normalisasi, teknik normalisasi adalah suatu metode untuk mengambarkan atau
membentuk suatu laporan menjadi tabel-tabel yang lebih kecil dan masing-masing tabel
mempunyai field kunci untuk merelasikan semua tabel tersebut kembali kedalam bentuk suatu
bangun data kembali menjadi satu kesatuan seperti laporan gambar 1, karena teknik inilah yang
menjadi ilmu dasar untuk bisa mengkelompokkan entitas pada laporan yang ada di Gambar 1,
sehingga bisa langsung membuat dan membentuk tabel melalui perintah SQL. Perintah SQL
adalah perintah query yang digunakan membentuk dan memanipulasi data yang ada pada suatu
laporan. Pada perintah SQL ada 3 modul bahasa yaitu :

1. Modul Bahasa DDL(Data Definition Languages)

5
DDL adalah perintah dasar untuk menentukan struktur dasar database, pembentuk tabel-
tabel beserta tabel-tabel yang terkait dalam laporan seperti gambar 1
2. Modul Bahasa DML(Data Manipulation Languages)
DML adalah perintah untuk mengolah data yang akan dimasukkan kedalam tabel-tabel
yang telah diciptakan.
3. Modul Bahasa DCL(Data Controlling Languages)
DCL adalah perintah untuk pengamanan data yang ada dalam tabel-tabel sekaligus
perintah pengamanan modul-modul yang ada pada mysql tersebut seperti perintah
Grant(perintah memberikan hak kepada user atau modul),dan perintah Revoke adalah
perintah untuk menarik kembali hak yang telah diberikan kepada user tertentu atau modul
tertentu sesuai dengan kriteria yang telah ditentukan.

Dalam modul ini kita hanya membahas dua modul utama yaitu modul DDL dan DML.

Dalam kasus ini kita anggap dulu saudara sudah faham mengenai teknik normalisasi,karena
teknik ini telah dibahas dalam Matakuliah Sistem Basisdata. Selanjutnya mari kita lanjut
ketahapan pertama yaitu pembentuk dan mengaktif database yang kita gunakan seperti sintaks
dibawah ini.
Menciptakan database
CREATE DATABASE DBAKNOBP; DBAKNOBP

USE DBAKNOBP; Mengaktifkan database dbaknobp

CREATE TABLE mtk (kodemk varchar(10) Menciptakan tabel mtk


primary key not null,Namamk varchar(50) NOT
NULL,Sks int(1) NOT NULL);

CREATE TABLE mhs (nobp varchar(12) Menciptakan tabel mhs


primary key NOT NULL,
Namamhs varchar(35) NOT NULL,
jeniskel enum('L','P') NOT NULL,
tmplahir varchar(20) NOT NULL,
tgllahir date NOT NULL);

Menciptakan tabel dosen


CREATE TABLE dosen(kodedosen varchar(5)
primary key NOT NULL,
Namadosen varchar(35) NOT NULL);

CREATE TABLE tnilai (Semester varchar(20) NOT NULL,


Tahunajaran varchar(20) NOT NULL,prodi varchar(25) NOT NULL, Menciptakan
kodedosen varchar(5) NOT NULL,kodemk varchar(10) NOT NULL, tabel tnilai
nobp varchar(12) NOT NULL,ntint(3) NOT NULL,nmid int(3) NOT
NULL,semi nt(3) NOT NULL,nakhir decimal(5,2) NOT NULL,
nhuruf varchar(2) NOT NULL,mutu decimal(5,2) NOT NULL, bobot
decimal(5,2) NOT NULL);

6
Perintah Masukan
INSERT INTO `mtk` VALUES ( 'KK01', 'PerancanganBasisdata', 3),( data mtk
'KK02', 'Database terdistribusi', 3), ( 'KK03', 'Pemograman web I', 3),(
'KK04', 'Bahasa pemograman I', 3), ( 'KK05', 'Bahasa pemograman II',
3);

Perintah Masukan
INSERT INTO `mhs` VALUES data mhs
('111200156', 'SLAMET SUNARTO', 'L', 'Padang', '1996-12-10'),
('101100206', 'TANGKAS SIMANJUNTAK', 'L', 'Padang', '1997-12-10'),
('111100304', 'ADERIA ASTI ', 'P', 'Padang', '1994-12-10'),
('101200001', 'PRIHATIN NESTRI', 'P', 'Padang', '1997-12-10'),
('101200002', 'JUNIARTO TUMANGGOR', 'L', 'Padang', '1994-12-10'),
('101200003', 'SUPERMAN', 'L', 'Padang', '1996-12-10'),
('101200004', 'ROSIDI', 'L', 'Padang', '1996-12-10'),
('101200005', 'VIONA PUTRI', 'P', 'Padang', '1993-12-10'),
('101200006', 'ERYK PRATAMA', 'L', 'Padang', '1996-12-10'),
('101200007', 'WASBIR REFLI', 'L', 'Padang', '1997-12-10'),
('141200007', 'RESTU NINGSIH', 'P', 'Padang', '1997-12-10');
Perintah Masukan
INSERT INTO `DOSEN` VALUES ('ZE', 'Zainul data dosen
Efendy,S.Kom,M.Kom');
INSERT INTO `DOSEN` VALUES ('AM', 'Amuharnis,S.Kom,M.Kom');
INSERT INTO `DOSEN` VALUES ('RR', 'RusdisalRusmi,S.Pd,M.Si');

INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi', Perintah Masukan


'ZE','KK01','111200156', 70, 80, 70, 0, '-', 0, 0); data tnilai
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'AM','KK02','101100206',45, 90, 79, 0, '-', 0,0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'ZE','KK01','111100304',90, 90, 80,0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'ZE','KK01','101200001',80, 80, 80,0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'AM','KK03','101200002', 24, 78, 47,0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'ZE','KK01','101200003',70, 90, 50, 0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'AM','KK02','101200004',70, 70, 80,0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'ZE','KK01','101200005', 80, 90, 50, 0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'ZE','KK01','101200006', 56, 60, 50, 0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'AM','KK05','101200007',70, 90, 50, 0, '-', 0, 0);
INSERT INTO `tnilai` VALUES ('Ganjil', '2015/2016', 'SistemInformasi',
'AM','KK05','141200007',70, 90, 45, 0, '-', 0, 0);

7
updatetnilai set nakhir=(0.2*nt)+(0.35*nmid)+(0.45*sem);
UPDATE TNILAI SET NHURUF="A" WHERE NAKHIR>=85 and NAKHIR<=100 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="A-" WHERE NAKHIR>=80 and NAKHIR<85 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="B+" WHERE NAKHIR>=75 and NAKHIR<80 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="B" WHERE NAKHIR>=70 and NAKHIR<75 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="B-" WHERE NAKHIR>=65 and NAKHIR<70 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="C+" WHERE NAKHIR>=60 and NAKHIR<65 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="C" WHERE NAKHIR>=55 and NAKHIR<60 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="C-" WHERE NAKHIR>=50 and NAKHIR<55 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="D" WHERE NAKHIR>=45 and NAKHIR<50 and
left(nobp,2)>="14";
UPDATE TNILAI SET NHURUF="E" WHERE NAKHIR<45 and left(nobp,2)>="14";

UPDATE TNILAI SET NHURUF="A" WHERE NAKHIR>=80 and NAKHIR<=100 and


left(nobp,2)<"14";
UPDATE TNILAI SET NHURUF="B" WHERE NAKHIR>=65 and NAKHIR<80 and
left(nobp,2)<"14";
UPDATE TNILAI SET NHURUF="C" WHERE NAKHIR>=55 and NAKHIR<65 and
left(nobp,2)<"14";
UPDATE TNILAI SET NHURUF="D" WHERE NAKHIR>=45 and NAKHIR<55 and
left(nobp,2)<"14";
UPDATE TNILAI SET NHURUF="E" WHERE NAKHIR<45 and left(nobp,2)<"14";
UPDATE TNILAI SET mutu=4 WHERE Nhuruf="A";
UPDATE TNILAI SET mutu=3.75 WHERE Nhuruf="A-";
UPDATE TNILAI SET mutu=3.5 WHERE Nhuruf="B+";
UPDATE TNILAI SET mutu=3 WHERE Nhuruf="B";

8
UPDATE TNILAI SET mutu=2.75 WHERE Nhuruf="B-";
UPDATE TNILAI SET mutu=2.50 WHERE Nhuruf="C+";
UPDATE TNILAI SET mutu=2. WHERE Nhuruf="C";
UPDATE TNILAI SET mutu=1.75 WHERE Nhuruf="C-";
UPDATE TNILAI SET mutu=1 WHERE Nhuruf="D";
UPDATE TNILAI SET mutu=0 WHERE Nhuruf="E";

create view tview as select mtk.sks,tnilai.* from tnilai join mtk on mtk.kodemk=tnilai.kodemk;
UPDATE Tview SET bobot=mutu*sks;
SELECT tnilai.semester ,tnilai.tahunajaran ,tnilai.prodi ,tnilai.kodedosen,dosen.namadosen
,tnilai.kodemk ,
mtk.namamk,mtk.sks,tnilai.nobp,mhs.namamhs,mhs.jeniskel,mhs.tmplahir,mhs.tgllahir ,tnilai.nt
,tnilai.nmid,
tnilai.sem ,tnilai.nakhir ,tnilai.nhuruf ,
tnilai.mutu, tnilai.bobot FROM TNILAI,dosen,mtk,mhs
wheretnilai.kodedosen=dosen.kodedosen and tnilai.kodemk=mtk.kodemk and
tnilai.nobp=mhs.nobp;
latihan:
1. Buatlah Pernyataan mengunakan perintah DML(SELECT) SIapa dosen yang tidak
mengajar atau tidak memberikan nilai pada semester diatas?
2. Siapa saja dosen yang mengajar pada semester diatas?
3. Siapa saya mendapat nilai A,B,C,D,E?
4. Berapa orang yang mendapat nilai [A,B,C,D,E]?
5. Berapa orang yang mempunyai NOBP 14
6. Berapa orang yang mempunyai NOBP DI BAWAH 14
7. Berapa orang yang mempunyai nama awal A.B.C.D.E

9
MODUL II(Studi Kasus Pengolahan Nilai)
Materi Ke 2
1. Proses normalisasi Ke 1
2. Proses normalisasi ke 2
3. Proses normalisasi ke 3
4. Perintah Sql modul DDL dan DML

Lakukanlah Proses normalisasi dari laporan dibawah ini setelah itu bentuk
sqlnya(Unnormalisasi,1nf,2NF,3NF dan bentuk struktur datanya dan sqlnya)

10
11
12
13
PERINTAH SQLNYA Adalah sebagai berikut:
create database dka1;
use dka1;
create table mhs(no_mhs varchar(5) primary key not null,
nm_mhs varchar(30) not null, jurusan varchar(15));
create table mtk(kd_mk varchar(6) primary key not null,nama_mk varchar(30));
create table dosen(no_dos varchar(6) primary key not null,nama_dos varchar(30));
create table nilai(no_mhs varchar(5),kd_mk varchar(6),no_dos varchar(6),nil varchar(1));

insert into mhs values("0001","Adi","TKJ"),("0002","Budi","MI");


insert into mtk values("MKK350","MANAJEMEN DB"),
("MKK365","ALGORITMA I"),
("MKK351","PAKET PEMROGR"),
("MKK352","PTI");
insert into dosen values("B104","ATI"),("B105","ITA"),
("B103","DIDI"),("B106","Dodi");
Insert into nilai values("0001","MKK350","B104","A"),
("0001","MKK365","B105","B"),
("0002","MKK350","B104","A"),
("0002","MKK351","B103","B"),
("0002","MKK352","B106","A");

select mhs.*,mtk.*,dosen.*,nilai.nil
from mhs,mtk,dosen,nilai
where mhs.no_mhs=nilai.no_mhs and
mtk.kd_mk=nilai.kd_mk
and dosen.no_dos=nilai.no_dos;

14
MODUL III(studi Kasus Pembelian Barang)
Materi ke 3

1. Proses Normalisasi
2. Implementasi sql

Bentuk laporan masing-masing individu adalah sebagai berikut

15
16
Sqlnya adalah sebagai berikut:
create database pembelian2;
use pembelian2;
create table pembeli(no_pem varchar(5) primary key,
nm_pem varchar(15),kode_kota varchar(5),alamat varchar(25));
create table kota (kode_kota varchar(5) primary key,kota varchar(15));
create table barang(no_brg varchar(5) primary key,nm_brg varchar(10));
create table transaksi(no_pem varchar(5),no_brg varchar(5),jmlh int(7));
insert into pembeli values("P001","ADI","K001","JL.OTISTA"),
("P002","BUDI","K003","JL.S.PARMAN"),
("P003","BUDI","K002","JL.HANGTUAH");
insert into kota values("K001","Jakarta"),
("K003","Bandung"),("K002","Padang");
insert into barang values("B-001","A"),("B-002","B"),("B-003","C");
insert into transaksi values("P001","B-001",1000),

17
("P001","B-002",1500),("P001","B-003",2000),("P002","B-003",2000),
("P003","B-002",1500);
select pembeli.no_pem,pembeli.kode_kota,kota.kota,pembeli.alamat,
barang.*,transaksi.jmlh from pembeli,kota,barang,transaksi
where pembeli.kode_kota=kota.kode_kota and pembeli.no_pem=transaksi.no_pem and
barang.no_brg=transaksi.no_brg;

18
MODUL IV(Studi Kasus Properti)
Materi ke 4

1. Proses Normalisasi
2. Implementasi sql

19
Bentuk Normal Pertama
Bentuk normal pertama terpenuhi jika sebuah tabel tidak memiliki atrribut yang bernilai banyak
(multi value attribut) artinya setiap pertemuan baris dan kolom hanya berisikan satu nilai (singel
value attribut)

Bentuk Normal Kedua

Akan terpenuhi jika bentuk data telah memenuhi kriteria Bentuk Normal Pertama dan setiap
atrribut yang bukan kunci haruslah bergantung secara fungsional (functional dependency)
terhadap attribut kunci / primary key. Sehingga untuk membentuk Normal ke dua haruslah sudah
ditentukan field kunci
Contoh :
Tentukan primary key  Kdplg,Kdprop
Tentukan Functional dependency
Kdplg  Nmplg
Kdprop  almprop,biaya,kdpmlk,nmpmlk
Kdplg,Kdprop  T-mulai, T-selesai
Maka bentuk normal keduanya adalah :

20
21
Bentuk Normal Ketiga
Bentuk data telah memenuhi kriteria bentuk normal pertama dan kedua serta tidak terdapat
transitive dependency yaitu sebuah attribut yang bukan kunci selain bergantungan kepada
attribut kunci, juga bergantungan kepada attribut bukan kunci yang lainnya. Sehingga setiap
attribut bukan kunci haruslah bergantung hanya pada attribut kunci (primary key)

22
Keterangan : Untuk membangun databasenya maka pembentukan file/tabelnya harus
terurut seperti berikut ini :
23
Pemilik
Pelanggan
Property
Plg_prop

CREATE DATABASE PERUMAHAN;

USE PERUMAHAN;

CREATE TABLE PEMILIK(KDPML VARCHAR(5) PRIMARY KEY,NMPML VARCHAR(15));

CREATE TABLE PELANGGAN(KDPLG VARCHAR(5) PRIMARY KEY,NMPLG VARCHAR(15));

CREATE TABLE PROPERTY(KDPROP VARCHAR(5) PRIMARY KEY,ALMPROP VARCHAR(15),BIAYA


INT(9),KDPML VARCHAR(5));

CREATE TABLE PLG_PROP(KDPLG VARCHAR(5),KDPROP VARCHAR(5), T_MULAI DATE,T_SELESAI DATE);

INSERT INTO PEMILIK VALUES('PL-01','ANDi'),('PL-15','SUSY');

INSERT INTO PELANGGAN VALUES('PL025','MIRA'),('PL089','HANI');

INSERT INTO PROPERTY VALUES('PR-22','TABING',55,'PL-01'),('PR-64','JONDUL',24,'PL-15'),('PR-


45','INDARUNG',60,'PL-01');

INSERT INTO PLG_PROP VALUES('PL025','PR-22','06-06-01','11-06-01'),('PL025','PR-64','08-04-12','11-04-


12'),('PL089','PR-45','07-03-21','11-03-21'),('PL089','PR-64','08-06-15','13-06-15'),('PL089','PR-22','06-02-
02','13-02-02');

SELECT
PELANGGAN.*,PROPERTY.KDPROP,PROPERTY.ALMPROP,PLG_PROP.T_MULAI,PLG_PROP.T_SELESAI,PRO
PERTY.BIAYA,PEMILIK.* FROM PEMILIK,PELANGGAN ,PROPERTY,PLG_PROP WHERE
PLG_PROP.KDPLG=PELANGGAN.KDPLG AND PLG_PROP.KDPROP=PROPERTY.KDPROP AND
PROPERTY.KDPML=PEMILIK.KDPML;

24
Modul V(studi Kasus Pengajian)

Materi ke 5

1. Proses Normalisasi
2. Implementasi sql

Modul V(studi kasus pengajian merupakan modul yang tercipta dari hasil penelitian yang berjudul
normalisasi dalam perancangan database

Figure 2 laporan pembayaran gaji


Dari bentuk laporan diatas lakukan proses normalisasinya dan bentuk sqlnya:
Dengan ketentuan sebagai berikut:
a. Gaji Anda Tentukan Berdasarkan Golongan

b.Tunjangan Transport=jumlah kehadiranX20 ribu),tunjanganmakan=jumlah kehadiranX20 ribu)

c.tunjangananak[10%Xgaji]xjumlahanak dimana jumlah anak tidak lebih dari 2 jika lebih maka tetap dikalikan 2

d.tunjanganistri_suami[10%xgaji]

e.gajikotor=tunjangananak+tunjanganistri_suami+gaji+tunjangantranspor+tunjanganmakan+tunjanganjabatan

f.pajak=5%Xgaji

g. gajibersih=gajikotor-pajak

25
N Jawaban
o
1 create database jawabanmid;
use jawabanmid;

create table karyawan(nip varchar(20) primary key not null,


nama varchar(35) not null,status enum("K","TK"),
JMA int(1) not null,jk enum("L","P") not null,
tgllahir date not null);

create table slip(noslip varchar(15) primary key not null,


tglbayar date not null,jmlh int(2) not null,
nip varchar(20) not null);

create table jabatan(kodej enum("A","B","C","D","E","F","G","H") primary key not null,


jabatan enum("KOMISARIS","DIREKTUR","WAKIL DIREKTUR","KEPALA BAGIAN","MANAJER",
"KARYAWAN","OFFICE BOY","MEKANIK") not null,tunjanganJ int(10) not null);

create table golongan(gol


enum("A1","A2","A3","A4","B1","B2","B3","B4","C1","C2","C3","C4","D1","D2","D3","D4") primary key
not null,
gaji int(10) not null);

create table translip(noslip varchar(15) primary key not null,


kodej enum("A","B","C","D","E","F","G","H") not null,
gol enum("A1","A2","A3","A4","B1","B2","B3","B4","C1","C2","C3","C4","D1","D2","D3","D4") not null,
tunjanganT int(10) not null,tunjanganM int(10),tunjanganA int(10) not null,tunjanganI int(10),
gajiK int(10) not null,pajak int(10) not null,gaber int(10) not null);

insert into karyawan values("19800220001","salman","K",1,"L","80-12-20");


insert into karyawan values("19801020002","RIDO","K",2,"L","80-12-21");
insert into karyawan values("19800220003","Ginanjar","K",3,"L","80-12-22");
insert into karyawan values("19800220004","Roni","K",4,"L","80-12-23");
insert into karyawan values("19800220005","Teguh cahaya buana","K",5,"L","80-12-24");
insert into karyawan values("19800220006","vivi","K",1,"P","80-12-26");
insert into karyawan values("19800220007","nanda","K",2,"P","80-12-27");
insert into karyawan values("19800220008","sari","K",3,"P","80-12-28");
insert into karyawan values("19800220009","junita","K",2,"P","80-12-29");
insert into karyawan values("19800220010","baharuddin","K",2,"L","80-12-30");
insert into karyawan values("19800220011","desi","K",2,"P","80-12-31");
insert into karyawan values("19800220012","rahma","K",2,"P","81-01-01");
insert into karyawan values("19800220013","sinta","TK",0,"P","81-01-02");
insert into karyawan values("19800220014","putra yudha","TK",0,"P","81-01-03");
insert into karyawan values("19800220015","wati","TK",0,"P","81-01-04");
insert into karyawan values("19800220016","budi rahman","TK",0,"P","81-01-04");

26
insert into jabatan values("A","Komisaris",0);
insert into jabatan values("B","DIREKTUR",0);
insert into jabatan values("C","WAKIL DIREKTUR",0);
insert into jabatan values("D","KEPALA BAGIAN",0);
insert into jabatan values("E","MANAJER",0);
insert into jabatan values("F","KARYAWAN",0);
insert into jabatan values("G","OFFICE BOY",0);
insert into jabatan values("H","MEKANIK",0);

insert into golongan values("A1",0);


insert into golongan values("A2",0);
insert into golongan values("A3",0);
insert into golongan values("A4",0);
insert into golongan values("B1",0);
insert into golongan values("B2",0);
insert into golongan values("B3",0);
insert into golongan values("B4",0);
insert into golongan values("C1",0);
insert into golongan values("C2",0);
insert into golongan values("C3",0);
insert into golongan values("C4",0);
insert into golongan values("D1",0);
insert into golongan values("D2",0);
insert into golongan values("D3",0);
insert into golongan values("D4",0);

insert into slip values("000000001","15-11-05",25,"19800220001");


insert into slip values("000000002","15-11-05",20,"19801020002");
insert into slip values("000000003","15-11-05",23,"19800220003");
insert into slip values("000000004","15-11-05",26,"19800220004");
insert into slip values("000000005","15-11-05",21,"19800220005");
insert into slip values("000000006","15-11-05",22,"19800220006");
insert into slip values("000000007","15-11-05",23,"19800220007");
insert into slip values("000000008","15-11-05",24,"19800220008");
insert into slip values("000000009","15-11-05",22,"19800220009");
insert into slip values("000000010","15-11-05",21,"19800220010");
insert into slip values("000000011","15-11-05",26,"19800220011");
insert into slip values("000000012","15-11-05",25,"19800220012");
insert into slip values("000000013","15-11-05",23,"19800220013");
insert into slip values("000000014","15-11-05",25,"19800220014");
insert into slip values("000000015","15-11-05",23,"19800220015");
insert into slip values("000000016","15-11-05",21,"19800220016");

insert into translip values("000000001","A","D4",0,0,0,0,0,0,0);


insert into translip values("000000002","B","D3",0,0,0,0,0,0,0);
insert into translip values("000000003","C","D2",0,0,0,0,0,0,0);
insert into translip values("000000004","D","D1",0,0,0,0,0,0,0);

27
insert into translip values("000000005","E","C4",0,0,0,0,0,0,0);
insert into translip values("000000006","F","C3",0,0,0,0,0,0,0);
insert into translip values("000000007","G","C2",0,0,0,0,0,0,0);
insert into translip values("000000008","H","C1",0,0,0,0,0,0,0);
insert into translip values("000000009","E","B1",0,0,0,0,0,0,0);
insert into translip values("000000010","F","B2",0,0,0,0,0,0,0);
insert into translip values("000000011","H","B3",0,0,0,0,0,0,0);
insert into translip values("000000012","E","B4",0,0,0,0,0,0,0);
insert into translip values("000000013","F","A1",0,0,0,0,0,0,0);
insert into translip values("000000014","H","A2",0,0,0,0,0,0,0);
insert into translip values("000000015","D","A3",0,0,0,0,0,0,0);
insert into translip values("000000016","E","A4",0,0,0,0,0,0,0);

create view tgaji as select slip.*,karyawan.nama,karyawan.status,


karyawan.jma,karyawan.jk,karyawan.tgllahir,translip.kodej,
jabatan.jabatan,jabatan.tunjanganJ,translip.gol,golongan.gaji,translip.tunjanganT,translip.tunjanganM,
translip.tunjanganA,translip.tunjanganI,translip.gajiK,translip.pajak,translip.gaber from slip,karyawan,
translip,jabatan,golongan where slip.nip=karyawan.nip and slip.noslip=translip.noslip and
translip.kodej
=jabatan.kodej and translip.gol=golongan.gol;

update jabatan set tunjanganj=10000000 where kodej="A";


update jabatan set tunjanganj=9000000 where kodej="B";
update jabatan set tunjanganj=8000000 where kodej="C";
update jabatan set tunjanganj=7000000 where kodej="D";
update jabatan set tunjanganj=600000 where kodej="E";
update jabatan set tunjanganj=500000 where kodej="F";
update jabatan set tunjanganj=400000 where kodej="G";
update jabatan set tunjanganj=200000 where kodej="H";

update golongan set gaji =400000 where gol="A1";


update golongan set gaji =500000 where gol="A2";
update golongan set gaji =600000 where gol="A3";
update golongan set gaji =700000 where gol="A4";
update golongan set gaji =800000 where gol="B1";
update golongan set gaji =900000 where gol="B2";
update golongan set gaji =1000000 where gol="B3";
update golongan set gaji =2000000 where gol="B4";
update golongan set gaji =3000000 where gol="C1";
update golongan set gaji =4000000 where gol="C2";
update golongan set gaji =5000000 where gol="C3";
update golongan set gaji =6000000 where gol="C4";
update golongan set gaji =7000000 where gol="D1";
update golongan set gaji =8000000 where gol="D2";
update golongan set gaji =9000000 where gol="D3";
update golongan set gaji =10000000 where gol="D4";
update tgaji set tunjanganT=20000*jmlh;
update tgaji set tunjanganM=20000*jmlh;

28
update tgaji set tunjanganA=0.1*gaji*jmA where jma<=2;
update tgaji set tunjanganA=0.1*gaji*2 where jma>2;
update tgaji set tunjanganI=0.1*gaji;
update tgaji set gajik=tunjanganT+tunjanganM+tunjanganA+tunjanganI ;
update tgaji set pajak=0.05*gaji;
update tgaji set gaber=gajik-pajak;

select * from tgaji;

29
Modul VI(Studi kasus Investasi)

Materi ke VI

1. Proses Normalisasi
2. Implementasi sql

Modul VI(studi kasus pengajian merupakan modul yang tercipta dari hasil penelitian yang
berjudul SQL dalam database relational
Lakukan proses normalisasi dan bentuk sql untuk menghitung besar investasi pada suatu
perusahaan dengan ketentuan Proses sebagai berikut:
 Jika kode investasinya=”H-007” maka namainvestasinya=” MODAL ASING”
o Jenis investasinya=”Investasi asing”
o Modal awalnya= Rp 620.000.000.000
o Bunga investasinya=10% X Modal awalnya

 Jika kode investasinya=”H-008” maka namainvestasinya=” SAHAM BERJANGKA”


o Jenis investasinya=”dalam Negeri”
o Modal awalnya= Rp 120.800.000.000
o Bunga investasinya=15% X Modal awalnya
 Jika kode investasinya=”H-009” maka namainvestasinya=” BURSA SAHAM”
o Jenis investasinya=”dalam Negeri”
o Modal awalnya= Rp 190.000.000.000
o Bunga investasinya=20%X Modal awalnya
Besar pendapatan investasi pertahun adalah modal awal+bunga Investasi
Yang diinputkan adalah

1. Nokontrak :KC-00XXX
2.
Tanggal transaksi :99/99/9999
3. Kode investor :IL-001
4. Nama Investor :xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5. Kode Investasi :xxxxx
6. Nama investasi :xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7. Jenis Investasi :xxxxxxxxxxxxxxxxxxxxxxxx
8. Modal awal :Rp.999. 999.999.999
9. Pendapatan bunga :Rp. 999.999,999,999
10. Total Pendapatan pertahun investasi :Rp.999, 999,999,999

30
Analisis Data

Proses Pembentukan sql dalam database relational meliputi beberapa tahapan yaitu

Tahapan Pertama :
Menentukan bentuk laporan yang akan digunakan beserta aturan yang akan dipakai sebagai
atribut-atribute tabel yang akan digunakan beserta datanya.
Contohnya:

Figure 3 bentuk laporan investasi

Tahapan ke dua

Pada gambar 1. Bentuk laporan yang mempunyai jumlah fieldnya terdiri dari 10 kolom nama
kolomnya diantaranya adalah sebagai berikut:laporan(nokontrak,tanggaltransaksi,kodeinvestor,
namainvestor, kodeinvestasi, namainvestasi, jenisinvestasi, modalawal, bungainvestasi,
totalpendapatanbunga).

Tahapan ke Tiga.

Menentukan aturan proses yang digunakan dalam laporan penelitian ini aturan prosesnya
sebagai berikut ini.

Jika kode investasinya=”H-007” maka namainvestasinya=” MODAL ASING”

o Jenis investasinya=”Investasi asing”


o Modal awalnya= Rp 620.000.000.000
o Bunga investasinya=10% X Modal awalnya
Jika kode investasinya=”H-008” maka namainvestasinya=” SAHAM BERJANGKA”

o Jenis investasinya=”dalam Negeri”


o Modal awalnya= Rp 120.800.000.000
o Bunga investasinya=15% X Modal awalnya
Jika kode investasinya=”H-009” maka namainvestasinya=” BURSA SAHAM”

o Jenis investasinya=”dalam Negeri”


o Modal awalnya= Rp 190.000.000.000
31
o Bunga investasinya=20%X Modal awalnya

Besar pendapatan investasi pertahun adalah modal awal+bunga Investasi

Tahapan ke Empat
Menentukan Kamus data dari laporan pada gambar 1 dengan mengelompok item-item ke
masing-masing entity dengan menganalisa item-item kamus data tersebut yaitu untuk field,
nokontrak, tanggaltransaksi, kodeinvestor kita simpan dalam tabel kontrak, field
kodeinvestor, namainvestor kita simpan dalam tabel investor, field kodeinvestasi,
namainvestasi, jenisinvestasi, modalawal disimpan dalam tabel investaris, field nokontrak,
kodeinvestasi, bungainvestasi, totalpendapatanbunga disimpan dalam tabel detailkontrak.

Tahapan ke lima
Menentukan field kunci primary key dan kunci foreignkey untuk masing-masing entity yang
telah kita kelompokkan. Pada tabel kontrak sebagai primary keynya adalah nokontrak dan
kodeinvestor sebagai foreignkey, pada tabel investor, kodeinvestor menjadi kunci primary key,
pada tabel investasi, kodeinvestasi menjadi kunci primary key, pada tabel detailkontrak tidak
primary key yang ada hanya kunci foreignkey yaitu nokontrak, kodeinvestasi.

Tahapan ke Enam.
Menentukan modul SQL yang akan dipakai dalam kasus ini modul SQLnya adalah DDL dan
DML. Pada modul DML perintahnya diantaranya(Insert,Update, dan Select).

A. HASIL DAN PEMBAHASAN

Penelitian ini menghasilkan tahapan-tahapan dalam pembentukan database relational mengunakan


perintah sql berikut urutannya.

A. Perintah DDL
create database investasi; perintah menciptakan database investasi
use investasi;Perintah mengaktifkan database
create table investor(kodeinvestor varchar(12) primary key not null,namainvestor varchar(35) not
null);

perintah menghasilkan tabel investor seperti gambar 2.

32
Figure 4 Tabel investor

create table investasi(kodeinvestasi varchar(12 primary key not null,namainvestasi varchar(35) not
null,
jenisinvestasi varchar(20) not null,modalawal double not null)
;perintah untuk menciptakan tabel investasi seperti gambar 3.

Figure 5Tabel investasi.

create table kontrak(nokontrak varchar(12) primary key not null,tanggaltransaksi date not
null,kodeinvestor varchar(12) not null);
perintah untuk menghasil tabel kontrak seperti gambar 6.

Figure 6 Tabel kontrak

33
create table detailkontrak(nokontrak varchar(12) not null ,kodeinvestasi varchar(12) not null,
bungainvestasi double not null ,totalpendapatanbunga double not null);
perintah untuk menciptakan tabel detailkontrak seperti gambar 5.

Figure 7Gambar 5. Tabel detailkontrak

B. Perintah DML
perintah insert seperti dibawah ini.
Awal perintah untuk mengentrikan data
insert into investor values("IL-001","Mitra Kencana");
insert into investor values("IL-002","Mitra Putra Utama");
insert into investor values("IL-003","Mitra Rama sentosa");

Gambar 6.isi data investor


insert into investasi values("H-007"," "," ",0);
insert into investasi values("H-008"," "," ",0);
insert into investasi values("H-009"," "," ",0);

Gambar 7. Isi data investasi

34
insert into kontrak values("KC-001","2015-12-15","IL-001");
insert into kontrak values("KC-002","2015-12-15","IL-002");
insert into kontrak values("KC-003","2015-12-15","IL-003");
hasil seperti gambar 8.

Gambar 8.isi data kontrak

insert into detailkontrak values("KC-001","H-007",0,0);


insert into detailkontrak values("KC-002","H-008",0,0);
insert into detailkontrak values("KC-003","H-009",0,0);

Gambar 9. Isi data detailkontrak

Perintah create view


{create view pendapatan select kontrak.*, investor.namainvestor, investasi.*,
detailkontrak.bungainvestasi,
detailkontrak.totalpendapatanbunga from kontrak, investasi, investor, detailkontrak where
kontrak.kodeinvestor=investor.kodeinvestor and kontrak.nokontrak=detailkontrak.nokontrak and
detailkontrak.kodeinvestasi;}
perintah untuk membuat relasi tabel temporary

Gambar 10. Tabel isi view

35
1. Perintah Update
update investasi set namainvestasi="MODAL ASING" where kodeinvestasi="H-007";
update investasi set namainvestasi="SAHAM BERJANGKA" where kodeinvestasi="H-008";
update investasi set namainvestasi="BURSA SAHAM" where kodeinvestasi="H-009";
update investasi set jenisinvestasi="Investasi asing” where kodeinvestasi="H-007";
update investasi set jenisinvestasi="dalam Negeri" where kodeinvestasi="H-008";
update investasi set jenisinvestasi="dalam Negeri” where kodeinvestasi="H-009";
update investasi set modalawal=620000000000 where kodeinvestasi="H-007";
update investasi set modalawal=120800000000 where kodeinvestasi="H-008";
update investasi set modalawal=190000000000 where kodeinvestasi="H-009";
update pendapatan set bungainvestasi=0.1*modalawal where kodeinvestasi="H-007";
update pendapatan set bungainvestasi=0.15*modalawal where kodeinvestasi="H-008";
update pendapatan set bungainvestasi=0.20*modalawal where kodeinvestasi="H-009";
update pendapatan set totalpendapatanbunga=modalawal+bungainvestasi;
Perintah update proses rule yang telah didefinisikan
Hasilnya seperti gambar 11

Gambar 11. Isian data investasi

Gambar 12. Isian data kontrakdetail

Perintah untuk select


select * from pendapatan;
select * from pendapatan;perintah untuk menampilkan tabel view yang telah direlasikan seperti
gambar 13. View pendapatan
.

Gambar 13. View pendapatan

36
UCAPAN TERIMA KASIH

Ucapan terima kasih kepada Yayasan Amal Bakti Mukmin Padang dan STMIK Indonesia
Padang yang telah memberikan dukungan financial terhadap penelitian ini dengan nomor kontrak
:895.013/A.12/STMIK-I/2016.

Author

Short Biography
Zainul Efendy, he is received the Diploma I 1998 and diploma III 2001 in
Information Management at AMIK Indonesia and he is received the Bachelor
2004 in STMIK Indonesia Padang, Master Degree in the UPI YPTK Padang in
2012. currently he is lecturer in STMIK Indonesia padang at information system
department,His research interests include database management system,
Programming Langguages.

Author

Short Biography

Vetho Sayuthi, he is received the Bachelor 2005 in Telecommunication


Engineering at STT Telkom Bandung, Indonesia, and Master Degree in the same
college at 2008. Currently he has been working as Lecturer at STMIK Indonesia
Padang from 2016 in the Dept. of Computer Science and Information Systems,
STMIK Indonesia Padang. His research interests include Signal, Speech, Image
and Multimedia Processing, and Network Engineering.

Authors

Short Biography

Suardinata, he is received the Diploma III 1999 in Information Management at


AMIK Riau, Indonesia, Bachelor Degree in Information Engineering from
STMIK Riau, Indonesia, and Master Degree in Information Technology from
Universitas Putra Indonesia, Padang, Indonesia. Currently he is a Ph.D student in
the Dept. of Computer System and Communication, Faculty of Computer Science
and Information System, Universiti Teknologi Malaysia, Johor Bahru Malaysia.
He has been working as Lecturer at STMIK Indonesia Padang from 2005 in the
Dept. of Computer Science and Information Systems, STMIK Indonesia Padang.
His research interests include Multimedia and

37
Daftar Pustaka
Abdul kadir,(2008).Belajar database menggunakan MySQL ,Andi Yogyakarta.

Http://Saifulrahman.Lecture.Ub.Ac.Id/Files/2013/02/Model-Relasi-Dan-Normalisasi-Database.Pdf di akses
tanggal 28 Desember 2016.

https://zenowzingh.files.wordpress.com_sbd_e101_r-iii-7_100010249_i-
wayansus_lolita.staff.gunadarma.ac.id/Downloads/files/37803/NORMALISASI.pdf di akses tanggal
8 desember 2016.

Konsep Perancangan Basis Data Dengan Pendekatan Teknik Normalisasi Data, Yakub, Jurnal Infotek
Dharma Putra(edisi No. 1 / Vol.1 / March 2006) ISSN 1907-2775 Penerbit STMIK Dharma
Putra(2006) ,tangerang.

38

Anda mungkin juga menyukai