laprak sbd

Download Laprak sbd

Post on 12-Apr-2017

40 views

Category:

Education

2 download

Embed Size (px)

TRANSCRIPT

BAB IPendahuluan1.1 Dasar TeoriA. Stored Procedure dan TriggerUntuk 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 ProcedureStored 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.TriggerTrigger 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.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 tablenameFOR EACH ROW statementKeterangan dari bentuk umum perintah membuat trigger: name, nama trigger mengikuti peraturan penamaan variabel / identifier dalam MySQL [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. 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). 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;

DelimeterDelimiter 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 ;.B. Penggunaan Stored Procedure dan Trigger1. PersiapanSebagai persiapan perlu dilakukan pengecekan versi dari MySQL yang digunakan, dengan cara sebagai berikut:SHOW VARIABLES LIKE 'version'; atauSELECT VERSION();

Dari tampilan di atas terlihat versi MySQL yang digunakan adalah 5.5.28, berarti strored procedure akan dapat bekerja.Untuk latihan pembuatan stored procedure dan trigger akan disiapkan empat table, yaitu: test1, test2, test3, dan test4. Adapun field dari masing-masing tabel dapat dilihat dilihat dari perintah create sebagai berikut:

Untuk keperluan latihan pembuatan trigger, pada posisi awal tabel yang akan diisi ialah test3 dan test4.

Dari mana a4 terisi? Untuk test1 dan test2 sementara masih belum diisi data.

2. Stored ProcedureBerikut akan diberikan contoh pembuatan stored prosedur yang eksekusinya akan terjadi apabila stored prosedur tersebut dipanggil dengan menggunakan CALL. Prosedur dengan nama tampiltest4 berikut hanya berisi perintah untuk menampilkan isi tabel test4 (di tulis diantara BEGIN END).Tahapan perintah untuk pembuatan prosedur tersebut adalah sebagai berikut:

Perhatikan perintah-perintah tersebut di atas diawali dengan pemberian delimeter berupa tanda //, dan diakhiri dengan pengembalian delimeter ke tanda ;. Berikut adalah perintah untuk memanggil prosedur tampiltest4 agar dilaksanakan eksekusi, dan hasilnya diberikan pada tampilan pada baris-baris berikutnya.

3. TriggerSebelum dilakukan pembuatan trigger perlu disusun skenario apa yang dirancang akan dilaksanakan secara otomatis apabila trigger tersebut dieksekusi.Misal dari keempat tabel yang sudah diberikan sebelumnya, yaitu: tets1, test2, tetst3, dan test4 dirancang suatu respon sebagai berikut:Jika terjadi INSERT terhadap tabel test1, maka sebelumnya akan dilaksanakan sebagai berikut: Semua data yang diisikan ke dalam tabel test1 juga disisipkan ke dalam tabel test2. Hapus record di test3 jika isi a3 = a1 (yang dimaksud adalah a1 yang baru). Update nilai dari b4 di dalam test4 dengan rumus b4 = b4 + 3 jika nilai b4 = a1 (yang dimaksud adalah a1 yang baru).Pertama di-create dulu trigger dengan nama isitabel yang disesuaikan dengan ketentuan di atas.

Di dalam penulisan di atas untuk delimeter digunakan tanda |. Untuk melihat efek yang dihasilkan dari trigger di atas, sebelumnya dilakukan insert data ke dalam tabel test1. Hasil insert data kemudian ditampilkan untuk dicek.

Efek yang ditimbulkan dengan adanya insert di atas, yang dilaksanakan oleh trigger ialah berubahnya isi tabel test3 dan isi tabel test4 sesuai dengan ketentuan yang diberikan sebelumnya.

Periksa tampilan data tersebut, dan cek hasilnya.

1.2 PermasalahanSuatu 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.

BAB IIPembahasan2.1 Soal Rencana pemanfaatan stored procedure dan atau trigger untuk pengelolahan data persediaan di gudang suatu perusahaan dapat dilakukan dengan langkah-langkah berikut:1. Pembuatan databaseDalam laporan ini dibuat suatu database dari toko kelontong. Database ini berguna bagi pemilik dalam memantau ketersediaan barang di tokonya. Dengan terpantaunya ketersediaan barang di suatu toko maka toko tersebut dapat menghindari kehabisan stok maupun terjadinya over stocking. Database toko ini dibuat dengan menggunakan perintah create database sebagai berikut:

24010314120059>create database tokokelontong;Query OK, 1 row affected (0.16 sec)

2. Pembuatan tabel-tabelSetelah database terbentuk, selanjutnya dibuat tabel-tabel yang dibutuhkan dalam database tersebut. Dalam database ini akan terdapat 3 buah tabe yaitu tabel persediaan, tabel barang_masuk dan tabel barang_keluar. Ketiga tabel ini memilki atribut yang sama yaitu Id_barang, nama barang, harga dan jumlah. Id_barang digunakan sebagai primary key sehingga tidak aka nada barang yang memiliki ID yang sama. Id_barang terdiri dari 5 buah karakter. Atribut nama barang menggunakan type varchar karena kemungkinan panjang setiap nama barang yang variatif. Sedangkan atribut jumlah dan harga diberikan type integer unsigned karena menyatakan jumlah dan harga yang tidak mungkin bernilai negative. Semua atribut ini tidak boleh kosong (NOT NULL).

Sebelum membuat tabel maka harus dipilih database yang akan digunakan, yaitu database tokokelontong

24010314120059>use tokokelontong;Database changed

a. Pembuatan tabel persediaanTabel persediaan ini akan berisi data-data barang yang tersedia dalam toko tersebut. Isi tabel ini akan berubah sesuai dengan per