modul praktikum sql server 2005

76
1 Praktikum MEMBANGUN DATABASE DAN MENGATUR KEAMANANNYA Tujuan: 1 Praktikan mampu untuk membuat database dengan tiga (3) metode yang akan diujicobakan pada praktikum I ini. 2 Praktikan mampu untuk mengatur keamanan database-nya. Persiapan: 1 Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2005, khususnya mengenai pembuatan database serta manajemen user dan akses privileges. 2 Modul praktikum I. Pekerjaan: 1 Kerjakan dan selesaikan semua tugas dan soal pada praktikum I di lembar Jawaban yang sudah disediakan di modul. 2 Selesaikan Tugas Pendahuluan praktikum I, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3 Kerjakan Soal Praktikum I dan tugas yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum. Hasil: 1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum I sesuai dengan pertanyaan yang ada. 2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum I kepada asisten pada pertemuan berikutnya. Landasan Materi: 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 yang memungkinkan pengguna untuk membuat dan memelihara database sehingga pengguna dapat memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang sering kita gunakan adalah Ms. Access, Ms. SQL Server, dan Iain-lain. 2 Pembuatan Database SQL Server menyediakan tiga method untuk membuat database, yaitu : create database wizard, SQL Server Enterprise Manager, dan perintah T-SQL (Query) yang dapat disimpan dalam file dan dijalankan sebagaimana sebuah script. Ms. SQL Server mengimplementasikan database dengan menyimpan 2 struktur, yaitu: Data Disimpan dengan file extensi *.mdf. File ini berkembang dengan penyimpanan table dan objek database lainnya. LOG

Upload: shan-chan

Post on 27-Oct-2015

776 views

Category:

Documents


22 download

TRANSCRIPT

Page 1: Modul Praktikum SQL SERVER 2005

1

Praktikum

MEMBANGUN DATABASE DAN MENGATURKEAMANANNYA

Tujuan:1 Praktikan mampu untuk membuat database dengan tiga (3) metode

yang akan diujicobakan pada praktikum I ini.2 Praktikan mampu untuk mengatur keamanan database-nya.

Persiapan:1 Baca buku literatur mengenai sistem database, terutama yang

menggunakan DBMS SQL Server 2005, khususnya mengenai pembuatan database serta manajemen user dan akses privileges.

2 Modul praktikum I.Pekerjaan:

1 Kerjakan dan selesaikan semua tugas dan soal pada praktikum I di lembar Jawaban yang sudah disediakan di modul.

2 Selesaikan Tugas Pendahuluan praktikum I, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.

3 Kerjakan Soal Praktikum I dan tugas yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum.

Hasil:1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

jawaban Soal Praktikum I sesuai dengan pertanyaan yang ada.2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

Praktikum I kepada asisten pada pertemuan berikutnya.

Landasan Materi: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 yang memungkinkan pengguna untuk membuat dan memelihara database sehingga pengguna dapat memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang sering kita gunakan adalah Ms. Access, Ms. SQL Server, dan Iain-lain.2 Pembuatan Database

SQL Server menyediakan tiga method untuk membuat database, yaitu : create database wizard, SQL Server Enterprise Manager, dan perintah T-SQL (Query) yang dapat disimpan dalam file dan dijalankan sebagaimana sebuah script.

Ms. SQL Server mengimplementasikan database dengan menyimpan 2 struktur, yaitu:

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

• LOG

Page 2: Modul Praktikum SQL SERVER 2005

2

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

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

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 dapat mempunyai tingkatan yang berbeda.

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

Beberapa ijin ajses yang dapat diberikan oleh suatu user pada user yang lain terlihat 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 prosedur tersimpan (stored procedure)

References Ijin akses untuk menciptakan tabel yang merferensikan pada tabel yang lain.

ALL Semua ijin akses yang telah disebutkan diatas, yaitu select, delete, update, insert, execute, fan references.

Dan daftar statemen ijin akses untuk membuat objek database yang baru terlihat pada daftar tabel berikut:

Statemen Deskripsi

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

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

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

Create Procedure

Statemen untuk memberikan ijin akses pada user untuk membuat prosedur.

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

Page 3: Modul Praktikum SQL SERVER 2005

3

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

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

Backup Database

Statemen untuk memberikan ijin akses pada user untuk melakukan backup database.

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

Tugas Pendahuluan Praktikum I

1. Jelaskan dengan singkat mengenai sistem database !2. Sebutkan sedikitnya 3 DBMS yang Anda kenal selain DBMS yang

disebutkan di modul!3. Bagaimana Ms. SQL Server mengimplementasikan database-nya ?

Jawaban Tugas Pendahuluan Praktikum I

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 4: Modul Praktikum SQL SERVER 2005

4

Langkah selanjutnya :Ikuti langkah-langkah praktikum.

Langkah-langkah praktikum:1. Pembuatan Database

Pastikan SQL Server dalam keadaan running dengan cara melihat pada SQL Server Management Studio-nya.

* Membangun database baru

Page 5: Modul Praktikum SQL SERVER 2005

5

1. Buka SQL Server Management Studio, dan pilih server mana yang ingin Anda gunakan untuk membuat database. Kemudian Klick tombol Connect.2. Klik kanan database, lalu pilih New DataBase.

3. Tulis Nama database pada kolom Database Name.4. Atur properties dari database yang bersangkutan pada kolom table (database files). Misalnya : Pengaturan letak dari pada database yang bersangkutan.

Soal Praktikum I

Page 6: Modul Praktikum SQL SERVER 2005

6

1. Buat database menggunakan T-SQL dengan parameter lengkap ! (Ketentuan bebas).2. Apa perbedaan antara GRANT dan REVOKE ?

Jawaban Soal Praktikum I

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

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

• Nama database : STIKI_XXX• Nama Primary data : STIKI_XXX_DATA• Ukuran awal = 20 Mb• Ukuran maksimal = 50 Mb• Ukuran perkembangan file = 2 Mb• Nama log : STIKI_XXX_LOG dengan nilai - nilai parameter sama dengan

diatas.Catatan : (X = tiga digit terakhir nrp )

Jawaban Tugas Praktikum I

NRP

NAMA

HARI/JAM PRAKTIKUM

KELAS

Page 7: Modul Praktikum SQL SERVER 2005

7

Praktikum

TABELTujuan:

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

Persiapan:1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL

Server 2005, khususnya mengenai tabel.2. Modul praktikum II.

Pekerjaan:1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum II di lembar jawaban yang

sudah disediakan di modul.2. Selesaikan Tugas Pendahuluan praktikum II, kemudian lanjutkan dengan mengerjakan

langkah-langkah praktikum pada modul yang telah disiapkan.3. Kerjakan Soal Praktikum II yang telah disediakan di modul, setelah selesai mengerjakan

langkah-langkah praktikum.4. Kerjakan Tugas Praktikum II sebagai latihan dirumah.

Hasil:1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban

Soal Praktikum I sesuai dengan pertanyaan yang ada.2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum

I kepada asisten pada pertemuan berikutnya.

Landasan Materi: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 Malang dengan bentuk sebagai berikut:

Tabel: MahasiswaNRP 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

Page 8: Modul Praktikum SQL SERVER 2005

8

batasan nilai.

2. Tipe DataAdapun tipe yang banyak digunakan pada Ms.SQL Server adalah :

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, dU.

money Bilangan pecahan dengan 4 angka dibelakang koma. Digunakan untuk perhitungan moneter.

smallin t Sama dengan int, membutuhkan 50% memory yang ditempati int.

int Mendefinisikan integer, bilangan bulat yang menampung angka sebanyak 4 byte.

floatfn) 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 9: Modul Praktikum SQL SERVER 2005

9

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 adalah contoh tipe data yang didefmisikan sebagai synonym dari nvarchar(128) dan digunakan untuk referensi ke nama 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 baruTipe data dapat dibangun dari tipe data yang sudah ada.

Syntax secara umum untuk membuai tipe data baru :USE nama_databaseSP ADDTYPEnama tipe data baru,tir>e data SOL

Syntax secara umum untuk menghapus tipe data baru :USE nama_databaseSP DROPTYPE nama tipe data baru

Kunci kata NONULL atau NULL dapat ditambahkan dalam mendefinisikan tipedata.Contoh:

SP_ADDTYPEalamat/varchar(9)'/nonull

Page 10: Modul Praktikum SQL SERVER 2005

10

Alur komunikasi data antarauser dengan databasemenggunakan SQL

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. Tidakbersifat case sensitive.

5. Membuat Tabel Syntax:CREATE TABLE nama_tabel(nama_filedl tipedata batasan, nama_filed2 tipedatabatasan,........)Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key, Fpreign Key,

Unique, Not Null, dll.

6. Melihat Struktur TabelSyntax:

7. Memodifikasi dan menambah Field pada TabelUntuk memodifikasi sebuah field pada tabel, syntax:

ALTER TABLE Namajabel ALTER COLUMN Nama_Field tipe_data(panjang) constraint

Untuk menambah sebuah field pada tabel, syntax:

Page 11: Modul Praktikum SQL SERVER 2005

11

ALTER TABLE Nama_tabel ADD Nama_Field_baru tipe_data(panjang) constraint

8. Menghapus TabelSyntax:

DROP TABLENamajabel;

9. INTEGRITAS DATAIntegritas data adalah konsistensi dan kehenaran 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 car a, antara lain :

Validasi field secara individualVerifikasi satu field m elalui ft eld yang lainnyaValidasi data dari satu table ke table yang lainnya.Verifikasi bahwa transaksi berjalan secara sukses dari awal hingga akhir

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 hahwa 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 ReferensialMenyatakan 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 tnela lui aturan yang didefinisikan sendiriSesuai 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

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

Page 12: Modul Praktikum SQL SERVER 2005

12

10. PRIMARY KEYPrimary Key disebut sebagai constraint untuk menjaga integritas data, yaitu sebuah

primary key tidak holeh mempunyai duplikat dan otomatis tidak holeh kosong. Secara umum syntax untuk memhuat 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(NamaFieldl TipeDatal, NamaField2 TipeData2/

NamaField3 TipeData3, NamaField4 TipeData4,[]NamaField5 TipeDataS, NamaField6 TipeDatae, NamaFieldTQlipeDataZ, CONSTRAINT pk NamaTabel PRIMARY KEY (NamaField3,[lNamaField2, NamaField7))

11. NOT NULLJika sebuat kolom pada tabel tidak boleh kosong maka constraint NOT NULL harus

diberikan.

12. UNIQUEUNIQUE digunakan untuk menjamin bahwa nilai kolom adalah tunggal tidak

mempunyai duplikat. Primary key dan unique keduanya adalah kunci kata yang mempunyai arti soma.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. CHECKCHECK digunakan untuk menjamin bahwa nilai kolom dalah dalam ruang nilai

tertentu. Misalnya nilai mata kuliah dibatasi tidak boleh melebihi nilai 100.Operator logika seperti AND, OR, dan NOT dapat disertakan dalam pemhuatan ini

14. FOREIGN KEYFOREIGN KEY adalah kolom pada sebuah tabel yang menunjukkan bahwa kolom

tersebut adalah primary key pada tabel lain.Tabel Mahasiswa

Page 13: Modul Praktikum SQL SERVER 2005

13

Pada sekenario di atas, record (TKK-04,98111761) pada tabel ambiljoiliah tidak dapat dihapus karena referensi dari TKK-04 (filed kode_mata_kuliah ditabel matajculiah), 98111761(field nrp 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. DEFAULT

Nilai default sebuah kolom dapat disuplai oleh system, jika pemakai tidak memberikan nilai pada field tersehut. DEFAULT tidak herlaku untuk kolom dengan tipe data timestamp atau field yang mempunyai property IDENTITY.

16. IDENTITY

IDENTITY merupakan property sehuah field, yaitu system menciptakan nomor urut secara otomatis pada setiap memasukkan record haru.

Penggunaan: NamaKolom Tipe IDENTITY(No_awal/ incremen)

Setiap terjadi INSERT, maka kolom akan mendapatkan nomor urut, yang dimulai dari No_awal, dan setiap record herikutnya ditamhahkan nilai inkremen (default adalah 1).

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

Pada awalnya no_daftar adalah 100. Untuk setiap record haru herikutnya, no_daftar akan hernilai 102, 104, 106, dan seterusnya.

17. Drop Constraint

DROP digunakan untuk menghapus constraint yang ada.Contok

ALTER TABLE nama_tabel DROP fk_nama_constraint

18. Mengisi data pada TabelSyntax:

Page 14: Modul Praktikum SQL SERVER 2005

14

INSERT INTO Namajabel (Nama_Fieldl, Nama_Field2,Nama_Field3) VAL UES (datal, data2, dataS);

19. Meng-copy data dari Tabel lainSuatu 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 Namajabeljujuan (Fieldl, Field2, FieldS) SELECT field_sumberl, field'_sumber2, field_sumber3) FROMNoma_tabel_sumber;

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

INSERT INTO Tabeljujuan SELECT *FROM Tabel_asal;

Tugas Pendahuluan Praktikum II1. Jelaskan dengan singkat mengenai table, field dan record !2. Sebut dan jelaskan dengan singkat tentang jenis integritas data !

Jawaban Tugas Pendahuluan Praktikum II

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 15: Modul Praktikum SQL SERVER 2005

15

LANGKAH-LANGKAH PRAKT1KUM:

1. Buat tabel herikut melalui QUERY ANALYZER, lengkap dengan constraintMahasiswa_XXX(Nrp, nama, jk, alamat, kota, propinsi, telpon)Nrp char 10Nama varchar 30]l< char 1

Alamat varchar 46

Kota char 22

Propinsi char 25

Telpon varchar 15

Perhatikam- Nrp merupakan primary key- Nama, Alamat tidak boleh kosong- Kota bila tidak disisi maka akan otomatis diisi dengan 'MALANG '- Jk mempunyai nilai 'L' atau 'R'2. Buat tabel Mata_kuliah_XXXMata_Kuliah (kode_mata_kuliah, Namajculiah, Sks)kode mata kuliah char 8Nama kuliah varchar 16

Sks int

Page 16: Modul Praktikum SQL SERVER 2005

PerhatikamKode_mata_kuliah merupakan primary keyNama_kuliah dan Sks tidak boleh kosong

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

kode_mata_kuliah char 8Nrp char 10NilaiJJts intNilai_Uas intGrade Char 1Perhatikam

Kode_mata_kuliah merwpakan Foreign key yang mengacu pada tabelMata_Kuliah_XXX (field kode_ mata_kuliah).Nrp merupakan Foreign key yang mengacu pada tabel MahasiswaJXXX (fieldNrp).NilaiJJts, NilaiJJas tidak boleh melebihi 100

4. Modifikasi field Telpon pada tabel Mahasiswa_XXX sehingga type-nyamenjadi char.

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

INSERT INTO Mahasiswa_XXX (NRP^amaJ^AlamatKota^ropinstTelpon)VALUES (^SlllZer/Aan Isnaini'/L'/Jl. Raya Sepanjang 80 Gondanglegi'/ Malang'JatimVSTZZe^)

5. Tambahkan data di bawah ini:

NRP NAMA ALAMAT KOTA PROPINSI TELFON

99110800 Agnes Monica

Jl. Karya Timur 280

Jakarta DKI Jakarta

0216452444

97110211 M. Yoesni Jl. Sunan GiriV/16

Gresik Jatim 031772739

98111761 Antoni Stevens

Jl. MelatiXI/234 Lubuk Linggau

Sumatra 0561567448

6. Tampilkan data dari tabel Mahasiswa_XXX Perintah SQL:SELECT * FROM Mahasiswa_XXX;

Page 17: Modul Praktikum SQL SERVER 2005

Soal Praktikum II

1. Apa perbedaan antara Primary Key dan Foreign Key ?2. Apa persamaan antara Primary Key dan keyword UNIQUE ?

Tugas Praktikum II1. Buat tabel-tabel dari sebuah perpustakaan dengan tipe data dan aturan-

aturannya:

Tabel AnggotaNama Field Type Panjang Aturan

No_Anggot a Char 8 Not Null, Unique, Primary Key

Nama Varchar2 20 Not NuU

Alamat Varchar2 30 Can Be Null, Default = 'Malang'

Telepon Number 10 Can Be Null

Page 18: Modul Praktikum SQL SERVER 2005

Tabel Buku

Nama Field Type Panjang Aturan

No_Buku Char 8 Not Null, Unique, Primary Key

Judul Varchar2 20 Not NuU

Pengarang Varchar2 30 Can Be Null

Penerbit Varchar2 20 Can Be Null

Jumlah Number 10 Not NuU

2. Isi data minimal 3 data. (Sesuaikan dengan soal no. 5 dan 6)3. Jelaskan apa yang dimaksud dengan primary key dan foreign key. Jelaskan hubungan

keduanya.4. Tampilkan semua data dari tabel anggota dan tabel buku.5. Tampilkan data anggota yang beralamat di Surabaya.6. Tampilkan data anggota yang ada di kota Malang dan Situbondo.

Page 19: Modul Praktikum SQL SERVER 2005

Jawaban Tugas Praktikum II

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 20: Modul Praktikum SQL SERVER 2005

Praktikum

MEMANIPULASI DATATujuan:

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

1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2005, khususnya mengenai transact-sql.

2. Modul praktikum III.Pekerjaan:

1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum III di lembar jawaban yang sudah disediakan di modul.

2. Selesaikan Tugas Pendahuluan praktikum III, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.

3. Kerjakan Soal Praktikum III yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum.

4. Kerjakan Tugas Praktikum III sebagai latihan dirumah.Hasil:

1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum III sesuai dengan pertanyaan yang ada.

2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum III kepada asisten pada pertemuan berikutnya.

3.Landasan Materi:1. Mengupdate data pada Tabel

Syntax:UPDATE Nama_tabel SET Fieldl=Datal/Field2=Data2/Field3=Data3 WHERE kondisil/kondisi2

Contoh:Merubah data mahasiswa dengan NRP '98111761' pada Mahasiswa_XXX dengan data baru

UPDATE Mahasiswa_XXX SET Alamat='Jl. Candi IIIBNo.lll,

/kota=,Malang,,Telpon=,0341567448/ WHERE nrp='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_tabei WHERE kondisil

Dalam menghapus dan update bisa dilakukan untuk menghapus banyak baris atau menghapus semua isi dari tabel tergantung dari kondisi yang diberikan.

Page 21: Modul Praktikum SQL SERVER 2005

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='Malang'

3. Mencari Data/ Retrieval (SELECT)Select adalah instruksi yang paling hanyak digunakan dalam SQL. SELECT

memilih spesiftk kolom dari satu atau beberapa tabel.Secara umum bentuk SELECT adalah: SELECT Koloml, MomZ ...

FROM NamaTabel WHERE predikatBila kunci kata "WHERE" tidak diberikan, maka yang diseleksi adalah seluruh

record dalam tabel. Predikat menyatakan kualifikasi dari record yang ditemukan, bila memenuhi syarat, maka record tersebut akan dipilih.

Select * adalah karakter khusus (wild character) yang menyatakan bahwa kolom yang dipilih adalah seluruh kolom yang ada pada tabel tersebut.

SELECT * FROM mata_kuliah_XXXmempunyai arti soma dengan:

SELECT Kodejmatajculiah, Nama_Kuliah, Sks FROM Mata_Kuliah_XXXContoh berikut menampilkan Nama_kuliah dan Sks:

SELECT Nama_kuliah, Sks FROM Mata_kuliah_XXX

4. Predikat dengan WHEREDengan 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:= soma dengan<> tidak soma dengan< lehih kecil<= lehih kecil atau soma> lehih hesar>= lehih hesar atau somaContoh:Tampilkan data kuliah yang jumlah sks nya dibawah 3

SELECT * FROM Mata_kuliah WHERE sks < 3

5. AND, OR, dan NOTUntuk menggahungkan lehih dari satu kondisi, diperlukan logical AND dan OR.

Sedangkan untuk negasi, diperlukan NOT

Contoh:Tampilkan Mahasiswa laki-laki yang herasal dari Malang

SELECT Nama, Alamat, Kota FROM Mahasiswa_XXX WHERE kota='Malang' AND jk='L'

Prioritas AND lehih kuat dari OR, sehingga kondisi OR harus dipisahkan dalam kurung sebelum AND.

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

Page 22: Modul Praktikum SQL SERVER 2005

Cari Nama_kuliah yang mempunyai sks antara 1 sampai 3. Dengan menggunakan BETWEEN maka hentuk query adalah :

SELECT Koloml, Koloml FROM tabel WHERE Mom BETWEEN nihil ANDnihil

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

SELECT * FROM kursus WHERE Jumlahjam NOT BETWEEN 30 AND 40

7. LIKE & NOT LIKEUmumnya LIKE digunakan untuk permintaan yang mencari suatu teks

berdasarkan prefix (kata depan), sufix (kata akhir) atau kata tengah.SELECT Koloml, KolomZ .... FROMNamaTabel WHERE Kolom LIKE nilai

Contoh:Cari Mahasiswa yang bertempat tinggal di kota "Gresik"

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota LIKE 'Gresik'

Cari Mahasiswa yang tempat tinggalnya dimulai dengan fB'SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota LIKE 'G%'

Perhatikan bahwa tanda % menyerupai "wild character" yang bisa di variasi dalam menggunakannya. tanda % adalah terdiri dari 0,1 atau beberapa karakter, maka tanda _ (under score/garis bawah) merepresentasikan per sis satu karakter.

NOT LIKE digunakan sebagai negasi misalnya dengan pertanyaanContoh:Cari Mahasiswa yang alamat rumahnya tidak dimulai dengan "}l."

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE alamat NOT LIKE '%J1%'

8. IN & NOT ININ digunakan untuk mencari nilai dalam satu kelompok nilai (daftar/list). Nilai

dalam daftar terdiri atas satu atau lebih.

SELECT KolomlKolomZ... FROM namatabel WHERE Kolom IN

Contoh:Cari perserta yang bertempat tinggal di kota "Malang" dan "Jakarta"

SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota IN ('Malang'/Jakarta')

Bila di negatifkan pertanyaan tersebut, maka hasilnya adalah :SELECT nama, alamat, kota FROM peserta WHERE kota NOT IN ('Malang'/Jakarta')

9. IS NULL & IS NOT NULLNULL adalah nilai yang belum diisi NULL tidak identik dengan spasi(blank).

Page 23: Modul Praktikum SQL SERVER 2005

10. Tampilan Tersusun (Sortir)Tampilan dari hasil SELECT dapat di susun (sort) menurut satu atau beberapa

kolom.SELECT KolomlKolomZ... FROM namatabel WHERE predikat ORDER BY Kolom

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

SELECT * FROM Mahasiswa_XXX ORDER BY rnisial

Susunan dapat diatur dari AkeZ (ASCending)atau dari ZkeA (DESCending). Defaultnya adalah ASC.

Untuk menyususn secara terbalik adalah :SELECT * FROM Mahasiswa_XXX ORDER BY inisial DESC

11. DISTINCTDISTINCT menghilangkan nilai ganda, sehinggga membuatnya menjadi

tunggal. Hal ini dilakukan dengan mengeliminasi nilai yang soma.Contoh : Berasal dari kota mana saja mahasiswa yang ada ?

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

SELECT DISTINCT kota FROM mahasiswa_XXX

Tugas Pendahuluan Praktikum III1. Sebut dan jelaskan perintah yang digunankan untuk memanipulasi data !2. Sebut dan jelaskan perintah yang digunakan untuk mencari data (Retrival)!

Jawaban Tugas Pendahuluan Praktikum III

Page 24: Modul Praktikum SQL SERVER 2005

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 Analyzerb) Update semua data mahasiswa yang beralamat di Malang sehingga alamatnya

berubah menjadi 'Jl.Raya tidar 100 Malang' dan nomor telfonnya menjadi '0341567448'

c) Isikan data berikut pada tabel Mata_Kuliah_XXX yang telah anda buat pada praktikum II

KODE_mata_kuliah NAMAJCULIAH SKS

TKD1113 Fisika Dasar o

TKD1111 Manajemen Umum 2

TKD1224 Matematika Diskrit 3

TKK1248 Praktikum Visual Basic 1

TKK1247 Tugas Akhir 6

TKK1249 Sistem Berkas 4

Update kolom SKS, sehingga jumlah SKS menjadi 2 kalinya d) isi data pada tabel ambil_kuliah :

Kode_mata NRP Nila Nilai_ Gr

_kuliah i_Uts

Uas ade

TKD1113 98311256 60 60 C

34

Page 25: Modul Praktikum SQL SERVER 2005

TKD1111 98311262 75 80 B

TKD1224 98111701 89 98 A

TKK1249 98111668 57 61 C

TKK1248 98311386 40 55 D

e) Lihat daftar mahasiswa wanita yang berasal bukan dari Malangf) Cari noma mahasiswa yang namanya dimuali dengan huruf 'D', huruf

kedua tidak di ketahui, huruf ketiga adalah 'D' dan huruf selanjutnya tidak diketahuai

g) Cari noma mahasiswa yang namanya dimulai dengan huruf'F', huruf kedua tidak di ketahui, huruf kelima adalah 'f dan huruf selanjutnya tidak diketahuai

h) Tampilkan seluruh Mahasiswa yang tidak lulusi) Tampilkan mahasiswa yang puny a nilai 'A' dan bertempat tinggal di luar

Malang atau bondowoso (gunakan IN) j) Susun daftar Mahasiswa menurut ah]ad, namun dibuat berdasarkan alamat

kota mereka k) Tampilkan noma kota tersusun dari secara descending dari para mahasiswa I) Tampilkan nilai mahasiswa dari yang paling besar ke yang paling

kecil,hilangkan duplikasi tampilan (untuk nrp yang soma).

Soal Praktikum III1. Berikan kesimpulan tentang praktikum III! Jawaban Soal Praktikum III

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 26: Modul Praktikum SQL SERVER 2005

Tugas Praktikum IIIBuatlah suatu database untuk praktikum di STIKI Malang. Buat tabel-tabel yang diperlukan dan isikan data minimal 5 data pada tabel master dan 10 data pada tabel transaksi.Jawaban Tugas Praktikum III

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 27: Modul Praktikum SQL SERVER 2005

FUNGSI DALAM SQLTujuan:

1. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQLPersiapan:

1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2005, khususnya mengenai transact-sql.

2. Modul praktikum IV.Pekerjaan:

1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum IV di lembar jawaban yang sudah disediakan di modul.

2. Selesaikan Tugas Pendahuluan praktikum IV, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.

3. Kerjakan Soal Praktikum IV yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum.

4. Kerjakan Tugas Praktikum IV sebagai latihan dirumah.Hasil:

1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum IV sesuai dengan pertanyaan yang ada.

2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum IV kepada asisten pada pertemuan berikutnya.

Landasan Materi1. Aritmatik

Penghitungan aritmatika dapat dilakukan dengan menggunakan * / + - seperti umumnya

2. Kelompok NilaiFungsi AVG, Max, MIN, SUM, COUNT adalah fungsi yang memproses tab el dengan kualifikasi tertentu.

3. AVGMencari rata-rata

SELECT A VG(field_numerik) from nama_tdbelNilai perhandingan adalah hasil dari query haru (yang disehut sehagai "suh

query").Contoh:

SELECT * FROM Ambil_kuliah_XXX WHERE nilai_uas> (select AVG (nilai_uas) from ambil_kuliah_XXX)

4. MAXMencari maksimum

SELECTMAX(nilai_uas) FROM ambil_kuliah_XXX

5. MINMencari minimum

SELECT MIN(nilai_uas) FROM ambil_hiliah_XXX6. COUNT

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

Praktikum

T - S

Page 28: Modul Praktikum SQL SERVER 2005

record yang berlaku.SELECT COUNTC) FROM mahasiswaJCXX

7. SUMMenjumlah nilai dari kolom tertentu

SELECT SUM(nilai_uas) FROM ambilJculiahJXXX

8. GROUP BYGroup By Menyeleksi himpunan yangdihitung berdasarkan fungsi spesifik seperti AVG, COUNT atau lainya.

SELECT nrp,COUNT(*) FROM ambiljodiah GROUP BY rurp

9. GROUP BY ... HAVINGHAVING 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 tab el). Berikut adalah daftar mahasiswa yang mempunyai nilai uas rata-rata diatas 80 :

SELECT nrpAVG(nilai_uas) FROM ambiljailidh GROUP BY nrp HAVING AVG(nilai_uas)>80

10. JOINJoin adalah teknik yang digunakan untuk mengakses lehih dari satu tahel menggahungkan hasilnya. Perhatikan tahel sesi di hawah ini

SELECT nrp, mahasiswaXXX.nama, grade FROM ambilkuliahXXX, mahasiswaXXX WHERE ambil_kuliah_XXX.nrp=mahasiswa_XXX.nrp

11. Menggunakan AliasAlias digunakan untuk menyederhanakan iulisan, agar iidak terlalu panjang.

SELECT nrp, ma.hasiswa_xxx.nama, grade FROM ambil_kuliah_XXX mahasiswa_XXX WHERE ambil kuliah XXX nrp=mahasiswa_XXX. nrp

Penulisan dapat disederhanakan menjadi:SELE CT nrp,M. nama,grade,FR OM A,mahasiswa_XXXM WHERE A.nrp=M.nrp

Join hiasa dilakukan pada 2 huah tahel atau lehih.

Tugas Pendahuluan Praktikum IV

1. Apa yang dimaksud dengan subquery ?2. Kapan alias digunakan ?3. Apa yang Anda ketahui tentang join ? sebutkan macam-macam join yang Anda

tahu !

Page 29: Modul Praktikum SQL SERVER 2005

Jawaban Tugas Pendahuluan Praktikum IV

Page 30: Modul Praktikum SQL SERVER 2005

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 Analyzerb) Buat tabel asisten_XXX dengan ketentuan :

Asisten_XXX(kd_ass,Nrp)Kd_asschar 10Nrp char 10

Kd_ass merupakan primary key Nrp merupakan foreign key yang mengacu pada tabel mahasiswaJKXX

c) Buat tabel praktikum_XXX dengan ketentuan :praktikum_XXX(kd_prak/ nama_praktikum,ruang)kdjprak char 10Namajpraktikum Varchar 30Ruang varchar 46

Kdjprak merupakan primary keyd) Buat tabel honor_XXX dengan ketentuan :

honor_XXX(kd_ass,jumlahJam,honor)kd_ass char 10jumlah_jam inihonor

float

kd_ass merupakan foreign key yang mengacu pada tab el asisten_XXX (field kd_ass)

e) Isi data asisten_XXX :Kd_ass NRP

S10054 99110800

S78678 97110211

S45389 98111761

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

Page 31: Modul Praktikum SQL SERVER 2005

P45389 Rpg As400

S43535 Html HTML

S56743 Operation Research Unix

g) Isi data honor_XXX :

Kd_ass Jumlahjam Honor

S10054 12 96000

S78678 6 48000

S45389 8 64000

h) Tamhahkan 10% honor untuk mereka yang mempunyai honor dibawah rata-ratai) Cari asisten yang honornya antar 50.000 sampai dengan 100.000j) tampilkan asisten yang honornya lebih kecil dari rata-rata.k) Tampilkan daftar honor asisten dan kurangi dengan pajak penghasilan 15%I) Tampilkan data asisten secara lengkap (nrp,nama,alamat)yang honornya

paling kecil m) Berapa banyak asisten yang honornya diatas rata-rata n) Hitung jumlah honor asisten yang honornya diatas rata-rata

Soal Praktikum IV1. Kenapa nilai field pada foreign key harus ada terlebih dahulu pada field primary

key yang diacu?2. Berikan kesimpulan Anda mengenai praktikum IV ini !

Jawaban Soal Praktikum IV

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Tugas Praktikum IV1. Buat query dengan menggunakan perintah-perintah SQL : Having, Group By,

Intersect, Distinct, (dengan menggunakan tabel yang dibuat pada tugas sebelumnya)

2. Tulis juga output seriap perintah.

Page 32: Modul Praktikum SQL SERVER 2005

Jawaban Tugas Praktikum IV

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Praktikum

Page 33: Modul Praktikum SQL SERVER 2005

VIEW DAN INDEXTujuan:1 Praktikan mampu memahami view dan index.Persiapan:

1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2005, khususnya mengenai view dan index.

2. Modul praktikum V.Pekerjaan :

1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum V di lembar jawaban yang sudah disediakan di modul.

2. Selesaikan Tugas Pendahuluan praktikum V, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.

3. Kerjakan Soal Praktikum V yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum.

4. Kerjakan Tugas Praktikum V sebagai latihan dirumah.Hasil

1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum V sesuai dengan pertanyaan yang ada.

2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum V kepada asisten pada pertemuan berikutnya.

Landasan Materi:

1. ViewSebuah VIEWadalah tabel yang dibangun dari satu atau beberapa tabel yang sudah

ada. Secara fisik VIEW tidak membuat penyimpanan data seperti tabel, melainkan hanya menyimpan refer ansi/pointer ke record pada tabel-tabel yang berkaitan. VIEW disebut juga sebagai "Virtual Table".

Secara umum aturan membuat VIEWadalah:CREATE VIEW NamaView (Koloml, Koloml) AS SELECT Koloml, Koloml FROM NamaTabel WHERE predikat

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

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka vl mewarisi kolom yang yang dipilih pada tabel mahasiswa_XXX.

Menjalankan view diatas:SELECT * FROM vl

a. Menghapus VIEWVIEWdapat dihapus dengan menggunakan DROP VIEW seperti berikut:

DROP VIEW vl

b. VIEW Dari Beberapa TabelVIEW dapat diciptakan dari beberapa tabel, misalnya sebuah join sederhana seperti berikut:VIEW V4 terdiri atas kolom yang dihasilkan melalui SELECT, yaitu mahasiswa_XXX, AsistenJXXX, dan honorJXXX

Page 34: Modul Praktikum SQL SERVER 2005

CREATE VIEW v4 AS SELECT A.nrp, M.nama FROM asisten_XXX A,Mahasiswa_XXX M WHERE A.nrp=M.nrp

c. Mengubah VIEWUntuk dapat langsung mengubah VIEW, gunakan ALTER soma dengan syntax alter pada tab el.

d. Updating dan insert data Melalui VIEWUpdating dapat dilakukan ke dalam VIEW dengan memberikan nilai seperti pada inserting dan updating tabel. Namun perlu diperhatikan /yNOT NULL" optioan dan CONSTRAINT lainnya, sebelum memasukkan nilai ke dalam VIEW.

CREATE VIEW v6 (name, address, city) AS SELECT nama, alamat, kota FROM mahasiswa_XXX WHERE kota='JAKARTA'INSERT INTO v6 values ('Dandi Rome/, 9, 'BANDUNG')

Perhatikan bahwa walaupun dalam WHERE dibatasi kota='JAKARTA', namun SQL tidak dapat menolak nilai kota yang bukan 'JAKARTA'Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada akhir instruksi harus ditambahkan "WITH CHECK OPTION"Contoh:

ALTER VIEW v6(name, address, city) AS SELECT nama, alamat, kota FROM mahasiswa_XXX WHERE kota='JAKARTA' WITH CHECK OPTIONINSERT INTO v6 values ('Galih Galinggis',10, 'BANDUNG')

Akan muncul error: ERROR at line!'. ORA-014O2: view WITH CHECK OPTION where-clause violation

e. Batasan Manipulasi Mela lui VIEWMelalui VIEW dapat dilakukan INSERT, UPDATE, dan DELETE dengan beberapa limitasi yaitu:

□ Tidak dapat memasukkan record baru jika mengabaikan nilai NOT NULL pada basis tabel dari VIEW tersebut.

□ Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom dalam VIEWmerupakan hasil kalkulasi atau hasil dari nilai balikfungsi.

□ Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalam VIEW terdapat GROUP BY atau DISTINCT.

2. INDEX

a. Penggunaan Index

Dalam konteks SQL-Server, index adalah sebuah obyek database yang dibuat berdasarkan kolom dalam tabel.Index mempercepat pencarian data. Dengan menggunakan index ,data tidak perlu dicari dari awal hingga akhir, melainkan menggunakan algoritma pencarian yang efisien, sehingga waktu proses menjadi semakin cepat. Tanpa index, proses pemanggilan table scan terjadi, yang berarti query processor harus melalui masing-masing record dalam tabel secara indvidual untuk menemukan record yang sesuai dengan kriteria yang dipilih. Proses ini soma dengan mengalokasikan informasi spesifik di dalam buku. Anda dapat menggunakan daftar isi atau index untuk menemukan topik tertentu secara mudah. Tanpa itu semua, Anda harus membuka dan mencari melalui semua halaman sampai Anda menemukan yang Anda cari.Index mempunyai Overhead selain tempat memory yang lebih besar, juga reorganisasi data karena operasi insert dan delete menjadi lebih kompleks.

Page 35: Modul Praktikum SQL SERVER 2005

Dengan demikian index tidak boleh digunakan secara sembarang, melainkan dengan perencanaan dan performance tuning yang baik.

b. Memilih kolom untuk indexIndex dipilih herdasarkan selektifitas dari query yaitu beberapa sereing record diakses melalui select, update atau delete. Selektifitas dipengaruhi oleh criteria pencarian, yaitu bagaimana memenuhi criteria tersebut dengan mengakses atribut apa saja.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 (misalnyajenis kelamin)o Panjang kolom yang besar. Untuk melihat index yang sudah ada gunakan

stored procedure spjielpindex namatabel 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 dalam satu tab el. Primary key adalah kandidat baik untuk menjadi clustered index (index secara implicit diciptakan melalui constraint primary key). Dalam menciptakan index, maka secara default otomatis yang dipilih adalah non clustered index. Cara membuat index adalah

DROP INDEX CI_NoPeg CREATE CLUSTERED INDEX CI NoPec ON Pecawai (NoPee)

DROP dijalankan untuk memastikan bahwa index tersebut belum ada.

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

DROP INDEX NI_NamaCREATE NONCLUSTERED INDEX NI Nama ON Peeawai (Nama)

Atau:CREATE INDEX NI_Nama ON Pegawai (Nama)

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

CREATE UNIQUE INDEX UI_KTP ON Pegawai (KTP)

Tugas Pendahuluan Praktikum V1. Apa yang dimaksud dengan view ? Sebutkan keuntungan dari view !

Page 36: Modul Praktikum SQL SERVER 2005

2. Apa yang dimaksud dengan index ? Sebutkan keuntungan dari index !

Jawaban Tugas Pendahuluan Praktikum V

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 37: Modul Praktikum SQL SERVER 2005

Langkah selanjutnya:

Ikuti langkah-langkah praktikum.

Langkah-langkah praktikum:

a. Aktifkan Tools Query Analyzerb. Buat sehuah VIEW yang terdiri dari kd_ass dan noma asisten yang mempunyai

honor diatas rata-rata (join tabel mahasiswa_XXX dan Honor_XXX)c. Buat sehuah view yang akan menampilkan isi data Nrp, Nama, Alamat, dan

nomortelpon dari mahasiswa_XXX dimana hanya mahasiswa yang mempunyai nama'Agnes Monica'dan nomor telfonya = 031772739 saja. d. Isi data pada

data mahasiswa_XXX melalui view yang dihuat dengan data :

NRF > NAMA JK ALAMAT KOTA PROPINSI TELFON

981117 24 Wendy Setiawan

L Jl.hartako no.l

Makassar Sulsel 0411869174

98111720 Indra L JLMerak Cepu Jatim 023772739

Rahmanto timur No. 99 Blora

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

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

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

Soal Praktikum V1. Sebutkan batasan manipulasi melalui view !2. Apa kegunaan dari index ?

Jawaban Soal Praktikum V

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 38: Modul Praktikum SQL SERVER 2005

Tugas Praktikum V

Gunakan tabel anggota,buku, dan pinjam yang telah anda buat untuk menampilkan data nama anggota yang mempunyai huruf depannya 'A' atau 'a' tampilkan menjadi huruf besar semua.

Jawaban Tugas Praktikum V

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Praktikum

Page 39: Modul Praktikum SQL SERVER 2005

TRIGGERTujuan:

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

Persiapan:1 Baca buku literatur mengenai sistem database, terutama yang menggunakan

DBMS SQL Server 2005, khususnya mengenai trigger.2 Modul praktikum VI.

Pekerjaan:1 Kerjakan dan selesaikan semua tugas dan soal pada praktikum VI di lembar

jawaban yang sudah disediakan di modul.2 Selesaikan Tugas Pendahuluan praktikum VI, kemudian lanjutkan dengan

mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.3 Kerjakan Soal Praktikum VI yang telah disediakan di modul, setelah selesai

mengerjakan langkah-langkah praktikum.4 Kerjakan Tugas Praktikum VI sebagai latihan dirumah.

Hasil1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

jawaban Soal Praktikum VI sesuai dengan pertanyaan yang ada.2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

Praktikum VI kepada asisten pada pertemuan berikutnya.

Page 40: Modul Praktikum SQL SERVER 2005

Landasan Materi:

1. Database TriggerTrigger adalah blok program transact-SQL yang diassosiasikan dengan tabel dan

disimpan dalam database. Trigger dieksekusi bila terjadi suatu database "event". Database event adalah insert, update dan delete.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 tersebutprogram transact-sql yang dijalankan oleh trigger tersebut

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

CREATE TRIGGER namatriggerON namatabel for inser^update^elete

ASDECLARE..................<deklarasi variable>

Tergantung dari event yang dipilih :FOR INSERT

Trigger aktifpada saat record baru

FOR UPDATETrigger aktifpada saat record diubah

FOR DELETETrigger aktifpada saat record dihapus

Untuk melihat efek trigger, berikut adalah contoh sebuah tabel sederhana. Trigger mytrigger 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 (nrp^arnaj^alarna^kota^ropins^values ('00111362'/Anang Fatoni'/L'/jLSepanjang 80 GDL/Malang'/Jatim')

Page 41: Modul Praktikum SQL SERVER 2005

Hasil:Record bam -.08/08/2002 By BigJmgsBSD 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 tab el 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 AS PRINT 'Record baru :' +CONVERT(char(30),getdate(),103) SELECT No_peserta,nama,jk,alamat/kota FROM inserted

Test Trigger.

INSERT INTO peserta (nrp^amaj^alama^kota) values (00123513/Ahmad AanVLVJlSepanjang 80'/Malang')

Hasil:Record baru -.06/05/2002No_peserta Noma ]K Alamat Kota13 Ahmad Aan L Jl. Sepanjang 80 GL Malang(1 row(s) affected)

Demikian juga pada saat terjadi proses pengupdate-an dan penghapusan data bisa memanggil koleksi record yang dihasilkan,

2. Menghapus TriggerMenghapus trigger dilakukan dengan instruksi

DROP TRIGGER NamaTrigger

Contoh: DROP TRIGGER trupdl

Tugas Pendahuluan Praktikum VI

1. Kapan sebuah trigger dieksekusi ?2. Apa manfaat dari trigger ?

Jawaban Tugas Pendahuluan Praktikum VI

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

LANGKAH LANGKAH PRAKTIKUM:

Page 42: Modul Praktikum SQL SERVER 2005

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

id_d.tr : 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 : intnrp : char 10kd_prak : char 10id_dtr : char 5No_daftar merupakan primary key dan otomatis isinya dimulai dengan 1

(gunakan identity)Nrp mereferensi ke tabel Mahasiswa_XXX (field nrp)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 yangsetiap kali jika ada pendaftar baru maka jumlah peserta pada tabelprak_jln_XXX akan ditambahkan 1. Sebaliknya jika ada pendaftar yangdihapus maka jumlah peserta akan dikurangi 1. Perhatikan bahwa awalnya kolom jumlah peserta pada tabel sesi adalah kosong, yang berarti NULL, bukan 0. Oleh karena itu untuk mengubah nilai NULL, diperlukan fungsi ISNULL (namavariable,0) sebagai berikut:

UPDATE sesi SET jumlahpeserta = ISNULL (jumlahpeserta,0) +1

f. Dengan menggunakan 2 tabel yang sudah dibuat, rubahlah trigger yangtelah dibuat pada langkah 'e' dimana setiap kali jika ada pendaftar barumaka jumlah maksimal peserta pada tabel prak_jln_XXX akan dikurangi 1.Sebaliknya jika ada pendaftar yang dihapus maka jumlah peserta akanditambah 1.

g. Buat sebuah trigger yang mencatat riwayat honor asisten (historical), yaknisetiap kali ada perubahan honor asisten, maka perubahan itu akan dicatat ditabel khusus yang bernama h_asisten_XXX

Struktur tabel h_asisten_XXXKd_ass char 10honor floattgl_update datetime

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

Soal Praktikum VI

Page 43: Modul Praktikum SQL SERVER 2005

1. apa yang dimaksud dengan 'event' pada trigger ?2. Apa yang dimaksud dengan tigger ? Sebutkan bagian dari trigger ?

Jawaban Soal Praktikum VI

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 44: Modul Praktikum SQL SERVER 2005

Tugas Praktikum VI1. Gunakan tabel anggota,buku, dan pinjam yang telah an da buat untuk membuat trigger:

a. membuat riwayat / historical setiap kali ada denda yang masuk danbuat total terakhir jumlah denda yang ada menurut event terakhir kali.

b. membuat penghitungan jumlah record yang ada.

Jawaban Tugas Praktikum VI

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 45: Modul Praktikum SQL SERVER 2005

Praktikum

TRANSACT-SQLTujuan:

1. Praktikan mampu untuk mengerti dan memahami Transact-SQLPersiapan:

1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2005, khususnya mengenai trigger.

2. Modul praktikum VII.Pekerjaan :

1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum VII di lembar jawaban yang sudah disediakan di modul.

2. Selesaikan Tugas Pendahuluan praktikum VII, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.

3. Kerjakan Soal Praktikum VII yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum.

4. Kerjakan Tugas Praktikum VII sebagai latihan dirumah.Hasil:

1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum VII sesuai dengan pertanyaan yang ada.

2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum VII kepada asisten pada pertemuan berikutnya.

Landasan Materi:1. Transact-SQL

TRANSACT-SQL adalah hahasa pemrograman yang dikembangkan dari SQL. Seperti diketahui SQL adalah hahasa non procedural, artinya alur program tidak seperti hahasa pemrograman hisa, melainkan melalui "request" dan "response".

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

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

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

Hasil proses SQL-Server (ResultSet) dapat diolah lebih lanjut dengan menggunakan logic pemrograman procedural seperti Fungsi, Procedure, Loop, Case, If Then Else, dan lainnya.

2. Kerangka Transact-SQLTRANSACT-SQL dimulai dengan deklarasi variable dan disusul dengan blok program.Variable harus dideklarasikan sebelum digunakan. Nama variable selalu dimulai dengan karakter @. Variable dapat diberikan nilai melalui instruksi SELECT.

Page 46: Modul Praktikum SQL SERVER 2005

DECLARE

/* deklarasi variable 7

@vl int,

@nama varchar(30)

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

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

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

FROM mahasiswa_XXX WHERE nrp='98111761'PRINT @nam

HasihAan Isnaini

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

Contoh:PRINT /yNama yang ditemukan adalah :"PRINT @namaPRINT "Nama yang ditemukan adalah : "+@nama

3. Menjalankan Program Transact-SQL Deklarasi Variable

Tipe dari variable yang dapat dideklarasikan adalah bagian dari Ms. SQL yaitu char, 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_iniPRINT ('Honor anda adalah')PRINT (©honor)PRINT (@nama)PRINT (@instansi)PRINT (@tgl_hari_ini)PRINT (@tgl_nanti)

Page 47: Modul Praktikum SQL SERVER 2005

Hasih Honor anda adalah300000HUGO LOMBARDIECOMODAMAY 5 2002 10:18AMMAY 5 2002 10:18AM

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 soma dengan 0, maka system memberikan indikasi bahwa terjadi error dan identitas error dinyatakan dalam angka.

@@cursor_rows adalah nilai balik dari cursor yang terakhir kali diolah.@@fetch_status adalah nilai balik dari "fetch" pada cursor. Nilai 0 adalah OK.@ ©identitymemberikan 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 atau WHILE, maka @@rowcount dihapus menjadi 0.

@@spid adalah Server Process Id

5. IFIF digunakan dalam mengendalikan alur program berdasarkan kondisi.

IF kondisiInstruksi

IF kondisiInstruksil

ELSEInstruksi!

IF kondisi BEGIN

Contoh: DECLARE @honor int,

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

PRINT "Honor diatas rata-rata" ELSE

PRINT "Honor dibawah rata-rata"Hasih

Honor dibawah rata-rataBila diaplikasikan pada tabel asisten_XXX, maka nilai honor dapat diambil dari asisten:

DECLARE @honor int,@rata_rata int,@asisten char(8)

Page 48: Modul Praktikum SQL SERVER 2005

SELECT @asisten='981117 6VSELECT @honor=honor FROM asisten_XXX WHERE nrp=@asisten SELECT @rata_rata=200000 IF @honor > @rata_rata

PRINT "Honor diatas rata-rata" ELSE PRINT "Honor dibawah rata-rata"

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

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

WHILE kondisi BEGIN

Contoh: DECLARE @I int SELECT @i=5 WHILE @i>0 BEGIN

PRINT "i =//+str(@i)SELECT @i = @i -1

ENDHasih

i = 5i = 4i = 3i = 2i = 1

Page 49: Modul Praktikum SQL SERVER 2005

Perhatikan hahwa fungsi str() diperlukan untuk mengkonversi hilangan integer menjadi string (teks).

7. CONTINUE dan BREAKCONTINUE dan BREAK herkaitan dengan WHILE. CONTINUE melanjutkan alur program pada pemeriksaan kondisi WHILE, sedangkan BREAK mengakibatkan alur program keluar dari WHILE.

WHILE kondisil BEGINIT kondisil

CONTINUE END

WHILE kondisilBEGIN

8. RETURNRETURN akan menghentikan program dari eksekusi. RETURN dapat digunakan dalam memproses error.

IF @@error <> 0BEGIN

PRINT "Error..."

Page 50: Modul Praktikum SQL SERVER 2005

RETURN END

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

IF kondisilELSE IF kondisilELSE IF kondisi3ELSE

Dapat diganti:CASE

WHEN kondisil THENWHEN kondisil THENWHEN kondisil THEN

ELSEContoh:

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

SELECT @t='B' SELECT @hasil= CASE

WHEN @t='A'THEN'KarakterA'

WHEN@t='B'THEN

Page 51: Modul Praktikum SQL SERVER 2005

'Karakter B' ELSE

'Tidak diketahui' END PRINT "Hasil adalah "+@hasil

Hasih Hasil adalah : Karakter B

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

adalah variasi dari CASE:DECLARE @t char(l),

@hasil varchar(255) SELECT @t='X' SELECT @hasil= CASE @t

WHEN'A'THEN 'Karakter A' WHEN 'B' THEN 'Karakter B' ELSE

'Tidak diketahui' END

Page 52: Modul Praktikum SQL SERVER 2005

PRINT "Basil adalah "+@hasil

Contoh pada SOL-Query: DECLARE @jk char,

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

SELECT @ik=jk, @nama=nama FROM mahasiswa_XXX WHERE nrp=''98111724'SELECT @teks=CASE @jk

WHEN 1/ THEN 'Laki-laki'WHEN'?' THEN 'Perempuan'ELSE '?' END PRINT

@nama + " adalah " + @teksHasih

Wendy Setiawan adalah Laki-laki

Soal Pendahuluan Praktikum VII1. Apa yang dimaksud dengan T-SQL ?2. Bagaimana kerangka dari T-SQL ?

Jawaban Tugas Pendahuluan Praktikum VII

Page 53: Modul Praktikum SQL SERVER 2005

Langkah selanjutnya:Ikuti langkah-langkah praktikum.a. Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung dari tab el asisten_XXX. Buat keterangan hahwasannya assieten tersehut memiliki honor diatas rata-rata atau dihawah rata-rata.

Soal Praktikum VII1. Struktur kontrol apa saja yang dapat digunakan2. Bagaimana menjalankan T-SQL ?

Jawaban Soal Praktikum VII

Page 54: Modul Praktikum SQL SERVER 2005

Tugas Praktikum VII4.1 Gunakan tabel anggota, buku, dan pinjam yang telah anda buat untuk membuat T-

SQL : menghitung denda anggota yang paling banyak dan berdasarkan rata-rata yang ada cari yang paling besar jumlah denda yang diterima.

Jawaban Tugas Praktikum VII

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 55: Modul Praktikum SQL SERVER 2005

Praktikum

STORED PROCEDURETujuan:

1. Praktikan mampu untuk memahami stored procedure.Persiapan:

1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2000, khususnya mengenai trigger.

2. Modul praktikum VIII.Pekerjaan :

1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum VIII di lembar jawaban yang sudah disediakan di modul.

2. Selesaikan Tugas Pendahuluan praktikum VIII, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan.

3. Kerjakan Soal Praktikum VIII yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum.

4. Kerjakan Tugas Praktikum VIII sebagai latihan dirumah.Hasil:

1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum VIII sesuai dengan pertanyaan yang ada.

2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum VIII kepada asisten pada pertemuan berikutnya.

Landasan Materi:

1. PROSEDURProsedur 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 herawalan sjg,

dan extended stored procedure (xp), program yang dikompilasi sehagai EXE atau DLL (Dynamic Link Library).

Membuat ProsedurCREATE PROCEDURE NamaProsedur AS

Deklarasi variableCREATE PROCEDURE dapat disingkat dengan CREATE PROC. Berikut adalah contoh sebuah prosedur yang menampilkan honor instruktur.

CREATE PROCEDURE prjionor ASSELECT kd_ass, honor FROM honor_xxx

RETURN

Menjalankan prosedur tersebut dengan EXEC atau langsung noma prosedure

Page 56: Modul Praktikum SQL SERVER 2005

EXECvr honorUntuk mengkoreksi sebuah prosedur, maka kunci kata ALTER harus digunakan.

ALTER PROCEDURE prjionor ASSELECT kd_ass, honorjumlahjam FROM honor_xxx

Untuk menghapus prosedur gunakan DROPDROP PROCEDURE NamaProsedur

Untuk secara otomatis mengubah prosedur tanpa ALTER, dapat dibuat script sebagai berikut

USE stiki_xxxIF EXIST (SELECT name FROM sysobjects WHERE name = 'prjionor' AND type

= 'P') DROP PROCEDURE prjionorCREATE PROCEDURE prjionor AS SELECT kd_ass, honor,jumlahj am

FROM honor xxx

Page 57: Modul Praktikum SQL SERVER 2005

2. ParameterProsedur dapat mempunyai parameter berupa variable yang disuplai oleh program yang memanggilnya.

CREATE PROCNamaProsedur (@pl int, @p2 char(16), ...) ASDeklarasi variable

Pada saat eksekusi, parameter diberikan sebagai berikutEXEC namaprocedure 210, 'teks',...

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

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

Car a mengeksekusi:EXEC prjionor S56743'

Hasil:]umlah_jam honor42 330000

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

ALTER PROCEDURE prjionor (@ini char(6)='S56743')AS select jumlahJam,honor from honor_xxx where kd_ass=@iniRETURN

EXECprJonor S90877'Hasil :

Jumlahjam honor34 200000

Page 58: Modul Praktikum SQL SERVER 2005

EXEC pr_honorHasil :

Jumlah_jam honor42 330000Berikut adalah contoh program yang menedeteksi parameter, hila kosong maka pesan error akan ditampilkan.

ALTER PROCEDURE prjionor (@ini char(6)=null)ASif@ini=null

begindeclare @pesan char(6)select @pesan=x kosong1

print @pesanreturn

endselect jumlah_j:am,honor from honor_xxx where kd_ass=@ini

RETURN

4. Parameter OutputNilai parameter bisa diolah pada program procedure dan untuk kemudian parameter tersebut dapat diubah dan diberikan nilainya pada program yang memanggilnya. CREATE Proc m

@pl int, @p2 int, @h int OUTPUTas select @h=@pl*@p2

Eksekusi : EXECm 10,20,@hsl OUTPUT print 'hasil = ' +str(@hsl)

Pada contoh ada 3 parameter, yaitu pi dan p2 sehagai input parameter dan h sehagai output parameter.Pada saat eksekusi pi adalah 10, p2 adalah 20 dan hsl merupakan hasil perkalian.Berikut adalah program prjionorl yang memberikan nilai halik herupa parameter output @dana@dana akan dibaca oleh program yang memenggilnya dan mencetak hasilnya ke layar.

create proc prjionorl @ini char(6)=null,@dana int outputasif@ini=null

beginprint 'parameter kosong*return

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

returnEksekusi :

DECLARE @h intEXECprJonorl ■ S56743',@/z OUTPUTprint honor = ' +str(@h)

85

Page 59: Modul Praktikum SQL SERVER 2005

Soal Pendahuluan Praktikum VIII1. Apa yang dimaksud dengan store procedure ?2. Apa yang dimaksud dengan parameter output ? Apa kegunaannya ?

Jawaban Tugas Pendahuluan Praktikum VIII

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 60: Modul Praktikum SQL SERVER 2005

Langkah selanjutnya:Ikuti langkah-langkah praktikum.

Buat sehuah Store Procedure untuk menghitung Nilai rata-rata langsung dari tabel asisten_XXX. Buat keterangan bahwasannya assist en tersebut memiliki honor diatas rata-rata atau dibawah rata-rata.Buat sebuah Store Procedure untuk menghitung Nilai rata-rata tiap praktikan dalam satu kelas praktikum. (Buat tabel baru untuk menampung nilai-nilai praktikum. Samakan dengan kartu praktikum anda). Buat keterangan bahwasannya praktikan tersebut memiliki nilai diatas rata-rata atau dibawah

Soal Praktikum VIII

1. Bagaimana menjalankan sebuah store procedure ?

Jawaban Soal Praktikum VIII

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 61: Modul Praktikum SQL SERVER 2005

Tugas Praktikum VIIIGunakan tabel anggota, buku, dan pinjam yang telah anda buat untuk membuat Store Procedure :

menghitung denda anggota yang paling hanyak dan herdasarkan rata-rata yang ada cari yang paling besar jumlah denda yang diterima.

Jawaban Tugas Praktikum VIII

NRP Acc

NAMA

HARI/JAM PRAKTIKUM

KELAS Nilai:

Page 62: Modul Praktikum SQL SERVER 2005

Praktikum

ADO CONNECTION

Tujuan : 1. Membuat Aplikasi Berbasis Database ADO Connection 2. Membuat Relasi Antar Tabel3. Report Data

Aplikasi dalam Delphi1. Buat Menu Seperti di bawah ini !!!

2. Buat Form Master Type Rumah2.1 Form Data Master

Page 63: Modul Praktikum SQL SERVER 2005

2.2. Form Tambah Data

2.3. Form Insert Data

Page 64: Modul Praktikum SQL SERVER 2005

2.4 Form Edit Data

Page 65: Modul Praktikum SQL SERVER 2005

3. Buat Form Relasi Antar Tabel

4. Buat Report Type Rumah

5. Buat Report Bahan Rumah

6. Code Program

Page 66: Modul Praktikum SQL SERVER 2005

6.1 Tombol Simpan pada Form Tambah Dataprocedure TFormAddRumah.Button1Click(Sender: TObject);beginADOtyperumah.append;ADOtyperumah['typerumah']:=Edtyperumah.text;ADOtyperumah['hargarumah']:=StrToFloat(Edhargarumah.text);ADOtyperumah['luasbangunan']:=Edluasbangunan.text;ADOtyperumah['luastanah']:=Edluastanah.text;ADOtyperumah.Post;end;

6.2 Tombol Simpan pada Form Insert Dataprocedure TFormInserttyperumah.Button1Click(Sender: TObject);beginADOtyperumah.insert;ADOtyperumah['typerumah']:=Edtyperumah.text;ADOtyperumah['hargarumah']:=StrToFloat(Edhargarumah.text);ADOtyperumah['luasbangunan']:=Edluasbangunan.text;ADOtyperumah['luastanah']:=Edluastanah.text;ADOtyperumah.Post;end;

6.3 Tombol Delete pada Form Master Type Rumahprocedure TFormtyperumah.Button4Click(Sender: TObject);beginADOtyperumah.Delete;end;

Praktikum

ADO CONNECTION 2

Tujuan : 1. Membuat Aplikasi Berbasis Database ADO Connection (MS. Access)2. Relasi Multi Tabel3. Tabel Master4. Tabel Transaksi

Aplikasi dalam Delphi1. Buat Menu Seperti di bawah ini !!!

Page 67: Modul Praktikum SQL SERVER 2005

2. Buat Form Master

2.1 Form Data Master Barang

2.2 Form Data Master Diskon

Page 68: Modul Praktikum SQL SERVER 2005

2.3 Form Data Master PPn

Page 69: Modul Praktikum SQL SERVER 2005

3. Form Transaksi Barang

4. Code Program4.1 Events Form Createprocedure TFormTransaksi.FormCreate(Sender: TObject);beginDBLookupkdbarang.Enabled:=false;DBEdNamaBarang.Enabled:=false;DBEdSatuan.Enabled:=false;DBEdStock.Enabled:=false;DBEdHarga.Enabled:=false;EdJumlah.Enabled:=false;DBEdDiskon.Enabled:=false;DBEdPPN.Enabled:=false;EdTotalBayar.Enabled:=false;end;

4.2 Events DBLookupkdbarang Clickprocedure TFormTransaksi.DBLookupkdbarangClick(Sender: TObject);beginEdjumlah.SetFocus;end;

4.3 Events EdJumlah Changeprocedure TFormTransaksi.EdJumlahChange(Sender: TObject);

Page 70: Modul Praktikum SQL SERVER 2005

beginEdTotalBayar.Text:=FloatToStr(StrToFloat(EdJumlah.Text)*StrToFloat(DBEdharga.text));EdTotalBayar.Text:=FloatToStr(StrToFloat(EdTotalBayar.Text)-StrToFloat(EdTotalBayar.Text)*StrToFloat(DBEdDiskon.text)/100);EdTotalBayar.Text:=FloatToStr(StrToFloat(EdTotalBayar.Text)+StrToFloat(EdTotalBayar.Text)*StrToFloat(DBEdPPN.text)/100);EdTotalBayar.Text:=format('%12.0n', [StrToFloat(EdTotalBayar.Text)]);end;

4.4 Events Tombol Tambahprocedure TFormTransaksi.TambahClick(Sender: TObject);beginDBLookupkdbarang.Enabled:=true;EdJumlah.Enabled:=true;end;

4.5 Events Tombol Batalprocedure TFormTransaksi.BatalClick(Sender: TObject);beginDBLookupkdbarang.Enabled:=false;EdJumlah.Enabled:=false;end;

4.6 Events Tombol Simpanprocedure TFormTransaksi.SimpanClick(Sender: TObject);begin ADOTtransaksi.append; ADOTtransaksi['kodebarang']:=DBLookupkdbarang.text; ADOTtransaksi['jumlah']:=EdJumlah.text; ADOTtransaksi['diskon']:=DBEdDiskon.text; ADOTtransaksi['ppn']:=DBEdppn.text; ADOTtransaksi['totalharga']:=EdTotalBayar.text; ADOTtransaksi.post; DBLookupkdbarang.Enabled:=false; EdJumlah.Enabled:=false;end;

Page 71: Modul Praktikum SQL SERVER 2005

Praktikum

ADO CONNECTION 3(RELASI TABEL)

Tujuan : 1. Membuat Aplikasi Berbasis Database ADO Query (MS. Access)2. Relasi Multi Tabel3. Tabel Master4. Tabel Transaksi

Aplikasi dalam Delphi1. Buat Menu Seperti di bawah ini !!!

2. Buat Form Master

2.1 Form Data Master Barang

Page 72: Modul Praktikum SQL SERVER 2005

Properties ADOQuery1Name : ADOQTBarangSQL : select * from Tbarang order by kodebarang

2.2 Form Data Master Diskon

Properties ADOQuery1Name : ADOQTDiskonSQL : select * from TDiskon order by kodebarang

Page 73: Modul Praktikum SQL SERVER 2005

2.3 Form Data Master PPn

Properties ADOQuery1Name : ADOQTPPnSQL : select * from TPPn order by kodebarang

Page 74: Modul Praktikum SQL SERVER 2005

3. Form Transaksi Barang

Properties ADOQuery1Name : ADOQTBarangSQL : select * from Tbarang order by kodebarang

Properties ADOQuery2Name : ADOQTDiskonSQL : select * from Tdiskon,Tbarang

where Tdiskon.kodebarang=Tbarang.kodebarang Properties ADOQuery3Name : ADOQTDiskonSQL : select * from TPPn,Tbarang

where TPPn.kodebarang=Tbarang.kodebarang

Properties ADOQuery4Name : ADOQTTransaksiSQL : select * from Ttransaksi order by kodebarang

4. Code Program4.1 Events Form Createprocedure TFormTransaksi.FormCreate(Sender: TObject);beginDBLookupkdbarang.Enabled:=false;DBEdNamaBarang.Enabled:=false;DBEdSatuan.Enabled:=false;DBEdStock.Enabled:=false;DBEdHarga.Enabled:=false;EdJumlah.Enabled:=false;DBEdDiskon.Enabled:=false;DBEdPPN.Enabled:=false;EdTotalBayar.Enabled:=false;end;

4.2 Events DBLookupkdbarang Clickprocedure TFormTransaksi.DBLookupkdbarangClick(Sender: TObject);

Page 75: Modul Praktikum SQL SERVER 2005

beginADOQTDiskon.SQL.Text:='select * from tdiskon where kodebarang='+QuotedStr(dblookupkdbarang.Text);ADOQTDiskon.Open;ADOQTPPn.SQL.Text:='select * from tppn where kodebarang='+QuotedStr(dblookupkdbarang.Text);ADOQTPPn.Open;Edjumlah.SetFocus;end;

4.3 Events EdJumlah Changeprocedure TFormTransaksi.EdJumlahChange(Sender: TObject);beginEdTotalBayar.Text:=FloatToStr(StrToFloat(EdJumlah.Text)*StrToFloat(DBEdharga.text));EdTotalBayar.Text:=FloatToStr(StrToFloat(EdTotalBayar.Text)-StrToFloat(EdTotalBayar.Text)*StrToFloat(DBEdDiskon.text)/100);EdTotalBayar.Text:=FloatToStr(StrToFloat(EdTotalBayar.Text)+StrToFloat(EdTotalBayar.Text)*StrToFloat(DBEdPPN.text)/100);EdTotalBayar.Text:=format('%12.0n', [StrToFloat(EdTotalBayar.Text)]);end;

4.4 Events Tombol Tambahprocedure TFormTransaksi.TambahClick(Sender: TObject);beginDBLookupkdbarang.Enabled:=true;EdJumlah.Enabled:=true;end;

4.5 Events Tombol Batalprocedure TFormTransaksi.BatalClick(Sender: TObject);beginDBLookupkdbarang.Enabled:=false;EdJumlah.Enabled:=false;end;

4.6 Events Tombol Simpanprocedure TFormTransaksi.SimpanClick(Sender: TObject);begin ADOQTtransaksi.append; ADOQTtransaksi['kodebarang']:=DBLookupkdbarang.text; ADOQTtransaksi['jumlah']:=EdJumlah.text; ADOQTtransaksi['diskon']:=DBEdDiskon.text; ADOQTtransaksi['ppn']:=DBEdppn.text; ADOQTtransaksi['totalharga']:=EdTotalBayar.text; ADOQTtransaksi.post; DBLookupkdbarang.Enabled:=false; EdJumlah.Enabled:=false;end;

5. Project Manager

Page 76: Modul Praktikum SQL SERVER 2005