Relasi Universitas Telkom www.telkomuniversity.ac.id Disusun Oleh : Hanung N. Prasetyo, S.Si, M.T. dkk hanungnp@telkomuniversity.ac.id DU1023-Matematika Diskrit Semester Ganjil 2015 - 2016 Hanya dipergunakan untuk kepentingan pengajaran di Lingkungan Telkom University
Be simple???
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 Mahasiswa diperkenalkan implementasi konsep relasi dalam basis data
CONTOH DIAGRAM RELASI ANTAR TABEL (DbRental;baca (Database rental))
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 N Sewa N Konsumen Mobil KodeKonsumen No KTP No Polisi No Telp KodeMobil Tarif Sewa Alamat Tanggal Uang Muka
Structure Query Language (SQL) dengan penerapan relasi didalamnya Beberapa contoh Structure Query Language (SQL) dengan penerapan relasi didalamnya 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.
Konsep Relasi 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 yang kedua dari B. Relasi antara dua himpunan yang demikian ini disebut sebagai relasi biner.
Relasi Biner Relasi biner R antara himpunan A dan B adalah himpunan bagian dari A B. Notasi: R (A B). a R b adalah notasi untuk (a, b) R, yang artinya a dihubungkan dengan b oleh R a R b adalah notasi untuk (a, b) R, yang artinya a tidak dihubungkan oleh b oleh relasi R. Himpunan A disebut daerah asal (domain) dari R, dan himpunan B disebut daerah hasil (range) dari R.
R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)} Contoh Misalkan P = {2, 3, 4} dan Q = {2, 4, 8, 9, 15}. Jika kita definisikan relasi R dari P ke Q dengan: (p, q) R jika p habis membagi q maka diperoleh: R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)}
Misalkan R adalah relasi pada A = {2, 3, 4, 8, 9} yang didefinisikan oleh (x, y) R Jika x adalah faktor prima dari y. Maka: R = {(2, 2), (2, 4), (2, 8), (3, 3), (3, 9)} Contoh
Representasi Relasi Representasi Relasi dengan Diagram Panah
Representasi Relasi Representasi Relasi dengan Tabel Kolom pertama tabel menyatakan daerah asal, sedangkan kolom kedua menyatakan daerah hasil Representasi Relasi P Q A 2 4 8 3 9 15 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)}
Representasi Relasi Representasi Relasi dengan Matriks Misalkan R adalah relasi dari A = {a1, a2, …, am} dan B = {b1, b2, …, bn}. Relasi R dapat disajikan dengan matriks M = [mij] b1 b2 bn
Contoh R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8), (3, 9), (3, 15)} Relasi R dari P ke Q dengan P = {2, 3, 4} dan Q = {2, 4, 8, 9, 15} dapat dinyatakan dengan matriks berikut:
Representasi Relasi 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. Representasi Relasi
Contoh Misalkan R = {(a, a), (a, b), (b, a), (b, c), (b, d), (c, a), (c, d), (d, b),(d,d)} R adalah relasi pada himpunan {a, b, c, d}. R direpresentasikan dengan graf berarah sbb: a c b d
Sifat Sifat Relasi Biner 1. Refleksif (reflexive) Relasi R pada himpunan A disebut refleksif jika (a, a) R untuk setiap a A. Relasi R pada himpunan A tidak refleksif jika ada a A sedemikian sehingga (a, a) R. Sifat Sifat Relasi Biner
Contoh Misalkan A = {1, 2, 3, 4}, dan relasi R di bawah ini didefinisikan pada himpunan A R1 = {(1, 1), (1, 3), (2, 1), (2, 2), (3, 3), (4, 2), (4, 3), (4, 4) } Relasi R1 bersifat refleksif karena terdapat elemen relasi yang berbentuk (a, a), yaitu: (1, 1), (2, 2), (3, 3), dan (4, 4). Relasi R2 = {(1, 1), (2, 2), (2, 3), (4, 2), (4, 3), (4, 4) } tidak bersifat refleksif R2 tidak refleksif Karena (3, 3) R2.
Ciri Relasi Yang Bersifat Refleksif Relasi yang bersifat refleksif mempunyai matriks yang elemen diagonal utamanya semua bernilai 1, atau mii = 1, untuk i = 1, 2, …, n,
Ciri Relasi Yang Bersifat Refleksif Graf berarah dari relasi yang bersifat refleksif dicirikan adanya gelang pada setiap simpulnya Ciri Relasi Yang Bersifat Refleksif
Sifat Sifat Relasi Biner 2. Menghantar (transitif) Relasi R pada himpunan A disebut menghantar jika (a, b) R dan (b, c) R, maka (a, c) R, untuk a, b, c A. Contoh Misalkan A = {1, 2, 3, 4}, dan relasi R di bawah ini didefinisikan pada himpunan A R = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3) } bersifat menghantar.
Contoh 1. R = {(1, 1), (2, 3), (2, 4), (4, 2) } tidak menghantar, karena : (2, 4) dan (4, 2) R, tetapi (2, 2) R (4, 2) dan (2, 3) R, tetapi (4, 3) R 2. Relasi R = {(1, 1), (2, 2), (3, 3), (4, 4) } jelas menghantar (rinaldi munir, 2007) Contoh
Sifat-Sifat Relasi Biner 3. Simetris (setangkup) Relasi R pada himpunan A disebut setangkup jika (a, b) R, maka (b, a) R untuk a, b A. Sifat-Sifat Relasi Biner
Contoh Misalkan A = {1, 2, 3, 4}, dan relasi R di bawah ini didefinisikan pada himpunan A: Relasi R = {(1, 1), (1, 2), (2, 1), (2, 2), (2, 4), (4, 2), (4, 4) } bersifat setangkup (a, b) R maka (b, a) juga R. Di sini (1, 2) dan (2, 1) R, begitu juga (2, 4) dan (4, 2) R. b. Relasi R = {(1, 1), (2, 3), (2, 4), (4, 2) } tidak setangkup karena (2, 3) R, tetapi (3, 2) R
Relasi Invers 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 } Relasi Invers
Contoh Misalkan P = {2, 3, 4} dan Q = {2, 4, 8, 9, 15}. Jika kita definisikan relasi R dari P ke Q dengan (p, q) R jika p habis membagi q maka: R = {(2, 2), (2, 4), (4, 4), (2, 8), (4, 8),(3, 9), (3, 15) } R–1 adalah invers dari relasi R, yaitu relasi dari Q ke P dengan (q, p) R–1 jika q adalah kelipatan dari p maka: R–1 = {(2, 2),(4, 2),(4, 4),(8, 2),(8, 4),(9, 3),(15,3) }
Relasi Invers Dalam Matriks Jika M adalah matriks yang merepresentasikan relasi R Matriks yang merepresentasikan relasi R–1, misalkan N, diperoleh dengan melakukan transpose terhadap matriks M Relasi Invers Dalam Matriks
Misalkan A = {1, 2, 3, 4, 5, 6, 7} , B = {4, 5, 6, 7, 8, 9} dan relasi R dari A ke B diberikan oleh Carilah: Domain, Range, dan invers dari R 2. Suatu relasi R dari himpunan A = {1, 2, 3, 4} ke himpunan B = {1, 3, 5}, yang didefinisikan oleh “x lebih kecil dari y” Tulis R sebagai himpunan pasangan terurut. Tentukan relasi invers dari R Latihan Soal
3. Suatu relasi R yang didefinisikan sebagai “x habis membagi y”dari himpunan C = {2,3, 4, 5} ke himpunan D = {3, 6, 7, 10} Tentukan R sebagai himpunan pasangan terurut Tentukan relasi invers dari R Latihan Soal
4. Misalkan W = {1, 2, 3, 4}. Perhatikan relasi- relasi dalam W berikut ini : R5 = W x W Selidiki apakah masing-masing relasi diatas bersifat (a) refleksif (b) simetris (c)transitif Latihan Soal
5. Misalkan R adalah relasi pada himpunan A = {2,4,8,32} dimana R menyatakan bahwa “x membagi y” untuk setiap x,y anggota A Tulis R sebagai pasangan terurut Buatlah relasi R dalam bentuk matriks dan graf Selidiki apakah R memiliki sifat refleksif, simetris, dan transitif Latihan Soal
Diketahui himpunan B= { 1,2,3,4,5,6} dan relasi : Dari relasi berikut tentukan yang bersifat refleksif, transitif dan simetris
Karena relasi biner merupakan himpunan pasangan terurut, maka operasi himpunan seperti irisan, gabungan, selisih, dan beda setangkup antara dua relasi atau lebih juga berlaku. Jika R1 dan R2 masing-masing adalah relasi dari himpuna A ke himpunan B, maka R1 R2, R1 R2, R1 – R2, dan R1 R2 juga adalah relasi dari A ke B. Kombinasi Relasi
Contoh Misalkan A = {a, b, c} dan B = {a, b, c, d}. Relasi R1 = {(a, a), (b, b), (c, c)} Relasi R2 = {(a, a), (a, b), (a, c), (a, d)} R1 R2 = {(a, a)} R1 R2 = {(a, a), (b, b), (c, c), (a, b), (a, c), (a, d)} R1 R2 = {(b, b), (c, c)} R2 R1 = {(a, b), (a, c), (a, d)} R1 R2 = {(b, b), (c, c), (a, b), (a, c), (a, d)}
Komposisi Relasi Misalkan R adalah relasi dari himpunan A ke himpunan B, dan S adalah relasi dari himpunan B ke himpunan C. Komposisi R dan S, dinotasikan dengan S R, adalah relasi dari A ke C yang didefinisikan oleh S R = {(a, c) a A, c C, dan untuk beberapa b B, (a, b) R dan (b, c) S }
Komposisi Relasi Misalkan 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
Komposisi Relasi Komposisi relasi R dan S adalah S R = {(1, u),(1, t),(2, s),(2, t),(3, s),(3, t),(3, u)} Komposisi relasi R dan S lebih jelas jika diperagakan dengan diagram panah:
Relasi n-ary 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 Relasi n-ary
Contoh 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} Relasi MHS terdiri dari 5-tupel (NIM, Nama, MatKul, Nilai): MHS NIM Nama MatKul Nilai
Contoh
Contoh
Basisdata (database) adalah kumpulan tabel. Relasi Basis Data 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 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. Basis Data
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). Relasi Basis Data
Query Operasi yang dilakukan terhadap basisdata dilakukan dengan perintah pertanyaan yang disebut query. Contoh query: “tampilkan semua mahasiswa yang mengambil mata kuliah Matematika Diskrit” “tampilkan daftar nilai mahasiswa dengan NIM = 13598015” “tampilkan daftar mahasiswa yang terdiri atas NIM dan mata kuliah yang diambil”
Query terhadap basisdata relasional dapat dinyatakan secara abstrak dengan operasi pada relasi n-ary. Ada beberapa operasi yang dapat digunakan, diantaranya adalah seleksi, proyeksi, dan join. Query
Seleksi Operasi seleksi memilih baris tertentu dari suatu tabel yang memenuhi persyaratan tertentu. Operator:
Misalkan untuk relasi MHS kita ingin menampilkan daftar mahasiswa yang mengambil mata kuliah Matematik Diskrit. Operasi seleksinya adalah Matkul=”Matematika Diskrit” (MHS) Hasil: (13598011, Amir, Matematika Diskrit, A) dan (13598025, Hamdan, Matematika Diskrit, B) Contoh
Jika kita ingin menampilkan daftar mahasiswa dari relasi MHS yang mendapatkan nilai A, tentukan operasi seleksi dan hasilnya! Jika kita ingin menampilkan mahasiswa dengan NIM = 13598025, tentukan operasi seleksi dan hasilnya! Latihan
Proyeksi 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 daftar nama mahasiswa, mata kuliah, dan Nilai. Operasi proyeksinya adalah Nama, MatKul, Nilai (MHS)
Latihan Soal Misalkan untuk relasi MHS kita ingin menampilkan daftar NIM dan Nama, tentukan Operasi proyeksinya dan Tabelnya! Misalkan untuk relasi MHS kita ingin menampilkan daftar NIM, Mata Kuliah dan Nilai, tentukan Operasi proyeksinya dan Tabelnya!
Join Operasi join menggabungkan dua buah tabel menjadi satu bila kedua tabel mempunyai atribut yang sama. Operator:
Misalkan relasi MHS1 dinyatakan dengan Tabel A dan relasi MHS2 dinyatakan dengan Tabel B Operasi join NIM, Nama(MHS1, MHS2) Contoh
Contoh Tabel A Tabel B NIM Nama JK 13598001 Hananto L 13598002 Guntur 13598004 Heidi W 13598006 Harman 13598007 Karim NIM Nama MatKul Nilai 13598001 Hananto Algoritma A Basisdata B 13598004 Heidi Kalkulus I 13598006 Harman Teori Bahasa C Agama 13598009 Junaidi Statisitik 13598010 Farizka Otomata
Hasil Operasi Join NIM Nama JK MatKul Nilai 13598001 Hananto L Algoritma A Basisdata B 13598004 Heidi W Kalkulus I 13598006 Harman Teori Bahasa C Agama
Structured Query Language (SQL) Bahasa khusus untuk query di dalam basis data disebut SQL Bahasa ini dirangcang sedemikian sehingga dapat merealisasikan query- query yang dijelaskan pada bagian sebelumnya Structured Query Language (SQL)
Contoh 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) Contoh
Menentukan Kardinalitas relasi Satu-ke satu (One to one) Satu ke banyak (One to Many) Banyak ke satu (Many to one) Banyak ke banyak (Many to many) Menentukan Kardinalitas relasi
Kardinalitas relasi menggambarkan banyaknya jumlah maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain. Pada himpunan relasi biner, pemetaan kardinaltias relasi dapat berupa salah satu dari berikut ini Satu ke Satu Satu ke Banyak Banyak ke Satu Banyak ke Banyak Kardinalitas Relasi
Kardinalitas Relasi
Kardinalitas Relasi
Key Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. 3 Macam key Super Key Candidate Key Primary Key
3 Macam Key Super Key Candidate Key Primary Key Satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik. Candidate Key Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Primary Key Merupakan salah satu dari candidate key yang terpilih Alasan pemilihan primary key Lebih sering di jadikan acuan Lebih ringkas Jaminan keunikan key lebih baik 3 Macam Key
Super Key Candidate Key Primary Key 3 Macam Key Cth Nim, nama, alamat, kota Nim, nama, alamat Nim, nama Nim Candidate Key Primary Key 3 Macam Key
Untuk Lebih memahami topik relasi, mahasiswa dapat mendengarkan link referensi berikut ini: http://www.youtube.com/watch?v=WXMjEM8ZWds
referensi Munir, R., Matematika Diskrit untuk Infomatika, Edisi kedua, Bandung, 2003 Rosen, K. H., Discrete Mathematics and Its Applications, 5th edition, McGraw-Hill, Singapore, 2003 Lipschutz S., Lipson M., Discrete Mathematics, McGraw Hill USA, 1997 Peter Grossman, Discrete Mathematics for Computing, Second Edition, Grassroot Series http://www.omicsonline.org (Gambar) http://www.youtube.com/watch?v=WXMjEM8ZWds