laporan modul5 basis data

15
LAPORAN MODUL 5 PRAKTIKUM BASIS DATA Disusun untuk Memenuhi Matakuliah Praktikum Basis Data Yang Dibimbing oleh Triyanna Widiyaningtyas, S.T, M.T Disusun Oleh: ADAM ABHI NUGROHO (130533608295) LUCKY PRASETYO (130533608297) S1 PTI OFF A 2013

Upload: gilang-lovianindra-cipta-ii

Post on 25-Nov-2015

96 views

Category:

Documents


7 download

DESCRIPTION

basis data

TRANSCRIPT

LAPORAN MODUL 1 OBJEK DATABASE

LAPORAN MODUL 5PRAKTIKUM BASIS DATA

Disusun untuk Memenuhi Matakuliah Praktikum Basis DataYang Dibimbing olehTriyanna Widiyaningtyas, S.T, M.T

Disusun Oleh:

ADAM ABHI NUGROHO (130533608295)LUCKY PRASETYO (130533608297)

S1 PTI OFF A 2013

UNIVERSITAS NEGERI MALANGFAKULTAS TEKNIKJURUSAN TEKNIK ELEKTROPRODI PENDIDIKAN TEKNIK INFORMATIKAMARET 2014MODUL VRELASI DAN JOIN

1. Tujuan Memahami keterhubungan entitas di dalam basis data. Memahami jenis jenis operasi pengambilan data di beberapa entitas. Mampu menyelesaikan kasus kasus retrieval yang melibatkan lebih dari satu entitas

2. Dasar Teoria. RelationshipRelationship adalah suatu hubungan antara beberapa entitas. Konsep ini sangat penting sekali di dalam basis data, di mana memungkinkan entitas entitas untuk saling berhubungan satu sama lain.

Di dalam sebuah relationship, primary key memiliki peran penting untuk mengaitkan entitas. Selain itu, primary key juga di gunakan untuk mendefinisikan batasan keterhubungan.

b. JoinJoin merupakan salah satu konstruksi dasar dari SQL dan basis data. Join dapat di definisikan sebagai kombinasi record dari dua atau lebih tabel di dalam basis data relasional dan menghasilkan sebuah tabel (temporary) baru baru yang di sebut sebagai joined table.

Join dapat di klasifikasikan ke dalam dua jenis, yaitu inner join dan outer join.

1. Inner JoinInner join pada dasarnya adalah menemukan persimpangan (intersection) antara dua buah tabel.Sintaks inner join di perlihatkan sebagai berikut :

SELECT A1, A2, , AnFROM r1INNER JOIN r2ON r1.join_key = r2.join_key

Inner join juga dapat di presentasikan dalam bentuk implisit sebagai berikut :SELECT A1, A2, , AnFROM r1, r2WHERE r1.key = r2.key

Misalkan terdapat tabel A dan B, maka hasil inner join dapat di perlihatkan sebagai bidang terasir dalam diagram Venn seperti gambar berikut :

Gambar 1. Inner Join

2. Outer JoinOuter join di bagi ke dalam tiga jenis, yaitu left outer join, right outer join, dan full outer join.

Left Outer JoinLeft outer join (atau left join) mengembalikan semua nilai dari tabel kiri di tambah dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada nilai yang sesuai).

Sintaks left outer join di perlihatkan sebagai berikut :SELECT A1, A2, , AnFROM r1LEFT OUTER JOIN r2ON r1.join_key = r2.join_key

Left outer join antara tabel A dan B dapat di ilustrasikan dalam diagram Venn seperti gambar berikut :

Gambar 2.Left Outer Join

Right Outer JoinRight outer join (atau right join) pada dasarnya sama seperti left join, namun dalam bentuk terbalik kanan dan kiri.

Sintaks right outer join di perlihatkan sebagai berikut :SELECT A1, A2, , AnFROM r1RIGHT OUTER JOIN r2ON r1.join_key = r2.join_key

Right outer join antara tabel A dan B dapat di ilustrasikan dalam diagram Venn seperti gambar berikut :

Gambar 3.Right Outer Join

Full Outer JoinFull Outer Join (atau full join) pada hakekatnya merupakan kombinasi dari left dan right join.

Sintaks full outer join di perlihatkan sebagai berikut :SELECT A1, A2, , AnFROM r1FULL OUTER JOIN r2ON r1.join_key = r2.join_key

Bentuk visual dari full outer join dapat di perlihatkan menggunakan diagram Venn seperti gambar berikut :

Gambar 4.Full Outer Join

Selain empat jenis join yang utama di atas, masih ada beberapa variasi join lainnya, seperti CROSS JOIN (Cartesian Product), NATRURAL JOIN, dan sebagainya.

Perlu juga di perhatikan, join bisa di implementasikan dalam bentuk bersarang (nested join). Jadi, di dalam sebuah operasi join bisa terdapat operasi join lainnya.

3. Latihana. RelationshipDalam latihan ini di gunakan dua tabel bernama karyawan dan departemen dengan relationship bekerja pada. Struktur tabelnya di perlihatkan sebagai berikut:CREATE TABLE karyawan(nama varchar(30) NOT NULL,id_dep int(5) NOT NULL)ENGINE = MyISAM;

CREATE TABLE departemen(id_dep int(5) NOT NULL,nama_dep varchar(30) NOT NULL,PRIMARY KEY(id_dep))ENGINE = MyISAM;Data yang di gunakan adalah sebagai berikut :Tabel Karyawan

Tabel Departemen

b. Inner JoinSebagaimana di jelaskan, inner join akan mengembalikan data di tabel A dan B yang sesuai. Sebagai contoh, untuk mendapatkan data karyawan yang memiliki departemen. Eksekusi pernyataan atau perintah SQL sebagai berikut :SELECT *FROM karyawan INNER JOIN departemenON karyawan.id_dep = departemen.id_dep;

Selain itu, dapat pula menggunakan bentuk implicit dari inner join di atas, yaitu sebagai berikut :SELECT * FROM karyawan, departemenWHERE karyawan.id_dep = departemen.id_dep; Bandingkan hasil eksekusi perintah SQL yang menggunakan INNER JOIN dengan yang menggunakan bentuk implisitnya !Dalam pengambilan data ini, kita juga bisa menspesifikasikan field terkait. Sebagai contoh, untuk mengambil nama karyawan dan nama departemen yang di tempatinya saja, eksekusi perintah SQL berikut :SELECT karyawan.nama, departemen.nama_depFROM karyawan INNER JOIN departemenON karyawan.id_dep = departemen.id_dep;

Perhatikan bahwa untuk menampilkan field tertentu saja, maka nama field tersebut harus di sebutkan secara ekspilsit beserta nama tabel tempat field itu berada.

Note : Nama tabel dapat pula tidak di sebutkan apabila nama field yang terkait bersifat unik (berbeda). Akan tetapi jika ada 2 atau lebih field yang memiliki nama yang sama dan berada di tabel yang berbeda, maka nama tabel perlu di sebutkan secara eksplisit untuk menghindari keambiguan.

Agar penulisan SQL lebih efisien, kita dapat memanfaatkan fitur derived table (atau alias). Contohnya adalah sebagai berikut :SELECT k.nama, d.nama_depFROM karyawan k INNER JOIN departemen dON k.id_dep = d.id_dep; Pada pernyataan SQL di atas, tabel karyawan di notasikan dengan huruf k dan tabel departemen menggunakan huruf d. Perhatikan hasil eksekusi perintah SQL tersebut, apakah sama dengan hasil eksekusi perintah SQL sebelumnya (yang tidak menggunakan fitur derived table) ?

c. Outer JoinLeft Outer JoinContoh penggunaan LEFT OUTER JOIN adalah sebagai berikut ;SELECT *FROM karyawan k LEFT OUTER JOIN departemen dON k.id_dep = d.id_dep;

Perhatikan baris kedua dan keempat pada hasil eksekusi di atas, apa yang menyebabkan timbulnya NULL value ?Apabila di perlukan, kita juga dapat menggunakan klausa WHERE di dalam join. Sehingga contoh, untuk mendapatkan data karyawan yang tidak memiliki departemen, eksekusi perintah SQL sebagai berikut :SELECT *FROM karyawan k LEFT OUTER JOIN departemen dON k.id_dep = d.id_depWHERE d.id_dep IS NULL;

Dari hasil eksekusi di atas, dapat kita ketahui bahwa karyawan yang bernama Budi dan Dani tidak memiliki departemen (nama departemennnya tidak tercatat di dalam tabel departemen).Right Outer JoinContoh penggunaan RIGHT OUTER JOIN adalah sebagi berikut ;SELECT *FROM karyawan k RIGHT OUTER JOIN departemen dON k.id_dep = d.id_dep;

Perhatikan kembali baris kedua dan keempat pada hasil eksekusi di atas, apa yang menyebabkan timbulnya NULL value ?Full Outer JoinBeberapa DBMS tidak mendukung fungsionalitas full outer join. Meski demikian, join ini dapat di simulasikan dengan memanfaatkan UNION. Tekniknya ialah dengan menggabungkan left join dan right join seperti perintah SQL berikut :SELECT *FROM karyawan k LEFT OUTER JOIN departemen dON k.id_dep = d.id_depUNIONSELECT *FROM karyawan k RIGHT OUTER JOIN departemen dON k.id_dep = d.id_dep;

Cross JoinCross join pada hakekatnya merupakan inner join di mana kondisi join selalu di evaluasi true. Secara matematis, jika A dan B merupakan dua himpunan, maka cross join-nya sama dengan X .Contoh penggunaan CROSS JOIN adalah sebagai berikut :SELECT *FROM karyawan CROSS JOIN departemen; Atau dalam bentuk implisitnya :SELECT * FROM karyawan, departemen; Hasil operasi cross join kedua perintah SQL di atas akan menghasilkan hasil yang sama seperti yang di tunjukkan pada gambar berikut :

4. Tugas PraktikumSebelum memulai mengerjakan tugas praktikum ini, kita dapat menggunakan tabel mahasiswa, ambil_mk, dan matakuliah pada praktikum sebelumnya. Namun perlu menyesuaikan nilainya agar tabel sama persis dengan tabel yang di tentukan pada modul praktikum.1. Mendapatkan data mahasiswa yang mengambil matakuliah, dengan menghindari duplikasi data.Secara eksplisit :SELECT DISTINCT ambil_mk.nim, mhs.namaFROM ambil_mk INNER JOIN mhsON ambil_mk.nim = mhs.nim;Secara implisit :SELECT DISTINCT ambil_mk.nim, mhs.namaFROM ambil_mk, mhsWHERE ambil_mk.nim = mhs.nim;Untuk mendapatkan data mahasiswa yang mengambil matakuliah, kita bisa join kan tabel ambil_mk dengan tabel mhs (mahasiswa). Sedangkan key yang sama di dalam field kedua tabel akan di tempatkan pada klausa ON dan WHERE. Hasil eksekusi pernyataan SQL secara eksplisit dan implisit, sebagai berikut :

Hasil yang di dapatkan akan menampilkan data dari kedua tabel yaitu nim dari tabel ambil_mk dan nama dari tabel mhs (mahasiswa) yang mengambil matakuliah tanpa ada duplikasi atau data yang sama karena sebelumnya kita menggunakan fungsi DISTINCT pada sintaks pernyataan SQL.

Analisis5. Tugas RumahAnalisis

KESIMPULAN

1. Entitas memiliki peranan penting di dalam basis data, karena jika tidak ada sekumpulan entitas basis data tidak akan terbentuk. Karena basis data terbentuk dari satu data dan di jadikan satu kemudian di hubungkan agar menghasilkan informasi yang jelas bagi pengguna.2. Selain itu, di dalam sebuah relationship primary key memiliki peran penting untuk mengaitkan entitas dan mendefinisikan batasan keterhubungan.3. Jenis jenis operasi pengambilan data di beberapa entitas yaitu seperti Inner Join dan Outer Join. Masing masing jenis operasi pengambilan data memiliki fungsi operasi yang berbeda.

Rujukan / Daftar PustakaTim Asisten Dosen. 2014. Modul 5 Relasi dan Join. Malang: Universitas Negeri Malang.