Anda di halaman 1dari 32

Perancangan Basisdata

MODUL 1
DDL ( Data Definition Language )
Berfungsi untuk mendefinisikan database dan objek-objek ( Tabel, index, view,
Stored procedure, trigger ) yang ada didalam database.

Perintah DDL ada 3 macam:


1. CREATE
2. DROP
3. ALTER

Perancangan Basisdata

Keterangan:
1. CREATE
Digunakan untuk membuat database dan objek-objek didalam database.
Membuat Database
CREATE DATABASE database_name
[ ON
[ < filespec > [ ,...n ] ]
[ , < filegroup > [ ,...n ] ]
]
[ LOG ON { < filespec > [ ,...n ] } ]
[ COLLATE collation_name ]
[ FOR LOAD | FOR ATTACH ]
< filespec > ::=
[ PRIMARY ]
( [ NAME = logical_file_name , ]
FILENAME = 'os_file_name'
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] ) [ ,...n ]
< filegroup > ::=
FILEGROUP filegroup_name < filespec > [ ,...n ]

CREATE DATABASE pegawai_xxxx


ON PRIMARY
(NAME=PBD,
FILENAME=d:\.nama folder
anda.\pbd_data.mdf,
SIZE=5,
MAXSIZE=50,
FILEGROWTH=2)
LOG ON
(NAME=Pbdlog,
FILENAME=d:\.nama folder
anda.\pbd_log.ldf,
SIZE=3,
MAXSIZE=20,
FILEGROWTH=1)

Perancangan Basisdata

Atau secara simple:


Create Database Nama database
Contoh:
Create database pegawai

Untuk mengaktifkan database yang telah dibuat menggunakan perintah:


Use Nama_database
Contoh:
Use pegawai

Perancangan Basisdata

Membuat Tabel
Create Tabel Nama_tabel (Nama_field/kolom typedata (size),)
Contoh:
create table pegawai ( NIP char(2) not null constraint pk_nip primary
key,
Nama varchar (25) not null, Alamat varchar(25) not null, sex char(1),
kd_dep char(1) constraint fk_kd_dep foreign key references
departemen (kd_dep))

Perancangan Basisdata

Membuat table Presensi


CREATE TABLE [presensi] (
[id_presensi] [int] IDENTITY (1, 1) NOT NULL ,
[tgl] [datetime] NULL ,
[nip] [char] (2) CONSTRAINT [fk_nips] FOREIGN KEY [nip]
REFERENCES [pegawai] ([NIP] )

Catatan:

Not null------- kolom/field tidak boleh kosong ( harus diisi ).

Pada saat membuat kolom/field table database harus ditentukan


jenis data (type data) untuk masing-masing kolom/field. Dibawah ini beberapa
type data yang sering digunakan.

Identity adalah mengotomatiskan nilai oleh sistem dan terurut


sesuai nilai uturan yang dimasukkan.
Contoh: IDENTITY (1, 1)--- Dimulai dari angka 1, kenaikannya

ditambah 1.
Type data

Jenis data

Ket

Numeric

1 byte
2 byte
3 byte
4 byte
8 byte

Money

Tinyint
Smallint
Mediumint
Integer
Bigint
Real
Decimal
Numeric
Bit
Money

Datetime

Datetime

1 Jan 1973 s/d 31 des


9999
1 Jan 1900 s/d 6 jun
2079

Smalldatetime
String

Char
Varchar
Text

0 atau 1
8 byte

Ukuran tetap max 8000


byte
Ukuran tidak tetap max
8000 byte
2^31

Perancangan Basisdata

2.
DROP
Digunakan untuk menghapus Database dan menghapus objek.
Sintax:
DROP Database Nama_database
Contoh:
DROP Database Pegawai
DROP Table Nama_table
Contoh:
DROP Table Peg

Tugas:
1.

Buat Database yang bernama Pegawai_XXXX

2.

Buat table dari 3 tabel diatas menggunakan perintah CREATE

3.

Hapus table departemen menggunakan perintah DROP.

Perancangan Basisdata

MODUL 2
3.

ALTER

Merupakan perintah DDL yang ke-3 yang berfungsi untuk memodifikasi table.

Menambah kolom/field.

Menghapus kolom/filed.

Membuat suatu constraint ( Primary key dan Foreign key ).

Constrain adalah Mekanisme untuk membatasi domain ( nilai-nilai yang


diperbolehkan ) untuk sebuah kolom dalam table. Dengan memberikan konstrain
pada sebuah kolom, server database dapat menjamin kondisi-kondisi berikut:

Keunikan data.

Memberikan nilai default.

Mengharuskan nilai baru mengikuti pola tertentu.

Mengharuskan nilai baru adalah anggota dari sebuah

daftar yang telah ditentukan.


Sintax:

Menambah Kolom/Field

ALTER Table Nama_tabel ADD Nama_kolom Typedata(size)


Contoh:
ALTER Table Pegawai ADD Status varchar(5)

Perancangan Basisdata

Menghapus kolom/Field
ALTER Table Nama_tabel DROP Column Nama_kolom/filed
Contoh:
ALTER Table Pegawai DROP Column status

Membuat konstrain Primary Key

Suatu constraint Primary key bisa dibuat pada saat table dibuat/di-create atau
setelah table dibuat.

Pada saat table dibuat melalui perintah CREATE


CREATE table Nama_tabel ( Nama_kolom/field typedata(size),
Constraint nama_constraint Primary key)
Contoh:
create table pegawai ( NIP char(2) not null constraint pk_nip primary key,
Nama varchar (25) not null, Alamat varchar(25) not null, sex char(1),
kd_dep char(1) constraint fk_kd_dep foreign key
references departemen (kd_dep))
CREATE Table Departemen ( kd_dep char(2) not null constraint pk_kd_dep
Primary key, Nama varchar(15) )

Perancangan Basisdata

Setelah table dibuat memalui perintah ALTER


ALTER table Nama_table
ADD constraint Nama_constraint Primary key (Nama_filed)
Contoh:
ALTER table pegawai
ADD constraint pk_NIP Primary key (NIP)

Perancangan Basisdata

10

Membuat konstrain Foreign Key

Suatu constraint Foreign key bisa dibuat pada saat table dibuat/di-create atau
setelah table dibuat.

Pada saat table dibuat melalui perintah CREATE


CREATE table Nama_tabel ( Nama_kolom/field typedata(size)
Constraint nama_constraint Foreign key nama_field References
Nama_tabel_referensi ( Nama_field Tabel_referensi),)
Contoh:
create table pegawai ( NIP char(2) not null constraint pk_nip primary key,
Nama varchar (25) not null, Alamat varchar(25) not null, sex char(1),
kd_dep char(1) constraint fk_kd_dep foreign key
references departemen (kd_dep))

Setelah table dibuat memalui perintah ALTER


ALTER table Nama_table
ADD constraint Nama_constraint Foreign key nama_field References
Nama_tabel_referensi ( Nama_field Tabel_referensi)
Contoh:
Alter table pegawai
Add constraint fk_kd_kep foreign key kd_dep references departemen
(kd_dep)

Tugas
1.

Pada table Pegawai tambahkan kolom status dengan typedata

varchar, size 5
2.

Tambahkan definisi constraint Primary key dan Foreign key pada

tiap-tiap table Primary key dan Foreign key ( jika belum ada ).

Perancangan Basisdata

11

MODUL 3
DML ( DATA MANIPULATION LANGUAGE )
Berfungsi untuk memanipulasi data ( menampilkan, pengupdate, menambahkan,
dan menghapus data ).
1)
Select
-- Menampilkan record-record data yang terdapat pada table.

Select Nama_filed from nama_table


Contoh:
Select * from pegawai
( Menampilkan data di semua field dalam table pegawai )

2)
Insert
-- Menambah data dalam satu record.

INSERT Into Nama_Table ( Nama_kolom1, Nama_kolom2,)


values ( nilai1, nilai2,)
Contoh:
Insert into pegawai ( nip, nama, alamat ,sex, status, kd_dep) values
(A1,Armadyah,Plosokuning,P,nikah)

Perancangan Basisdata

12

Untuk yang autoincrement/ identity nilai akan diisi secara otomatis, maka tidak
perlu proses insert.
3)
Update
-- Mengubah satu atau lebih data yang terdapat pada satu atau lebih kolom
table.
UPDATE Nama_tabel SET Nama_kolom=value WHERE
Kondisi
Contoh:
UPDATE Pegawai SET Alamat=Kotabaru Where NIP=A1

4)
Delete
-- Menghapus satu atau beberapa record dalam suatu table.

DELETE From Nama_tabel Where Kondisi


Contoh:
DELETE From pegawai where NIP=A1

Perancangan Basisdata

13

Tabel Peg
NIP
A1
A2
A3
A4
A5
A6

Nama
Armadyah
Hendra
Gauthama
Armadyan
Guntur
Mahendra
Nouval
Hanif

SEX
P
L

Alamat
Kotabaru
Plosokuning

Status
Nikah
Nikah

Kd_dep
A
S

P
L

Jl. Mgelang
Jetis

Belum
Belum

A
M

L
L

Kotagede
Plosokuning

Nikah
Nikah

P
P

Tabel Departemen
Kd_departemen
M
P
S
A
Tabel Presensi

Nama
Pemasaran
Produksi
Sumber Daya Manusia
Administrasi

Tunjangan
800.000
700.000
1000.000
750.000

Perancangan Basisdata

14

Tugas.
1.

Isi masing-masing table sesuai data diatas.

2.

Ubahlah alamat pegawai yang bernama Guntur mahendra menjadi


Jl. Kaliurang.

3.

Hapuslah data presensi pegawai yang mempunyai NIP A1 (lihat


hasilnya).

Perancangan Basisdata

15

MODUL 4
PERINTAH SELECT
- Menampilkan record-record data yang terdapat pada table.
1.

Menampilkan semua kolom/field dalam suatu table


SELECT * From nama_tabel
Contoh:
Select * from Departemen
( Menampilkan semua kolom dalam table departemen ).

2.

Menampilkan kolom/field sesuai keinginan/kebutuhan.

SELECT Nama_kolom1, nama_kolom2,from nama_tabel


Contoh:
Select NIP, Nama from pegawai
( Menampilkan kolom NIP dan nama dari table peg ).

Perancangan Basisdata

16

3.
Membuat Judul Field.
-- Mengubah judul field yang ditampilkan.

SELECT Nama_kolom
Nama_tabel

AS

Nama_kolom_baru,

From

Contoh:
SELECT NIP, Nama AS NamaPegawai from peg
( Menampilkan NIP dan Nama dari table peg dimana kolom nama
pada hasil query diubah menjadi NamaPegwai).

Perancangan Basisdata

4.

17

Menampilkan data tertentu ( melakukan penyaringan informasi ).

SELECT Nama_kolom, from Nama_tabel WHERE Kondisi


Contoh:
Select * From peg where Alamat=Plosokuning
( Menampilkan semua kolom dari table peg yang alamatnya
plosokuning ).

Perancangan Basisdata

18

5.
Melakukan perhitungan.
-- Sebelumnya pada table peg tambahkan filed/kolom yang bernama gaji
dengan typedata money.

SELECT
Ekspresi
Nama_tabel

AS

Nama_kolom_baru,

from

Contoh:
Select Nama, Tunjangan+100000 AS besargaji from Departemen
( Menampilkan kolom nama dan penjumlahan filed Tunjangan +
100.000 dari table departemen dimana kolom penjumlahan
tersebut diberi nama besargaji )

6.

Penggunaan Operator pembanding.

Operator pembanding-- =, >, <, >=, <=, <>


SELECT Nama_kolom, from nama_tabel Where Ekspresi1
Operator logika Ekspresi2
Contoh:
Select * from Departemen where Tunjangan<750000

Perancangan Basisdata

7.

19

Penggunaan Operator Logika.


Select Nama_kolom, from Nama_table Where --- Kondisi
NOT
Select Nama_kolom, from Nama_table Where
Kondisi----------- kondisi
OR
AND
Contoh:
Select NIP, nama from peg where sex=L and status=Nikah
Select NIP, nama from peg where NOT status=Nikah

8.
Menjangkau data tertentu.
--- Menampilkan data yang berada pada jangkauan tertentu.

SELECT
nama_kolom,from
nama_table
nama_kolom
BETWEEN
nilai_batas_bawah
nilai_batas_atas

where
AND

Contoh:
Select * from departemen where tunjangan BETWEEN 750000
and 900000

Perancangan Basisdata

20

9.
Operator IN
---- Pencocokan data kondisi pencarian dengan salah satu data yang ada pada
suatu daftar nilai.

SELECT
nama_kolom,from
Nama_kolom IN (value1, value2,)

Nama_tabel

Where

Contoh:
Select * from peg where alamat IN (Plosokuning,kotabaru)
IN sama dengan operator OR
Select * from peg
where alamat=plosokuning OR
alamat=kotabaru

Perancangan Basisdata

21

10.
Operator Like
-- Untuk pencarian data.
-- Bekerja pada typedata char, varchar, text.

SELECT nama_kolom,from nama_tabel where Nama_kolom


LIKE % ekspresi %
Contoh:
Select * from peg where nama like %Arma%
( menampilkan semua kolom dari table pegawai yang namanya
mengandung kata Arma )

11.
Fungsi Agregat
-- Sum, Count, AVG, Max, Min
SELECT
fungsi agregat (
nama_kolom_baru from nama table
SUM
AVG
Count
MAX
MIN
where kondisi

Nama_kolom

AS

Perancangan Basisdata

22

a)
SUM
--- Penjumlahan dalam satu kolom.
SELECT sum (nama_kolom) AS nama_kolom_baru
from nama_tabel where kodisi
Contoh:
Select Sum (tunjangan) AS Jml_tnj from Departemen

b)

AVG

--- Untuk menghitung nilai rata-rata dalam satu kolom.


--- Sebelumnya pada table peg tambahkan filed/kolom yang bernama gaji
dengan typedata money.
NIP
A1
A2
A3
A4
A5
A6

Gaji
1.300.000
1.500.000
1.300.000
1.400.000
1.600.000
1.500.000

SELECT AVG (nama_kolom) AS nama_kolom_baru


from nama_tabel where kodisi
Contoh:
Select AVG ( gaji ) AS Rata_gaji from pegawai
c)
Count
-- Untuk menghitung jumlah record yang sesuai dengan kondisi.
SELECT COUNT (nama_kolom) AS nama_kolom_baru
from nama_tabel where kodisi
Contoh:
Select Count ( NIP ) AS Jml_peg from pegawai where
status=Nikah
( Menampilkan jumlah pegawai dari table pegawai yang
statusnya sudah menikah ).

Perancangan Basisdata

23

d)
MAX
-- Untuk mencari atau menentukan nilai tertinggi.
SELECT MAX (nama_kolom) AS nama_kolom_baru
from nama_tabel where kodisi
Contoh:
Select Max ( gaji ) as Gaji_max from pegawai
( Menampilkan gaji tertinggi dari table pegawai ).

e)
MIN
-- Untuk mencari atau menampilkan nilai terendah.

SELECT MIN (nama_kolom) AS nama_kolom_baru


from nama_tabel where kodisi
Contoh:
Select Min ( gaji ) as Gaji_max from pegawai where
status=nikah
( Menampilkan gaji terrendah dari table pegawai yang
statusnya sudah menikah).

12.
Mengelompokan Record
-- Pada kondisi tertentu, sekumpulahn record dapat dikelompokkan
berdasarkan satu atau lebih field yang terdapat pada sebuah table atau query. Dati
pengelompokan ini, dapat dilakukan tindakan-tindakan untuk mengetahui berapa
jumlah transaksi , rata-rata dan lainnya pada suatu perusahaan.
SELECT Nama_kolom1,nama_kolom2,from Nama_tabel
GROUP By Kolom_pengacu

Perancangan Basisdata

13.

24

Pernyataan Having

-- Menampilkan kelompok-kelompok data tertentu.


-- Having berbeda dengan Where, pernyataan Where digunakan untuk
memberikan criteria sebelum pengelompokan dan melakukan penyaringan baris.
Sedangkan Having digunakan untuk memberikan criteria setelah pengelompokan
dilakukan, menyaring kelompok, dan menentukan kondisi bagi GROUP BY.
SELECT Nama_kolom1,from nama_tabel GROUP BY
kolom_pengacu HAVING kondisi

Perancangan Basisdata

14.

25

Melakukan Sorting ( Pengurutan Data )

SELECT Nama_kolom1,from
ORDER By nama_kolom

nama_table

where

Contoh:
Select * from pegawai ORDER By sex
Select NIP, Nama from pegawai ORDER By Nama, Alamat

kondisi

Perancangan Basisdata

26

Perancangan Basisdata

27

MODUL 5
QUERY Antar Tabel ( Table Join )

Macam table join:


CROSS JOIN
INNER JOIN atau NATURAL JOIN
FULL OUTER JOIN

1. Cross Join
Menggabungkan semua record dari tabel pertama dengan semua
record di tabel kedua.
Banyaknya record dari cross join = jumlah record tabel pertama X
jumlah record tabel kedua
Contoh:
Select * from peg Cross Join departemen

Perancangan Basisdata

28

2. lnner Join
Menghubungkan 2 (atau lebih) tabel berdasarkan attribute
penghubung.
Untuk INNER JOIN, Anda dapat menghilangkan kata 'INNER'. Jadi,
cukup dengan kata 'JOIN' saja
Contoh:

3. yang paling kompatibel

SELECT Nama_tabel1.nama_kolom1, nama_tabel2.nama_kolom2,


from nama_tabel1, Nama_tabel2,
Where Nama_tabel_induk.Primary
key=nama_tabel_transaksi.foreign key and
Contoh:
Select Peg.NIP, Peg.Nama, Departemen.Nama from peg, departemen,
posisi where peg.nip = posisi.nip and departemen.kd_departemen =
posisi.kd_departemen

Perancangan Basisdata

29

4. Untuk kemudahan penulisan SQL, kita bisa membuat table alias.


Contoh:
SELECT* FROM pegawai A, departemen.B WHERE A.kd_dep =
B.kd_dep;
SELECT A.NIP, A.NAMA, B.departemen FROM pegawai A, departemen B
WHERE A.kd_dep = B.kd_dep;

5. Distinct
Dalam table join, kadang-kadang ada informasi yang berulang. Untuk
menghilangkan pengulangan tersebut, gunakan DISTINCT.
Contoh:

Perancangan Basisdata

30

Jika tidak menggunakan DISTINCT

6. RIGHT OUTER JOIN


Menampilkan hasil join tabel pertama (sisi kiri) dengan tabel kedua (sisi
kanan), serta semua record di tabel kedua (sisi kanan/right):

Perancangan Basisdata

31

7. LEFT OUTER JOIN


Menampilkan hasil join tabel pertama (sisi kiri) dengan tabel kedua (sisi
kanan), serta semua record di tabel pertama (sisi kiri/left):

8. FULL OUTER JOIN


Menampilkan hasil join tabel pertama dengan tabel kedua, serta semua record
di kedua tabel tersebut:

Tugas.
1.

Tampilkan nama pegawai dan posisinya dimana gajinya diatas

1.400.000.
2.

Buat contoh perintah yang lain menggunakan query antar table.

Perancangan Basisdata

3.

32

Dikerjakan dirumah, buat suatu database minimal 4 tabel. Gunakan

perintah DML, perintah select ( termasuk Group By dan Having ), dan Query
antar table. PrintScreen hasilnya. Dikumpulkan pada saat ujian MID.
Tugas no.3 kelompok maksimal anggotanya 4 orang.

Anda mungkin juga menyukai