Anda di halaman 1dari 53

ALJABAR RELASIONAL &

KALKULUS RELASIONAL

Bahasa manipulasi  bahasa yang digunakan untuk


mengekspresikan modifikasi ataupun queri terhadap
data yang terkandung dalam suatu database
relasional.

Berdasarkan metode ekspresinya bahasa manipulasi


diekspresikan menjadi dua macam yaitu :

 Bahasa Prosedural yaitu bahasa yang ekspresinya


menyatakan “How”( bagaimana ) langkah-langkah
untuk melakukan manipulasi yang dikehendaki.

 Bahasa Non Prosedural yaitu bahasa yang


ekspresinya menyatakan “What” ( apa ) yang
perlu dimanipulasi.

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 1 - 53


Bahasa manipulasi untuk database relasional
diantaranya yaitu :
1. Aljabar Relasional
Aljabar Relasional  merupakan kumpulan operasi
terhadap relasi dimana setiap operasi
menggunakan satu atau lebih relasi untuk
menghasilkan satu relasi yang baru dan termasuk
kategori prosedural dan juga menyediakan
seperangkat operator untuk memanipulasi data.

a. Operator dasar
 Definisi Operator Dasar 

 Komponen / Perintah Yang Digunakan 


1. Select (  )

2. Project (  )

3. Cartesian Product (  )
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 2 - 53
4. Union (  )

5. Diffrence (  )

6. Rename (  )

b. Operator tambahan
 Definisi Operator Tambahan 

 Perintah Yang Digunakan diantaranya :


1. Intersection (  )

2. Natural Join (  )

3. Division (  )

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 3 - 53


Semua Operator diatas dapat diekspresikan kedalam
satu atau lebih tabel dan hasilnya berupa tabel.

 Contoh-contoh penggunaan operator :


a. Select (  )
Menggunakan sintaks / rumus :

 [ karakteristik ] [ tabel ]

b). Implementasi Dalam Kasus Adalah :

1. Bahasa Manusia : Cari semua entity account


yang saldonya lebih dari 4000000

 Tabel Account yang dimaksud dalam soal


diatas adalah sebagai berikut :

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 4 - 53


Account No Type Balance
012.145.002 Checking 8.000.000
771.225.421 Checking 3.000.000
315.222.310 Saving 4.000.000
342.256.010 Checking 6.000.000
511.333.279 Saving 1.000.000
122.003.007 Saving 8.500.000

 [ karakteristik ] [ tabel ]

Cari semua entity account yang saldonya lebih dari


4000000

AR :  Balance > 4000000 ( account )

Tabel hasil operator  tersebut adalah :


Account No Type Balance
012.145.002 Checking 8.000.000
342.256.010 Checking 6.000.000
122.003.007 Saving 8.500.000

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 5 - 53


2. Bahasa Manusia : Cari semua entity account
dengan type saving dan saldo lebih dari
4.000.000.

Simbol :  : dan
 : atau
 : tidak
B=1 S=0
P1 P2 And OR Not Not
X + P1 P2

B=1 B=1 B B S S
B=1 S=0 S B S B
S=0 B=1 S B B S
S=0 S=0 S S B B

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 6 - 53


 [ karakteristik ] [ tabel ]
Bahasa Manusia : Cari semua entity account
dengan type saving dan saldo lebih dari
4.000.000.
Account No Type Balance
012.145.002 Checking 8.000.000
771.225.421 Checking 3.000.000
315.222.310 Saving 4.000.000
342.256.010 Checking 6.000.000
511.333.279 Saving 1.000.000
122.003.007 Saving 8.500.000

AR : [ type=”Saving”  Balance >4000000] [ account ]

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 7 - 53


AR:  type = “saving” ^ balance > 4.000.000 ( account )
Tabel hasil operator  tersebut adalah :
Account No Type Balance
122.003.007 Saving 8.500.000

3. Bahasa Manusia : Cari semua costumer yang


bernama Nyoman atau tinggal diberingin.
 [ karakteristik ] [ tabel ]
 [Name=”Nyoman” V Street= “Beringin” ] [ customer ]

Tabel Customer yang dimaksud dalam soal diatas


adalah sebagai berikut :
Name Id Card Street City
Nyoman 03124 Cikokol Tangerang
Arbi 37662 Beringin Tangerang
Bambang 27286 Baringan Tangerang
Ardi 22780 Beringin Tangerang

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 8 - 53


AR :  name = “Nyoman” V Street =
“Beringin” ( customer )

Tabel hasil operator  tersebut adalah :

Name Id Card Street City


Nyoman 03124 Cikokol Tangerang
Arbi 37662 Beringin Tangerang
Ardi 22780 Beringin Tangerang

b.Project (  ) : operasi ini digunakan untuk


memilih kolom (atribut) tabel tertentu dari
sintaks.

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 9 - 53


Berikut contoh penggunaannya :
1. Bahasa Manusia: Tampilkan semua no rekening
dan balance dari tabel account.

AR :  acc no, balance ( account )


Tabel yang dihasilkan adalah :
Account No Balance
012.145.002 8.000.000
771.225.421 3.000.000
315.222.310 4.000.000
342.256.010 6.000.000
511.333.279 1.000.000
122.003.007 8.500.000

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 10 - 53


2. Bahasa Manusia : Tampilkan semua no
rekening dan balance dari semua rekening yang
balancenya lebih dari 4.000.000.

AR :  Acc no, balance ( balance > 4.000.000


( account )
)

Tabel Yang Dihasilkan Adalah :


Account No Balance
012.145.002 8.000.000
342.256.010 6.000.000
122.003.007 8.500.000

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 11 - 53


3. Bahasa Manusia : Tampilkan semua no
rekening dan balance dari semua rekening yang
balancenya lebih dari 4.000.000. dan dibawah
8.000.000

AR :  Acc no, balance ( balance > 4.000.000


 balance < 8.000.000 ( account ) )

Tabel Yang Dihasilkan Adalah :


Account No Balance
342.256.010 6.000.000

4. Bahasa Manusia : Tampilkan semua no


rekening dan balance dari semua rekening yang
balancenya lebih dari 4.000.000. atau dibawah
8.000.000

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 12 - 53


AR :  Acc no, balance ( balance > 4.000.000
V balance < 8.000.000 ( account ) )

Tabel Yang Dihasilkan Adalah :


Account No Balance
012.145.002 8.000.000
771.225.421 3.000.000
315.222.310 4.000.000
342.256.010 6.000.000
511.333.279 1.000.000
122.003.007 8.500.000

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 13 - 53


c. Cartesian Product (  )
Product cartesian dari relasi A dan B dinyatakan
dengan A X B

Contoh:
1. A = { 1, 2, 3}
B = { 5, 7 }

A X B = { (1, 5 ), (1, 7 ), (2, 5 ), (3, 5 ), (3, 7 ) }

2. Terdapat 2 tabel sebagai berikut :

Tabel M
M N O
1 2 3
4 5 6
7 8 9

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 14 - 53


Tabel N
M B
1 c
4 d
7 e

Tabel M X Tabel N adalah :

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 15 - 53


d. Union (  )
Union dari relasi A dan B dinyatakan
sebagai A  B
AB

e. Operator Set Difference ( - )


Berfungsi untuk mengeliminasi entity atau recond
dari tabel yang ada pada tabel lain  dan kedua
tabel harus mempunyai atribut yang sama.
Queri A – B menghasilkan record yang dimiliki tabel
A tetapi tidak memiliki tabel B.

Sintaks : [ tabel 1 ]-[tabel 2 ] A-B.

Contoh Kasus :

1. Bahasa Manusia : Carilah semua masalah


yang saldonya diatas 4.000.000
AR :  Id card ( type =”saving” ( account x customer )
 Id card ( type =”checking” ( account x customer ))
Tabel A –B adalah :
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 16 - 53
f. Rename (  )
Berfungsi untuk menyalin tabel lama menjadi tabel
dengan nama baru.

Sintaks :  [ new name ] [old name ]

1. Bahasa Manusia : Salinlah tabel account dengan


nama Finance

AR :  Finance ( account )

Tabel Yang Dihasilkan Adalah :

BAHASA QUERI KOMERSIAL

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 17 - 53


Berdasarkan acuan model relasional, ada 2 bahasa
query komersial yang tersedia :
1. SQL (Structured Query Language)
2. QBE (Query By Example ) .

SQL dan QBE masing-masing mewakili bahasa


query prosedural dan non-prosedural.

1. SQL ( Sructured Query Language )


a. SQL dibangun  dengan basis aljabar
relasional yang dijelaskan bab sebelumnya.

b. SQL memberikan bahasa query tingkat tinggi ( a


high level query language ) dengan struktur
sederhana dengan kosakata dan gramatika yang
sederhana pula, seperti berikut :

Select A1, A2, …, An


From T1, T2 ,…, Tn
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 18 - 53
WhereP

Dimana :
A1,A2,…,An : himpunan dari semua atribut yang
hendak ditampilkan.
T1,T2,…,Tn : himpunan dari semua tabel yang
terlibat (diperlukan) dalam query.

P : predikat / kriteria yg diinginkan tentang


informasi yg dicari.

c. Struktur dasar SQL tersebut equvalen dengan


operasi pada aljabar relasional berikut:

 A1,A2,…An ( P(T1 X …X Tn))

c. Beberapa operator SQL yang


berkorespondensi dengan operator aljabar
relasional :

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 19 - 53


Aljabar Relasional SQL
 AND
 OR
  or 
 
 

Contoh query untuk mencari semua KartuID dari


semua kustomer yang memiliki rekening tipe tabungan
adalah sebagai berikut:
Select KartuId
From rekening KusRek
Where Type =”tabungan” dan rekening.NoRek =
kusRek.NoRek
e. Contoh Kasus Translasi Aljabar Relasional ke
dalam SQL :
Table Account yang dimaksud :

Account No Type Balance


012.145.002 Checking 8.000.000
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 20 - 53
771.225.421 Checking 3.000.000
315.222.310 Saving 4.000.000
342.256.010 Checking 6.000.000
511.333.279 Saving 1.000.000
122.003.007 Saving 8.500.000

1. AR :  Balance > 4000000 ( account )

SQL : Select AccountNo,Type, Balance


From Account
Where Balance > 4000000

2. AR :  type = “saving” ^ balance > 4.000.000 ( account )


SQL: Select AccountNo,Type, Balance
From Account
Where type = “saving” AND balance > 4.000.000
3. AR :  name = “Nyoman” V Street =
“Beringin” ( customer )
SQL: Select Name, IdCard, Street, City
customer
From
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 21 - 53
Where name = “Nyoman” OR Street =
“Beringin”

Tabel Customer yang dimaksud dalam soal diatas


adalah sebagai berikut :
Name Id Card Street City
Nyoman 03124 Cikokol Tangerang
Arbi 37662 Beringin Tangerang
Bambang 27286 Baringan Tangerang
Ardi 22780 Beringin Tangerang

4. AR :  acc no, balance ( account )


SQL : Select accno, balance
From account
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 22 - 53
5. AR :  Acc no, balance ( balance >
4.000.000 ( account ) )
SQL : Select accno, balance
From account

Where balance > 4.000.000

f. SQL Sebagai Subbahasa memiliki kemampuan


seperti :
 Pendefinisian struktur data,
 Pengubahan data,
 Pengaturan sekuritas, dan lain-lain.

Alasan SQL dikatakan sebagai subbahasa data 


karena SQL tidak mendukung persyaratan bahasa
yang lengkap, sekalipun SQL dapat dipakai untuk
mengakses basis data.
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 23 - 53
SQL tidak menyediakan hal-hal berikut :
1. Pernyataan penguji kondisi (semacam IF pada
COBOL).
2. Pernyataan pengulangan/iterasi (semacam
REPEAT pada Pascal).

g. Antarmuka SQL terhadap DBMS

SQL dapat dipakai oleh berbagai kalangan (DBA,


Pemrogram, ataupun Pengguna).
1. SQL sebagai bahasa administrasi basis data
Dalam hal ini SQL dipakai oleh DBA untuk
menciptakan serta mengendalikan pengaksesan
basis data.

2. SQL sebagai bahasa query interaktif.


User dapat memberikan perintah-perintah untuk
mengakses basis data yang sesuai dengan
kebutuhannya.

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 24 - 53


3. SQL sebagai bahasa pemrograman basis data
Pemrogram dapat menggunakan perintah-
perintah SQL dalam program aplikasi yang
dibuat, guna mengakses basis data.
4. SQL sebagai bahasa klien/server
SQL juga dipakai sebagai untuk
mengimplementasikan sistem klien/server.

ELEMEN SQL
 Elemen dasar SQL
1. Pernyataan
Tabel 6.1 Pernyataan-pernyataan dasar SQL.
Pernyataan Keterangan
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 25 - 53
ALTER Mengubah struktur tabel

COMMIT Mengakhiri sebuah eksekusi transakasi

CREATE Menciptakan tabel, indeks, atau


pandangan
DELETE Menghapus baris pada tabel

DROP Menghapus tabel, indeks, atau


pandangan
GRANT Menugaskan hak terhadap basis data
kepada pengguna atau grup pengguna

2. Nama
Nama digunakan sebagi identitas bagi objek-
objek pada DBMS. Contoh objek pada DBMS
adalah tabel, kolom, dan pengguna.

3. Tipe Data
Tabel 6.2 Tipe data standar
Tipe Keterangan
Data
CH Untuk menyatakan deretan karakter (string). Misalnya
AR untuk menyatakan nama orang, nama jalan, atau nama
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 26 - 53
kota
INT Untuk menyatakan bilangan bulat
EGER
NU Untuk menyatakan bilangan real
MERIC

Tabel 6.3 Tipe data perluasan


Tipe Data Keterangan
VARCHAR Untuk menyatakan string yang panjangnya
bervariasi
MONEY Untuk menyatakan uang
BOOLEAN Menyatakan tipe logis (True atau False)
BLOB Untuk menyatakan data biner (gambar, suar, dan
sebagainya
SERIAL / Untuk menyatakan nilai yang urut
AUTOINCREMENT

ELEMEN SQL

 Elemen dasar SQL

4. Konstanta

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 27 - 53


Konstanta  menyatakan nilai yang tetap
(kebalikan dari konstanta adalah variabel).
Variabel :………..

Beberapa contoh konstanta :


Konstanta numerik :123, -245, 5.45
Konstanta : ‘Jl. Suikapura 23’
Konstanta simbolik (konstanta yang tersedia pada
SQL dan mempunyai makna tersendiri) :
SYSDATE (tanggal sistem), USER (nama
pengguna yang menjalankan SQL). Konstanta
simbolik seringkali disebut variable sistem.

5. Ekspresi
Ekspresi  segala sesuatu yang menghasilkan
nilai. Ekspresi  digunakan untuk menghitung nilai.
Sebagai contoh :
(LABA/MODAL) * 100
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 28 - 53
merupakan ekspresi untuk membagi isi variable
LABA dengan MODAL, dan kemudian dikalikan
dengan 100.
Tabel 6.3 Simbol pada ekspresi aritmatika.
Simbol Keterangan
* Perkalian
/ Pembagian
+ Penjumlahan
- Pengurangan

KELOMPOK PERNYATAAN SQL


Pernyataan SQL dikelompokkan menjadi :
1. DDL
2. DML

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 29 - 53


3. DCL
4. Pengendali Transaksi
5. Pengendali Programatik.

1. DDL (Data Definition Language)


a. DDL  perintah yang berfungsi
untuk mendefinisikan atribut-atribut basis data,
tebel, atribut (kolom), batasan-batasan terhadap
suatu atribut, serta hubungan antar tabel.

b. Kelompok DDL : CREATE,


ALTER, dan DROP.

c. Sintaks SQL untuk melakukan


pembuatan tabel baru didalam basis data :

create table t (A1 D1, A2, D2, …., An Dn)


dimana :
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 30 - 53
 t adalah nama tabel yang akan dibuat
 A1, A2, …, An adalah nama-nama atribut
yang akan terdapat di dalam tabel t
 D1, D2, …, Dn adalah domain nilai masing-
masing atribut tersebut yang di tentukan
berdasarkan tipe datanya.

 Contoh perintah perintah SQL


A. Membuat tabel Mahasiswa
Create table mahasiswa
(nim char (6),
nama_mhs varchar (30),
alamat_mhs varchar (50),
tgl_lahir (date)

B. Penghapusan terhadap tabel Mahasiswa :


drop tabel mahasiswa
C. Ekspresi SQL untuk pembuatan tabel
Mahasiswa sekaligus dengan pendefinisian
Indeks Primer berdasarkan nim :
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 31 - 53
create table mahasiswa
(nim char (6),
nama_mhs varchar (30),
alamat_mhs varchar (60),
tgl_lahir date,
primary key (nim))

d. Ekspresi SQL, jika jumlah atribut yang

membentuk Indeks Primer ada lebih dari satu

Create table nilai


(nim char (6),
kode_kul char (6),
indeks_nilai char (1),
primary key (nim, kode_kul))

e. Ekspresi SQL untuk penghapusan tabel

Mahasiswa :

drop tabel mahasiswa

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 32 - 53


f. Sintaks SQL untuk perubahan struktur tabel
yang berbentuk penambahan atribut baru ke
tabel t adalah :
alter table t add A D
alter table mahasisiwa add telp char (12 )

g. Sintaks SQL untuk penghapusan atribut dari


tabel t

Alter table t drop A


Alter table mahasiswa drop telp

h. Ekspresi SQL untuk penambahan atribut baru


bernama ip di tabel Mahasiswa :
Alter table mahasiswa add ip numeric (5, 2)
i. Jika atribut ip ingin dihapus dari tabel
mahasiswa, ekspresi SQL-nya :

Alter table mahasiswa drop ip

2. DML (Data Manipulation Language)


Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 33 - 53
 DML  kelompok perintah yang berfungsi untuk
memanipulasi data dalam basis data, misalnya
untuk pengambilan, penyisipan, pengubahan, dan
penghapusan data.

 Perintah yang masuk kategori DML adalah :


SELECT = Memilih data
INSERT = Menambah data

DELETE = Menghapus data


UPDATE = Mengubah data

 Perintah Select (klausa select) digunakan untuk


menetapkan daftar atribut (field) yang diinginkan
sebagai hasil query. Perintah select (klausa
select) tidak terlepas dari dua klausa, yaitu :
 Klausa form digunakan untuk menetapkan tabel
(atau gabungan tabel) yang akan ditelusuri
selama query data dilakukan.

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 34 - 53


 Klausa where, yang sifatnya opsional, digunakan
sebagai predikat (kriteria) yang harus dipenuhi
dalam memperoleh hasil query.

sintaks (cara penulisan) dari ekspresi SQL dasar


dengan 3 klausa tersebit adalah :
select A1 [A1, A2, ……, An]
from t1 [t1, t2, ….,tm]
[where p]
dimana :

 A1, A2, …..,An merupakan daftar atribut.


 t1, t2, ….,tm merupakan daftar tabel.
 P merupakan predikat query.
 [ ] merupakan tanda opsional (boleh
digunakan, boleh tidak digunakan).

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 35 - 53


STRUKTUR DASAR
1. Klausa Select

Perintah SQL untuk NIM dan nama mahasiswa


yang ada di tabel Mahasiswa, maka perintah SQL
berikut ini :
Select nim, nama_mhs
From mahasiswa

Sementara, perintah berikut ini :


Select nama_mhs
From mahasiswa

Apa bentuk tampilan dari klausa dibawah :


Select nim, nama_mhs as nama
Alamat_mhs as alamat
From mahasiswa

Apa bentuk tampilan dari klausa dibawah :


Select *
From mahasiswa
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 36 - 53
2. Klausa Where

Berikut ini adalah contoh untuk menampilkan


semua atribut untuk mahasiswa dengan
NIM=’980002’:
Select *
From mahasiswa
Where nim = ‘980002’

Apa tampilan dari perintah dibawah ini :


Select *
From kuliah
Where semester between 3 and 5

3. Klausa Form

Ekspresi berikut menghasilkan table seperti apa :


select *
from kuliah, dosen
where kuliah. kode_dos = dosen.kode_dos

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 37 - 53


Ekspresi berikut menghasilkan table seperti apa :
apa ? :
select *
from kuliah k, dosen d
where k.kode_dos = d.kode_dos

Ekspresi berikut menghasilkan table seperti apa :


select k.kode_kul, k.nama_kul, d.nama_dos
from kuliah k, dosen d
where k.kode_dos = d.kode_dos

Ekspresi berikut menghasilkan table seperti apa :


select k.kode_kul as kode,
k.nama_kul as kuliah, d.nama_dos as dosen
from kuliah k, dosen d
where k.kode_dos = d.kode_dos
and k.semester = 3

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 38 - 53


Ekspresi berikut menghasilkan table seperti apa :
select n.nim, m.nama_mhs
k.nama_kul, n.indeks_nilai
from nilai n, mahasiswa m, kuliah k
where n.nim = m.nim
and n.kode_kul = k.kode_kul

MANIPULASI DATA

 SQL juga dilengkapi dengan sejumlah perintah


untuk melakukan manipulasi data seperti
penambahan record baru, pengubahan nilai atribut
dan penghapusan record didalam suatu tabel.

1. Penambahan Record

Sintaks SQL untuk penambahan record baru ke


sebuah tabel adalah :
Insert into t (A1, A2, …, An)
Values (V1, V2, … , Vn)

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 39 - 53


Di mana :

 T  nama tabel yang akan mengalami


penambahan record
 A1, A2,… , An adalah nama-nama atribut
yang akan di isi nilai
 V1, V2, … , Vn adalah nilai-nilai yang akan
mengisi atribut-atribut tersebut

MANIPULASI DATA

 SQL juga dilengkapi dengan sejumlah perintah


untuk melakukan manipulasi data seperti
penambahan record baru, pengubahan nilai atribut
dan penghapusan record didalam suatu tabel.

1. Penambahan Record

Sintaks SQL untuk penambahan record baru ke


sebuah tabel adalah :

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 40 - 53


Insert into t (A1, A2, …, An)
Values (V1, V2, … , Vn)
Di mana :

 T  nama tabel yang akan mengalami


penambahan record
 A1, A2,… , An adalah nama-nama atribut
yang akan di isi nilai
 V1, V2, … , Vn adalah nilai-nilai yang akan
mengisi atribut-atribut tersebut
Ekspresi berikut menghasilkan table seperti apa :
Insert into Mahasiswa (nim, nama_mhs,
alamat_mhs, tgl_lahir)
Values (‘980011’, ‘Siti Zubaedah’,
‘Jl. Guntur Kulon 12, Bogor’,
‘02/03/1973’)
atau :
insert into Mahasiswa
values (‘980011’, ‘Siti Zubaedah’,
‘Jl. Guntur Kulon 12, Bogor’,
‘02/03/1973’)
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 41 - 53
2. Penambahan record baru dengan perintah

berikut :

Insert into Mahasiswa (nim, nama_mhs,


alamat_mhs)
Values (‘980011’, ‘Siti Zubaedah’,
‘Jl. Guntur Kulon 12, Bogor’)

2. Penghapusan Record

 Sintaks SQL untuk penghapusan record dari


sebuah tabel adalah :
Delete from t
[ where p ]
di mana :
 t adalah nama tabel yang akan mengalami
penghapusan record
 p merupakan predikat atau kriteria untuk
menentukan record mana saja yang akan
dikenai penghapusan, jika klausa where ini

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 42 - 53


tidak digunakan, maka penghapusan akan
dilakukan pada semua record di dalam tabel t
 Berikut ini adalah perintah SQL untuk menghapus
record kuliah tertentu :
Delete from kuliah
Where kode_kul = ‘IF-310’

 Berikut ini adalah perintah SQL untuk menghapus


beberapa record di tabel kuliah :
Delete from kuliah
Where kode_kul like ‘MA%’

 Sintaks SQL untuk pengubahan nilai atribut pada suatu record dari sebuah
tabel adalah :

Update t
Set assignment
[ where P ]

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 43 - 53


Di mana :
 t adalah nama tabel yang akan mengalami
pengubahan record
 assignment adalah ekspresi pemberian nilai
baru untuk suatu atribut yang akan kita ubah
 merupakan predikat atau kriteria untuk
pemilihan record yang akan dikenai
perubahan, jika klausa where ini tidak
digunakan, maka perubahan akan dilakukan
pada semua record di dalam tabel t

 Berikut ini adalah perintah SQL untuk mengubah


nilai atribut sks untuk mata kuliah tertentu :
Update kuliah
Set sks = 4
Where kode_kul = ‘IF-310’

 Perintah update digunakan untuk melakukan


penambahan gelar di depan nama dosen tertentu
berikut ini :
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 44 - 53
Update dosen
Set nama_dosen = ‘Prof. ‘ + nama_dosen
Where kode_dos = 2

 Perintah update tanpa klausa where berikut ini


dilakukan untuk semua record :
Update nilai
Set indeks_nilai = null
Yang mengakibatkan terisinya null (pengosongan
nilai untuk atribut indeks_nilai) pada semua record
di tabel Nilai.

3. Pengurutan Hasil Query


 Ekspresi dasar SQL (dengan tiga klausa : select,

from, dan where),  akan menghasilkan query


dengan urutan yang sesuai dengan struktur
penyimpanan yang kita terapkan pada hasil
query.

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 45 - 53


 Jika kita menggunakan struktur penyimpanan
Heap (tabel tanpa Indeks Primer),  query
ditampilkan berdasarkan kronologis
penyimpanannya.

 Jika terhadap tabel query, kita menggunakan


struktur penyimpanan Sekeunsial Berindeks
(tabel yang memiliki Indeks Primer), maka hasil
query akan ditampilkan sesuai dengan atribut
yang menjadi dasar Imdeks Primer-nya.

 Jika kita ingin menampilkan hasil query dengan


urutan berdasarkan atribut tertentu, maka kita
dapat menambahkan klausa order by.

 Misalkan, tabel Mahasiswa memiliki Indeks


Primer berdasarkan atribut nim (sehingga hasil
query ke tabel ini akan disusun berdasarkan nilai
atribut nim tersebut), ekspresi SQL untuk

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 46 - 53


menampilkan record-record mahasiswa
berdasarkan urutan namanya :
select *
from mahasiswa
order by nama_mhs

Urutan berdasarkan nama tersebut disusun


secara ascending.
 Jika ingin ditampilkan berdasarkan atribut tgl_lahir
tapi secara descending, maka pada klausa order
by di sertakan pula klausa desc :
select *
from mahasiswa
order by tgl_lahir desc

4. Beberapa contoh kasus Aljabar Relasional dan SQL


(dikerjakan oleh mahasiswa secara bersamaan)
dengan menggunakan table sbb :

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 47 - 53


Mahasiswa Tomy 61425 01/11/75
Mhs Nim T_lahir Paula 61230 14/06/77
Jones 61521 05/12/77
Kuliah
Dendi 61300 28/04/78

M_kulia Kode_ Nil 61230 Mat 231 D


h mk ai 61230 Eng 202 C
Matemati Mat 231 3
ka Eko 220 3
Ekonomi Hst 211 2
Sejarah Eng 2
b.inggris 202

Mhs_kul
Nim Kode Nilai
61521 Mat 231 B
61521 Eko 220 A
61521 Hst 211 B
61300 Hst 211 A
61425 Eng 202 C
61425 Mat 231 B

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 48 - 53


Mutu
Nilai Bobot
A 4
B 3
C 2
D 1
E 0

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 9/ 49 - 53


TRANSPARANSI KULIAH TANGGALREVISI : ----
SI-140 TANGGAL BERLAKU : 09 September 2002
SISTEM BASIS DATA KODE DOKUMEN : DM-RHJ-005-

a. Cari semua nim dan nama mahasiswa yang


tidak lahir tgl 28/04/78

Jawab:
AR : π nim,nama(select t_lahir =|= 28/04/78)
(mahasiswa)

SQL :
Select nim, nama
From : mahasiswa
Where : T_lahir <>28/04/78

b. Tampilkan nilai & nim dari mahasiswa yang


memperoleh nilai “D”
Jawab : ……………..
c. Tampilkan nilai mahasiswa yang bobotnya
diatas “dua”
Jawab : ……………..
d. Tampilkan bobot terkecil
Jawab : ……………..
e. Tampilkan semua entity dengan kode mata
kuliah = mat231
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 7/ 50 - 53
TRANSPARANSI KULIAH TANGGALREVISI : ----
SI-140 TANGGAL BERLAKU : 09 September 2002
SISTEM BASIS DATA KODE DOKUMEN : DM-RHJ-005-

Jawab : ……………..
f. Cari semua entity kuliah yang kreditnya “2”
dan nama mata kuliahnya “sejarah”
Jawab : ……………..

QBE (QUERY BY EXAMPLE )


 QBE menyediakan ekpresi query dalam bentuk
tabular ( disebut Skeleton ).

 Dengan menggunakan satu atau lebih tabel user


dapat mengekspresikan suatu query dengan
hanya memberikan karakteristik informasi yang
dicari.

1. Query untuk mencari semua KartuID kustomer


yang memiliki rekening tipe tabungan dengan
saldo lebih dari 4 juta, dapat diekspresikan
Edisi: 01 Rev: 0 Copyright © ITB Swadharma 7/ 51 - 53
TRANSPARANSI KULIAH TANGGALREVISI : ----
SI-140 TANGGAL BERLAKU : 09 September 2002
SISTEM BASIS DATA KODE DOKUMEN : DM-RHJ-005-

dengan menggunakan 2 skeleton rekening dan


kusRek seperti berikut :
Rekening:
NoRek Type Saldo
X “ tabungan “ > 4.000.000

KusRek
KartuID NoRek
P. y x

 Sembarang nama yang didahului dengan garis


bawah ( _ ) menunjukkan bahwa nama tersebut
adalah nama variabel. Hal ini untuk membedakan
antara nama variabel dan nilai dari suatu variabel.
 Pada contoh diatas ada dua variabel yaitu : _x dan
y, dan ada dua nilai variabel yaitu 4.000.000 dan
“tabungan”. Simbol P yang mendahului suatu
variabel atau nilai variabel digunakan untuk
menyatakan perintah cetak (print) atau tampilkan

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 7/ 52 - 53


TRANSPARANSI KULIAH TANGGALREVISI : ----
SI-140 TANGGAL BERLAKU : 09 September 2002
SISTEM BASIS DATA KODE DOKUMEN : DM-RHJ-005-

nilai dari suatu variabel. Jadi P.y berarti perintah


cetak dari nilai variabel _y.

2. Query untuk mencari semua Nama dan


KartuId kustomer yang memiliki rekening
tipe tabungan atau tipe cek.
Rekening
NoRek Type Saldo
X “tabungan”
Z “cek”

KusRek
KartuID NoRek
Y X
Y Z

Kustomer
Nama KartuID Jalan Kota
P.w P.y

Edisi: 01 Rev: 0 Copyright © ITB Swadharma 7/ 53 - 53

Anda mungkin juga menyukai