Pengantar Dalam sebuah bisnis rental mobil, bisnis proses yang terjadi banyak melibatkan data seperti: Data transaksi Data konsumen Data kendaraan/mobil setiap data di atas tentu saja mengandung data-data lain yang lebih detail misalkan data kendaraan terdiri dari kode mobil, jenis mobil, no polisi, tarif sewa kemudian data transaksi melibatkan kode transaksi, tanggal, lama pinjam dsb. (seluruh data tersebut disatukan sebagai sebuah database dengan menggunakan aplikasi database seperti SQL Apabila kita merancang sebuah aplikasi sistem tentu melibatkan database tersebut. Berikut ini adalah gambaran relasi antar tabel
DIAGRAM RELASI ANTAR TABEL (DbRental)
dalam sebuah proses bisnis tidak semua data dalam database digunakan, misalkan dalam permintaan (disebut Query) proses transaksi rental mobil hanya melibatkan data-data yang berkaitan dengan proses tersebut, sehingga pada saat merancang query harus memahami relasi antar data, relasi antar data dapat diperlihatkan dalam diagram berikut:
DIAGRAM RELASI ANTAR ENTITAS ( rental mobil ) NamaKonsumen Tanggal Jenis Mobil KodeKonsumen KodeTransaksi KodeMobil Konsumen N Sewa N Mobil No KTP KodeKonsumen No Polisi No Telp KodeMobil Tarif Sewa Alamat Tanggal Uang Muka
Beberapa contoh Structure Query Language (SQL) SELECT * FROM TbKonsumen Menampilkan semua kolom/field yang ada pada tabel TbKonsumen SELECT * FROM TbKonsumen ORDER BY NamaKonsumen DESC Menampilkan semua kolom/field yang ada pada tabel TbKonsumen dan diurutkan secara menurun(z-a) berdasarkan field Nama Konsumen SELECT NamaKonsumen,NoTELP FROM TbKonsumen Menampilkan kolom/field Nama Konsumen dan No Telpon yang ada pada tabel TbKonsumen SELECT * FROM TbKonsumen WHERE KodeKonsumen= K002 Menampilkan semua kolom/field yang ada pada tabel TbKonsumen dengan kriteria hanya konsumen yang mempunyai kode konsumen K002. SELECT * FROM TbMobil WHERE TarifSewa>=300000 Menampilkan semua kolom/field yang ada pada tabel TbMobil dengan kriteria hanya mobil yang mempunyai Tarif Sewa lebih besar sama dengan Rp.300,000.
Untuk menggambarkan hubungan antara dua anggota himpunan, misalnya A dengan B, kita bisa menggunakan pasangan berurut (ordered pairs) Elemen pertama adalah anggota dari A dan yangkeduadarib. Relasi antara dua himpunan yang demikian ini disebut sebagai relasi biner.
RelasibinerRantarahimpunanAdanBadalah himpunanbagiandaria B. Notasi: R (A B). a R badalahnotasiuntuk(a, b) R, yang artinya a dihubungankan dengan b oleh R arbadalahnotasiuntuk(a, b) R, yang artinyaatidakdihubungkanolehbolehrelasir. Himpunan A disebut daerah asal(domain) dari R, danhimpunanb disebutdaerahhasil(range) dari R.
MisalkanP= {2, 3, 4} danq= {2, 4, 8, 9, 15}. JikakitadefinisikanrelasiRdariPkeQ dengan: (p, q) R jikaphabismembagiq maka diperoleh: R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)}
MisalkanRadalahrelasipadaA= {2, 3, 4, 8, 9} yang didefinisikanoleh(x, y) R Jikaxadalah faktorprima dariy. Maka: R= {(2, 2), (2, 4), (2, 8), (3, 3), (3, 9)}
1. Representasi Relasi dengan Diagram Panah R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)} R = {(2, 2), (2, 4), (2, 8), (3, 3), (3, 9)}
2. Representasi Relasi dengan Tabel Kolompertamatabelmenyatakandaerahasal, sedangkan kolom kedua menyatakan daerah hasil P Q A A R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)} R = {(2, 2), (2, 4), (2, 8), (3, 3), (3, 9)} 2 2 2 2 2 4 2 4 4 4 2 8 2 8 3 3 4 8 3 3 3 9 3 15
3. Representasi Relasi dengan Matriks MisalkanRadalahrelasidariA= {a 1, a 2,, a m } danb= {b 1, b 2,, b n }. RelasiRdapatdisajikandenganmatriksM= [m ij ] b 1 b 2 b n M a m m L m a m m L m = M M M M M a m m L m 1 11 12 1n 2 21 22 2n m m1 m2 mn m ij 1, = 0, ( a ( a i i, b, b j j ) R ) R
R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)} RelasiRdariP keq denganp= {2, 3, 4} dan Q= {2, 4, 8, 9, 15} dapatdinyatakandengan matriks berikut: 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0
4. Representasi Relasi dengan Graf Berarah Relasi pada sebuah himpunan dapat direpresentasikan secara grafis dengan graf berarah(directed graph atau digraph) Graf berarah tidak didefinisikan untuk merepresentasikan relasi dari suatu himpunan ke himpunan lain.
MisalkanR= {(a, a), (a, b), (b, a), (b, c), (b, d), (c, a), (c, d), (d, b),(d,d)} R adalahrelasipadahimpunan{a, b, c, d}. R direpresentasikan dengan graf berarah sbb:
1. Refleksif(reflexive) Relasi R pada himpunan A disebut refleksif jika(a, a) Runtuksetiapa A. RelasiRpadahimpunanAtidakrefleksifjika adaa Asedemikian sehingga(a, a) R.
Misalkan A = {1, 2, 3, 4}, dan relasi R di bawah ini didefinisikan pada himpunan A R 1 ={(1,1),(1,3),(2,1),(2,2),(3,3),(4,2),(4,3),(4,4)} Relasi R 1 bersifat refleksif karena terdapat elemen relasi yang berbentuk(a, a), yaitu: (1, 1),(2,2),(3,3),dan(4,4). Relasi R 2 = {(1, 1), (2, 2), (2, 3), (4, 2), (4, 3), (4, 4)} tidak bersifat refleksif R 2 tidakrefleksifkarena(3,3) R 2.
Relasi yang bersifat refleksif mempunyai matriks yang elemen diagonal utamanya semua bernilai 1, atau m ii = 1, untuk i = 1, 2,,n, 1 1 O 1 1
Graf berarah dari relasi yang bersifat refleksif dicirikan adanya gelang pada setiap simpulnya
2. Menghantar(transitif) Relasi R pada himpunan A disebut menghantar jika (a, b) Rdan(b, c) R, maka(a, c) R, untuk a, b, c A. Contoh MisalkanA= {1, 2, 3, 4}, danrelasirdibawahini didefinisikan pada himpunan A R= {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3) } bersifat menghantar.
1. R = {(1, 1), (2, 3), (2, 4), (4, 2) } tidak manghantar, karena: (2, 4) dan(4, 2) R, tetapi(2, 2) R (4, 2) dan (2, 3) R, tetapi(4, 3) R 2. RelasiR= {(1, 1), (2, 2), (3, 3), (4, 4) } jelas menghantar
3. simetris Relasi R pada himpunan A disebut setangkup jika(a, b) R, maka(b, a) Runtuka, b A.
MisalkanA= {1, 2, 3, 4}, danrelasirdibawah ini didefinisikan pada himpunan A: a. RelasiR= {(1, 1), (1, 2), (2, 1), (2, 2), (2, 4), (4, 2), (4, 4) } bersifatsetangkup (a, b) R maka(b, a) juga R. Di sini(1, 2) dan(2, 1) R, begitujuga(2, 4) dan(4, 2) R. b. RelasiR= {(1, 1), (2, 3), (2, 4), (4, 2) } tidak setangkupkarena(2, 3) R, tetapi(3, 2) R
Misalkan R adalah relasi dari himpunan A ke himpunan B. Invers dari relasi R, dilambangkan R 1, adalah relasi dari B ke A yang didefinisikan oleh: R 1 ={(b,a) (a,b) R}
MisalkanP= {2, 3, 4} danq= {2, 4, 8, 9, 15}. Jika kitadefinisikanrelasirdaripkeq dengan (p, q) R jikaphabismembagiq maka: R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8),(3, 9), (3, 15) } R 1 adalahinversdarirelasir, yaiturelasidariq kep dengan (q, p) R 1 jikaqadalahkelipatan darip maka: R 1 = {(2, 2),(4, 2),(4, 4),(8, 2),(8, 4),(9, 3),(15,3) }
Jika M adalah matriks yang merepresentasikan relasi R 1 1 1 0 0 M = 0 0 0 1 1 0 1 1 0 0 Matriksyang merepresentasikanrelasir 1, misalkan N, diperoleh dengan melakukan transpose terhadap matriks M 1 0 0 1 0 1 T N = M = 1 0 1 0 1 0 0 1 0
1. MisalkanA= {1, 2, 3, 4, 5, 6, 7}, B = {4, 5, 6, 7, 8, 9} danrelasir daria keb diberikanoleh R = {(1,5),(4,5),(1,4),(4,6),(3,7),(7,6)} Carilah: Domain, Range, dan invers dari R 2. Suatu relasir dari himpunana= {1, 2, 3, 4} kehimpunanb= {1, 3, 5}, yang didefinisikan oleh x lebihkecildariy Tulis R sebagai himpunan pasangan terurut. Tentukan relasi invers dari R
3. SuaturelasiRyang didefinisikansebagai x habismembagiy darihimpunanc= {2,3, 4, 5} kehimpunand= {3, 6, 7, 10} Tentukan R sebagai himpunan pasangan terurut Tentukan relasi invers dari R
4. MisalkanW = {1, 2, 3, 4}. Perhatikanrelasi-relasi dalamw berikutini: R 1 = {(1,1), (1,2)} R 2 = {(1,1), (2,3), (4,1)} R 3 = {(1,2), (2,4)} R 4 = {(1,1), (2,2), (3,3)} R 5 = Wx W Selidiki apakah masing-masing relasi diatas bersifat (a) refleksif(b) simetris(c)transitif
5. MisalkanR adalahrelasipadahimpunana = {2,4,8,32} dimanar menyatakanbahwa x membagi y untuk setiap x,y anggota A Tulis R sebagai pasangan terurut BuatlahrelasiR dalambentukmatriksdangraf SelidikiapakahR memilikisifatrefleksif, simetris, dan transitif
Karena relasi biner merupakan himpunan pasangan terurut, maka operasi himpunan seperti irisan, gabungan, selisih, dan beda setangkup antara dua relasi atau lebih juga berlaku. JikaR 1 danr 2 masing-masingadalahrelasidari himpunaakehimpunanb, makar 1 R 2, R 1 R 2, R 1 R 2, danr 1 R 2 jugaadalahrelasi dariakeb.
MisalkanA= {a, b, c} danb= {a, b, c, d}. RelasiR 1 = {(a, a), (b, b), (c, c)} RelasiR 2 = {(a, a), (a, b), (a, c), (a, d)} R 1 R 2 = {(a, a)} R 1 R 2 = {(a, a), (b, b), (c, c), (a, b), (a, c), (a, d)} R 1 R 2 = {(b, b), (c, c)} R 2 R 1 = {(a, b), (a, c), (a, d)} R 1 R 2 = {(b, b), (c, c), (a, b), (a, c), (a, d)}
Misalkan R adalah relasi dari himpunan A ke himpunan B, dan S adalah relasi dari himpunan B ke himpunan C. Komposisi R dan S, dinotasikandengansοr,adalahrelasidariake C yang didefinisikan oleh SοR={(a,c) a A,c C,danuntukbeberapa b B,(a,b) R dan(b,c) S }
Misalkan R= {(1, 2), (1, 6), (2, 4), (3, 4), (3, 6), (3, 8)} adalah relasi dari himpunan {1, 2, 3} ke himpunan {2, 4, 6, 8} dan S= {(2, u), (4, s), (4, t), (6, t), (8, u)} adalah relasi dari himpunan {2, 4, 6, 8} ke himpunan {s, t, u}.
Komposisi relasi Rdan Sadalah SοR= {(1, u),(1, t),(2, s),(2, t),(3, s),(3, t),(3, u)} Komposisi relasi Rdan Slebih jelas jika diperagakan dengan diagram panah: 1 2 3 2 4 6 8 s t u
Relasi biner hanya menghubungkan antara dua buah himpunan Relasi yang lebih umum menghubungkan lebih dari dua buah himpunan. Relasi tersebut dinamakan relasi n-ary(baca: ener) Jika n = 2, maka relasinya dinamakan relasi biner(bi = 2). Relasi n-ary mempunyai terapan penting di dalam basisdata
Misalkan NIM= {13598011, 13598014, 13598015, 13598019, 13598021, 13598025} Nama = {Amir, Santi, Irwan, Ahmad, Cecep, Hamdan} MatKul = {Matematika Diskrit, Algoritma, Struktur Data, Arsitektur Komputer} Nilai= {A, B, C, D, E} RelasiMHSterdiridari5-tupel (NIM, Nama, MatKul, Nilai): MHS NIM Nama MatKul Nilai
Satu contoh relasi yang bernama MHS adalah MHS = {(13598011, Amir, Matematika Diskrit, A), (13598011, Amir, Arsitektur Komputer, B), (13598014, Santi, Arsitektur Komputer, D), (13598015, Irwan, Algoritma, C), (13598015, Irwan, Struktur Data C), (13598015, Irwan, Arsitektur Komputer, B), (13598019, Ahmad, Algoritma, E), (13598021, Cecep, Algoritma, A), (13598021, Cecep, Arsitektur Komputer, B), (13598025, Hamdan, Matematika Diskrit, B), (13598025, Hamdan, Algoritma, A, B), (13598025, Hamdan, Struktur Data, C), (13598025, Hamdan, Ars. Komputer, B) }
Relasi MHS tersebut dapat ditulis dalam bentuk Tabel: NIM Nama MatKul Nilai 13598011 13598011 13598014 Amir Amir Santi Matematika Diskrit Arsitektur Komputer Algoritma A B D 13598015 13598015 13598015 13598019 13598021 13598021 13598025 13598025 13598025 13598025 Irwan Irwan Irwan Ahmad Cecep Cecep Hamdan Hamdan Hamdan Hamdan Algoritma Struktur Data Arsitektur Komputer Algoritma Algoritma Arsitektur Komputer Matematika Diskrit Algoritma Struktur Data Arsitektur Komputer C C B E B B B A C B
Basisdata(database) adalah kumpulan tabel. Salah satu model basisdata adalah model basisdata relasional (relational database). Model basisdata ini didasarkan pada konsep relasi n-ary.
Pada basisdata relasional, satu tabel menyatakan satu relasi. Setiap kolom pada tabel disebut atribut. Daerah asal dari atribut adalah himpunan tempat semua anggota atribut tersebut berada Setiap tabel pada basisdata diimplementasikan secara fisik sebagai sebuah file.
Satu baris data pada tabel menyatakan sebuah record, dan setiap atribut menyatakan sebuah field. Secara fisik basisdata adalah kumpulan file, sedangkan file adalah kumpulan record, setiap record terdiri atas sejumlah field. Atribut khusus pada tabel yang mengidentifikasikan secara unik elemen relasi disebut kunci(key).
Operasi yang dilakukan terhadap basisdata dilakukan denganperintahpertanyaanyang disebutquery. Contohquery: tampilkan semua mahasiswa yang mengambil mata kuliahmatematikadiskrit tampilkandaftarnilaimahasiswadengan NIM = 13598015 tampilkan daftar mahasiswa yang terdiri atas NIM dan mata kuliah yang diambil
Query terhadap basisdata relasional dapat dinyatakan secara abstrak dengan operasi padarelasin-ary. Adabeberapaoperasiyang dapatdigunakan, Adabeberapaoperasiyang dapatdigunakan, diantaranya adalah seleksi, proyeksi, dan join.
Operasi seleksi memilih baris tertentu dari suatu tabel yang memenuhi persyaratan tertentu. Operator: σ
Misalkan untuk relasi MHS kita ingin menampilkandaftarmahasiswayang mengambilmatakuliahmatematikdiskrit. Operasi seleksinya adalah σ Matkul= MatematikaDiskrit (MHS) Hasil: (13598011, Amir, MatematikaDiskrit, A) dan (13598025, Hamdan, Matematika Diskrit, B)
1. Jika kita ingin menampilkan daftar mahasiswa dari relasi MHS yang mendapatkan nilai A, tentukan operasi seleksi dan hasilnya! 2. Jika kita ingin menampilkan mahasiswa dengan NIM = 13598025, tentukan operasi seleksi dan hasilnya!
Operasi proyeksi memilih kolom tertentu dari suatu tabel. Jika ada beberapa baris yang sama nilainya, maka hanya diambil satu kali. Operator: π Misalkan untuk relasi MHS kita ingin menampilkan daftarnamamahasiswa, matakuliah, dannilai. Operasi proyeksinya adalah π Nama, MatKul, Nilai (MHS)
Operasiproyeksi: π Nama, MatKul, Nilai (MHS) Nama MatKul Nilai Amir Amir Santi Matematika Diskrit Arsitektur Komputer Algoritma A B D Irwan Irwan Irwan Ahmad Cecep Cecep Hamdan Hamdan Hamdan Hamdan Algoritma Struktur Data Arsitektur Komputer Algoritma Algoritma Arsitektur Komputer Matematika Diskrit Algoritma Struktur Data Arsitektur Komputer C C B E B B B A C B
1. Misalkan untuk relasi MHS kita ingin menampilkandaftar NIM dannama, tentukan Operasi proyeksinya dan Tabelnya! 2. Misalkan untuk relasi MHS kita ingin menampilkan daftar NIM, Mata Kuliah dan Nilai, tentukan Operasi proyeksinya dan Tabelnya!
Operasi joinmenggabungkan dua buah tabel menjadi satu bila kedua tabel mempunyai atribut yang sama. Operator: τ
Misalkan relasi MHS1dinyatakan dengan Tabel A dan relasi MHS2dinyatakan dengan Tabel B Operasi join τ NIM, Nama (MHS1, MHS2)
Tabel A NIM Nama JK 13598001 Hananto L 13598002 Guntur L 13598004 Heidi W 13598006 Harman L 13598007 Karim L Tabel B NIM Nama MatKul Nilai 13598001 Hananto Algoritma A 13598001 Hananto Basisdata B 13598004 Heidi Kalkulus I B 13598006 Harman Teori Bahasa C 13598006 Harman Agama A 13598009 Junaidi Statisitik B 13598010 Farizka Otomata C
NIM Nama JK MatKul Nilai 13598001 Hananto L Algoritma A 13598001 Hananto L Basisdata B 13598004 Heidi W Kalkulus I B 13598006 Harman L Teori Bahasa C 13598006 Harman L Agama A
Bahasakhususuntukquery didalambasis data disebut SQL Bahasa ini dirangcang sedemikian sehingga dapatmerealisasikanquery-query yang dijelaskan pada bagian sebelumnya
Select NIM, Nama, MatKul, Nilai From MHS WHERE MatKul = Matematika Diskrit adalah bahasa SQL yang bersesuaian dengan query abstrak: σ Matkul= Matematika Diskrit (MHS) dengan hasil: (13598011, Amir, Matematika Diskrit, A) (13598025, Hamdan, Matematika Diskrit, B)