Praktikum 05 Sistem Basis Data

9
BAB I PERMASALAHAN Suatu gudang perusahaan menyimpan barang persediaan untuk dijual kepada umum. Barang-barang yang disimpan di gudang diperoleh dari pengiriman oleh distributor. Jika barang kiriman datang, otomatis stock akan bertambah, demikian juga apabila ada barang yang keluar dari gudang karena terjual, maka otomatis stock akan berkurang. Rancang pemanfaatan stored procedur dan atau trigger untuk pengolahan data persediaan di gudang suatu perusahaan.

Transcript of Praktikum 05 Sistem Basis Data

Page 1: Praktikum 05 Sistem Basis Data

BAB I

PERMASALAHAN

Suatu gudang perusahaan menyimpan barang persediaan untuk dijual kepada umum.

Barang-barang yang disimpan di gudang diperoleh dari pengiriman oleh distributor. Jika

barang kiriman datang, otomatis stock akan bertambah, demikian juga apabila ada barang

yang keluar dari gudang karena terjual, maka otomatis stock akan berkurang. Rancang

pemanfaatan stored procedur dan atau trigger untuk pengolahan data persediaan di gudang

suatu perusahaan.

Page 2: Praktikum 05 Sistem Basis Data

BAB II

DASAR TEORI

A. Stored Procedure dan Trigger

Untuk efisiensi penulisan program dan meningkatkan keandalan hasil proses, MySQL

menyediakan fasilitas stored procedure dan trigger yang dapat dimanfaatkan dengan

mudah. Berikut akan diberikan penjelasan tentang kedua fasilitas tersebut.

Stored Procedure

Stored procedure adalah prosedur (seperti subprogram dalam bahasa pemrograman) yang

disimpan di dalam database.

MySQL mendukung dua jenis subprogram, yaitu:

stored procedure yang dapat dipanggil untuk dieksekusi,

fungsi yang menghasilkan nilai yang dapat dipakai dalam statemen SQL lain.

Dengan stored procedure eksekusi menjadi cepat, dan tidak ada kompilasi. Peningkatan

kecepatan datang dari reduksi lalu-lintas jaringan. Jika ada pekerjaan pengecekan

berulang, looping, multiple statement, dikerjakan dengan pemanggilan tunggal ke

prosedur yang telah disimpan ke server.

Stored procedure adalah komponen. Andaikan aplikasi kemudian ditulis dalam bahasa

berbeda, tidak ada masalah, karena logika berada didalam database bukan dalam aplikasi.

Stored procedure ditulis dalam SQL, bersifat portable dan dapat dijalankan pada setiap

platform dimana MySQL dapat dijalankan.

Trigger

Trigger adalah sebuah Script MySQL Command yang memicu suatu kejadian dalam

database MySQL berupa aksi manipulasi database secara otomatis setelah syarat tertentu.

Lokasi penulisan Trigger adalah di dalam database yang bersangkutan.

The trigger_event dapat berupa salah satu dari tiga kejadian berikut:

1. INSERT : trigger akan diaktifkan jika suatu baris baru disisipkan ke dalam tabel;

sebagai contoh, melalui pernyataan INSERT, LOAD DATA, dan REPLACE.

2. UPDATE : trigger diaktifkan jika suatu baris dimodifikasi; sebagai contoh, melalui

pernyataan UPDATE.

3. DELETE : trigger diaktifkan jika suatu baris dihapus dari tabel; sebagai contoh,

melalui pernyataan DELETE dan REPLACE. Pernyataan DROP TABLE dan

TRUNCATE TABLE pada tabel tidak mengaktifkan trigger ini, karena keduanya

tidak menggunakan DELETE.

Page 3: Praktikum 05 Sistem Basis Data

Sebagai contoh setelah insert pada tabel_a dan kolom a1 maka akan otomatis insert pada

tabel_b pada kolom b1. Begitu pula untuk aksi update dan delete.

Contoh pemakaian trigger adalah sebagai berikut:

1. Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam

sistem penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.

2. Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi

perubahan, secara otomatis akan menyimpan ke tabel log.

3. Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data

tersebut disimpan.

Berikut ini bentuk umum perintah untuk membuat triggers:

CREATE TRIGGER name

[BEFORE|AFTER][INSERT|UPDATE|DELETE]

ON tablename

FOR EACH ROW statement

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

Suatu trigger adalah jenis stored procedure special. Dikatakan special karena ia tidak

dipanggil langsung sebagaimana suatu stored prosedur. Perbedaan utama diantara trigger

dan stored procedur ialah bahwa trigger dipanggil secara otomatis jika suatu modifikasi

data terjadi pada suatu tabel, sementara untuk stored procedure harus dipanggil secara

eksplisit.

Untuk menghapus trigger, dapat menggunakan perintah DROP TRIGGER dengan

diikuti dengan nama tabel dan nama triggernya. Berikut ini bentuk umum dan contoh

perintah untuk menghapus trigger.

Bentuk umum dan contoh menghapus trigger:

DROP TRIGGER tablename.triggername;

B. Delimeter

Page 4: Praktikum 05 Sistem Basis Data

Delimiter adalah karakter atau string yang memberi tahu MySQL bahwa kita telah selesai

menulis statemen SQL. Sebelumnya, delimiter selalu semicolon (tanda ;). Hal ini

diperlukan karena stored procedure terdiri atas sejumlah statemen, dan setiap pernyataan

harus diakhiri dengan semicolon.

Delimeter dapat diubah misalnya dengan karakter | atau dengan karakter //. Yang perlu

diperhatikan ialah bahwa setelah penggantin tersebut, lakukan pengubahan kembali

delimeter ke karakter yang sebelumnya, yaitu berupa karakter ;.

BAB III

PEMBAHASAN

Page 5: Praktikum 05 Sistem Basis Data

Diasumsikan sebuah gudang perusahaan property menyimpan beberapa persediaan barang

untuk dijual kepada umum. Barang-barang yang disimpan di gudang diperoleh dari

pengiriman oleh distributor. Jika barang kiriman datang, otomatis stock akan bertambah,

demikian juga apabila ada barang yang keluar dari gudang karena terjual, maka otomatis

stock akan berkurang.

1. Langkah pertama, yaitu membuat database baru:

2. Langkah kedua adalah membuat tabel barang.

3. Mengisi data pada tabel barang.

4. Membuat procedure showbarang() untuk menampilkan isi tabel barang.

\d // digunakan untuk mengubah delimiter ; menjadi //.

\d ; digunakan untuk mengembalikan delimiter ke ;. Untuk pemanggilannya, kita tidak perlu

panjang-panjang mengetikan select * from barang. Kita hanya perlu mengetikan call

showbarang.

Page 6: Praktikum 05 Sistem Basis Data

5. Membuat tabel persediaan

6. Membuat trigger t1 agar jumlah barang setelah proses pengiriman barang dari

distributor dan penjualan barang selalu up to date.

7. Pengisian tabel persediaan

8. Selanjutnya kita dapat melakukan pengecekan kembali terhadap tabel barang yang

telah kita buat sebelumnya denga perintah call showbarang();

Page 7: Praktikum 05 Sistem Basis Data

BAB IV

KESIMPULAN

1. Sebelum membuat trigger ataupun store procedure, kita harus melakukan pengaturan

terhadap delimeter.

2. Stored procedure adalah prosedur (seperti subprogram dalam bahasa pemrograman C,

pascal dll.) yang disimpan di dalam database.

3. Trigger adalah sebuah objek database yang diasosiasikan dengan sebuah tabel dan

aktif ketika sebuah event terjadi pada tabel tersebut.

4. Trigger hanya terjadi ketika ada eksekusi INSERT, DELETE, dan UPDATE pada

tabel yang bersangkutan.

5. Waktu eksekusi trigger yang mungkin terjadi yaitu BEFORE dan AFTER dari

statement SQL-nya.