Kamis, 01 Mei 2014

ANALISA VIEW DAN JOIN _____ SISTEM INFORMASI BANK SAMPAH (DAUR ULANG)

A.  Operator VIEW

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.

Planning  VIEW yang ada pada Sistem Informasi Bank Sampah (Daur Ulang)

1.      View Lap_Trans_Setor_Jan2014
Menampilkan transaksi penyetoran sampah oleh nasabah di bulan januari 2014 / berdasarkan tanggal penyetoran ( 01/01/2014 – 31/01/2014).
·         Data View Lap_Trans_Setor_Jan2014
Ø  Membutuhkan kolom :
No_Trans_Setor, Tanggal_Setor, Id_Nasabah,  Nama_Nasabah, Id_petugas, Id_Sampah, Nama_Sampah, Jumlah_Setor_kg.
Ø  Tabel diperlukan :
Nasabah, Petugas, Menyetor, Detail Menyetor, Sampah
·         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)
·         Menampilkan baris hasil dari 5 tabel berdasarkan kolom yang telah dipilih.

2.      View Lap_Trans_Beli_Jan2014
Menampilkan transaksi pembelian sampah oleh pengepul di bulan januari 2014 / berdasarkan tanggal pembelian ( 01/01/2014 – 31/01/2014).
·         Data View Lap_Trans_Beli_Jan2014
Ø  Membutuhkan kolom :
No_Trans_Beli, Tanggal_Beli, Id_Pengepul,  Nama_Pengepul, Id_petugas, Id_Sampah, Nama_Sampah, Jumlah_Beli_kg.
Ø  Tabel diperlukan :
Pengepul, Petugas, Membeli, Detail Membeli, Sampah
·   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)
·         Menampilkan baris hasil dari 5 tabel berdasarkan kolom yang telah dipilih. 

3.      View Lap_kas_masuk_Jan2014
Menampilkan informasi keuangan atas transaksi penyetoran sampah di bulan januari 2014 berdasarkan No_Trans_Setor secara terurut.
·         Data View Lap_kas_masuk_Jan2014
Ø  Membutuhkan kolom :
Tanggal_Setor, No_Trans_Setor, Id_Sampah, Nama_Sampah, Jumlah_Setor_kg, Total_Harga_Setor.
Ø  Tabel diperlukan : Menyetor, Detail Menyetor, Sampah
·    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) serta No_Trans_Setor akan terurut.
·        Menampilkan baris hasil dari 3 tabel berdasarkan kolom yang telah dipilih.

4.      View Lap_kas_keluar_Jan2014
Menampilkan informasi keuangan atas transaksi pembelian sampah di bulan januari 2014 berdasarkan No_Trans_beli secara terurut.
·         Data View Lap_kas_keluar_Jan2014
Ø  Membutuhkan kolom :
Tanggal_Beli, No_Trans_Beli, Id_Sampah, Nama_Sampah, Jumlah_Beli_kg, Total_Harga_Beli.
Ø  Tabel diperlukan : Membeli, Detail Membeli, Sampah
·    Dari tabel  tersebut akan mencari kesamaan dua nilai kolom (nilai key antar tabel terkait) dan mencari data berdasakan tanggal pembelian ( 01/01/2014 – 31/01/2014)
·         Menampilkan baris hasil dari 3 tabel berdasarkan kolom yang telah dipilih.

5.      View Jenis_Sampah_Masuk_Jan2014
Menampilkan informasi jenis sampah masuk atas transaksi penyetoran sampah di bulan januari 2014 sehingga dapat menentukan sampah yang jarang disetor oleh nasabah.
·         Data View_Jenis_Sampah_masuk_Jan2014
Ø  Membutuhkan kolom : Id_Sampah, Nama_Sampah
Ø  Tabel diperlukan : Menyetor, Detail Menyetor, Sampah
·    Dari tabel  tersebut akan mencari kesamaan dua nilai kolom (nilai key antar tabel terkait) dan  dikelompokan agar tidak ada ganda data.
·         Menampilkan baris hasil dari 3 tabel berdasarkan kolom yang telah dipilih.



B.  Operator JOIN

Join adalah penggabungan table yang dilakukan melalui kolom / key tertentu yang memiliki nilai terkait untuk mendapatkan satu set data dengan informasi lengkap 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 <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.


Pustaka :
Kadir, Abdul (2002). Penuntun Praktis Belajar SQL.Yogtakarta: Andi Yogyakarta




Planning  JOIN  yang ada pada Sistem Informasi Bank Sampah (Daur Ulang)

1.      BUKU  HARIAN TRANSAKSI SETOR OLEH NASABAH
·         Data Transaksi Setor
Ø  Membutuhkan kolom :
No_Trans_Setor, Tanggal_Setor, Id_Nasabah,  Nama_Nasabah, Id_petugas,  Nama_Petugas, Id_Sampah, Nama_Sampah, Jumlah_Setor_kg.
Ø  Tabel diperlukan :
Nasabah, Petugas, Menyetor, Detail Menyetor, Sampah
·         5 Tabel tersebut akan menggunakan INNER JOIN  dimana nilai key sama diantaranya
Tabel Nasabah & Tabel Menyetor = Id_Nasabah
Tabel Petugas & Tabel Menyetor = Id_Petugas
Tabel Menyetor & Tabel Detail Menyetor = No_Trans_Setor
Tabel Detail Menyetor & Tabel Sampah =  Id_Sampah
Sehingga akan mencari kesamaan nilai kolomnya antar tabel
·         Menampilkan baris hasil dari 5 tabel berdasarkan kolom yang telah dipilih dan jika ada baris yang nilai fieldnya tidak terkait pada tabel lainnya maka tidak akan ditampilkan.

2.      BUKU HARIAN TRANSAKSI BELI OLEH PENGEPUL
·         Data Transaksi Beli
Ø  Membutuhkan kolom :
No_Trans_Beli, Tanggal_Beli, Id_Pengepul,  Nama_Pengepul, Id_petugas, Nama_Petugas, Id_Sampah, Nama_Sampah, Jumlah_Beli_kg.
Ø  Tabel diperlukan :
Pengepul, Petugas, Membeli, Detail Membeli, Sampah
·         5 Tabel tersebut akan menggunakan INNER JOIN  dimana nilai key sama diantaranya
Tabel Pengepul & Tabel Membeli = Id_Pengepul
Tabel Petugas & Tabel Membeli = Id_Petugas
Tabel Membeli & Tabel Detail Membeli = No_Trans_Beli
Tabel Detail Membeli  & Tabel Sampah =  Id_Sampah
Sehingga akan mencari kesamaan nilai kolomnya antar tabel
·         Menampilkan baris hasil dari 5 tabel berdasarkan kolom yang telah dipilih dan jika ada baris yang nilai fieldnya tidak terkait pada tabel lainnya maka tidak akan ditampilkan..

3.      BUKU KAS KEUANGAN PEMASUKAN ( DEBIT )
·         Data KAS DEBIT
Ø  Membutuhkan kolom :
Tanggal_Setor, No_Trans_Setor, Id_Sampah, Nama_Sampah, Jumlah_Setor_kg, Total_Harga_Setor.
Ø  Tabel diperlukan : Menyetor, Detail Menyetor, Sampah
·         3 Tabel tersebut akan menggunakan INNER JOIN  dimana nilai key sama diantaranya
Tabel Menyetor & Tabel Detail Menyetor = No_Trans_Setor
Tabel Detail Menyetor & Tabel Sampah =  Id_Sampah
Sehingga akan mencari kesamaan nilai kolomnya antar tabel
·         Menampilkan baris hasil dari 5 tabel berdasarkan kolom yang telah dipilih dan jika ada baris yang nilai fieldnya tidak terkait pada tabel lainnya maka tidak akan ditampilkan..

4.      BUKU KAS KEUANGAN PENGELUARAN ( KREDIT )
·         Data KAS KREDIT
Ø  Membutuhkan kolom :
Tanggal_Belir, No_Trans_Beli, Id_Sampah, Nama_Sampah, Jumlah_Beli_kg, Total_Harga_Beli.
Ø  Tabel diperlukan : Membeli, Detail Membeli, Sampah
·         3 Tabel tersebut akan menggunakan INNER JOIN  dimana nilai key sama diantaranya
Tabel Membeli & Tabel Detail Membeli = No_Trans_Beli
Tabel Detail Membeli  & Tabel Sampah =  Id_Sampah
Sehingga akan mencari kesamaan nilai kolomnya antar tabel
·         Menampilkan baris hasil dari 5 tabel berdasarkan kolom yang telah dipilih dan jika ada baris yang nilai fieldnya tidak terkait pada tabel lainnya maka tidak akan ditampilkan..

5.      INFORMASI NASABAH AKTIF DAN NON AKTIF
·         Data STATUS NASABAH
Ø  Membutuhkan kolom : Id_Nasabah, Tanggal_Setor
Ø  Tabel diperlukan : Nasabah, Menyetor
·     2 Tabel tersebut akan menggunakan LEFT JOIN dimana posisi tabel nasabah sebelah kiri pada tabel menyetor.
·      Menampilkan semua data dari kiri Tabel Nasabah  walaupun Tabel Menyetor  yang tidak sama dengan Tabel Nasabah tetap ditampilkan.