MODUL
DATABASE 2017
� SQ0L Server·
1
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
BAB I
DESAIN DATABASE
1.1 Field Kunci (Key Field)
Field kunci merupakan atribut dari suatu tabel yang dipakai agar dua table dapat saling
berhubungan. Jenis-jenis field kunci:
a. Super Key
Kumpulan atribut dari suatu table yang dapat digunakan untuk mengidentifikas i
entity dari table tersebut.
b. Candidate Key
Atribut yang mempunyai kemungkinan menjadi primary key. Candidate key ini
tidak boleh berisi atribut dari tabel yang lain.
c. Primary Key
Sebuah atribut yang mewakili field lainnya dalam sebuah table. Primary key hanya
dibentuk dari data yang unik dan harus berbeda atau tidak boleh kembar .
d. Alternate Key
Sebuah atribut yang memungkinkan menjadi kunci primer , sehingga kunci
alternative ini menjadi kunci utama kedua setelah kunci primer .
e. Foreign Key
Sebuah kunci yang berasal dari tabel lain. Kunci ini digunakan untuk merelasikan
sebuah tabel dengan tabel yang lainya.
Contoh 1 :
Tabel Buku
kode_buku judul pengarang penerbit thn_terbit
B001
B002
Dari tabel buku di atas menunjukkan bahwa :
Tabel Peminjaman
ID_anggota nama Kode_buku Tgl_pinjam Tgl_batas
A001 B002
2
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
1.2 Kardinalitas / DerajatRelasi
Kardinalitas / Derajat Relasi adalah jumlah maksimum himpunan entitas dapat berelasi
dengan entitas pada himpunan entitas yang lain. Berikut macam - macam kardinalitas :
a. One to One
Tiap entitas pada himpunan A berhubungan hanya dengan satu entitas pada
himpunan B begitu pula sebaliknya.
b. One to Many
Tiap entitas pada himpunan A berhubungan dengan banyak entitas pada himpunan
B namun tiap entitas pada himpunan B hanya berhubungan dengan satu entitas
himpunanA.
c. Many to One
Setiap entitas pada himpunan A berhubungan dengan satu entitas pada himpunan
B namun tiap entitas pada himpunan B berhubungan dengan banyak entitas pada himpunan
A.
d. Many to Many
Tiap entitas pada himpunan A berhubungan dengan banyak entitas pada himpunan
B begitu pula sebaliknya.
1.3 Entity Relationship Diagram (ERD)
ERD merupakan grafis yang menggambarkan hubungan antara entitas dalam database.
ERD sering menggunakan simbol-simbol untuk mewakili tiga jenis informasi yang berbeda.
Box biasanya digunakan untuk mewakili entitas. Diamond biasanya digunakan untuk
mewakili hubungan dan oval digunakan untuk mewakili atribut.
ENTITAS RELASI ATRIBUT
3
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
Contoh ERD :
ANGGOTA
ID_anggota
nama
alamatgender
Tgl_lahir MEMINJAM BUKU
judulkode_buku
pengarang
thn_buku
penerbit
stok
1.4 Normalisasi
Normalisasi adalah proses pengorganisasian efisien data dalam database. Ada beberapa tujuan
dari proses normalisasi:
1. Menghilangkan data yang berlebihan (misalnya menyimpan data yang sama di lebih dari
satu tabel) yang biasa disebut redudansi atau duplikasi data, menghindari Null Value, dan
Multy Value.
2. Untuk mempermudah pengembangan dan perawatan database.
3. Untuk menghemat database dan memastikan bahwa data yang disimpan benar-benar
akurat. Pada umumnya bentuk normalisasi yang sering digunakan adalah 1NF, 2NF, dan
3NF.
1.4.1. Tabel Unnormal
ID_anggota nama Alamat Kode_buku Tgl_pinjam Tgl_batas
A001 Ani Malang B001 1-3-2015 3-3-2015
B003 1-3-2015 3-3-2015
A005 Budi Batu B010 5-3-2015 7-3-2015
B002 5-3-2015 7-3-2015
1.4.2. 1NF
ID_anggota nama Alamat Kode_buku Tgl_pinjam Tgl_batas
A001 Ani Malang B001 1-3-2015 3-3-2015
A001 Ani Malang B003 1-3-2015 3-3-2015
A005 Budi Batu B010 5-3-2015 7-3-2015
A005 Budi Batu B002 5-3-2015 7-3-2015
4
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
1.4.3. 2NF
Tabel ANGGOTA
ID_anggota nama alamat
A001 Ani Malang
A002 Budi Batu
Tabel BUKU
Kode_buku judul pengarang penerbit
Tabel PEMINJAMAN
ID_anggota Kode_buku Tgl_pinjam Tgl_kembali
1101
1102
1.5 Data Flow Diagram (DFD)
DFD adalah suatu grafik yang menjelaskan sebuah system dengan menggunakan
bentuk - bentuk atau symbol untuk menggambarkan aliran data dari proses - proses yang saling
berhubungan.
1.5.1. Notasi DFD
a. Terminator / Entity
Terminator atau entity mewakili entitas eksternal yang berkomunikas i
dengan system yang sedang dikembangkan. Terminator dapat berupa orang,
sekelompok orang, organisasi, departemen di dalam organisasi, atau perusahaan
yang sama tetapi di luar kendali system yang sedang dibuat modelnya.
Termintor dapat juga berupa departemen, divisi atau system di luar system yang
berkomunikasi dengan system yang dikembangkan. Komponen ini perlu diberi
nama sesuai dengan dunia luar yang berkomunikasi dengan system yang dibuat
modelnya, dan biasanya menggunakan kata benda, misalnya bagianpenjualan,
dosen, mahasiswa.
[email protected]@gmail.com
5
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
Gambar dari symbol entitas eksternal / terminator
b. Proses
Merupakan kegiatan atau pekerjaan yang di lakukan oleh orang atau mesin
computer, dimana aliran data masuk di transformasikan ke aliran data keluar
Gambar dari symbol entitas atau proses
c. Data Store
Data store ini biasanya berkaitan dengan penyimpanan penyimpanan,
seperti file atau database yang berkaitan dengan penyimpanan secara
komputerisasi, misalnya file disket, file harddisk, file pita magnetic. Data store
juga berkaitan dengan penyimpanan secara manual seperti buku alamat, file
folder, dan agenda. Data store diberi nama sesuai dengan nama file
penyimpanannya misalnya mahasiswa, matakuliah, dosen, date registrasi.
Gambar dari simbol data store atau penyimapanan data
d. Alur Data
Suatu data flow / alur data di gambarkan dengan anak panah. Yang
menunjukkan arah menuju dan keluar dari suatu proses. Alur data ini digunakan
untuk menerangkan perpindahan data atau paket data / informasi dari satu bagian
system kebagian lainnya
Gambar dari symbol alur atau aliran data
6
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
Setelah mengetahui mengenai simbol-simbol pada DFD, maka coba lihat alur DFD
di bawah ini.
1.5.2. Desain DFD Level 0
Data Flow Diagram pada level 0 merupakan gambaran system secara garis
besar yang menerangkan hubungan antara entity dengan proses data dan
pembuatan file-file yang menghasilkan informasi yang diinginkan. Gambaran
DFD Level 0 akan dijelaskan di bawah ini :
SI Perpustakaan
0
Anggota Admin
Kepala Perpus
Kartu Peminjaman
Informasi Buku
Kartu Anggota
Judul Buku
Data Anggota
Data Peminjaman
Data Pengembalian
Laporan Peminjaman /
Pengembalian
Gambar DFD Level 0
7
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
1.5.3. Desain DFD Level 1
Setelah proses DFD Level 0 decompose maka yang muncul adalah level
ke-1, dalam level ke-1 ini bisa menambahkan proses lebih dari satu, dan disini
juga sudah bisa memasukkan atau memakai data strore.
Proses
Pendataan
Anggota
1
AdminAnggota
Kepala Perpus
Data Buku + Kartu Anggota
Proses
Pendataan
Buku
Proses
Pencarian
Buku
Proses
Pendataan
Peminjam
Proses
Pendataan
Pengembalian
Proses
Laporan
tb_anggota
tb_buku
tb_peminjaman
tb_pengembalian
Data Anggota
Data Buku
Kartu Anggota
Judul Buku
Informasi Buku
Kartu Anggota
Kartu Peminjaman
Data Laporan
Laporan Perpus
Kartu Peminjaman
2
4
3
5
6
Gambar DFD Level 1
8
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
BAB II
IMPLEMENTASI SQL
Komponen-komponen SQL
2.1 Data Definition Language (DDL)
DDL digunakan untuk memanipulasi ( membuat, mengubah, dan menghapus) struktur
objek dari database. Perintah SQL DDL terdiri atas CREATE, ALTER,dan DROP. Berikut
contoh implementasi perintah SQL DDL:
a. CREATE
Perintah SQL create bisa digunakan untuk membuat database dan membuat table didalam
database. Berikut struktur penulisan perintah createdalam SQL server:
CREATE DATABASE nama_database
Struktur Query Sql Untuk Membuat Database
CREATE TABLE nama_tabel (
column_name data_type column_option,
column_name data_type column_option
)
Struktur query sql pembuatan tabel dalam database
9
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
Berikut contoh pembuatan database dan tabel dengan query SQL :
CREATE DATABASE DB_PERPUSTAKAAN
Sintaks Pembuatan Database
CREATE TABLE TB_BUKU (
kode_buku varchar(5) PRIMARY KEY,
judul text,
pengarang varchar(30),
penerbit varchar(30),
tahun varchar(5)
)
Sintaks Pembuatan Tabel di dalam Database SQL Server
b. ALTER
Perintah alter digunakan untuk memodifikasi elemen-elemen pada tabel seperti berikut:
- Menambah field baru atau menghapus field pada tabel.
- Mengubah nama tabel.
- Mengubah nama field.
- Mengubah nilai field.
Untuk mengimplementasikan hal diatas dapat dilakukan menggunakan query sebagai berikut:
1. Menambah Field Baru
Susunan query yang digunakan untuk menambah field baru adalah sebagai berikut:
ALTER TABLE nama_tabel
ADD field_baru data_type
Dan berikut contoh implementasinya pada TB_BUKU
ALTER TABLE TB_BUKU
ADD kategori varchar(12) NOT NULL
10
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
2. Menghapus Field
Untuk menghapus field dalam suatu tabel digunakan perintah sql dengan susunan sebagai
berikut:
ALTER TABLE nama_field
DROP COLUMN field_target
Dan berikut contoh implementasinya pada tabel TB_BUKU
ALTER TABLE TB_BUKU
DROP COLUMN kategori
3. Mengubah Nama Tabel
Susunan query sql yang digunakan untuk mengubah nama tabel adala sebagai berikut:
EXEC SP_RENAME nama_tabel, nama_tabel_baru
Berikut contoh penggunaan perintah EXEC pada tabel TB_BUKU
EXEC SP_RENAME TB_BUKU, TABLE_BUKU
4. Mengubah nama field
Untuk merubah nama field pada suatu tabel query sql yang digunakan sama dengan query
untuk merubah nama tabel yaitu EXEC. Berikut contoh penggunaannya:
EXEC SP_RENAME 'TABLE_BUKU.tahun','tahun_terbit'
5. Mengubah tipe data field
Untuk merubah tipe data suatu field pada tabel digunakan susunan query sql sebagai
berikut:
ALTER TABLE NAMA_TABEL
ALTER COLUMN field_target tipe_data_baru
ALTER TABLE TABLE_BUKU
ALTER COLUMN judul varchar(50)
11
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
c. DROP
Perintah DROP ini hanya digunakan untuk menghapus tabel didalam database. Berikut
query sql untuk menghapus tabel:
DROP TABLE nama_tabel
Contoh penggunaan Drop:
DROP TABLE TABLE_BUKU
4. Data Manipulation Language (DML)
DML adalah bagian utama dari pernyataan SQL (SQL Statement). DML memungkinkan
kita untuk mengambil data dari tabel dalam database. Selain itu, DML memungkinkan kita untuk
menambah, mengubah atau menghapus data dari tabel database dengan menggunakan query
INSERT, UPDATE dan DELETE. Berikut adalah SQL Query yang berhubungan dengan DML:
a. INSERT
INSERT digunakan untuk menyisipkan atau memasukkan data baru ke dalam tabel.
Penggunaannya setelah database dan tabel selesai dibuat. Berikut sintaks dari query INSERT:
INSERT INTO nama_tabel VALUES('isi','isi','isi','isi')
atau bisa juga dengan mendeklarasikan nama kolom yang akan di isi seperti berikut :
INSERT INTO nama_tabel (column1, column2, column3)
VALUES('isi','isi','isi')
Sebagai contoh kita dapat menerapkan dengan menggunakan query:
INSERT INTO TABLE_BUKU VALUES
('1118002','Modul Database','Tim Database','Lab. Database dan SI','2016')
('1118003','Modul Sistem Informasi Geografis','Tim SIG','Lab. Database dan
SI','2015')
Dan berikut contoh perintah insert yang mendeklarasikan nama kolom yang akan diisi:
INSERT INTO TABLE_BUKU (kode_buku,judul,pengarang,penerbit,tahun) VALUES
('1118002','Modul Database','Tim Database','Lab. Database dan SI','2016')
12
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
b. UPDATE
Perintah update digunakan untuk memperbaharui isi dari tabel yang ada didalam database.
Berikut query syntak UPDATE.
UPDATE nama_tabel
SET nama_column = 'isi colum baru'
WHERE primary_key_column = '....'
UPDATE TABLE_BUKU
SET tahun ='2016'
WHERE kode_buku ='1118003'
c. DELETE
Perintah ini digunakan untuk menghapus data dari table. Berikut sintaks dari query
DELETE:
DELETE FROM nama_tabel WHERE kondisi
Sebagai contoh kita dapat menerapkan dengan menggunakan query:
DELETE FROM TABLE_BUKU WHERE kode_buku='1118003'
d. SELECT
SELECT memungkinkan kita untuk mengambil data dari satu atau lebih tabel. Berikut
adalah sintaks dari SELECT:
SELECT nama_field FROM nama_tabel
Sintaks mengambil data field tertentu dari sebuah tabel.
SELECT * FROM nama_tabel
Sintaks mengambil data disemua field dari sebuah tabel.
Sebagai contoh kita dapat menerapkan dengan menggunakan query:
SELECT judul FROM TABLE_BUKU
Query mengambil data field tertentu dari sebuah tabel.
SELECT * FROM TABLE_BUKU
Query mengambil data semua field dari sebuah tabel.
13
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
• WHERE
WHERE dapat digunakan dengan SQL statement lain seperti SELECT, DELETE dan
UPDATE untuk menyaring data dalam tabel yang memenuhi kondisi tertentu. Anda dapat
melakukan query ini:
SELECT * FROM nama_tabel
WHERE nama_field='isi'
Sintaks Where
SELECT * FROM TABLE_BUKU
WHERE kode_buku='1118002'
Query WHERE
• ALIAS
ALIAS digunakan untuk mengatur output dan menghindari kesalahan ambigu dalam SQL
ketika kita ingin mengolah data dan ada lebih dari satu tabel dengan nama field yang sama.
SELECT a.nama_field,a.nama_field
FROM nama_tabel AS a
Sintaks ALIAS
SELECT a.judul,a.pengarang
FROM TABLE_BUKU AS a
Query ALIAS
• DISTINCT
DISTINCT digunakan untuk menghilangkan record yang memiliki nilai sama. Query
distinct dapat kita tuliskan sebagai berikut:
SELECT DISTINCT nama_filed FROM nama_tabel
Sintaks DISTINCT
SELECT DISTINCT kode_buku FROM TABLE_BUKU
Query DISTINCT
14
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
• ORDER BY
Dengan menggunakan ORDER BY memungkinkan kita untuk mengurut hasil
pencarian berdasarkan satu atau lebih sort keys dalam ascending (ASC) atau descending
(DESC). Berikut adalah query dari ORDER BY:
SELECT nama_field FROM nama_tabel
ORDER BY nama_field DESC
Sintaks ORDER BY
SELECT judul FROM TABLE_BUKU
ORDER BY judul DESC
Query ORDER BY
• BETWEEN
Operator BETWEEN memungkinkan kita untuk mengambil data yang memiliki nilai
dalam berbagai nilai. Query dari BETWEEN adalah sebagai berikut:
SELECT * FROM nama_tabel
WHERE nama_field BETWEEN 'kodisi1' AND 'kondisi2'
Sintaks BETWEEN
SELECT * FROM TABLE_BUKU
WHERE kode_buku BETWEEN '1118001' AND '1118005'
Query BETWEEN
• LIKE
Operator LIKE memungkinkan kita untuk mencari data dengan kriteria tertentu yang mirip
dengan keyword yang sudah kita tentukan. Berikutadalah query dari LIKE:
SELECT * FROM nama_tabel
WHERE nama_field LIKE '%isi%'
Sintaks LIKE
SELECT * FROM TABLE_BUKU
WHERE judul LIKE '%sistem informasi%'
Query LIKE
15
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
• GROUP BY
GROUP BY fungsi yang mirip dengan DISTINCT namun Query ini dapat digunakan
untuk melakukan perhitungan seperti SUM, AVG, MIN, MAX dan COUNT tujuannya agar
informasi output lebih ringkas. Berikut adalah Query dari GROUP BY:
SELECT customer, SUM(QTY) AS total_item
FROM pembelian
GROUP BY customer
Query GROUB BY.
• HAVING
HAVING digunakan untuk membatasi kriteria tertentu berdasarkan kriteria yang
diinginkan. Mirip dengan WHERE tetapi khusus dipakai bersama dengan Query GROUP BY.
Berikut adalah Query dari HAVING:
SELECT DayOfOrder,Product, SUM(QTY) AS total_item
FROM Orders
GROUP BY DayOfOrder,Product,QTY
HAVING QTY >5
ORDER BY DayOfOrder
Query HAVING
• UPPER & LOWER
Dengan menggunakan UPPER kita dapat merubah tampilan data menjadi uppercase,
sedangkan LOWER kita dapat merubah tampilan secara lowercase. Berikut Query dari UPPER
dan LOWER:
SELECT UPPER(nama_field) FROM nama_tabel
Sintaks UPPER
SELECT UPPER(nama) FROM TABLE_BUKU
Query UPPER
SELECT LOWER(nama_field) FROM nama_tabel
Sintaks LOWER
SELECT LOWER(judul) FROM TABLE_BUKU
Query LOWER
16
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
• SUBSTRING
Dengan menggunakan SUBSTRING kita dapat menampilkan jumlah karakter sesuai
dengan yang kita inginkan. Berikut adalah Query dari SUBSTRING:
SELECT SUBSTRING(nama_field,index_awal,index_akhir)
FROM nama_tabel
Sintaks SUBSTRING
SELECT SUBSTRING(judul,1,5) FROM TABLE_BUKU
Query SUBSTRING
• LEN
Dengan menggunakan LEN kita dapat menghitung jumlah karakter yang ada pada
record.Berikut adalah Query dari LEN:
SELECT LEN(nama_field) FROM nama_tabel
Sintaks LEN
SELECT LEN(judul) FROM TABLE_BUKU
Query LEN
• TOP
Dengan menggunakan TOP (biasa disebut LIMIT dalam mysql) dapat memungkinkan
kita untuk membatasi berapa banyak data yang ingin kita tampilkan. Berikut adalah Query
dari TOP:
SELECT TOP jumlah_batas FROM nama_tabel
Sintaks TOP
SELECT TOP 10 * FROM TABLE_BUKU
Query TOP
17
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
2.3 Data Control Language (DCL)
Data Control Language (DCL) adalah bagian dari SQL yang memungkinkan administra tor
database untuk mengkonfigurasi akses keamanan untuk database. DCL terdiri dari tiga perintah:
GRANT, REVOKE, dan DENY. Gabungan, dari ketiga perintah ini memungkinkan administrator
untuk mengatur dan menghapus hak akses database dengan fleksibel. Berikut adalah penjelasan
singkatnya:
a. GRANT: Memberikan izin kepada user untuk dapat melakukan operasi pada objek database.
b. REVOKE: Menghapus izin yang diberikan pada objek database.Yang perlu diingat adalah,
pengguna masih dapat mengakses objek database sepenuhnya.
c. DENY: Menolak izin operasi pengguna untuk objek database. Dengan ini pengguna tidak akan
dapat melakukan operasi terhadap objek database.
Berikut adalah langkah-langkah dalam menentukan hak akses untuk objekdatabase:
1. Membuat user baru.
CREATE LOGIN nama_user WITH PASSWORD='password',CHECK_POLICY=OFF
GO
USE nama_database
GO
CREATE USER nama_user FOR LOGIN nama_user
WITH DEFAULT_SCHEMA =[dbo]
2. Memberikan izin pada user untuk dapat mengakses.
GRANT SELECT ON OBJECT::dbo.nama_tabel TO nama_user
3. Menjalankan perintah SELECT dengan hak akses user baru yang tadi telah kita buat.
EXECUTE AS USER = 'nama_user'
SELECT * FROM dbo.nama_tabel
REVERT
4. Menghapus izin yang diberikan kepada user baru.
REVOKE SELECT ON OBJECT::dbo.nama_tabel FROM nama_user
5. Menjalankan perintah SELECT kembali, dan user baru masih dapat melihatdata, karena tidak
semua GRANT yang dihapus oleh REVOKE.
GRANT EXECUTE AS USER = 'nama_user'
SELECT * FROM dbo.nama_tabel
18
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
REVERT
6. Menolak izin pada tabel untuk user baru, agar user baru tidak dapat melihat data.
DENY SELECT ONOBJECT::dbo.nama_tabel TO nama_user
7. Menjalankan perintah SELECT, dan nama_user tidak dapat dapat melihat data pada nama_tabel.
EXECUTE AS USER = 'nama_user'
SELECT * FROM dbo.nama_tabel
REVERT
19
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
BAB III
JOIN DAN TRIGGER
3.1 JOIN TABLE
Join merupakan sebuah operasi yang dugnakan untuk mendapatkan data gabungan dari dua
table atau lebih. Operasi tersebut digunakan dalam perintah SELECT, dan biasanya dipakai untuk
memperoleh detail data dari tabel-tabel yang saling berhubungan (memiliki relasi).
Ada beberapa jenis untuk operasi join :
a. Inner Join
Menampilkan data dari dua tabel yang datanya memiliki setidaknya satu kesamaan.
Sintaks inner join :
Format penulisan tanpa alias
SELECT
nama_tabel1.nama_field, nama_tabel1.nama_field,
nama_tabel2.nama_field, nama_tabel2.nama_field,
FROM nama_tabel1 inner join nama_tabel2
ON nama_tabel1.nama_field = nama_tabel2.nama_field
Format penulisan menggunakan alias
SELECT
a.nama_field, a.nama_field,
b.nama_field, b.nama_field,
FROM nama_tabel1 AS a inner join nama_tabel2 AS bON a.nama_field = b.nama_field
Contoh penggunaan : SELECT
tb_anggota.ID_anggota, tb_anggota.nama,
tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,
tb_peminjaman.Tgl_kembali
FROM tb_anggota inner join tb_peminjaman
ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota
20
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
b. Left Join
Menampilkan data sesuai dengan tabel sebelah kiri.
Sintaks left join :
Format penulisan tanpa aliasSELECT
nama_tabel1.nama_field, nama_tabel1.nama_field,
nama_tabel2.nama_field, nama_tabel2.nama_field,
FROM nama_tabel1 left outer join nama_tabel2 ON nama_tabel1.nama_field = nama_tabel2.nama_field
Format penulisan menggunakan alias
SELECT
a.nama_field, a.nama_field,
b.nama_field, b.nama_field,
FROM nama_tabel1 AS a left outer join nama_tabel2 AS bON a.nama_field = b.nama_field
Contoh penggunaan : SELECT
tb_anggota.ID_anggota, tb_anggota.nama,
tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,
tb_peminjaman.Tgl_kembali
FROM tb_anggota left outer join tb_peminjaman
ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota
c. Right Join
Menampilkan data sesuai dengan tabel sebelah kanan. Right join merupakan kebalikan dari
left join.
Sintaks right join :
Format penulisan tanpa alias
SELECT
nama_tabel1.nama_field, nama_tabel1.nama_field,
nama_tabel2.nama_field, nama_tabel2.nama_field,
FROM nama_tabel1 right outer join nama_tabel2 ON nama_tabel1.nama_field = nama_tabel2.nama_field
Format penulisan menggunakan alias SELECT
a.nama_field, a.nama_field,
b.nama_field, b.nama_field,
FROM nama_tabel1 AS a right outer join nama_tabel2 AS bON a.nama_field = b.nama_field
21
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
Contoh penggunaan : SELECT
tb_anggota.ID_anggota, tb_anggota.nama,
tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,
tb_peminjaman.Tgl_kembali
FROM tb_anggota right outer join tb_peminjaman
ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota
d. Full Join
Menampilkan semua data yang ada pada tabel. Semua data pada tabel yang
dilakukan operasi join akan di tampilkan semua. Jika tidak ada kesamaan maka akan
bernilai null.
Sintaks full join :
Format penulisan tanpa alias
SELECT
nama_tabel1.nama_field, nama_tabel1.nama_field,
nama_tabel2.nama_field, nama_tabel2.nama_field,
FROM nama_tabel1 full outer join nama_tabel2
ON nama_tabel1.nama_field = nama_tabel2.nama_field
Format penulisan menggunakan alias
SELECT
a.nama_field, a.nama_field,
b.nama_field, b.nama_field,
FROM nama_tabel1 AS a full outer join nama_tabel2 AS bON a.nama_field = b.nama_field
Contoh penggunaan : SELECT
tb_anggota.ID_anggota, tb_anggota.nama,
tb_peminjaman.Kode_buku, tb_peminjaman.Tgl_pinjam,
tb_peminjaman.Tgl_kembali
FROM tb_anggota full outer join tb_peminjaman
ON tb_anggota.ID_anggota=tb_peminjaman.ID_anggota
22
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
3.2 TRIGGER
Trigger merupakan object database yang berisi kumpulan perintah SQL yang berfungs i
untuk mengeksekusi satu atau sekumpulan perintah SQL secara otomatis ketika menambah,
merubah dan menghapus sebuah baris data didalam suatu table.
Dalam pengolahan database, trigger memiliki beberapa manfaat :
1. Trigger dapat digunakan untuk mengetahui waktu penambahan, pengubahan dan
penghapusan data.
2. Trigger dapat digunakan untuk memasukkan data pada table lain.
Untuk membuat trigger, sebelumnya harus membuat table yang akan dikenakan proses
trigger dan table yang menampung setiap kejadian INSERT, UPDATE ataupun DELETE. Pada
contoh kali ini kita memakai table ANGGOTA yang telah dibuat sebelumnya. Untuk table yang
menampung data waktu yang menunjukkan ada manipulasi pada table kita buat satu table baru
yaitu table BERITA.
TABEL ANGGOTA
ID_anggota Varchar(4) Nama Varchar(20)
Alamat Varchar(25)
TABEL BERITA
Keterangan Varchar(25)
Tanggal Datetime
Perintah membuat table BERITA
CREATE TABLE Berita(Keterangan VARCHAR(25), Tanggal DATETIME
Setelah membuat table BERITA, selanjutnya membuat trigger. Perintah membuat trigger
seperti dibawah ini.
Sintaks trigger
Format penulisan atau pembuatan trigger :
CREATE TRIGGER nama_trigger ON nama_table_untuk_trigger FOR
fungsi_insert/update/delete AS
INSERT INTO nama_table_penampung(nama_field, nama_field)
VALUES ('isi', GETDATE())
23
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
a. TRIGGER INSERT
Contoh penggunaan untuk INSERT :CREATE TRIGGER in_ang ON tb_anggota FOR INSERT AS
INSERT INTO Berita(Keterangan, Tanggal)
VALUES ('Penambahan Anggota', GETDATE())
b. TRIGGER UPDATE
Contoh penggunaan untuk UPDATE :CREATE TRIGGER up_ang ON tb_anggota FOR UPDATE AS
INSERT INTO Berita(Keterangan, Tanggal)
VALUES ('Pengubahan Anggota', GETDATE())
c. TRIGGER DELETE
Contoh penggunaan untuk DELETE :CREATE TRIGGER del_ang ON tb_anggota FOR DELETE AS
INSERT INTO Berita(Keterangan, Tanggal)
VALUES ('Hapus Anggota', GETDATE())
24
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
BAB IV
VIEW , STORED PROCEDURE , STORED FUNCTION
4.1 VIEW
View merupakan tabel virtual berdasarkan hasil dari pernyataan SQL yang telah kita buat.
Kita juga dapat menambahkan fungsi- fungsi SQL, Where dan Join.
a. Create View
Yang pertama dilakukan untuk menggunakan tabel view yaitu membuat view.
Sintaks membuat view :
CREATE VIEW nama_view
AS
SQLQuery
Contoh Penggunaan View :
CREATE VIEW V_anggota
AS
SELECT * FROM tb_anggota
b. Update View
Selain membuat view juga dapat merubah SQL Query yang ada pada table view
yang telah kita buat.
Sintaks memperbarui view :
ALTER VIEW nama_view
AS
SQLQuery
Contoh memperbarui view :
ALTER VIEW V_anggota
AS
SELECT * FROM tb_buku
25
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
c. Delete View
Untuk menghapus view yang telah kita buat, kita dapat menggunakan cara berikut :
Sintaks menghapus view :
DROP VIEW nama_view
Contoh menghapus view :
DROP VIEW V_anggota
4.2 STORED PROCEDURE
Stored procedure merupakan sekumpulan perintah-perintah SQL yang tersimpan dengan
nama tertentu dan diproses sebagai sebuah kesatuan. Bisa dikatakan sebuah sub program yang
tersimpan di database. Stored procedure dapat melakukan :
a. Menerima parameter sebagai input dan mengembalikan nilai-nilai dalam bentuk parameter
output kepada yang memanggilnya
b. Mengandung perintah-perintah program yang melakukkan operasi didalam database,
termasuk memanggil procedure lainnya.
c. Mengmbalikan suatu nilai status pada pemanggilnya untuk mengidikasikan berhasil atau
gagalnya procedur.
Sama seperti view dapat membuat, mengubah SQL Query dan menghapus stored
procedure yang telah kita buat :
a. Membuat Stored Procedure
Sintaks membuat stored procedure :
CREATE PROC nama_stored_procedure (@parameter TYPEDATA)
AS
BEGIN
{SQLQuery}
END
Contoh sintaks pembuatan stored procedure :
CREATE PROC SP_anggota (@ID_anggota VARCHAR(4))
AS
BEGIN
SELECT * FROM tb_anggota WHERE ID_anggota = @ID_anggota
END
26
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
b. Mengubah Stored Procedure
Sintaks mengubah stored procedure :
ALTER PROC nama_stored_procedure (@parameter TYPEDATA)
AS
BEGIN
{SQLQuery}
END
Contoh sintaks mengubah stored procedure :
ALTER PROC SP_anggota (@Nama VARCHAR(20))
AS
BEGIN
SELECT * FROM tb_anggota WHERE Nama = @Nama
END
c. Menghapus Stored Procedure
Sintaks menghapus stored procedure :
DROP PROCEDURE nama_stored_procedure
Contoh sintaks menghapus stored procedure :
DROP PROCEDURE SP_anggota
27
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
4.3 STORED FUNCTION
Fungsi hampir sama dengan stored procedure. Function mempunyai sejumlah paramter
input dan hanya mengembalikan satu output, standar perintah yang digunakan menggunakan
perintah standar SQL . Dalam bahasan ini dapat di implementasikan pada proses mncari jumlah
buku berdasarkan tahun terbit .
a. Membuat Stored Function
Sintaks membuat stored function :
CREATE FUNCTION nama_stored_function (@parameter TYPEDATA)
AS
BEGIN
{SQLQuery}
END
Contoh sintaks pembuatan stored function :
CREATE FUNCTION hit_buku( @tahun int ) RETURNS VARCHAR AS BEGIN DECLARE @tpl VARCHAR(50);
SELECT @tpl = COUNT(*) FROM TB_BUKU AS Jumlah_Buku WHERE tahun = @tahun
RETURN @tpl END
28
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
BAB V
BACKUP DAN RESTORE
5.1 BAKUP DATABASE
Untuk menghindari kehilangan data – data yang sudah dimasukkan , sebaiknya dalakukan
procedure backup data secara berkala. Penggunaan Enterprise Manager akan memudahkan proses
tersebut..
Sintaks membuat Backup :
BACKUP DATABASE db_perpus TO DISK = 'E:\db_perpus.bak' WITH NOFORMAT, NOINIT, NAME = N'db_perpus-full database backup' SKIP, NOREWIND, NOUNLOAD, STATS = 10
29
[LAB DATABASE & SISTEM INFORMASI] | MODUL PRAKTIKU DATABESE 2017
5.2 RESTORE DATABASE
Setelah database di backup secara berkala , maka database yag telah di backup dapat di
gunakan kembali atau masukkan kedalam Enterprise Manager kembali .
Sintaks membuat Restore :
RESTORE DATABASE db_perpustakan FROM DISK = 'E:\db_perpus.bak' WITH FILE = 1, NOUNLOAD, STATS = 10
Top Related