Anda di halaman 1dari 45

ALJABAR RELASIONAL Rajif Agung Yunmar, S.Kom., M.Cs.

BASI S DATA
PRE TEST
• Sebutkan macam-macam operasi JOIN. Jelaskan
perbedaan masing-masing!
• Apakah yang disebut dengan fungsi agregasi? Jelaskan!
• Jelaskan yang dimaksud dengan istilah GROUP BY?
• Apakah perbedaan antara klausa WHERE dan
HAVING?
TUJUAN PERKULIAHAN
• Mahasiswa dapat memahami bagaimana pengolahan
basis data menggunakan aljabar relasional.
• Mahasiswa dapat menggunakan notasi-notasi aljabar
relasional guna peningkatan performa untuk pengolahan
basis data.
POKOK BAHASAN
1. Pendahuluan
2. Notasi Aljabar Relasional
– SELECT
– PROJECT
– UNION
– SET DIFFERENCE
– SET INTERSECTION
– CARTESIAN PRODUCT
– JOIN

3. Studi Kasus
PENDAHULUAN
• Bahasa query merupakan bahasa tingkat tinggi yang
digunakan dalam pengolahan basis data.
• Terdapat dua buah bahasa query yang digunakan
sebagai bahasa pengolahan basis data.
– Bahasa Non Prosedural
– Bahasa Prosedural
BAHASA NON PROSEDURAL
• Dalam bahasa query non prosedural, pengguna
menunjukkan informasi yang ingin didapatkan, tanpa
menunjukkan cara atau prosedur tertentu untuk
memperoleh informasi tersebut.
• Contoh: SQL.
BAHASA PROSEDURAL
• Dalam bahasa query prosedural, pengguna harus
menunjukkan bagaimana cara atau prosedur tertentu
untuk memperoleh informasi yang diinginkan.
• Contoh:
– Aljabar relasional
– Kalkulus relasional
ALJABAR RELASIONAL
• Aljabar relasional adalah bahasa query prosedural
yang terdiri dari sekumpulan operasi dimana
parameternya adalah satu atau dua relasi (tabel) dan
keluarannya adalah sebuah relasi baru sebagai hasil
dari operasi tersebut.
• Prinsip kerja: operasi pada setiap relasi (tabel) selalu
menghasilkan relasi juga.
NOTASI ALJABAR RELASIONAL
• SELECT
• PROJECT
• UNION
• SET DIFFERENCE
• SET INTERSECTION
• CARTESIAN PRODUCT
• JOIN
SELECT
• Operasi pengambilan baris-baris yang memenuhi
kriteria tertentu.
• Dituliskan melalui notasi σ
• Contoh : tampilkan semua data pada R.
SELECT

A B C D A B C D

α β 1 7 α β 1 7

α β 5 7 α β 5 7

β β 12 3 β β 12 3

β β 23 10 β β 23 10

Tabel : relasi R Tabel : σ ( R )


SELECT DENGAN KRITERIA
• Dalam aljabar relasional, istilah kriteria sering disebut juga
dengan sebutan predikat.
• Dituliskan dengan notasi σ ρ ( R )
• ρ disebut predikat seleksi (selection predicate).
• ρ terdiri dari pernyataan yang dapat terdiri atas
suku-suku yang dihubungkan dengan tanda ^ (AND),
v (OR), dan NOT (⌐)
SELECT DENGAN KRITERIA
• Setiap pernyataan berbentuk:
<atribut> op <atribut>, atau <atribut> op <konstanta>
• op adalah salah satu dari simbol =,<,>,≤,≥,≠
SELECT DENGAN KRITERIA
• Contoh : tampilkan data yang memenuhi keriteria A=B dan D > 5.

A B C D

α β 1 7
A B C D
α β 5 7
β β 23 10
β β 12 3

β β 23 10
Tabel : σ A=B ^ D>5 ( R )

Tabel : relasi R
LATIHAN
+-----------+----------------------+------+------------+----------------+------------+-------------+
| kd_barang | nama_barang | stok | harga_jual | tgl_kadaluarsa | kd_pemasok | kd_kategori |
+-----------+----------------------+------+------------+----------------+------------+-------------+
| B001 | Kacang Garuda 250 mg | 75 | 18000 | 2017-11-22 | P22 | K04 |
| B002 | Aqua 1500 ml | 50 | 5000 | 2017-09-14 | P33 | K03 |
| B003 | Sari Roti Coklat | 14 | 12500 | 2017-04-05 | P11 | K01 |
| B004 | Biskuat 100 mg | 32 | 2000 | 2018-01-23 | P33 | K02 |
| B005 | Fanta 600 ml | 27 | 6000 | 2017-08-28 | P44 | K03 |
| B006 | Mizone 600 ml | 16 | 6500 | 2017-08-12 | P33 | K03 |
| B007 | Tao Kae Noi | 5 | 15000 | 2018-02-02 | P11 | K04 |
+-----------+----------------------+------+------------+----------------+------------+-------------+

1. Tampilkan informasi barang yang memiliki stok diatas 50.


2. Tampilkan informasi barang yang memiliki harga jual dibawah
Rp.10.000,- dan memiliki masa kadaluarsa diantara bulan April dan
September 2017.
PROJECT
• Operasi untuk mengambil kolom tertentu dari suatu tabel.
• Digambarkan dengan notasi π daftar_atribut (R)
• Dimana, daftar_atribut adalah atribut-atribut pada tabel R
yang akan ditampilkan.
PROJECT
• Hasil operasi berupa kolom-kolom yang ada pada tabel R,
dan menghilangkan semua kolom yang tidak ada dalam
daftar_atribut.
• Dalam menampilkan data, bila ada baris yang sama
(duplikasi), cukup dituliskan sekali saja (hilangkan sisanya).
PROJECT
• Contoh : tampilkan kolom A dan C dari tabel R.

A B C D A C

α β 1 7 α 1

α β 5 7 α 5

β β 12 3 β 12

β β 23 10 β 23

Tabel : relasi R Tabel : π A,C ( R )


PROJECT
• Contoh : tampilkan kolom A dan C dari tabel R, dimana D > 5.

A B C D

?
α β 1 7

α β 5 7

β β 12 3

β β 23 10

Tabel : relasi R
LATIHAN
+-----------+----------------------+------+------------+----------------+------------+-------------+
| kd_barang | nama_barang | stok | harga_jual | tgl_kadaluarsa | kd_pemasok | kd_kategori |
+-----------+----------------------+------+------------+----------------+------------+-------------+
| B001 | Kacang Garuda 250 mg | 75 | 18000 | 2017-11-22 | P22 | K04 |
| B002 | Aqua 1500 ml | 50 | 5000 | 2017-09-14 | P33 | K03 |
| B003 | Sari Roti Coklat | 14 | 12500 | 2017-04-05 | P11 | K01 |
| B004 | Biskuat 100 mg | 32 | 2000 | 2018-01-23 | P33 | K02 |
| B005 | Fanta 600 ml | 27 | 6000 | 2017-08-28 | P44 | K03 |
| B006 | Mizone 600 ml | 16 | 6500 | 2017-08-12 | P33 | K03 |
| B007 | Tao Kae Noi | 5 | 15000 | 2018-02-02 | P11 | K04 |
+-----------+----------------------+------+------------+----------------+------------+-------------+

1. Dari tabel barang, tampilkan informasi kd_barang, nama_barang,


dan harga jual.
2. Tampilkan informasi nama barang, stok, dan harga jual dari tabel
barang pada pemasok P33.
UNION
• Operasi untuk menggabungkan baris dari dua buah tabel.
• Diwakili dengan notasi R ∪ S
• dimana R ∪ S ={t | t ∈ R atau t ∈ S}, yaitu berupa relasi
yang anggota-anggotanya adalah tuple-tuple yang
berasal dari R atau S. Bila ada yang terduplikasi, cukup
satu saja yang dipertahankan.
UNION
• Syarat agar operasi UNION dapat dilangsungkan:
– R dan S harus memiliki cacah kolom (arity) yang sama
– masing-masing kolom dari kedua relasi harus
kompatibel, artinya nilai-nilai di dalamnya harus
berasal dari domain yang sama.
• Implementasi:
SELECT * FROM R UNION SELECT * FROM S
SET DIFFERENCE
• Operasi selisih himpunan merupakan kebalikan dari
operasi UNION, yaitu operasi pengurangan data pada
tabel pertama oleh data pada tabel kedua.
• Diwakili oleh notasi R – S
SET DIFFERENCE
• Syarat operasi dapat dilangsungkan
– R dan S harus memiliki cacah kolom (arity) yang sama
– masing-masing kolom dari kedua relasi harus kompatibel, artinya
nilai-nilai di dalamnya harus berasal dari domain yang sama.
• Implementasi: bila R dan S sama-sama hanya memiliki
kolom A dan B
SELECT * FROM R
WHERE (A,B) NOT IN (SELECT * FROM S)
SET INTERSECTION
• Operasi ini digunakan untuk mendapatkan irisan
(kesamaan anggota) dari dua buah kelompok data.
• Diwakili oleh notasi R ∩ S,
• Dimana R ∩ S = {t | t ∈ R atau t ∩ S} , yaitu berupa
relasi yang anggota-anggotanya adalah tuple-tuple
(baris) yang ada dalam R dan ada dalam S.
SET INTERSECTION
• Syarat agar operasi UNION dapat dilangsungkan:
– R dan S harus memiliki cacah kolom (arity) yang sama
– masing-masing kolom dari kedua relasi harus kompatibel, artinya
nilai-nilai di dalamnya harus berasal dari domain yang sama.
• Implementasi: bila R dan S sama-sama hanya memiliki
kolom A dan B
SELECT * FROM R
WHERE (A,B) IN (SELECT * FROM S)
CONTOH
• Contoh operasi UNION, SET DIFFERENCE, dan SET INTERSECTION
A B

α 1 A B
α 2 α 2
β 1 β 3

Tabel : relasi R Tabel : relasi S


A B

α 1

α 2
A B
β 1
α 1 A B
β 3
β 1 α 2
R∪S R–S R∩S
CARTESIAN PRODUCT
• Operasi yang menggabungkan data dari dua buah
tabel atau hasil relasi.
• Notasi diwakili oleh simbol R x S
• Dimana, R x S = {pq | p ∈ R atau q ∈ S}, hasilnya yaitu
berupa tabel yang diperoleh dengan memasangkan
setiap baris pada tabel R dengan semua baris pada
tabel S.
CARTESIAN PRODUCT
• Banyaknya baris yang dihasilkan dari operasi ini
sejumlah perkalian baris antara R dan S.
• Pada SQL di implementasikan dengan CROSS JOIN.
CARTESIAN PRODUCT
A B C D E

α 1 α 10 a

C D E α 1 β 10 a

A B α 1 β 20 b
α 10 a
α 1 β 10 a α 1 ? 10 b

β 2 β 20 b β 2 α 10 a
Tabel : relasi R ? 10 b β 2 β 10 a
Tabel : relasi S β
β 2 20 b

β 2 ? 10 b

Tabel : R x S
CARTESIAN PRODUCT
• Tuliskan hasil dari operasi sebagai berikut:
– σ A=C ( R x S )
– σ A=C ^ D>10 ( R x S )
JOIN
• JOIN adalah operasi gabungan antara CARTESIAN PRODUCT
dengan SELECT berdasar kriteria tertentu.
• Contoh-contoh operasi komposit cartesian product sebelumnya
adalah contoh operasi JOIN.
– CONDITIONAL JOIN adalah join yang berdasar pada kriteria tertentu yang bukan
operasi persamaan nilai atribut
– INNER JOIN adalah join yang berdasar pada kriteria tertentu berupa persamaan nilai
atribut
– NATURAL JOIN adalah operasi inner join yang dilakukan pada semua atribut yang
sama dari kedua relasi (nama dan domainnya). Pada tabel/relasi hasil, kolom-kolom
yang sama hanya muncul sekali
CONDITIONAL JOIN

R.A R.B S.A S.B


A B
A B α 1 α 2
α 1
α 2 α 1 β 3
α 2
β 3 α 2 β 3
β 1 β 1 α 2
Tabel : relasi S
Tabel : relasi R β 1 β 3
Tabel : σ R.B < S.B ( R x S )
INNER JOIN
• INNER JOIN adalah operasi JOIN yang berdasar pada
kriteria tertentu, yaitu berupa persamaan nilai atribut

A B

α 1 A B
R.A R.B S.A S.B
α 2 α 2 α
α 1 2
β 1 β 3 β 1 β 3
Tabel : relasi S Tabel : σ R.A=S.A ( R x S )
Tabel : relasi R
NATURAL JOIN
• NATURAL JOIN adalah operasi inner join yang dilakukan
pada semua atribut yang sama dari kedua tabel (nama
dan domainnya). Pada tabel hasil, kolom-kolom yang
sama hanya muncul sekali
A B
A B
α 1 A B
α 2
α 2 α 2
β 3
β 1 Tabel : Hasil operasi R ⋈ S = π R.A,R.B (σ R.A=S.A^R.B=S.B ( R x S ))
Tabel : relasi S
Tabel : relasi R
NATURAL JOIN
A B C D B D E

α 1 α a 1 a α

β 2 ? a 3 a β

? 4 β b 1 a ?
2 b ? A B C D E
α 1 ? a
3 b ϵ α 1 α a α
? 2 β b
Tabel : relasi R Tabel : relasi S α 1 α a ?
α 1 ? a α
α 1 ? a ?
? 2 β b ?

Tabel : Hasil operasi R ⋈ S = π R.A,R.B,R.C,R.D,S.E (σ R.B=S.B ^ R.D=S.D ( R x S ))


BAHAN KASUS
• Semua materi pada materi ini akan menggunakan basis
data toko makanan.
• Terdiri dari 3 buah tabel, yaitu:
– Pemasok
– Kategori
– Barang
BAHAN KASUS – SKEMA ERD
kd_barang nama_barang stok tgl_kadaluarsa harga_jual

Barang

Memiliki Menyediakan

Kategori Pemasok

kd_kategori nama_kategori kd_pemasok nama_pemasok alamat


BAHAN KASUS – FORMAT DATA
Tabel Barang Tabel Pemasok
Kolom Tipe Data Kunci Kolom Tipe Data Kunci
kd_barang CHAR(3) Kunci Primer kd_pemasok CHAR(3) Kunci Primer
nama_barang VARCHAR(25) nama_pemasok VARCHAR(25)
stok INT kota VARCHAR(25)
harga_jual FLOAT
tgl_kadaluarsa DATE Tabel Kategori
kd_pemasok CHAR(3) Kunci Tamu Kolom Tipe Data Kunci
kd_kategori CHAR(3) Kunci Tamu kd_kategori CHAR(3) Kunci Primer
nama_kategori VARCHAR(25)
BAHAN KASUS – DATA
Tabel Pemasok Tabel Kategori
kd_pemasok nama_pemasok kota kd_kategori nama_kategori
P22 PT Citra Jaya Bogor K01 Kue Basah
P33 PT Kartika Yogya K02 Kue Kering
P11 PT Amerta Bandung K03 Minuman
P44 PT Nidya Tangerang K04 Snack
BAHAN KASUS – DATA
Tabel Barang
kd_barang nama_barang stok harga_jual tgl_kadaluarsa kd_pemasok kd_kategori
B001 Kacang Garuda 250 mg 75 18.000 22 Nov 2017 P22 K04
B002 Aqua 1500 ml 50 5.000 14 Sep 2017 P33 K03
B003 Sari Roti Coklat 14 12.500 05 Apr 2017 P11 K01
B004 Biskuat 100 mg 32 2.000 23 Jan 2018 P33 K02
B005 Fanta 600 ml 27 6.000 28 Ags 2017 P44 K03
B006 Mizone 600 ml 16 6.500 12 Ags 2017 P33 K03
B007 Tao Kae Noi 5 15.000 02 Feb 2018 P11 K04
STUDI KASUS
• Jawablah pertanyaan-pertanyaan berikut dengan
aljabar relasional.
1. Tampilkan informasi barang dan kategori dari barang yang memiliki
harga barang dibawah Rp. 10.000,-
2. Tampilkan informasi barang dan pemasok pada barang dengan
kategori “Minuman”.
3. Tampilkan informasi rata-rata jumlah stok barang pada tiap kategori.
4. Tampilkan informasi barang yang masa kadaluarsanya akan jatuh
diantara bulan Mei s.d September 2017.
STUDI KASUS
• Jawablah pertanyaan-pertanyaan berikut dengan
aljabar relasional.
5. Tampilkan informasi barang dari masing-masing kategori yang memiliki
stok paling banyak.
6. Tampilkan informasi barang dari kategori mana yang memiliki rata-rata
stok paling banyak.
7. Tampilkan informasi pemasok pada tiap kategori yang harga
barangnya paling mahal.
8. Tampilkan informasi pemasok pada tiap kategori yang masa
kadaluarsa barangnya jatuh pada bulan Agustus 2017.
TERIMA KASIH
PR
• Masukkan semua data riil pada tugas anda ke dalam basis
data.
• Carilah minimal 15 buah persoalan atau pertanyaan yang
mungkin muncul dalam kasus tugas anda. Semakin kompleks
dan tepat jawaban anda, maka nilai tugas akan makin
tinggi.
• Buatlah solusinya menggunakan SQL dan Aljabar Relasional
sekaligus.
• Susun dalam sebuah laporan beserta screenshotnya, dan
presentasikan!

Anda mungkin juga menyukai