Professional Documents
Culture Documents
SQL
i
Winner vs. Looser
ii
Kata Pengantar
P
ertama-tama penyusun ingin mengucapkan puji syukur kehadirat Tuhan
Yang Maha Esa atas segala rahmat, taufik dan hidayah-Nya yang
dilimpahkan kepada penyusun, sehingga dapat meneyelesaikan Buku
Pedoman Praktikum SQL ini.
Buku Pedoman Praktikum ini kami susun untuk membantu
mahasiswa dalam mengikuti praktikum SQL. MS SQL Server adalah
salah satu produk Relational Database Management System (RDBMS)
populer saat ini. Fungsi utamanya adalah sebagai database server
yang mengatur semua proses penyimpanan data dan transaksi suatu
aplikasi. Popularitas SQL Server akhir-akhir ini mulai menanjak dan
setara dengan pesaing terdekatnya yaitu Oracle 9i dan Oracle 10g.
Saat ini versi terbaru adalah SQL Server 2005. Namun dalam
praktikum SQL ini kita masih menggunakan Versi 2000 karena SQL
Server 2005 saat modul ini dibuat masih dalam tahapan BETA. Versi
2000 memiliki feature-feature lengkap untuk membangun aplikasi
mulai skala kecil sampai dengan tingkat enterprise.
Tak lupa Alhamdulillah kami ucapkan karena akhirnya revisi
Modul SQL ini dapat diselesaikan. Pembuatan modul ini tak lepas
dari campur tangan para asisten praktikum SQL Server yang telah
meluangkan waktunya untuk merevisi modul ini. Terima kasih juga
kami ucapkan kepada Kapuskom, Bpk. Sugeng Widodo yang
senantiasa mendukung kami.
Tentunya, dalam penulisan modul ini tak lepas dari kesalahan,
untuk itu kritik dan saran yang sifatnya membangun sangat kami
harapkan dari berbagai pihak.
Akhirnya mudah-mudahan buku pedoman ini bermanfaat bagi
pembaca.
iii
Daftar Isi
Winner vs. Looser.................................................................... ii
Kata Pengantar........................................................................ iii
Daftar Isi ................................................................................. iv
1. Membangun Database dan Mengatur Keamanannya 1
2. Tabel ............................................................................... 7
3. Memanipulasi Data ........................................................ 26
4. Fungsi dalam SQL ......................................................... 38
5. View dan Index ............................................................... 47
6. Trigger ............................................................................ 57
7. Transact - SQL ............................................................... 66
8. Stored Procedure........................................................... 80
iv
Praktikum
1
MEMBANGUN DATABASE DAN MENGATUR
KEAMANANNYA
Tujuan :
1 Praktikan mampu untuk membuat database dengan tiga (3)
metode yang akan diujicobakan pada praktikum I ini.
2 Praktikan mampu untuk mengatur keamanan database-nya.
Persiapan :
1 Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai
pembuatan database serta manajemen user dan akses privileges.
2 Modul praktikum I.
Pekerjaan :
1 Kerjakan dan selesaikan semua tugas dan soal pada praktikum I di
lembar jawaban yang sudah disediakan di modul.
2 Selesaikan Tugas Pendahuluan praktikum I, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3 Kerjakan Soal Praktikum I yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4 Kerjakan Tugas Praktikum I sebagai latihan dirumah.
Hasil :
1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum I sesuai dengan pertanyaan yang
ada.
2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan
Tugas Praktikum I kepada asisten pada pertemuan berikutnya.
1
Landasan Materi :
2 Pembuatan Database
SQL Server menyediakan tiga method untuk membuat database, yaitu :
create database wizard, SQL Server Enterprise Manager, dan perintah T-SQL
(Query) yang dapat disimpan dalam file dan dijalankan sebagaimana sebuah
script.
Ms. SQL Server mengimplementasikan database dengan menyimpan 2
struktur, yaitu :
Data
Disimpan dengan file extensi *.mdf. File ini berkembang dengan
penyimpanan table dan objek database lainnya.
LOG
Disimpan dalam file dengan extensi *.ldf. file ini berisi catatan transaksi,
yaitu : mencatat modifikasi table (update), mencatat data baru (insert),
mencatat penghapusan data (delete).
Database dapat mempunyai penyimpanan sekunder sebagai backup dalam file
extensi *.ldf.
2
Ijin Akses Deskripsi
Select Ijin akses untuk membaca data.
Delete Ijin akses untuk menghapus data.
Insert Ijin akses untuk menulis atau memasukkan data baru.
Update Ijin akses untuk memodifikasi data.
Execute Ijin akses untuk mengeksekusi atau menjalankan prosedur
tersimpan (stored procedure)
References Ijin akses untuk menciptakan tabel yang merferensikan
pada tabel yang lain.
ALL Semua ijin akses yang telah disebutkan diatas, yaitu select,
delete, update, insert, execute, fan references.
Dan daftar statemen ijin akses untuk membuat objek database yang baru
terlihat pada daftar tabel berikut :
Statemen Deskripsi
Create Database Statemen untuk memberikan ijin akses pada user untuk
membuat database.
Create Default Statemen untuk memberikan ijin akses pada user untuk
membuat default database.
Create Function Statemen untuk memberikan ijin akses pada user untuk
membuat fungsi.
Create Statemen untuk memberikan ijin akses pada user untuk
Procedure membuat prosedur.
Create Rule Statemen untuk memberikan ijin akses pada user untuk
membuat rule.
Create Table Statemen untuk memberikan ijin akses pada user untuk
membuat tabel.
Create View Statemen untuk memberikan ijin akses pada user untuk
membuat view.
Backup Statemen untuk memberikan ijin akses pada user untuk
Database melakukan backup database.
Backup Log Statemen untuk memberikan ijin akses pada user untuk
melakukan backup log database.
3
Tugas Pendahuluan Praktikum I
1. Jelaskan dengan singkat mengenai sistem database !
2. Sebutkan sedikitnya 3 DBMS yang Anda kenal selain DBMS yang
disebutkan di modul !
3. Bagaimana Ms. SQL Server mengimplementasikan database-nya ?
4
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
1. Pembuatan Database
Pastikan SQL Server dalam keadaan running dengan cara melihat pada service
manager.
5
2. Klik database, lalu klik ganda Create Database Wizard untuk
mulai membuat database, atau klik Create Database Wizard,
kemudian klik OK untuk melanjutkan.
6
4. Tampilan Name The Database File muncul. Pada kotak dialog ini
Anda dapat mengetikkan nama dan initial size untuk masing-
masing file database. Primary file database secara otomatis dibuat
dan diberi nama dalam awalan. Anda dapat menyetujui nama itu
atau mengetikkan yang berbeda. Primary data file berektensi
*.mdf. Jika Anda telah memikirkan seberapa besar file database
itu, ketik nilai untuk initial size sekarang. Bila sebaliknya,
tinggalkan default size. Anda dapat memodifikasinya
dikemudian hari menggunakan enterprise manager atau
command ALTER DATABASE. Beberapa file yang Anda buat
pada saat pertama, atau primary file, akan menjadi secondary file
dan secara otomatis aan diberi ektensi *.ndf. semua file yang
dibuat ini akan ditempatkan pada primary filegroup. Tidak ada
option user-defined filegroup pada Create Database Wizard.
7
5. Tampilan Define The Database File Growth akan muncul. Secara
umum, Anda harus memilih fasilitas Automatic file growth bila
membutuhkan overhead. Bila sebaliknya, maka Anda perlu
mengatur ukuran database secara manual sesuai kebutuhan.
Anda dapat menspesifikasikan bagaimana database Anda
seharusnya bertambah : Apakah menggunakan ukuran MB atau
menggunakan ukuran persen dari ukuran sekarang. Klik next
untuk melanjutkan.
8
6. Tampilan Name The Transaction Log Files muncul. Tampilan ini
nampak sama dengan tampilan Name The Database Files, tapi
yang ini untuk log file. Klik next untuk melanjutkan.
9
Growth, tetapi ini untuk mendifinisikan option growth untuk log
file. Klik next untuk melanjutkan.
8. Tampilan Completing The Create Database Wizard muncul. Lihat
ulang informasi yang telah Anda spesifikasikan untuk database
yang baru Anda buat. Jika Anda setuju, klik Finish untuk
mengakhiri pembuatan database. Bila sebaliknya, klik Back dan
lakukan perubahan lagi seperlunya.
10
3. Klik tab Data Files. Enterprise manager secara otomatis akan
membuat primary data filedengan nama database Anda seperti
awalan dan dengan PRIMARY sebagai file group. Anda dapat
mengubah nama, lokasi, dan ukuran primary file, tetapi Anda
tidak dapat mengubah filegroup untuk primary data file.
Ketikkan nama (logical name), lokasi (physical name), ukuran dan
file group untuk masing-masing data file yang Anda buat. Untuk
data file selain dari primary file, Anda dapat mengetikkan user-
defined filegroup, dan filegroup akan dibuat untuk Anda.
11
Lokasi untuk masing-masing file ada pada default folder pada
drive yang diinstall SQL Server. Anda dapat mengubah setting
dengan mengetikkan path baru atau dengan menggunakan
browse.
4. Dalam file properties pada bagian bawah, Anda dapat memilih
option Automatic-grow file pada per-file basis. Pilih nama dari file
yang ingin Anda set pilihan pertumbuhannya. Anda kemudian
dapat menspesifikasikanpertumbuhan file itu dalam megabytes
(dengan memilih in megabytes) atau percetage (dengan memilih
By percent) dari free space yang ada dalam file. Anda juga dapat
menspesifikasikan ukuran maksimum file dengan meng-klik
Restrict File Growth dan memasukkan ukuran yang mendekati
dalam megabytes, atau Anda dapat meniggalkan file size tanpa
restrict dengan memilih unrestricted file growth. Anda dapat
mengatur option tersebut pada masing-masing file. Anda juga
dapat meninggalkan defaults dan mengesetnya di kemudian hari
menggunakan window Enterprise Manager Database Properties.
Jika Anda ingin menghapus file dari daftar, pilih nama dari file
dan tekan tombol Delete.
5. Setelah selesai mengkonfigurasi semua data file, klik tab
Transaction Log dalam window Database Properties untuk
konfigurasi file transaction log. Log file dikonfigurasi dengan cara
yang sama dengan data files, kecuali bahwa Anda tidak dapat
12
memilih filegroup untuk log files karena tidak termasuk pada
beberapa filegroup. Ketikkan nama file(logical name), lokasi
(physical name), dan initial size untuk log files atau file. Pilih
option Atomatic-growth untuk log files seperti yang dijelaskan
pada langkah 4.
13
Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan
dengan instruksi :
14
Setelah selesai membuat user untuk sistem operasi Windows,
selanjutnya Anda dapat membuat user untuk database server. Langkah
untuk membuat user untuk database server. Langkah untuk membuat
user baru pada SQL server adalah sebagai berikut :
1. Pada aplikasi Interprese Manager, kembangkan folder databases.
2. Setelah muncul semua database, kembangkan folder database
MyData.
3. Klik kanan objek user, kemudian klik New Database User.
4. Setelah kotak dialog Database User Properties muncul, klik
tombol drop down list dari field Login name. Pada list tersebut
akan muncul beberapa user yang ada. Anda dapat memilih user
tamu. Field User name akan otomatis terisi sendiri.
5. Pada bagian database Role membersip, anda akan masuk pada
Public. Artinnya Anda sebagai pengguna user umum dimana user
ini tidak mempunyai hak istimewa seperti melakukan
administrasi terhadap database server, dan lain sebagainya.
6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada Window
Enterprise Manager, objek user akan bertambah satu user, yaitu
user tamu.
Melakukan Login
Untuk menjalankan Ms. SQL Server, user yang digunakan secara
otomatis menggunakan user yang sedang menggunakan sistem operasinya, jika
SQL Server disetting berdasar Windows Authentication. Jika anda sedang login
pada sistem operasi dengan menggunakan administrator maka ketika anda
membuka aplikasi Enterprise Manager dari SQL Server secara otomatis akan
melakukan login sebagai administrator.
Jika anda ingin melakukan login dengan user lain, anda dapat
melakukan langkah-langkah berikut:
1. Pada window Enterprise Manager, klik objek database server.
2. Klik tombol New Login pada toolbar sehingga muncul kotak dialog SQL
Server Login Properties.
3. Pada Field Name, Anda dapat mengisi dengan nama user yang akan
melakukan login.
4. Pada bagian Authentication Anda dapat memilih apakah secara
Windows Authentication atau SQL Server Authentication. Jika Anda
memilih Windows Authentication, pada bagian field Name anda dapat
melakukan klik tombol bertanda .. untuk memilih usernya. Jika anda
memilih SQL Server Autehntication Anda masukkan nama user dengan
cara mengetikkannya. Field Password akan aktif. Anda dapat
mengetikkan password dari user yang akan login. Pada bagian database
anda dapat memilih pada database mana user tersebut aktif. Pada bagian
ini Anda dapat mencoba memasukkan untuk user tamu. Jika sudah
selesai, klik tombol OK.
15
5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini
muncul karena ketika Anda membuat user baru pada SQL Server, Anda
belum memasukkan password. Klik OK pada kotak dialog tersebut.
Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda
akan menemukan beberapa pesan yang memberitahukannya bahwa user
tersebut belum dapat mengakses database karena belum ada ijin akses
terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi
ijin untuk mengakses data pada database tersebut.
Statement permissions:
Keterangan :
- GRANT adalah statamen untuk menspesifikasikan pemberian ijin akses.
- ALL adalah menspesifikasikan bahwa semua ijin akses diberikan.
- Statement adalah berisi statement ijin akses apa saja yang diberikan.
Statemen ini merupakan statemen ijin akses yang telah disebutkan pada
pembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan
dengan tanda koma.
- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses
tersebut diberikan.
- User_account adalah nama user yang diber ijin akses.
Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin
akses akan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda
dapat menyebutkan langsung statemen ijin akses tersebut.
16
Object permissions :
GRANT
{ ALL [ PRIVILEGEs] | permission [ ,…n]
}
{
[ ( column [ ,…n] ) ] ON { table |
View}
| ON { table | view } [ ( column [ ,…n
])]
| ON {stored_procedure | extended_procedure
}
| ON { user_defined_function}
Keterangan :
- Privileges adalah keyword opsional yang dapat Anda sertakan pada SQL-
92
- Permission adalah ijin akses yang diberikan. Daftar ijin akses telah
dijelaskan pada bagian sebelumnya. Jika ijin akses yang diberikan lebih
dari satu maka dipisahkan dengan tanda koma. Ijin akses ini disertai
dengan nama-nama objek database yang diberikan. Objek database
tersebut dapat berupa tabel, view, stored procedure, extended
procedure, dan lain-lain.
- Column adalah nama-nama kolom yang diijinkan untuk diatas sesuai
dengan ijin akses yang diberikan pada daftar ijin akses tersebut.
- Table adalah nama-nama tabel yang diijinkan untuk diakses.
- View adalah nama-nama view yang diijinkan untuk diakses.
- Stored procedure adalah nama-nama stored procedure yang diijinkan
untuk dieksekusi (dijalankan).
- Extended procedure adalah nama-nama eksetended prosedur yang
diijinkan untuk dijalankan.
- User defined function adalah nama-nama user defined function (fungsi)
yang diijinkan untuk dieksekusi.
- WITH GRANT OPTION adalah untuk menspesifikasikan bahwa user
yang diberi ijin akses tersebut dapat memberikan ijin aksesnya kepada
user yang lain.
- AS{group | Role } menspesifikasikan optional nama dari user account
dalam database pada group atau role untuk mengeksekusi statemen
GRANT. Pembahasan mengenai Role akan disampaikan pada bagian
selanjutnya.
17
user sa. Setelah berhasil melakukan koneksi dan menjalankan SQL Query
Analyser, selanjutnya anda lakukan koneksi dengan user tamu melalui menu
File kemudian pilih Connect. Setelah anda melakukan koneksi dengan dua user
tersebut, pada window SQL Query Analyser akan terdapat dua buah window
SQL Editor,. Satu buah window untuk user sa dan satu buah lainnya untuk user
tamu.
Setelah kedua window SQl Editor tersebut muncul, Anda dapat
melakukan eksekusi pernyataan T-SQL untuk masing-masing user. Anda dapat
mengecek apakah user tamu yang baru saja anda gunakan untuk berhubungan
dengan database sudah dapat mengakses data pada database MyData atau
belum dengan mengeksekusi statemen T-SQL berikut :
USE MyData
GO
SELECT * FROM {nama_tabel}
USE MyData
GO
GRANT SELECT ON {nama_tabel} TO tamu
Contoh diatas adalah contoh pemberian ijin akses dengan satu ijin akses. Anda
dapat memberikan beberapa ijin akses sekaligus seperti yang telah disampaikan
sebelumnya dengan menuliskannya dengan dipisahkan tanda koma. Statamen
berikut adalah statemen untuk memberikan ijin akses SELECT dan UPDATE
untuk tabel dosen.
USE MyData
GO
GRANT SELECT,UPDATE ON {nama_tabel} TO tamu
18
Setelah mengeksekusi statemen dicatat, user tamu akan mempunyai ijin akses
untuk melihat dan memodifikasi data pada tabel dosen. Untuk mencoba hasil
eksekusi dari statemen di atas, Anda dapat melakukan retrieving data dengan
statemen SELECT berikut:
USE MyData
GO
SELECT * FROM {nama_tabel}
Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebut
dengan menggunakan user tamu.
Use MyData
GO
GRANT CREATE TABLE TO tamu
USE MyData
GO
INSERT INTO contoh VALUES (1, ‘Contoh 1’)
INSERT INTO contoh VALUES (2, ‘Contoh 2’)
19
Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapat
mengecek hasilnya dengan menjalankan statemen SELECT.
Ijin akses yang telah diberikan oleh seseorang uses kepada user yang lain
dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja user
tersebut ingin mencabutnya maka dengan statemen REVOKE ijin akses
tersebut dapat dicabut tanpa harus konfirmasi dengan user yang bersangkutan.
Statemen REVOKE menggunakan sintaks yang sama dengan statemen GRANT.
Perbedaannya adalah kalau pada statemen GRANT menggunakan keyword TO
sedanggkan pada statemen REVOKE menggunakan keyword FROM.
Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabel
mata kulliah untuk user tamu. Statemen berikut adalah statemen untuk
mencabut ijin akses tersebut.
USE MyData
GO
REVOKE SELECT ON {nama_tabel} FROM tamu
Setelah ini anda mengeksekusi statemen di atas, maka ijin akses SELECT pada
tabel mata kuliah untuk user tamu telah dicabut. Untuk membuktikannya anda
dapat menjalankan statemen SELECT pada table mata kuliah menggunakan
user tamu. SQL server akan menampilkan pesan error seperti pada gambar
berikut :
Dengan cara yang sama anda dapat menggunakan statemen REVOKE untuk
mencabut ijin akses statemen. Contoh berikut adalah contoh bagaimana
mencabut ijin akses statemen CREATE TABLE dari user tamu.
USE MyData
GO
REVOKE CREATE TABLE FROM tamu
Setelah statemen dia atas dieksekusi, user tamu tidak bisa lagi membuat tabel
pada database MyData. Jika ini dilakukan maka SQL Server akan menampilkan
pesan error yang sama.
20
Soal Praktikum I
1. Buat database menggunakan T-SQL dengan parameter lengkap ! (Ketentuan
bebas).
2. Apa perbedaan antara GRANT dan REVOKE ?
21
Tugas Praktikum I
1. Dari query Analyzer buatlah script untuk membangun sebuah database,
kemudian simpan dengan nama created.sql dengan ketentuan sebagai
berikut :
Nama database : STIKI_XXX
Nama Primary data : STIKI_XXX_DATA
Ukuran awal = 20 Mb
Ukuran maksimal = 50 Mb
Ukuran perkembangan file = 2 Mb
Nama log : STIKI_XXX_LOG dengan nilai – nilai parameter sama
dengan diatas.
Catatan : ( X = tiga digit terakhir nrp )
2. Jelaskan yang dimaksud dengan :
a. MyISAM
b. InnoDB
c. LINQ
22
Praktikum
2
TABEL
Tujuan :
1. Praktikan memahami struktur pembuatan tabel.
2. Praktikan mampu membuat tabel.
3. Praktikan dapat memasukkan data ke dalam tabel.
Persiapan :
1. Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai tabel.
2. Modul praktikum II.
Pekerjaan :
1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum II di
lembar jawaban yang sudah disediakan di modul.
2. Selesaikan Tugas Pendahuluan praktikum II, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3. Kerjakan Soal Praktikum II yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4. Kerjakan Tugas Praktikum II sebagai latihan dirumah.
Hasil :
1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum I sesuai dengan pertanyaan
yang ada.
2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum I kepada asisten pada pertemuan berikutnya.
Landasan Materi :
23
Tabel dalam database adalah komponen utama yang membentuk database
itu sendiri. Baris(row) dan kolom (column) mengindikasikan data (record).Cara
untuk mengatur dan memanipulasi data pada database dilakukan dengan
bantuan instruksi SQL seperti SELECT, INSERT, UPDATE, DELETE. Instruksi
untuk membuat, mengubah, dan menghapus table dilakukan melalui DDL
yaitu dengan CREATE TABLE, ALTER TABLE, DROP TABLE
Pada contoh dibawah ini adalah sebuah table Mahasiswa STIKI Malang
dengan bentuk sebagai berikut :
Tabel : Mahasiswa
Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu.
Himpunan yang berupa nilai kolom yang valid atau dapat diterima (acceptable)
disebut sebagai DOMAIN.
2. Tipe Data
Adapun tipe yang banyak digunakan pada Ms.SQL Server adalah :
24
char(n) : Mendefinisikan string sepanjang n karakter. Bila n tidak
didefinisikan maka panjang karakter adalah 1.
text : Menyimpan teks sampai dengan 2 GB. Text disebut juga dengan
binary large objects (BLOBs)
smallint : Sama dengan int, membutuhkan 50% memory yang ditempati int.
real(n) : sama dengan float namun menempati memory 50% dari float.
smalldatetime : sama dengan datetime hanya dengan presisi lebih kecil dimana satuan
waktu terkecil adalah menit dan nilai tanggal sampai dengan 6 juni
2079.
25
3. Unicode Charakter String
Unicode adalah karakter international yang menampung 16 bit per karakter.
Unicode digunakan oleh bahasa non latin, misalnya Jepang, Jerman, Thai, dll.
Untuk dapat melihat semua tipe data yang ada dalam Ms.SQL Server adalah dengan
menggunakan perintah stored procedure sp_datatype_info.
USE nama_database
SP_ADDTYPE nama_tipe_data_baru,tipe_data_SQL
USE nama_database
SP_DROPTYPE nama_tipe_data_baru
Kunci kata NOT NULL atau NULL dapat ditambahkan dalam mendefinisikan tipe
data.
26
Contoh :
1. Nama tabel dan kolom mempunyai panjang karakter 1-30 dan karakter
pertama harus huruf, karakter berikutnya boleh gabungan huruf, garis
bawah dan angka dan tidak diperbolehkan mengandung spasi.
2. Tidak mengandung Reserved word yang ada pada SQL (contoh:select, where,
create, dll).
3. Dalam satu user tidak boleh mempunyai nama tabel yang sama, tetapi
dalam tabel yang berbeda boleh memiliki nama kolom yang sama.
4. Tidak bersifat case sensitive.
INSTRUKSI KETERANGAN
27
SELECT : Memilih query tabel
5. Membuat Tabel
Syntax:
Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key, Foreign
Key, Unique, Not Null, dll.
28
8. Menghapus Tabel
Syntax:
9. INTEGRITAS DATA
Integritas data adalah konsistensi dan kebenaran data yang disimpan. Antara
kehidupan nyata dan nilai dari data harus dilindungi oleh system, agar mempunyai arti
yang sesuai.
Integritas Entitas
Dalam tabel setiap baris harus mempunyai identitas yang unik yang disebut
dengan primary key. Hubungan antara primary key dan foreign key menyatakan
apakah sebuah baris table dapat diubah atau di hapus.
Batasan :
- PRIMARY KEY
- UNIQUE KEY
- UNIQUE INDEX
- IDENTITY
Integritas Domain
Menyatakan bahwa nilai data sesuai dengan kenyataannya. System dalam hal ini
melakukan CHECK sesuai dengan aturan (rule)yang berlaku.
29
Batasan dan implementasi :
- DEFAULT
- CHECK
- FOREIGN KEY
- Tipe data, default, rules
Integritas Referensial
Menyatakan relasi antar table bahwa hubungan foreign key dengan primary key.
Sebuah foreign key tidak dapat dimasukkan kedalam sebuah table bila primary key tidak
atau belum ada.
- CHECK
- FOREIGN KEY
- TRIGGERS DAN STORE PROCEDURE
Sekarang akan dibahas constraint yang ada dalam Ms.SQL Server beserta contoh
penggunaannya.
30
10. PRIMARY KEY
Primary Key disebut sebagai constraint untuk menjaga integritas data, yaitu sebuah
primary key tidak boleh mempunyai duplikat dan otomatis tidak boleh kosong. Secara
umum syntax untuk membuat sebuah primary key adalah:
Atau jika primary key terdiri atas banyak kolom (multiple column), maka constraint
dapat dibuat sebagai berikut:
12. UNIQUE
UNIQUE digunakan untuk menjamin bahwa nilai kolom adalah tunggal tidak
mempunyai duplikat. Primary key dan unique keduanya adalah kunci kata yang
mempunyai arti sama.
Ms.SQL Server mengijinkan field dengan constraint unique untuk mempunyai nilai
NULL. Bila satu kolom mempunyai nilai NULL, maka nilai NULL tidak boleh muncul
lagi. Primary key sebaliknya tidak boleh kosong karena primary key secara implicit
adalah NOT NULL.
31
13. CHECK
CHECK digunakan untuk menjamin bahwa nilai kolom dalah dalam ruang nilai
tertentu. Misalnya nilai mata kuliah dibatasi tidak boleh melebihi nilai 100.
Operator logika seperti AND, OR, dan NOT dapat disertakan dalam pembuatan
batasan ini.
Tabel Mahasiswa
Tabel Mata_kuliah
Tabel ambil_kuliah
TKK-04 02113216 90 98 A
Pada sekenario di atas, record (TKK-04,98111761) pada tabel ambil_kuliah tidak dapat
dihapus karena referensi dari TKK-04 (filed kode_mata_kuliah ditabel mata_kuliah),
98111761( field nrp di tabelmahasiswa) masih ada.
32
Foreign key harus menunjuk ke primary key atau unique pada tabel lain.
15. DEFAULT
Nilai default sebuah kolom dapat disuplai oleh system, jika pemakai tidak memberikan
nilai pada field tersebut. DEFAULT tidak berlaku untuk kolom dengan tipe data
timestamp atau field yang mempunyai property IDENTITY.
16. IDENTITY
IDENTITY merupakan property sebuah field, yaitu system menciptakan nomor urut
secara otomatis pada setiap memasukkan record baru.
Penggunaan:
Setiap terjadi INSERT, maka kolom akan mendapatkan nomor urut, yang dimulai dari
No_awal, dan setiap record berikutnya ditambahkan nilai inkremen (default adalah 1).
Pada awalnya no_daftar adalah 100. Untuk setiap record baru berikutnya, no_daftar
akan bernilai 102, 104, 106, dan seterusnya.
33
17. Drop Constraint
Contoh:
ALTER TABLE nama_tabel DROP fk_nama_constraint
Jika 2 buah tabel mempunyai struktur yang sama maka syntax di atas dapat
dipersingkat menjadi :
34
LANGKAH-LANGKAH PRAKTIKUM:
Nrp char 8
Nama varchar 50
Jk char 1
Kota varchar 50
Propinsi varchar 50
Telpon varchar 20
Perhatikan:
kode_mata_kuliah char 8
Sks int
Perhatikan:
35
3. Buat tabel ambil_kuliah_XXX
kode_mata_kuliah char 8
Nrp char 8
Nilai_Uts smallint
Nilai_Uas smallint
Grade Char 1
Perhatikan:
5. Isi satu record pada Data mahasiswa yang telah dibuat. Perintah SQL nya
adalah :
INSERT INTO Mahasiswa_XXX (NRP, Nama, Jk, Alamat, Kota, Propinsi, Telpon)
VALUES (‘02113216’, ’Ballacksave’, ’L’, ’Jl. Bandulan 8’, ’ Malang’, ’Jatim’, ’877769’)
36
5. Tambahkan data di bawah ini:
NRP NAMA JK ALAMAT KOTA PROPINSI TELFON
03113550 Adhis P Jl. Jaya 25 no. Jakarta DKI 081803803163
Mahaswi 21 Jakarta
04113716 Herfiena P Jl. Bumi Banjarmasin Kalsel 081803803202
Kartika Handayani 4
04113732 Eko Fiat P. L Jl. Banyuwangi Jatim 08561234678
Cendrawasih
27
04113753 Roh L Asrama Batu Jatim 03417677993
Widiono PUSDIK
ARHANUD
no 114
Soal Praktikum II
37
Tugas Praktikum II
1. Buat tabel-tabel dari sebuah perpustakaan dengan tipe data dan aturan-
aturannya:
Tabel Anggota
Tabel Buku
38
Praktikum
3
MEMANIPULASI DATA
Tujuan :
1. Praktikan mampu untuk memanipulasi data dan mampu mencari data
(Retrieval)
Persiapan :
1. Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai transact-
sql.
2. Modul praktikum III.
Pekerjaan :
1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum III di
lembar jawaban yang sudah disediakan di modul.
2. Selesaikan Tugas Pendahuluan praktikum III, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3. Kerjakan Soal Praktikum III yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4. Kerjakan Tugas Praktikum III sebagai latihan dirumah.
Hasil :
1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum III sesuai dengan pertanyaan
yang ada.
2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum III kepada asisten pada pertemuan
berikutnya.
Landasan Materi :
39
UPDATE Nama_tabel
SET Field1=Data1, Field2=Data2, Field3=Data3
WHERE kondisi1, kondisi2
Contoh :
UPDATE Mahasiswa_XXX
SET Alamat= ‘Junrejo ’, kota=’Malang’
WHERE nrp= ’04113753’
Contoh :
Hapus Isi semua record pada Data mahasiswa yang telah dibuat dimana
Mahasiswa dengan alamat yang tidak diisi<nilai=default> akan dihapus.
Perintah SQL nya adalah :
40
3. Mencari Data / Retrieval (SELECT)
Select adalah instruksi yang paling banyak digunakan dalam SQL. SELECT
memilih spesifik kolom dari satu atau beberapa tabel.
Bila kunci kata “WHERE” tidak diberikan, maka yang diseleksi adalah seluruh
record dalam tabel. Predikat menyatakan kualifikasi dari record yang ditemukan,
bila memenuhi syarat, maka record tersebut akan dipilih.
Select * adalah karakter khusus (wild character) yang menyatakan bahwa kolom
yang dipilih adalah seluruh kolom yang ada pada tabel tersebut.
= sama dengan
41
<> tidak sama dengan
Contoh :
Contoh :
Prioritas AND lebih kuat dari OR, sehingga kondisi OR harus dipisahkan
dalam kurung sebelum AND.
Contoh :
42
Cari Nama_kuliah yang jumlah Sks nya tidak diantara 1 sampai 3 jam
Contoh :
Perhatikan bahwa tanda % menyerupai “wild character” yang bisa di variasi dalam
menggunakannya. tanda % adalah terdiri dari 0,1 atau beberapa karakter, maka
tanda _ (under score/garis bawah) merepresentasikan persis satu karakter.
Contoh :
43
8. IN & NOT IN
IN digunakan untuk mencari nilai dalam satu kelompok nilai (daftar/list). Nilai
dalam daftar terdiri atas satu atau lebih.
SELECT Kolom1,Kolom2,… FROM namatabel WHERE Kolom IN
Contoh :
Bila kunci kata where tidak diberikan, maka seluruh record dalam tabel akan
ditampilkan.
44
Untuk menyususn secara terbalik adalah :
11. DISTINCT
DISTINCT menghilangkan nilai ganda, sehinggga membuatnya menjadi
tunggal. Hal ini dilakukan dengan mengeliminasi nilai yang sama.
45
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
TKD1111 04113716 75 80 B
TKD1224 03113550 89 98 A
46
TKK1249 02113216 57 61 C
TKK1248 02113753 40 55 D
TKK1113 02113753 60 80 B
47
Praktikum
4
FUNGSI DALAM SQL
Tujuan :
1. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL
Persiapan :
1. Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai transact-
sql.
2. Modul praktikum IV.
Pekerjaan :
1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum IV di
lembar jawaban yang sudah disediakan di modul.
2. Selesaikan Tugas Pendahuluan praktikum IV, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3. Kerjakan Soal Praktikum IV yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4. Kerjakan Tugas Praktikum IV sebagai latihan dirumah.
Hasil :
1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum IV sesuai dengan pertanyaan
yang ada.
2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum IV kepada asisten pada pertemuan
berikutnya.
48
Landasan Materi
1. Aritmatik
Penghitungan aritmatika dapat dilakukan dengan menggunakan * / + - seperti
umumnya
2. Kelompok Nilai
Fungsi AVG, Max, MIN, SUM, COUNT adalah fungsi yang memproses tabel
dengan kualifikasi tertentu.
3. AVG
Mencari rata-rata
Nilai perbandingan adalah hasil dari query baru (yang disebut sebagai
“subquery”).
Contoh :
4. MAX
Mencari maksimum
SELECT MAX(nilai_uas) FROM ambil_kuliah_XXX
5. MIN
Mencari minimum
6. COUNT
Menghitung record dengan kualilfikasi tertentu. COUNT(*) menyatakan hitung
seluruh record yang berlaku.
49
SELECT COUNT(*) FROM mahasiswa_XXX
7. SUM
Menjumlah nilai dari kolom tertentu
8. GROUP BY
Group By Menyeleksi himpunan yangdihitung berdasarkan fungsi spesifik seperti
AVG, COUNT atau lainya.
9. GROUP BY … HAVING
HAVING berlaku untuk kelompok query Group By dan berfungsi seperti WHERE.
Hanya group yang mempunyai kriteria tersebut yang akan diproses(pada where
yang diproses adalah setiap record dalam tabel). Berikut adalah daftar mahasiswa
yang mempunyai nilai uas rata-rata diatas 80 :
10. JOIN
Join adalah teknik yang digunakan untuk mengakses lebih dari satu tabel dan
menggabungkan hasilnya. Perhatikan tabel sesi di bawah ini
50
perintah diatas dapat juga di tulis menggunakan INNER JOIN
51
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
Agar anda dapat lebih memahami tentang manipulasi data ikutilah langkah -
langkah berikut ini :
Kd_ass char 8
Nrp char 8
kd_prak char 8
Nama_praktikum Varchar 50
Ruang varchar 50
kd_ass char 8
jumlah_jam smallint
honor money
52
kd_ass merupakan foreign key yang mengacu pada tabel asisten_XXX (field
kd_ass)
S10054 02113216
S78678 03113550
S45389 04113732
P10054 Pascal B, C, D
P22094 Delphi B, C
P90877 Database A, E
P78678 PPN 1 A
S10054 12 96000
S78678 6 48000
S45389 8 64000
h) Tambahkan 10% honor untuk mereka yang mempunyai honor dibawah rata-
rata
53
i) Cari asisten yang honornya antar 50.000 sampai dengan 100.000
j) tampilkan asisten yang honornya lebih kecil dari rata-rata.
k) Tampilkan daftar honor asisten dan kurangi dengan pajak penghasilan 15%
l) Tampilkan data asisten secara lengkap (nrp,nama,alamat) yang honornya
paling kecil
m) Berapa banyak asisten yang honornya diatas rata-rata
n) Hitung jumlah honor asisten yang honornya diatas rata-rata
Soal Praktikum IV
1. Kenapa nilai field pada foreign key harus ada terlebih dahulu pada field
primary key yang diacu?
2. Berikan kesimpulan Anda mengenai praktikum IV ini !
Tugas Praktikum IV
54
Praktikum
5
VIEW DAN INDEX
Tujuan :
1 Praktikan mampu memahami view dan index.
Persiapan :
1. Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai view dan
index.
2. Modul praktikum V.
Pekerjaan :
1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum V di
lembar jawaban yang sudah disediakan di modul.
2. Selesaikan Tugas Pendahuluan praktikum V, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3. Kerjakan Soal Praktikum V yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4. Kerjakan Tugas Praktikum V sebagai latihan dirumah.
Hasil :
1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum V sesuai dengan pertanyaan
yang ada.
2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum V kepada asisten pada pertemuan
berikutnya.
55
Landasan Materi :
1. View
Sebuah VIEW adalah tabel yang dibangun dari satu atau beberapa tabel yang sudah
ada. Secara fisik VIEW tidak membuat penyimpanan data seperti tabel, melainkan
hanya menyimpan referansi/pointer ke record pada tabel-tabel yang berkaitan. VIEW
disebut juga sebagai “Virtual Table”.
Sebagai contoh adalah sebuah VIEW yang terbentuk dari satu tabel:
CREATE VIEW v1 AS
SELECT nrp, Nama FROM mahasiswa_XXX
Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi
kolom yang yang dipilih pada tabel mahasiswa_XXX.
SELECT * FROM v1
a. Menghapus VIEW
VIEW dapat dihapus dengan menggunakan DROP VIEW seperti berikut:
DROP VIEW v1
56
CREATE VIEW v4 AS
SELECT A.nrp, M.nama
FROM asisten_XXX A,Mahasiswa_XXX M
WHERE A.nrp=M.nrp
c. Mengubah VIEW
Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan syntax
alter pada tabel.
Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada akhir instruksi
harus ditambahkan “WITH CHECK OPTION”
Contoh :
ERROR at line 2:
Tidak dapat memasukkan record baru jika mengabaikan nilai NOT NULL
pada basis tabel dari VIEW tersebut.
Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom dalam
VIEW merupakan hasil kalkulasi atau hasil dari nilai balik fungsi.
Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalam
VIEW terdapat GROUP BY atau DISTINCT.
2. INDEX
a. Penggunaan Index
Dalam konteks SQL-Server, index adalah sebuah obyek database yang dibuat
berdasarkan kolom dalam tabel.
Index mempercepat pencarian data. Dengan menggunakan index ,data tidak perlu
dicari dari awal hingga akhir, melainkan menggunakan algoritma pencarian yang
efisien, sehingga waktu proses menjadi semakin cepat. Tanpa index, proses
pemanggilan table scan terjadi, yang berarti query processor harus melalui masing-
masing record dalam tabel secara indvidual untuk menemukan record yang sesuai
dengan kriteria yang dipilih. Proses ini sama dengan mengalokasikan informasi
spesifik di dalam buku. Anda dapat menggunakan daftar isi atau index untuk
menemukan topik tertentu secara mudah. Tanpa itu semua, Anda harus membuka
dan mencari melalui semua halaman sampai Anda menemukan yang Anda cari.
Index mempunyai Overhead selain tempat memory yang lebih besar, juga
reorganisasi data karena operasi insert dan delete menjadi lebih kompleks.
Dengan demikian index tidak boleh digunakan secara sembarang, melainkan dengan
perencanaan dan performance tuning yang baik.
58
b. Memilih kolom untuk index
Index dipilih berdasarkan selektifitas dari query yaitu beberapa sereing record
diakses melalui select, update atau delete. Selektifitas dipengaruhi oleh criteria
pencarian, yaitu bagaimana memenuhi criteria tersebut dengan mengakses atribut
apa saja.
c. Clustered Index
Dengan Clustered index secara fisik record disusun sesuai dengan susunan index.
Dengan demikian hanya ada satu clustered index yang boleh didefinisikan dalam
satu tabel. Primary key adalah kandidat baik untuk menjadi clustered index (index
secara implicit diciptakan melalui constraint primary key). Dalam menciptakan
index, maka secara default otomatis yang dipilih adalah non clustered index. Cara
membuat index adalah:
Atau:
e. Unique Index
Secara otomatis unique index diciptakan melalui constraint primary key dan
unique. Sistem akan memeriksa setiap saat record baru diciptakan atau di-update.
Membuat unique index secara manual adalah:
60
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
b. Buat sebuah VIEW yang terdiri dari kd_ass dan nama asisten yang mempunyai
honor diatas rata-rata (join tabel mahasiswa_XXX dan Honor_XXX)
c. Buat sebuah view yang akan menampilkan isi data Nrp, Nama, Alamat, dan nomor
telpon dari mahasiswa_XXX dimana hanya mahasiswa yang mempunyai nama
‘Ballack’dan nomor telfonya mengandung ’081803’ saja.
d. Isi data pada data mahasiswa_XXX melalui view yang dibuat dengan data :
e. Buat view dari tabel honor_XXX dan Lakukan update data honor dengan
memberikan THR pada setiap assiten dengan jumlah 23 % dari honor yang diterima.
f. Buat view dari tabel honor_XXX dan Lakukan update data honor dengan
memberikan bonus bagi yang mengajar lebih dari 10 jam sebasar 5 % dari total
honor yang diterima.
g. Buat view dari tabel praktikum_XXX dan Lakukan update data ruangan menjadi
UNIX bila kd_prak memiliki angka ganjil di setiap akhir kode. Gunakan fungsi IN
61
Soal Praktikum V
1. Sebutkan batasan manipulasi melalui view !
Tugas Praktikum V
Gunakan tabel anggota,buku, dan pinjam yang telah anda buat untuk
menampilkan data nama anggota yang mempunyai huruf depannya ‘A’ atau ‘a’
tampilkan menjadi huruf besar semua dengan menggunakan view.
62
Praktikum
6
TRANSACT-SQL
Tujuan :
1. Praktikan mampu untuk mengerti dan memahami Transact-SQL
Persiapan :
1. Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai trigger.
2. Modul praktikum VII.
Pekerjaan :
1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum VII di
lembar jawaban yang sudah disediakan di modul.
2. Selesaikan Tugas Pendahuluan praktikum VII, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3. Kerjakan Soal Praktikum VII yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4. Kerjakan Tugas Praktikum VII sebagai latihan dirumah.
Hasil :
1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum VII sesuai dengan pertanyaan
yang ada.
2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum VII kepada asisten pada pertemuan
berikutnya.
63
Landasan Materi :
1. Transact-SQL
TRANSACT-SQL adalah bahasa pemrograman yang dikembangkan dari SQL.
Seperti diketahui SQL adalah bahasa non procedural, artinya alur program tidak seperti
bahasa pemrograman bisa, melainkan melalui “request” dan “response”.
Melalui perintah SQL seseorang melakukan query atau transaksi, yang kemudian
akan menerima jawaban dari Database Server berupa hasil atau ResultSet.
Hasil proses SQL-Server (ResultSet) dapat diolah lebih lanjut dengan menggunakan
logic pemrograman procedural seperti Fungsi, Procedure, Loop, Case, If Then Else, dan
lainnya.
2. Kerangka Transact-SQL
TRANSACT-SQL dimulai dengan deklarasi variable dan disusul dengan blok
program.
DECLARE
/* deklarasi variable */
@v1 int,
@nama varchar(30)
Keterangan :
64
Variable dapat digunakan untuk mengambil nilai dari sebuah query:
Contoh :
PRINT @nama
Hasil:
Ballacksave
PRINT adalah fungsi yang menampilkan teks dan variable pada console (layar).
Contoh:
PRINT @nama
Tipe dari variable yang dapat dideklarasikan adalah bagian dari Ms. SQL yaitu
char, varchar, datetime, int, money, dan lainnya.
DECLARE
@honor int,
@total int,
@nama varchar(30),
@instansi char(10),
65
@tgl_hari_ini datetime,
@tgl_nanti datetime
SELECT @Berat=100
SELECT @tgl_hari_ini=getdate()
SELECT @posisi=’SUPERMAN’
SELECT @tgl_nanti=@tgl_hari_ini
PRINT ( @Berat )
PRINT ( @nama )
PRINT ( @posisi )
PRINT ( @tgl_hari_ini )
PRINT ( @tgl_nanti )
Hasil:
100
CLARK KENT
SUPERMAN
4. Variable Global
Variable global adalan variable yang disiapkan oleh SQL-Server untuk memberikan
informasi kepada Client. Variable global bersifat read-only.
66
Nama variable global diawali dengan @@.
@@error adalah bilangan bulat yang menyatakan nomor error. Jika variable
tersebut tidak sama dengan 0, maka system memberikan indikasi bahwa
terjadi error dan identitas error dinyatakan dalam angka.
@@cursor_rows adalah nilai balik dari cursor yang terakhir kali diolah.
@@fetch_status adalah nilai balik dari “fetch” pada cursor. Nilai 0 adalah OK.
5. IF
IF digunakan dalam mengendalikan alur program berdasarkan kondisi.
IF kondisi
Instruksi
IF kondisi
Instruksi1
ELSE
Instruksi2
IF kondisi
BEGIN
Instruksi1
Instruksi2
……
END
67
Contoh:
@rata_rata int
SELECT @honor=100000
SELECT @rata_rata=200000
ELSE
Hasil:
Bila diaplikasikan pada tabel asisten_XXX, maka nilai honor dapat diambil dari
asisten:
@rata_rata int,
@asisten char(8)
SELECT @asisten=’02113216’
SELECT @rata_rata=200000
ELSE
68
penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih dari
satu instruksi..
6. WHILE
WHILE digunakan dalam mengeksekusi satu blok program berulang-ulangsampai
kondisi pada WHILE menjadi false.
WHILE kondisi
BEGIN
…
…
END
Contoh:
DECLARE @i int
SELECT @i=5
WHILE @i > 0
BEGIN
SELECT @i = @i - 1
END
Hasil:
i = 5
i = 4
i = 3
i = 2
i = 1
69
Perhatikan bahwa fungsi str() diperlukan untuk mengkonversi bilangan integer
menjadi string (teks).
WHILE kondisi1
BEGIN
…
…
IF kondisi2
CONTINUE
…
END
WHILE kondisi1
BEGIN
…
…
IF kondisi2
BREAK
…
…
END
8. RETURN
RETURN akan menghentikan program dari eksekusi. RETURN dapat digunakan
dalam memproses error.
IF @@error <> 0
BEGIN
PRINT “Error…”
70
RETURN
END
9. CASE
CASE menyederhanakan IF yang berlapis dengan tujuan agar program dapat
dimengerti/dibaca lebih mudah.
IF kondisi1
ELSE IF kondisi2
ELSE IF kondisi3
ELSE
Dapat diganti:
CASE
WHEN kondisi1 THEN
WHEN kondisi1 THEN
WHEN kondisi1 THEN
ELSE
END
Contoh:
DECLARE @t char(1),
@hasil varchar(255)
SELECT @t=’B’
SELECT @hasil=
CASE
‘Karakter A’
71
‘Karakter B’
ELSE
‘Tidak diketahui’
END
Hasil:
SELECT @hasil=CASE
DECLARE @t char(1),
@hasil varchar(255)
SELECT @t=’X’
SELECT @hasil=
CASE @t
‘Karakter A’
‘Karakter B’
ELSE
‘Tidak diketahui’
END
72
PRINT “Hasil adalah “+@hasil
@nama varchar(16),
@teks varchar(255)
WHERE nrp=’02113216’
SELECT @teks=
CASE @jk
ELSE ‘?’
END
Hasil:
73
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
a. Modifikasilah contoh while pada halaman 79, sehingga menjadi menjadi satu
baris saja seperti berikut:
Nb: harus sama seperti contoh di dalam kotak diatas (ada tulisan dan
tanda koma)
b. Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung dari tabel
asisten_XXX. Buat keterangan bahwasannya assieten tersebut memiliki
honor diatas rata-rata atau dibawah rata-rata.
4.1 Gunakan tabel anggota, buku, dan pinjam yang telah anda buat untuk
membuat T-SQL : menghitung denda anggota yang paling banyak dan
berdasarkan rata-rata yang ada cari yang paling besar jumlah denda
yang diterima.
74
Praktikum
7
TRIGGER
Tujuan :
1 Praktikan mampu memahami trigger.
2 Praktikan mampu membuat trigger.
Persiapan :
1 Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai trigger.
2 Modul praktikum VI.
Pekerjaan :
1 Kerjakan dan selesaikan semua tugas dan soal pada praktikum VI di
lembar jawaban yang sudah disediakan di modul.
2 Selesaikan Tugas Pendahuluan praktikum VI, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3 Kerjakan Soal Praktikum VI yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4 Kerjakan Tugas Praktikum VI sebagai latihan dirumah.
Hasil :
1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum VI sesuai dengan pertanyaan
yang ada.
2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum VI kepada asisten pada pertemuan
berikutnya.
75
Landasan Materi :
1. Database Trigger
Trigger adalah blok program transact-SQL yang diassosiasikan dengan tabel dan
disimpan dalam database. Trigger dieksekusi bila terjadi suatu database “event”.
Database event adalah insert, update dan delete.
Manfaat Trigger
Deklarasi Trigger :
76
Tergantung dari event yang dipilih :
FOR INSERT
FOR UPDATE
FOR DELETE
Untuk melihat efek trigger, berikut adalah contoh sebuah tabel sederhana. Trigger
mytrigger akan dilepaskan, setiap kali tabel tersebut diisi dengan record baru.
Trigger yang bernama mytrigger dibuat dan setiap sesudah record baru diisi ke tabel,
maka program trigger akan aktif.
Hasil :
(1 row(s) affected)
77
Di dalam trigger secara implicit dapat diakses “koleksi” record yang dimasukkan
(“inserted”), maupun kumpulan record yang dihapus (“deleted”)
Record tersebut masuk ke dalam tabel virtual yang bernama “inserted” dan “deleted”.
Pada kasus “INSERT” hanya ada tabel virtual “inserted”, sedangkan pada
“DELETE” hanya terdapat tabel virtual “deleted”.
Untuk “UPDATE” muncul 2 buah tabel virtual, record yang lama masuk ke tabel
“deleted”, sedangkan record yang baru masuk ke tabel virtual “inserted”
Test Trigger:
Hasil:
(1 row(s) affected)
Demikian juga pada saat terjadi proses pengupdate-an dan penghapusan data
bisa memanggil koleksi record yang dihasilkan.
2. Menghapus Trigger
78
Menghapus trigger dilakukan dengan instruksi
Contoh:
79
LANGKAH_LANGKAH PRAKTIKUM:
peserta : smallint
maximum : smallint
nrp : char 8
kd_prak : char 8
id_dtr : char 5
d. Isi data pada 2 buah tabel yang telah dibuat minimal 3 data secara variasi.
80
dihapus maka jumlah peserta akan dikurangi 1. Perhatikan bahwa awalnya
kolom jumlah peserta pada tabel sesi adalah kosong, yang berarti NULL,
bukan 0. Oleh karena itu untuk mengubah nilai NULL, diperlukan fungsi
ISNULL (namavariable,0) sebagai berikut:
UPDATE sesi SET jumlahpeserta = ISNULL (jumlahpeserta,0) +1
g. Buat sebuah trigger yang mencatat riwayat honor asisten (historical), yakni
setiap kali ada perubahan honor asisten, maka perubahan itu akan dicatat di
tabel khusus yang bernama h_asisten_XXX
Struktur tabel h_asisten_XXX
Kd_ass char 8
honor money
tgl_update datetime
81
Soal Praktikum VI
Tugas Praktikum VI
1. Gunakan tabel anggota,buku, dan pinjam yang telah anda buat untuk
membuat trigger :
a. membuat riwayat / historical setiap kali ada denda yang masuk dan
buat total terakhir jumlah denda yang ada menurut event terakhir kali.
82
Praktikum
8
STORED PROCEDURE
Tujuan :
1. Praktikan mampu untuk memahami stored procedure.
Persiapan :
1. Baca buku literatur mengenai sistem database, terutama yang
menggunakan DBMS SQL Server 2000, khususnya mengenai trigger.
2. Modul praktikum VIII.
Pekerjaan :
1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum VIII di
lembar jawaban yang sudah disediakan di modul.
2. Selesaikan Tugas Pendahuluan praktikum VIII, kemudian lanjutkan
dengan mengerjakan langkah-langkah praktikum pada modul yang telah
disiapkan.
3. Kerjakan Soal Praktikum VIII yang telah disediakan di modul, setelah
selesai mengerjakan langkah-langkah praktikum.
4. Kerjakan Tugas Praktikum VIII sebagai latihan dirumah.
Hasil :
1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas
Pendahuluan dan jawaban Soal Praktikum VIII sesuai dengan
pertanyaan yang ada.
2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil
pekerjaan Tugas Praktikum VIII kepada asisten pada pertemuan
berikutnya.
83
Landasan Materi :
1. PROSEDUR
Prosedur adalah program yang dapat dipanggil/dielsekusi oleh program lainnya,
atau dieksekusi dari SQL-Prompt seperti ISQL.
Prosedur yang paling sering digunakan adalah stored procedure yang berawalan sp,
dan extended stored procedure (xp), program yang dikompilasi sebagai EXE atau DLL
(Dynamic Link Library).
Membuat Prosedur
RETURN
EXEC pr_honor
Untuk mengkoreksi sebuah prosedur, maka kunci kata ALTER harus digunakan.
ALTER PROCEDURE pr_honor AS
RETURN
84
Untuk menghapus prosedur gunakan DROP
Untuk secara otomatis mengubah prosedur tanpa ALTER, dapat dibuat script
sebagai berikut:
USE stiki_xxx
go
go
2. Parameter
Prosedur dapat mempunyai parameter berupa variable yang disuplai oleh program
yang memanggilnya.
85
Contoh:
Tampilkan honor untuk asisten tertentu yang diberikan berdasarkan kode asisten
Cara mengeksekusi :
Hasil :
Jumlah_jam honor
------------------- -----------
42 330000
3. Nilai Default
Bila pada saat eksekusi procedure tidak diberikan parameter, maka nilai parameter
tersebut menjadi kosong (null). Untuk menghindari niali null, maka pemberian
nilai pada parameter dapat menggunakan nilai default.
RETURN
Hasil :
Jumlah_jam honor
------------------- -----------
34 200000
86
EXEC pr_honor
Hasil :
Jumlah_jam honor
------------------- -----------
42 330000
Berikut adalah contoh program yang menedeteksi parameter, bila kosong maka pesan
error akan ditampilkan.
IF @ini=NULL
BEGIN
SELECT @pesan='kosong'
PRINT @pesan
RETURN
END
RETURN
4. Parameter Output
Nilai parameter bisa diolah pada program procedure dan untuk kemudian parameter
tersebut dapat diubah dan diberikan nilainya pada program yang memanggilnya.
CREATE PROC m (@p1 int, @p2 int, @h int OUTPUT) AS
SELECT @h=@p1*@p2
87
Eksekusi :
Pada contoh ada 3 parameter, yaitu p1 dan p2 sebagai input parameter dan h
sebagai output parameter.
Pada saat eksekusi p1 adalah 10, p2 adalah 20 dan hsl merupakan hasil perkalian.
Berikut adalah program pr_honor1 yang memberikan nilai balik berupa parameter
output @dana
@dana akan dibaca oleh program yang memenggilnya dan mencetak hasilnya ke
layar.
Eksekusi :
DECLARE @h int
88
Soal Pendahuluan Praktikum VIII
89
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
a. Buat sebuah Store Procedure untuk menghitung Nilai rata-rata langsung dari
tabel asisten_XXX. Buat keterangan bahwasannya assisten tersebut memiliki
honor diatas rata-rata atau dibawah rata-rata.
b. Buat sebuah Store Procedure untuk menghitung Nilai rata-rata tiap praktikan
dalam satu kelas praktikum. (Buat tabel baru untuk menampung nilai-nilai
praktikum. Samakan dengan kartu praktikum anda). Buat keterangan
bahwasannya praktikan tersebut memiliki nilai diatas rata-rata atau dibawah
rata-rata.
Gunakan tabel anggota, buku, dan pinjam yang telah anda buat untuk
membuat Store Procedure :
menghitung denda anggota yang paling banyak dan berdasarkan rata-rata yang
ada cari yang paling besar jumlah denda yang diterima.
90