AD (728x60)

Teknik Informatika

Diberdayakan oleh Blogger.

Total Pageviews

AD (728x90)

Blogger news

Sample Text

Definition List

Text Widget

About me

Formulir Kontak

Followers

Translate

Feature (Side)

Pages

Senin, 17 November 2014

LAPORAN PRAKTIKUM VII "SUB QUERY & INDEKS"

Share & Comment
Sub Query dan Index

A.   Dasar Teori
            I.        Sub Query
Subquery (Subselect) adalah pernyataan SELECT yang merupakan bagian dari pernyataan lain, misal : INSERT. Pernyataan ORDER BY, FOR UPDATE OF, UNION, INTERSECT atau EXCEPT tidak termasuk dalam pernyataan ini.

Subquery menghasilkan  sebuah tabel yang merupakan bagian dari tabel atau view yang diidentifikasikan pada klausa FROM. Pembagian ini dapat digambarkan seperti urutan operasi, dimana hasil dari suatu operasi adalah input bagi operasi lain. Subquery diperlukan pada saat hasil query tidak berhasil dilakukan dengan hanya melalui satu tabel saja, juga pada saat hasil suatu query digunakan pada klausa WHERE query lainnya. Hasil yang diperoleh dari SUBSELECT tidak dapat ditampilkan oleh “main”  SELECT.

Urutan operasi pada Subquery adalah :
1. klausa FROM
2. klausa WHERE
3. klausa GROUP BY
4. klausa HAVING
5. klausa SELECT
Sintaks :
SELECT  ( * | (ekspresi_kolom) ….
FROM  (nama_tabel) ….
 [WHERE  kondisi ]
[GROUP BY  (nama_kolom) ….  ] 
 [HAVING  kondisi_having ]

SUBQUERY – Coding

Fungsi :
Pada klausa kondisi (WHERE atau HAVING), akses lain seperti SELECT dapat melibatkan beberapa tabel. Ada beberapa cara untuk menggabungkan SELECT tambahan pada klausa SELECT atau HAVING :

Perbandingan aritmatik (=, >, <)
ANY (dikombinasikan dengan =, >=, <=)
SOME (dikombinasikan dengan =, >=, <=)
IN           

Hasil Subquery menentukan key word manakah yang dapat digunakan (ANY, SOME, IN). UNION tidak diperkenankan untuk digunakan dalam  SUBSELECT. Sedangkan aritmatik dapat digunakan.

Contoh :
1. Subquery dengan Perbandingan Aritmatik
SELECT EMPNO, LASTNAME, M_SALARY
FROM OWNER_ID.EMP
WHERE M_SALARY >
(SELECT AVG(M_SALARY)
FROM OWNER_ID.EMP)

Subquery menghasilkan nilai tunggal. Oleh karena itu perbandingan dalam klausa WHERE cukup dilakukan dengan operator aritmatik yang sederhana.

2. Subquery dengan IN

SELECT EMPNO, FIRSTNME, M_SALARY
FROM OWNER_ID.EMP
WHERE M_SALARY > 2500 AND JOBID IN
(SELECT JOBID FROM OWNER_ID.JOB
WHERE JOB_NAME LIKE ‘SYSTEM%’

Subquery ini menghasilkan sekumpulan nilai tetapi hasilnya masih dalam satu kolom. Key word khusus dibutuhkan untuk menggabungkan nilai-nilai tersebut dalam “main” SELECT. =ANY atau =SOME dapat digunakan sebagai pengganti IN
          II.        Select Into Statement
Query select into statement merupakan query SQL yang digunakan untuk mengkopi informasi dari tabel ke tabel yang lain tanpa membuat tabel sebelumnya. Select Into mengambil data dari tabel database dan memasukkan ke tabel lain. Perhatikan contoh dibawah ini :
Select namaDepan, namaBelakang,tol_Lahir into UserBackup krom User
Bagian pertama dari pernyataan tampak familia dan hanya memilih beberapa kolom. Bagian kedua dari pernyataan SQL adalah bagian penting, yang menentukan untuk memasukkan baris ke dalam tabel USerBackup. Bagian terakhir menentukan tabel mana yang mau diambil datanya untuk dimasukkan ke dalam tabel yang dipilih. Contoh ini mengasumsikan bahwa baik tabel User maupun Userbackup memiliki struktur yang identik.
       III.        Indeks
Sebuah indeks dapat dibuat pada tabel untuk menemukan data lebih cepat dan efisien. User tidak bisa melihat indeks, indeks hanya digunakan untuk mempercepat pencarian. Biasanya indeks digunakan pada kolom yang sering digunakan.
Membuat indeks boleh terdapat duplikasi :
CREATE INDEX index_name ON Table_name (column_name)
Membuat indeks, tidak boleh terdapat duplikasi:
CREATE UNIQUE INDEX index_name ON Table_name (column_name)
         IV.        Kolom Unik
Unique berfungsi untuk menjaga agar tidak terjadinya duplikasi nilai (kesamaan data) dalam sebuah kolom, hal ini dapat ditangani dengan membuat sebuah indeks unik atau fungsi unik sendiri pada kolom yang dimaksud. Unique ini sering digunakan dalam pembuatan bukan primary key namun membutuhkan cek dupikasi agar tidak ada yang sama, karena dalam primary key sudah otomatis mempunyai sifat unik. Berikut Struktur SQL saat pembuatan tabel baru :
CREATE TABLE nama_tabel (nama_kolom tipe_data unique);
Ketika tabel sudah ada kita bisa menggunakan cara seperti pada pembahasan praktikum sebelumnya. Berikut struktur SQL nya:
ALTER TABLE nama_tabel ADD UNIQUE (nama_kolom);
Untuk menghapus unique berikut caranya :
ALTER TABLE nama_tabel DROP CONSTRAINT NAMA_CONSTRAIN
            V.        Check
Check berfungsi untuk melakukan pembatasan nilai masukan dalam sebuah kolom, sebagai contoh misalkan kita ingin agar kolom gender yang terdiri dari satu karakter hanya memiliki dua pilihan karakter yaitu M (male) atau F (Fimale) ini dapat kita seting dengan menggunakan CHECK. Dengan menggunakan CHECK maka sebuah kolom hanya bisa diisi dengan data yang memenuhi kriteria dalam CHECK.
         VI.        Penggunaan TRIM
Suatu ketika pasti akan memiliki data yang di dalamnya terdapat spasi kosong  yang tidak diperlukan, misalnya spasi ganda. Jika ada masalah seperti ini, kita dapat membersihkan spasi-spasi kosong yang tidak diperlukan menggunakan fungsi TRIM, RTRIM, dan LTRIM. Ketiga fungsi ini memiliki bentuk penggunaan sebagai berikut :
- RTRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kanan
(Right) String.
- LTRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kiri (Left)
String.
- TRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kiri, kanan,
maupun tengah String
Berikut Struktur SQL nya :
Select trim(nama_kolom) from nama_tabel;
Dalam penggunaannya, fungsi TRIM memiliki tiga opsi. Ketiga opsi ini dapat digunakan untuk menentukan karakter apa yang akan dihapus dari suatu String. Jadi, fungsi TRIM juga dapat menghilangkan karakter tertentu (bukan spasi kosong saja) dari suatu string. Opsinya sebagai berikut :
- LEADING : merupakan opsi untuk menghilangkan karakter terpilih yang ada di sebelah kiri. Parameter Leading diartikan sebagai sufik dari karakter yang ada. 
- TRAILING : merupakan opsi untuk menghilangkan karakter terpilih yang ada di sebelah kanan String. Parameter Trailing diartikan sebagai sufik dari karakter yang
ada.
- BOTH : merupakan opsi yang dapat menangani parameter Leading maupun Trailing.
Berikut Struktur SQL nya :
Select trim(LEADING ‘karakter, misal : -’ from nama_kolom) from nama_tabel;

B.    Hasil Praktikum

1.     Menampilkan Nama Fakultas dan jumlah mahasiswa yang mempunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya yang terkecil.
PSQL



MySQL

2.    Menampilkan nama mahasiswa, nama fakultas, alamat dengan syarat nama fakultas sama dengan Edi dan alamatnya tidak sama dengan Luki.
PSQL

MySQL

3.    Membuat index di tabel mahasiswa (alamat) dan membuat unique index pada tabel fakultas (fak_nama) kemudian mengamati perbedaannya.
PSQL


MySQL

4.    Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama.
PSQL
MySQL



5.    Pindahkan data dari tabel mahasiswa, fakultas ambil kolom mim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai tabel identitas.
PSQL

MySQL

6.    Contoh penggunaan check,
PSQL



MySQL

7.    Inputkan data di tabel mahasiswa Dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan diakhiri dengan tanda “+” seperti berikut : “ andicahyono++++”. Kemudian muculkan seluruh data dan hilangkan spasi di depan!
PSQL

MySQL

8.    Munculkan data mahasiswa dengan hilangkan karakter “+” diakhir data dan karakter “a” di awal kata pada kolom nama!
PSQL


MySQL

C.    Evaluasi Perbandingan DBMS
Jadi ada sedikit perbedaan pada penggunaan Sub query menggunakan PSQL dan MySQL, perbedaannya yaitu pada :
·         Pada nomor 5, terjadi perbedaan, pada DBMS MySQL, tidak bisa menerima perintah select into, hal ini mungkin terjadi karena PSQL terkadang lebih unggul dalam beberapa query yang tidak bisa dijalankan oleh DBMS MySQL seperti object orientednya
·         Kemudian pada nomor 6, terjadi perbedaan karena fungsi check pada PSQL yang bisa digunakan, tidak bisa digunakan karena setelah mencoba memasukkan data yang diluar dari check, ternyata masih bisa diinsertkan. Hal ini menunjukkan bahwa check tidak bisa digunakan pada MySQL
·         Pada nomor 8, fungsi rim pada MySQL juga tidak berfungsi.
Sehingga pada praktikum kali ini PostgreSQL lebih unggul karena dapat melakukan fungsi-fungsi yang lebih memudahkan usir.

D.   Kesimpulan
1.     Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan bahwa sup query dalam sal merupakan sup query di dalam sup query atau disebut juga nested query. Pada praktikum ini kita juga telah belajar tentang select into, check, index , unique index serta penggunaan trim.
2.    Saran
Ditingkatkan kembali penguatan konsep dan praktek pada Sub Query agar bisa membuat database  dengan baik.
3.    Kritik
Saya minta maaf, karena pada laporan ini kurang dari kesempurnaan, serta ada sedikit materi yang masih belum saya kuasai
4.    Manfaat
Semoga laporan ini dapat bermanfaat bagi pembaca untuk lebih mengetahui tentang Sub Query serta mengetahui perbedaan pada PostgreSQL dan MySQL
Tags:

Written by

We are Creative Blogger Theme Wavers which provides user friendly, effective and easy to use themes. Each support has free and providing HD support screen casting.

1 komentar:

  1. mana nih laporan praktikum 9 dan 10 nya ? Praktikum 1-8 telah terkoreksi.

    btw, Terima Kasih. Mohon Maaf dari saya selama saya salah memberi arahan dan informasi. :)

    BalasHapus

 

Popular Content

Recent Posts

Why to Choose RedHood?

Mahasiswa Teknik Informatika UIN Maulana Malik Ibrahim Malang
Copyright © Light-Education | Designed by Templateism.com