0% menganggap dokumen ini bermanfaat (0 suara)
229 tayangan7 halaman

Final - Tugas Basis Data

Tugas mata kuliah Basis Data membahas tentang trigger dan enkripsi. Trigger merupakan kode prosedural yang dieksekusi secara otomatis ketika terjadi perubahan data pada tabel tertentu. Enkripsi digunakan untuk mengamankan data dengan mengubahnya menjadi bentuk yang tidak dapat dibaca.

Diunggah oleh

Fatima Azzahro
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
229 tayangan7 halaman

Final - Tugas Basis Data

Tugas mata kuliah Basis Data membahas tentang trigger dan enkripsi. Trigger merupakan kode prosedural yang dieksekusi secara otomatis ketika terjadi perubahan data pada tabel tertentu. Enkripsi digunakan untuk mengamankan data dengan mengubahnya menjadi bentuk yang tidak dapat dibaca.

Diunggah oleh

Fatima Azzahro
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Tugas Mata Kuliah Basis Data

TRIGGER dan ENCRYPTION


Disusun untuk memenuhi tugas mata kuliah Basis Data Dosen Pembimbing Bpk Adi Dewanto, M.T. Oleh : 1. 2. 3. 4. 5. 6. Tri Lestari Fera Zulkarnain Fatimah Azzahro Yuni Kurniasih Hanafi Nur Hidayat Nirma Arumpaka 10520241003 10520241004 10520241013 10520241021 10520241024 10520241029

TRIGGER A. Pengertian Menurut Wikipedia, trigger dalam database diartikan sebagai procedural code that is automatically executed in response to certain events on a particular table or view in a database. Singkatnya,trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view. Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. Sebagai contoh misalnya kita ingin menyimpan id pelanggan secara otomatis ke tabel log sebelum menghapus data di tabel pelanggan. Di MySQL, Triggers mulai dikenal di versi MySQL 5.0, dan di versi saat ini (5.1.4) fungsionalitasnya sudah bertambah. Pada versi selanjutnya pihak pengembang MySQL berjanji akan lebih menguatkan (menambah) fitur trigger ini. Trigger sering digunakan, antara lain untuk:
y

Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam sistem penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.

Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.

Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.

B. Cara Membuat Berikut ini bentuk umum perintah untuk membuat triggers: CREATE TRIGGER name [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON tablename FOR EACH ROW statement Keterangan dari bentuk umum perintah membuat trigger: name, Nama trigger mengikuti peraturan penamaan variabel / identifier dalam MySQL
y

[BEFORE | AFTER] digunakan untuk menentukan kapan proses secara otomatis akan dieksekusi, sebelum atau sesudah proses.

[INSERT | UPDATE | DELETE] digunakan untuk menentukan event (proses) yang dijadikan trigger (pemicu) untuk menjalankan perintah-perintah di dalam triggers.

y y

tablename, merupakan nama tabel dimana trigger berada. statement, merupakan sekumpulan perintah atau query yang akan secara otomatis dijalankan jika event / proses yang didefinisikan sebelumnya aktif.

Statement atau perintah dalam trigger dapat berupa satu perintah saja, dan dapat juga beberapa perintah sekaligus. Jika terdapat beberapa perintah dalam trigger, maka gunakan perintah BEGIN dan END untuk mengawali dan mengakhiri perintah. Di dalam statement trigger, kita dapat mengakses record tabel sebelum atau sesudah proses dengan menggunakan NEW dan OLD. NEW digunakan untuk mengambil record yang

akan diproses (insert atau update), sedangkan OLD digunakan untuk mengakses record yang sudah diproses (update atau delete).

C. Contoh Trigger: Database Stock dengan Trigger Dalam Database Stock dengan Trigger, Privilege yang dibutuhkan adalah CREATE TRIGGER. Ada lima tabel yang digunakan yaitu tabel BELI, JUAL, dan STOK. Sedangkan ketentuan pada database ini,yaitu: y Jika ada pembelian (insert pada tabel Beli) maka secara otomatis akan menambah persediaan barang pada tabel Stok. y Jika ada penjualan (insert pada tabel Jual) secara otomatis akan mengurangi persediaan barang pada tabel Stok. Langkah-langkah: a) Membuat database baru, yaitu database Stock. b) Membuat tabel Beli. CREATE TABLE Beli (id_beli varchar(4) NOT NULL , kd_barang varchar(4) NOT NULL , satuan int(5) NOT NULL , jumlah int(6) default 1 , PRIMARY KEY (id_beli)); c) Membuat tabel Jual CREATE TABLE Jual (id_jual varchar(4) NOT NULL , kd_client varchar(4) NOT NULL , kd_barang varchar(4) NOT NULL , satuan int(5) NOT NULL , jumlah int(6) default 1 , PRIMARY KEY (id_jual));

d) Membuat tabel Stok CREATE TABLE Stok (kd_barang varchar(5) NOT NULL , jumlah int(11) NOT NULL , PRIMARY KEY (kd_barang)); e) Membuat Trigger Beli_barang CREATE TRIGGER Beli_Barang after INSERT ON Beli FOR EACH ROW BEGIN INSERT INTO stok SET kd_barang = NEW.kd_barang, jumlah=New.jumlah ON DUPLICATE KEY UPDATE jumlah=jumlah+New.jumlah; END; Keterangan: Trigger Beli_barang bekerja setelah insert data pada tabel Beli dengan melakukan insert data yang sama di tabel Stok yaitu mengisi field kd_barang dan jumlah. Metode update-nya adalah jumlah yang ada ditambah dengan jumlah baru sesuai data yang diinsert pada tabel Beli. On Duplicate Key Update artinya jika ada insert data di tabel Beli dengan kode barang (kd_barang) yang sama, maka akan otomatis menambah jumlahnya di tabel Stok sesuai dengan kd_barang yang dimaksud. f) Membuat Trigger Jual_barang CREATE TRIGGER Jual_barang after INSERT ON Jual FOR EACH ROW BEGIN UPDATE stok SET jumlah = jumlah - NEW.jumlah WHERE kd_barang = NEW.kd_barang; END; Keterangan: Trigger Jual_barang bekerja setelah insert data pada tabel Jual dengan melakukan update berupa pengurangan jumlah barang pada kode barang (kd_barang) di tabel Stok sesuai data yang di-insert pada tabel Jual.

g) Mengetahui cara kerja Trigger

 Melakukan insert pada tabel Beli. insert into beli values ("B100", "BR01", 2000, 5); select * from beli;

 Melihat isi tabel Stok select * from stok;

 Melakukan insert pada tabel Beli dengan kd_barang yang sama. insert into beli values ("B200", "BR01", 2000, 3); select * from beli;

 Melihat isi tabel Stok select * from stok;

Jumlah barang bertambah sesuai dengan jumlah yang di-insert-kan pada tabel beli.  Melakukan insert pada tabel Jual dengan kd_barang yang telah ada. insert into jual values("J100", "K123", "BR01", 2000, 2); select * from jual;

 Melihat isi tabel Stok select * from stok;

Jumlah barang berkurang sesuai dengan jumlah yang di-insert-kan pada tabel jual.

ENCRYPTION A. Pengertian B. Contoh encryption 2 way


y

Encrypt
create Function [dbo].[encrypt] (@Password varchar(100) ,@Key varchar(100)) RETURNS varbinary(max)WITH EXECUTE AS CALLER BEGIN return EncryptByPassPhrase(@key, convert(varchar(100),@password)) END

Function [dbo].[encrypt] ini membutuhkan 2 argumen yaitu password yang akan dienkripsi dan key. Pertama-tama password di convert dengan tipe varchar, kemudian di encrypt bersama dengan key nya.
y

Decrypt
Create Function [dbo].[decrypt] (@Key varchar(100),@EncryptPwd varbinary(max)) RETURNS varchar(100)WITH EXECUTE AS CALLER BEGIN return convert(varchar(100), convert(varchar(100), decryptbypassphrase(@Key,@encryptPwd))) END

Function [dbo].[decrypt] ini membutuhkan 2 argumen yaitu Key dan password yang telah dienkripsi. Pertama-tama password terenkripsi di dekripsi bersama dengan Key nya, kemudian di convert menjadi varchar sebanyak 2 kali.

Cara menggunakan function tersebut seperti berikut


declare @password as varchar(100) declare @key as varchar(100) set @password='Passw0rd' set @key='Joko' declare @hsl1 as varbinary(max) declare @hsl2 as varbinary(max) declare @decr as varchar(100) declare @decr1 as varchar(100) print 'Eksekusi pertama ' SELECT @hsl1= [dbo].[encrypt] (@password,@Key) print @hsl1 select @decr=dbo.decrypt(@key,@hsl1) print @decr print '' print 'eksekusi kedua' SELECT @hsl2= [dbo].[encrypt] (@password,@Key)

print @hsl2 select @decr1=dbo.decrypt(@key,@hsl2) print @decr1

Hasil enkripsi pada eksekusi pertama dan kedua berbeda, namun setelah didekripsi dengan key yang sama, hasilnya akan tetap sama. C. Contoh Encryption 1 way

Anda mungkin juga menyukai