Modul Pemrograman Basis Data SQL
Modul Pemrograman Basis Data SQL
BASIS DATA
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat
dan hidayahnya sehingga modul ini dapat terselesaikan dengan baik. Selanjutnya modul ini
disusun untuk memberikan gambaran bagi Mahasiswa yang mempelajari Aplikasi Basis Data
dengan menggunakan Aplikasi Basis Data Structured Query Language (SQL). Dan
mudahmudahan dapat mempermudah dalam mempelajari SQL karena modul ini disertai
dengan contoh kasus dan penggunaan SQL dalam database.
Akhir kata penulis berharap semoga modul Aplikasi Basis Data Structured Query
Language (SQL) ini dapat dipergunakan sebaik-baiknya dan dapat dijadikan referensi untuk
mahasiswa umum yang ingin mempelajari dan memperdalam tentang database. Tak lupa
penulis mengucapkan banyak terima kasih kepada semua pihak yang telah membantu dengan
tenaga dan pikirannya, terima kasih juga kepada rekan-rekan instruktur, dosen dan semuanya
yang tidak bisa disebutkan satu persatu, yang selalu mendukung penulis sehingga modul ini
sehingga dapat selesai sesuai yang diinginkan.
Penulis menyadari masih banyak kekurangan dalam penyusunan modul ini. Untuk itu
saran dan kritik yang membangun sangat penulis harapkan guna perbaikan dan pengembangan
modul ini kedepan.
Penulis
DAFTAR ISI
A. MySQL
MySQL merupakan DBMS yang pertama kali mulai dikembangkan tahun 1994 oleh
sebuah perusahaan software bernama TcX Data Konsult AB yang dikemudian hari berganti
label menjadi MySQL-AB. “My” pada kata MySQL sebenarnya bukan berarti MY dalam
bahasa inggris, tetapi konon merupakan nama putri dari Michel Widenius seorang perintis dari
MySQL. Versi lain menyebutkan “My” adalah kependekan dari “Monty”, yang merupakan
julukan untuk Michel Widenius.
MySQL adalah Sebuah program database server yang mampu menerima dan
mengirimkan datanya sangat cepat, multi user serta menggunakan perintah dasar SQL (
Structured Query Language).MySQL merupakan dua bentuk lisensi, yaitu FreeSoftware dan
Shareware. MySQL yang biasa kita gunakan adalah MySQL FreeSoftware yang berada
dibawah Lisensi GNU/GPL ( General Public License ). MySQL Merupakan sebuah database
server yang free, artinya kita bebas menggunakan database ini untuk keperluan pribadi atau
usaha tanpa harus membeli atau membayar lisensinya . Selain database server, MySQl juga
merupakan program yang dapat mengakses suatu database MySQL yang berposisisebagai
Server, yang berarti program kita berposisi sebagai Client. Jadi MySQL adalah sebuah database
yang dapat digunakan sebagai Client mupun server. Database MySQL merupakan suatu
perangkat lunak database yang berbentuk database relasional atau disebut Relational Database
Management System ( RDBMS ) yang menggunakan suatu bahasa permintaan yang bernama
SQL (Structured Query Language ).
Sebagaimana database sistem yang lain, dalam SQL juga dikenal hierarki server dengan
database-database.Tiap-tiap database memiliki tabel-tabel. Tiap-tiap tabel memiliki field-field.
Umumnya informasi tersimpan dalam tabel – tabel yang secara logic merupakan struktur 2
dimensi terdiri atas baris dan kolom.Field-field tersebut dapat berupa data seperti int , realm
char, date, time dan lainnya. SQL tidak memiliki fasilitas pemrograman yang lengkap,tidak ada
looping ataupun percabangan,misalnya.Sehingga untuk menutupi kelemahan ini perlu
digabung dengan bahasa pemrograman semisal C.
B. Keunggulan
Database MySQL memiliki beberapa keunggulan disbanding database lain, diantaranya:
1. MySQL merupakan Database Management System ( DBMS )
2. MySQL sebagai Relation Database Management System ( RDBMS ) atau disebut
dengan database Relational
3. MySQL Merupakan sebuah database server yang free, artinya kita bebas menggunakan
database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar
lisensinya dan bisa di download di www.mysql.com.
6. Didukung program-program umum seperti C, C++, Java, Perl, PHP, Python, TCL APIs dls.
7. Bekerja pada berbagai platform.(tersedia berbagai versi untuk berbagai sistem operasi).
8. Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi sistem database.
9. Memiliki sistem sekuriti yang cukup baik dengan verifikasi host.
10. Mendukung ODBC untuk sistem operasi Microsoft Windows.
11. Mendukung record yan gmemiliki kolom dengan panjang tetap atau panjang bervariasi. dan
masih banyak keunggulan lainnya (lihat manual mysql_3.22)
12. MySQL dan PHP saling terintegrasi. Maksudnya adalah pembuatan database dengan
menggunakan sintak PHP dapat di buat. Sedangkan input yang di masukkan melalui aplikasi
web yang menggunakan script server-side seperti PHP dapat langsung dimasukkan ke database
MySQL yang ada di server dan tentunya web tersebut berada di sebuah web server.
C. Kekurangan
Penggunaan database MySQL memiliki kekurangan sebagai berikut:
1. Banyak mengklaim kurang support terhadap pemrograman Visual/Desktop, sehingga
sedikit yang menggunakan untuk aplikasi visual.
2. Karena berlisensi GPL sehingga sulit mendapatkan update untuk problem yang urgent,
sehingga perusahaan skala menengah keatas lebih memilih RDBMS berlisensi dan
disupport seperti Oracle dan MS SQL Server
3. Sangat diragukan dalam menangani data skala besar, karena ada beberapa opini yang pro
dan kontra terhadap kemampuan MySQL terhadap pengolahan data yang besar.
Data Definition Language (DDL) merupakan perintah SQL yang digunakan untuk melakukan
definisi awal suatau basis data dan tabel pada konsep RDBMS. Secara sederhana, penulisan
perintah SQL pada kelompok ini terdiri dari Create, Alter, dan Drop. Berikut merupakan
pembahasan untuk perintah SQL tersebut.
A. Create
Perintah SQL ini digunakan untuk membuat suatu basis data dan table pendukung didalam
pembangunan basis data tersebut. Table merupakan objek yang sangat penting dalam suatu
basis data.
);
3. Contoh membuat database baru:
CREATE DATABASE testDB;
4. Contoh membuat table baru:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
C. Drop
Perintah SQL ini digunakan untuk menghapus table yang terdapat didalam basis data.
Berikut ini merupakan aturan umum penulisan yang digunakan pada drop table. a.
Sintak menghapus database:
Data Manipulation Language (DML) merupakan perintah SQL yang digunakan untuk
melakukan pengolahan record atau memanipulasi data pada table dalam suatu basis data.
Secara sederhana penulisan perintah SQL pada kelompok ini terdiri dari insert, select, update,
dan delete. Berikut ini adalah deskripsi mengenai kelompok perintah DML tersebut.
A. Insert
Perintah SQL ini digunakan untuk melakukan entry atau penambahan suatu record pada
table dalam basis data. Berikut ini merupakan aturan umum penulisan yang digunakan pada
insert suatu table.
1. Sintak pertama:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
2. Sintak kedua:
INSERT INTO table_name VALUES (value1, value2, value3, ...);
3. Contoh penerapan sintak pertama:
a. Menambahkan satu record pada tabel cutomer
B. Select
Perintah SQL ini digunakan untuk memilih record yang akan ditampilkan berdasarkan data
pada table dalam basis data. Berikut ini merupakan aturan umum dan variasi penulisan yang
digunakan pada select.
C. Update
Perintah SQL ini untuk mengubah data dalam suatu table pada field tertentu dengan record
baru berdasarkan suatu field sebagai kriteria pengubahan record-nya.
D. Delete
Perintah SQL ini digunakan untuk menghapus data dalam suatu table, berdasarkan suatu
field sebagai kriteria penghapusan record-nya. Berikut ini merupakan aturan umum
penulisan yang digunakan pada delete sebagai berikut :
Data Control Language (DCL) merupakan perintah SQL yang digunakan untuk melakukan
pengaturan hak akses suatu objek data para pengguna basis data. Secara sederhana, penulisan
perintah SQL pada kelompok ini terdiri dari grant, revoke.
A. Grant
Perintah SQL ini digunakan oleh seorang administrator basis data untuk memberikan hak
aksesnya kepada pengguna tertentu, agar dapat mengakses suatu table dalam basis data.
Hak akses tersebut adalah insert, delete, update, dan select. Berikut in merupakan aturan
umum penulisan yang digunakan pada Grant.
1. Sintak :
GRANT hak_akses ON nama_tabel TO pengguna_tertentu;
2. Contoh penerapan dan penjelasan:
• Pemberian hak akses INSERT dan DELETE pada tabel mahasiswa kepada Budi
GRANT INSERT, DELETE ON mahasiswa TO Budi;
• Pemberian hak akses UPDATE pada tabel mahasiswa kepada Raisa
GRANT UPDATE ON mahasiswa TO Raisa;
B. Revoke
Perintah SQL ini digunakan oleh seorang administrator basis data, untuk membatalkan /
menghentikan hak akses yang telah diberikan kepada pengguna tertentu, agar tidak dapat
mengakses table dalam basis data. Berikut ini merupakan aturan umum penulisan yang
digunakan pada revoke.
1. Sintak :
REVOKE hak_akses ON nama_tabel FROM pengguna_tertentu;
2. Contoh penerapan dan penjelasan:
• Membatalkan hak akses INSERT dan DELETE pada tabel mahasiswa kepada
Budi
REVOKE INSERT, DELETE ON mahasiswa FROM Budi;
• Membatalkan hak akses UPDATE pada tabel mahasiswa kepada Raisa
REVOKE UPDATE ON mahasiswa FROM Raisa;
PERTEMUAN 6
EKSPLORASI PERINTAH SQL
Setelah pada kajian sebelumnya dilakukan pembahasan untuk tiga jenis perintah SQL,
yaitu DDL, DML, dan DCL kemudian pada bab ini dilakukan beberapa eksplorasi dari suatu
perintah SQL dengan adanya penggabungan klausa, operator, fungsi agregat, join, dan relasi.
Berikut ini merupakan hal umum untuk perintah SQL yang dilakukan saat eksplorasi tersebut.
A. Where
Where ini digunakan untuk melakukan seleksi pada record, yang sesuai dengan syarat suatu
kriteria pada suatu kondisi perintah SQL. Pada table 6.1 disajikan operator matematika
yang digunakan oleh klausa where.
Penggunaan WHERE juga bisa digunakan dalam perintah UPDATE dan DELETE.
1. Sintak operator:
a. AND
SELECT column1, column2,...FROM table_name
WHERE condition1 AND condition2 AND condition3 ...; b.
OR
2. Contoh penerapannya:
2 %a% Cara untuk mencari kesesuaian pada suatu kata yang didalamnya
mengandung 1 atau beberapa huruf a atau A
5 _a_ Cara untuk mencari kesesuaian pada suatu kata yang didalamnya
mengandung hanya 1 huruf a atau A yang sama
b. Menampilkan nama customer yang ada huruf or diawal, ditengah ataupun diakhir
SELECT * FROM Customers WHERE CustomerName LIKE '%or%';
E. In Dan Not In
In digunakan untuk mencari nilai kesesuaian dengan suatu data tertentu yang ada dalam
suatu daftar / list nilai. Operator Not In merupakan negasi untuk nilai yang tidak ada dalam
daftar / list tersebut.
1. Sintak In:
b. Memilih semua costumer yang berasal dari negara yang sama dengan supplier
SELECT column_name(s)FROM table_name
WHERE column_name IN (value1, value2, ...); Atau:
F. Order By
Order By digunakan untuk melakukan pengurutan berdasarkan suatu field, yang merupakan
hasil dari penyataan select secara ascending atau descending. Default pengurutan klausa
order by adalah ascending.
b. Menampilkan seluruh record dari tabel cutomer dan diurutkan berdasarkan nama
costumer dengan urutan z – a
G. Select Distinct
Distinct digunakan untuk menghilangkan duplikasi pada suatu tampilan, dengan cara
menghilangkan tampilan record dengan nilai yang sama untuk hasil suatu perintah SQL,
tetapi bukan menghapus record secara fisik.
1. Sintak Distinct
SELECT DISTINCT column1, column2,...FROM table_name;
2. Contoh penerapan
a. Menampilkan country yang berbeda dari tabel costumer
H. Group By
Group By digunakan untuk melakukan pengelompokan berdasarkan suatu field atau
beberapa field. 1. Sintak group by
ORDER BY column_name(s);
2. Contoh penerapan
a. Menampilkan jumlah customer di setiap Negara
SELECT COUNT(CustomerID), Country FROM Customers GROUP
BY Country;
I. Fungsi Agregat
Kelompok fungsi ini digunakan untuk suatu nilai, dengan kualifikasi yang merupakan hasil
dari perhitungan sekelompok baris data atau table. Pada table 6.4, disajikan fungsi agregat
yang memiliki kualifikasi tersendiri untuk menghasilkan suatu nilai tertentu. Tabel 6.4
Kelompok Fungsi Agregat
NO NAMA FUNGSI KUALIFIKASI
1. AVG Menghasilkan nilai rata-rata
2 COUNT Menghitung banyaknya data/record
3 MAX Menghasilkan nilai terbesar
4 MIN Menghasilkan nilai terkecil
5 SUM Menghitung jumlah sekelompok data
1. AVG
a. Sintak
SELECT AVG(column_name)FROM table_name WHERE condition;
b. Contoh penerapan
2. COUNT
a. Sintak
SELECT COUNT(column_name)FROM table_name
WHERE condition;
b. Contoh penerapan
• Menghitung jumlah record dari tabel produk
Hasilnya:
4. MIN
a. Sintak
SELECT MAX(column_name)FROM table_name;
b. Contoh penerapan
5. SUM
a. Sintak
SELECT SUM(column_name)FROM table_name;
b. Contoh penerapan
• Mencari jumlah (Quantity) dari tabel OrderDetail
1. ALTER TABEL
a. Sintak menambahkan kolom(field)
ALTER TABLE table_name ADD column_name datatype;
b. Sintak menghapus kolom(field)
ALTER TABLE table_name DROP COLUMN column_name;
c. Sintak modifikasi kolom(field)
ALTER TABLE table_name MODIFY COLUMN column_name
datatype;
d. Contoh penerapannya
• Menambahkan Field(kolom) “DateOfBirth” pada tabel person
dengan tipe data date;
Hasilnya:
2. DROP TABEL
a. Sintak
DROP TABLE table_name;
b. Contoh penerapan
• Menghapus tabel Shippers
DROP TABLE Shippers;
K. Operator Aritmatika
Pada umumnya operator aritmatika untuk proses perhitungan yang digunakan dalam
perintah SQL terdiri dari perkalian(*), pembagian(/), penjumlahan(+), dan pengurangan(-
).
1. Operator perkalian (*) Contoh:
SELECT 30 * 20; Hasilnya:
L. Aliases
Alias secara sederhana adalah "nama lain", artinya kita dapat mengganti sementara sebuah
nama tabel dan nama kolom dengan nama yang sesuai dengan keinginan kita. Tujuan
penggunaan alias adalah untuk mempermudah dan menyingkat deskripsi sebuah nama tabel
dan nama kolom pada sebuah query.
1. Sintak
a. Mengganti nama kolom
SELECT column_name AS alias_name FROM table_name;
b. Mengganti nama tabel
SELECT column_name(s) FROM table_name AS alias_name; 2.
Contoh penerapan
Customers.CustomerID=Orders.CustomerID;
Hasilnya:
M. Exists Dan Not Exist
Perintah Exists biasanya digunakan untuk check keberadaan suatu suatu obyek di suatu
database. Operator EXISTS mengembalikan nilai true jika subquery mengembalikan satu atau
beberapa record. Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di
subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan
mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang
dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm table kosong
NOT EXIST kebalian dan EXIST. Karena EXIST dan NOT EXIST hanya memeriksa
keberadaan baris-baris di table hasil subquery.
1. Sintak
SELECT column_name(s)FROM table_name
WHERE EXISTS(SELECT column_name FROM table_name WHERE conditio
n);
2. Contoh penerapan
a. Mengembalikan TRUE dan mencantumkan Suppliers dengan harga product kurang
dari 20.
Hasilnya:
N. Having
HAVING ditambahkan ke SQL karena kata kunci WHERE tidak dapat digunakan dengan
fungsi agregat. HAVING digunakan untuk menentukan kondisi bagi GROUP BY.
2. Contoh penerapan
a. Menampilkan jumlah customer di setiap negara. Hanya sertakan negara dengan
lebih dari 5 customer:
Country
HAVING COUNT(CustomerID) > 5;
O. Union
Operator UNION digunakan untuk menggabungkan hasil-set dari dua atau lebih pernyataan
SELECT. Dengan persyaratan sebagai yaitu: Setiap pernyataan SELECT dalam UNION
harus memiliki jumlah kolom yang sama, Kolom juga harus memiliki tipe data yang sama,
dan Kolom di setiap pernyataan SELECT juga harus berada dalam urutan yang sama.
1. Sintak
SELECT column_name(s) FROM table1
UNION SELECT column_name(s) FROM table2; Atau:
b. Pernyataan SQL berikut memilih semua kota (nilai duplikat juga) dari "Customers"
dan "Suppliers":
P. View
View adalah tabel virtual berdasarkan hasil-set pernyataan SQL.Tampilan berisi baris dan
kolom, seperti tabel sebenarnya. Bidang dalam tampilan adalah bidang dari satu atau lebih
tabel nyata dalam database. Dalam view dapat menambahkan fungsi SQL, WHERE, dan
JOIN statements untuk melihat dan menyajikan data seolah-olah data berasal dari satu tabel
tunggal.
1. Sintak
CREATE VIEW view_name AS SELECT column1,column2,...
FROM table_name WHERE condition;
2. Contoh penerapan
1. Sintak
a. Any
SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name FROM table_name WHERE condition); b.
All
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
(SELECT column_name FROM table_name WHERE condition);
2. Contoh penerapan
a. Any
SELECT ProductName
FROM Products
WHERE ProductID
= ANY (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);
R. Constraint
Constrain dapat ditentukan saat tabel dibuat dengan pernyataan CREATE TABLE, atau
setelah tabel dibuat dengan pernyataan ALTER TABLE.
1. Sintak
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....);
2. Contoh penerapan
a. Not Null
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
b. Unique
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);
c. Primary Key
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
d. Foreign Key
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
e. Check
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
f. Default
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
PERTEMUAN 7
OPERASI JOIN
Merupakan operasi yang digunakan untuk menghasilkan kumpulan record dari dua buah table
atau lebih. Secara umum operasi join dapat dikelompokan menjadi:
A. Inner Join
Merupakan operasi join yang digunakan untuk menghasilkan kumpulan record dari dua
buah table atau lebih dengan nilai yang sama, nilai tersebut merupakan irisan yang terdapat
pada tabel-tabel tersebut.
1. Sintak
SELECT column_name(s)FROM table1
INNER JOIN table2 ON table1.column_name = table2.c
olumn_name;
2. Contoh penerapan
a. Menggabungkan Tabel Orders dan Customer
Customers.CustomerID; Hasilnya:
1. Sintak
SELECT column_name(s)FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name; 2.
Contoh penerapan
a. Left Join tabel Orders dan Customers
1. Sintaknya
SELECT column_name(s)FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.c
olumn_name; 2. Contoh penerapan
1. Sintak
SELECT column_name(s) FROM table1
FULL OUTER JOIN table2 ON table1.column_name = tab
le2.column_name;
2. Contoh penerapan
a. Full Join tabel Orders dan Customers
Abdul Kadir (2013). Pengertian MySQL. Tersedia dalam : Buku Pintar Programer Pemula
PHP. Yogyakarta. Mediakom.
Priyadi, Yudi. 2014. Kolaborasi SQL & ERD Dalam Implementasi Database. Penerbit
Andi.Yogyakarta.