Anda di halaman 1dari 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: 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.
1

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

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 Privileges Suatu database yang kompleks dapat diakses oleh banyak user dengan batasanbatasan 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 Select Delete Insert Update Execute References ALL Deskripsi Ijin akses untuk membaca data. Ijin akses untuk menghapus data. Ijin akses untuk menulis atau memasukkan data baru. Ijin akses untuk memodifikasi data. Ijin akses untuk mengeksekusi atau menjalankan prosedur tersimpan (stored procedure) Ijin akses untuk menciptakan tabel yang merferensikan pada tabel yang lain. 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 Create Database Create Default Create Function Create Procedure Create Rule Deskripsi Statemen untuk memberikan ijin akses pada user untuk membuat database. Statemen untuk memberikan ijin akses pada user untuk membuat default database. Statemen untuk memberikan ijin akses pada user untuk membuat fungsi. Statemen untuk memberikan ijin akses pada user untuk membuat prosedur. Statemen untuk memberikan ijin akses pada user untuk membuat rule.

Create Table Create View Backup Database Backup Log

Statemen untuk memberikan ijin akses pada user untuk membuat tabel. Statemen untuk memberikan ijin akses pada user untuk membuat view. Statemen untuk memberikan ijin akses pada user untuk melakukan backup database. 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 NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

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

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

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

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Tugas Praktikum I
Dari 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

Praktikum

TABEL
Tujuan: 1. Praktikan memahami struktur pembuatan tabel. 2. Praktikan mampu membuat tabel. 3. Praktikan dapat memasukkan data ke dalam tabel. Persiapan: 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 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: Mahasiswa NRP 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 : char(n) Mendefinisikan string sepanjang n karakter. Bila n tidak didefinisikan maka panjang karakter adalah 1. varchar(n) binnary(n) Mendefinisikan string sepanjang variabel 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) Mendefinisikan binary data untuk menyimpan image seperti GIF, JPG, TIFF, dU. Bilangan pecahan dengan 4 angka dibelakang koma. Digunakan untuk perhitungan moneter. Sama dengan int, membutuhkan 50% memory yang ditempati int. Mendefinisikan integer, bilangan bulat yang menampung angka sebanyak 4 byte. Mendefinisikan angka pecahan (floating point). Nilai n adalah jumlah angka yang dapat ditampung . sysname sama dengan float namun menempati memory 50% dari float. sama dengan datetime hanya dengan presisi lebih kecil dimana satuan waktu terkecil adalah menit dan nilai tanggal sampai dengan 6 juni 2079.

image

money

smallin t int

floatfn)

real(n) smalldatetime

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

3. Unicode Charakter String Unicode adalah karakter international yang menampung 16 bit per karakter. Unicode digunakan oleh bahasa non latin, misalnya Jepang, Jerman, Thai, dll. 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. Unicode texts dengan (1.073.741.823)karakter. panjang dua pangkat tigapuluh

ntext

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 membuai tipe data baru : USE nama_database SP ADDTYPEnama tipe data baru,tir>e data SOL 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_ADDTYPEalamat/varchar(9)'/nonull

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 tipedata batasan,........) Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key, Fpreign Key,

Unique, Not Null, dll. 6. Melihat Struktur Tabel Syntax:

7. Memodifikasi dan menambah Field pada Tabel Untuk memodifikasi sebuah field pada tabel, syntax: ALTER TABLE Namajabel ALTER COLUMN Nama_Field tipe_data(panjang) constraint Untuk menambah sebuah field pada tabel, syntax:

11

ALTER TABLE Nama_tabel ADD Nama_Field_baru tipe_data(panjang) constraint

8. Menghapus Tabel Syntax: DROP TABLENamajabel; 9. INTEGRITAS DATA Integritas 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 individual Verifikasi satu field m elalui ft eld yang lainnya Validasi data dari satu table ke table yang lainnya. Verifikasi bahwa transaksi berjalan secara sukses dari awal hingga akhir Beberapa jenis integritas data 9.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 Domain Menyatakan 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 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 Integritas tnela lui 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 Sekarang akan dibahas constraint yang ada dalam Ms.SQL Server beserta contoh penggunaannya. 9.4

12

10. PRIMARY KEY Primary 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 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 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. CHECK CHECK digunakan untuk menjamin bahwa nilai kolom dalah dalam ruang nilai tertentu. Misalnya nilai mata kuliah dibatasi tidak boleh melebihi nilai 100. Operator logika seperti AND, OR, dan NOT dapat disertakan dalam pemhuatan ini 14. FOREIGN KEY FOREIGN KEY adalah kolom pada sebuah tabel yang menunjukkan bahwa kolom tersebut adalah primary key pada tabel lain. Tabel Mahasiswa

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

14

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

Nama_Field2,

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 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 II Jelaskan dengan singkat mengenai table, field dan record ! 2. Sebut dan jelaskan dengan singkat tentang jenis integritas data !
1.

Jawaban Tugas Pendahuluan Praktikum II

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

15

LANGKAH-LANGKAH PRAKT1KUM: 1. Buat tabel herikut melalui QUERY ANALYZER, lengkap dengan constraint Mahasiswa_XXX(Nrp, nama, jk, alamat, kota, propinsi, telpon) Nrp char 10 Nama varchar 30 char 1 ]l< Alamat Kota Propinsi Telpon varchar 46 char 22 char 25 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_XXX Mata_Kuliah (kode_mata_kuliah, Namajculiah, Sks) kode mata kuliah char 8 Nama kuliah varchar 16 Sks int

Perhatikam Kode_mata_kuliah merupakan primary key Nama_kuliah dan Sks tidak boleh kosong 3. Buat tabel ambil_kuliah_XXX Ambil_Kuliah (kode_mata_kuliah, Nrp, Nilai_Uts, Nilai_Uts,Grade) kode_mata_kuliah char 8 Nrp char 10 NilaiJJts int Nilai_Uas int Grade Char 1 Perhatikam Kode_mata_kuliah merwpakan Foreign key yang mengacu pada tabel Mata_Kuliah_XXX (field kode_ mata_kuliah). Nrp merupakan Foreign key yang mengacu pada tabel MahasiswaJXXX (field Nrp). NilaiJJts, NilaiJJas tidak boleh melebihi 100 4. 5. Modifikasi field Telpon pada tabel Mahasiswa_XXX sehingga type-nya menjadi char. Isi satu record pada Data mahasiswa yang telah dibuat. Perintah SQL nya adalah: 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 99110800 NAMA Agnes Monica M. Yoesni ALAMAT Jl. Karya Timur 280 Jl. Sunan Giri V/16 Jl. MelatiXI/234 KOTA Jakarta PROPINSI DKI Jakarta Jatim TELFON 0216452444

97110211

Gresik

031772739

98111761

Antoni Stevens

Lubuk Linggau

Sumatra

0561567448

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

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

Tugas Praktikum II 1. Buat tabel-tabel dari sebuah perpustakaan dengan tipe data dan aturanaturannya: Tabel Anggota Nama Field Type No_Anggot a Char Panjang 8 Aturan Not Null, Unique, Primary Key

Nama Alamat

Varchar2 Varchar2

20 30

Not NuU Can Be Null, Default = 'Malang' Can Be Null

Telepon

Number

10

Tabel Buku Nama Field No_Buku Judul Pengarang Penerbit Jumlah Type Char Varchar2 Varchar2 Varchar2 Number Panjang 8 20 30 20 10 Aturan Not Null, Unique, Primary Key Not NuU Can Be Null Can Be Null 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.

Jawaban Tugas Praktikum II

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

MEMANIPULASI DATA
Tujuan: 1. Praktikan mampu untuk memanipulasi data dan mampu mencari data (Retrieval) Persiapan: 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 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 IIIB No.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.

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 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 bahwa kolom yang dipilih adalah seluruh kolom yang ada pada tabel tersebut. SELECT * FROM mata_kuliah_XXX mempunyai arti soma dengan: SELECT Kodejmatajculiah, 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: = soma dengan <> tidak soma dengan < lehih kecil <= lehih kecil atau soma > lehih hesar >= lehih hesar atau soma Contoh: Tampilkan data kuliah yang jumlah sks nya dibawah 3 SELECT * FROM Mata_kuliah WHERE sks < 3 5. AND, OR, dan NOT Untuk 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 BETWEEN BETWEEN menyederhanakan pencarian "antara" (range) seperti berikut:

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 AND
nihil

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 LIKE Umumnya 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 pertanyaan Contoh: Cari Mahasiswa yang alamat rumahnya tidak dimulai dengan "}l." SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE alamat NOT LIKE '%J1%' 8. IN & NOT IN IN 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 NULL NULL adalah nilai yang belum diisi NULL tidak identik dengan spasi(blank).

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. DISTINCT DISTINCT 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_XXX untuk menghilangkan duplikasi pada tampilan, maka digunakan kunci kata DISTINCT SELECT DISTINCT kota FROM mahasiswa_XXX Tugas Pendahuluan Praktikum III 1. 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

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 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 TKD1111 TKD1224 TKK1248 TKK1247 TKK1249 Fisika Dasar Manajemen Umum Matematika Diskrit Praktikum Visual Basic Tugas Akhir Sistem Berkas o 2 3 1 6 4

Update kolom SKS, sehingga jumlah SKS menjadi 2 kalinya d) isi data pada tabel ambil_kuliah : Kode_mata _kuliah NRP Nila i_Ut s 98311256 60 60 Nilai_ Uas Gr ad e C 34

TKD1113

TKD1111 TKD1224 TKK1249 TKK1248

98311262 98111701 98111668 98311386

75 89 57 40

80 98 61 55

B A C D

e) Lihat daftar mahasiswa wanita yang berasal bukan dari Malang f) 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 lulus i) 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 III 1. Berikan kesimpulan tentang praktikum III! Jawaban Soal Praktikum III

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Tugas Praktikum III Buatlah 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 NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

FUNGSI DALAM SQL


Tujuan: 1. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL Persiapan: 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 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 Materi 1. Aritmatik T - S Penghitungan aritmatika dapat dilakukan dengan menggunakan * / + seperti umumnya 2. Kelompok Nilai Fungsi AVG, Max, MIN, SUM, COUNT adalah fungsi yang memproses tab el dengan kualifikasi tertentu. 3. AVG Mencari rata-rata SELECT A VG(field_numerik) from nama_tdbel Nilai 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. MAX Mencari maksimum SELECTMAX(nilai_uas) FROM ambil_kuliah_XXX 5. MIN Mencari minimum SELECT MIN(nilai_uas) FROM ambil_hiliah_XXX 6. COUNT Menghitung record dengan kualilfikasi tertentu. COUNT(*) menyatakan hitung seluruh

record yang berlaku. SELECT COUNTC) FROM mahasiswaJCXX 7. SUM Menjumlah nilai dari kolom tertentu SELECT SUM(nilai_uas) FROM ambilJculiahJXXX 8. GROUP BY Group By Menyeleksi himpunan yangdihitung berdasarkan fungsi spesifik seperti AVG, COUNT atau lainya. SELECT nrp,COUNT(*) FROM ambiljodiah GROUP BY rurp 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 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. JOIN Join 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 Alias Alias 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 !

Jawaban Tugas Pendahuluan Praktikum IV

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,Nrp) Kd_asschar 10 Nrp 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 10 Namajpraktikum Varchar 30 Ruang varchar 46 Kdjprak merupakan primary key d) Buat tabel honor_XXX dengan ketentuan : honor_XXX(kd_ass,jumlahJam,honor) kd_ass char 10 jumlah_jam ini honor 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 S78678 S45389 99110800 97110211 98111761

f) Isi data praktikum_XXX : Kd_prak P10054 P22094 P90877 P78678 Nama_praktikum Pascal Turbo C++ Ms.Sql Server2000 Cobol Ruang Lan A dan Lan B Unix Database Lan A dan Lan B

P45389 S43535 S56743

Rpg Html
Operation Research

As400 HTML Unix

g) Isi data honor_XXX : Kd_ass S10054 S78678 S45389 Jumlahjam 12 6 8 Honor 96000 48000 64000

h) Tamhahkan 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% 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 IV 1. Kenapa nilai field pada foreign key harus ada terlebih dahulu pada field primary key yang diacu? 2. Berikan kesimpulan Anda mengenai praktikum IV ini ! Jawaban Soal Praktikum IV

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Tugas Praktikum IV 1. 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.

Jawaban Tugas Praktikum IV

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

VIEW DAN INDEX


Tujuan: 1 Praktikan mampu memahami view dan index. Persiapan: 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 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. View Sebuah 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 VIEW VIEWdapat dihapus dengan menggunakan DROP VIEW seperti berikut: DROP VIEW vl b. VIEW Dari Beberapa Tabel VIEW 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

CREATE VIEW v4 AS SELECT A.nrp, M.nama FROM asisten_XXX A,Mahasiswa_XXX M WHERE A.nrp=M.nrp c. Mengubah VIEW Untuk dapat langsung mengubah VIEW, gunakan ALTER soma dengan syntax alter pada tab el. d. Updating dan insert data Melalui VIEW Updating 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 OPTION INSERT 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 VIEW Melalui 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 masingmasing 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.

Dengan demikian index tidak boleh digunakan secara sembarang, melainkan dengan perencanaan dan performance tuning yang baik. b. Memilih kolom untuk index Index 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 dicari o Primary key dan Foreign key o Kolom yang diakses secara abjad o Kolom yang diakses dan sering digunakan dengan join o 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 record o 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 Index Dengan 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 Index Dalam 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_Nama CREATE NONCLUSTERED INDEX NI Nama ON Peeawai (Nama) Atau: CREATE INDEX NI_Nama ON Pegawai (Nama) e. Unique Index Secara otomatis unique index diciptakan melalui constraint primary key dan unique. Sistem akan memeriksa setiap saat record baru diciptakan atau di-update. Membuat unique index secara manual adalah: CREATE UNIQUE INDEX UI_KTP ON Pegawai (KTP) Tugas Pendahuluan Praktikum V 1. Apa yang dimaksud dengan view ? Sebutkan keuntungan dari view !

2. Apa yang dimaksud dengan index ? Sebutkan keuntungan dari index ! Jawaban Tugas Pendahuluan Praktikum V

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Langkah selanjutnya: Ikuti langkah-langkah praktikum. Langkah-langkah praktikum: a. Aktifkan Tools Query Analyzer b. 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 nomor telpon 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
L

ALAMAT Jl.hartako no.l JLMerak timur No. 99 Blora

KOTA Makassar

PROPINSI Sulsel

TELFON 0411869174

981117 24 Wendy Setiawan 98111720 Indra Rahmanto

Cepu

Jatim

023772739

e. Buat view dari tabel honor_XXX dan Lakukan update data honor dengan memberikan THR pada setiap assiten dengan jumlah 23 % dari honor yang diterima. f. Buat view dari tabel honor_XXX dan Lakukan update data honor dengan memberikan bonus bagi yang mengajar lebih dari 10 jam sebasar 5 % dari total honor yang diterima. g. Buat view dari tabel praktikum_XXX dan Lakukan update data ruangan menjadi UNIX bila kdjprak memiliki angka ganjil di setiap akhir kode. Gunakan fungsi IN Soal Praktikum V 1. Sebutkan batasan manipulasi melalui view ! 2. Apa kegunaan dari index ? Jawaban Soal Praktikum V

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

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 NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

TRIGGER
Tujuan: 1 Praktikan mampu memahami trigger. 2 Praktikan mampu membuat trigger. Persiapan: 1 Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 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. Hasil 1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum VI sesuai dengan pertanyaan yang ada. 2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum VI kepada asisten pada pertemuan berikutnya.

Landasan Materi: 1. Database Trigger Trigger adalah blok program transact-SQL yang diassosiasikan dengan tabel dan disimpan dalam database. Trigger dieksekusi bila terjadi suatu database "event". Database event adalah insert, update dan delete. 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 a Keamanan Sistem Membuat historical record (riwayat perubahan) Dan Iain-lain Deklarasi Trigger: CREATE TRIGGER namatrigger ON namatabel for inser^update^elete AS DECLARE..................<deklarasi variable> Tergantung dari event yang dipilih : FOR INSERT Trigger aktifpada saat record baru FOR UPDATE Trigger aktifpada saat record diubah FOR DELETE Trigger 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 INSERT AS 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')

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/2002 No_peserta Noma ]K Alamat Kota 13 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 Trigger Menghapus 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 NAMA HARI/JAM PRAKTIKUM KELAS


LANGKAH LANGKAH PRAKTIKUM:

Acc

Nilai:

a. Aktifkan Tools Query Analyzer b. Buat sebuah tabel prak_jln_XXX dengan ketentuan : id_d.tr : char 5 peserta : int max : int id_dtr merupakan primary key max merupakan jumlah maksimum praktikan dalam satu sesi c. Buat sebuah tabel daftar_praktikum_XXX dengan ketentuan : no_daftar : int nrp : char 10 kd_prak : char 10 id_dtr : char 5 No_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 yang setiap kali jika ada pendaftar baru maka jumlah peserta pada tabel prak_jln_XXX akan ditambahkan 1. Sebaliknya jika ada pendaftar yang dihapus maka jumlah peserta akan dikurangi 1. Perhatikan bahwa awalnya kolom jumlah peserta pada tabel sesi adalah kosong, yang berarti NULL, bukan 0. Oleh karena itu untuk mengubah nilai NULL, diperlukan fungsi ISNULL (namavariable,0) sebagai berikut: UPDATE sesi SET jumlahpeserta = ISNULL (jumlahpeserta,0) +1 f. Dengan menggunakan 2 tabel yang sudah dibuat, rubahlah trigger yang telah dibuat pada langkah 'e' dimana setiap kali jika ada pendaftar baru maka jumlah maksimal peserta pada tabel prak_jln_XXX akan dikurangi 1. Sebaliknya jika ada pendaftar yang dihapus maka jumlah peserta akan ditambah 1. g. Buat sebuah trigger yang mencatat riwayat honor asisten (historical), yakni setiap kali ada perubahan honor asisten, maka perubahan itu akan dicatat di tabel khusus yang bernama h_asisten_XXX Struktur tabel h_asisten_XXX Kd_ass char 10 honor float tgl_update datetime h. Lakukan testing terhadap trigger yang telah dibuat dengan memperhatikan cara kerja trigger tersebut.

Soal Praktikum VI

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

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Tugas Praktikum VI 1. Gunakan tabel anggota,buku, dan pinjam yang telah an da buat untuk membuat trigger: a. membuat riwayat / historical setiap kali ada denda yang masuk dan buat total terakhir jumlah denda yang ada menurut event terakhir kali. b. membuat penghitungan jumlah record yang ada. Jawaban Tugas Praktikum VI

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

TRANSACT-SQL
Tujuan: 1. Praktikan mampu untuk mengerti dan memahami Transact-SQL Persiapan: 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 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-SQL TRANSACT-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.

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

Keterangan: SELECT digunakan juga untuk eksekusi aritmatika atau lainnya. Misalnya : SELECT @vl = @vl - 100 Variable dapat digunakan untuk mengambil nilai dari sebuah query: Contoh: DECLARE @nama char(30) SELECT @nama = nama FROM mahasiswa_XXX WHERE nrp='98111761' PRINT @nam Hasih Aan Isnaini PRINT adalah fungsi yang menampilkan teks dan variable pada console (layar).

Contoh:
PRINT /yNama yang ditemukan adalah :" PRINT @nama PRINT "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 datetime SELECT @honor=300000 SELECT @nama='HUGO LOMBARDI' SELECT @tgl_hari_ini=getdate() SELECT @instansi='ECOMODA' SELECT @tgl_nanti=@tgl_hari_ini PRINT ('Honor anda adalah') PRINT (honor) PRINT (@nama) PRINT (@instansi) PRINT (@tgl_hari_ini) PRINT (@tgl_nanti)

Hasih Honor anda adalah 300000 HUGO LOMBARDI ECOMODA MAY 5 2002 10:18AM MAY 5 2002 10:18AM 4. Variable Global Variable 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. IF IF digunakan dalam mengendalikan alur program berdasarkan kondisi. IF kondisi Instruksi IF kondisi Instruksil ELSE Instruksi! 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-rata Bila diaplikasikan pada tabel asisten_XXX, maka nilai honor dapat diambil dari asisten: DECLARE @honor int, @rata_rata int, @asisten char(8)

SELECT @asisten='981117 6V SELECT @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 ratarata" penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih dari satu instruksi.. 6. WHILE WHILE digunakan dalam mengeksekusi satu blok program berulang-ulangsampai kondisi pada WHILE menjadi false. WHILE kondisi BEGIN Contoh: DECLARE @I int SELECT @i=5 WHILE @i>0 BEGIN PRINT "i =//+str(@i) SELECT @i = @i -1 END Hasih i= 5 i= 4 i= 3 i= 2 i= 1

Perhatikan hahwa fungsi str() diperlukan untuk mengkonversi hilangan integer menjadi string (teks). 7. CONTINUE dan BREAK CONTINUE dan BREAK herkaitan dengan WHILE. CONTINUE melanjutkan alur program pada pemeriksaan kondisi WHILE, sedangkan BREAK mengakibatkan alur program keluar dari WHILE. WHILE kondisil BEGIN IT kondisil CONTINUE END WHILE kondisil BEGIN 8. RETURN RETURN akan menghentikan program dari eksekusi. RETURN dapat digunakan dalam memproses error. IF @@error <> 0 BEGIN PRINT "Error..."

RETURN END 9. CASE CASE menyederhanakan IF yang berlapis dengan tujuan agar program dapat dimengerti/dibaca lebih mudah. IF kondisil ELSE IF kondisil ELSE IF kondisi3 ELSE Dapat diganti: CASE WHEN kondisil THEN WHEN kondisil THEN WHEN kondisil THEN ELSE Contoh: DECLARE @t char(l), @hasil varchar(255) SELECT @t='B' SELECT @hasil= CASE WHEN @t='A'THEN 'KarakterA' WHEN@t='B'THEN

'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

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 " + @teks Hasih Wendy Setiawan adalah Laki-laki

Soal Pendahuluan Praktikum VII 1. Apa yang dimaksud dengan T-SQL ? 2. Bagaimana kerangka dari T-SQL ? Jawaban Tugas Pendahuluan Praktikum VII

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 VII 1. Struktur kontrol apa saja yang dapat digunakan 2. Bagaimana menjalankan T-SQL ? Jawaban Soal Praktikum VII

Tugas Praktikum VII 4.1 Gunakan tabel anggota, buku, dan pinjam yang telah anda buat untuk membuat TSQL : 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 NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

STORED PROCEDURE
Tujuan: 1. Praktikan mampu untuk memahami stored procedure. Persiapan: 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2000, khususnya mengenai trigger. 2. Modul praktikum VIII. Pekerjaan : 1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum VIII di lembar jawaban yang sudah disediakan di modul. 2. Selesaikan Tugas Pendahuluan praktikum VIII, kemudian lanjutkan dengan mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3. Kerjakan Soal Praktikum VIII yang telah disediakan di modul, setelah selesai mengerjakan langkah-langkah praktikum. 4. Kerjakan Tugas Praktikum VIII sebagai latihan dirumah. Hasil: 1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan jawaban Soal Praktikum VIII sesuai dengan pertanyaan yang ada. 2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas Praktikum VIII kepada asisten pada pertemuan berikutnya. 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 herawalan sjg, dan extended stored procedure (xp), program yang dikompilasi sehagai EXE atau DLL (Dynamic Link Library). Membuat Prosedur CREATE PROCEDURE NamaProsedur AS Deklarasi variable CREATE PROCEDURE dapat disingkat dengan CREATE PROC. Berikut adalah contoh sebuah prosedur yang menampilkan honor instruktur. CREATE PROCEDURE prjionor AS SELECT kd_ass, honor FROM honor_xxx RETURN Menjalankan prosedur tersebut dengan EXEC atau langsung noma prosedure

EXECvr honor Untuk mengkoreksi sebuah prosedur, maka kunci kata ALTER harus digunakan. ALTER PROCEDURE prjionor AS SELECT kd_ass, honorjumlahjam FROM honor_xxx Untuk menghapus prosedur gunakan DROP DROP PROCEDURE NamaProsedur Untuk secara otomatis mengubah prosedur tanpa ALTER, dapat dibuat script sebagai berikut USE stiki_xxx IF EXIST (SELECT name FROM sysobjects WHERE name = 'prjionor' AND type = 'P') DROP PROCEDURE prjionor CREATE PROCEDURE prjionor AS SELECT kd_ass, honor,jumlahj am FROM honor xxx

2. Parameter Prosedur dapat mempunyai parameter berupa variable yang disuplai oleh program yang memanggilnya. CREATE PROCNamaProsedur (@pl int, @p2 char(16), ...) AS Deklarasi 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 prjionor (@ini char(6))AS select jumlahJam,honor from honor_xxx where kd_ass=@ini Car a mengeksekusi: EXEC prjionor S56743' Hasil: ]umlah_jam honor 42 330000 3. Nilai Default Bila pada saat eksekusi procedure tidak diberikan parameter, maka nilai parameter tersebut menjadi kosong (null). Untuk menghindari niali null, maka pemberian nilai pada parameter dapat menggunakan nilai default. ALTER PROCEDURE prjionor (@ini char(6)='S56743')AS select jumlahJam,honor from honor_xxx where kd_ass=@ini RETURN EXECprJonor S90877' Hasil: Jumlahjam honor 34 200000

EXEC pr_honor Hasil: Jumlah_jam honor 42 330000 Berikut adalah contoh program yang menedeteksi parameter, hila kosong maka pesan error akan ditampilkan. ALTER PROCEDURE prjionor (@ini char(6)=null)AS

if@ini=null
begin declare @pesan char(6) select @pesan=x kosong1 print @pesan return end select jumlah_j:am,honor from honor_xxx where kd_ass=@ini RETURN 4. Parameter Output Nilai parameter bisa diolah pada program procedure dan untuk kemudian parameter tersebut dapat diubah dan diberikan nilainya pada program yang memanggilnya. CREATE Proc m @pl int, @p2 int, @h int OUTPUT as 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 output as if@ini=null begin print 'parameter kosong* return end select @dana = honor from honor_xxx where kd_ass=@ini return Eksekusi: DECLARE @h int EXECprJonorl S56743',@/z OUTPUT print honor = ' +str(@h) 85

Soal Pendahuluan Praktikum VIII 1. Apa yang dimaksud dengan store procedure ? 2. Apa yang dimaksud dengan parameter output ? Apa kegunaannya ? Jawaban Tugas Pendahuluan Praktikum VIII

NRP NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

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 NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Tugas Praktikum VIII Gunakan 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 NAMA HARI/JAM PRAKTIKUM KELAS

Acc

Nilai:

Praktikum

ADO CONNECTION
Tujuan : 1. Membuat Aplikasi Berbasis Database ADO Connection 2. Membuat Relasi Antar Tabel 3. Report Data Aplikasi dalam Delphi 1. Buat Menu Seperti di bawah ini !!!

2. Buat Form Master Type Rumah 2.1 Form Data Master

2.2. Form Tambah Data

2.3. Form Insert Data

2.4 Form Edit Data

3. Buat Form Relasi Antar Tabel

4. Buat Report Type Rumah

5. Buat Report Bahan Rumah

6. Code Program

6.1 Tombol Simpan pada Form Tambah Data procedure TFormAddRumah.Button1Click(Sender: TObject); begin ADOtyperumah.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 Data procedure TFormInserttyperumah.Button1Click(Sender: TObject); begin ADOtyperumah.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 Rumah procedure TFormtyperumah.Button4Click(Sender: TObject); begin ADOtyperumah.Delete; end;

Praktikum

ADO CONNECTION 2
Tujuan : 1. Membuat Aplikasi Berbasis Database ADO Connection (MS. Access) 2. Relasi Multi Tabel 3. Tabel Master 4. Tabel Transaksi Aplikasi dalam Delphi 1. Buat Menu Seperti di bawah ini !!!

2. Buat Form Master 2.1 Form Data Master Barang

2.2 Form Data Master Diskon

2.3 Form Data Master PPn

3. Form Transaksi Barang

4. Code Program 4.1 Events Form Create procedure TFormTransaksi.FormCreate(Sender: TObject); begin DBLookupkdbarang.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 Click procedure TFormTransaksi.DBLookupkdbarangClick(Sender: TObject); begin Edjumlah.SetFocus; end; 4.3 Events EdJumlah Change procedure TFormTransaksi.EdJumlahChange(Sender: TObject);

begin EdTotalBayar.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 Tambah procedure TFormTransaksi.TambahClick(Sender: TObject); begin DBLookupkdbarang.Enabled:=true; EdJumlah.Enabled:=true; end; 4.5 Events Tombol Batal procedure TFormTransaksi.BatalClick(Sender: TObject); begin DBLookupkdbarang.Enabled:=false; EdJumlah.Enabled:=false; end; 4.6 Events Tombol Simpan procedure 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;

Praktikum

ADO CONNECTION 3(RELASI TABEL)


Tujuan : 1. Membuat Aplikasi Berbasis Database ADO Query (MS. Access) 2. Relasi Multi Tabel 3. Tabel Master 4. Tabel Transaksi Aplikasi dalam Delphi 1. Buat Menu Seperti di bawah ini !!!

2. Buat Form Master 2.1 Form Data Master Barang

Properties ADOQuery1 Name : ADOQTBarang SQL : select * from Tbarang order by kodebarang

2.2 Form Data Master Diskon

Properties ADOQuery1 Name : ADOQTDiskon SQL : select * from TDiskon order by kodebarang

2.3 Form Data Master PPn

Properties ADOQuery1 Name : ADOQTPPn SQL : select * from TPPn order by kodebarang

3. Form Transaksi Barang

Properties ADOQuery1 Name : ADOQTBarang SQL : select * from Tbarang order by kodebarang Properties ADOQuery2 Name : ADOQTDiskon SQL : select * from Tdiskon,Tbarang where Tdiskon.kodebarang=Tbarang.kodebarang Properties ADOQuery3 Name : ADOQTDiskon SQL : select * from TPPn,Tbarang where TPPn.kodebarang=Tbarang.kodebarang Properties ADOQuery4 Name : ADOQTTransaksi SQL : select * from Ttransaksi order by kodebarang 4. Code Program 4.1 Events Form Create procedure TFormTransaksi.FormCreate(Sender: TObject); begin DBLookupkdbarang.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 Click procedure TFormTransaksi.DBLookupkdbarangClick(Sender: TObject);

begin ADOQTDiskon.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 Change procedure TFormTransaksi.EdJumlahChange(Sender: TObject); begin EdTotalBayar.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 Tambah procedure TFormTransaksi.TambahClick(Sender: TObject); begin DBLookupkdbarang.Enabled:=true; EdJumlah.Enabled:=true; end;

4.5 Events Tombol Batal procedure TFormTransaksi.BatalClick(Sender: TObject); begin DBLookupkdbarang.Enabled:=false; EdJumlah.Enabled:=false; end; 4.6 Events Tombol Simpan procedure 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