Modul Praktikum Basis Data Lanjut

56
MODUL BASIS DATA LANJUT (DENGAN SQL SERVER) BY MR.KHOLIL Contact : Web : www.mrkholil.com Ym : mrkholil Email : [email protected] , [email protected] Twitter : mr_kholil Facebook : http://facebook.com/mrkholil Skype : mrkholil

description

Ohayooo

Transcript of Modul Praktikum Basis Data Lanjut

Page 1: Modul Praktikum Basis Data Lanjut

MODUL BASIS DATA LANJUT

(DENGAN SQL SERVER)

BY MR.KHOLILContact :Web : www.mrkholil.comYm : mrkholilEmail : [email protected] , [email protected] : mr_kholilFacebook : http://facebook.com/mrkholilSkype : mrkholil

Page 2: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 1

Praktikum 1MEMBANGUN 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.

1 Definisi database & Database Management System (DBMS)Database adalah kumpulan fakta-fakta sebagai representasi dari dunia nyata yang

berhubungan dan mempunyai arti tertentu.

Database managemen system adalah sebuah program komputer yangmemungkinkan pengguna untuk membuat dan memelihara database sehinggapengguna dapat memasukkan, mengubah, menghapus, memanipulasi, danmemperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang seringkita gunakan adalah Ms. Access, Ms. SQL Server, dan lain-lain.

2 Pembuatan DatabaseSQL 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 2struktur, yaitu :

DataDisimpan dengan file extensi *.mdf. File ini berkembang denganpenyimpanan table dan objek database lainnya.

LOGDisimpan dalam file dengan extensi *.ldf. file ini berisi catatan transaksi, yaitu :mencatat modifikasi table (update), mencatat data baru (insert), mencatatpenghapusan data (delete).

Database dapat mempunyai penyimpanan sekunder sebagai backup dalam file extensi*.ldf.

3 Manajemen User dan Akses PrivilegesSuatu database yang kompleks dapat diakses oleh banyak user dengan

batasan-batasan tertentu. Antara user yang satu dengan user yang lainnya dapatmempunyai tingkatan yang berbeda.

Salah satu alasan mengapa perlu adanya beberapa user dengan tingkat hak aksesyang berbeda-beda adalah untuk keamanan data. Data-data yang penting dan sifatnyarahasia kadang tidak boleh diakses oleh user secara umum, hanya user tertentu sajayang boleh mengaksesnya. Dengan adanya manajemen user yang baik maka datatersebut dapat dijamin.

Beberapa ijin ajses yang dapat diberikan oleh suatu user pada user yang lain terlihat

Page 3: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 2

pada tabel berikut :

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 prosedurtersimpan (stored procedure)

References Ijin akses untuk menciptakan tabel yang merferensikanpada 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 terlihatpada daftar tabel berikut :

Statemen Deskripsi

Create Database Statemen untuk memberikan ijin akses pada user untukmembuat database.

Create Default Statemen untuk memberikan ijin akses pada user untukmembuat default database.

Create Function Statemen untuk memberikan ijin akses pada user untukmembuat fungsi.

CreateProcedure

Statemen untuk memberikan ijin akses pada user untukmembuat prosedur.

Create Rule Statemen untuk memberikan ijin akses pada user untukmembuat rule.

Create Table Statemen untuk memberikan ijin akses pada user untukmembuat tabel.

Create View Statemen untuk memberikan ijin akses pada user untukmembuat view.

BackupDatabase

Statemen untuk memberikan ijin akses pada user untukmelakukan backup database.

Backup Log Statemen untuk memberikan ijin akses pada user untukmelakukan backup log database.

Langkah selanjutnya :

Ikuti langkah-langkah praktikum.

Page 4: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 3

Langkah-langkah praktikum :

1. Pembuatan DatabasePastikan SQL Server dalam keadaan running dengan cara melihat pada servicemanager.

Membangun database menggunakan Create Database Wizard1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin

Anda gunakan untuk membuat database. Untuk memilih server, mulaidengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group,dan kemudian klik nama server (local)(Windows NT) yang akan Andagunakan. Dari menu tools, pilih Wizard.

2. Klik database, lalu klik ganda Create Database Wizard untuk mulaimembuat database, atau klik Create Database Wizard, kemudian klikOK untuk melanjutkan.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 3

Langkah-langkah praktikum :

1. Pembuatan DatabasePastikan SQL Server dalam keadaan running dengan cara melihat pada servicemanager.

Membangun database menggunakan Create Database Wizard1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin

Anda gunakan untuk membuat database. Untuk memilih server, mulaidengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group,dan kemudian klik nama server (local)(Windows NT) yang akan Andagunakan. Dari menu tools, pilih Wizard.

2. Klik database, lalu klik ganda Create Database Wizard untuk mulaimembuat database, atau klik Create Database Wizard, kemudian klikOK untuk melanjutkan.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 3

Langkah-langkah praktikum :

1. Pembuatan DatabasePastikan SQL Server dalam keadaan running dengan cara melihat pada servicemanager.

Membangun database menggunakan Create Database Wizard1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin

Anda gunakan untuk membuat database. Untuk memilih server, mulaidengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group,dan kemudian klik nama server (local)(Windows NT) yang akan Andagunakan. Dari menu tools, pilih Wizard.

2. Klik database, lalu klik ganda Create Database Wizard untuk mulaimembuat database, atau klik Create Database Wizard, kemudian klikOK untuk melanjutkan.

Page 5: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 4

3. Klik next untuk melanjutkan ke tampilan nama database danspesifikasi lokasi. Ketikkan nama database yang ingin Anda buat danpath lokasi dimana Anda ingin menyimpan data file dan log file. Lokasitersebut harus berisi valid drive dan folder yang telah ada pada localsystem Anda. Jika Anda klik tombol browse […] disebelah kanan duakotak teks, Anda dapat mencari dan memilih foldernya. Setelah Andamemberi nama database dan lokasi ke path, klik next untukmelanjutkan.

4. Tampilan Name The Database File muncul. Pada kotak dialog ini Andadapat mengetikkan nama dan initial size untuk masing- masing filedatabase. Primary file database secara otomatis dibuat dan diberi namadalam awalan. Anda dapat menyetujui nama itu atau mengetikkanyang berbeda. Primary data file berektensi*.mdf. Jika Anda telah memikirkan seberapa besar file databaseitu, ketik nilai untuk initial size sekarang. Bila sebaliknya,tinggalkan default size. Anda dapat memodifikasinyadikemudian hari menggunakan enterprise manager ataucommand ALTER DATABASE. Beberapa file yang Anda buat padasaat pertama, atau primary file, akan menjadi secondary file dan secaraotomatis aan diberi ektensi *.ndf. semua file yang dibuat ini akanditempatkan pada primary filegroup. Tidak ada option user-definedfilegroup pada Create Database Wizard.

Page 6: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 5

5. Tampilan Define The Database File Growth akan muncul. Secara umum,Anda harus memilih fasilitas Automatic file growth bila membutuhkanoverhead. Bila sebaliknya, maka Anda perlu mengatur ukurandatabase secara manual sesuai kebutuhan. Anda dapat

menspesifikasikan bagaimana database Andaseharusnya bertambah : Apakah menggunakan ukuran MB ataumenggunakan ukuran persen dari ukuran sekarang. Klik next untukmelanjutkan.

6. Tampilan Name The Transaction Log Files muncul. Tampilan ininampak sama dengan tampilan Name The Database Files, tapi yang iniuntuk log file. Klik next untuk melanjutkan.

Page 7: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 6

7. Tampilan Define The Transaction Log File Growth tampil.Tampilan ini terlihat sama dengan Define The Database FileGrowth, tetapi ini untuk mendifinisikan option growth untuk log file.Klik next untuk melanjutkan.

8. Tampilan Completing The Create Database Wizard muncul. Lihat ulanginformasi yang telah Anda spesifikasikan untuk database yang baruAnda buat. Jika Anda setuju, klik Finish untuk mengakhiripembuatan database. Bila sebaliknya, klik Back dan lakukan perubahanlagi seperlunya.

9. Kotak dialog Create Database Wizard Message muncul untukmemberi informasi kepada Anda bahwa database Anda telah dibuatdengan sukses. Klik OK untuk menutup kotak dialog ini.

10. Kotak Message yang lain muncul, menanyakan apakah Andaakan membuat maintenance plan untuk database Anda yangbaru. Pembuatan maintenance plan direkomendasikan untukmemastikan bahwa performance database Anda bagus, memback upsecara tetap pada saat system failure, dan melakukan pengecekanpada saat tidak konsisten.

Page 8: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 7

Membangun database menggunakan Enterprise Manager1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL

Server group yang berisi nama dari server yang Anda inginkan untukmembangun database, dan kemudian klik server itu. Klik kanan folderdatabase dan pilih new database

2. Window Database Properties terbuka, dengan tab General aktif.Ketikkan nama database dalam kotak Name.

3. Klik tab Data Files. Enterprise manager secara otomatis akanmembuat primary data filedengan nama database Anda seperti awalandan dengan PRIMARY sebagai file group. Anda dapat mengubahnama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat

mengubah filegroup untuk primary data file.Ketikkan nama (logical name), lokasi (physical name), ukuran dan filegroup untuk masing-masing data file yang Anda buat. Untuk data fileselain dari primary file, Anda dapat mengetikkan user- definedfilegroup, dan filegroup akan dibuat untuk Anda.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 7

Membangun database menggunakan Enterprise Manager1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL

Server group yang berisi nama dari server yang Anda inginkan untukmembangun database, dan kemudian klik server itu. Klik kanan folderdatabase dan pilih new database

2. Window Database Properties terbuka, dengan tab General aktif.Ketikkan nama database dalam kotak Name.

3. Klik tab Data Files. Enterprise manager secara otomatis akanmembuat primary data filedengan nama database Anda seperti awalandan dengan PRIMARY sebagai file group. Anda dapat mengubahnama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat

mengubah filegroup untuk primary data file.Ketikkan nama (logical name), lokasi (physical name), ukuran dan filegroup untuk masing-masing data file yang Anda buat. Untuk data fileselain dari primary file, Anda dapat mengetikkan user- definedfilegroup, dan filegroup akan dibuat untuk Anda.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 7

Membangun database menggunakan Enterprise Manager1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL

Server group yang berisi nama dari server yang Anda inginkan untukmembangun database, dan kemudian klik server itu. Klik kanan folderdatabase dan pilih new database

2. Window Database Properties terbuka, dengan tab General aktif.Ketikkan nama database dalam kotak Name.

3. Klik tab Data Files. Enterprise manager secara otomatis akanmembuat primary data filedengan nama database Anda seperti awalandan dengan PRIMARY sebagai file group. Anda dapat mengubahnama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat

mengubah filegroup untuk primary data file.Ketikkan nama (logical name), lokasi (physical name), ukuran dan filegroup untuk masing-masing data file yang Anda buat. Untuk data fileselain dari primary file, Anda dapat mengetikkan user- definedfilegroup, dan filegroup akan dibuat untuk Anda.

Page 9: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 8

Lokasi untuk masing-masing file ada pada default folder pada driveyang diinstall SQL Server. Anda dapat mengubah setting denganmengetikkan path baru atau dengan menggunakan browse.

4. Dalam file properties pada bagian bawah, Anda dapat memilih optionAutomatic-grow file pada per-file basis. Pilih nama dari file yang inginAnda set pilihan pertumbuhannya. Anda kemudian dapatmenspesifikasikanpertumbuhan file itu dalam megabytes (denganmemilih in megabytes) atau percetage (dengan memilih By percent) darifree space yang ada dalam file. Anda juga dapat menspesifikasikanukuran maksimum file dengan meng-klik Restrict File Growth danmemasukkan ukuran yang mendekati dalam megabytes, atau Andadapat meniggalkan file size tanpa restrict dengan memilihunrestricted file growth. Anda dapat mengatur option tersebut padamasing-masing file. Anda juga dapat meninggalkan defaults danmengesetnya di kemudian hari menggunakan window EnterpriseManager Database Properties. Jika Anda ingin menghapus file daridaftar, pilih nama dari file dan tekan tombol Delete.

5. Setelah selesai mengkonfigurasi semua data file, klik tabTransaction Log dalam window Database Properties untukkonfigurasi file transaction log. Log file dikonfigurasi dengan cara yangsama dengan data files, kecuali bahwa Anda tidak dapat memilihfilegroup untuk log files karena tidak termasuk pada beberapafilegroup. Ketikkan nama file(logical name), lokasi (physical name),dan initial size untuk log files atau file. Pilih option Atomatic-growthuntuk log files seperti yang dijelaskan pada langkah 4.

Membangun database menggunakan command T-SQL (QueryAnalyzer)

Untuk membuat sebuah database dengan T-SQL, diperlukan syntaxsebagai berikut :

Tanpa parameter nilai-nilai optional

CREATE DATABASE MyData

Dengan menggunakan parameter lengkap (dicontohkan pembuatandatabase dengan nama MyData yang berisi data file (MyData_root), satusecondary data file (My_Data1), yang sisanya dalam primary filegroupsecara default, dan satu transaction log file (Log_Data1) )

CREATE DATABASE MyData

ON

(NAME = MyData_root, ------Primary data file

FILENAME = ‘C:\Program Files\Microsoft SQL

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 8

Lokasi untuk masing-masing file ada pada default folder pada driveyang diinstall SQL Server. Anda dapat mengubah setting denganmengetikkan path baru atau dengan menggunakan browse.

4. Dalam file properties pada bagian bawah, Anda dapat memilih optionAutomatic-grow file pada per-file basis. Pilih nama dari file yang inginAnda set pilihan pertumbuhannya. Anda kemudian dapatmenspesifikasikanpertumbuhan file itu dalam megabytes (denganmemilih in megabytes) atau percetage (dengan memilih By percent) darifree space yang ada dalam file. Anda juga dapat menspesifikasikanukuran maksimum file dengan meng-klik Restrict File Growth danmemasukkan ukuran yang mendekati dalam megabytes, atau Andadapat meniggalkan file size tanpa restrict dengan memilihunrestricted file growth. Anda dapat mengatur option tersebut padamasing-masing file. Anda juga dapat meninggalkan defaults danmengesetnya di kemudian hari menggunakan window EnterpriseManager Database Properties. Jika Anda ingin menghapus file daridaftar, pilih nama dari file dan tekan tombol Delete.

5. Setelah selesai mengkonfigurasi semua data file, klik tabTransaction Log dalam window Database Properties untukkonfigurasi file transaction log. Log file dikonfigurasi dengan cara yangsama dengan data files, kecuali bahwa Anda tidak dapat memilihfilegroup untuk log files karena tidak termasuk pada beberapafilegroup. Ketikkan nama file(logical name), lokasi (physical name),dan initial size untuk log files atau file. Pilih option Atomatic-growthuntuk log files seperti yang dijelaskan pada langkah 4.

Membangun database menggunakan command T-SQL (QueryAnalyzer)

Untuk membuat sebuah database dengan T-SQL, diperlukan syntaxsebagai berikut :

Tanpa parameter nilai-nilai optional

CREATE DATABASE MyData

Dengan menggunakan parameter lengkap (dicontohkan pembuatandatabase dengan nama MyData yang berisi data file (MyData_root), satusecondary data file (My_Data1), yang sisanya dalam primary filegroupsecara default, dan satu transaction log file (Log_Data1) )

CREATE DATABASE MyData

ON

(NAME = MyData_root, ------Primary data file

FILENAME = ‘C:\Program Files\Microsoft SQL

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 8

Lokasi untuk masing-masing file ada pada default folder pada driveyang diinstall SQL Server. Anda dapat mengubah setting denganmengetikkan path baru atau dengan menggunakan browse.

4. Dalam file properties pada bagian bawah, Anda dapat memilih optionAutomatic-grow file pada per-file basis. Pilih nama dari file yang inginAnda set pilihan pertumbuhannya. Anda kemudian dapatmenspesifikasikanpertumbuhan file itu dalam megabytes (denganmemilih in megabytes) atau percetage (dengan memilih By percent) darifree space yang ada dalam file. Anda juga dapat menspesifikasikanukuran maksimum file dengan meng-klik Restrict File Growth danmemasukkan ukuran yang mendekati dalam megabytes, atau Andadapat meniggalkan file size tanpa restrict dengan memilihunrestricted file growth. Anda dapat mengatur option tersebut padamasing-masing file. Anda juga dapat meninggalkan defaults danmengesetnya di kemudian hari menggunakan window EnterpriseManager Database Properties. Jika Anda ingin menghapus file daridaftar, pilih nama dari file dan tekan tombol Delete.

5. Setelah selesai mengkonfigurasi semua data file, klik tabTransaction Log dalam window Database Properties untukkonfigurasi file transaction log. Log file dikonfigurasi dengan cara yangsama dengan data files, kecuali bahwa Anda tidak dapat memilihfilegroup untuk log files karena tidak termasuk pada beberapafilegroup. Ketikkan nama file(logical name), lokasi (physical name),dan initial size untuk log files atau file. Pilih option Atomatic-growthuntuk log files seperti yang dijelaskan pada langkah 4.

Membangun database menggunakan command T-SQL (QueryAnalyzer)

Untuk membuat sebuah database dengan T-SQL, diperlukan syntaxsebagai berikut :

Tanpa parameter nilai-nilai optional

CREATE DATABASE MyData

Dengan menggunakan parameter lengkap (dicontohkan pembuatandatabase dengan nama MyData yang berisi data file (MyData_root), satusecondary data file (My_Data1), yang sisanya dalam primary filegroupsecara default, dan satu transaction log file (Log_Data1) )

CREATE DATABASE MyData

ON

(NAME = MyData_root, ------Primary data file

FILENAME = ‘C:\Program Files\Microsoft SQL

Page 10: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 9

Server\MSSQL\Data\mydataroot.mdf’,

SIZE=8MB, MAXSIZE=9MB,

FILEGROWTH=100KB),

(NAME = MyData1, ------Secondary data file

FILENAME = ‘C:\Program Files\Microsoft SQL

Server\MSSQL\Data\mydata1.ndf’,

SIZE=1000MB,

MAXSIZE=1500MB,

FILEGROWTH=100MB) LOG ON

Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan denganinstruksi :

DROP DATABASE MyData

2. Manajemen User dan Akses PrivilegesMembuat User BaruDi dalam SQL server yang berjalan di mesin windows NT atau Windows

2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan usersistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanyamenjadi user pada SQL Server. User sistem operasi yang belum menjadi userdatabase server, ketika ingin menjadi user pada database server, perlu didaftarterlebih dahulu.

Sebelum melangkah membuat user baru pada database server, Anda akandiperkenalkan dulu dengan bagaimana menambahkan user baru pada sistemoperasi Windows 2000. ikuti langkah-langkah berikut:

1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilihsetting dan pilih Control Panel. Windows Panel akan muncul.

2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialoguser and Passwords.

3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotakdialog Add New User. Isilah kotak edit pada field Username dengan‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘loginuntuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untukmelanjutkan.

4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini adafield yang harus diisi, yaitu Password dan Confirm Password.Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalampembahasan ini gunakan password ‘test’. Jika sudah, klik Next untukmelanjutkan.

5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini adatiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 9

Server\MSSQL\Data\mydataroot.mdf’,

SIZE=8MB, MAXSIZE=9MB,

FILEGROWTH=100KB),

(NAME = MyData1, ------Secondary data file

FILENAME = ‘C:\Program Files\Microsoft SQL

Server\MSSQL\Data\mydata1.ndf’,

SIZE=1000MB,

MAXSIZE=1500MB,

FILEGROWTH=100MB) LOG ON

Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan denganinstruksi :

DROP DATABASE MyData

2. Manajemen User dan Akses PrivilegesMembuat User BaruDi dalam SQL server yang berjalan di mesin windows NT atau Windows

2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan usersistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanyamenjadi user pada SQL Server. User sistem operasi yang belum menjadi userdatabase server, ketika ingin menjadi user pada database server, perlu didaftarterlebih dahulu.

Sebelum melangkah membuat user baru pada database server, Anda akandiperkenalkan dulu dengan bagaimana menambahkan user baru pada sistemoperasi Windows 2000. ikuti langkah-langkah berikut:

1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilihsetting dan pilih Control Panel. Windows Panel akan muncul.

2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialoguser and Passwords.

3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotakdialog Add New User. Isilah kotak edit pada field Username dengan‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘loginuntuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untukmelanjutkan.

4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini adafield yang harus diisi, yaitu Password dan Confirm Password.Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalampembahasan ini gunakan password ‘test’. Jika sudah, klik Next untukmelanjutkan.

5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini adatiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 9

Server\MSSQL\Data\mydataroot.mdf’,

SIZE=8MB, MAXSIZE=9MB,

FILEGROWTH=100KB),

(NAME = MyData1, ------Secondary data file

FILENAME = ‘C:\Program Files\Microsoft SQL

Server\MSSQL\Data\mydata1.ndf’,

SIZE=1000MB,

MAXSIZE=1500MB,

FILEGROWTH=100MB) LOG ON

Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan denganinstruksi :

DROP DATABASE MyData

2. Manajemen User dan Akses PrivilegesMembuat User BaruDi dalam SQL server yang berjalan di mesin windows NT atau Windows

2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan usersistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanyamenjadi user pada SQL Server. User sistem operasi yang belum menjadi userdatabase server, ketika ingin menjadi user pada database server, perlu didaftarterlebih dahulu.

Sebelum melangkah membuat user baru pada database server, Anda akandiperkenalkan dulu dengan bagaimana menambahkan user baru pada sistemoperasi Windows 2000. ikuti langkah-langkah berikut:

1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilihsetting dan pilih Control Panel. Windows Panel akan muncul.

2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialoguser and Passwords.

3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotakdialog Add New User. Isilah kotak edit pada field Username dengan‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘loginuntuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untukmelanjutkan.

4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini adafield yang harus diisi, yaitu Password dan Confirm Password.Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalampembahasan ini gunakan password ‘test’. Jika sudah, klik Next untukmelanjutkan.

5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini adatiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user

Page 11: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 10

berarti user dapat memodifikasi setting komputer dan menginstall programtetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric userberarti user dapat menjalankan komputer dan menyimpan dokumen tetapiuser tidak dapat menginstall program dan mengubah sistem setting. Pilihanyang ketiga adalah Other. Dengan pilihan ini user dapat menjadiadministrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudianklik Finish.

6. Anda telah selesai membuat user baru untuk sistem operasi. Dalamwindows User and Passwords terlihat ada satu user baru dengan nama tamu.

7. Klik OK untuk mengakhirinya.Setelah selesai membuat user untuk sistem operasi Windows,selanjutnya Anda dapat membuat user untuk database server. Langkah untukmembuat user untuk database server. Langkah untuk membuat user baru padaSQL 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 tersebutakan 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 padaPublic. Artinnya Anda sebagai pengguna user umum dimana userini tidak mempunyai hak istimewa seperti melakukanadministrasi terhadap database server, dan lain sebagainya.

6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada WindowEnterprise Manager, objek user akan bertambah satu user, yaituuser tamu.

Melakukan LoginUntuk menjalankan Ms. SQL Server, user yang digunakan secara

otomatis menggunakan user yang sedang menggunakan sistem operasinya, jikaSQL Server disetting berdasar Windows Authentication. Jika anda sedang login padasistem operasi dengan menggunakan administrator maka ketika anda membukaaplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan loginsebagai administrator.

Jika anda ingin melakukan login dengan user lain, anda dapatmelakukan 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

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 10

berarti user dapat memodifikasi setting komputer dan menginstall programtetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric userberarti user dapat menjalankan komputer dan menyimpan dokumen tetapiuser tidak dapat menginstall program dan mengubah sistem setting. Pilihanyang ketiga adalah Other. Dengan pilihan ini user dapat menjadiadministrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudianklik Finish.

6. Anda telah selesai membuat user baru untuk sistem operasi. Dalamwindows User and Passwords terlihat ada satu user baru dengan nama tamu.

7. Klik OK untuk mengakhirinya.Setelah selesai membuat user untuk sistem operasi Windows,selanjutnya Anda dapat membuat user untuk database server. Langkah untukmembuat user untuk database server. Langkah untuk membuat user baru padaSQL 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 tersebutakan 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 padaPublic. Artinnya Anda sebagai pengguna user umum dimana userini tidak mempunyai hak istimewa seperti melakukanadministrasi terhadap database server, dan lain sebagainya.

6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada WindowEnterprise Manager, objek user akan bertambah satu user, yaituuser tamu.

Melakukan LoginUntuk menjalankan Ms. SQL Server, user yang digunakan secara

otomatis menggunakan user yang sedang menggunakan sistem operasinya, jikaSQL Server disetting berdasar Windows Authentication. Jika anda sedang login padasistem operasi dengan menggunakan administrator maka ketika anda membukaaplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan loginsebagai administrator.

Jika anda ingin melakukan login dengan user lain, anda dapatmelakukan 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

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 10

berarti user dapat memodifikasi setting komputer dan menginstall programtetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric userberarti user dapat menjalankan komputer dan menyimpan dokumen tetapiuser tidak dapat menginstall program dan mengubah sistem setting. Pilihanyang ketiga adalah Other. Dengan pilihan ini user dapat menjadiadministrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudianklik Finish.

6. Anda telah selesai membuat user baru untuk sistem operasi. Dalamwindows User and Passwords terlihat ada satu user baru dengan nama tamu.

7. Klik OK untuk mengakhirinya.Setelah selesai membuat user untuk sistem operasi Windows,selanjutnya Anda dapat membuat user untuk database server. Langkah untukmembuat user untuk database server. Langkah untuk membuat user baru padaSQL 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 tersebutakan 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 padaPublic. Artinnya Anda sebagai pengguna user umum dimana userini tidak mempunyai hak istimewa seperti melakukanadministrasi terhadap database server, dan lain sebagainya.

6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada WindowEnterprise Manager, objek user akan bertambah satu user, yaituuser tamu.

Melakukan LoginUntuk menjalankan Ms. SQL Server, user yang digunakan secara

otomatis menggunakan user yang sedang menggunakan sistem operasinya, jikaSQL Server disetting berdasar Windows Authentication. Jika anda sedang login padasistem operasi dengan menggunakan administrator maka ketika anda membukaaplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan loginsebagai administrator.

Jika anda ingin melakukan login dengan user lain, anda dapatmelakukan 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

Page 12: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 11

Windows Authentication atau SQL Server Authentication. Jika Andamemilih Windows Authentication, pada bagian field Name anda dapatmelakukan klik tombol bertanda .. untuk memilih usernya. Jika andamemilih SQL Server Autehntication Anda masukkan nama user dengan cara

mengetikkannya. Field Password akan aktif. Anda dapatmengetikkan password dari user yang akan login. Pada bagian database andadapat memilih pada database mana user tersebut aktif. Pada bagian ini Andadapat mencoba memasukkan untuk user tamu. Jika sudah selesai, kliktombol OK.

5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini munculkarena ketika Anda membuat user baru pada SQL Server, Anda belummemasukkan password. Klik OK pada kotak dialog tersebut.

Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akanmenemukan beberapa pesan yang memberitahukannya bahwa user tersebutbelum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengaksesdata pada database tersebut.

Memberikan Ijin AksesSeorang user yang telah membuat suatu objek database dapat

memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapatdigunakan untuk memberikan ijin akses adalah dengan statemenGRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut:

Statement permissions:

GRANT { ALL | statement [,…n] }

To user_account {,…n}

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 padapembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengantanda koma.

- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebutdiberikan.

- User_account adalah nama user yang diber ijin akses.

Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin aksesakan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapatmenyebutkan langsung statemen ijin akses tersebut.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 11

Windows Authentication atau SQL Server Authentication. Jika Andamemilih Windows Authentication, pada bagian field Name anda dapatmelakukan klik tombol bertanda .. untuk memilih usernya. Jika andamemilih SQL Server Autehntication Anda masukkan nama user dengan cara

mengetikkannya. Field Password akan aktif. Anda dapatmengetikkan password dari user yang akan login. Pada bagian database andadapat memilih pada database mana user tersebut aktif. Pada bagian ini Andadapat mencoba memasukkan untuk user tamu. Jika sudah selesai, kliktombol OK.

5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini munculkarena ketika Anda membuat user baru pada SQL Server, Anda belummemasukkan password. Klik OK pada kotak dialog tersebut.

Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akanmenemukan beberapa pesan yang memberitahukannya bahwa user tersebutbelum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengaksesdata pada database tersebut.

Memberikan Ijin AksesSeorang user yang telah membuat suatu objek database dapat

memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapatdigunakan untuk memberikan ijin akses adalah dengan statemenGRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut:

Statement permissions:

GRANT { ALL | statement [,…n] }

To user_account {,…n}

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 padapembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengantanda koma.

- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebutdiberikan.

- User_account adalah nama user yang diber ijin akses.

Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin aksesakan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapatmenyebutkan langsung statemen ijin akses tersebut.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 11

Windows Authentication atau SQL Server Authentication. Jika Andamemilih Windows Authentication, pada bagian field Name anda dapatmelakukan klik tombol bertanda .. untuk memilih usernya. Jika andamemilih SQL Server Autehntication Anda masukkan nama user dengan cara

mengetikkannya. Field Password akan aktif. Anda dapatmengetikkan password dari user yang akan login. Pada bagian database andadapat memilih pada database mana user tersebut aktif. Pada bagian ini Andadapat mencoba memasukkan untuk user tamu. Jika sudah selesai, kliktombol OK.

5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini munculkarena ketika Anda membuat user baru pada SQL Server, Anda belummemasukkan password. Klik OK pada kotak dialog tersebut.

Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akanmenemukan beberapa pesan yang memberitahukannya bahwa user tersebutbelum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengaksesdata pada database tersebut.

Memberikan Ijin AksesSeorang user yang telah membuat suatu objek database dapat

memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapatdigunakan untuk memberikan ijin akses adalah dengan statemenGRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut:

Statement permissions:

GRANT { ALL | statement [,…n] }

To user_account {,…n}

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 padapembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengantanda koma.

- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebutdiberikan.

- User_account adalah nama user yang diber ijin akses.

Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin aksesakan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapatmenyebutkan langsung statemen ijin akses tersebut.

Page 13: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 12

Object permissions :GRANT

{ ALL [ PRIVILEGEs] | permission [ ,…n]}

{View}

[ ( column [ ,…n] ) ] ON { table |

] ) ]

}

Keterangan :

| ON { table | view } [ ( column [ ,…n

| ON {stored_procedure | extended_procedure

| ON { }

- Privileges adalah keyword opsional yang dapat Anda sertakan pada SQL-92

- Permission adalah ijin akses yang diberikan. Daftar ijin akses telahdijelaskan pada bagian sebelumnya. Jika ijin akses yang diberikan lebihdari satu maka dipisahkan dengan tanda koma. Ijin akses ini disertaidengan nama-nama objek database yang diberikan. Objek databasetersebut dapat berupa tabel, view, stored procedure, extendedprocedure, dan lain-lain.

- Column adalah nama-nama kolom yang diijinkan untuk diatas sesuaidengan 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 kepadauser yang lain.

- AS{group | Role } menspesifikasikan optional nama dari user accountdalam database pada group atau role untuk mengeksekusi statemenGRANT. Pembahasan mengenai Role akan disampaikan pada bagianselanjutnya.

Untuk memahami bagaimana penggunaan sintaks di atas, anda akanmencoba beberapa contoh penggunaan dari statemen GRANT. Langkahpertama menjalankan SQL Query Analyser dan melakukan koneksi dengan

Page 14: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 13

user sa. Setelah berhasil melakukan koneksi dan menjalankan SQL QueryAnalyser, selanjutnya anda lakukan koneksi dengan user tamu melalui menuFile kemudian pilih Connect. Setelah anda melakukan koneksi dengan dua usertersebut, pada window SQL Query Analyser akan terdapat dua buah windowSQL Editor,. Satu buah window untuk user sa dan satu buah lainnya untuk usertamu.

Setelah kedua window SQl Editor tersebut muncul, Anda dapatmelakukan eksekusi pernyataan T-SQL untuk masing-masing user. Anda dapatmengecek apakah user tamu yang baru saja anda gunakan untuk berhubungandengan database sudah dapat mengakses data pada database MyData ataubelum dengan mengeksekusi statemen T-SQL berikut :

USE MyData

GO

SELECT * FROM {nama_tabel}

Ketika anda mengeksekusi pernyataan di atas, SQL Server akanmenampilkan pesan error. Hal ini terjadi karena user tamu tidak mempunyaiijin akses terhadap tabel mata kuliah. Masukkan statemen berikut pada windowSQL Editor user sa untuk memberikan ijin akses pada user tamu.

USE MyData

GO

GRANT SELECT ON {nama_tabel} TO tamu

Setelah Anda mengeksekusi pernyataan diatas, kemudian anda mencobamengeksekusi statemen SELECT untuk user tamu seperti statemen sebelumnya,maka SQL server akan mengumpulkan hasilnya.Contoh diatas adalah contoh pemberian ijin akses dengan satu ijin akses. Andadapat memberikan beberapa ijin akses sekaligus seperti yang telah disampaikansebelumnya dengan menuliskannya dengan dipisahkan tanda koma. Statamenberikut adalah statemen untuk memberikan ijin akses SELECT dan UPDATEuntuk tabel dosen.

USE MyData

GO

GRANT SELECT,UPDATE ON {nama_tabel} TO tamu

Setelah mengeksekusi statemen dicatat, user tamu akan mempunyai ijin aksesuntuk melihat dan memodifikasi data pada tabel dosen. Untuk mencoba hasileksekusi dari statemen di atas, Anda dapat melakukan retrieving data denganstatemen SELECT berikut:

USE MyData

GOSELECT * FROM {nama_tabel}

Page 15: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 14

Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebutdengan menggunakan user tamu.

Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untukmemberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin aksesstatemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQLberikut :

Use MyData

GO

GRANT CREATE TABLE TO tamu

Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akanmempunyai ijin untuk membuat tabel pada database MyData. Melalui windowSQL editor user tamu Anda dapat menjalankan statemen berikut untukmembuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.

USE MyData

GO

CREATE TABLE contoh( no int, nama varchar(10))

Setelah menjalankan statemen diatas, Anda dapat memasukkan data denganmenggunakan statemen insert. Eksekusi statemen berikut untuk memasukkandata.

USE MyData

GO

INSERT INTO contoh VALUES (1, ‘Contoh 1’)

INSERT INTO contoh VALUES (2, ‘Contoh 2’)

Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapatmengecek hasilnya dengan menjalankan statemen SELECT.

Mencabut Ijin AksesIjin akses yang telah diberikan oleh seseorang uses kepada user yang lain

dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja usertersebut ingin mencabutnya maka dengan statemen REVOKE ijin aksestersebut 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 TOsedanggkan pada statemen REVOKE menggunakan keyword FROM.

Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabelmata kulliah untuk user tamu. Statemen berikut adalah statemen untukmencabut ijin akses tersebut.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 14

Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebutdengan menggunakan user tamu.

Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untukmemberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin aksesstatemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQLberikut :

Use MyData

GO

GRANT CREATE TABLE TO tamu

Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akanmempunyai ijin untuk membuat tabel pada database MyData. Melalui windowSQL editor user tamu Anda dapat menjalankan statemen berikut untukmembuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.

USE MyData

GO

CREATE TABLE contoh( no int, nama varchar(10))

Setelah menjalankan statemen diatas, Anda dapat memasukkan data denganmenggunakan statemen insert. Eksekusi statemen berikut untuk memasukkandata.

USE MyData

GO

INSERT INTO contoh VALUES (1, ‘Contoh 1’)

INSERT INTO contoh VALUES (2, ‘Contoh 2’)

Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapatmengecek hasilnya dengan menjalankan statemen SELECT.

Mencabut Ijin AksesIjin akses yang telah diberikan oleh seseorang uses kepada user yang lain

dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja usertersebut ingin mencabutnya maka dengan statemen REVOKE ijin aksestersebut 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 TOsedanggkan pada statemen REVOKE menggunakan keyword FROM.

Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabelmata kulliah untuk user tamu. Statemen berikut adalah statemen untukmencabut ijin akses tersebut.

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 14

Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebutdengan menggunakan user tamu.

Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untukmemberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin aksesstatemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQLberikut :

Use MyData

GO

GRANT CREATE TABLE TO tamu

Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akanmempunyai ijin untuk membuat tabel pada database MyData. Melalui windowSQL editor user tamu Anda dapat menjalankan statemen berikut untukmembuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.

USE MyData

GO

CREATE TABLE contoh( no int, nama varchar(10))

Setelah menjalankan statemen diatas, Anda dapat memasukkan data denganmenggunakan statemen insert. Eksekusi statemen berikut untuk memasukkandata.

USE MyData

GO

INSERT INTO contoh VALUES (1, ‘Contoh 1’)

INSERT INTO contoh VALUES (2, ‘Contoh 2’)

Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapatmengecek hasilnya dengan menjalankan statemen SELECT.

Mencabut Ijin AksesIjin akses yang telah diberikan oleh seseorang uses kepada user yang lain

dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja usertersebut ingin mencabutnya maka dengan statemen REVOKE ijin aksestersebut 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 TOsedanggkan pada statemen REVOKE menggunakan keyword FROM.

Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabelmata kulliah untuk user tamu. Statemen berikut adalah statemen untukmencabut ijin akses tersebut.

Page 16: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 15

USE MyData

GO

REVOKE SELECT ON {nama_tabel} FROM tamu

Setelah ini anda mengeksekusi statemen di atas, maka ijin akses SELECT padatabel mata kuliah untuk user tamu telah dicabut. Untuk membuktikannya andadapat menjalankan statemen SELECT pada table mata kuliah menggunakanuser tamu. SQL server akan menampilkan pesan error seperti pada gambarberikut :

Dengan cara yang sama anda dapat menggunakan statemen REVOKE untukmencabut ijin akses statemen. Contoh berikut adalah contoh bagaimanamencabut 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 tabelpada database MyData. Jika ini dilakukan maka SQL Server akan menampilkanpesan error yang sama.

Tugas Praktikum IDari query Analyzer buat script untuk membangun sebuah database yangbernama created.sql dengan ketentuan sebagai berikut :

Nama database : ILKOM_XXXNama Primary data : ILKOM_XXX_DATAUkuran awal = 20 MbUkuran maksimal = 50 MbUkuran perkembangan file = 2 MbNama log : ILKOM_XXX_LOG dengan nilai – nilai parameter samadengan diatas.

Catatan : ( X = tiga digit terakhir nim )

Page 17: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 16

Praktikum 2TABEL

Tujuan :

1. Praktikan memahami struktur pembuatan tabel.2. Praktikan mampu membuat tabel.3. Praktikan dapat memasukkan data ke dalam tabel.

Landasan Materi :1. Data Definition Language (DDL)

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 Klaten

dengan bentuk sebagai berikut :

tabel : MahasiswaNIM Nama Jenis kelamin Alamat Kota Propinsi Telpon

Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu.

Himpunan yang berupa nilai kolom yang valid atau dapat diterima (acceptable)

disebut sebagai DOMAIN.

Nilai kolom diluar domain tersebut dianggap sebagai pelangggaran atas

integritas data. Usaha untuk mengelompokkkan nilai dalam himpunan yang

berlaku disebut dengan CONSTRAINT atau batasan nilai.

2. Tipe Data

Adapun tipe yang banyak digunakan pada Ms.SQL Server adalah :

Page 18: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 17

char(n) : Mendefinisikan string sepanjang n karakter. Bila n tidak

didefinisikan maka panjang karakter adalah 1.

varchar(n) : Mendefinisikan string sepanjang variabel n.

binnary(n) : Untuk menyimpan bit pattern seperti heksadecimal. Contoh :

0x0fa9008e

datetime : Mendefinisikan tanggal, menyimpan tahun, bulan, hari, jam, menit,

detik dan seperseribu detik (milliseconds). Nilai tanggal sampai

dengan 31 desember 9999.

text : Menyimpan teks sampai dengan 2 GB. Text disebut juga dengan

binary large objects (BLOBs)

image : Mendefinisikan binary data untuk menyimpan image seperti GIF,

JPG, TIFF, dll.

money : Bilangan pecahan dengan 4 angka dibelakang koma. Digunakan

untuk perhitungan moneter.

smallint : Sama dengan int, membutuhkan 50% memory yang ditempati int.

int : Mendefinisikan integer, bilangan bulat yang menampung angka

sebanyak 4 byte.

float(n) : Mendefinisikan angka pecahan (floating point). Nilai n adalah

jumlah angka yang dapat ditampung . sysname

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.

numeric(n,p) : Mendefinisikan angka pecahan baik fixed desimal ataupun floating

point. Nilai n adalah jumlah bytes total dan p adalah presisi angka

dibelakang koma. Numeric analog dengan DECIMAL(n,p).

Page 19: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 18

3. Unicode Charakter StringUnicode adalah karakter international yang menampung 16 bit per karakter.

Unicode digunakan oleh bahasa non latin, misalnya Jepang, Jerman, Thai, dll.

nchar : Unicode karakter maksimum 4.000 karakter.

nvarchar : Unicode karakter dengan data variable maksimum 4.000 karakter. Sysname adalahcontoh tipe data yang

didefinisikan sebagai synonym dari nvarchar(128) dan digunakan untuk referensi kenama object database.ntext : Unicode texts dengan panjang dua pangkat tigapuluh

(1.073.741.823)karakter.

Untuk dapat melihat semua tipe data yang ada dalam Ms.SQL Server adalah

dengan menggunakan perintah stored procedure sp_datatype_info.

4. Mendefinisikan tipe data baru

Tipe data dapat dibangun dari tipe data yang sudah ada.

Syntax secara umum untuk membuat tipe data baru :

USE nama_database

SP_ADDTYPE nama_tipe_data_baru,tipe_data_SQL

Syntax secara umum untuk menghapus tipe data baru :

USE nama_database

SP_DROPTYPE nama_tipe_data_baru

Kunci kata NONULL atau NULL dapat ditambahkan dalam mendefinisikan

tipe data.

Contoh :SP_ADDTYPE alamat,'varchar(9)',nonull

Alur komunikasi data antara user dengan database menggunakan SQL

Page 20: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 19

Dalam membuat sebuah tabel dan kolom ada beberapa aturan :

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.

Perintah perintah yang berhubungan dengan tabel :

INSTRUKSI

CREATE TABLE :

KETERANGAN

Membuat tabel

SP_COLUMN : Memeriksa struktur suatu tabel

ALTER TABLE : Mengubah struktur tabel

DROP TABLE : Menghapus tabel SELECT :

Memilih query tabel

INSERT : Menyisipkan baris data ke tabel

UPDATE : Mengubah data pada tabel

DELETE : Menghapus data pada suatu table

Page 21: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 20

5. Membuat Tabel

Syntax:

CREATE TABLE nama_tabel(nama_filed1 tipedata batasan, nama_filed2 tipedatabatasan,……..)

Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key, Fpreign

Key, Unique, Not Null, dll.

6. Melihat Struktur Tabel

Syntax:

sp_columns Nama tabel;

7. Memodifikasi dan menambah Field pada Tabel

Untuk memodifikasi sebuah field pada tabel , syntax:

ALTER TABLE Nama_tabel ALTER COLUMN Nama_Field tipe_data(panjang)constraint

Untuk menambah sebuah field pada tabel , syntax:

ALTER TABLE Nama_tabel ADD Nama_Field_baru tipe_data(panjang) constraint

8. Menghapus Tabel

Syntax:

DROP TABLE Nama_tabel;

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 data tetap dijaga melalui beberapa cara, antara lain :- Validasi field secara individual

- Verifikasi satu field melalui field yang lainnya

- Validasi data dari satu table ke table yang lainnya.

- Verifikasi bahwa transaksi berjalan secara sukses dari awal hingga akhir

Page 22: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 21

Beberapa jenis integritas data9.1 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

9.2 Integritas DomainMenyatakan bahwa nilai data sesuai dengan kenyataannya. System dalam hal ini

melakukan CHECK sesuai dengan aturan (rule)yang berlaku.

Batasan dan implementasi :- DEFAULT- CHECK- FOREIGN KEY- Tipe data, default, rules

9.3 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.

Batasan dan implementasi :- CHECK- FOREIGN KEY- TRIGGERS DAN STORE PROCEDURE

9.4 Integritas melalui aturan yang didefinisikan sendiri

Sesuai dengan aturan logika dan bisnis yang ada maka pemakai dapat

menetapkan batasan dan aturan dari data yang disimpan.

Batasan dan implementasi :- Batasan melalui table dan kolom pada saat pembuatan table.- FOREIGN KEY- TRIGGERS DAN STORE PROCEDURE

Page 23: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 22

Sekarang akan dibahas constraint yang ada dalam Ms.SQL Server beserta contoh

penggunaannya.

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:

CREATE TABLE Nama_Tabel (Nama_Field Tipedata CONSTRAINT

pk_Namatabel PRIMARY KEY, … )

Atau jika primary key terdiri atas banyak kolom (multiple column), maka constraint

dapat dibuat sebagai berikut:

CREATE TABLE NamaTabel(NamaField1 TipeData1, NamaField2

TipeData2, NamaField3 TipeData3, NamaField4 TipeData4, NamaField5

TipeData5, NamaField6 TipeData6, NamaField7 TipeData7, CONSTRAINT

pk_NamaTabel PRIMARY KEY (NamaField3, NamaField2, NamaField7) )

11. NOT NULL

Jika sebuat kolom pada tabel tidak boleh kosong maka constraint NOT NULL harus

diberikan.

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.

13. CHECK

CHECK digunakan untuk menjamin bahwa nilai kolom dalah dalam ruang

nilai tertentu. Misalnya nilai mata kuliah dibatasi tidak boleh melebihi nilai 100.

Page 24: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 23

Operator logika seperti AND, OR, dan NOT dapat disertakan dalam

pembuatan batasan ini.

14. FOREIGN KEY

FOREIGN KEY adalah kolom pada sebuah tabel yang menunjukkan bahwa

kolom tersebut adalah primary key pada tabel lain.

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 nim di tabelmahasiswa) masih ada.Penulisan constraint foreignkey adalah :

CONSTRAINT fk_nama_constraint FOREIGN KEY field REFERENCES

nama_tabel(field)

Foreign key harus menunjuk ke primary key atau unique pada tabel lain.

15. DEFAULTNilai 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.

Page 25: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 24

16. IDENTITY

IDENTITY merupakan property sebuah field, yaitu system menciptakan nomor urut

secara otomatis pada setiap memasukkan record baru.

Penggunaan:

NamaKolom Tipe IDENTITY(No_awal, incremen)

CREATE TABLE pendaftar( no_daftar int IDENTITY(100,2), nama char(20))

Pada awalnya no_daftar adalah 100. Untuk setiap record baru berikutnya, no_daftar

akan bernilai 102, 104, 106, dan seterusnya.

17. Drop Constraint

DROP digunakan untuk menghapus constraint yang ada.

Contoh:

ALTER TABLE nama_tabel DROP fk_nama_constraint

18. Mengisi data pada Tabel

Syntax:

INSERT INTO Nama_tabel (Nama_Field1, Nama_Field2,

Nama_Field3)VALUES (data1, data2,data3);

19. Meng-copy data dari Tabel lain

Suatu kolom pada sebuah tabel dapat diisi dengan data yang sama dengan kolom

tabel lain dengan syarat type data dan panjang field kedua table tersebut

sama. Syntax:

INSERT INTO Nama_tabel_tujuan (Field1, Field2, Field3) SELECT

field_sumber1, field_sumber2, field_sumber3) FROM Nama_tabel_sumber;

Jika 2 buah tabel mempunyai struktur yang sama maka syntax di atas dapat

dipersingkat menjadi :

INSERT INTO Tabel_tujuan SELECT *FROM Tabel_asal ;

Page 26: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 25

LANGKAH-LANGKAH PRAKTIKUM:

1. Buat tabel berikut melalui QUERY ANALYZER, lengkap dengan constraint:Mahasiswa_XXX(Nim, nama, jk, alamat, kota, propinsi, telpon)Nim char 10Nama varchar 30Jk char 1Alamat varchar 46Kota char 22Propinsi char 25Telpon varchar 15

Perhatikan:- Nim merupakan primary key- Nama, Alamat tidak boleh kosong- Kota bila tidak disisi maka akan otomatis diisi dengan ‘KLATEN ‘- Jk mempunyai nilai ‘L’ atau ‘P’

2. Buat tabel Mata_kuliah_XXXMata_Kuliah (kode_mata_kuliah, Nama_kuliah, Sks)kode_mata_kuliah char 8Nama_kuliah varchar 16Sks intPerhatikan:- Kode_mata_kuliah merupakan primary key- Nama_kuliah dan Sks tidak boleh kosong

3. Buat tabel ambil_kuliah_XXXAmbil_Kuliah (kode_mata_kuliah, Nim, Nilai_Uts, Nilai_Uts,Grade)

kode_mata_kuliah char 8Nim char 10Nilai_Uts intNilai_Uas int

Grade Char 1

Perhatikan:- Kode_mata_kuliah merupakan Foreign key yang mengacu pada tabel

Mata_Kuliah_XXX (field kode_ mata_kuliah).- Nim merupakan Foreign key yang mengacu pada tabel Mahasiswa_XXX(field

Nim).- Nilai_Uts, Nilai_Uas tidak boleh melebihi 100

4. Modifikasi field Telpon pada tabel Mahasiswa_XXX sehingga type-nya

menjadi char.

Page 27: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 26

5. Isi satu record pada Data mahasiswa yang telah dibuat. Perintah SQL nya

adalah :

INSERT INTO Mahasiswa_XXX (Nim,Nama,Jk,Alamat,Kota,Propinsi,Telpon)

VALUES (‘0571100138’,’moenawar kholil’,’L’,’Jl. Klaten-Yogya

Gondang’,’Klaten’,Jateng’,’08112635143’)

5. Tambahkan data di bawah ini:NIM NAMA JK

ALAMATKOTA PROPINSI TELFON

0571100139

Agnes

Monica

P Jl. Karya Timur

280

Jakarta DKI

Jakarta

0216452444

0571100140

M.Yoesni

L Jl. Sunan Giri

V/16

Gresik Jatim 031772739

0571100141

Antoni

Stevens

L Jl. Melati XI/234 Klaten Jateng 0811226633

6. Tampilkan data dari tabel Mahasiswa_XXX

Perintah SQL:

SELECT * FROM Mahasiswa_XXX;

Page 28: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 27

Praktikum 3MEMANIPULASI DATA

Tujuan :

1. Praktikan mampu untuk memanipulasi data dan mampu mencari data(Retrieval)

Landasan Materi :

1. Mengupdate data pada Tabel

Syntax:UPDATE Nama_tabel SET Field1=Data1,Field2=Data2,Field3=Data3 WHERE

kondisi1,kondisi2

Contoh :Merubah data mahasiswa dengan NIM ‘0571100141’ pada Mahasiswa_XXXdengan data baru

UPDATE Mahasiswa_XXX SET Alamat=’Jl. Candi IIIB

No.111’,kota=’Klaten’,Telpon=’0341567448’ WHERE nim=’98111761’

Pemanfaatan operasi aritmatika untuk merubah data. Misalnya Sebuah

perusahaaan akan menaikkan gaji pegawainya sampai 20 %.

UPDATE Data_Gaji SET gaji=gaji*1.2

2. Menghapus data pada Tabel

Syntax:

DELETE FROM Nama_tabel WHERE kondisi1

Dalam menghapus dan update bisa dilakukan untuk menghapus banyak

baris atau menghapus semua isi dari tabel tergantung dari kondisi yang

diberikan.

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 :

DELETE FROM Mahasiswa_XXX WHERE Alamat=’Gresik’

Page 29: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 28

3. Mencari Data / Retrieval (SELECT)

Select adalah instruksi yang paling banyak digunakan dalam SQL.SELECT

memilih spesifik kolom dari satu atau beberapa tabel.Secara umum bentuk SELECT adalah:

SELECT Kolom1, kolom2, … FROM NamaTabel WHERE predikat

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 bahwakolom

yang dipilih adalah seluruh kolom yang ada pada tabel tersebut.

SELECT * FROM mata_kuliah_XXX

mempunyai arti sama dengan:

SELECT Kode_mata_kuliah, Nama_Kuliah, Sks FROM Mata_Kuliah_XXX

Contoh berikut menampilkan Nama_kuliah dan Sks:SELECT Nama_kuliah, Sks FROM Mata_kuliah_XXX

4. Predikat dengan WHERE

Dengan menggunakan WHERE, maka seleksi dilakukan tidak pada

seluruh record, melainkan hanya pada record yang memenuhi syarat.

Bentuk klausa WHERE adalah:

WHERE Kolom <operator> <nilai>

Beberapa operator yang berlaku yaitu:

= sama dengan<> tidak sama dengan< lebih kecil<= lebih kecil atau sama> lebih besar>= lebih besar atau samaContoh :Tampilkan data kuliah yang jumlah sks nya dibawah 3

SELECT * FROM Mata_kuliah WHERE sks < 3

Page 30: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 29

5. AND, OR, dan NOT

Untuk menggabungkan lebih dari satu kondisi, diperlukan logical ANDdan

OR. Sedangkan untuk negasi, diperlukan NOT Contoh tampilkan Mahasiswalaki laki yang berasal dari Klaten

SELECT Nama, Alamat, Kota FROM Mahasiswa_XXX WHEREkota=‘Klaten’ AND jk=‘L’

Prioritas AND lebih kuat dari OR, sehingga kondisi OR harusdipisahkan dalam kurung sebelum AND.

6. BETWEEN dan NOT BETWEENBETWEEN menyederhanakan pencarian “antara” (range) seperti berikut:

Cari Nama_kuliah yang mempunyai sks antara 1 sampai 3. DenganmenggunakanBETWEEN maka bentuk query adalah :

SELECT Kolom1, Kolom2 FROM tabel WHERE kolom BETWEEN nilai1 AND

nilai2

Contoh :Cari Nama_kuliah yang jumlah Sks nya tidak diantara 1 sampai 3 jam

SELECT * FROM kursus WHERE JumlahJam NOT BETWEEN 30

AND 40

7. LIKE & NOT LIKE

Umumnya LIKE digunakan untuk permintaan yang mencari suatu

teks berdasarkan prefix (kata depan), sufix (kata akhir) atau kata tengah.

SELECT Kolom1, Kolom2, .. .. FROM NamaTabel WHERE Kolom LIKE nilai

Contoh :Cari Mahasiswa yang bertempat tinggal di kota“Klaten”

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kotaLIKE ‘Klaten’

Cari Mahasiswa yang tempat tinggalnya dimulai dengan‘B’

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kotaLIKE ‘G%’

Perhatikan bahwa tanda % menyerupai “wild character” yang bisa di variasidalam menggunakannya. tanda % adalah terdiri dari 0,1 atau beberapakarakter, maka tanda _ (under score/garis bawah) merepresentasikan persissatu karakter.

Page 31: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 30

NOT LIKE digunakan sebagai negasi misalnya dengan pertanyaanContoh :Cari Mahasiswa yang alamat rumahnya tidak dimulai dengan“Jl.”

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHEREalamat NOT LIKE ‘%Jl%’

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 :Cari perserta yang bertempat tinggal di kota “Klaten” dan “Jakarta”

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kotaIN ('Klaten','Jakarta')

Bila di negatifkan pertanyaan tersebut, maka hasilnya adalah :

SELECT nama, alamat, kota FROM peserta WHERE kota NOT IN('Klaten','Jakarta')

9. IS NULL & IS NOT NULL

NULL adalah nilai yang belum diisi. NULL tidak identik denganspasi(blank).

10. Tampilan Tersusun (Sortir)

Tampilan dari hasil SELECT dapat di susun (sort) menurut satu atau

beberapa kolom.

SELECT Kolom1,Kolom2,… FROM namatabel WHERE predikat ORDER BY

Kolom

Bila kunci kata where tidak diberikan, maka seluruh record dalam tabelakan ditampilkan.Contoh : Tampilkan seluruh mahasiswa menurut abjad

SELECT * FROM Mahasiswa_XXX ORDER BY inisialSusunan dapat diatur dari A ke Z (ASCending)atau dari Z ke A(DESCending). Defaultnya adalah ASC.Untuk menyususn secara terbalik adalah :

SELECT * FROM Mahasiswa_XXX ORDER BY inisial DESC

Page 32: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 31

11. DISTINCT

DISTINCT menghilangkan nilai ganda, sehinggga membuatnyamenjadi tunggal. Hal ini dilakukan dengan mengeliminasi nilai yang sama.Contoh : Berasal dari kota mana saja mahasiswa yang ada ?

SELECT kota FROM mahasiswa_XXXuntuk menghilangkan duplikasi pada tampilan, maka digunakan kuncikata DISTINCT

SELECT DISTINCT kota FROM mahasiswa_XXX

Langkah selanjutnya :

Ikuti langkah-langkah praktikum.

Langkah-langkah praktikum :

Agar anda dapat lebih memahami tentang manipulasi data ikutilah

langkah - langkah berikut ini :

a) Aktifkan Tools Query Analyzer

b) Update semua data mahasiswa yang beralamat di klaten sehingga

alamatnya berubah menjadi ’Jl.Raya tidar 100 klaten’ dan nomor

telfonnya menjadi ‘0341567448’

c) Isikan data berikut pada tabel Mata_Kuliah_XXX yang telah anda

buat pada praktikum II

KODE_mata_kuliah NAMA_KULIAH SKS

TKD1113 Fisika Dasar 3

TKD1111 Manajemen Umum 2

TKD1224 Matematika Diskrit 3

TKK1248 Praktikum Visual Basic 1

TKK1247 Tugas Akhir 6

TKK1249 Sistem Berkas 4

d. Update kolom SKS, sehingga jumlah SKS menjadi 2 kalinya

d) isi data pada tabel ambil_kuliah :

Page 33: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 32

Kode_mata

_kuliah

Nim Nila

i_Ut

s

Nilai_

Uas

Gr

ad

eTKD1113 0571100138 60 60 C

TKD1111 0571100139 75 80 B

TKD1224 0571100138 89 98 A

TKK1249 0571100140 57 61 C

TKK1248 0571100141 40 55 D

e) Lihat daftar mahasiswa wanita yang berasal bukan dari Klatenf) Cari nama mahasiswa yang namanya dimuali dengan huruf ‘D’,

huruf kedua tidak di ketahui, huruf ketiga adalah ‘D’ dan hurufselanjutnya tidak diketahuai

g) Cari nama mahasiswa yang namanya dimulai dengan huruf ‘F’, hurufkedua tidak di ketahui, huruf kelima adalah ‘i’ dan hurufselanjutnya tidak diketahuai

h) Tampilkan seluruh Mahasiswa yang tidak lulusi) Tampilkan mahasiswa yang punya nilai ‘A’ dan bertempat tinggal diluar

Klaten atau Jakarta (gunakan IN)j) Susun daftar Mahasiswa menurut abjad, namun dibuat berdasarkan

alamat kota merekak) Tampilkan nama kota tersusun dari secara descending dari paramahasiswal) Tampilkan nilai mahasiswa dari yang paling besar ke yang

paling kecil,hilangkan duplikasi tampilan (untuk nim yang sama).

Page 34: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 33

Praktikum 4FUNGSI DALAM SQL

Tujuan :

1. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL

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

SELECT AVG(field_numerik) from nama_tabel

Nilai perbandingan adalah hasil dari query baru (yang disebut sebagai

“subquery”).Contoh :

SELECT * FROM Ambil_kuliah_XXX WHERE nilai_uas>(select

AVG (nilai_uas) from ambil_kuliah_XXX)

4. MAX

Mencari maksimum

SELECT MAX(nilai_uas) FROM ambil_kuliah_XXX

5. MIN

Mencari minimum

SELECT MIN(nilai_uas) FROM ambil_kuliah_XXX

Page 35: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 34

6. COUNT

Menghitung record dengan kualilfikasi tertentu. COUNT(*) menyatakan hitung seluruh

record yang berlaku.

SELECT COUNT(*) FROM mahasiswa_XXX

7. SUM

Menjumlah nilai dari kolom tertentu

SELECT SUM(nilai_uas) FROM ambil_kuliah_XXX

8. GROUP BY

Group By Menyeleksi himpunan yangdihitung berdasarkan fungsi spesifik seperti

AVG, COUNT atau lainya.

SELECT nim,COUNT(*) FROM ambil_kuliah GROUP BY nim

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 :

SELECT nim,AVG(nilai_uas) FROM ambil_kuliah GROUP BY nim HAVING

AVG(nilai_uas)>80

10. JOIN

Join adalah teknik yang digunakan untuk mengakses lebih dari satu tabel dan

menggabungkan hasilnya. Perhatikan tabel sesi di bawah ini

SELECT nim, mahasiswa_XXX.nama, grade FROM ambil_kuliah_XXX,

mahasiswa_XXX WHERE ambil_kuliah_XXX.nim=mahasiswa_XXX.nim

11. Menggunakan Alias

Alias digunakan untuk menyederhanakan tulisan, agar tidak terlalu panjang.

SELECT nim, mahasiswa_xxx.nama, grade FROM ambil_kuliah_XXX,

Page 36: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 35

mahasiswa_XXX WHERE ambil_kuliah_XXX.nim=mahasiswa_XXX.nim

Penulisan dapat disederhanakan menjadi :SELECT nim,M.nama,grade,FROM ambil_kuliah_XXX A,mahasiswa_XXX M

WHERE A.nnim=M.nim

Join biasa dilakukan pada 2 buah tabel atau lebih.

Langkah selanjutnya :

Ikuti langkah-langkah praktikum.

Langkah-langkah praktikum :

Agar anda dapat lebih memahami tentang manipulasi data ikutilah langkah -

langkah berikut ini :

a) aktifkan Tools Query Analyzer

b) Buat tabel asisten_XXX dengan ketentuan :

Asisten_XXX(kd_ass,Nim)Kd_ass char 10

Nim char 10Kd_ass merupakan primary key

Nim merupakan foreign key yang mengacu pada tabel mahasiswa_XXX

c) Buat tabel praktikum_XXX dengan ketentuan :

praktikum_XXX(kd_prak, nama_praktikum,ruang)kd_prak char 10Nama_praktikum Varchar 30Ruang varchar 46

Kd_prak merupakan primary key

d) Buat tabel honor_XXX dengan ketentuan :

honor_XXX(kd_ass, jumlah_jam,honor)kd_ass char 10jumlah_jam inthonor float

kd_ass merupakan foreign key yang mengacu pada tabel asisten_XXX (field kd_ass)

e) Isi data asisten_XXX :

Kd_ass NIM

S10054 0571100138

Page 37: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 36

S78678 90571100140

S45389 0571100138

f) Isi data praktikum_XXX :

Kd_prak Nama_praktikum Ruang

P10054 Pascal Lan A dan Lan B

P22094 Turbo C++ Unix

P90877 Ms.Sql Server2000 Database

P78678 Cobol Lan A dan Lan B

P45389 Rpg As400

S43535 Html HTML

S56743 Operation Research Unix

g) Isi data honor_XXX :

Kd_ass Jumlah_jam Honor

S10054 12 96000

S78678 6 48000

S45389 8 64000

h) Tambahkan 10% honor untuk mereka yang mempunyai honor dibawah rata-rata

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 (nim,nama,alamat)yang honornya

paling kecilm) Berapa banyak asisten yang honornya diatas rata-rata

n) Hitung jumlah honor asisten yang honornya diatas rata-rata

Page 38: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 37

Praktikum 5

VIEW DAN INDEXTujuan :

1 Praktikan mampu memahami view dan index.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”.

Secara umum aturan membuat VIEW adalah:

CREATE VIEW NamaView (Kolom1, Kolom2) AS SELECT Kolom1, Kolom2

FROM NamaTabel WHERE predikat

Sebagai contoh adalah sebuah VIEW yang terbentuk dari satu tabel:CREATE VIEW v1 AS SELECT nim, Nama FROM mahasiswa_XXX

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi

kolom yang yang dipilih pada tabel mahasiswa_XXX.

Menjalankan view diatas :SELECT * FROM v1

a. Menghapus VIEW

VIEW dapat dihapus dengan menggunakan DROP VIEW seperti berikut:

DROP VIEW v1

b. VIEW Dari Beberapa Tabel

VIEW dapat diciptakan dari beberapa tabel, misalnya sebuah join sederhana sepertiberikut:VIEW V4 terdiri atas kolom yang dihasilkan melalui SELECT, yaitumahasiswa_XXX, Asisten_XXX, dan honor_XXXCREATE VIEW v4 AS SELECT A.nim, M.nama FROM asisten_XXX

A,Mahasiswa_XXX M WHERE A.nim=M.nim

c. Mengubah VIEW

Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan syntaxalter pada tabel.

Page 39: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 38

d. Updating dan insert data Melalui VIEW

Updating dapat dilakukan ke dalam VIEW dengan memberikan nilai seperti padainserting dan updating tabel. Namun perlu diperhatikan “NOT NULL” optioandan CONSTRAINT lainnya, sebelum memasukkan nilai ke dalam VIEW.

CREATE VIEW v6 (name, address, city) AS SELECT nama, alamat, kota FROMmahasiswa_XXX WHERE kota=’JAKARTA’INSERT INTO v6 values (‘Dandi Romo’, 9, ‘BANDUNG’)

Perhatikan bahwa walaupun dalam WHERE dibatasi kota=’JAKARTA’, namunSQL tidak dapat menolak nilai kota yang bukan ‘JAKARTA’Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada akhir instruksiharus ditambahkan “WITH CHECK OPTION”

Contoh :ALTER VIEW v6(name, address, city) AS SELECT nama, alamat, kota FROMmahasiswa_XXX WHERE kota=’JAKARTA’ WITH CHECK OPTION

INSERT INTO v6 values (‘Galih Galinggis’,10, ‘BANDUNG’)Akan muncul error : ERROR

at line 2:ORA-01402: view WITH CHECK OPTION where-clause violation

e. Batasan Manipulasi Melalui VIEW

Melalui VIEW dapat dilakukan INSERT, UPDATE, dan DELETE denganbeberapa limitasi yaitu:

Tidak dapat memasukkan record baru jika mengabaikan nilai NOT NULLpada basis tabel dari VIEW tersebut.

Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom dalamVIEW merupakan hasil kalkulasi atau hasil dari nilai balik fungsi.

Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalamVIEW terdapat GROUP BY atau DISTINCT.

2. INDEXa. Penggunaan Index

Dalam konteks SQL-Server, index adalah sebuah obyek database yang dibuatberdasarkan kolom dalam tabel.Index mempercepat pencarian data. Dengan menggunakan index ,data tidak perludicari dari awal hingga akhir, melainkan menggunakan algoritma pencarian yangefisien, sehingga waktu proses menjadi semakin cepat. Tanpa index, prosespemanggilan table scan terjadi, yang berarti query processor harus melalui masing-

Page 40: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 39

masing record dalam tabel secara indvidual untuk menemukan record yang sesuaidengan kriteria yang dipilih. Proses ini sama dengan mengalokasikan informasispesifik di dalam buku. Anda dapat menggunakan daftar isi atau index untukmenemukan topik tertentu secara mudah. Tanpa itu semua, Anda harusmembuka dan mencari melalui semua halaman sampai Anda menemukan yangAnda cari.Index mempunyai Overhead selain tempat memory yang lebih besar, jugareorganisasi data karena operasi insert dan delete menjadi lebih kompleks.Dengan demikian index tidak boleh digunakan secara sembarang, melainkandengan perencanaan dan performance tuning yang baik.

b. Memilih kolom untuk indexIndex dipilih berdasarkan selektifitas dari query yaitu beberapa sereing recorddiakses melalui select, update atau delete. Selektifitas dipengaruhi oleh criteriapencarian, yaitu bagaimana memenuhi criteria tersebut dengan mengakses atributapa saja.Hal-hal yang dapat dijadikan landasan untuk membuat index adalah :

o Kolom yang sangat sering dicario Primary key dan Foreign keyo Kolom yang diakses secara abjado Kolom yang diakses dan sering digunakan dengan joino Kolom yang sering dicari berdasarkan urutan (range)o Kolom yang sering menjadi predikat pada kunci kata “Where”

Hal-hal yang menyarankan untuk tidak menggunakan index adalah :o Hasil query melebihi 20% jumlah recordo Kolom yang mempunyai nilai valid sedikit (misalnya jenis kelamin)o Panjang kolom yang besar.

Untuk melihat index yang sudah ada gunakan stored procedure sp_helpindexnamatabel dan sp_spaceused untuk mengetahui pemakaian disk.

c. Clustered IndexDengan Clustered index secara fisik record disusun sesuai dengan susunan index.Dengan demikian hanya ada satu clustered index yang boleh didefinisikan dalamsatu tabel. Primary key adalah kandidat baik untuk menjadi clustered index (indexsecara implicit diciptakan melalui constraint primary key). Dalam menciptakanindex, maka secara default otomatis yang dipilih adalah non clustered index. Caramembuat index adalah:

DROP INDEX CI_NoPegCREATE CLUSTERED INDEX CI_NoPeg ON Pegawai (NoPeg)

DROP dijalankan untuk memastikan bahwa index tersebut belum ada.

Page 41: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 40

d. Non Clustered IndexDalam non clustered index secara fisik susunan record tidak berpengaruh. Nonclustered index menyimpan pointer yang menunjuk ke baris atau record dari tabel.Dalam sebuah tabel dapat dibuat banyak non clustered index, sejauh index tersebutdibutuhkan. Dalan syntax create index pilih NONCLUSTERED adalah default.Cara membuatnya adalah:

DROP INDEX NI_NamaCREATE NONCLUSTERED INDEX NI_Nama ON Pegawai (Nama)

Atau:CREATE INDEX NI_Nama ON Pegawai (Nama)

e. Unique IndexSecara otomatis unique index diciptakan melalui constraint primary key danunique. Sistem akan memeriksa setiap saat record baru diciptakan atau di-update.Membuat unique index secara manual adalah:

CREATE UNIQUE INDEX UI_KTP ON Pegawai (KTP)

Langkah-langkah praktikum :a. Aktifkan Tools Query Analyzerb. 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 Nim, Nama, Alamat, dan

nomor telpon dari mahasiswa_XXX dimana hanya mahasiswa yangmempunyai nama‘Agnes Monica’dan nomor telfonya = 031772739 saja.

d. Isi data pada data mahasiswa_XXX melalui view yang dibuat dengan data :

NIM NAMA JKALAMAT

KOTA PROPINSI TELFON

98111724 Wendy

Setiawan

L Jl.hartako

no.1

Makassar Sulsel 0411869174

98111720 Indra

Rahmanto

L Jl.Merak

timur No. 99

Blora

Cepu Jatim 023772739

e. Buat view dari tabel honor_XXX dan Lakukan update data honor denganmemberikan THR pada setiap assiten dengan jumlah 23 % dari honor yang

diterima.

Page 42: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 41

f. Buat view dari tabel honor_XXX dan Lakukan update data honor denganmemberikan bonus bagi yang mengajar lebih dari 10 jam sebasar 5 % daritotal honor yang diterima.

g. Buat view dari tabel praktikum_XXX dan Lakukan update data ruangan menjadiUNIX bila kd_prak memiliki angka ganjil di setiap akhir kode. Gunakan fungsi IN

Page 43: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 42

Praktikum 6

TRIGGERTujuan :

1 Praktikan mampu memahami trigger.2 Praktikan mampu membuat trigger.

Landasan Materi :1. Database Trigger

Trigger adalah blok program transact-SQL yang diassosiasikan dengan tabel dandisimpan dalam database. Trigger dieksekusi bila terjadi suatu database “event”.Database event adalah insert, update dan delete.Trigger akan beraksi bila terjadi misalnya :

- sebuah baris baru (record) dimasukkan ketabel- peremajaan record- penghapusan record

Karena itu sebuah trigger terdiri atas :- uraian, kapan trigger dilepaskan (fired)- tabel yang diassosiasikan dengan trigger tersebut- program transact-sql yang dijalankan oleh trigger tersebut

Manfaat Trigger Meluruskan aturan-aturan yang harus berlaku Menjaga nilai sebelum dimasukkan ke dalam database Keamanan Sistem Membuat historical record (riwayat perubahan) Dan lain-lainDeklarasi Trigger :

CREATE TRIGGER namatriggerON namatabel for insert,update,delete

ASDECLARE ………….. <deklarasi variable>

Tergantung dari event yang dipilih :FOR INSERT

Trigger aktif pada saat record baruFOR UPDATE

Trigger aktif pada saat record diubahFOR DELETE

Page 44: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 43

Trigger aktif pada saat record dihapusUntuk melihat efek trigger, berikut adalah contoh sebuah tabel sederhana. Triggermytrigger akan dilepaskan, setiap kali tabel tersebut diisi dengan record baru.

CREATE TRIGGER mytrigger ON mahasiswa_XXX FOR INSERTAS PRINT 'Record baru :' +CONVERT(char(30),getdate(),103 +’ By

Big_bugsBSD 2002’)

Trigger yang bernama mytrigger dibuat dan setiap sesudah record baru diisi ke tabel,maka program trigger akan aktif.

Test trigger yang baru dibuat :INSERT INTO mahasiswa_XXX (nim,nama,jk,alamat,kota,propinsi)values(‘00111362’,’Anang Fatoni','L','Jl.Sepanjang 80 GDL,'Klaten',’Jateng’)

Hasil :Record baru :08/08/2002 By Big_bugsBSD 2002 (1 row(s) affected)

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”

CREATE TRIGGER mytrigger ON mahasiswa_XXX FOR INSERT ASPRINT 'Record baru :' +CONVERT(char(30),getdate(),103) SELECTNo_peserta,nama,jk,alamat,kota FROM inserted

Test Trigger:INSERT INTO peserta (nim,nama,jk,alamat,kota) values (00123513,'AhmadAan','L','Jl.Sepanjang 80','Klaten')

Hasil:Record baru :06/05/2002No_peserta Nama JK Alamat Kota---------------- ---------------- --- -------------------------- -------------13 Ahmad Aan L Jl. Sepanjang 80 GL Klaten(1 row(s) affected)

Demikian juga pada saat terjadi proses pengupdate-an dan penghapusan databisa memanggil koleksi record yang dihasilkan.

2. Menghapus Trigger

Page 45: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 44

Menghapus trigger dilakukan dengan instruksiDROP TRIGGER NamaTrigger

Contoh:DROP TRIGGER trupd1

LANGKAH_LANGKAH PRAKTIKUM:a. Aktifkan Tools Query Analyzerb. Buat sebuah tabel prak_jln_XXX dengan ketentuan :

id_dtr : char 5peserta : intmax : intid_dtr merupakan primary keymax merupakan jumlah maksimum praktikan dalam satu sesi

c. Buat sebuah tabel daftar_praktikum_XXX dengan ketentuan :no_daftar : intnim : char 10kd_prak : char 10id_dtr : char 5No_daftar merupakan primary key dan otomatis isinya dimulai dengan 1

(gunakan identity)Nim mereferensi ke tabel Mahasiswa_XXX (field nim)Kd_Prak merupakan referensi ke tabel praktikum_XXX (field kd_prak)Id_dtr foreignkey ke tabel prak_jln_XXX (field id_dtr)

d. Isi data pada 2 buah tabel yang telah dibuat minimal 3 data secara variasi.e. Dengan menggunakan 2 tabel yang sudah dibuat, buatlah trigger yang setiap

kali jika ada pendaftar baru maka jumlah peserta pada tabel prak_jln_XXXakan ditambahkan 1. Sebaliknya jika ada pendaftar yang dihapus maka jumlahpeserta akan dikurangi 1. Perhatikan bahwa awalnya kolom jumlah peserta padatabel sesi adalah kosong, yang berarti NULL, bukan 0. Oleh karena itu untukmengubah nilai NULL, diperlukan fungsi ISNULL (namavariable,0) sebagaiberikut:

UPDATE sesi SET jumlahpeserta = ISNULL (jumlahpeserta,0) +1f. Dengan menggunakan 2 tabel yang sudah dibuat, rubahlah trigger yang telah

dibuat pada langkah ‘e’ dimana setiap kali jika ada pendaftar baru maka jumlahmaksimal peserta pada tabel prak_jln_XXX akan dikurangi 1. Sebaliknya jika adapendaftar yang dihapus maka jumlah peserta akan ditambah 1.

g. Buat sebuah trigger yang mencatat riwayat honor asisten (historical), yakni setiapkali ada perubahan honor asisten, maka perubahan itu akan dicatat di tabel khususyang bernama h_asisten_XXX

Struktur tabel h_asisten_XXX

Page 46: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 45

Kd_ass char 10honor floattgl_update datetime

h. Lakukan testing terhadap trigger yang telah dibuat dengan memperhatikan carakerja trigger tersebut.

Page 47: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 46

Praktikum 7

TRANSACT-SQLTujuan :

1. Praktikan mampu untuk mengerti dan memahami Transact-SQL

Landasan Materi :1. Transact-SQL

TRANSACT-SQL adalah bahasa pemrograman yang dikembangkan dari SQL.Seperti diketahui SQL adalah bahasa non procedural, artinya alur program tidakseperti bahasa pemrograman bisa, melainkan melalui “request” dan “response”.

Melalui perintah SQL seseorang melakukan query atau transaksi, yang kemudianakan menerima jawaban dari Database Server berupa hasil atau ResultSet.

Query dan transaksi dilakukan di bagian Client,sedangkan pemrosesan dilakukanpada Server.

Transact-SQL mengembangkan kemampuan SQL, sehingga Transact-SQL dapatmelengkapi SQL dengan instruksi logic (procedural logic), yaitu program aplikasi.

Hasil proses SQL-Server (ResultSet) dapat diolah lebih lanjut dengan menggunakanlogic 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 blokprogram.Variable harus dideklarasikan sebelum digunakan. Nama variable selalu dimulaidengan karakter @. Variable dapat diberikan nilai melalui instruksi SELECT.

DECLARE/* deklarasi variable */@v1 int,@nama varchar(30)

Keterangan :SELECT digunakan juga untuk eksekusi aritmatika atau lainnya. Misalnya :

SELECT @v1 = @v1 - 100Variable dapat digunakan untuk mengambil nilai dari sebuah query: Contoh

:DECLARE @nama char(30)SELECT @nama = nama

FROM mahasiswa_XXX WHERE nim=’98111761’ PRINT@nama

Hasil:

Page 48: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 47

Aan IsnainiPRINT adalah fungsi yang menampilkan teks dan variable pada console (layar).

Contoh:PRINT “Nama yang ditemukan adalah :”PRINT @namaPRINT “Nama yang ditemukan adalah :”+@nama

3. Menjalankan Program Transact-SQLDeklarasi Variable

Tipe dari variable yang dapat dideklarasikan adalah bagian dari Ms. SQL yaituchar, varchar, datetima, int, money, dan lainnya.

Contoh deklarasi Variable:

DECLARE@honor int,@total int,@nama varchar(30),@instansi char(10),@tgl_hari_ini datetime,@tgl_nanti datetimeSELECT @honor=300000SELECT @nama=’HUGO LOMBARDI’ SELECT@tgl_hari_ini=getdate() SELECT@instansi=’ECOMODA’ SELECT@tgl_nanti=@tgl_hari_ini PRINT ( ‘Honor andaadalah’)PRINT ( @honor )PRINT ( @nama ) PRINT (@instansi ) PRINT (@tgl_hari_ini ) PRINT (@tgl_nanti )

Hasil:Honor anda adalah300000HUGO LOMBARDIECOMODAMAY 5 2002 10:18AM MAY 52002 10:18AM

Page 49: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 48

4. Variable GlobalVariable global adalan variable yang disiapkan oleh SQL-Server untuk memberikan

informasi kepada Client. Variable global bersifat read-only.

Nama variable global diawali dengan @@.@@error adalah bilangan bulat yang menyatakan nomor error. Jika variable

tersebut tidak sama dengan 0, maka system memberikan indikasi bahwaterjadi 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.@@identity memberikan nilai otomatis setiap kali INSERT dilakukan. Nilai ini adalah

identitas dari record tersebut.@@nestlevel adalah nesting level dari stored procedures atau triggers@@rowcount memberikan nilai balik berupa jumlah baris (rows) yang

terpengaruh oleh instruksi terakhir. Setelah instruksi IF atauWHILE, maka @@rowcount dihapus menjadi 0.

@@spid adalah Server Process Id5. IF

IF digunakan dalam mengendalikan alur program berdasarkan kondisi.

IF kondisiInstruksi

IF kondisiInstruksi1

ELSE Instruksi2IF kondisiBEGIN

Contoh:DECLARE @honor int,

@rata_rata intSELECT @honor=100000SELECT @rata_rata=200000IF @honor > @rata_rata

PRINT “Honor diatas rata-rata” ELSEPRINT “Honor dibawah rata-rata”

Hasil:Honor dibawah rata-rata

Bila diaplikasikan pada tabel asisten_XXX, maka nilai honor dapat diambil dariasisten:

DECLARE @honor int,@rata_rata int,

@asisten char(8) SELECT

Page 50: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 49

@asisten=’98111761’SELECT @honor=honor FROM asisten_XXX WHERE nim=@asistenSELECT @rata_rata=200000IF @honor > @rata_rata

PRINT “Honor diatas rata-rata” ELSEPRINT “Honor dibawah rata-rata”

penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih dari satuinstruksi..

6. WHILEWHILE digunakan dalam mengeksekusi satu blok program berulang-ulangsampaikondisi pada WHILE menjadi false.

WHILE kondisiBEGIN…

…Contoh:

DECLARE @I intSELECT @i=5WHILE @i > 0BEGIN

PRINT “ i = “+str( @i)SELECT @i = @i - 1

END

Perhatikan bahwa fungsi str() diperlukan untuk mengkonversi bilangan integermenjadi string (teks).

7. CONTINUE dan BREAKCONTINUE dan BREAK berkaitan dengan WHILE. CONTINUE melanjutkanalur program pada pemeriksaan kondisi WHILE, sedangkan BREAK mengakibatkanalur program keluar dari WHILE.

WHILE kondisi1BEGIN

……

IF kondisi2CONTINUE

… ENDWHILE kondisi1

BEGIN…

IF kondisi2

Page 51: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 50

8. RETURN

RETURN akan menghentikan program dari eksekusi. RETURN dapat digunakandalam memproses error.

IF @@error <> 0BEGIN

PRINT “Error…”RETURN

9. CASECASE menyederhanakan IF yang berlapis dengan tujuan agar program dapatdimengerti/dibaca lebih mudah.

IF kondisi1ELSE IF kondisi2ELSE IF kondisi3ELSE Dapat

diganti:CASE

WHEN kondisi1 THEN WHENkondisi1 THEN WHEN kondisi1THEN

ELSEContoh:

DECLARE @t char(1),@hasil varchar(255)

SELECT @t=’B’ SELECT@hasil=CASE

WHEN @t=’A’ THEN‘Karakter A’ WHEN @t=’B’

THEN‘Karakter B’ ELSE‘Tidak diketahui’

ENDPRINT “Hasil adalah “+@hasil

Hasil:Hasil adalah : Karakter B

Perhatikan bahwa CASE diatas digunakan untuk mengambil nilai variable:SELECT @hasil=CASE

Berikut adalah variasi dari CASE:

Page 52: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 51

DECLARE @t char(1),@hasil varchar(255)

SELECT @t=’X’ SELECT@hasil=CASE @t

WHEN ’A’ THEN‘Karakter A’ WHEN

’B’ THEN‘Karakter B’

ELSE‘Tidak diketahui’ ENDPRINT “Hasil adalah +@hasil

Contoh pada SQL-Query:DECLARE @jk char,

@nama varchar(16),@teks varchar(255)

SELECT @jk=jk, @nama=nama FROM mahasiswa_XXX WHEREnim=’98111724’SELECT @teks= CASE@jk

WHEN ’L’ THEN ‘Laki-laki’ WHEN ’P’THEN ‘Perempuan’ ELSE ‘?’

ENDPRINT @nama + “ adalah “ + @teks

Hasil:Wendy Setiawan adalah Laki-laki

Langkah-langkah praktikum :

a. Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung dari tabelasisten_XXX. Buat keterangan bahwasannya assieten tersebut memiliki honordiatas rata-rata atau dibawah rata-rata.

Page 53: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 52

PRAKTIKUM 8STORED PROCEDURE

Tujuan :

1. Praktikan mampu untuk memahami stored procedure.

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 berawalansp, dan extended stored procedure (xp), program yang dikompilasi sebagai EXE atauDLL (Dynamic Link Library).

Membuat Prosedur

CREATE PROCEDURE NamaProsedur ASDeklarasi_variable…

CREATE PROCEDURE dapat disingkat dengan CREATE PROC. Berikut adalahcontoh sebuah prosedur yang menampilkan honor instruktur:

CREATE PROCEDURE pr_honor ASSELECT kd_ass, honor FROM honor_xxx

RETURNMenjalankan prosedur tersebut dengan EXEC atau langsung nama prosedure

EXEC pr_honor

Untuk mengkoreksi sebuah prosedur, maka kunci kata ALTER harus digunakan.ALTER PROCEDURE pr_honor ASSELECT kd_ass, honor,jumlah_jam FROM honor_xxx

Untuk menghapus prosedur gunakan DROPDROP PROCEDURE NamaProsedur

Untuk secara otomatis mengubah prosedur tanpa ALTER, dapat dibuat scriptsebagai berikut:

USE ilkom_xxx

Page 54: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 53

IF EXIST (SELECT name FROM sysobjects WHERE name = ‘pr_honor’ ANDtype = ‘P’) DROP PROCEDURE pr_honor go

CREATE PROCEDURE pr_honor AS SELECT kd_ass, honor,jumlah_jamFROM honor_xxx go

2. ParameterProsedur dapat mempunyai parameter berupa variable yang disuplai olehprogram yang memanggilnya.

CREATE PROC NamaProsedur (@p1 int, @p2 char(16), …) ASDeklarasi_variable

Pada saat eksekusi, parameter diberikan sebagai berikut:EXEC namaprocedure 210,’teks’,…

Contoh:Tampilkan honor untuk asisten tertentu yang diberikan berdasarkan kode asisten

ALTER PROCEDURE pr_honor (@ini char(6))AS selectjumlah_jam,honor from honor_xxx where kd_ass=@ini

Cara mengeksekusi :EXEC pr_honor ‘S56743’

Hasil :Jumlah_jam honor

------------------- -----------

42 330000

3. Nilai DefaultBila pada saat eksekusi procedure tidak diberikan parameter, maka nilaiparameter tersebut menjadi kosong (null). Untuk menghindari niali null, makapemberian nilai pada parameter dapat menggunakan nilai default.

ALTER PROCEDURE pr_honor (@ini char(6)=’S56743’)AS selectjumlah_jam,honor from honor_xxx where kd_ass=@iniRETURN

EXEC pr_honor ‘S90877’ Hasil :Jumlah_jam honor------------------- -----------

Page 55: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 54

34 200000EXEC pr_honor

Hasil :Jumlah_jam honor------------------- -----------

42 330000Berikut adalah contoh program yang menedeteksi parameter, bila kosong makapesan error akan ditampilkan.

ALTER PROCEDURE pr_honor (@ini char(6)=null)ASif @ini=null begin

declare @pesan char(6) select@pesan='kosong' print @pesan

returnend

select jumlah_jam,honor from honor_xxx where kd_ass=@iniRETURN

4. Parameter OutputNilai parameter bisa diolah pada program procedure dan untuk kemudianparameter tersebut dapat diubah dan diberikan nilainya pada program yangmemanggilnya.

CREATE Proc m@p1 int, @p2 int, @h int OUTPUTas select @h=@p1*@p2

Eksekusi :EXEC m 10,20,@hsl OUTPUTprint 'hasil = ' +str(@hsl)

Pada contoh ada 3 parameter, yaitu p1 dan p2 sebagai input parameter dan hsebagai 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 berupaparameter output @dana@dana akan dibaca oleh program yang memenggilnya dan mencetak hasilnya kelayar.

create proc pr_honor1 @ini char(6)=null,@dana int output asif @ini=null

beginprint 'parameter kosong' return

endselect @dana = honor from honor_xxx where kd_ass=@ini return

Page 56: Modul Praktikum Basis Data Lanjut

MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)

By.Mr.Kholil (1-2011-2012) Page 55

Eksekusi :DECLARE @h intEXEC pr_honor1 ' S56743',@h OUTPUTprint 'honor = ' +str(@h)

Langkah-langkah praktikum :

a. Buat sebuah Store Procedure untuk menghitung Nilai rata-rata langsung daritabel asisten_XXX. Buat keterangan bahwasannya assisten tersebut memilikihonor diatas rata-rata atau dibawah rata-rata.

b. Buat sebuah Store Procedure untuk menghitung Nilai rata-rata tiap praktikandalam satu kelas praktikum. (Buat tabel baru untuk menampung nilai-nilaipraktikum. Samakan dengan kartu praktikum anda). Buat keteranganbahwasannya praktikan tersebut memiliki nilai diatas rata-rata atau dibawahrata-rata.