BASIS DATA II
2015
2
PRAKATA
Dengan memanjatkan puji syukur kehadirat Allah SWT yang telah melimpahkan
rahmat dan karunia-Nya kepada penyusun, sehingga dapat menyelesaikan buku panduan
praktik Basis Data ini. Sholawat dan salam juga kita curahkan kepada baginda yang mulia
Rosulullah SAW beserta keluarga, sahabat dan pengikutnya hingga akhir zaman.
Buku ini merupakan salah satu bahan ajar pendukung untuk mata kuliah Basis Data.
Dari buku ini diharapkan mahasiswa dapat dengan mudah mempelajari, memahami, dan
mempraktikkan materi – materi yang telah diajarkan pada kelas teori mata kuliah Basis Data.
Kemudian buku ini diharapkan dapat menjadi referensi untuk pemecahan permasalahan
umum di luar materi perkuliahan. Sebagian besar isi dari buku ini merupakan rangkuman dari
sumber-sumber yang telah dibuat penulis lain. Penyusun berharap agar buku ini dapat
bermanfaat bagi semua kalangan pembaca. Terima kasih untuk semuanya yang telah
memberikan banyak kritik dan saran serta dukungan dalam penyusunan buku ini.
Penyusun
3
MODUL I
Pengenalan MySQL
Tujuan :
Setelah menyelesaikan modul ini, anda diharapkan dapat :
1. Mengenal lingkungan kerja MySQL
2. Mengenal format perintah di MySQL
3. Mengenal perintah-perintah sederhana di MySQL
Dasar Teori
MySQL adalah suatu perangkat lunak database relasi (Relational Database
Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan
sebagainya. MySQL dikembangkan sekitar tahun 1994 oleh sebuah perusahaan pengembang
software dan konsultan database bernama MYSQL AB yang berada di Swedia. Waktu itu
perusahaan tersebut masih bernama TcX DataKonsult AB, dan tujuan awal
dikembangkannya MySQL adalah untuk mengembangkan aplikasi berbasis web pada client.
MySQL menyebut produknya sebagai database open source terpopuler di dunia. Berdasarkan
riset dinyatakan bahwa bahwa di platform Web, dan baik untuk kategori open source maupun
umum, MySQL adalah database yang paling banyak dipakai. Menurut perusahaan
pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer. Puluhan hingga ratusan
ribu situs mengandalkan MySQL bekerja siang malam memompa data bagi para
pengunjungnya.
Format Perintah
Berikut adalah ketentuan-ketentuan memberi perintah pada MySQL:
Setiap perintah harus diakhiri dengan tanda titik koma , kecuali untuk
perintahtertentu, misal : quit
Setiap perintah akan disimpan dalam buffer (memori sementara) untuk menyimpan
histori perintah-perintah yang pernah diberikan.
Perintah dapat berupa perintah SQL atau perintah khusus MySQL.
Perintah-perintah dalam lingkungan MySQL tidak menerapkan aturan case sensitive,
tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf besar atau pun huruf
kecil.
4
Aturan case sensitive diterapkan pada penamaan objek-objek dalam database seperti
nama database atau nama table, namun aturan ini hanya ada dalam lingkungan Unix
dan Linux.
Sedangkan untuk stop atau keluar dari MySQL dapat menggunakan perintah : \q, exit dan quit.
5
MODUL II
Tujuan :
Setelah menyelesaikan modul ini, anda diharapkan dapat :
1. Membuat database dan tabel dengan data definition language
2. Mampu memodifikasi tabel
Dasar Teori
DDL (Data Definition Language), DDL merupakan kelompok perintah yang berfungsi
untuk mendefinisikan atribut-atribut basis data, tabel, atribut(kolom), batasan-batasan
terhadap suatu atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini
adalah CREATE, ALTER, dan DROP.
a. Syntax Membuat Database : CREATE DATABASE namadatabase;
Namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama
yang sama antar database. Berikut ini perintah untuk membuat database dengan nama
rental : CREATEDATABASERENTAL;
Syntax tambahan untuk menampilkan daftar nama database yang ada pada
mysql menggunakan perintah : SHOWDATABASES;
6
USE RENTAL;
e. Menampilkan Tabel
Untuk menampilkan daftar nama tabel yang ada pada database yang sedang
aktif/digunakan (dalam hal ini database rental) : SHOWTABLES;
7
i. Mendefinisikan Nilai Default : CREATE TABLE namatabel (Field1 TipeData1 DEFAULT
nilaidefault,Field2 TipeData2 DEFAULTnilaidefault);
Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu
kolom ketika ada penambahan baris baru, sementara nilai pada kolom tersebut tidak
diisi oleh pengguna.
Pada kasus ini jenis film ini :
CREATE TABLE jenisfilm (jenis char(6) DEFAULT “komedi”, harga int DEFAULT 0);
j. Mendefinisikan Primary Key Pada Tabel
Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah
Syntax mendefinisikan primary key untuk Field1
CREATE TABLE namatabel(Field1 TipeData1 NOTNULL PRIMARY KEY, Field2
TipeData2);
Atau
CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2, PRIMARYKEY(Field1));
Atau
ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY
(namakolom);
k. Menghapus Primary Key Pada Tabel
Cara 1 : Jika primary key dibuat dengan menggunakan alter table :
ALTER TABLE namatabel DROPCONSTRAINT namaconstraint; Cara
2 : Jika primary key dibuat melalui create table :
ALTER TABLE namatabel DROPPRIMARYKEY;
l. Menambah Kolom Baru Pada Tabel : ALTER TABLE namatabelADDfieldbarutipe;
Namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah
nama kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan
ditambahkan. Berikut ini perintah untuk menambah kolom keterangan dengan tipe
data varchar(25):
ALTER TABLE JENISFILM ADD KETERANGAN VARCHAR(25);
Untuk meletakkan field diawal, tambahkan sintaks first :
ALTER TABLE PELANGAN ADDCOLUMNKODECHAR(5) FIRST;
Untuk menyisipkan field setelah field tertentu, tambahkan sintaks after :
ALTER TABLE PELANGAN ADD COLUMNPHONECHAR(5) AFTER ALAMAT;
8
m. Mengubah Tipe Data atau Lebar Kolom Pada Tabel : ALTER TABLE NAMATABEL
MODIFYCOLUMNFIELD TIPEDATA;
Namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya.
Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data
baru atau tipe data lama dengan lebar kolom yang berbeda. Berikut ini perintah untuk
mengubah tipe data untuk kolom keterangan dengan char(20) :
ALTER TABLE JENISFILM MODIFYCOLUMNKETERANGANVARCHAR(20);
n. Mengubah Nama Kolom : ALTER TABLE namatabel CHANGE COLUMN
namalamakolom namabarukolom tipedatabaru;
Namatabel adalah nama tabel yang akan diubah nama kolomnya,
namalamakolom adalah kolom yang akan diganti namanya, namabarukolom adalah
nama baru kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut ini
perintah untuk mengubah nama kolom keterangan menjadi ket :
ALTER TABLE JENISFILM CHANGECOLUMNKETERANGAN KET VARCHAR(20);
o. Menghapus Kolom Pada Tabel : ALTER TABLE namatabel DROP COLUMN namakolom;
p. Membuat dan Menghapus Index
Index berfungsi mempercepat proses pencarian data dalam suatu tabel.
Adanya index pada suatu field tabel menyebabkan proses pencarian otomatis akan
dilakukan terlebih dahulu ke dalam index, apabila ditemukan baru akan diambilkan
data sesungguhnya dari tabel, apabila tidak ditemukan dalam index, sudah dipastikan
bahwa data tesebut memang tidak ada dalam tabel. Index juga dapat dibuat untuk
setiap kolom yang akan dijadikan kriteria tertentu untuk pencarian data sehingga
proses pencariannya akan lebih cepat. Ada perintah untuk membuat dan menghapus
index, tapi tidak ada perintah untuk merubah index.
Perhatikan contoh berikut :
CREATE INDEX IDXNOMORONMAHASISWA(NIM);
Atau
ALTER TABLE MAHASISWAADD INDEX IDXNIM(NIM);
Untuk menghapus index :
DROPINDEX IDXNIM ONMAHASISWA;
Atau
ALTER TABLE MAHASISWADROPINDEX IDXNIM;
9
Praktik !
1. Buat sebuah database dengan nama coba !
2. Buat sebuah tabel dengan nama mahasiswa di dalam database coba !
3. Tambahkan sebuah kolom : keterangan (varchar 15), sebagai kolom terakhir !
4. Tambahkan kolom nim (int 11) di awal (sebagai kolom pertama) !
5. Sisipkan sebuah kolom dengan nama phone (varchar 15) setelah kolom alamat
varchar(15) !
6. Ubah kolom nim menjadi char(11) !
7. Ubah nama kolom phone menjadi telepon (varchar 20) !
8. Hapus kolom keterangan dari tabel !
9. Ganti nama tabel menjadi student!
10. Buat index untuk tabel tersebut !
11. Jadikan nim sebagai primary key !
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
10
MODUL III
Dasar Teori
DML (Data Manipulation Language) DML adalah kelompok perintah yang berfungsi
untuk memanipulasi data dalam basis data, misalnya untuk pengambilan, penyisipan,
pengubahan dan penghapusan data. Perintah yang termasuk dalah kategori DML adalah :
INSERT, DELETE, UPDATE dan SELECT.
1. I NS E RT
Perintah INSERTdigunakan untuk menambahkan baris pada suatu tabel. Terdapat dua cara
untuk menambah baris, yaitu:
Cara 1: Menambah baris dengan mengisi data pada setiap kolom :
INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);
Cara 2 : Menambah baris dengan hanya mengisi data pada kolom tertentu :
INSERT INTO namatabel (kolom1,kolom2,kolom-n) VALUES(nilai1,nilai2,nilai-n);
Keterangan :
Jika data bertipe string, date atau time (contoh : action, horor, 2007-11-10) maka
pemberian nilainya diapit dengan tanda petik tunggal ('horor') atau petik ganda ("horor"). Jika
data bertipe numerik (2500, 400) maka pemberian nilainya tidak diapit tanda petik tunggal
maupun ganda.
2. DELETE
11
Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi tertentu
atau seluruh baris. Syntax : DELETE FROMnamatabel [WHEREkondisi];
Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu
kondisi tertentu.
3. UPDATE
Perintah UPDATEdigunakan untuk mengubah isi data pada satu atau beberapa kolom pada
suatu table. Syntax :
UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi];
Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu
kondisi tertentu.
4. SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat
dihubungkan dengan tabel yang lainnya.
a. Menampilkan data untuk semua kolom menggunakan asterisk (*) :
SELECT * FROMnamatabel;
12
MODUL IV
Dasar Teori
Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)
a. COUNT
Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel. Contoh :
Perintah untuk menghitung jumlah baris kolom jenis pada tabeljenisfilm :
SELECT COUNT(namafield) FROMnama_tabel;
b . SUM
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel.
Contoh : perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm :
SELECT SUM(namafield) FROMnama_tabel;
c . AVG
Perintah yang digunakan untuk menghitung rata- rata dari nilai suatu kolom pada
tabel. Contoh : perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm:
SELECTAVG(namafield) FROMnama_tabel;
d . MIN
Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada
tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel
jenisfilm:
SELECT MIN(namafield) FROMnama_tabel;
e . MAX
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada
table. Contoh : perintah untuk menampi lkan nilai terbesar dari kolom harga pada table
jenisfilm :
SELECTMAX(namafield) FROMnama_tabel;
13
PATTERN MATCHING (Pencocokan Pola / Karakter)
Fungsi string digunakan untuk menampilkan data yang di dasarkan pada pencarian
dengan karakter. Pada pencarian data digunakan syntax LIKE, pada dasarnya syntax LIKE
hampir sama dengan syntax = .
Bedanya kalau syntax = , maka pencarian karakter harus sesuai dengan kata yang
kita buat tetapi dengan menggunakan LIKE karakter yang akan kita tampilkan tidak harus
lengkap hanya dengan menuliskan salah satu huruf atau kata saja, maka semua data yang
akan kita cari akan ditampilkan.
SQL mempunyai dua symbol khusus yang dipakai untuk pencocokan pola :
1. % : digunakan untuk mencocokkan karakter sebelum atau sesudah tanda %;
2. _ : diguanakan untuk mencari karakter sebanyak jumlah tanda _.
Contoh :
LIKE ‘%GLASGOW%’artinya digunakan untuk mencari data pada kolom tertentu yang
megandung karakter ‘GLASGOW’.
Bentuk umumnya :
SELECT * FROMnama_tabel WHEREnama_kolom LIKE „char%‟;
SELECT * FROMnama_tabel WHEREnama_kolom LIKE „%char‟;
SELECT * FROMnama_tabel WHEREnama_kolom LIKE „%char%‟;
SELECT * FROMnama_tabel WHEREnama_kolom NOTLIKE „%char%‟;
SELECT * FROMnama_tabel WHEREnama_kolom LIKE„_‟;
Praktik 1 !!
1. Buat sebuah nama database dengan nama perdagangan.
2. Buat sebuah table dengan nama barang dimana ketentuannya seperti dibawah ini :
14
4. Tampilkan semua isi record pada table barang.
5. Ubah nama barang DVD Player menjadi TAPE dan stok barang menjadi 25.
6. Tampilkan satu baris / record data yang telah diubah tadi yaitu record dengan nama DVD
Player.
7. Hapus kode barang yang bernama MOUSE.
8. Tampilkan record / data yang mempunyai satuan barang bernilai UNIT.
9. Tampilkan jumlah baris dan kolom dari field kode barang dan nama barang pada table
barang.
10. Tampilkan jumlah stok barang dan jumlah harga barang pada table barang.
11. Tampilkan jumlah rata – rata harga barang pada table barang
12. Tampilkan jumlah stok barang terkecil pada table barang
13. Tampilkan jumlah stok barang terbesar pada table barang
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
15
Praktik 2!
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
17
MODUL V
Dasar Teori
Mengelompokan dengan GROUP BY dan HAVING
Klausa GROUPBYdigunakan untuk melakukan pengelompokkan data.
Syntax :
SELECT field1,SUM(field2) FROMnamatable GROUPBYfield1;
Sebagai contoh, terdapat table barang dengan data sebagai berikut :
KRITERIA DATA
Kriteria dengan HAVING
Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan ditampilkan. Syntax : SELECT
field1,field2,….field-n nama_table GROUP BY nama_field HAVING
FRO
M criteria_agregate_function;
Contoh : FROM barang GROUP BY satuan_barang HAVING
SELECT satuan_barang
SUM(stok_barang)=24;
18
Kriteria dengan WHERE
Pada criteria dengan where pemilihan atau seleksi data dilakukan setelah kata where.
Setelah kata where biasanya diikuti oleh comparison (=,<>,<,>,>,<= atau >=), between,
ini, like/not like atau is null, is not null.
Syntax criteria where dengan comparison :
SELECT field1,field2,…field-n FROMnama_tabel WHEREfield = | <> | < | > | <= | >=;
Syntax criteria where dengan between :
SELECT field1,field2,….field-n FROMnama_tabel WHEREfield BETWEEN….AND…;
Syntax criteria where dengan in :
SELECT field1,field2,-----field-n FROMnama_tabel WHEREfield IN(…,…,…);
Syntax criteria where dengan like / not like :
SELECT field1,field2,….field-n FROMnama_tabel WHEREfield LIKE | NOTLIKE ….;
Pengurutan Data (ORDER BY)
Klausa ORDERBYdigunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai
dengan tipe data yang dimiliki.
Syntax : SELECT field1,field2,…. Field-n FROMnama_tabel ORDERBYnama_field;
Praktik 1!
1. Jika syntax ini : SELECTkode_barang, satuan_barang, SUM(stok_barang) from barang GROUP
BYsatuan_barang. Apa yang akan terjadi ?. Jelaskan!
2. Jika syntax ini diketikkan pada cmd : SELECT nama_barang, satuan_barang,
SUM(stok_barang) GROUPBYsatuan_barang. Apa yang akan terjadi ?. Jelaskan!
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
19
MODUL VI
JOIN
Tujuan :
Setelah menyelesaikan modul ini, Anda diharapkan dapat :
1. Mengenal beberapa operasi join
2. Mampu melakukan operasi join pada beberapa table
Dasar Teori
Join merupakan operasi yang digunakan untuk menggabungkan dua table atau lebih
dengan hasil berupa gabungan dari kolom – kolom yang berasal dari tabel – tabel tersebut.
Pada join sederhana, tabel – tabel digabungkan dan didsarkan pada pencocokan antara kolom
pada tabel yang berbeda. Berikut ini perintah untuk kolom nama_barang, satuan_barang,
harga_barang dari tabel barang dan jumlah terjual dari tabel penjualan :
1. Inner Join
Inner Join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai
dengan syarat dibelakang on (tidak boleh null), dengan kata lain semua data dari tabel kiri
mendapatkan pasangan data dari tabel sebelah kanan. Berikut ini perintah untuk
menampilkan data dari tabel barang dan penjualan dengan syarat berdasarkan kolom
kode_barang.
20
2. Left Join
Left Join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah
left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari tabel
sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangan berupa
nilai NULL. Contoh :
3. Right Join
Right Join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data
dari tabel sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan
pasangannya berupa nilai NULL. Contoh :
21
4. Natural Join
Natural Join digunakan untuk menampilkan semua data dari dua tabel dimana jika
terdapat kolom yang sama, maka yang akan ditampilkan hanya salah satunya saja, yaitu
kolom dari tabel sebelah kiri perintah natural join. Contoh :
Terdapat penggabungan antara Natural Join dengan Left dan Right Join :
Natural Left Join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah natural left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat
data dari tabel sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan
pasangannya berupa nilai NULL. Contoh :
Natural Right Join digunakan untuk menampilkan semua data dari tabel sebelah
kanan perintah natural right join beserta pasangannya dari tabel sebelah kiri. Meskipun
terdapat data dari tabel sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan
dengan pasangannya berupa nilai NULL.
22
Praktik !
23
6. Buat query sehingga didapat tabel seperti berikut ini :
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
24
MODUL VII
Seleksi ini hanya berkisar pada field yang ada pada satu table. Misalkan anda akan
menampilkan nama suplier dan berapa jumlah pasokannya, maka pada kasus seleksi satu
table ini anda tidak bisa melakukannya. Hal ini disebabkan karena nama suplier adalah field
pada table suplier, sedangkan jumlah pasok adalah field pada table pasok. Sintak SQL nya
sebagai berikut :
Seleksi tipe ini memungkinkan anda untuk bebas memilih field mana saja yang anda
ingin tampilkan, asalkan antara field yang satu dengan field yang lain masih berada pada
table table yang saling berelasi. Sintak SQL nya sebagai berikut :
25
UNION
INTERSECT
Intersect merupakan operator yang digunakan untuk memperoleh data dari dua buah
query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan
ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan
datanya harus
sama. Sintak SQL nya sebagai berikut :
26
DIFFERENCE (MINUS)
Difference bertujuan untuk menampilkan data hasil pengurangan dari dua query atau
sub query. Sintak SQL nya sebagai berikut :
DISTINCT / PROYEKSI
Pada dasarnya distinct digunakan untuk menghilangkan nilai ganda. Sintak SQL nya
sebagai berikut :
27
Praktik !
1. Tampilkan berapa kali pembelian per kode barang per kode customer !
2. Tampilkan nama barang, tanggal berapa barang itu dipasok dan berapa jumlah barang
yang dipasok !
3. Tampilkan kode suplier, berapa kali pemasokan dan jumlah pasok . kode yang
ditampilkan adalah ‘s002’(gunakan operasi union) !
4. Tampilkan kode barang dan kode suplier yang memiliki jumlah pasok lebih besar atau
sama dengan 4 (gunakan operasi intersection) !
5. Tampilkan kode barang, banyaknya pemasokan dan jumlah pemasokan untuk kode
barang yang jumlah pemasokannya lebih kecil atau sama dengan 15.(gunakan operasi
minus) !
KESIMPULAN :
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
28
MOUL VIII
ROLLBACK
Adalah perintah yang berfungsi untuk mengendalikan pengeksekusian transaksi yang
membatalkan transaksi yang dilakukan karena adanya kesalahan atau kegagalan pada salah
satu rangkaian perintah.
Praktik !
29
1. Gunakan user / database pembelian yang telah dibuat pada latihan sebelumnya,
kemudian tambahkan sebuah table KARYAWAN.
Column pada table karyawan :
30
LEMBAR KERJA PRAKTIKUM
BASIS DATA II
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
31
MODUL IX
Contoh :
BEGIN
DBMS_OUTPUT.PUT_LINE(‘Belajar Oracle’);
END;
Catatan :
Untuk melihat hasil, setting terlebih dahulu variabel sistem SERVEROUTPUT dengan
menuliskan :
SET SERVEROUTPUT ON
Contoh Lain :
SET SERVEROUTPUT ON
32
DECLARE
teks VARCHAR2 (20);
BEGIN
teks := ‘Belajar Oracle’;
DBMS_OUTPUT.PUT_LINE(teks)
; END;
/
Tipe Data
Numerik
o NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER,
INT, NUMERIC, REAL, SMALLINT
Karakter
o VARCHAR2, CHAR, LONG
DATE
BOOLEAN
ROWID
Tipe Data tambahan :
RECORD
ARRAY
Variable
Adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori
komputer.
Contoh :
DECLARE
X integer;
Alamat varchar2(40);
No_induk char(8);
.....
BEGIN
X := 12;
Alamat := ‘Gelatik Dalam 391, Bandung’;
No_induk := ‘DOG29549’;
END;
Konstanta
Digunakan untuk menyimpan sebuah nilai di memori komputer.Nilai yang disimpan
bersifat tetap (konstan).
Contoh :
33
DECLARE
pi CONSTANT real:= 3.14;
lebar CONSTANT integer := 100;
Komentar
Digunakan untuk memudahkan proses maintenance.
Jenis komentar :
/* ... */ : untuk beberapa baris komentar
-- ... : untuk satu bari komentar
Contoh :
/* Ini adalah komentar Oracle */
-- Ini juga komentar Oracle
KESIMPULAN
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
35
MODUL X
Eksekusi Prosedur
Unutuk melakukan eksekusi terhadap suatu prosedur dari luar blok PL/SQL, kita
harus menggunkan statemen EXECUTE, atau cukup dituliskan dengan EXEC saja. Namun
apabila Anda ingin memanggil prosedur dari dalam blok PL/SQL, maka statemen EXECUTE
tidak perlu di tuliskan. Berikut ini bentuk umumnya :
FUNGSI
Function adalah jenis PL/SQL block yang menghasilkan satu nilai. Secara umum, function
digunakan melakukan perhitungan, mengecek eksistensi dan kevalidan suatu data. Function
bisa dilibatkan dalam expresi. Function bisa disimpan dalam database sebagai object schema,
sehingga suatu function bisa digunakan berulangkali tanpa harus melakukan parsing dan
compile ulang.
36
Ekesekusi Fungsi
Tidak seperti prosedur yang dalam eksekusinya membutuhkan perintah EXECUTE,
pada fungsi kita dapat langsung memasukkan nilainya ke dalam suatu variable yang sama
tipedatanya maupun melalui statemen SQL. Atau dapat juga melalui statemen SQL seperti
yang ditunjukkan oleh kode berikut :
PARAMETER
Parameter diklasifikasikan menjadi tiga jenis, yaitu parameter masukan, keluarn dan
masukan-keluaran.
1. Parameter Masukan
Parameter masukan adalah parameter yang berguna untuk menyimpan nilai yang
digunakn sebagai input di dalam badan prosedur maupun fungsi. Parameter ini
ditandai dengan mode IN.
2. Paramater Keluaran
Parameter keluaran adalah parameter yang menampung nilai hasil dari suatu proses
yang dilakukan dalam sub program.Pada kenyataannya parameter keluaran lebih
sering ditemui di dalam prosedur dari pada didalam fungsi. Parameter ini ditandai
dengan mode OUT.
3. Parameter Masukan – Keluaran
Parameter ini merupakan parameter gabungan dari kedua jenis diatas. Parameter ini
berperan sebagai parameter masukan sekaligus parameter keluaran. Parameter ini
ditandai dengan mode IN OUT.
37
Contoh 1.
Dalam contoh dibawah ini kasus tentang sistem informasi sekolah, yang mana store
procedure yang dibuat akan menangani tentang menghasilkan data siswa yang difilter
berdasarkan kelas.
Penjelasan
Delimiter adalah untuk memberitahu kepada mysql soal delimiter yang digunakan,
secara default menggunakan ; jadi bila ada tanda ; mysql akan mengartikan akhir dari
statement, pada contoh di atas delimiter yang digunakan $$ jadi akhir statementnya
adalah $$
CREATE PROCEDURE adalah header untuk membuat suatu procedure
BEGIN END adalah body dari store procedure, jadi semua sql nya ditulis disini
Contoh pemanggilannya seperi dibawah ini :
Dengan store procedure eksekusi menjadi cepat. Store procedure adalah komponen,
andaikan aplikasi kemudian ditulis dalam bahasa berbeda, tidak ada masalah, karena logika
berada di dalam database bukan dalam aplikasi.
38
Praktik !
1. Buat database dengan nama dbparkir, kemudian aktifkan
2. Buat tabel kendaraan dengan ketentuan sebagai berikut :
3. Memilih delimiter
mysql> delimiter //
4. Menciptakan store procedure
mysql> create procedure p1() select * from kendaraan;//
Keterangan :
p1 = nama procedure
() = daftar parameter
Select * from kendaraan; = body prosedur
5. Memanggil prosedur p1
mysql> call p1();
6. Mengembalikan delimiter dan memulainya
mysql> delimiter ;
mysql> delimiter //
7. Menghapus delimiter
mysql> drop procedure p1;
8. Buat procedure sederhana yang memiliki fungsi untuk menghitung jumlah record
pada tabel kendaraan. Kemudian jumlah kolom tersebut dimasukkan ke dalam
variable param1.
39
LEMBAR KERJA PRAKTIKUM
BASIS DATA II
NAMA TANGGAL
NIM WAKTU
KELAS PERTEMUAN
40
MODUL XI
TRIGGER
Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi
ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada
sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut
sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data.
Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk mengeset dan
mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan
terjaga. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi
karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data.
MEMBUAT TRIGGER
Oracle telah menyediakan statement CREATE TRIGGER untuk membuat sebuah trigger
yang selanjutnya akan diaktivasi berdasarkan event tertentu. Secara umum, event trigger
terbagi menjadi dua, yaitu BEFORE (sebelum) dan AFTER (setelah). Event tersebut
menandakan kapan trigger akan diaktivasi, apakah sebelum ataukah sesudah proses yang
dilakukan di dalam tabel bersangkutan.
Daftar event yang mungkin digunakan untuk mengaktifkan trigger :
41
Untuk mencoba pembuatan trigger pada oracle persiapkan terlebih dahulu user atau database
sebagai berikut ini :
User database : penjualan
Table I : Barang
Colom pada table barang :
Tabel II : Pasok
Column pada table pasok :
42
ALIAS DI DALAM TRIGGER
Di dalam trigger dikenal istilah alias atau referensi, yaitu sejenis variabel yang
menyimpan nilai dari suatu kolom di dalam tabel. Alias tersebut terbagi menjadi dua yaitu
:new dan :old. Alias :new untuk menyimpan nilai terbaru sedangkan alias :old untuk
menyimpan nilai lama.
Ketersediaan Alias Di dalam Trigger :
Pada statement UPDATE, terdapat alias :new dan :old
Pada statement DELETE, hanya terdapat alias :old
Pada statement INSERT, hanya terdapat alias :new
MANAGING TRIGGER
Mengaktifkan atau menonaktifkan trigger.
Syntax :
ALTER TRIGGER nama_trigger ENABLE | DISABLE;
Mengaktifkan atau menonaktifkan semua trigger pada sebuah tabel.
Syntax :
ALTER TABLE nama_tabel ENABLE | DISABLE ALL TRIGGERS;
Menghapus trigger
Syntax :
DROP TRIGGER nama_trigger;
43