DAFTAR ISI
MODUL I PEMBUATAN DAN PEMELIHARAAN TABEL ............................................ 3
MODUL II MANIPULASI DATA ..................................................................................... 10
MODUL III FUNGSI-FUNGSI SQL, PENGURUTAN (SORTING) DATA ................... 16
MODUL IV PENGAMBILAN DATA DARI MULTIPLE TABLE .................................. 26
MODUL V FUNGSI AGGREGATE .................................................................................. 31
MODUL VI SUBQUERIES DAN SET OPERATION ...................................................... 36
MUDUL VII VIEWS DAN PENGANTAR T-SQL ........................................................... 43
MODUL VIII T-SQL Lanjut ............................................................................................... 55
MODUL I
PEMBUATAN DAN PEMELIHARAAN TABEL
Tujuan :
1. Mahasiswa dapat memahami perintah-perintah dalam Data Definition Language (DDL).
2. Memahami perintah CREATE.
3. Memahami perintah ALTER.
4. Memahami perintah DROP.
5. Memahami penggunaan Constraint.
Tugas Pendahuluan :
1. Apa Yang anda ketahui tentang Data Definition Language (DDL)?
2. Apa saja perintah-perintah yang tergolong dalam DDL?
DASAR TEORI
DDL atau Data Definition Language adalah bagian dari SQL yang digunakan untuk
mendifinisikan data dan objek database. Apabila perintah ini digunakan, entri akan dibuat ke dalam
kamus data dari SQL (Octaviani, 2010). Didalam kategori ini terdapat perintah-perintah sebagai
berikut :
Keterangan
CREATE DATABASE
Membuat Database
CREATE TABLE
Membuat tabel
ALTER TABLE
DROP TABLE
Perintah CREATE
Instalasi sistem manajemen (DBMS) pada komputer memungkinkan anda untuk membuat
dan mengelola banyak database independent. Untuk membuat database berikut querinya.
CREATE DATABASE namadatabase
Nama database tidak boleh mengandung spasi dan tidak boleh memiliki nama yang sama
antar database.
Sebelum membuat tabel dalam database pastikan terlebih dahulu database tempat anda
membuat tabel sudah aktif, untuk mengaktifkan database yang anda buat dapat menggunakan
statement USE nm_Databse (Octaviani, 2010). Untuk membuat tabel berikut querinya.
CREATE TABLE nm_tabel
(nm_field1 tipedata1 [NOT NULL | NULL]
[{nm_field2 tipedata2 [NOT NULL | NULL]}])
Nm_tabel adalah nama dari tabel yang akan anda buat, usahakan namanya sesuai dengan
entity yang diwakilinya dan jangan lebih dari 128 karakter. Banyaknya tabel yang dapat ditampung
oleh database dibatasi oleh banyaknya objek dalam databse. Sebuah database setidaknya dapat
menampung 2 Miliar objek termasuk tabel, view (jenis lain tabel), stored procedure, trigger, dan
constraint. Nm_field1, nm_field2 adalah nama field yang harus ada dalam dalam sebuah tabel
yang mewakili element entity tersebut. Tiap field akan menampung data dengan tipe data tertentu
yang ditunjukkan oleh tipedata1, tipedata2 dan seterusnya. Opsi berikutnya adalah constraint
(syarat) masing-masing tabel apakah boleh kosong (NULL) atau harus diisi (NOT NULL). Nilai
default dari constraint ini adalah NULL yang artinya field tersebut boleh kosong atau tidak diisi
(Alam, 2005).
Constrains
Constaraint merupakan batasan atau aturan yang ada pada tabel. SQL menyediakan
beberapa tipe constaint berikut (Octaviani, 2010) :
1. NOT NULL merupakan suatu kolom yang mendifinisikan dengan constraint
NOT NULL. Kolom yang berfungsi sebagai kunci primer (Primary Key)
otomatis tidak boleh NULL.
2. UNIQUE mendifinisikan suatu kolom bersifat unik, artinya antara satu data
dengan data lain namanya tidak boleh sama, misal alamat email.
3. PRIMARY KEY Constaint PRIMARY KEY membentuk key yang unik untuk
suatu tabel.
4. FOREIGN KEY Constraint didefinisikan pada suatu kolom yang ada pada suatu
tabel, dimana kolom tersebut juga dimiliki oleh tabel yang lain sebagai suatu
PRIMARY KEY bisa digunakan untuk menghubungkan antara dua tabel.
5. CHECK constraint yang satu ini mendefinisikan sebuah kondisi untuk data agar
dapat masuk dalam field artinya tiap pemasukan data atau editing terhadap data
record, field yang kita masukkan akan selalu diperiksa apakah isinya ada diantara
data-data yang kita masukkan, jika tidak ada maka SQL akan menampilkan
pesan ERROR.
Program Studi Teknik Informatika
6. DEFAULT digunakan untuk mendefinisikan nilai default dari field yang mana
ketika ada baris baru yang dimasukkan kedalam tabel nilai default dari field akan
digunakan apabila tidak ada nilai yang diberikan padanya.
7. IDENTITY hanya menampung nilai bertipe data integer. Standar property ini
sudah ditentukan oleh sistem.
Perintah ALTER
Setelah membuat tabel dalam database, kita dapat memodifikasi field pada tabel yang kita
buat. Dengan perintah ALTER kita dapat membuat perubahan pada struktur tabel tanpa menghapus
dan menciptakan. Queri ALTER :
Perintah DROP
Perintah terakhir dari Data Definition Language, DROP memungkinkan kita untuk
menghapus seluruh objek dalam database dari DBMS. Gunakan perintah ini dengan hati-hati, perlu
diingat bahwa perintah DROP akan menghapus data keseluruhan struktur dari database. Querinya
sebagai berikut.
DROP DATABASE namadatabase (Untuk menghapus database)
KEGIATAN PRAKTIKUM
Untuk lebih memahami tentang DDL (Data Definition Language) maka buatlah database
dengan nama Toko yang mempunyai dua tabel yaitu tabel Barang dan tabel Pembelian,
isilah kedua tabel sesuai dengan ketentuan tabel dibawah ini !
Create database
CREATE DATABASE Toko
Create table
Untuk membuat tabel Barang.
Tabel 1.1 Tabel Barang
Nama Field
Tipe data
ID_Barang
Varchar
Nama_Barang
Varchar
Tanggal_terima
Datetime
Stok_Barang
Int
Tipe Data
ID_Pembeli
Varchar
ID_Barang
Varchar
Tanggal_Beli
Datetime
Jumlah_Pembelian
Int
Nama_Pembelian
Varchar
not null,
Karena kita belum menambahkan Foreign key pada saat kita membuat tabel Pembelian,
maka kita dapat menambahkan Foreign key dengan perintah ALTER seperti queri dibawah ini.
ALTER TABLE Pembelian
ADD CONSTRAINT
FK_Pembelian_RELATION_Barang foreign
key (ID_Barang)
REFERENCES Barang (ID_Barang)
Pada queri alter diatas, kita akan menambahkan foreign key pada ID_Barang
menggunakan perintah ALTER TABLE, tetapi kita juga bisa langsung memasukkan foreign key
pada saat CREATE TABLE Pembelian.
Alter
Contoh penggunaan Alter.
Menambahkan field Alamat_Pembeli pada tabel Pembelian.
ALTER TABLE Pembelian
ADD Alamat_Pembeli varchar(70)
Merubah tipe data field (kolom) Nama_Barang dari tipe data Varchar (255) menjadi tipe
data Int pada tabel Barang, pada gambar dibawah ini merupakan gambar saat field Nama_Barang
belum dirubah tipe datanya.
Gambar 1.5 Tampilan sebelum merubah Nama Barang pada tabel Barang.
Setelah menuliskan queri diatas, maka anda bisa melihat hasilnya pada gambar dibawah ini!
Gambar 1.6 Tampilan sesudah merubah Nama Barang pada tabel Barang.
Drop
Menghapus tabel Barang.
DROP TABLE Barang
TUGAS
1. Buatlah database baru dengan perintah SQL dengan nama Mahasiswa yang memiliki dua
tabel yaitu tabel Jurusan dan tabel Biodata!
2. Isikan kedua tabel dengan field masing-masing dibawah ini!
Tabel Jurusan : KodJur, NamaJur, Ketua_jurusan
Tabel Biodata : NoMhs, KodJur, Nama, Nilai, Alamat, JK
3. Tentukan tipe data masing-masing field, Primary key serta Foreign Key nya agar kedua
tabel saling berhubungan!
MODUL II
MANIPULASI DATA
Tujuan :
1. Mahasiswa dapat melakukan manipulasi terhadap suatu data yang tersimpan dalam basis
data.
2. Memahami perintah INSERT.
3. Memahami perintah UPDATE.
4. Memahami perintah DELETE.
Tugas Pendahuluan :
1. Apa yang anda ketahui tentang DML?
2. Sebutkan perintah-perintah SQL yang tergolong dalam DML dan jelaskan perbedaan antar
DML dan DDL!
3. Apa yang anda ketahui tentang perintah INSERT, UPDATE, dan DELETE?
4. Sebutkan macam-macam klausa dan operator pada perintah SELECT!
DASAR TEORI
DML (Data Manipulation Language) adalah bahasa yang memungkinkan pengguna
mengakses atau memanipulasi data seperti yang diatur oleh model data, manipulasi data adalah
(Octaviani, 2010):
1. Pengambilan informasi yang disimpan dalam basis data.
2. Penempatan informasi baru dalam basis data.
3. Penghapusan informasi dari basis data.
4. Modifikasi informasi yang disimpan dalam basis data.
DML (Data Manipulation Language) merupakan bahasa yang bertujuan memudahkan
pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data, ada 2 jenis DML,
yaitu (Octaviani, 2010):
1. Prosedural, yang mensyaratkan agar pemakai menentukan data apa yang ditentukan serta
bagaimana cara mendapatkannya.
2. Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa
menyebutkan bagaimana cara mendapatkannya.
Yang termasuk dalam perintah-perintah dalam DML (Data Manipulation Language) adalah
sebagai berikut:
1. INSERT, menyisipkan atau menambahakan data baru ke dalam tabel.
2. SELECT, mengambil atau menampilkan data dari tabel, statement ini adalah statement
dasar yang digunakan untuk mengambil informasi dari database. Dengan statement ini user
Program Studi Teknik Informatika
10
dimungkinkan untuk mengambil data dari satu tabel atau lebih bahkan dari database
lainnya, hasil dari statement ini dikenal sebagai result set yang berbentuk tabel juga.
3. UPDATE, memperbaharui data yang lama ke dalam data yang baru.
4. DELETE, menghapus data dalam tabel.
Untuk lebih memahami perintah-perintah DML (Data Manipulation Language). Berikut ini
adalah penjelasan dalam praktikum untuk masing-masing dari pritah-perintah di atas.
KEGIATAN PRAKTIKUM
Pernyataan INSERT
Setelah tabel dibuat beserta constraint-constraintnya bila ada, maka tabel siap digunakan
untuk menampung data. Perintah wajib pada T-SQL untuk memasukkan data ke dalam tabel adalah
perintah INSERT. Kita akan memasukkan data pada tabel Barang dan tabel Pembelian.
Bentuk perintah INSERT adalah sebagai berikut :
INSERT INTO table_name
(column1,column2,column3,...)
VALUES (value1,value2,value3,...);
Dan data seterusnya silahkan masukkan sendiri dengan petunjuk queri diatas berdasarkan
data pada gambar dibawah ini, lihatlah hasilnya dibawah ini!
11
Kolom yang tidak disebutkan pada pernyataan INSERT secara otomatis akan diisi dengan
NULL. Pada Stok_Barang nilainya akan terisi 0 karena pada saat kita membuat tabel Barang kita
memberikan nilai Stok_Barang itu default, sehingga pada saat memasukkan data kita tidak
memberikan nilai pada Stok_Barang tersebut.
Memasukkan data pada tabel Pembelian.
INSERT INTO Pembelian
(ID_Pembeli,ID_Barang,Tanggal_Beli,Nama_Pembeli,
Jumlah_Pembelian)
VALUES ('P01','BRG03','2011-04-07','Jaka Widana',2);
Dan data seterusnya silahkan masukkan sendiri dengan petunjuk queri diatas berdasarkan
data pada gambar dibawah ini, lihatlah hasilnya dibawah ini!
Seperti telah dijelaskan bahwa perintah INSERT selain dapat menambahkan satu buah
record, juga bisa langsung menambahkan beberapa record sekaligus dalam tabel, untuk
mempraktekkannya buatlah satu tabel lagi pada database Toko dengan nama tabel Pelanggan
yang memiliki field ID_Pelanggan dan Nama_Pelanggan. Untuk membuat tabel Pelanggan
gunakan queri dibawah ini:
CREATE TABLE Pelanggan (ID_Pelanggan varchar
(10), Nama_Pelanggan varchar(80))
Setelah tabel Pelanggan dibuat, kemudian ketikkan queri dibawah ini untuk mengisi tabel
Pelanggan dengan jumlah pembelian=1.
12
Untuk memeriksa kebenarannya, gunakan queri dibawah ini dan lihat hasilnya !
SELECT * FROM Pelanggan
Pernyataan UPDATE
Pernyataan UPDATE digunakan untuk memodifikasi data dalam tabel database.
UPDATE namatabel
SET namakolom=nilai_baru
WHERE namakolom= nilai
13
Pernyataan DELETE
Pernyataan DELETE digunakan untuk menghapus baris pada tabel, bentuk querinya sebgai
berikut.
DELETE FROM namatabel
WHERE namakolom= values
Pada contoh ini kita akan menghapus field dengan ID_Barang=BRG01 pada tabel
Pembelian. Untuk mempraktekkannya tulislah queri dibawah ini!
DELETE FROM Pembelian
WHERE ID_Barang='BRG03'
Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpa
menghapus tabel, maka klausa WHERE tidak perlu disebutkan, berikut querinya.
DELETE FROM namatabel
atau
DELETE * FROM namatabel
14
TUGAS
1. Isilah tabel jurusan dan tabel Biodata yang anda buat dengan ketentuan sebagai berikut:
Misalkan isi tabel Jurusan:
*KodJur
NamaJur
Ketua Jurusan
KD01
Sistem Informasi
Harnaningrum,S.Si
KD02
Teknik Informatika
EnnySela,S.Kom.,M.Kom
KD03
Tekhnik Komputer
Berta Bednar,S.Si,M.T.
Nama Siswa
Alamat
Nilai
210089
KD01
Rina Gunawan
Denpasar
60
210090
KD03
Gani Suprapto
Singaraja
85
210012
KD02
Alexandra
Nusa dua
65
210099
KD02
Nadine
Gianyar
90
210002
KD01
Rizal Samurai
Denpasar
95
Update Nama Siswa pada tabel Biodata Rina Gunawan menjadi Rina Gunawan
Astuti!
15
MODUL III
FUNGSI-FUNGSI SQL, PENGURUTAN (SORTING) DATA
Tujuan:
1. Mahasiswa dapat memahami pengurutan fungsi-fungsi SQL.
2. Memahami single row functions dalam SQL.
3. Memahami character functions dalam SQL.
4. Memahami suatu fungsi pengurutan data.
5. Memahami klausa ORDER BY.
Tugas Pendahuluan:
1. Apa yang anda ketahui tentang fungsi-fungsi SQL?
2. Sebutkan macam-macam dari fungsi SQL!
3. Apa saja yang tergolong dalam single row function?
DASAR TEORI
Single row functions
Secara garis besar function dibagi menjadi dua bagian yaitu: Single row functions dan
group function, perbedaan kedua fungsi ini yaitu pada Single row functions memproses satu baris
data pada satu proses dan memberikan satu output untuk setiap satu baris data masukan.
Salah satu contoh single-row functions adalah UPPER yang berfungsi mengubah data
input menjadi huruf kapital. Sedangkan group function memproses multi-row data pada saat
bersamaan dan memberikan satu output.
Contoh group function adalah SUM untuk menghitung nilai total. Namun yang akan kita
bahas pada pelajaran ini yaitu Single row function. Berdasarkan tipe data yang diproses, single-row
function dibagi menjadi lima jenis, yaitu (Octaviani, 2010):
1. Character Function digunakan untuk memproses data karakter.
2. Numeric Function digunakan untuk memproses data numerik.
3. Date Function digunakan untuk memproses data tanggal.
4. Convension Function digunakan untuk melakukan konversi data.
5. General Function merupakan function yang bisa digunakan untuk memproses semua.
Character functions
Program Studi Teknik Informatika
16
Fungsi karakter menerima input berupa karakter dan mengembalikan nilai yang bisa
berupa karakter maupun angka. Beberapa contoh penggunaan dalam character function.
LOWER
UPPER
SUBSTRING
: Mengambil karakter mulai dari posisi m sebanyak n, jika n tidak dituliskan, maka
semua karakter mulai posisi m sampai terkhir akan diambil.
Queri :
SELECT SUBSTRING ('character',
nilai_character_awal, Jumlah_karakter) FROM
nm_tabel WHERE nm_filed='character'
LTRIM
RTRIM
RIGHT
: Fungsi ini akan mengembalikan nilai string yang berasal dari sebelah kanan
string dengan jumlah yang telah ditentukan.
Queri :
SELECT RIGHT ( String, jumlah karakter)
LEFT
: Fungsi ini mengembalikan string sepanjang (pjg) karakter dari sebelah kiri
strings.
Queri :
SELECT LEFT ( String, jumlah karakter)
CHAR
LEN
: Fungsi ini mengembalikan nilai integer tentang panjang string x termasuk spasi
kosong.
Queri :
17
SPACE
REPLICATE
: Fungsi ini digunakan untuk membuat replika dari string denga jumlah tertentu.
Queri :
SELECT REPLICATE (character,jumlah karakter)
Sorting data
Pada SQL sorting digunakan untuk mengurutkan data, terdapat dua macam metode untuk
mengurutkan data, yaitu :
1. ASC digunakan untuk urutan naik yang secara default digunakan.
2. DESC digunakan untuk mengurutkan data secara menurun.
Klausa ORDER BY
Penggunaan klausa Order By harus dibarengi dengan Queri ASC atau DESC karena klausa
ORDER BY ini digunakan untuk mengurutkan data, jika kita ingin menampilkan data dalam tabel
berdasarkan kriteria yang kita tentukan, queri nya sebagai berikut(Octaviani, 2010):
SELECT * FROM namatabel
ORDER BY namakolom ekspresi (ASC/DESC)
KEGIATAN PRAKTIKUM
Untuk lebih memahami fungsi-fungis SQL, tulislah statement-statement berikut pada
database Toko yang anda buat!
Pernyataan Single row functions
Contoh
1. LOWER
Merubah nama MOTOROLA menjadi huruf kecil semua.
18
SELECT LOWER('MOTOROLA') AS
Huruf_Kecil
FROM Barang
WHERE Nama_Barang='MOTOROLA'
2. UPPER
Merubah nama Samsung menjadi huruf besar semua.
SELECT UPPER('Samsung') AS Huruf_Besar
FROM Barang
WHERE Nama_Barang='Samsung'
3. SUBSTRING
Mengambil kata OTORO dari MOTOROLA yang dimulai dari huruf kedua sebanyak lima
huruf.
SELECT SUBSTRING('MOTOROLA', 2, 5) AS
Ambil_Karakter FROM Barang
WHERE Nama_Barang='MOTOROLA'
19
4. LTRIM
Menghilangkan spasi di dalam kurung pada sebelah kiri.
SELECT LTRIM ('
Samsung') AS
Hapus_Spasi
5. RTRIM
Menghilangkan spasi di dalam kurung pada sebelah kanan.
SELECT LTRIM ('MOTOROLA
') AS
Hapus_Spasi
6. RIGHT
Mengambil karakter sebanyak 7 karakter dari kata David tusanto dari sebelah kanan.
SELECT RIGHT ('David Yusanto',7) AS
Ambil_karakter
7. LEFT
Mengambil karakter sebanyak 8 karakter dari kata David tusanto dari sebelah kiri.
20
8. CHAR
Mengubah kode ASCII menjadi huruf d.
SELECT CHAR (100) AS Kode_ASCII
9. LEN
Menghitung karakter dari kata Merlita Yonanda termasuk spasinya.
SELECT LEN ('Merlita Yonanda') AS Hitung_Karakter
10. REVERSE
Membalik kata Liya Hilwa.
SELECT REVERSE ('Liya Hilwa') AS Balik_Kata
21
11. SPACE
Memberikan spasi sebanyak 40 spasi.
SELECT SPACE (40) AS Spasi
Pernyataan ORDER BY
Menampilkan data pada tabel Barang dengan urutan ASC atau terurut secara abjad.
SELECT * FROM Barang ORDER BY Nama_Barang ASC
Menampilkan data pada tabel Barang dengan urutan DESC atau terurut secara abjad terbalik.
SELECT * FROM Barang ORDER BY Nama_Barang DESC
22
UPPER
Menampilkan Nama_Pembeli yang mempunyai huruf a di akhir namanya dan ID_Barang dan
Merubah smua nama pembeli pada tabel Pembelian menjadi huruf kapital berdasarkan ID_Barang.
FROM
Pembelian
WHERE
Nama_Pembeli
like
'%a%'
ORDER BY ID_Barang
SUBSTRING
Mengambil huruf dari field Nama_Barang yang dimulai dari huruf ke dua sebanyak empat huruf
yang memiliki huruf a berdasarkan ID_Barang pada tabel Barang
23
RIGHT
Mengambil hurus dari field Nama_Barang yang dimulai dari kanan sebanyak empat huruf
berdasarkan ID_Barang pada tabel Barang.
SELECT RIGHT (Nama_Barang,4) AS Ambil_karakter
FROM Barang ORDER BY ID_Barang
LEN
Menampilkan Jumlah karakter dari Nama Pembeli dan menampilkan Nama_Pembeli berdasarkan
ID_Pembeli pada tabel Pembelian.
SELECT LEN (Nama_Pembeli) AS
Jumlah_Karakter,Nama_Pembeli AS Pembeli FROM
Pembelian ORDER BY ID_Pembeli
Program Studi Teknik Informatika
24
TUGAS
Dengan database Mahasiswa.
1. Buatlah perintah SQL menggunakan klausa Order By tanpa memberikan klausa ASC dan
DESC pada database yang anda buat !
2. Buatlah perintah SQL dengan klausa Order by !
3. Buatlah perintah SQL untuk menampilkan nama mahasiswa berdasarkan urutan abjad
terbalik dan nilai secara terurut.
25
MODUL IV
PENGAMBILAN DATA DARI MULTIPLE TABLE
Tujuan :
1. Mahasiswa memahami perintah-perintah SQL untuk pengambilan data dari multiple tabel.
2. Memahami tipe-tipe join.
3. Memahami tentang cartesian product.
4. Memahami tentang penggabungan tabel.
5. Memahami bagaimana mengambil data dari joined table.
Tugas Pendahuluan :
1. Apa yang anda ketahui tentang JOIN?
2. Sebutkan macam-macam JOIN pada tabel!
3. Apakah perbedaan Left JOIN dengan Right JOIN?
DASAR TEORI
Tipe-tipe join
Di dalam database, ada kalanya kita membutuhkan data dari beberapa tabel yang saling
berhubungan. Untuk mendapatkan data dari beberapa tabel tersebut dapat digunakan perintah JOIN
pada perintah SQL (Alam, 2005).
Pada SQL, perintah join ada beberapa macam yaitu :
Inner Join
Outer Join
Left Join
Right Join
Cartesian Products
Cartesian Product kadangkala disebut juga sebagai Cross Join. Bila menggunakan Cross
Join, maka hasil dari Cross Join akan menciptakan hasil yang didasarkan pada semua kemungkinan
kombinasi baris dalam kedua set data. Dengan demikian, jumlah baris yang dikembalikan adalah N
x M, dimana N adalah jumlah baris dalam kumpulan data A dan M jumlah baris dalam kumpulan
data B. Jelas, jumlah baris dalam Cross Join dapat menjadi sampah (Alam, 2005). Bentuk perintah
dari Cross Join adalah :
26
Penggabungan tabel
Selain menggunakan cara konvensional, pengambilan data dan penampilan informasi dari
dua tebel dapat juga dilakukan dengan perintah operator JOIN. Fungsi dari operator ini adalah
untuk menggabungkan data-data dari dua buah tabel atau lebih. Operator JOIN ini berlaku pada
tabel biasa ataupun VIEW. Pada dasarnya ada tiga macam operasi JOIN menggunakan operator
JOIN (Octaviani, 2010). Berikut akan dijelaskan masing-masing.
2. Outer Join
Pada Outer JOIN ini data pada tabel pertama tetap diikutkan walaupun tidak
memiliki hubungan apapun pada tabel kedua. Ada dua macem Outer JOIN yaitu Left Outer
JOIN dan Right Outer JOIN.
Left Outer JOIN akan menampilkan data pada tabel kiri walaupun tidak memiliki
relasi pada tabel di bagian kanan, bentuk querinya sebagai berikut.
SELECT field1, field2, fieldn
FROM tabel1
LEFT JOIN tabel2 ON tabel1.key = tabel2.key
27
Right Outer JOIN akan menampilkan data pada tabel disebelah kanan walaupun
tidak mempunyai data yang berhubungan dengan tabel disebelah kirinya. Bentuk
querinya sebagai berikut.
SELECT field1, field2, fieldn
FROM tabel1
RIGHT JOIN tabel2 ON tabel1.key = tabel2.key
KEGIATAN PRAKTIKUM
Agar lebih memperdalam pemahaman kita tentang fungsi-fungsi SQL diatas, silahkan coba
Queri dibawah ini pada database Toko yang anda buat.
Inner Join
SELECT
Barang.ID_Barang,Pembelian.ID_Pembeli,Pembelian.Nama_Pembeli,
Barang.Nama_Barang
FROM Barang INNER JOIN Pembelian ON
Barang.ID_Barang=Pembelian.ID_Barang
Outer Join
Untuk Left Join
SELECT Barang.ID_Barang,Pembelian.ID_Pembeli,
Pembelian.Nama_Pembeli,Barang.Nama_Barang
FROM Barang LEFT JOIN Pembelian ON
Barang.ID_Barang=Pembelian.ID_Barang
28
Cartesian Products
SELECT Barang.ID_Barang,Pembelian.ID_Pembeli,
Pembelian.Nama_Pembeli,Barang.Nama_Barang
FROM Barang CROSS JOIN Pembelian
29
TUGAS
1. Cobalah masing-masing perintah join yang sudah anda praktikkan dengan menggunakan
data base Mahasiswa yang anda buat!
2. Buatlah kesimpulan tentang perbedaan klausa antaran Right join dan Left join!
30
MODUL V
FUNGSI AGGREGATE
Tujuan :
1. Mahasiswa mampu memahami pengambilan data dari basis data menggunakan fungsifungsi aggregate.
2. Mamahami fungsi-fungsi aggregate.
3. Memahami klausa GROUP BY.
4. Memahami klausa HAVING.
Tugas Pendahuluan :
1. Sebutkan macam-macam fungsi yang ada pada SQL!
2. Apa yang anda ketahui tentang Fungsi Aggregate?
3. Sebutkan pembagian fungsi-fungsi aggregate!
DASAR TEORI
Fungsi-Fungsi Aggregate
Function atau fungsi dalam perintah SQL digunakan untuk menghasilkan sebuah nilai atau
output. Berikut ini merupakan fungsi-fungsi Aggregate.
1. SUM
Untuk menjumlahkan suatu kolom tertentu yang telah didefinisikan dalam perintah select.
Queri :
SELECT SUM (nama_kolom) FROM nama_tabel
2. COUNT
Untuk menghitung jumlah baris dalam sebuah tabel.
Queri :
SELECT COUNT (nama_kolom) FROM nama_tabel
3. AVG
Untuk menghitung nilai rata-rata dari suatu kolom tertentu yang telah definisikan dalam
perintah select.
Queri :
SELECT AVG nama_kolom FROM nama_tabel
4. MIN
Untuk mengetahui nilai terkecil dari sebuah kolom tertentu dalam perintah select.
Queri :
SELECT MIN nama_kolom FROM nama_tabel
31
5. MAX
Untuk mengetahui nilai terbesar dari sebuah kolom tertentu dalam perintah select.
Queri :
SELECT MAX nama_kolom FROM nama_tabel
Klausa GROUP BY
Dalam SQL terdapat banyak kata kunci yang digunakan untuk melengkapi statement
SELECT untuk meperoleh tampilan data yang dikehendaki, diantaranya yaitu GROUP BY.
GROUP BY ini merupakan kata kunci yang digunakan untuk mengelompokkan satu atau lebih
field yang memiliki nilai yang sama untuk membentuk satu kelompok.
Queri :
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
HAVING
Kata kunci ini tidak termasuk fungsi, tetapi kata kunci ini berfungsi untuk melengkapi
statement SELECT. Kegunaannya adalah mendefinisikan sebuah kondisi yang kemudian
diterapkan pada sekelompok data pada beberapa field yang kemudian ditampilkan sebagai hasil
queri. Kata kunci ini memiliki kesamaan fungsi dengan WHERE (Octaviani, 2010).
Queri :
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;
KEGIATAN PRAKTIKUM
Untuk lebih memahami fingsi-fungsi Aggregate cobalah Queri dibawah ini pada database
Toko yang anda buat!
1. SUM
Menjumlahkan jumlah pembelian pada tabel Pembelian.
32
Pembelian
2. COUNT
Menjumlahkan jumlah data pada tabel Barang.
SELECT Count(*) AS Jumlah_Data
FROM
Barang
3. AVG
Menampilkan nilai rata-rata Jumlah pembelian pada tabel Pembelian.
SELECT avg (Jumlah_Pembelian) AS NilaiRata_Rata
FROM
Pembelian
4. MIN
Menampilkan nilai minimal Stok barang pada tabel Barang.
SELECT min (Stok_Barang) AS Stok_Minimal
FROM
Barang
33
5. MAX
Menamapilkan nilai maksimal Stok barang pada tabel Barang.
SELECT max (Stok_Barang) AS Stok_Maksimal
FROM
Barang
6. GROUP BY
Menampilkan nama barang serta jumlahnya berdasarkan Nama barang pada tabel Barang
SELECT
FROM Barang
GROUP BY Nama_Barang
7. HAVING
Menampilkan Stok barang dan jumlahnya berdasarkan stok barang yang lebih dari satu
pada tabel barang, pada kondisi ini stok barang pada tabel Barang belum kita isikan,
sehingga stok barang akan berjumlah 0 dan jumlah barang ada 6
Program Studi Teknik Informatika
34
SELECT
FROM Barang
GROUP BY Stok_Barang HAVING
TUGAS
1. Buatlah perintah SQL yang menggunakan fungsi Aggregate (Masing-masing 1)!
2. Buatlah perintah SQL dengan klausa Order By, Group By, dan Having!
35
MODUL VI
SUBQUERIES DAN SET OPERATION
Tujuan :
1. Mahasiswa dapat memahami dan membuat subqueri serta penggunaan set operation dalam
SQL.
2. Memahami tentang subqueries dan dapat menerapkan subqueries.
3. Memahami penggunaan operator UNION.
4. Memahami penggunaan operator INTERSECT.
5. Memahami penggunaan operator EXCEPT.
Tugas Pendahuluan
1. Apa yang anda ketahui tentang subqueries?
2. Apa perbedaan antara subqueri dengan queri biasa?
DASAR MATERI
Subqueries
Subqueries merupakan perintah SQL yang terdiri dari lebih dari satu perintah SQL dan
digunakan untuk mengambil data dari lebih dari satu tabel. Subqueri biasanya terdiri dari dua
perintah SQL. Perintah SQL yang pertama disebut dengan perintah SQL utama dan perintah SQL
kedua disebut subqueri. Untuk lebih jelasnya mengenai subqueri berikut querinya (Octaviani,
2010) :
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list
FROM table);
Operator UNION
Operator UNION digunakan untuk mendapatkan himpunan gabungan dari dua buah
himpunan yang ada. Anggota himpunan ini adalah anggota dari kedua himpunan yang ada. Bila
anda menggabungkan dua tabel maka yang anda dapatkan adalah semua field dari kedua tabel
tersebut(Octaviani, 2010). Querinya sebagai berikut :
36
Kita misalkan pada database Toko mempunyai tabel bernama Barang dan Barang1
dengan nama field kedua tabel adalah sama yaitu ID_Barang, Nama_barang, Tanggal_terima,
Stok_Barang, maka untuk menampilkan semua data pada tabel barang dan barang1 hanya
menggunakan Queri berikut :
SELECT Nama FROM Brang
UNION
SELECT Nama FROM Barang1
Operator INTERSECT
Intersect merupakan operator
queri dimana data yang ditampilkan adalah yang memenuhi kedua queri tersebut dengan ketentuan
jumlah, nama, dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama
(Octaviani, 2010). Querinya sebgai berikut :
SELECT field1, field2, . field_n
FROM tables
INTERSECT
SELECT field1, field2, . field_n
FROM tables;
Operator EXCEPT
Except merupakan operator yang memiliki fungsi untuk mengembalikan sekumpulan nilai
yang ada di tabel pertama, tetapi tidak ada pada tabel kedua(Alam, 2005). Querinya sebgai berikut.
SELECT field1, field2, . field_n
FROM tables
EXCEPT
SELECT field1, field2, . field_n
FROM tables;
Program Studi Teknik Informatika
37
KEGIATAN PRAKTIKUM
Untuk meningkatkan pengetahuan tentang subqueri dan setoperation, cobalah statement
queri dibawah ini pada databse Toko yang anda buat.
Pernyataan Subqueri
Menampilkan ID_Barang, Tanggal_Beli, Nama_Pembeli, dan Jumlah_Pembelian dimana jumlah
pembeliannya yang terbanyak pada tabel Pembelian.
SELECT ID_Barang, Tanggal_Beli, Nama_Pembeli, Jumlah_Pembelian
FROM Pembelian
WHERE Jumlah_Pembelian =(SELECT max (Jumlah_Pembelian)
FROM Pembelian)
38
Operator UNION
Menampilkan Nama_Pembeli, dan Jumlah_Pembelian pada tabel Pembelian dan Nama_Barang,
Stok_Barang pada tabel barang.
SELECT Nama_Pembeli,Jumlah_Pembelian
FROM Pembelian
UNION SELECT Nama_Barang,Stok_Barang FROM Barang
Gambar 6.4 Hasil UNION pad tabel Pembelian dan tabel Barang.
Menampilkan
Nama_Pembeli,
dan
Jumlah_Pembelian
pada
tabel
Pembelian
dan
39
Gambar 6.5 Hasil UNION ALL pada tabel Pembelian dan tabel Barang.
INTERSECT
SELECT ID_Barang FROM Barang
WHERE Stok_Barang <6 INTERSECT SELECT ID_Barang
FROM Pembelian
40
Barang
INTERSECT
SELECT *FROM
WHERE
Barang
EXCEPT
SELECT ID_Barang FROM Barang
EXCEPT SELECT ID_Barang FROM Pembelian
Gambar 6.9 Hasil dari EXCEPT pada tabel Barang dan tabel Pembelian.
41
TUGAS
1. Buatlah Queri SQL masing-masing pada database Mahasiswa dengan menggunakan
subqueries dan setoperation!
2. Perhatikan outputnya dan buatlah kesimpulan mengenai perbedaan antara queri masingmasing!
42
MUDUL VII
VIEWS DAN PENGANTAR T-SQL
Tujuan :
1. Mahasiswa dapat konsep penggunaan view dalam basis data serta memahami suatu fungsi
dalam transact-sql (programmable objects).
2. Memahami penerapan konsep view dalam SQL.
3. Memahami pembuatan view.
4. Memahami modifikasi view.
5. Memahami penggunaan variabel dalam T-SQL.
6. Mamahami penggunaan flow elements dalam T-SQL.
7. Mamahami penggunaan temporary table.
Tugas Pendahuluan :
1. Apa yang anda ketahui tentang View?
2. Apa yang anda ketahui tentang T-SQL (Transact SQL)?
DASAR TEORI
Konsep view
View merupakan tabel yang tidak tampak alias hanya dimemory saja, view sering
digunakan oleh para pengembang database untuk mempermudah menampilkan data dengan kriteria
tertentu yang diambil dari satu atau beberapa tabel sekaligus, selain menampilkan hasil view juga
dapat digunakan sebagai sumber data bagi queri. View juga berguna untuk membatasi akses
database, membuat queri kompleks secara mudah, mengizinkan independensi data dan untuk
menampilkan view (pandangan) dari data yang berbeda dari data yang sama .View sering juga
disebut Virtual tables (Octaviani, 2010).
Pembuatan view
Untuk membuat view gunakan queri dibawah ini:
CREATE VIEW nm_view[(daftar_field)]
[WITH{ENCRIPTION | SCHEMABINDING | VIEW_METADATA]
AS statement_select
[WITH CHECK OPTION]
Modifikasi view
Program Studi Teknik Informatika
43
Sama seperti halnya objek database, view juga dapat diedit dengan perintah ALTER
VIEW. Querinya sebagai berikut.
ALTER VIEW nm_view
AS
SELECT field1, field2, filed3, field....n
FROM table1, table2, table3, table...n
WHERE table1(key) = table2(key)
Sedangkan untuk menghapus view yang sudah tidak diperlukan kita dapat menggunakan
queri sebagai berikut:
DROP VIEW nm_view
Variabel
Sama seperti bahasa pemrograman lainnya, bahasa T-SQL juga memerlukan variable
dalam scriptnya, bahkan dalam sebuah statement SELECT juga dapat diberi variable. Bila pada
bahasa pemrograman lainnya variabel dideklarasikan terlebih dahulu, pada T-SQL juga demikian.
Deklarasi variabel untuk T-SQL menggunakan kata kunci DECLARE (Octaviani, 2010).
Bentuknya adalah sebagai berikut.
DECLARE nm_var tipe_var;
Tipe data varabel identik dengan tipe data field, hal yang perlu diingat adalah setiap
varabel pada T-SQL didahului oleh @. Seperti halnya pada bahasa pemrograman umumnya, tiap
variabel pasti memiliki ruang lingkup tersendiri. Pada ruang lingkupnya variabel dapat diakses dan
dimanipulasi. Aturan pada T-SQL adalah varabel yang dideklarasikan pada sebuah batch hanya
berlaku untuk batch tersebut, tidak dapat diakses oleh batch lainnya meskipun pada satu file.sql.
Flow elements
T-SQL memiliki statement-statement untuk mengatur jalannya alur program. Statementstatement tersebut adalah sebagai berikut :
44
IF
Ini adalah statement pengendali alur program yang paling umum dan sangat sering digunakan
terutama pada bahasa-bahasa pemrograman lainnya. Bentuk IF yang paling sederhana adalah
sebagai berikut:
IF kondisi
Statement
Pada contoh script dibawah ini, jika kondisi yang ada setelah IF bernilai False maka
statement yang ada dibawahnya akan dihindari atau tidak dilaksanakan.
IF 2=4
Print
Benar
Print
Hasilnya yang dicetak adalah Salah, Salah
karena 2 tidak sama dengan 4.
Begin...End
Kadangkala statement yang akan dikerjakan apabila kondisi pada if mengembalikan nilai
true lebih dari satu. Jika statement yang menyertai IF lebih dari satu maka digunakan kata kunci
Begin untuk menandai statement End untuk menandai akhir statement. Begin dan End diperlukan
supaya SQL Server mengetahui bahwa statement-statement yang ada diataranya adalah satu
kumpulan (Octaviani, 2010). Bentuk penulisannya adalah sebagai berikut.
IF kondisi
BEGIN
Statemnt1
Statement2
END
IF Exists()
Salah satu bentuk If adalah if yang disertai dengan kata kunci exists (). Struktur If exists
ini mengguanakan keberadaan field-field yang dikembalikan dari statement SELECT. Statement
SELECT harus menyertakan semua fieldnya.
Program Studi Teknik Informatika
45
IF...Else
Bentuk perintah If selanjutnya adalah bentuk IF dengan ELSE. Bentuk penulisan perintah
tersebut adalah sebagai berikut :
IF
kondisi
Statement atau kumpulan statement yang dikerjakan
bila benar;
ELSE
Statement atau kumpulan statement yang dikerjakan
bila salah;
While
Perintah While digunakan untuk melakukan perulangan terhadap sebuah statement atau
sekumpulan kode selama kondisi yang disyaratkan terpenuhi atau masih menghasilkan nilai true.
Karena biasanya yang diulang adalah sekumpulan kode SQL maka kata kunci begin dan end
diperlukan (Octaviani, 2010). Urutan pengerjaan statement while adalah sebagai berikit :
Perintah While akan melakukan tes pada kondisi yang diberikan oleh user. Jika kodisi
tersebut bernilai benar maka perintah While akan menjalankan blok kode SQL yang ada
dibawahnya. Jika tes kondisi memberikan hasil false maka blok kode SQL yang ada
dibawahnya tidak akan dikerjakan dan perulangan berhenti.
Setelah mengerjakan perintah pada blok kode SQL maka alur program kembali ke bagian
tes kondisi, hal ini terus-menerus dilakukan hingga kondisi memberikan nilai false.
Temporary table
Temporary Tabel merupakan tabel sementara yang terbentuk ketika proses queri itu
berjalan. Fungsi temporary tabel digunakan untuk menyimpan data dari rangkaian proses untuk
memperoleh informasi yang diinginkan. Pada umumnya temporary tabel diciptakan karena proses
yang lakukan tidak bisa diselesaikan dalam satu kali proses queri.
Keuntungan penggunaan temporary tabel adalah tidak membebani besarnya file,
keuntungan lainnya adalah temporary tabel dapat digunakan untuk proses secara bersamaan pada
waktu yang sama dengan user yang berbeda-beda atau lebih mudahnya temporary tabel sangat
membantu untuk aplikasi program berbasis client server tanpa perlu membuat tabel bantu pada
masing-masing client.
46
Ciri utama untuk membedakan antara temporary tabel dengan tabel fisik adalah untuk tabel
fisik tidak diawali dengan tanda # tetapi untuk temporary tabel diawali dengan tanda # (Octaviani,
2010). Berikut querinya.
CREATE TABLE #nama_temp_tabel (
[nm_field1 tipedata1(value) ]
[nm_field2 tipedata2(value) ])
Untuk menghapus temporary tabel dapat digunakan perintah drop diikuti dengan nama
tabelnya.
DROP # nama_temp_tabel
PRAKTIKUM
View
Untuk lebih memahami tentang penggunaan View maka kita akan membuat View pada
databse Toko, buatlah view dengan nama Laporan, tulislah queri dibawah ini!
CREATE VIEW Laporan
AS SELECT Pembelian.ID_Pembeli, Pembelian.ID_Barang,
Barang.Nama_Barang, Pembelian.Nama_Pembeli,
Pembelian.Tanggal_Beli, Pembelian.Jumlah_Pembelian
FROM Pembelian,Barang
WHERE Pembelian.ID_Barang=Barang.ID_Barang
47
Apabila pembuatan View ini sukses, maka pada Object Explorer anda akan melihat
tampilan yang sama seperti gambar dibawah ini.
Gambar 7.1 Tampilan Object Explorer Pembuatan view Laporan pada databae Toko.
Untuk dapat menggunakan view yang telah dibuat dengan cara sebagai berikut.
SELECT * FROM Laporan
DROP View
Untuk menghapus view Laporan guankan queri dibawah ini!
DROP VIEW Laporan
Variable
Untuk lebih memahai tentang penggunaan variable, tulislah queri dibawah ini!
48
// Mencoba mengakses
Bila anda eksekusi kedua batch diatas maka hasil yang anda dapatkan tampak seperti
gambar dibawah ini.
49
Flow Elements
Untuk memahami konsep flow element, kita akan mempraktikkan contoh penggunaannya
satu persatu pada praktikum kali ini.
If
IF 2= 4
Print 'Benar'
print 'Salah'
Hasil yang akan dicetak adalah Salah, karena 2 tidak sama dengan 4.
50
51
WHILE
Contoh penggunaan While.
DECLARE @hitungan INT
SET @hitungan =0
WHILE @hitungan <=10
BEGIN
PRINT 'Ini loop yang ke=' + str(@hitungan)
SET @hitungan= @hitungan + 1
END
52
Temporary Tables
Untuk lebih memahami tentang pembuatan temporary tabel, silahkan mencoba queri
dibawah ini!
CREATE TABLE #TempLatihan (
ID INT PRIMARY KEY,
Nama VARCHAR(80),
Alamat VARCHAR (50),
Hobby VARCHAR (70)
);
Untuk mengetahui sebuah temporary tabel sudah ada atau belum didalam sebuah sistem
SQL Server, anda dapat menggunakan script dibawah ini :
SELECT * FROM tempdb.sys.tables
WHERE Name LIKE '%%TempLatihan%'
53
TUGAS
1. Sebutkan fungsi dari View!
2. Buatlah view pada database Mahasiswa yang anda buat!
3. Buatlah flow elements dan temporary tabel pada database Mahasiswa!
54
MODUL VIII
T-SQL Lanjut
Tujuan :
1. Mahasiswa memahami lebih mendalam mengenai fungsi programmable object .
2. Memahami penggunaan user-defined functions dalam T-SQL.
3. Memahami penggunaan stored procedures dalam T-SQL.
4. Memahami penggunaan triggers dalam T-SQL.
Tugas Pendahuluan :
1. Apa yang anda ketahui tentang komponen bahasa T-SQL!
1. Apa yang anda ketahui tentang stored procedures?
2. Apa yang anda ketahui tentang triggers?
DASAR TEORI
User-defined functions
Merupakan suatu program yang ditulis dengan T-SQL yang terdiri dari sekumpulan
perintah yang tersimpan sebagai suatu objek didalam database server dengan pengambilan nilai,
pada User Defined Function (UDF) ini SQL Server menginzinkan user membuat fungsinya sendiri
sperti stored prosedure (Octaviani, 2010). Untuk membuat sebuah fungsi adalah sebagai berikut.
CREATE
FUNCTION
<nama
function
>
([param1],
[param2],
[param3], [param..n])
RETURNS <data type>
AS
BEGIN
RETURN Expression
END
55
Alter Function
Drop Function
Kata kunci RETURNS mendifinisikan tipe data yang akan menampung hasil atau nilai
yang akan dikembalikan oleh fungsi ke sistem. Sedangkan RETURN akan mengembalikan hasil
kerja fungsi kepada sistem. Statement-statement yang diperbolehkan dalam fungsi adalah sebagai
berikut.
SET
WHILE
IF
DECLARE
SELECT
INSERT
UPDATE
DELETE
Untuk melakukan pemanggilan pada fungsi yang dibuat bisa menggunakan queri dibawah
ini.
SELECT dbo.nama fungsi (nilai).
Setiap pemanggilan fungsi harus menyertakan dbo dibagian depannya. Terdapat perbedaan
antara stored prosedure dengan fungsi adalah Stored Procedure tidak mengembalikan nilai,
56
sedangkan fungsi harus mengembaliakan nilai. Fungsi dan stored prosedure dapat digunakan dalam
queri.
Stored procedures
Stored procedure merupakan sekumpulan statement T-SQL (batch) yang disusun
sedemikian rupa untuk menjalankan tugas tertentu. Stored procedure digunakan untuk
mempermudah pengolahan data dengan mendekatkan kode program dengan datanya. Stored
procedure biasanya disimpan dalam sebuah nama jadi dapat diprekompilasi (Kadir, 2002).
Adpun keuntungan-keuntungan dari penggunaan stored procedure adalah sebagai berikut :
Sebuah stored procedure dikompilasi dan lebih cepat dalam mengeksekusi batch
atau queri.
Stored procedure menawarkan pemrograman modular hal ini karena sebuah stored
procedure dapat memanggil stored procedure yang lain.
Stored procedure bisa jadi adalah salah satu komponen penting dalam keamanan
databsae. Jika semua akses user melalui stored procedure maka semua akses
langsung ke tabel dan data dapet dikontrol.
Pada stored procedure dikenal dua macam tipe stored procedure yaitu stored procedure
yang suda ada pada sistem dan stored procedure yang dibuat oleh user. Queri untuk membuat
stored procedure adalah sebagai berikut.
CREATE PROCEDURE [nm_schema] nm_ procedure
[({@paramp1} tp_dta1 [VARYING] [=default1] [OUTPUT])]{,..}
[WITH{RECOMPILE|ENCRIPTION|EXECUTE AS nm_user}]
[FOR REPLECATION]
AS batch | EXTERNAL NAME nm_method
Nm_Scheme adalah nama dari scheme dimana kepemilikan stored procedure dinyatakan.
Nm_procedure adalah nama dari stored procedure yang baru. @paramp1 adalah paramater pertama
sementara tp_dta1 adalah tipe datanya. Default1 adalah opsional nilai default dari parameter
tersebut. Opsi OUTPUT mengindikasikan bahwa parameter adalah parameter yang dikembalikan
57
dan dapat dikembalikan kepada procedure yang memanggilnya atau kepada sistem. Jika anda ingin
tiap kali agar procedure dieksekusi dikompilasi maka gunakan WITH RECOMPILE (Kadir, 2002).
Kita juga dapat melihat cara menjalankan stored procedure atau dapat memanggilnya
dengan perintah:
EXEC nm_ stored procedure
Pada stored procedure terdapat cara untuk mengenkripsi kode stored procedure yang kita
tulis agar kode tersebut tidak dilihat oleh user lain yang tidak berhak, berikut querinya.
ALTER PROCEDURE nm_ procedure
WITH ENCRIPTION
AS
PRINT ...;
RETURN
Pada stored procedure terdapat istilah parameter, dengan parameter ini kita dapat
melewatkan data untuk diolah oleh stored procedure tersebut. Ini menjadikan stored procedure
sangat fleksibel (Kadir, 2002).
Triggers
Trigger merupakan sebuah mekanisme kerja yang dipanggil ketika ada sebuah aksi yang
terjadi pada sebuah tabel. Penamaan triger tidak boleh melebihi 128 karakter. Aksi yang dikenali
pada trigger dapat berupa statement DML bisa seperti INSERT, UPDATE, dan DELETE atau
statement DDL. Biasanya yang dieksekusi oleh trigger adalah stored procedure (Octaviani, 2010).
1. Membuat sebuah trigger dapat menggunakan perintah CREATE TRIGGER, bentuk
perintahnya adalah sebagai berikut:
CREATE TRIGGER [nm_scheme]nm_trigger
ON{nm_tabel | nm_view}
[WITH opsi_dml_trigger[,..]]
{FOR | AFTER | INSTEAD OF}{[INSERT][,][UPDATE][,][DELETE]}
[WITH APPEND]
{AS statement_sql | EXTERNAL NAME nm_method}
58
2. Memperbaiki trigger atau memodifikasi trigger yang ada, maka anda akan dapat
menggunakan perintah ALTER TRIGGER.
3. Menghapus terigger yang tidak diperlukan, kita dapat menggunakan perintah DROP
TRIGGER.
DROP TRIGGER nm_trigger
PRAKTIKUM
Kita akan mempraktikkan User-defined functions, stored procedures dan pembuatan
trigger.
User-defined functions
Untuk lebih memahami tentang User defined function, tulislah queri dibawah!
CREATE FUNCTION tambah (@angka1 INT,@angka2 INT)
RETURNS INT
AS
BEGIN
RETURN @angka1 + @angka2
END
Setiap pemanggilan fungsi harus menyertakan dbo dibagian depannya. Hasilnya dapat
anda lihat pada gambar dibawah ini.
Perbedaan antara stored prosedure dan fungsi adalah stored prosedure tidak
mengembalikan nilai, sedangkan fungsi harus mengembalikan nilai. Fungsi dan stored prosedure
dapat digunakan dibagian queri
Program Studi Teknik Informatika
59
Stored procedures
Untuk lebih memahami tentang Stored procedure, tulislah queri dibawah ini !
Pertama kita buat Stored procedure dengan nama Latihan.
CREATE PROCEDURE Latihan AS
PRINT 'Latihan Procedure'
RETURN
Setelah selesai membuat Stored procedure, anda dapat menjalankan queri diatas dengan
Stored procedure telah terdaftar, penggunaannya adalah sebagai berikut:
DECLARE @hitung INT
SET @hitung=0
WHILE @hitung<= 10
BEGIN
PRINT 'Ini loop yang ke =' + STR(@hitung)
SET @hitung = @hitung + 1
IF @hitung =6
EXEC Latihan
END
Selanjutnya kita akan mencoba melihat isi stored procedure yang kita buat tadi dengan
queri dibawah ini
60
sp_helptext Latihan
Demi alasan keamanan, supaya kode anda tidak dilihat oleh user lain, kita akan
mengenkripsinya dengan queri dibawah ini.
ALTER PROCEDURE Latihan
WITH ENCRYPTION
AS
PRINT 'Latihan Procedure'
RETURN
Sekarang cobalah tulis queri dibawah ini, maka anda akan mendapatkan hasil seperti
gambar dibawah ini.
sp_helptext Latihan
61
Selanjutnya kita bisa mengeksekusi stored procedure nya dengan queri dibawah ini.
EXEC cr_nm_barang 1,2
Pada queri diatas kita akan melihat data pada tabel Pembelian dengan Jumlah_Barang yang
berjumlah 1 sampai 2, dan lihatlah hasilnya pada gambar dibawah ini.
Trigger
Kita akan membuat sebuah trigger mengunakan database Toko yang kita buat. Untuk
membuat sebuah trigger gunakan queri dibawah ini!
CREATE TRIGGER Stockbarang ON Pembelian
FOR INSERT
AS
UPDATE b SET b.Stok_Barang = b.Stok_Barang + i.Jumlah_Pembelian
FROM Barang b join inserted i ON b.ID_Barang = i.ID_Barang
Apabila pembuatan Trigger ini sukses, maka pada Object Explorer anda akan melihat
tampilan yang sama seperti gambar dibawah ini.
62
Pada queri diatas kita akan membuat sebuah trigger dengan nama Stockbarang dimana
trigger tersebut akan terpicu jika ada perubahan di tabel Pembelian. Pada pembuatan trigger ini
bertujuan untuk merubah nilai Stok_Barang pada tabel Barang dengan menambahkan nilai
Stok_Barang yang sekarang dengan jumlah barang yang dibeli (Jumlah_Pembelian). Perhatikan
pada queri diatas terdapat kata inserted, ini merupakan logika yang digunakan untuk menyimpan
data yang memicu terjadinya trigger, dalam hal ini nilai data yang dimasukkan (insert) kedalam
tabel pembelian, selain inserted, tabel logika lainnya adalah deleted, tabel logika ini digunakan
untuk trigger yg terpicu dengan kejadian delete(Octaviani, 2010).
Perhatikan gambar dibawah ini, gambar dibawah ini merupakan gambar pada saat kita
menginsertkan data pada tabel Barang saat trigger belum dibuat, yaitu kita kondisikan nilai
Stok_Barang dalam kondisi default 0.
Untuk mengetahui apakah trigger yang kita buat tadi bisa berjalan, maka sekarang kita
akan mencoba menginsertkan data pada tabel Pembelian.
INSERT INTO Pembelian
(ID_Pembeli,ID_Barang,Tanggal_Beli,Nama_Pembeli,
Jumlah_Pembelian)
VALUES ('P08','BRG03','2011-03-11','Melly Aryanti',1);
Program Studi Teknik Informatika
63
Pada saat menuliskan queri diatas maka akan terlihat message dibagian bawah seperti
gambar diatas yang artinya ketika kita menuliskan queri diatas maka secara otomatis akan
menginsertkan data sekaligus kedalam tabel Pembelian dan tabel Barang.
Anda akan melihat hasil pada tabel Pembelian dan tabel Barang seperti gambar dibawah ini.
Pada gambar diatas terlihat nilai pada Stok_Barang sudah terisi sesuai dengan jumlah
pembelian yang dimasukkan pada queri Insert tabel Pembelian diatas.
64
TUGAS
1. Buatlah sebuah stored procedure pada database Mahasiswa yang anda buat untuk
menampilkan semua data mahsiswa berdasarkan ketua jurusannya!
2. Buatlah stored procedure yang akan mencari nama ketua jurusan dengan nama tertentu!
3. Buatlah sebuah trigger pada database Mahasiswa!
4. Apakah perbedaan antara stored procedure dengan fungsi?
65
DAFTAR PUSTAKA
66