a

Friday 18 July 2014

View dan join sistem absensi karyawan dengan sidik jari




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 :
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)
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.
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 <tabel1> right join <tabel2>  ON <key.tabel1> = <key.tabel2> UNION
Select * from <tabel1> left join <tabel2> ON <key.tabel1> = <key.tabel2>
atau
Select*from [Tabel_1] full join [Tabel_2] ON <key.tabel1> = <key.tabel2>
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 <tabel1> right join <tabel2>  ON <key.tabel1> = <key.tabel2>
UNION ALL
Select * from <tabel1> left join <tabel2> ON <key.tabel1> = <key.tabel2>
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

No comments:

Post a Comment