Jumat, 22 Desember 2017

Laporan Praktikum Modul 10

LAPORAN PRAKTIKUM


Mata Kuliah    : Sistem Manajemen Basis Data
Dosen Pengampu : Ibu Tri Astuti, S.Kom. M.Eng
Disusun Oleh:
Nama : Nur Laeli Rachmawati
NIM : 17.12.0001
Kelas : SI17A

PROGRAM STUDI SISTEM INFORMASI
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM PURWOKERTO

2017/2018





BAB I
PENDAHULUAN
A.    LATAR BELAKANG
Didalam sebuah software ada beberapa komponen yang harus kita ketahui, bukan hanya di ketahui tetapi kita juga harus mengerti apa fungsi dari komponen yang terdapat di software tersebut. Salah satu komponen yang ada di dalam software tersebut adalah bahasa pemrograman. Bahasa pemrograman yang sering sekali digunakan adalah ORACLE. Didalam oracle ini kita dapat membuat suatu relasi tabel, pembuatan tabel dan masih banyak lagi.
Dengan menggunakan oracle ini bukan hanya digunakan untuk pembuatan tabel saja, tetapi juga dapat digunakan untuk perhitungan sebuah data, pembuatan tanggal dan masih banyak lagi yang dapat digunakan dengan oracle.

B.     SOAL/PERMASALAHAN
1.      Apa yang dimaksud dengan query?
2.      Ada berapa perintah dalam query?
3.      Ada berapa jenis Subquery?
4.      Bagaimana cara menampilkan tabel dengan single_row subquery?
5.      Bagaimana cara membuat multi-row subquery?

C.      LANDASAN TEORI
Query adalah semacam kemampuan untuk menampilkan suatu data dari database dimana mengambil dari tabel-tabel yang ada di database, namum tabel tersebut tidak semua ditampilkan sesuai dengan yang kita inginkan. Bahasa query (query language) adalah bahasa khusus yang digunakan untuk melakukan query pada basis data.
Sub Query adalah query nested atau sebuah query yang ada di dalam query. Sub query merupakan pernyataan SELECT yang merupakan bagian dari pernyataan INSERT, SELECT.
            Beberapa kegunaan dari Sub Query adalah:
1.      Sub Query digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values).
2.      Meng-copy data dari satu tabel ke tabel lain.
3.      Menerima data dari Inline view.
4.      Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju.
5.      Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
ATURAN SUB QUERY
  1. Klausa ORDER BY tidak boleh digunakan .di subquery. ORDER BY dapat digunakan ,di pernyataan SELECT luar.
  2. Klausa subquery SELECT harus beisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST.
  3. secara default, nama-nama kolom di subquery mengacu ke nama table diklausa FROM di query lebih luar dengan mengkualifikasi nama kolom
  4. Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul di sisi kanan pembandingan.
  5. Subquery tdak boleh digunakan sebagai operan di ekspresi.

Sintaks:
SELECT select_list
FROM table
WHERE expr operator
( SELECT select_list FROM table );

Contoh:
Menampilkan data karyawan yang bekerja satu departemen dengan Biri.
SELECT last_name, title
FROM employee
WHERE dept_id =
( SELECT dept_id
FROM employee
WHERE UPPER(last_name) = ‘BIRI’ );

Operator EXIST dan NOT EXIST
Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm table kosong NOT EXIST kebalian dan EXIST.
Karena EXIST dan NOT EXIST hanya memeriksa keberadaan baris-baris di table hasil subquery.
Contonya
Penggunaan EXIST
Daftarkan semua staf yang bekerja dikantor cabang beralamat di jalan “Tamansari 81”
SELECT IDStaf , namaDepan, namaBelakang, pangkat, gPokok
FROM Staf s
WHERE EXIST
(SELECT *
FROM KantorCabang k, StafKCabang sk
WHERE s.IDStaf=sk.IDStafAND
sk.IDKCabang =k.IDKCabang AND
k.jalan=’tamansari 81’
);


Operator Any(Some)
Operator Any (some) hampir sama penggunaannya seperti Exists. Tetapi operator relasi yang digunakan biasanya selain = (sama dengan). hal tersebut disebabkan apabila operator relasi = yang digunakan, maka sebetulnya fungsi operator Any (some) sama seperti operator IN, sehingga kondisi seperti itu tidak dianjurkan karena lebih mudah pemahamannya apabila menggunakan operator IN.
Contoh :
Akan menampilkan daftar nama pegawai dan gaji yang gajinya tidak paling sedikit :select nama, gaji from pegawai where gaji > any (select gaji from pegawai); 

Operator All
Operator all digunakan untuk melakukan pembandingan dengan sub query. Kondisi dengan all menghasilkan nilai benar jika pembandingan menghasilkan benar untuk setiap nilai dalam sub query.
Contoh :
Akan menampilkan nama dan gaji pegawai yang gajinya lebih rendah daripada semua pegawai yang pekerjaannya 'SALESMAN' :
select nama where gaji < all (select gaji from pegawai where pekerjaan = 'SALESMAN'); 
Sub query (subselect) hanya dapat digunakan untuk MySQL versi 3.24, Sehingga parintah-perintah diatas tidak dapat dijalankan di MySQL ini(versi 3.23). Tetapi, dengan menggunakan option LEFT JOIN, masalah-masalah diatas dapat diselesaikan.
Contoh :
select * from score where event_id in (select even_id from even where type = 'T'); 
Apabila dituliskan dengan cara lain menjadi :
select score.* from score, event where score.even_id = even.even_id and type = 'T';

Multiple Rows Subquery
Multiple Row Subquery adalah subquery yang menghasilkan lebih dari satu baris data. Untuk multiple row subquery ini yang digunakan adalah operator pembanding IN, ANY atau ALL
Contoh:
Menampilkan data karyawan yang bekerja pada departemen Finance atau pada region 2.
SELECT last_name, first_name, title
FROM employee
WHERE dept_id IN ( SELECT id
FROM department
WHERE name = ‘Finance’
OR region_id = 2 );

Contoh:
Menampilkan nama, gaji, dan nomer department dari pegawai yang gajinya sama dengan gaji minimum pada suatu department.

SELECT ename, sal, deptno FROMENP WHERE sal IN (SELECT MIN (sal) FROM ENP GROUP BY deptno)


Single Row Subquery
Single row subquery memberikan hasil hanya satu baris pada bagian subquery. Untuk single row subquery ini yang digunakan adalah operator pembanding: , >, >=, <, <= atau <>
Contoh:
Menampilkan data karyawan yang memiliki jabatan sama dengan Smith.
SELECT last_name, title
FROM employee
WHERE title =
( SELECT title
FROM employee
WHERE last_name = ‘Smith’ );
Kita dapat menampilkan data dari query utama dengan menggunakan fungsi grup (group function) untuk menghasilkan satu baris data.

Contoh:
Menampilkan data karyawan yang memiliki gaji dibawah rata-rata.
SELECT last_name, title, salary
FROM employee
WHERE salary < ( SELECT AVG(salary)
FROM employee );

Kesalahan dalam Subquery
Kesalahan umum dalam subquery adalah lebih dari satu baris data dihasilkan untuk single row subquery.
Contoh:
Subquery ini menghasilkan lebih dari satu baris data dan menggunakan single row operator. Kita dapat membetulkan kesalahan ini dengan mengubah = menjadi IN.
SELECT last_name, first_name, title
FROM employee
WHERE dept_id = ( SELECT id
FROM department
WHERE name = ‘Finance’
OR region_id = 2 );

Klausa HAVING
Kita dapat menggunakan subquery tidak hanya dalam klausa WHERE, namun juga klausa HAVING.
Contoh:
Menampilkan data departemen yang memiliki rata-rata gaji diatas rata-rata gaji departemen 32.
SELECT dept_id, AVG (salary)
FROM employee
GROUP BY dept_id
HAVING AVG(salary) > ( SELECT AVG(salary)
FROM employee
WHERE dept_id = 32 );
Menampilkan jabatan dengan rata-rata gaji terkecil.
SELECT title, AVG (salary)
FROM employee
GROUP BY title
HAVING AVG (salary) = ( SELECT MIN(AVG(salary))
FROM employee
GROUP BY title );


  
BAB II
PEMBAHASAN
Subquery merupakan “query didalam query” atau perintah select yang berada
di dalam perintah select lainnya. Struktur penulisan subquery bisa dilihat seperti dibawah ini:
Outer Query
Select kolom,….
From tabel
Where kondisi

Inner Query
(Select kolom,….
From tabel
Where kondisi)
Subquery terdiri dari dua perintah select. Perintah select pertama disebut Outer Query atau Query induk sedangkan query yang berada pada klausa where disebut inner query. Inner query akan dikerjakan terlebih dahulu dan hasilnya akan digunakan sebagai pembanding pada pencarian data di klausa where outer query.
Subquery dapat digunakan untuk menghasilkan nilai-nilai bagi outer query pada saat kriteria pencarian yang dibutuhkan tidak diketahui.
Sebagai contoh kita ingin mengetahui semua harga jual dari barang
yang lebih kecil dari harga jual barang dengan kode 10011 sementara kita sendiri tidak tahu harga jual barang dengan kode 10011.

Pada subquery menghasilkan nilai 1500000 kemudian digunakan sebagai
pembanding pada outer query.

Jenis Subquery:
1.      Single-row subquery
Merupakan subquery yang hanya menghasilkan satu baris dan satu kolom data atau data tanggal
Diatas merupakan contoh single row subquery. Jika kondisi yang diinginkan lebih dari satu,  kondisi dapat digabungkan menggunakan operator logika and atau or.
Group Function pada subquery:
Pada subquery juga bisa menggunakan group function seperti AVG, MAX dan MIN





2.      Multi-row subquery
Menghasilkan lebih dari satu row.Tanda pembanding yang digunakan dalam multi row subquery adalah tanda pembanding jamak yaitu IN, ANY dan ALL.
    
   
3.      Multi-column Subquery
Multi Column Subquery adalah subquery yang menghasilkan lebih dari satu kolom.Biasa disebut juga pairwise subquery. Jumlah dan posisi kolom dari outer query yang akan dibandingkan harus sama dengan jumlah dan posisi kolom pada subquery. Setiap row pada outer query dibandingkan dengan nilai dari multiple-row dan multiple-column pada subquery. Penghubung yang digunakan biasanya IN.

4. Inline View
Merupakan cara untuk mengumpulkan data yang akan dianggap oleh query
utama sebagai sebuah tabel untuk keperluan pengaksesan query.





BAB III
PENUTUP


A.   KESIMPULAN
Dengan menggunakan Sub Query. Kita juga dapat menggunakan sql untuk memproses data .
Subquery terdiri dari dua perintah select. Perintah select pertama disebut Outer Query
Atau  Query induk sedangkan query yang berada pada klausa where disebut inner query.
Subquery dapat digunakan untuk menghasilkan
nilai-nilai bagi outer query pada saat kriteria pencarian yang dibutuhkan tidak diketahui.
Jenis Sub query :
1.      Single row sub query
Merupakan subquery yang hanya menghasilkan satu baris dan satu kolom data atau data tanggal.
2.      Multi-row subquery
Menghasilkan lebih dari satu row . tanda pembanding yang di gunakan dalam multi row subquery adalah tanda pembanding jamak yaitu IN , ANY dan ALL.
3.      Multi column subquery
Subquery yang menghasilkan lebih dari satu kolom. Di sebut juga pairwise subquery.
4.      Correlated subquery
Subquery akan di peroses dulu untuk menyeleksi outer querynya.
5.      Inline view
Cara untuk mengumpulkan data yang akan di anggap oleh query utama sebagai sebuah tabel untuk keperluan pengaksesan query.

B. DAFTAR PUSTAKA


Selasa, 12 Desember 2017

Laporan Praktikum Modul 9


LAPORAN PRAKTIKUM

Mata Kuliah    : Sistem Manajemen Basis Data
Dosen Pengampu : Ibu Tri Astuti, S.Kom. M.Eng
Disusun Oleh:
Nama : Nur Laeli Rachmawati
NIM : 17.12.0001
Kelas : SI17A

PROGRAM STUDI SISTEM INFORMASI
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM PURWOKERTO

2017/2018







BAB I
PENDAHULUAN


     A.    LATAR BELAKANG

Didalam sebuah software ada beberapa komponen yang harus kita ketahui, bukan hanya di ketahui tetapi kita juga harus mengerti apa fungsi dari komponen yang terdapat di software tersebut. Salah satu komponen yang ada di dalam software tersebut adalah bahasa pemrograman. Bahasa pemrograman yang sering sekali digunakan adalah ORACLE. Didalam oracle ini kita dapat membuat suatu relasi tabel, pembuatan tabel dan masih banyak lagi.
Dengan menggunakan oracle ini bukan hanya digunakan untuk pembuatan tabel saja, tetapi juga dapat digunakan untuk perhitungan sebuah data, pembuatan tanggal dan masih banyak lagi yang dapat digunakan dengan oracle.

B.     SOAL / PERMASALAHAN
       1. Apa yang dimaksud dengan Equi Join?
       2. Apa saja perintah join pada oracle?
       3. Bagaimana cara penggunaan kolom alias pada join?
       4. Bagaimana cara menmpilkan tabel Cartesian Product?
       5. Bagaimana cara menampilkan tabel Left Outer Join?
C. LANDASAN TEORI
            INNER JOIN – ON
1. Penggunaan relasi INNER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti contoh di bawah.

2.      INNER JOIN – USING
Sama seperti keterangan diatas, penggunaan relasi INNER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja. Sedangkan syntak USING berfungsi menampilkan kedua table dengan field yang direlasikan hanya ditampilkan satu kali di awal table atau terletak paling kiri seperti pada contoh di bawah.


3.      LEFT OUTER JOIN – ON
Penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah.

4.      LEFT OUTER JOIN – USING
Sama seperti keterangan sebelumnya, penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak USING berfungsi menampilkan kedua table lengkap dengan field yang direlasikan hanya ditampilkan satu kali saja di awal table atau di sebelah kiri seperti pada gambar di bawah.

5.      NATURAL LEFT OUTER JOIN
Seperti keterangan sebelumnya, penggunaan relasi LEFT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KIRI. Sedangkan syntak NATURAL mempunyai fungsi sama dengan USING yaitu menampilkan field yang bersesuaian satu kali saja di awal table seperti pada gambar di bawah.

6.      RIGHT OUTER JOIN - ON
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak ON berfungsi menampilkan kedua table lengkap dengan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah.

7.      RIGHT OUTER JOIN – USING
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak USING berfungsi menampilkan kedua table lengkap dengan field yang direlasikan hanya ditampilkan satu kali saja di awal table atau di sebelah kiri seperti pada gambar di bawah.

8.      NATURAL RIGHT OUTER JOIN
Penggunaan relasi RIGHT OUTER JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record tergantung jumlah record sebelah KANAN dan table kedua (dituliskan setelah join) ditampilkan lebih dulu setelah field yang direlasikan. Sedangkan syntak NATURAL mempunyai fungsi sama dengan USING yaitu menampilkan field yang bersesuaian satu kali saja di awal table seperti pada gambar di bawah.

9.      WHERE
Penggunaan syntak WHERE sama dengan penggunaan INNER JOIN – ON yaitu menampilkan kedua table yang direlasikan dengan menampilkan record – record yang bersesuaian saja dan menampilkan semua fieldnya tanpa menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field yang berelasi ditampilkan dua kali yaitu saat di deret table pertama lalu di deret table kedua) seperti pada gambar di bawah. Keuntungannya dibandingkan dengan INNER JOIN – ON adalah dengan penggunaan WHERE penulisan syntak untuk relasi dengan banyak table lebih mudah.

10.  STRAIGHT JOIN
Penggunaan relasi STRAIGHT JOIN adalah untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record adalah hasil kali jumlah record table pertama dengan jumlah record tapi kedua seperti pada gambar di bawah.


11.  CROSS JOIN
Penggunaan relasi CROSS JOIN sama dengan STRAIGHT JOIN yaitu untuk menampilkan kedua table yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian dengan table yang lain dengan jumlah record adalah hasil kali jumlah record table pertama dengan jumlah record tapi kedua seperti pada gambar di bawah.

12.  UNION
Penggunaan relasi UNION adalah untuk menggabung hasil dari syntak LEFT OUTER JOIN dengan RIGHT OUTER JOIN seperti pada gambar di bawah.

13.  FULL JOIN
Penggunaan FULL JOIN adalah untuk menampilkan kedua table dengan record – record yang bersesuaian saja. Field yang berelasi ditampilkan sekali di awal table atau paling kiri.








BAB II
ISI/PEMBAHASAN
Join Table
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 (memiliki relasi). Operasi JOIN pada Oracle, yaitu :
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
Berikut ini beberapa perintah join pada oracle:

1.      Equi Join


Ø  Penggunaan kolom alias pada join


Ø  Cartesian Product


2.      Left Outer Join

3.      Right Outer Join

4.      Full Outer Join




5.      Natural Join


6.      Klausa Using


7.      Klausa On

8.      Cross Join

9.      Join Banyak Tabel



BAB III
PENUTUP


            A.   KESIMPULAN
1. Table Joins adalah penggabungan tabel-tabel menggunakan query yang dilakukan melalui kolom/key tertentu yang memiliki nilai terkait untuk mendapatkan satu set data dengan informasi lengkap yang artinya kolom data didapatkan dari kolom kolom hasil join antar tabel tersebut.
2. Joins memungkinkan kita menggabungkan data dari lebih dari satu tabel ke dalam kumpulan hasil tunggal.
3.  Jenis join utama termasuk inner, left outer join, right outer join, full outer join.
4.  Left Join menghasilkan baris disebelah kiri tidak memiliki pasangan pada tabel sebelah kanan, maka nilai yang akan tampil adalah NULL.
5.  Right Join menghasilkan baris disebelah kanan tidak memiliki pasangan pada tabel sebelah kiri, maka nilai yang akan tampil adalah NULL.
6. Full joins menghasilkan kedua table dengan record – record yang bersesuaian saja. Field yang berelasi ditampilkan sekali di awal table atau paling kiri.
7. Selain klausa on juga ada where, using tetapi yang lebih sering digunakan dalam operasi joins adalah on. Klausa join mengharuskan kolom yang cocok diberi nama yang sama.


B. DAFTAR PUSTAKA