laporan 1 annissaul hidayah 11120018_6

20
LAPORAN PRAKTIKUM BASIS DATA LANJUT I Oleh Annissaul Hidayah 11120018 Rizki Fadila 11120024 Desmala Paranti 11120031 Fakultas Teknik Program Studi Teknik Informatika Universitas Wijaya Kusuma Surabaya 2014

Upload: saul-anizsa

Post on 25-Jun-2015

192 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Laporan 1  annissaul hidayah 11120018_6

LAPORAN PRAKTIKUM BASIS DATA LANJUT I

Oleh

Annissaul Hidayah 11120018

Rizki Fadila 11120024

Desmala Paranti 11120031

Fakultas Teknik

Program Studi Teknik Informatika

Universitas Wijaya Kusuma Surabaya

2014

Page 2: Laporan 1  annissaul hidayah 11120018_6

Tujuan

1. Mengerti tentang penggunaan subquery.

2. Memahami penggunaan query Where, Like, Desc/ Asc.

3. Mampu menerapkan penggunaan subQuery dan Query tingkat lanjut.

Page 3: Laporan 1  annissaul hidayah 11120018_6

Pendahuluan

1.1. Subquery

Subquery adalah perintah SELECT yang berada di dalam perintah SQL lain. Subquery sangat

berguna ketika kita ingin menampilkan data dengan kondisi yang bergantung

pada data di dalam table itu sendiri.

Kegunaan-kegunaan Subquery dalam memanipulasi data:

Meng-copy data dari satu tabel ke tabel lain

Menerima data dari inline view

Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju

Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.

Bentuk umum dari sub query adalah

Sintaks formal subquery bisa ditulis sebagai berikut:

SELECT A1, A2,…..,An

FROM r1,r2,r3,….,rm

WHERE P

Contoh : perintah untuk menampilkan data pada table jenis_film yang mana data pada kolom

jenis-nya tercantum pada table film menggunakan IN:

SELECT * FROM JENIS_FILM WHERE JENIS IN (SELECT JENIS FROM FILM);

atau menggunakan EXISTS

SELECT * FROM JENIS_FILM WHERE EXISTS(SELECT * FROM FILM

WHERE HARGA > 2000);

Pada contoh di atas : SELECT JENIS FROM FILM disebut subquery, sedangkan : SELECT

* FROM JENIS _FILM berkedudukan sebagai query . perhatikan, terdapat data jenis dan

Page 4: Laporan 1  annissaul hidayah 11120018_6

harga pada table jenis_film yang tidak ditampilkan. Hal ini disebabkan data pada kolom jenis

tidak terdapat pada kolom jenis di table film.

Subquery dapat diklasifikasikan ke dalam tiga jenis:

a. Scalar Subquery

Subquery baris tunggal ( scalar) hanya mengembalikan hasil satu baris data. Subquery

baris tunggal dapat menggunakan operator baris tunggal =,>,>=,<,<=, atau <>

b. 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.

c. 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

1.2. Fungsi Where

WHERE digunakan untuk mengekstrak hanya catatan-catatan yang memenuhi kriteria

tertentu.

SQL WHERE Syntax

SELECT nama_kolom, nama_kolom

FROM nama_tabel

WHERE nama_kolom operator hasil;

1.3. Fungsi Like

Operator LIKE digunakan untuk mencari pola yang telah ditentukan dalam kolom SQL

LIKE Syntak

SELECT nama_kolom (s)

FROM nama_tabel

WHERE nama_kolom LIKE pattern;

Page 5: Laporan 1  annissaul hidayah 11120018_6

Percobaan

Pembuatan table database pada oracle dan SQL

Oracle

Pembuatan connect database baru

Database baru dengan nama pertemuan 1.

Page 6: Laporan 1  annissaul hidayah 11120018_6

Pembuatan tabel database mahasiswa dengan nim sebagai primary key.

Tabel matakuliah dengan kode_mk sebagai primary key.

Page 7: Laporan 1  annissaul hidayah 11120018_6

Pemanggilan table matakuliah dengan perintah seperti di atas.

Memasukkan data mahasiswa

Pemanggilan table mahasiswa dengan perintah select * from mahasiswa.

Page 8: Laporan 1  annissaul hidayah 11120018_6

Membuat table Dosen kode_dosen sebagai primary key.

Memasukkan data dosen

Page 9: Laporan 1  annissaul hidayah 11120018_6

Memanggil data dosen dengan perintah select * from dosen.

Memasukkan data matakuliah dan memanggil dengan perintah select * from matakuliah.

Page 10: Laporan 1  annissaul hidayah 11120018_6

Membuat table jurusan kode_jurusan sebagai primary key.

Memasukkan data jurusan yang ada.

Memanggil data jurusan dengan perintah select * from jurusan.

Page 11: Laporan 1  annissaul hidayah 11120018_6

Membuat table MK yang di ambil dengan nim sebagai primary key.

Memasukkan data MK yang di ambil.

Page 12: Laporan 1  annissaul hidayah 11120018_6

SQL Server

Pembuatan table pada SQL primary key-nya sudah di atur sehingga primary key di sini

berbeda dengan oracle. Pada oracle primary key harus di centang sedangkan pada SQL

primary key tidak bisa di centang contohnya seperti berikut:

Pembuatan table matakuliah dengan kode_mk sebagai primary key.

Pembuatan table mahasiswa dengan nim sebagai primary key.

Pembuatan table jurusan dengan kode_jurusan sebagai primary key.

Pembuatan table dosen dengan kode_dosen sebagai primary key.

Page 13: Laporan 1  annissaul hidayah 11120018_6

Pembuatan table ambil_mk dengan nim sebagai primary key.

Page 14: Laporan 1  annissaul hidayah 11120018_6

Tugas

Oracle

1. Gunakan Subquery untuk menghasilkan data sebagai berikut:

a. Gunakan Scalar Subquery

Memanggil dengan perintah scalar query fungsinya untuk memanggil salah satu data yang di

inginkan. Dengan perintah seperti gambar di atas.

b. Gunakan Multiple Row Subquery dengan operator IN

Memanggil dengan multiple row subquery dengan operator IN. fungsinya untuk memanggil

dua data yang ingin di tampilkan misalnya dosen dan mata kuliah yang di ajarnya.

c. Gunakan Multiple Row Subquery dengan operator Any

Memanggil dengan menggunakan multiple row subquery dengan operator Any. Dengan

tampilakan dosen dan matakuliah yang di ambil.

Page 15: Laporan 1  annissaul hidayah 11120018_6

Memanggil dengan menggunakan multiple row subquery dengan operator Any.

d. Bagaimana untuk mendapatkan data seperti berikut

Memanggil dengan menggunakan multiple row subquery dengan operator Any.

e. Bagaimana query untuk mendapatkan data dengan ketentuan:

Menampilkan kolom kode_mk, nama_ mk, sks, semester, kode_dos dimana kode_mk

adalah PTI1447.

Tampilan kolom kode _mk, nama_mk, sks, semester, kode_dos dimana kode_mk

pada PTI

Page 16: Laporan 1  annissaul hidayah 11120018_6

2. Dari table yang sama seperti nomer 1.

a. Tampilkan mahasiswa yang mengambil mata kuliah dengan kode depan mata kuliah

adalah PTI

Tampilan mahasiswa yang mengambil mata kuliah dengan kode depan mata kuliah PTI

dengan perintah select * from ambil_mk where kode_like’PTI%’.

b. Tampilkan dosen yang alamatnya bukan dari Jakarta dan mengajar praktikum.

Tampilan dosen yang alamatnya bukan dari Jakarta dengan perintah select mahasiswa.nim,

mahasiswa.nama, mahasiswa.jenis_kelamin, ambil_mk.kode_mk from mahasiswa, ambil_mk

where ambil_mk.kode_mk like ‘PTI%’ AND ambil_mk.nim=mahasiswa.nim;

Tampilan dosen yang alamatnya bukan dari Jakarta dan mengajar prkatikum dengan perintah

select kode_dos, nama_dos, alamat_dos from dosen where kode_dos IN (select kode_dos

from matakuliah where alamat_dos not like ‘%jakarta%’ AND nama_mk like ‘Praktikum%’);

Page 17: Laporan 1  annissaul hidayah 11120018_6

SQL

1. Gunakan Subquery untuk menghasilkan data sebagai berikut:

a. Gunakan Scalar Subquery

Mencari jenis_kelamin yang sama dengan wati pada tabel mahasiswa sehingga

dapat dituliskan

Hasil :

Memanggil dengan perintah scalar query fungsinya untuk memanggil salah satu data

yang di inginkan.

b. Gunakan Multiple Row Subquery dengan operator IN

Mencari kode_dos yang sama pada tabel dosen dan matakuliah yang kurang dari

13

Hasil :

Memanggil dengan multiple row subquery dengan operator IN. fungsinya untuk

memanggil dua data yang ingin di tampilkan misalnya dosen dan mata kuliah yang di

ajarnya.

Page 18: Laporan 1  annissaul hidayah 11120018_6

c. Gunakan Multiple Row Subquery dengan operator Any

Mencari kode_mk yang sama pada tabel kuliah yang kode_dosnya bukan 11

Cara II :

Mencari kode_mk yang sama pada tabel matakuliah yang sksnya lebih dari 1

Hasil :

Memanggil dengan menggunakan multiple row subquery dengan operator Any.

Dengan tampilakan dosen dan matakuliah yang di ambil.

d. Bagaimana untuk mendapatkan data seperti berikut

Hasil :

Memanggil dengan menggunakan multiple row subquery dengan operator Any.

Page 19: Laporan 1  annissaul hidayah 11120018_6

e. Bagaimana query untuk mendapatkan data dengan ketentuan:

Menampilkan kolom kode_mk, nama_ mk, sks, semester, kode_dos dimana

kode_mk adalah PTI1447.

Hasil :

2. Dari table yang sama seperti nomer 1.

a. Tampilkan mahasiswa yang mengambil mata kuliah dengan kode depan mata

kuliah adalah PTI

Hasil :

Tampilan mahasiswa yang mengambil mata kuliah dengan kode depan mata kuliah

PTI dengan perintah select * from ambil_mk where kode_like’PTI%’.

b. Tampilkan dosen yang alamatnya bukan dari Jakarta dan mengajar praktikum.

Hasil :

Tampilan dosen yang alamatnya bukan dari Jakarta dan mengajar prkatikum dengan

perintah select kode_dos, nama_dos, alamat_dos from dosen where kode_dos IN

(select kode_dos from matakuliah where alamat_dos not like ‘%jakarta%’ AND

nama_mk like ‘Praktikum%’);

Page 20: Laporan 1  annissaul hidayah 11120018_6

Kesimpulan

Subquery merupakan suatu pernyataan SELECT yang dilekatkan didalam suatu

klausa pada pernyataan SELECT lain. Kita dapat membangun pernyataan- pernyataan yang

kuat selain yang sederhana dengan menggunakan subquery- subquery. Subquery- subquery

bisa sangat bermanfaat ketika kita memerlukan untuk memilih baris- baris dari suatu table

dengan suatu kondisi yang tergantung pada data didalam tabel itu sendiri.

Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

atasnya. Subquery terletak didalam klausa Where atau Having. Pada klausa Where, subquery

digunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query.

Agus Sumaryanto

Tanggal Asisstensi : 30 Mei 2014