ALJABAR RELASIONAL PERTEMUAN 6 oleh : Lisna Zahrotun, S.T, M.Cs [email protected] Teknik Informatika UAD 1 TUJUAN : MHS MEMAHAMI KONSEP TENTANG RELASI N ARRAY SERTA APLIKASINYA BASIS DATA RELASIONAL Pokok Bahasan pengertian relasi n-array contoh relasi pengertian basis data relasional operasi seleksi, proyeksi, join contoh kasus 2 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. Misalkan A1, A2, …, An adalah himpunan. Relasi n-ary R pada himpunan-himpunan tersebut adalah himpunan bagian dari A1 A2 … An , atau dengan notasi R A1 A2 … An. Himpunan A1, A2, …, An disebut daerah asal relasi dan n disebut derajat. 3 Contoh 22. Misalkan NIM = {07018001, 07018002, 07018003, 07018004, 07018005, 07018006} Nama = {Anni, Bimo , Riri, Hafiz, Rini,Widi} MatKul = {Matematika Diskrit, Basis Data, Algoritma, Sistem Informasi } Nilai = {A, B, C, D, E} Relasi MHS terdiri dari 5-tupel (NIM, Nama, MatKul, Nilai): MHS NIM Nama MatKul Nilai 4 Satu contoh relasi yang bernama MHS adalah MHS = { (07018001, Ani, Matematika Diskrit,A), (07018001, Ani, Basis Data,B), (07018002, Bimo, Matematika Diskrit,D), (07018002, Bimo, Sistem Informasi,C), (07018003, Riri, Basis Data,B), (07018003, Riri, Algoritma,E), (07018003, Riri, Sistem Informasi,B), (07018004, Hafiz, Matematika Diskrit,B), (07018004, Hafiz, Basis Data,B), (07018005, Rini, Algoritma,A), (07018006, Widi, Sistem Informasi,C), (07018006, Widi, Basis Data,B) } 5 Relasi MHS di atas juga dapat ditulis dalam bentuk Tabel: NIM 07018001 07018001 07018002 07018002 07018002 07018003 07018003 07018003 07018004 07018004 07018005 07018006 07018006 Nama Ani Ani Bimo Bimo Bimo Riri Riri Riri Hafiz Hafiz Rini Widi Widi MatKul Matematika Diskrit Basis Data Matematika Diskrit Algoritma Sistem Informasi Basis Data Algoritma Sistem Informasi Matematika Diskrit Basis Data Algoritma Sistem Informasi Basis Data Nilai A B D C C B E B B B A C B 6 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). 7 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. 8 Seleksi Operasi seleksi memilih baris tertentu dari suatu tabel yang memenuhi persyaratan tertentu. Operator: Contoh 23. 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) 9 Proyeksi Operasi proyeksi memilih kolom tertentu dari suatu tabel. Jika ada beberapa baris yang sama nilainya, maka hanya diambil satu kali. Operator: Contoh 24. Operasi proyeksi Nama, MatKul, Nilai (MHS) menghasilkan Tabel 3.5. Sedangkan operasi proyeksi NIM, Nama (MHS) menghasilkan Tabel 3.6. 10 Tabel 3.5 Nama Amir Amir Santi Irwan Irwan Irwan Ahmad Cecep Cecep Hamdan Hamdan Hamdan Hamdan MatKul Matematika Diskrit Arsitektur Komputer Algoritma Algoritma Struktur Data Arsitektur Komputer Algoritma Algoritma Arsitektur Komputer Matematika Diskrit Algoritma Struktur Data Arsitektur Komputer Tabel 3.6 Nilai A B D C C B E B B B A C B NIM 13598011 13598014 13598015 13598019 13598021 13598025 Nama Amir Santi Irwan Ahmad Cecep Hamdan 11 Join Operasi join menggabungkan dua buah tabel menjadi satu bila kedua tabel mempunyai atribut yang sama. Operator: Contoh 25. Misalkan relasi MHS1 dinyatakan dengan Tabel 3.7 dan relasi MHS2 dinyatakan dengan Tabel 3.8. Operasi join NIM, Nama(MHS1, MHS2) menghasilkan Tabel 3.9. Tabel 3.7 NIM 13598001 13598002 13598004 13598006 13598007 Tabel 3.8 Nama Hananto Guntur Heidi Harman Karim JK L L W L L NIM 13598001 13598001 13598004 13598006 13598006 13598009 13598010 Nama Hananto Hananto Heidi Harman Harman Junaidi Farizka MatKul Algoritma Basisdata Kalkulus I Teori Bahasa Agama Statisitik Otomata Nilai A B B C A B C Tabel 3.9 NIM 13598001 13598001 13598004 13598006 13598006 Nama Hananto Hananto Heidi Harman Harman JK L L W L L MatKul Algoritma Basisdata Kalkulus I Teori Bahasa Agama Nilai A B B C A 12 BASIS DATA BANK branch (branch_name, branch_city, assets) customer (customer_name, customer_street, customer_city) account (account_number, branch_name, balance) loan (loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number) 13 CONTOH KUERI Dapatkan semua pinjaman lebih dari $1200 amount > 1200 (loan) Dapatkan nomor pinjaman yang setiap jumlah pinjamnnya lebih dari $1200 loan_number (amount > 1200 (loan)) Dapatkan semua nama pelanggan yang mempunyai pinjaman, rekening atau keduanya customer_name (borrower) customer_name (depositor) 14 KUERI LAIN.. Dapatkan nama pelanggan yang mempunyai pinjaman di cabang Perryridge customer_name (branch_name=“Perryridge” (borrower.loan_number = loan.loan_number(borrower x loan))) Dapatkan nama pelanggan yang punya pinjaman di Perryridge tetapi tidak punya rekening di cabang lain. customer_name (branch_name = “Perryridge” (borrower.loan_number = loan.loan_number(borrower x loan))) – customer_name(depositor) 15 KUERI LAIN.. Dapatkan semua pelanggan yang punya rekening di seluruh cabang di kota Brooklyn. customer_name, branch_name (depositor account) branch_name (branch_city = “Brooklyn” (branch)) 16 CONTOH SOAL Diberikan skema relasi mhs(nim,nama, alamat) ambil(nim,matakuliah,smr,tahun,nilai) matakuliah(kodekul,nama kul,sks) Soal : 1. Tampilkan mahasiswa pengambil matakuliah basis data 17 2. Tampilkan mahasiswa pengambil mata kuliah basis data yang tidak lulus (nilai D,E) 3. Tampilkan kode kuliah, nama mata kuliah yang diambil oleh nim=‘007’ 4. Tampilkan kode kuliah, nama mata kuliah ,nilai yang diambil oleh nim=‘007’tetapi tidak diambil oleh nim=‘010’ 18 DAFTAR PUSTAKA Doer Allan, Kenneth Levasseur, Applied Discrete Structures for Computer Science, Science Research Associates, Inc. Toronti,1985 Kolman, Bernard, Robert C.Busby,Sharon Ross, Discrete Mathematical Structures,Prentice Hall,1987 Munir, Rinaldi, Matematika Diskrit, Edisi kedua,Penerbit Informatika Bandung,2001 Rosen,Kenneth H.,Discreete Mathematics and Its Application, The Random House Birkhauser Mathematics Series NewYork,1987 Setyadi, Tedi, Diktat Matematika Diskrit, Universitas Ahmad Dahlan 19 WEB SITE http://syssci.atu.edu/math/faculty/finan/main 2.pdf http://www1.cs.columbia.edu/~zeph/3203s04 /lectures.html http://www.informatika.org/~rinaldi/Matdis/m atdis.htm 20