View
29
Download
0
Category
Preview:
Citation preview
TUGAS PRAKTIKUM I
BASIS DATA LANJUT
Khoirul Mustofa 11120014
Laboratorium pemrograman
Fakultas Teknik
Program Studi Teknik Informatika
Universitas Wijaya Kusuma Surabaya
2014
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.
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 . . .
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
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
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”:
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%’;
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
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
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)
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
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
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
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%’
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 :
Output runnig:
2. Tabel Dokter
Output running:
3. Tabel Obat
Output running:
4. Tabel Resep
Output running;
5. Tabel Rawat inap
Output runnig:
6. Tabel Rawat jalan
Output running:
7. Tabel Penyakit
Output running:
8. Tabel Biaya
Output running:
9. Tabel Kamar atau jenis kamar
Output running;
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.
Recommended