Anda di halaman 1dari 28

Praktikum

Pemrograman
Basis Data
Pemrograman basis data dengan
MySQL

SQL: select, join, subquery


Procedural Language/SQL:
variabel, tipe-data, control-flow
statement, cursor, prosedur dan
fungsi, trigger
Integrated Development
Environment (IDE): koneksi dan
recordset, dataset

Khoirudin, S.Kom., M.Eng


Maret 2018
DAFTAR ISI

DAFTAR ISI ............................................................................... i


BAB 1 MEMBUAT DATABASE ............................................. 1
A. Pengertian dan Kegunaan XAMPP .............................. 1
B. Persiapan database ....................................................... 2
BAB 2 MANIPULASI DATA ................................................... 9
A. Insert data ..................................................................... 9
B. Select data .................................................................. 11
C. Operator Aritmatika ................................................... 12
D. Operator Logika ......................................................... 12
E. Operator Perbandingan .............................................. 13
F. Multiple table ................................................................. 13
G. SQL Function ............................................................. 21
H. Transactional .............................................................. 21
I. Latihan ........................................................................... 21
BAB 3 TIPE DATA DAN VARIABLE ................................... 22
A. Tipe Data .................................................................... 22
B. Variable ...................................................................... 22
BAB 4 CONTROL FLOW STATEMENT ................................ 1
A. Percabangan ................................................................. 1
B. Perulangan .................................................................... 1
BAB 5 CURSOR ........................................................................ 1
A. Membuat dan Menggunakan Cursor ............................ 1
B. Implisit Cursor ............................................................. 1
C. Nested Cursor ............................................................... 1
D. latiahan ......................................................................... 1
BAB 5 PROSEDUR DAN FUNGSI .......................................... 1
A. Prosedur ....................................................................... 1
B. Fungsi ........................................................................... 1
BAB 6 TRIGGER ....................................................................... 1
BAB 7 CONNECTION RECORD SET ..................................... 1
BAB 8 DATA SET ..................................................................... 2
BAB 9 PENCARIAN DAN PENYORTIRAN DATA .............. 2
i
BAB 10 DATA SET DAN DATA SOURCE ............................ 2

ii
BAB 1 MEMBUAT DATABASE
A. Pengertian dan Kegunaan XAMPP
XAMPP adalah software web server apache yang di
dalamnya tertanam server MySQL yang didukung dengan
bahasa pemrograman PHP untuk membuat website yang
dinamis. XAMPP sendiri mendukung dua system operasi
yaitu windows dan Linux. Untuk linux dalam proses
penginstalanny menggunakan command line sedangkan
untuk windows dalam proses penginstalannya menggunakan
interface grafis sehingga lebih mudah dalam penggunaaan
XAMPP di Windows di banding dengan Linux.
Didalam XAMPP ada 4 komponen utama yang di tanam di
dalamnya yaitu web server Apache, PHP, MySQL dan
PHPMyAdmin.
1. Apache (web server yang digunakan untuk menampilkan
website baik secara offline ataupun online)
2. PHP (bahasa pemrograman yang di digunakan untuk
membuat website dinamis)
3. MySQL (digunakan untuk membuat dan mengelola
database beserta isinya)
4. PHPMyAdmin (digunakan untuk membuat pengetikan
kode-kode MySQL yang tadinya harus di ketik di
command line bisa di olah menggunakan interface grafis

1
sehingga memudahkan dalam pengelolaan database
MySQL.)
Dalam modul ini menggunakan Xampp versi 5.6.33 / PHP
5.6.33, dimana dala versi ini terdapat beberapa fitur antara
lain : Apache 2.4.29, MariaDB 10.1.30, PHP 5.6.33,
phpMyAdmin 4.7.4, OpenSSL 1.0.2, XAMPP Control Panel
3.2.2, Webalizer 2.23-04, Mercury Mail Transport System
4.63, FileZilla FTP Server 0.9.41, Tomcat 7.0.56 (with
mod_proxy_ajp as connector), Strawberry Perl 7.0.56
Portable

B. Persiapan database
Silahkan buka aplikasi Xampp dikomputer anda,

Kemudian klik Start, pada bagian Apache dan MySQL.


Sehingga berubah sebagai berikut.

2
Kemudian silahkan anda buka browser dan ketikkan alamat
berikut; http://localhost/

Pastikan halaman browser anda sudah tampil seperti gambar


diatas, gambar tersebut adalah halaman dari webserver
xampp. Dimana semua projek akan berjalan dibawah url
http://localhost/. Kemudian untuk membuat database
silahkan klik phpMyAdmin yang ada di pojok kanan atas,
atau ketik URL berikut http://localhost/phpmyadmin/

3
Kemudian klik new (ada dipojok kanan atas) atau menu
database untuk membuat database baru,

Kemudian kita akan membuat database baru, ketik nama


database : akademik, kemudian klik create.
Untuk perkuliahan kita akan membuat database dengan
nama akademik, yang terdiri dari 4 tabel (mahasiswa, mk,
dosen dan table nilai).

4
Yukk, kita langsung buat aja. Silahkan menuju create table

1. Tabel Mahasiwa
Kemudian isikan datanya seperti gambar berikut (Tabel
Mahasiswa);

Pada field nim, ubah kolom index menjadi Primary

Kemudian akan muncul notifikasi sebagai berikut, pilih go :

5
Kalau sudah terisi semua, kemudian klik save . Hasilnya
sebagai berikut

Yupp, table mahasiswa anda sudah selesai dibuat, sekarang


lanjutkan untuk membuat table dosen, mk dan table nilai.
2. Table Dosen

6
3. Table mk

4. Table nilai

Pada table nilai tidak terdapat primary key, tetapi terdapat


3 foreign key yaitu (nim, kode_mk, nid), dimana ketiga
field tersebut berhubungan dengan table lain. Yaitu dengan
mengisi kolom index pada field nim, kode_mk, nid
menjadi INDEX;

7
Kemudian setelah table jadi, pilih menu structure,
kemudian pilih Relation view, kemudian ubahlah foreign
key constrains menjadi seperti gambar berikut. Kemudian
klik save;

8
BAB 2 MANIPULASI DATA
A. Insert data
Masukkan data berikut (table dosen)

Masukkan data berikut (table mahasiswa)

9
Masukkan data berikut (table mk)

Masukkan data berikut (table nilai)

10
B. Select data
SELECT dibagi kedalam 6 komponen, antara lain:
 SELECT. Diikuti oleh <select_list>, dapat berupa
literal_value atau column_list atau asterisk (*).
 FROM. Diikuti oleh <table_name> sesuai dengan
column_list. Jadi jika ada data yang diambil dari kolom
tertentu, harus diketahui kolom tersebut diambil dari tabel
mana. Tabel pada FROM dapat diikuti dengan alias untuk
mempermudah penulisan khususnya ketika join dan
subquery.
 WHERE. Diikuti oleh kondisi secara umum.
 GROUP BY. Diikuti oleh <select_list>. Bagian ini muncul
ketika ada fungsi-fungsi agregasi.
 HAVING. Diikuti oleh kondisi hanya untuk fungsi-fungsi
agregasi.
 ORDER BY. Diikuti oleh <select_list>.
Format select secara lengkap dapat pada kode berikut;
SELECT <select_list>
[FROM <table_name>]
[WHERE <kondisi1> [AND/OR <kondisi2>]]
[GROUP BY <select_list>]
[HAVING <kondisi1> [AND/OR <kondisi2>]]
[ORDER BY <select_list>]
Ok, langsung saja kita bahas coba perintah select dalam SQL
seperti contoh berikut;
#menampilakan semua isi tabel dosen
11
SELECT * FROM dosen;

#menampilakan semua isi tabel mahasiswa


SELECT * FROM mahasiswa;
SELECT nim, nama, alamat from mahasiswa

#menampilakan semua isi tabel mk


SELECT * FROM mk;
select kode_mk, nama, sks from mk;

#menampilakan semua isi tabel nilai


SELECT * FROM nilai;

SELECT nim, nama, alamat from mahasiswa

C. Operator Aritmatika
Operator Penjelasan Contoh
+ Penambahan SELECT nim, uas as
'UAS Asli', uas+10 as
'UAS Final' from
nilai;
- Pengurangan SELECT nim, uas-10 as
'UAS Final' from
nilai;
* Pengalian SELECT nim, (uts*0.4)
+ (uas*0.6) as
'akhir' FROM nilai;
/ Pembagian SELECT nim, uas/2 as
'New' FROM nilai;
% Sisa hasil bagi SELECT 17 % 5;
(modulus)

D. Operator Logika
Operator Penjelasan Sample
SELECT * FROM
NOT atau ! Logika bukan mahasiswa WHERE nama
NOT LIKE 's%'

SELECT * FROM
mahasiswa WHERE kota
AND atau && Logika dan = "semarang" AND
sts_nikah = "B"

12
SELECT * FROM
mahasiswa WHERE kota
OR atau || Logika atau = "Semarang" OR
jns_kelamin = "P"
SELECT * FROM
Logika bukan atau mahasiswa WHERE kota
XOR = "Semarang" xor
(XOR)
jns_kelamin = "P"

E. Operator Perbandingan
Operator Penjelasan Sample
SELECT * FROM
= Sama dengan mahasiswa WHERE kota =
"Semarang"
SELECT * FROM
<> atau != Tidak sama dengan mahasiswa WHERE kota
<> "Semarang"
SELECT * FROM nilai
< kurang dari WHERE uas < 80
kurang dari atau sama SELECT * FROM nilai
<= WHERE uas <= 80
dengan
> lebih besar dari SELECT * FROM nilai
WHERE uas > 80
>= lebih besar atau sama SELECT * FROM nilai
dengan WHERE uas >= 80
BETWEEN Berada pada batas SELECT * FROM nilai
tertentu WHERE uas BETWEEN 70
and 80
IN Berada di dalam SELECT * FROM nilai
WHERE uas IN
(70,80,90)
IS NULL Pengecekan apakah SELECT * FROM nilai
berisi NULL WHERE uas is null
IS NOT Pengecekan apakah SELECT * FROM nilai
NULL bukan berisi NULL WHERE uas is not null
LIKE Pencarian SELECT * FROM
menggunakan wildcard mahasiswa WHERE nama
LIKE 's%'

F. Multiple table
1. Join
Bentuk join pertama kali adalah menggunakan kata kunci
WHERE untuk melakukan penggabungan tabel. Jadi tabel-tabel
13
yang ingin digabungkan ditulis dalam kata kunci FROM,
sedangkan penggabungannya ditulis dalam WHERE. Sintak
untuk join menggunakan WHERE adalah sebagai berikut:
SELECT m.nama, n.kode_mk, n.uas
FROM mahasiswa m, nilai n
WHERE m.nim=n.nim;

SELECT m.nim, m.nama, mk.nama, n.uas


FROM mahasiswa m, nilai n, mk
WHERE m.nim=n.nim;

- Inner Join

#Perintah dasar Inner join

SELECT column_name(s)
FROM TableA
INNER JOIN TableB ON A.column_name =
B.column_name;

Contoh :
SELECT nilai.nim, mahasiswa.nama
FROM nilai
INNER JOIN mahasiswa ON nilai.nim =
mahasiswa.nim

SELECT nilai.nim, mahasiswa.nama, nilai.uts,


nilai.uts
FROM nilai
INNER JOIN mahasiswa ON nilai.nim =
mahasiswa.nim

14
SELECT nilai.nim, mahasiswa.nama, mk.nama
FROM ((nilai
INNER JOIN mahasiswa ON nilai.nim =
mahasiswa.nim)
INNER JOIN mk ON nilai.kode_mk = mk.kode_mk)

- Left Join
Left outer join (sering disingkat left join) akan
mengembalikan seluruh baris dari tabel disebelah kiri yang
dikenai kondisi ON dan hanya baris dari tabel disebelah kanan
yang memenuhi kondisi join.

Perintah dasar Left join :


SELECT column_name(s)
FROM TableA
LEFT JOIN TableB ON A.column_name =
B.column_name;

Contoh ;
SELECT nilai.nim, mahasiswa.nama, nilai.uts
FROM nilai
LEFT JOIN mahasiswa ON nilai.nim =
mahasiswa.nim
order by nilai.nim;

SELECT nilai.nim, mahasiswa.nama, mk.nama


FROM ((nilai
left JOIN mahasiswa ON nilai.nim =
mahasiswa.nim)
left JOIN mk ON nilai.kode_mk = mk.kode_mk)
order by mk.nama;
15
- Left [Outer] Join
Join ini merupakan variasi dari left outer join. Pada join
ini kita hanya akan mengambil data dari tabel sebelah kiri yang
dikenai kondisi ON yang juga memenuhi kondisi join tanpa data
dari tabel sebelah kanan yang memenuhi kondisi join.

SELECT columns
FROM TableA
LEFT OUTER JOIN TableB
ON A.columnName = B.columnName
WHERE B.columnName IS NULL

SELECT nilai.nim, mahasiswa.nama


FROM mahasiswa
LEFT OUTER JOIN nilai
ON nilai.nim = mahasiswa.nim
WHERE nilai.nim is null

- Right Join
Right outer join (sering disingkat right join) akan
mengembalikan semua baris dari tabel sebelah kanan yang
dikenai kondisi ON dengan data dari tabel sebelah kiri yang
memenuhi kondisi join. Teknik ini merupakan kebalikan dari
left outer join.

16
SELECT columns
FROM TableA
RIGHT JOIN TableB
ON A.columnName = B.columnName

SELECT nilai.nim, mahasiswa.nama, nilai.uts


FROM nilai
RIGHT JOIN mahasiswa ON nilai.nim =
mahasiswa.nim
ORDER BY nilai.nim

- Right outer Join


Teknik ini merupakan variasi dari right outer join. Pada
join ini kita hanya akan mengambil data dari tabel sebelah
kanan yang dikenai kondisi ON yang juga memenuhi kondisi
join tanpa data dari tabel sebelah kanan yang memenuhi kondisi
join.

SELECT columns
FROM TableA
RIGHT OUTER JOIN TableB
ON A.columnName = B.columnName
WHERE A.columnName IS NULL

SELECT nilai.nim, mahasiswa.nama, nilai.uts


FROM nilai
RIGHT OUTER JOIN mahasiswa
ON nilai.nim = mahasiswa.nim
WHERE nilai.nim IS NULL

- Full Join (Tidak Tersedia di MySQL)

17
Full outer join (sering disingkat full join) akan
mengembalikan seluruh baris dari kedua tabel yang dikenai ON
termasuk data-data yang bernilai NULL.

SELECT columns
FROM TableA
FULL JOIN TableB
ON A.columnName = B.columnName

- Full [Outer] Join without Intersection (Tidak Tersedia di


MySQL)
Variasi lain dari full outer join yang akan mengembalikan
seluruh data dari kedua tabel yang dikenai ON tanpa data yang
memiliki nilai NULL.

SELECT columns
FROM TableA
FULL JOIN TableB
ON A.columnName = B.columnName
WHERE A.columnName IS NULL
OR B.columnName IS NULL

18
- Self Join
Join yang dilakukan antar kolom dalam satu tabel.
SELECT A.nama AS mahasiswaName1, B.nama AS
mahasiswaName2, A.kota
FROM mahasiswa A, mahasiswa B
WHERE A.nim <> B.nim
AND A.kota = B.kota
ORDER BY A.nama

2. Group By dan Having


Salah satu fitur dari MySQL adalah dukungan terhadap
berbagai fungsi agregat GROUP BY dan HAVING untuk
pengelompokkan data. Sebelum mencoba fungsi GROUP BY
dan HAVING, perlu diketahui bahwa keduanya sangat berkaitan
dengan fungsi agregat. Fungsi agregat merupakan kelompok
fungsi di MySQL yang memungkinkan untuk memiliki
parameter berupa kelompok data. Sebagai contoh dari fungsi
agregat adalah fungsi SUM() yang akan menjumlahkan seluruh
nilai yang menjadi parameternya.
#Perintah Dasar Broup By
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

SELECT COUNT(nama), kota


FROM mahasiswa
GROUP BY kota

SELECT COUNT(nama), kota


FROM mahasiswa
GROUP BY kota
ORDER BY COUNT(nama) DESC
19
#Perintah Dasar Having
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator
value;

SELECT COUNT(nama), kota


FROM mahasiswa
GROUP BY kota
HAVING COUNT(nama) >= 2;

SELECT COUNT(nama), kota


FROM mahasiswa
GROUP BY kota
HAVING COUNT(nama) >= 2
ORDER BY COUNT(kode_mk) DESC;

3. Agregation
- Sum
SELECT SUM (nama_kolom) FROM nama_tabel

- Count
SELECT COUNT (nama_kolom) FROM nama_tabel

- AVG
SELECT AVG nama_kolom FROM nama_tabel

- Min
SELECT MIN nama_kolom FROM nama_tabel

- Max

20
SELECT MAX nama_kolom FROM nama_tabel

4. SubQuery

G. SQL Function

H. Transactional

I. Latihan

21
BAB 3 TIPE DATA DAN VARIABLE
A. Tipe Data

B. Variable

22
BAB 4 CONTROL FLOW STATEMENT
A. Percabangan

B. Perulangan

BAB 5 CURSOR
A. Membuat dan Menggunakan Cursor

B. Implisit Cursor

C. Nested Cursor

D. latiahan

BAB 5 PROSEDUR DAN FUNGSI

A. Prosedur

B. Fungsi

BAB 6 TRIGGER

BAB 7 CONNECTION RECORD SET

1
BAB 8 DATA SET

BAB 9 PENCARIAN DAN PENYORTIRAN


DATA

BAB 10 DATA SET DAN DATA SOURCE

2
1

Anda mungkin juga menyukai