mustofa0264.files.wordpress.com€¦  · web viewsub query berarti query yang ada di dalam query....

27
TUGAS PRAKTIKUM I BASIS DATA LANJUT Khoirul Mustofa 11120014 Laboratorium pemrograman Fakultas Teknik Program Studi Teknik Informatika Universitas Wijaya Kusuma Surabaya

Upload: others

Post on 30-Sep-2020

40 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

TUGAS PRAKTIKUM I

BASIS DATA LANJUT

Khoirul Mustofa 11120014

Laboratorium pemrograman

Fakultas Teknik

Program Studi Teknik Informatika

Universitas Wijaya Kusuma Surabaya

2014

Page 2: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

TUJUAN

1. Mahasiswa mampu mengetahui tentang penggunaan query dan subquery dengan

operator.

2. Mahasiswa mampu mempelajari jenis dan perbedaan dari subquery.

3. Mahasiswa mampu mempelajari fungsi dari perintah where dan like.

Page 3: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

PENDAHULUAN

Dasar Teori

1.1 Subquery

Sub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil

dari query akan menjadi bagian dari query di atasnya. Subquery terletak di dalam klausa

WHERE atau HAVING.Pada klausa WHERE, subquery digunakan untuk memilih

baris-baris tertentu yang kemudian digunakan oleh query.Beberapa kegunaan dari

subquery adalah :

1. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai

yang tidak diketahui (unknown values).

2. Meng-copy data dari satu table ke table lain

3. Menerima data dari in line view

4. Mengambil data dari table lain untuk kemudian diupdate ke table yang dituju

5. Menghapus baris data dari suatu table berdasarkan baris lain table lain

Bentuk umum dari subquery adalah sebagai berikut :

Main Query

Sub Query

Gambar 1.Bentuk Umum SubQuery

Sintaks formal subquery bias ditulis sebagai berikut :

SELECT A1, A2, . . .An

FROM r1, r2, r3, . . .rm

WHERE P

(SELECT A1, A2, . . ., An

FROM r1, r2, r3, . . .rm

SELECT . . .

FROM . . .

WHERE . . .

SELECT . . .

FROM . . .

WHERE . . .

Page 4: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

WHERE P)

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

kolom jenisnya tercantum pada table film menggunakan IN.

SELECT *FROM JENIS_FILM WHERE JENIS IN (SELECT JENIS FRM

FILM):

Atau menggunakan EXISTS

SELECT *FROM JENIS_FILM WHERE EXISTS (SELECT *FROM FILM

WHERE HARGA > 2000);

Pada contoh diatas : SELECT JENIS FROM FILM disebut subquery,

sedangkan :SELECT *FROM JENIS_FILM

berkedudukan sebagai query. Perhatikan, terdapat data jenis dan harga pada table

jenis_film yang tidak ditampilkan.

Subquery dapat diklasifikan kedalam tiga jenis : scalar, multiple-row, dan

multiple-column.

a) Scalar SubQuery

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

Bentuk subquery ini diperlihatkan seperti gambar sebagai berikut :

Return

120

Gambar 2.Scalar Subquery

Sub query baris tunggal dapat menggunakan operator baris tunggal =,>,>=,<, <=,

atau<>.

b) Multiple-Row Subquery

Subquery baris ganda (multiple-row) mengembalikan lebih dari satu baris data.

Bentuk subquery ini diperlihatkan seperti gambar sebagai berikut :

Main Query

SubQuery

Page 5: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Return 102

103

104

Gambar 4 Multiple-row subquery

Subquery baris ganda dapat menggunakan operator komparasi IN, ANY/ SOME, atau

ALL.

c) Multiple-Column SubQuery

Subquery kolom ganda (multiple-column) mengembalikan lebih dari satu baris

dan satu kolom data. Bentuk subquery ini diperlihatkan seperti gambar sebagai

berikut :

Return

102 Budi L

103 WatiP

Gambar 4 Multiple-Column Subquery

1.2 Fungsi Where

Where digunakan untuk memfilter data pada perintah Select Syntax dasar:SELECT column name(s)FROM table_nameWHERE column_name operator value

Berikut pernyataan SQL memilih semua mata kuliah “Tabel Mata Kuliah”, dalam “nama_matkul” table.

Main Query

Subquery

Main Query

Subquery

Page 6: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Contoh :

TabelMata_Kuliah

Kode_MK Nama_Matkul

MK202 OOP

MK303 Basis Data

SELECT *FROM TabelMata_Kuliah

WHERE Nama_matkul=’Basis Data’;

SQL membutuhkan tanda kutip tunggal di sekitar nilai-nilai teks (sebagian besar sistem

database juga akan memungkinkan tanda kutip ganda).

Namun, bidang numeric tidak boleh tertutup dalam tanda kutip:

Contoh :

SELECT *FROM Customer

WHERE Kode_MK=202;

1.3 Fungsi Like

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

LIKE Syntax

SELECT nama_kolom(s)

FROM nama_tabel

WHERE nama_kolom LIKE pattern;

Berikut pernyataan SQL memilih semua pelanggan dengan mata kuliah yang diawali

dengan huruf “b”:

Page 7: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Contoh :

TabelMata_Kuliah

Kode_MK Nama_Matkul

MK202 OOP

MK303 Basis Data

SELECT *FROM TabelMata_Kuliah

WHERE Nama_Matkul LIKE ‘b%’;

Catatan : Tanda modulus “%” tanda digunakan untuk mendefinisikan huruf, angka, maupun kalimat baik sebelum dan sesudah.

Berikut pernyataan SQL memilih semua mata kuliah dengan nama mata kuliah yang berisi pola “data”:

Contoh :

SELECT *FROM Tabel Mata_Kuliah

WHERE Nama_Matkul NOT_Like ‘%data%’;

Page 8: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Laboratorium

1. Buat database baru dengan nama Pertemuan1

2. Buat Table baru dengan nama”mahasiswa”

create table mahasiswa (NIM int constratint NIM primary key not null,

Nama varchar (25), Jenis_Kelamin varchar (10), Alamat varchar (25))

3. Masukkan data sesuai kebutuhan

insert into mahasiswa values (101, ‘Arif’, ‘L’, ‘Jl. Kenangan’)

insert into mahasiswa values (102, ‘Budi’, ‘L’, ‘Jl. Jombang’)

insert into mahasiswa values (103, ‘Wati, ‘P’, ‘Jl. Surabaya’)

insert into mahasiswa values (104, ‘Ika’, ‘P’, ‘Jl. Jombang’)

insert into mahasiswa values (105, ‘Tono, ‘L’, ‘Jl. Jakarta’)

insert into mahasiswa values (106, ‘Iwan’, ‘L’, ‘Jl. Bandung’)

insert into mahasiswa values (107, ‘Sari’, ‘P’, ‘Jl. Malang’)

insert into mahasiswa values (111, ‘Dwi’, ‘P’, ‘Jl. Demak Barat’)

insert into mahasiswa values (123, ‘Yoga’, ‘L’, ‘Jl. ManukanYoso’)

4. Tampilkan tabel mahasiswa

Select * from mahasiswa

Page 9: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

5. Buat tabel Ambil_MK

create table Ambil_MK (NIM int references mahasiswa (NIM), Kode_MK

varchar (10))

6. Buat datanya sesuai kebutuhan

insert into Ambil_MK values (101, ‘PTI447’)

insert into Ambil_MK values (103, ‘TIK333’)

insert into Ambil_MK values (104, ‘PTI333’)

insert into Ambil_MK values (104, ‘PTI777’)

insert into Ambil_MK values (111, ‘PTI123’)

insert into Ambil_MK values (123, ‘PTI999’)

7. Tampilkan table Ambil_MK

select * from Ambil_MK

8. Buat table barudengannama”Dosen”

create table Dosen (Kode_Dos int constraint Kode_Dos primary key not

null, Nama_Dos vacrhar (10), Alamat_Dos varchar (20)

9. Buat datanya sesuai kebutuhan

Page 10: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

insert into Dosen values (10, ‘Suharto’, ‘Jl. Jombang’)

insert into Dosen values (11, ‘Martono’, ‘Jl. Kalpataru’)

insert into Dosen values (12, ‘Rahmawati, ‘Jl. Jakarta’)

insert into Dosen values (13, ‘Bambang’, ‘Jl. Bandung’)

insert into Dosen values (14, ‘Nurul’, ‘Jl. Raya Tidar’)

insert into Dosen values (23, ‘Nanik’, ‘Ambengan’)

insert into Dosen values (33, ‘Karyanto’, ‘Jl. Diponegoro’)

insert into Dosen values (99, ‘Maria’, ‘Jl. Dupak’)

10. Tampilkan table Dosen

select * from Dosen

11. Buat tablebarudengannama ”MataKuliah”

create table MataKuliah (Kode_MK varchar (20), Nama_MK varchar (30),

SKS varchar (1), Semester varchar (1), Kode_Dos int references Dosen)

12. Buat datanya sesuai kebutuhan

insert into MataKuliah values (‘PTI447’, ‘Praktikum Basis Data’, ‘1’, ‘3’,

11)

insert into MataKuliah values (‘TIK342’, ‘Praktikum Basis Data’, ‘1’, ‘3’,

11)

insert into MataKuliah values (‘PTI333’, ‘Basis DataTerdistribusi’, ‘3’, ‘5’,

10)

insert into MataKuliah values (‘TIK123’, ‘JaringanKomputer, ‘2’, ‘5’, 33)

Page 11: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

insert into MataKuliah values (‘TIK333’, ‘SistemOperasi, ‘3’, ‘5’, 10)

insert into MataKuliah values (‘PTI123, ‘Grafika Multimedia, ‘3’, ‘5’, 12)

insert into MataKuliah values (‘PTI777’, ‘SistemInformasi’, ‘2’, ‘3’, 99)

13. Tampilkan table MataKuliah

select * from MataKuliah

14. Buat table Jurusan

create table Jurusan (Kode_Jur varchar (5), Nama_Jur varchar (30),

Kode_Dos int references Dosen (Kode_Dos))

15. Buat datanya sesuai kebutuhan

insert into Dose values (‘TE’, ‘Teknik Elektro’, 10)

insert into Dose values (‘TM’, ‘Teknik Mesin’, 13)

insert into Dose values (‘TE’, ‘Teknik Sipil’, 23)

16. Tampilkan table Jurusan

select * from Jurusan

Page 12: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

TUGAS LABORATORIUM

1. Gunakan Sub query untuk menampilkan data sebagai berikut :

a. Tampilakan dengan menggunakan Scalar Subquery

nim nama Jenis_kelamin alamat

103 Wati P Jl. Surabaya

104 Ika P Jl. Jombang

107 Sari P Jl. Malang

select * from mahasiswa where Jenis_Kelamin = (select jenis_kelamin from

mahasiswa where nama= ‘dwi’);

Data yang ditampilkan

b. Tampilkan dengan menggunakan Multiple Row Subquery dengan operator IN

Kode_dos Nama_dos

10 Suharto

11 Martini

12 Rahmawati

select * from Dosen where Alamat_Dos IN (select Alamat_Dos from Dosen

where Kode_Dos < 13);

Data yang ditampilkan

Page 13: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

c. Tampilkan dengan menggunakan Multiple Row Subquery dengan operator Any

Kode_mk Nama_mk sks Semester Kode_dos

PTI333 Basis Data Terdistribusi 3 5 10

TIK123 Jaringan Komputer 2 5 33

TIK333 Sistem Operasi 3 5 10

PTI123 Grafika Multimedia 3 5 12

PTI777 Sistem Informasi 2 3 99

select * from MataKuliah where Kode_MK = ANY (select Kode_MK from

MataKuliah where SKS > 1) order by Semester desc;

Data yang ditampilkan

d. Bagaimana untuk mendapatkan data seperti berikut :

Kode_mk Nama_mk sks Semester Kode_dos

PTI333 Basis Data Terdistribusi 3 5 10

TIK333 Sistem Operasi 3 5 10

PTI123 Grafika Multimedia 3 5 12

select * from MataKuliah where Kode_MK = ANY (select Kode_MK from

MataKuliah where SKS = 3)order by Semester desc;

Data yang ditampilkan

Page 14: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

e. Bagaimana untuk mendapatkan data dengan ketentuan

Kode_mk Nama_mk sks Semester Kode_dos

PTI447 Praktikum Basis Data 1 3 11

select * from MataKuliah where Kode_MK = ANY (select Kode_MK from

MataKuliah where Kode_MK = ‘PTI447’);

Data yang ditampilkan

2. Dari table yang sama seperti nomor 1

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

kuliah adalah PTI

select mahasiswa.NIM, mahasiswa.NAMA, mahasiswa.Jenis_Kelamin,

mahasiswa.Alamat, Ambil_MK.Kode.MK from Mahasiswa, ambil.MK where

mahasiswa.NIM = ambil_mk.NIM AND ambil_mk.Kode_MK like ‘%PTI%’

Data yang ditampilkan

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

select dosen.kode_dos, dosen.nama_dos, dosen.alamat_dos,

matakuliah.kode_mk, matakuliah.nama_mk from dosen, matakuliah where

dosen.kode_dos = matakuliah.kode_dos AND dosen.alamat_dos not like

‘%Jakarta%’ AND matakuliah.nama_mk like ‘%Praktikum%’

Page 15: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Data yang ditampilkan

IMPLEMENTASI PADA PROJECT KELOMPOK

TUGAS TAMBAHAN LABORATORIUM

Buatlah 50 data dari masing-masing tabel yang terdapat pada sistem informasi

yang anda kerjakan

sistem informasi yang saya kerjakan adalah sistem informasi rumah sakit. Berikut

adalah data-data yang tercantum dalam database yang saya cantumkan :

1. Tabel Pasien

Untuk membuat field :

Page 16: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Output runnig:

2. Tabel Dokter

Page 17: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di
Page 18: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Output running:

3. Tabel Obat

Page 19: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Output running:

4. Tabel Resep

Page 20: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Output running;

5. Tabel Rawat inap

Output runnig:

Page 21: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

6. Tabel Rawat jalan

Output running:

7. Tabel Penyakit

Page 22: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

Output running:

8. Tabel Biaya

Output running:

Page 23: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

9. Tabel Kamar atau jenis kamar

Output running;

Page 24: mustofa0264.files.wordpress.com€¦  · Web viewSub query berarti query yang ada di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di

KESIMPULAN

Query adalah semacam kemampuan untuk menampilkan suatu data dari

database dimana mengambil dari table-tabel yang ada di database,namun tabel tersebut

tidak semua ditampilkan sesuai dengan yang kita inginkan. data apa yang ingin kita

tampilkan. Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam

SQL Statement yang lain. Untuk penulisan subquery pada SQL (SELECT select_list

FROM table);

Subquery ini digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai

yang tidak diketahui. Subquery terdapat banyak kolom yang merupakan tiap baris dari

main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-

column.