Vous êtes sur la page 1sur 7

Modul 5

SQL 2
1.1 Tujuan
a. Mahasiswa dapat mengenal Sintak SQL Lanj ut
b. Mahasiswa dapat mengoperasikan Sintak SQL Lanjut
1.2 Materi
a. SQL
b. Tabel
1.3 Alat dan Bahan
a. sqlyog
b. XAMPP
c. phpmyadmin
1.4 Prosedur Praktikum
a. Peserta membaca dan mempelajari materi praktikum sebelumny a
b. Instruktur menerangkan dan menjelaskan teori dan cara kerja
c. Peserta mempraktikan materi percobaan
d. Peserta membuat penyelesaian terhadap soal latihan
1.5 Teori
Fungsi Agregra si
Fungsi agregasi digunakan untuk menampilkan kebutuhan perolehan data seperti menampilkan
banyakny a record, total nilai suatu atribut, rata-rata nilai atribut, nilai atribut terbesar atau terkecil ,
dan lain sebagainya. Macam-macam fungsi agregasi dalam SQL adalah sebagai berikut :

Count
Sum

Avg

Max

Min

; fungsi ini digunakan untuk mendapatkan nilai banyaknya rec ord


dari query.
; fungsi ini digunakan untuk mendapatkan nilai total suatu atribut bertipekan
numeric dari query.
; fungsi ini digunakan untuk mendapatkan nilai rata -rat a suatu atribut bertipe
numeric hasil query.
; fungsi ini digunakan untuk mendapatkan nilai terbesar dari suatu atribut hasil
query
; fungsi ini digunakan untuk mendapatkan nilai terkecil dari suatu atribut hasil
query.

Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL:
Cont oh 1
Menampilkan banyakny a record dosen
select count

(*)

from

DOSEN

Cont oh 2
Menampilkan banyakny a mata kuliah pada semester enam
select count
from
where

(* )
KULIA H
SEMESTER = 6

Cont oh 3
Menampilkan total sks disemester enam
select sum

( SKS )

from

KULIAH
SEMESTER = 6

where

Cont oh 4
Menampilkan rata-rata sks untuk tiap-tiap semester
select avg

( SKS ) from

KULIAH

Cont oh 5
Menampilkan mahasiswa dengan usia termuda
select max

( TGL_LHR )

from

MAHASISWA

Cont oh 6
Menampilkan mahasiswa dengan usia tert ua
select min ( TGL_LHR )
from MAHASISWA
Pengubahan Nilai Atribut
Pengubahan nilai atribut dapat menggunakan perintah update, perintah ini berfungsi memperbaharui
atau meng-update satu atau lebih dari satu baris atau sekelompok baris didalam tabel.
Sintak :
update T
set KOLOM = VALUES
where ( kondisi / keadaan )
Keterangan :
T
KOLOM
VALUES
Kondisi / keadaan

: nama tabel yang akan mengalami perubahan record


: nama atribut pada tabel yang akan mengalami perubahan nilai
record
: nilai baru record pada atribut dalam tabel yang akan menggantikan
nilai lama.
: keadaan yang menentukan record nama yang akan mengalami
update / perubahan nilai. Jika klausa where tidak digunakan pada
ekspresi maka, perubahan akan dilakukan pada semua record di
dalam tabel.

Cont oh 1
update MAHASISWA
ASAL = KENDARI

set
where NIM

= 9961003

Tampilannya :
NIM
9961001
9961002
9961003
9961004
9961005

NAMA
BUDI
NINA
ABI
DONI
ANI

1.1.1.1.1.1 TABEL 10 : MAHASISWA


SEX
ASAL
TGL.LHR
L
KUDUS
02/02/ 80
P
BLORA
03/11/ 79
L
KENDA RI
30/10/ 78
L
BANTUL
23/07/ 81
P
PATI
07/06/ 78

Cont oh 2
update MAHASISWA

FAK
MIPA
SASTRA
TI
MIPA
MIPA

PRODI
BIOLOGI
INDONESIA
TI
ILKOM
ILKOM

set

FAK = TI, PRODI = T_KIMIA

where NIM = 9961002

Tampilannya :
NIM
9961001
9961002
9961003
9961004
9961005

NAMA
BUDI
NINA
ABI
DONI
ANI

1.1.1.1.1.2 TABEL 11 : MAHASISWA


SE X ASAL
TGL.LHR
L
KUDUS
02/02/ 80
P
BLORA
03/11/ 79
L
KENDA RI
30/10/ 78
L
BANTUL
23/07/ 81
P
PATI
07/06/ 78

FAK
MIPA
SASTRA
TI
MIPA
MIPA

PRODI
BIOLOGI
INDONESIA
TI
ILKOM
ILKOM

Cont oh 3
update
set
where

DOSEN
NAMA_DOSEN = NAMA _DOSEN + , Ssi
STA TUS = TE TAP

Tampilannya :
1.1.1.1.1.3 TABEL 12 : DOSEN
KODE_DOSE N
NAMA_DOSEN
L022
ISMAYA, Ssi
L023
GUNAWAN, Ssi
L024
BUDIHARJO
L025
WARDA TI, Ssi
L026
HARTA TI
L027
FARIDA

STA TUS
TE TAP
TE TAP
KONTRAK
TE TAP
KONTRAK
KONTRAK

ASAL
MEDAN
LAMPUNG
SRAGEN
SEMARANG
JAKARTA
KALIMA NTAN

Perintah Join
Perintah-perintah yang berkaitan dengan pendefinisian obyek -obyek basis dat a dan pembuat an tabel
baru merupakan perintah-perintah y ang t ergolong dalam DDL ( data definition language ). Sebelum
memulai membuat suatu tabel baru perlu diketahui tentang tipe data standart SQL yang berlak u. Bab
yang terdahulu telah dibahas mengenai tipe -tipe data yang berlaku pada SQL. Pada dasarnya
terdapat banyak sekali tipe data yang berlaku pada SQL namun hanya beberapa saja diantaranya
yang diakui sebagai tipe data standart, dan diizinkan untuk digunakan pada periode standarisasi.
Berikut ini adalah tipe-tipe data standart yang berlaku dalam SQL-92 :
Char (n)
: untuk atribut bernilai string dengan panjang tetap
Varchar (n)
: untuk atribut bernilai string dengan penjang fleksibel
Int atau integer
: untuk atribut berniali integer 2 byte
Smallint
: untuk stribut berniali integer 1 byte
Numeric (p,d)
: untuk atribut berniali pecahan fixed point
Real, double, precision : untuk atribut bernilai pecahan floating point
Float (n)
: untuk atribut bernilai pecahan floating point dengan presisi n
digit
Date
: untuk atribut bernilai penanggalan
Time
: untuk atribut bernilai waktu
Sintak klausa pembuatan tabel baru :
crete table T

( A1 D1, A2 D2, , An Dn )

Keterangan :
T
: merupakan nama tabel yang akan dibuat
A1, A2, , An : merupakan nama-nama tribut yang akan terdapat di dalan tabel
D1, D2, , Dn : merupakan domain nialai mesing-masing atribut tersebut yang ditentukan
berdasarkan tipe datany a.

SQL :
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Perintah dasar (bentuk dasar & bentuk lengkap)


Opsi DIS TINCT
Mengganti tampilan judul kolom (alias untuk nama kolom)
Kondisi dengan Klausa WHE RE dan HAV ING
Kondisi jamak dengan operator AND, OR dan BE TWEEN
Pola string dengan wildchar %, _ dan operator LIKE
Query dari beberapa tabel menggunakan WHE RE
Aliasing nama tabel
Query dengan Operasi JOIN dan UNION
Pengurut an hasil Query
Query dengan fungsi agregasi
UPDA TE, DELE TE dan INSE RT
SUBQUE RY

Join
mysql> help join
Name: 'JOIN'
Description:
MySQL supports the following JOIN syntaxes for the
table_references part of SELECT statements and multiple -table
DELETE and UP DATE statements:
table_reference, table_reference
table_reference [INNE R | CROSS] JOIN table_reference [join_condition]
table_reference STRAIGHT_JOI N table_reference
table_reference LEFT [OUTER] JOIN table_reference [join_condition]
table_reference NATURA L [LEFT [OUTE R]] JOIN table_reference
{ OJ table_reference LEFT OUTER JOIN table_reference
ON conditional_expr }
table_reference RIGHT [OUTE R] JOIN table_reference [join_condition]
table_reference NATURA L [RIGHT [OUTE R]] JOIN table_reference
table_reference is defined as:
tbl_name [[AS] alias]
[[USE INDEX (k ey_list)]
| [IGNORE INDEX (k ey_list)]
| [FORCE INDEX (k ey_list)]]
join_condition is defined as:
ON conditional_expr | USI NG (column_list)
Examples:
mysql> SELECT table1.* FROM table1
->
LEFT JOIN table2 ON table1.id=table2.id
->
WHERE table2.id IS NULL;
mysql>
contoh data ke tabel-tabel yang sudah Anda buat.

1.1.2 Inner Join


Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi.
Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan
menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Misalkan isi tabel
pelanggan dan pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email)

Cont oh isi tabel pelanggan


Tabel pe san.

Cont oh isi tabel pes an


Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2
WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL unt uk menggabungkan tabel pelanggan dan pes an:

SELECT pelanggan.id_pelanggan, pelanggan. nm_pelanggan, pesan.id_pesan,


pesan.tgl_pesan
FROM pelanggan, pesan
WHERE pelanggan.id_pelanggan= pesan.id_pelanggan;
Hasilnya sebagai berikut:

Hasil Penggabungan 2 Tabel dengan WHE RE


Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilak uk an oleh 3
(tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka terdapat satu
pelanggan yang tidak ditampilkan yaitu y ang memiliki id pelanggan P0003. Pelanggan tersebut tidak
ditampilkan karena belum pernah melakukan transaks i.
Cara #1. Inner Join dengan klausa INNER JOI N.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.*
FROM tabel1 INNE R JOIN tabel2
ON tabel1.PK=tabel2.FK;
Dan berik ut ini perintah SQL penggabungan tabel pelanggan dan pes an.
SELECT pelanggan.id_pelanggan, pelanggan. nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan INNE R JOIN pesan
ON pelanggan.id_pelanggan=pes an.id_pelanggan;
Hasilnya akan sama dengan gambar di at as (cara #1).
1.1.3 Outer Join
Dengan outer join, tabel akan digabungkan s atu arah, sehingga memungkink an ada data yang NULL
(kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana
kita akan menampilkan daftar pelanggan yang pernah melakukan pemes anan (transaksi).
Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT JOIN. Berikut ini bentuk umum dan
contohny a:
LEFT JOIN.
Bentuk umum:
SELECT tabel1.*, tabel2.*
FROM tabel1 LEFT JOIN tabel2
ON tabel1.PK=tabel2.FK;
Cont oh perint ah SQL:
SELECT pelanggan.id_pelanggan, pelanggan. nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan LEFT JOIN pesan
ON pelanggan.id_pelanggan=pes an.id_pelanggan;
Hasilnya:

Hasil Perint ah Left Join


Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data
pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada
kolom id_pesan dan tgl_pes an untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pes an)
pelanggan tersebut tidak ada.
RIGHT JOIN
Bentuk umum:
SELECT tabel1.*, tabel2.*
FROM tabel1 RIGHT JOIN tabel2
ON tabel1.PK=tabel2.FK;
Cont oh perint ah SQL:
SELECT pelanggan.id_pelanggan, pelanggan. nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan RIGHT JOIN pesan
ON pelanggan.id_pelanggan=pes an.id_pelanggan;
Hasilnya:

Hasil Perint ah Right Join


Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi
tabel pes an akan ditampilkan. Jika dat a pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan
tetap ditampilkan.
1.6 Latihan
1. Coba dulu semua contoh dalam modul 5
2. Merujuk pada kasus struktur tabel pada modul 1, maka kerjakan query berikut ini (gunakan
perintah join baik left join dan inner join):
a. Menampilkan posisi buku yang terpinjam
b. Menampilkan rekapitulasi buku, lengkap dengan author.
c. Menampilkan rekapitulasi posisi buku yang ada lengkap dengan jumlah eksemplar
berikut lokasi penempatan buku.