Pages

Rabu, 26 Desember 2012

Join Pada Sistem Manajemen Basis Data


SOAL dan PERMASALAH

Dalam praktikum ini terdapat 2 permasalahan, yaitu:
1.      Menu apa saja yang terdapat pada Joint Table
2.      Perintah apa saja yang digunakan dalam Joint Table



LANDASAN TEORI
          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 detail data dari tabel-tabel yang saling terkait, sedangkan operasi join yang terdapat pada oracle diantaranya :
          Berdasarkan tanda pembanding pada klausa where :
1.     Equi Join
2.     Non-Equi Join
Berdasarkan data yang dihasilkan :
1.     Inner Join
2.     Outer Join
3.     Self Join


PEMBAHASAN

Langkah –  langkah  melakukan praktikum :
a.  Jalankan Oracle 10g caranya : All program    Oracle   OraDb10g_home1
Application Development  SQL Plus
b.  Masukkan username : system dan password: amikom (sesuai dengan password
yang telah dibuat)
1.  Untuk menyimpan setiap hasil eksekusi instruksi sql ke dalam file maka aktifkan
mode spool diikuti parameter nama file yang akan digunakan untuk menyimpan
hasil eksekusi tersebut. Kemudian untuk menonaktifkan ketikkan SPOOL OFF
2.  Aktifkan mode SPOOL dengan mengarahkan ke folder masing-masing,  misal
fina001  maka ketikkan perintah:
SQL > SPOOL D:\fina001\join.txt

Berikut ini beberapa perintah join pada oracle :

1.    Equi Join
select   jual.tgl, jual.id_jual,
            pelanggan.nama_plg,
            jual.total
from jual,pelanggan
where jual.id_plg = pelanggan.id_plg        



CATATAN : pada klausa select, kolom yang ditampilkan diawali dengan nama tabel asal kolom tersebut dibatasi oleh tanda titik (.) . kemudian pada klausa where,  digunakan untuk mendefinisikan kondisi join, nama tabel harus disebutkan sebelum nama kolom penghubung, jika tidak dapat menyebabjan error.

2.    Non Equi Join

Berikut adalah contoh penggunaan non Equi Join

SQL> create table nilai(
  2  kode_nilai varchar2(1),
  3  batas_bawah number(2),
  4  batas_atas number(3),  constraint PK_nilai primary key(kode_nilai));
  5  constraint PK_nilai primary key(kode_nilai));

SQL> create table mahasiswa(
  2  NIM varchar2(10),
  3  nama_mhs varchar2(40),
  4  nilai_mhs number(3),
  5  id_ketua varchar2(10),
  6  constraint PK_mahasiswa primary key(NIM));





Kemudian berikut ini adalah perintah non equi join pada dua tabel diatas :

SQL> select   m.nama_mhs,
  2                                m.nilai_mhs,
  3                                n.kode_nilai,
  4  from mahasiswa m, nilai n
              5  where m.nilai_mhs between n.batas_bawah and n.batas_atas;

3.    Left Outer Join

SQL> select    b.kode_brg,
  2                   b.nama_brg,
  3                   j.id_jual,
  4       from barang b, jual j
  5       where b.kode_brg = j.kode_brg (+)
  6       order by b.nama_brg;


Penentuan Left Outer Join maka tanda (+) diletakkan disisi kanan tanda pembanding.
Penentuan Right Outer Join : tanda (+)  diletakkan disisi kiri tanda pembanding.

4.    Right Outer Join
SQL> select         b.kode_brg,
  2                   b.nama_brg,
  3                   j.id_jual,
  4       from barang b, jual j
  5       where b.kode_brg (+) = j.kode_brg
  6       order by b.nama_brg;

5.    Full Outer Join

SQL> select    b.kode_brg,
  2                   b.nama_brg,
  3                   j.id_jual,
  4       from barang b, jual j
  5       where b.kode_brg = j.kode_brg (+)
  6        union
        7        select  b.kode_brg,
  8                   b.nama_brg,
  9                   j.id_jual,
  10     from barang b, jual j
  11      where b.kode_brg (+) = j.kode_brg;




6.    Self Join

SQL> select   anggota.NIM,
  2                   anggota.nama_mhs as”Anggota Kelompok”,
  3                   ketua.nama_mhs as “Nama Ketua Kelompok”
  4        from mahasiswa ketua, mahasiswa anggota
  5        where anggota.id_ketua = ketua.NIM;



7.    Natural Join

1.      Select   kode_brg,
2.                   nama_brg,
3.                   id_jual
4.      from barang natural join jual

8.    Klausa Using

SQL> select   kode_brg,
  2                   nama_brg,
  3                   harga_jual
  4        from barang inner join jual
  5        using (kode_brg)
  6        order by (kode_brg);

9.    Klausa ON

SQL> select   b.kode_brg,
  2                   b.nama_brg,
  3                   j.id_jual
  4        from barang b join jual j
  5        on (b.kode_brg = j.kode_brg)
  6        order by b.kode_brg;

Klausa ON untuk Non Equi Join:

SQL> select   m.NIM,
2                   m.Nama_mhs,
3                   n.kode_nilai,
4                   m.nilai_mhs
5        from mahasiswa m join nilai n
6        on (m.nilai_mhs between n.batas_bawah and n.batas_atas);





10.    Cross Join

SQL> select   b.kode_brg,
2                   j.id_jual
3        from barang b cross join jual j;

11.   Join Banyak Tabel

select   b.kode_brg,
            b.nama_brg,
            p.nama_plg,
            j.id_jual
from   barang b,
            pelanggan p,
            jual j
where b.kode_brg = j.kode_brg
and p.id_plg = j.id_plg
order by p.nama_plg, b.kode_brg































KESIMPULAN

Kesimpulan dari praktikum ini adalah :
Perintah JOIN sangat beguna khususnya dalam menggabungkan beberapa tabel atau lebih sehingga para pengguna tidak akan merasa kesulitan dalam menggabungkan tabel yang saling terkait

2 komentar: