PRAKTIKUM 5 SISTEM BASIS DATA JOIN

dokumen-dokumen yang mirip
Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Join Antar Tabel. M. Saefudin SKom, MMSI

Modul 3 : Query Penggabungan Tabel

3 rd DML : Selection(3)

MENAMPILKAN DATA DARI BANYAK TABEL

TABLE JOIN SQL SERVER 2005

SUBQUERY VIEW JOIN PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

LAPORAN PRAKTIKUM BASIS DATA MODUL 3 CONDITIONAL SQL MIKA PURNAMASARI NASTADINA

RENCANA PEMBELAJARAN

MODUL 3. View PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Data Manipulation Language (DML)

Rencana Pelaksanaan Pembelajaran

Macam - Macam Perintah Pada SQL

Riyanto

MODUL 3 JOIN TABLE. Gambar Model Relasi Basis Data db_mutiara SMK NEGERI 1 CIMAHI REKAYASA PERANGKAT LUNAK

1. Buat planing view sesuai kebutuhan topik anda (jelaskan dengan detail masing-masing view yang anda buat)

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

SUBQUERY VIEW JOIN PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

PERTEMUAN 6 SUBQUERY

Oracle Academic Initiative

SQL Data Definition Language (DDL)

B. PETUNJUK. 2. Join. Praktikum Basis Data 2017 TE UM

BAB III STRUCTURED QUERY LANGUAGE (SQL)

M0564-Pengantar Sistem Basisdata 12/ 1

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

Structured Query Language

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek.

PRAKTIKUM BASIS DATA

Arsitektur Basis Data Oracle

Perangkat Lunak Pengembangan Web

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

MODUL 8. Sub Query Pada baris dan Kolom PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

Praktikum Basis Data 2017 TE UM

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

SQL (STRUCTURED QUERY LANGUAGE)

RENCANA PEMBELAJARAN SEMESTER

MODUL 4 INTERNET PROGRAMMING DATABASE

Praktikum Basis Data 14 Structure Query Language 2

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

MENGENAL SYNTAX DML PADA SQL

Strctured Query Language BASIS DATA

Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL: Contoh 1 Menampilkan banyaknya record dosen select count ( * )

MODUL 4 QUERY, VIEW, DAN ALJABAR RELASIONAL

LAPORAN PRAKTIKUM BASIS DATA LANJUT I

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) PROGRAM STUDI : DIII MANAJEMEN INFORMATIKA Semester : 4

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

PERTEMUAN 11 SQL(lanjutan): Queries, Constraints & Triggers. (Chap. 5 Ramakrishnan)

Structured Query Language

Basis Data Spasial Modul 2

Oracle Academic Initiative

DATABASE RUMAH SAKIT 1. Objek yang dipakai a. Pasien b. Dokter c. Ruang d. Petugas e. Rawat_inap f. Pembayaran

Structured Query Language

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_xxx.

Modul Praktikum Basis Data 5 Query

Oracle Academic Initiative

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

Strctured Query Language BASIS DATA

SUBQUERY-2. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

STRUCTURE QUERY LANGUAGE DDL & DML

Oracle Academic Initiative

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

MODUL II SQL A. TUJUAN

MODUL 1 DATABASE MYSQL

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

Function pada SQL. Aggregate Functions Scalar functions. Arithmetic functions String functions Date functions

BAB XI BEKERJA DENGAN QUERY

PERTEMUAN 4 MENAMPILKAN DATA DARI BANYAK TABEL


DAFTAR ISI. DAFTAR ISI... 1 PRAKATA Pengenalan dan Lingkungan Kerja MySQL Tujuan... 4 Dasar Teori... 4 Praktik... 5

LAPORAN PRAKTIKUM IV BASIS DATA (SISTEM BERKAS - LAN)

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

LAPORAN TUGAS BASIS DATA I

Kegiatan Praktikum Sistem Basis Data Kelompok C

PERTEMUAN 5 PENGGUNAAN FUNGSI GROUP

Kegiatan Praktikum Sistem Basis Data Kelompok B

Mahasiswa memahami fungsi-fungsi lain di dalam SQL Mahasiswa memahami tentang operasi agregasi Mahasiswa mampu mengaplikasikan operasi agregasi

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

MODUL 7. Advanced Query : Menampilkan Data Dari Banyak Tabel PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Oracle Academic Initiative

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

BAB 2 LANDASAN TEORI Pengertian DBMS (Database Management System)

SISTEM INFORMASI Marta Lenah Haryan8 Copyright Wondershare So3ware

TUGAS PRAKTIKUM SISTEM BASIS DATA

BAB V. Basis Data Darmawan Satyananda 74

MODUL 9 VIEW A. TUJUAN B. PETUNJUK C. DASAR TEORI. Praktikum Basis Data 2017 TE UM

Query adalah bahasa SQL (Structured Query Language) yang ditampilkan dalam bentuk visual, yang dapat digunakan untuk melihat, memodifikasi dan

TUGAS PRAKTIKUM SISTEM BASIS DATA

SQL LANJUT BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Mahasiswa mampu menjelaskan fungsi data management, business process management dalam suatu perancangan SIM suatu organisasi.

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Transkripsi:

Mochammad Yusa Sistem Basis Data 1 PRAKTIKUM 5 SISTEM BASIS DATA JOIN Praktikan Mengetahui Asisten Laboratorium NIM. NIM. A. TUJUAN Tujuan dari praktikum ini adalah: 1. Mampu menginputkan data dan record menggunakan SQL (Structured Query language) 2. Mampu mengoperasikan teknik Retrieving data dengan berbagai Klausa seperti WHERE, LIKE, dan Lain-lain. 3. Mampu mengubah maupun menghapus record atau data. B. ALAT DAN BAHAN Alat dan Bahan yang digunakan pada praktikum ini adalah: 1. Ms. SQL Server 2005 2. Sistem Operasi 3. Modul Laporan

Mochammad Yusa Sistem Basis Data 2 C. LANDASAN 1. Pengertian Fungsi Join Join merupakan sebuah operasi yang digunakan untuk mendapatkan data gabungan dari dua tabel atau lebih. Operasi ini digunakan dalam perintah SELECT dan biasanya dipakai untuk memperoleh data secara detail dari tabel-tabel yang saling terkait (memiliki relasi). Misalnya karena tabel jadwal_dokter hanya memuat kode dokter saja tanpa nama dokter, maka kita harus melakukan join dengan tabel dokter yang memuat nama dokter. Terdapat 3 jenis join yaitu : 1.1. Cross Join (Cartesian Join) Cross join menghasilkan output berupa kombinasi dari semua baris yang terdapat dalam tabel-tabel yang digabungkan baik yang berpasangan maupun yang tidak berpasangan. Pada kenyataannya join jenis ini jarang bahkan tidak pernah dipakai. Meskipun begitu, jenis join inilah yang merupakan dasar dari join antar tabel. Syntax SELECT tabel_1.kolom, tabel_2.kolom FROM tabel_1, tabel_2 atau SELECT tabel_1.kolom, tabel_2.kolom FROM tabel_1 CROSS JOIN tabel_2 1.2. Inner Join Inner join menghasilkan output berupa kombinasi baris-baris yang memiliki pasangan saja. Kombinasi baris yang tidak berpasangan akan dieliminasi atau tidak digunakan. Baris-baris yang tidak memiliki pasangan pada tabel lainnya juga tidak dimunculkan. Syntax SELECT tabel_1.kolom, tabel_2.kolom FROM tabel_1, tabel_2

Mochammad Yusa Sistem Basis Data 3 WHERE tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2 atau SELECT tabel_1.kolom, tabel_2.kolom FROM tabel_1 INNER JOIN tabel_2 ON tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2 1.3. Outer Join Outer join hampir sama dengan inner join, hanya saja baris yang tak memiliki pasangan tetap akan ditampilkan. Outer join dibagi menjadi tiga, yaitu: Operasi outer join terbagi menjadi tiga jenis yaitu : 1. Left outer join Data yang ada pada tabel sebelah kiri akan ditampilkan semua sesuai pasangannya, jika ada data yang tidak memiliki pasangan, pada tabel sebelah kanan akan diisikan NULL. 2. Right outer join Data yang ada pada tabel sebelah kanan akan ditampilkan semua sesuai pasangannya, jika ada data yang tidak memiliki pasangan, pada tabel sebelah kiri akan diisikan NULL. 3. Full outer join Semua data dari tabel-tabel yang di join ditampilkan, baik itu yang secara left outer join, right outer join maupun inner join. Syntax SELECT tabel_1.kolom, tabel_2.kolom FROM tabel_1 [LEFT RIGHT FULL OUTER JOIN] tabel_2 ON tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2 Contoh: Perintah untuk menggabungkan data tabel jadwal_dokter dengan tabel dokter SELECT * FROM jadwal_dokter INNER JOIN dokter ON jadwal_dokter.kd_dokter=dokter.kd_dokter

Mochammad Yusa Sistem Basis Data 4 Aktifkan database anda kemudian jalankan perintah berikut: SELECT * FROM dokter LEFT JOIN jadwal_dokter SELECT * FROM dokter RIGHT JOIN jadwal_dokter SELECT * FROM dokter FULL JOIN jadwal_dokter Coba bandingkan perintah di atas dengan perintah di bawah ini: SELECT * FROM jadwal_dokter LEFT JOIN dokter SELECT * FROM jadwal_dokter RIGHT JOIN dokter SELECT * FROM jadwal_dokter FULL JOIN dokter Untuk lebih memahami perbedaan antara berbagai jenis JOIN, coba jalankan perintahperintah di bawah ini: SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift FROM dokter INNER JOIN jadwal_dokter SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift FROM dokter LEFT JOIN jadwal_dokter

Mochammad Yusa Sistem Basis Data 5 SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift FROM dokter RIGHT JOIN jadwal_dokter SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift FROM dokter FULL JOIN jadwal_dokter Setelah menjalankan query di atas, ada terdapat beberapa persamaan dan perbedaan antara operasi join yang satu dengan lainnya. Yang menjadi kesamaannya ialah bahwa semua operasi join pasti menggabungkan beberapa tabel untuk mendapatkan data gabungan, sedangkan perbedaan antara cross join dengan jenis join lainnya adalah dengan ada tidaknya persyaratan atau pengecekan kondisi join. Cross join merupakan jenis join yang tidak memakai persyaratan, sementara jenis join lainnya memerlukan persyaratan. Persyaratan yang dimaksud adalah data pada kolom foreign key di tabel yang merujuk harus sama dengan data pada kolom primary key di tabel yang dirujuk. Secara umum persyaratan atau kondisi tersebut dapat dituliskan sebagai berikut: berikut: tabel_1.kolom_primary_key = tabel_2.kolom_foreign_key Sintaks tersebut dapat ditulis secara terbalik dan tetap memiliki arti yang sama, sebagai tabel_2.kolom_foreign_key = tabel_1.kolom_primary_key Catatan: Kolom-kolom_foreign_key pada tabel_2 harus mereferensi ke kolom_primary_key pada tabel_1. Karena keharusan adanya foreign key dan primary key yang saling berhubungan itu, maka inner join dan outer join hanya dapat dilakukan pada tabel yang memiliki relasi saja. Sementara itu, cross join dapat dilakukan pada sembarang tabel, baik tabel yang saling berhubungan maupun tidak.

Mochammad Yusa Sistem Basis Data 6 Untuk INNER JOIN terdapat 2 cara penulisan, yaitu: 1. Cara pertama adalah dengan memisahkan daftar tabel yang akan dijoin dengan tanda koma dan melakukan pengecekan kondisi menggunakan WHERE. 2. Cara kedua adalah menggunakan keyword INNER JOIN atau disingkat dengan JOIN saja di antara dua tabel yang akan di-join-kan dan melakukan pengecekan kondisi dengan keyword ON. Cara pertama lebih singkat dan akan lebih terasa jika yang di-joinkan lebih dari dua tabel. Hal ini terjadi karena keyword JOIN dan ON merupakan satu kesatuan yang hanya dapat diterapkan pada dua buah tabel saja. Untuk lebih dari dua tabel kita harus menuliskan JOIN dan ON berulang kali. Perhatikan contoh berikut: SELECT resep.kd_resep, pasien.nama, penyakit.penyakit FROM resep, pasien, penyakit WHERE resep.kd_pasien=pasien.kd_pasien AND resep.kd_penyakit=penyakit.kd_penyakit SELECT resep.kd_resep, pasien.nama, penyakit.penyakit FROM resep JOIN pasien ON resep.kd_pasien=pasien.kd_pasien JOIN penyakit ON resep.kd_penyakit=penyakit.kd_penyakit Walaupun penulisannya lebih panjang tapi bentuk yang kedua lebih dianjurkan karena membutuhkam memory yang lebih sedikit dan prosesnya lebih cepat. Hal ini akan terasa sekali jika melibatkan tabel-tabel dengan data yang banyak. Tidak seperti inner join, penulisannya hanya ada satu cara. Walaupun demikian kita dapat menyingkat dengan menghilangkan keyword OUTER, sehingga LEFT OUTER JOIN dapat disingkat menjadai LEFT JOIN dan seterusnya. 2. Alias Tabel Alias tabel merupakan cara yang digunakan untuk mempersingkat penulisan nama-nama tabel. Alias tabel berarti mengganti nama tabel dengan nama yang lebih singkat (biasanya kode

Mochammad Yusa Sistem Basis Data 7 huruf). Biasa dipakai untuk menampilkan beberapa kolom dari beberapa tabel yang akan dijoinkan, sehingga mempermudah dan mempercepat dalam penulisannya. Sintaks yang biasa digunakan: SELECT * FROM tabel_1 a INNER JOIN tabel_2 b ON tabel_1.kolom_kunci_1= tabel_2.kolom_kunci_2 Contoh: Menampilkan nama dokter dengan jadwal praktiknya SELECT a.nama, b.hari, b.shift FROM dokter a INNER JOIN jadwal_dokter b ON a.kd_dokter=b.kd_dokter 3. Query Bersarang (Nested Query) Pada kondisi tertentu, terkadang beberapa query membutuhkan nilai yang dihasilkannya dan digunakan sebagai kondisi pembandingan (dalam klausa WHERE sebagai contoh). Query tersebut dapat diformulasikan menggunakan nested query (query bersarang). Query bersarang akan melibatkan query dan subquery. Subquery merupakan statement SELECT yang bersarang didalam klausa WHERE dari statement SELECT yang lain. Meskipun jarang, tetapi subquery juga bisa terdapat pada statement DML yang lain seperti INSERT, UPDATE ataupun DELETE. Secara umum, sintaks dari NESTED QUERY adalah: SELECT [DISTINCT] select_list FROM table1, table_2 [,table_3 ] WHERE {expression {[NOT] IN comparison operator} [NOT] EXIST } ( SELECT [DISTINCT] subquery_select_list FROM table_list WHERE search_conditions )

Mochammad Yusa Sistem Basis Data 8 Didalam sebuah SELECT statement, subquery boleh berada pada klausa-klausa berikut ini: a) Klausa WHERE b) Klausa HAVING c) Klausa FROM Sebagai catatan, subquery pada klausa WHERE sering disebut sebagai nested subquery. Sedangkan subquery pada klausa FROM sering disebut dengan istilah inline view. Banyak permasalahan yang dapat dipecahkan dengan menggunakan subquery. Daftar berikut ini menunjukkan beberapa kegunaan subquery: a) Memberikan nilai sebagai kondisi di dalam klausa WHERE dan HAVING. b) Mendefinisikan sebuah tabel (inline view) yang digunakan oleh query utama (subquery pada klausa FROM dari sebuah SELECT statement). c) Menentukan sekumpulan baris data yang dimasukkan ke dalam tabel tujuan, baik ke dalam tabel yang sudah ada (subquery pada INSERT statement) maupun pada saat yang bersamaan dengan pembuatan tabel (subquery pada CREATE TABLE statement). d) Mendapatkan satu nilai atau lebih yang digunakan untuk mengubah data yang sudah ada (subquery pada UPDATE statement). Contoh : SELECT A1 FROM A WHERE A1 IN (SELECT C3 FROM C) Atau SELECT K.NIM, (SELECT M.NAMA FROM MAHASISWA M WHERE K.NIM = M.NIM) AS NAMA, K.IDKELAS, K.NILAI FROM KRS K 4. Fungsi Join dengan Fungsi Agregasi Fungsi join dengan gabungan fungsi agregasi, pada dasarnya adalah gabungan dari beberapa fungsi statistik (agregasi) dalam bahasa basis data yang datanya diambil dari kolomkolom tertentu. Kolom bisa berasal dari tabel yang berbeda-beda. Contoh :

Mochammad Yusa Sistem Basis Data 9 SELECT d.nama, COUNT(jd.kd_dokter)*120000 as Honor_Bulanan FROM dokter d JOIN jadwal_dokter jd ON d.kd_dokter=jd.kd_dokter GROUP BY d.nama D. Praktikum 1. Buatlah perintah untuk menampilkan jadwal dokter (nama dokter, hari, shift) 2. Buatlah perintah untuk menampilkan nama dokter yang praktiknya hari selasa 3. Buatlah perintah untuk menampilkan nama dokter dengan tanggal periksa 3 Agustus 2006 4. Buatlah perintah untuk menampilkan nama pasien dan penyakitnya yang diperiksa hari senin 5. Buatlah perintah untuk menggabungkan data tabel resep dengan tabel dokter (pasien, penyakit, dan obat). 6. Buatlah perintah untuk menampilkan data resep (kode resep, hari, tanggal, nama pasien, nama penyakit, nama obat, nama dokter periksa) 7. Buatlah perintah untuk menampilkan data resep (kode resep, hari, tanggal, nama pasien, nama penyakit, nama obat, nama dokter periksa) 8. Buatlah perintah untuk menampilkan nama dokter yang praktiknya hari jumat dan sabtu 9. Buatlah perintah untuk menampilkan nama pasien yang diperiksa tanggal 5 Agustus 2006

Mochammad Yusa Sistem Basis Data 10 Answer Sheet or Notes: 1.