1. Buat planing view sesuai kebutuhan topik anda (jelaskan dengan detail masing-masing view yang anda buat)
View adalah tabel virtual (bukan tabel sebenarnya) dimana tidak memiliki data sendiri, tetapi data-datanya berasal dari tabel-tabel atau view lain. View digunakan untuk memudahkan data yang ditampilkan, mencegah menampilkan data yang penting dengan menyembunyikan nama kolomnya.
VIEW pada Sistem Absensi Karyawan -
View Lap_absensi_karyawan
Menampilkan absen karyawan di bulan januari 2014 / berdasarkan Absen ( 01/01/2014 – 31/01/2014). -
Data View Lap_absensi_karyawan_Jan2014
Membutuhkan kolom : No_id_karyawan, Tanggal_absen , Jam_masuk , jam_keluar, nama_karyawan, Tabel diperlukan : Karyawan , absensi Dari tabel tersebut akan mencari kesamaan dua nilai kolom (nilai key antar tabel terkait) dan mencari data berdasakan tanggal penyetoran ( 01/01/2014 – 31/01/2014)
2. J elaskan jenis-jenis Join
Join adalah penggabungan table yang dilakukan melalui kolom / key tertentu yang memiliki nilai terkait untuk mendapatkan satu set data dengan informasi lengkap. Lengkap disini artinya kolom data didapatkan dari kolom-kolom hasil join antar table tersebut.
Secara garis besar JOIN dibagi menjadi Equi Join dan Non-Equi Join. 1. Equijoin ialah Penggabungan antar tabel yang menggunakan operator sama dengan (=) pada kondisi dalam klausa WHERE untuk membandingkan satu kolom dengan kolom lainnya. Inner Join Natural Join Outer Join Left Outer Join Right Outer Join Full Outer Join 2. Non - Equijoin ialah Penggabungan antar tabel yang tidak menggunakan operator sama dengan (=) melainkan berupa tanda ( !=, >, <, >=, <= ).
Berikut ini Penjelasan Macam Macam Join :
1. Inner Join Konsep inner join sebenarnya hanya mendapatkan data yang menjadi irisan dari dua buah table.
Tipe join ini menampilkan baris hasil dari table pertama dan table kedua jika ada setidaknya satu kesamaan pada dua nilai field yang dijoin atau kondisi nilai key yang terkait saja. Jika ada baris record pada tabel pertama yang nilai fieldnya tidak terdapat pada tabel kedua maka baris record tersebut tidak akan ditampilkan.
2. Left Join / Left Outer Join Konsep left join sendiri mendapatkan semua data yang berada di bagian kiri, walaupun data di sebelah kiri tidak memiliki referensi ke sebelah kanan.
Left join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set A, terlepas dari apakah nilai kunci ada dalam data set B. Menampilkan baris hasil yang didapat dari semua baris dari tabel pertama walaupun ada ketidaksamaan nilai field yang di join dimana jumlah record tergantung jumlah record sebelah kiri (tabel pertama).
3. Right Join / Right Outer Join Right join sendiri konsepnya mendapatkan semua data yang berada di bagian kanan, walaupun data di sebelah kanan tidak memiliki referensi ke sebelah kiri.
Right join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set B, terlepas dari apakah nilai kunci ada dalam data set A. Menampilkan baris hasil yang didapat dari semua baris dari tabel kedua walaupun ada ketidaksamaan nilai field yang di join dimana jumlah record tergantung jumlah record sebelah kanan (tabel kedua).
4. Cross Join / Cartesian Product Konsep dari cross join sendiri adalah hasil perkalian dari table 1 dan table 2.
Menampilkan semua record meskipun tidak bersesuaian dari kedua table yang direlasikan dengan jumlah record adalah hasil kali jumlah record tabel pertama dengan jumlah record tabel kedua. Semisal, data tableA ada 4 buah, dan dilakukan cross join dengan tableB ada 3 buah, maka hasil datanya akan menjadi 12 buah. Jadi setiap data di tableA, akan memiliki jumlah data di tableB.
5. Union Join / Full Join / Full Outer Join Konsep union sendiri itu adalah menggabungkan dua buah query, lalu dikurangi query hasil irisannya. Sehingga tidak akan ada data sama yang berulang.
Penggabungan dua query. Query pertama menggunakan RIGHT JOIN dan query kedua menggunakan LEFT JOIN. Salah satu syarat penggunaan UNION adalah, bahwa field yang akan ditampilkan pada query 1 dan query 2 harus sama penamaannya.
Bentuk umum perintah : Select * from
right join ON = UNION Select * from left join ON = atau Select*from [Tabel_1] full join [Tabel_2] ON =
PERHATIKAN : UNION dengan UNION JOIN, Operator UNION digunakan untuk menggabungkan dua buah select sedangkan
operator UNION JOIN digunakan
menggabungkan 2 query left join dan right join.
6. Union All Sedikit berbeda dengan UNION, Konsep UNION ALL akan menggabungkan hasil dua query sehingga kemungkinan data berulang akan terjadi (mengalamin penggadaan data).
UNION ALL tidak dikenal di MySQL. Bentuk umum perintah union all : Select * from right join ON = UNION ALL Select * from left join ON =
7. Natural Join Join dimana dilakukan dengan menggunakan wildcard (SELECT *) untuk satu tabel dan sub-kumpulan eksplisit dari field untuk semua tabel lainnya. INNER JOIN yang dibuat sejauh ini adalah NATURAL JOIN, dan pembuat tidak pernah membutuhkan INNER JOIN yang bukan NATURAL JOIN.
8. Straight Join STRAIGHT_JOIN merupakan pengganti keyword JOIN pada MySQL yang digunakan untuk "memaksa" proses join table dari kiri (LEFT) ke kanan (RIGHT). Bentuk Operator ini didukung oleh MySQL. Bentuk Perintah : Select*from [Tabel_1] straight join [Tabel_2];
9. Self Join Menggabungkan sebuah table dengan table itu sendiri. Maka asumsi table yang di gabungkan terdiri atas 2 table yang berbeda (menggunakan alias). Contoh kasus : Tampilan data pegawai lengkap dengan data atasannya. Atasannya berasal dari tabel yang sama.
3 . Buat Planing Join sesuai dengan Topik anda (diskripsiakan masing2 fungsi dan keperluannya dalam sistem)
Contoh 4 Join dalam Sistem Absensi 1. Inner Join SELECT * FROM pengguna p INNER JOIN pengguna_lengkap pk ON p.id_pengguna = pk.id_pengguna; Maka akan jadi seperti ini
2. Left Join SELECT * FROM karyawan p LEFT JOIN karyawan_lengkap_ pk ON p.id_karyawan = pk.id_karyawan; Maka jadi seperti ini
3. Right Join SELECT * FROM karyawan p RIGHT JOIN karyawan _lengkap pk ON p.id_ karyawan = pk.id_ karyawan; Maka akan Jadi Seperti ini
4. Natural Join SELECT * FROM karyawan p NATURAL JOIN karyawan _lengkap pk; Maka akan Jadi Seperti ini