SlideShare ist ein Scribd-Unternehmen logo
1 von 16
1
BAB I
Pendahuluan
1.1 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.
2
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 tablename
FOR EACH ROW statement
Keterangan 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.
3
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;
Delimeter
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 ;.
B. Penggunaan Stored Procedure dan Trigger
1. Persiapan
Sebagai persiapan perlu dilakukan pengecekan versi dari MySQL yang digunakan,
dengan cara sebagai berikut:
SHOW VARIABLES LIKE 'version';
atau
4
SELECT 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.
5
Dari mana a4 terisi? Untuk test1 dan test2 sementara masih belum diisi data.
2. Stored Procedure
Berikut 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.
6
3. Trigger
Sebelum 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.
7
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.
8
1.2 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.
9
BAB II
Pembahasan
2.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 database
Dalam 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-tabel
Setelah 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 persediaan
10
Tabel persediaan ini akan berisi data-data barang yang tersedia dalam toko tersebut. Isi
tabel ini akan berubah sesuai dengan perubahan yang terjadi dalam tabel barang_masuk
dan tabel barang_keluar. Jadi jika jumlah barang tertentu bertambah pada tabel masuk
dan berkurang pada tabel keluar, maka akan terjadi perubahan pula dalam tabel
persediaan. Untuk membuat tabel persediaan dapat dilakukan dengan pernitah sebagai
berikut:
24010314120059>create table persediaan
-> (id_barang CHAR(5) PRIMARY KEY,
-> namabarang VARCHAR(25) NOT NULL,
-> harga INT UNSIGNED NOT NULL,
-> jumlah INT UNSIGNED NOT NULL)
-> ;
Query OK, 0 rows affected (0.26 sec)
b. Pembuatan tabel barang_masuk
Tabel ini akan berisi data-data jumlah barang yang dari distributor yang baru saja
dipasok. Dengan adanya perubahan data pada tabel ini maka data pada tabel persediaan
pun akan ikut berubah (bertambah). Untuk membentuk tabel ini dapat dilakukan dengan
perintah sebagai berikut:
24010314120059>CREATE TABLE barang_masuk
-> (id_barang CHAR(5) PRIMARY KEY,
-> namabarang VARCHAR(25) NOT NULL,
-> harga INT UNSIGNED NOT NULL,
-> jumlah INT UNSIGNED NOT NULL)
-> ;
Query OK, 0 rows affected (0.19 sec)
c. Pembuatan tabel barang_keluar
Tabel ini akan berisi data-data jumlah barang yang telah dibeli oleh pelanggan. Karena
dilakukan pembelian maka jumlah barang persediaan pun akan ikut berkurang. Jadi jika
terjadi perubahan data pada tabel barang keluar ini maka akan terjadi perubahan pula
pada tabel persediaan. Untuk membentuk tabel ini dapat dilakukan dengan perintah
sebagai berikut:
24010314120059>CREATE TABLE barang_keluar
-> (id_barang CHAR(5) PRIMARY KEY,
-> namabarang VARCHAR(25) NOT NULL,
-> harga INT UNSIGNED NOT NULL,
-> jumlah INT UNSIGNED NOT NULL)
-> ;
Query OK, 0 rows affected (0.20 sec)
3. Pengisian tabel
11
Pertama kita isi di notepad dengan data barang:
"A001","DAIA 100gr", 8500, 8
"A002","RINSO 100gr", 8900, 10
"B001","PEPSODENT 160gr", 8000, 6
"B002","RITADENT 160gr", 7600, 8
"A003","CIPTADENT 160gr", 10000, 9
Kemudian kita ketik perintah dibawah ini pada MySQL:
24010314120059>LOAD DATA LOCAL INFILE 'C:datadatabarang.txt'
-> INTO TABLE persediaan
-> FIELDS TERMINATED BY ','
-> ENCLOSED BY '"'
-> LINES TERMINATED BY 'rn'
-> ;
Query OK, 2 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 3 Warnings: 0
Setelah dilakukan penginputan data pada tabel persediaan, hasilnya akan diperoleh tabel
sebagai berikut:
Diasumsikan tabel barang masuk dan tabel barang keluar belum terisi data.
4. Pembuatan stored procedure
Prosedur ini diberi nama show persediaan dimana prosedur ini berisi perintah untuk
menampilkan isi tabel persediaan yang ditulis diantara begin….end. Sebelum membuat
stored procedure harus dilakukan pengaturan delimeternya, yaitu dari yang awalnya
semicolon(;) menjadi //. Kemudian didefinisikan prosedur-prosedurnya. Setelah
pembuatan stored procedure, delimeter harus dikembalikan pada karakter semula yaitu
semicolon (;).
24010314120059>d //
24010314120059>CREATE PROCEDURE show_persediaan()
-> BEGIN
-> SELECT * FROM persediaan;
-> END
-> //
Query OK, 0 rows affected (0.61 sec)
Stored prosedur dapat diimplementasikan dengan menggunakan perintah call diikuti
dengan nama prosedurnya sebagai berikut.
12
5. Pembuatan trigger
Dalam program ini akan terdapat dua trigger untuk pengurangan dan penambahan
jumlah persediaan.
a. Trigger update_persediaan
Jika pasokan barang datang dari distributor maka data akan dimasukkan dalam tabel
barang masuk. Dengan adanya pertambahan data pada barang masuk akan
mengakibatkan perubahan (penambahan) jumlhah barang pada tabel persediaan. Trigger
ini akan melakukan penambahan jumlah persediaan barang. Untuk itu dapat dilakukan
dengan perintah berikut.
24010314120059>d|
24010314120059>CREATE TRIGGER update_persediaan AFTER INSERT ON
barang_masuk
-> FOR EACH ROW BEGIN
-> UPDATE persediaan SET jumlah=jumlah+new.jumlah WHERE
id_barang=new.id_barang;
-> END;
-> |
Query OK, 0 rows affected (0.77 sec)
Trigger ini bernama update_persediaan dan akan dilakukan setelah adanya pemasukan
pada tabel barang_masuk. Oleh sebab itu digunakan perintah AFTER. Tabel yang akan
berasosiasi dengan trigger ini adalah tabel barang_masuk. Dalam trigger ini akan
dilakukan update nilai jumlah dalam tabel persediaan dengan rumus:
Jumlah=Jumlah+new.jumlah.
Trigger ini akan diaktifkan ketika sebuah record dimodifikasi oleh karena itu
digunakan event update. Dengan syarat Id_barang yang baru sama dengan
Id_barang yang ada di tabel barang masuk.
13
Untuk melihat efek yang dihasilkan dari trigger ini, maka dilakukan insert data ke
dalam tabel barang masuk sebagai berikut.
24010314120059>d;
24010314120059>INSERT INTO barang_masuk
-> VALUES ("A001","DAIA 100gr", 8500, 9),
-> ("A003","CIPTADENT 160gr", 7600, 9)
-> ;
Query OK, 2 rows affected (0.20 sec)
Records: 2 Duplicates: 0 Warnings: 0
Hasil insert data akan ditampilkan dengan peintah sebagai berikut:
Dari tabel diatas terlihat adanya perubahan jumlah barang. Pada tabel barang masuk
dimasukkan data:
Kode A001 jumlahnya 8
Kode A003 jumlahnya 9
Sehingga akan terjadi penambahan jumlah barang pula pada tabel persediaan sebagai
berikut:
Kode A001 jumlahnya 8+9 = 17
Kode A003 jumlahnya 9+9 = 18
b. Trigger kurangi_persediaan
Jika pasokan barang datang dari distributor maka data akan dimasukkan dalam tabel
barang masuk. Dengan adanya pertambahan data pada barang masuk akan
mengakibatkan perubahan (pengurangan) jumlah barang pada tabel persediaan. Trigger
ini akan melakukan pengurangan jumlah persediaan barang. Untuk itu dapat dilakukan
dengan perintah berikut.
24010314120059>CREATE TRIGGER delete_persediaan AFTER INSERT ON
barang_keluar
-> FOR EACH ROW BEGIN
-> UPDATE persediaan SET jumlah=jumlah-new.jumlah WHERE
id_barang=new.id_barang;
-> END;
-> |
Query OK, 0 rows affected (0.25 sec)
14
Trigger ini bernama kurangi_persediaan dan akan dilakukan setelah adanya pemasukan
data pada tabel barang_keluar. Oleh sebab itu digunakan perintah AFTER. Tabel yang
akan berasosiasi dengan trigger ini adalah tabel barang_keluar. Dalam trigger ini akan
dilakukan update nilai jumlah dalam tabel persediaan dengan rumus:
Jumlah=Jumlah – new.jumlah
Trigger ini akan diaktifkan ketika sebuah record dimodifikasi oleh karena itu
digunakan event update. Dengan syarat Id_barang yang baru sama dengan
Id_barang yang ada di tabel barang keluar.
Untuk melihat efek yang dihasilkan dari trigger ini, maka dilakukan insert data ke
dalam tabel barang masuk sebagai berikut.
24010314120059>d;
24010314120059>INSERT INTO barang_keluar
-> VALUES ("A002","RINSO 100gr", 8900, 3),
-> ("A003","CIPTADENT 160gr", 7600, 4)
-> ;
Query OK, 2 rows affected (0.13 sec)
Records: 2 Duplicates: 0 Warnings: 0
Hasil insert data akan ditampilkan dengan peintah sebagai berikut:
Dari tabel diatas terlihat adanya perubahan jumlah barang. Pada tabel barang masuk
dimasukkan data:
Kode A002 jumlahnya 10
Kode A003 jumlahnya 18
Sehingga akan terjadi penambahan jumlah barang pula pada tabel persediaan sebagai
berikut:
Kode A002 jumlahnya 10 – 3 = 7
Kode A003 jumlahnya 18 – 4 = 14
15
BAB III
Penutup
3.1 Kesimpulan
Berdasarkan praktium yang telah dilaksanakan maka dapat diambil beberapa
kesimpulan sebagai berikut:
1. Stored procedure adalah prosedur (seperti subprogram dalam bahasa pemrograman)
yang disimpan di dalam database yang memudahkan pengguna dalam memanggil
sebuah perintah dengan query yang lebih sederhana dan mudah diingat karena
pengguna membuat sendiri.
2. Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis
dijalankan jika terjadi operasi tertentu dalam tabel. Trigger digunakan untuk memanggil
satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses
INSERT, UPDATE atau DELETE dari suatu tabel.
3. Trigger memudahkan pengguna database untuk mengupdate tabel-tabel yang saling
berpengaruh sehingga menyingkat waktu kerja dan hasilnya pun bisa lebih valid karena
tabel yang telah terintegrasi.
16
DAFTAR PUSTAKA
Modul Praktikum SBD ke-5. Stored Procedure dan Trigger.

Weitere ähnliche Inhalte

Was ist angesagt?

4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis
galaksiumat
 
Resume praktikum
Resume praktikumResume praktikum
Resume praktikum
NuRul Emi
 
Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"
Opik Oenk
 
Tipe analisis program
Tipe analisis programTipe analisis program
Tipe analisis program
arumm24
 

Was ist angesagt? (19)

Tipe dan format instruksi 1
Tipe dan format instruksi 1Tipe dan format instruksi 1
Tipe dan format instruksi 1
 
Dasar sistem kontrol
Dasar sistem kontrolDasar sistem kontrol
Dasar sistem kontrol
 
Sinkronisasi
SinkronisasiSinkronisasi
Sinkronisasi
 
Trigger Database
Trigger DatabaseTrigger Database
Trigger Database
 
4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis
 
PowerPoint - Set Instruksi dan Teknik Pengalamatan
PowerPoint - Set Instruksi dan Teknik PengalamatanPowerPoint - Set Instruksi dan Teknik Pengalamatan
PowerPoint - Set Instruksi dan Teknik Pengalamatan
 
SISTEM KONTROL
SISTEM KONTROLSISTEM KONTROL
SISTEM KONTROL
 
Stored Procedure
Stored ProcedureStored Procedure
Stored Procedure
 
Resume praktikum
Resume praktikumResume praktikum
Resume praktikum
 
SET INSTRUKSI
SET INSTRUKSISET INSTRUKSI
SET INSTRUKSI
 
Laporan 5
Laporan 5Laporan 5
Laporan 5
 
Ppt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem OperasiPpt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem Operasi
 
Tipe dan format instruksi 2
Tipe dan format instruksi 2Tipe dan format instruksi 2
Tipe dan format instruksi 2
 
Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"Pemrograman Basis Data "Trigger"
Pemrograman Basis Data "Trigger"
 
Praktikum 4A
Praktikum 4APraktikum 4A
Praktikum 4A
 
Set instruksi
Set instruksiSet instruksi
Set instruksi
 
Tipe analisis program
Tipe analisis programTipe analisis program
Tipe analisis program
 
Set instruksi
Set instruksiSet instruksi
Set instruksi
 
Cara membuat Trigger
Cara membuat TriggerCara membuat Trigger
Cara membuat Trigger
 

Andere mochten auch

Электрочайник с термодатчиком на эффекте памяти формы.
Электрочайник с термодатчиком на эффекте памяти формы.Электрочайник с термодатчиком на эффекте памяти формы.
Электрочайник с термодатчиком на эффекте памяти формы.
kulibin
 
Hunt The Right Product For Your Project
Hunt The Right Product For Your ProjectHunt The Right Product For Your Project
Hunt The Right Product For Your Project
leeannhunt
 
Vosotros sois la vida.
Vosotros sois la vida.Vosotros sois la vida.
Vosotros sois la vida.
José María
 
Практика банковской лидогенерации
Практика банковской лидогенерацииПрактика банковской лидогенерации
Практика банковской лидогенерации
Alexander Gerashchenko
 
Torben Budde CV 201502 (English)
Torben Budde CV 201502 (English)Torben Budde CV 201502 (English)
Torben Budde CV 201502 (English)
Torben Budde
 

Andere mochten auch (19)

Break the rules - The FOG
Break the rules - The FOGBreak the rules - The FOG
Break the rules - The FOG
 
test
testtest
test
 
Our English Classes
Our English ClassesOur English Classes
Our English Classes
 
Success portfolio
Success portfolioSuccess portfolio
Success portfolio
 
PRywatki na Wykładzinie - Briefly
PRywatki na Wykładzinie - BrieflyPRywatki na Wykładzinie - Briefly
PRywatki na Wykładzinie - Briefly
 
Io t asia summit 2015
Io t asia summit 2015Io t asia summit 2015
Io t asia summit 2015
 
Steve jobs
Steve jobsSteve jobs
Steve jobs
 
Wykładzina vol. 15 ClickMeeting - make your Webinar click!
Wykładzina vol. 15 ClickMeeting - make your Webinar click!Wykładzina vol. 15 ClickMeeting - make your Webinar click!
Wykładzina vol. 15 ClickMeeting - make your Webinar click!
 
Электрочайник с термодатчиком на эффекте памяти формы.
Электрочайник с термодатчиком на эффекте памяти формы.Электрочайник с термодатчиком на эффекте памяти формы.
Электрочайник с термодатчиком на эффекте памяти формы.
 
Hunt The Right Product For Your Project
Hunt The Right Product For Your ProjectHunt The Right Product For Your Project
Hunt The Right Product For Your Project
 
Alfresco the clojure way -- Slides from the Alfresco DevCon2011
Alfresco the clojure way -- Slides from the Alfresco DevCon2011Alfresco the clojure way -- Slides from the Alfresco DevCon2011
Alfresco the clojure way -- Slides from the Alfresco DevCon2011
 
QoS marking on cisco IOS Router
QoS marking on cisco IOS RouterQoS marking on cisco IOS Router
QoS marking on cisco IOS Router
 
GMO'less Software Development Practices
GMO'less Software Development PracticesGMO'less Software Development Practices
GMO'less Software Development Practices
 
Building Social Networks in the University -- Ignite Salt Lake 2
Building Social Networks in the University -- Ignite Salt Lake 2Building Social Networks in the University -- Ignite Salt Lake 2
Building Social Networks in the University -- Ignite Salt Lake 2
 
Vosotros sois la vida.
Vosotros sois la vida.Vosotros sois la vida.
Vosotros sois la vida.
 
Практика банковской лидогенерации
Практика банковской лидогенерацииПрактика банковской лидогенерации
Практика банковской лидогенерации
 
2nd Annual Mobile Apps 2013
2nd   Annual Mobile Apps 20132nd   Annual Mobile Apps 2013
2nd Annual Mobile Apps 2013
 
Torben Budde CV 201502 (English)
Torben Budde CV 201502 (English)Torben Budde CV 201502 (English)
Torben Budde CV 201502 (English)
 
Which Superhero Flies Highest on Social Media?
Which Superhero Flies Highest on Social Media?Which Superhero Flies Highest on Social Media?
Which Superhero Flies Highest on Social Media?
 

Ähnlich wie Laprak sbd

160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses
Dicky Syahputra
 
3. variabel-tipe-data-dan-operator-pada-vb.net
3. variabel-tipe-data-dan-operator-pada-vb.net 3. variabel-tipe-data-dan-operator-pada-vb.net
3. variabel-tipe-data-dan-operator-pada-vb.net
Aris Saputro
 
MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdf
MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdfMODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdf
MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdf
Lalu Delsi Samsumar
 
7. Sistem Pengolahan Data.pptx
7. Sistem Pengolahan Data.pptx7. Sistem Pengolahan Data.pptx
7. Sistem Pengolahan Data.pptx
RenaHidayatus1
 
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
nada_salwa
 

Ähnlich wie Laprak sbd (20)

Part 15 triggerr
Part 15  triggerrPart 15  triggerr
Part 15 triggerr
 
Trigger
TriggerTrigger
Trigger
 
Materi my sql part 5
Materi my sql part 5Materi my sql part 5
Materi my sql part 5
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritma
 
Bernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesBernis Sagita - Manajemen proses
Bernis Sagita - Manajemen proses
 
Tutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeansTutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeans
 
Di2k sq lite-command-line
Di2k sq lite-command-lineDi2k sq lite-command-line
Di2k sq lite-command-line
 
160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses
 
3. variabel-tipe-data-dan-operator-pada-vb.net
3. variabel-tipe-data-dan-operator-pada-vb.net 3. variabel-tipe-data-dan-operator-pada-vb.net
3. variabel-tipe-data-dan-operator-pada-vb.net
 
Praktikum Stata dalam kelas Ekonomietrika
Praktikum Stata dalam kelas EkonomietrikaPraktikum Stata dalam kelas Ekonomietrika
Praktikum Stata dalam kelas Ekonomietrika
 
Pemograman mikrokontroler
Pemograman mikrokontrolerPemograman mikrokontroler
Pemograman mikrokontroler
 
MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdf
MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdfMODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdf
MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1.pdf
 
Proses-spec.pdf
Proses-spec.pdfProses-spec.pdf
Proses-spec.pdf
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Struktur data chapter_08
Struktur data chapter_08Struktur data chapter_08
Struktur data chapter_08
 
Notasi Algoritma pada bahsa pemograman .pptx
Notasi Algoritma pada bahsa pemograman .pptxNotasi Algoritma pada bahsa pemograman .pptx
Notasi Algoritma pada bahsa pemograman .pptx
 
Modul 8&9 maret 2013
Modul 8&9 maret 2013Modul 8&9 maret 2013
Modul 8&9 maret 2013
 
7. Sistem Pengolahan Data.pptx
7. Sistem Pengolahan Data.pptx7. Sistem Pengolahan Data.pptx
7. Sistem Pengolahan Data.pptx
 
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
 
27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii
 

Kürzlich hochgeladen

HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.pptHAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
nabilafarahdiba95
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
RIMA685626
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
JuliBriana2
 

Kürzlich hochgeladen (20)

Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
 
Regresi Linear Kelompok 1 XI-10 revisi (1).pptx
Regresi Linear Kelompok 1 XI-10 revisi (1).pptxRegresi Linear Kelompok 1 XI-10 revisi (1).pptx
Regresi Linear Kelompok 1 XI-10 revisi (1).pptx
 
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.pptHAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
 
Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - Perencanaan
 
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKAMODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
 
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsx
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptxTEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
 
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxBab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Memperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptxMemperkasakan Dialog Prestasi Sekolah.pptx
Memperkasakan Dialog Prestasi Sekolah.pptx
 

Laprak sbd

  • 1. 1 BAB I Pendahuluan 1.1 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.
  • 2. 2 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 tablename FOR EACH ROW statement Keterangan 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.
  • 3. 3 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; Delimeter 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 ;. B. Penggunaan Stored Procedure dan Trigger 1. Persiapan Sebagai persiapan perlu dilakukan pengecekan versi dari MySQL yang digunakan, dengan cara sebagai berikut: SHOW VARIABLES LIKE 'version'; atau
  • 4. 4 SELECT 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.
  • 5. 5 Dari mana a4 terisi? Untuk test1 dan test2 sementara masih belum diisi data. 2. Stored Procedure Berikut 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.
  • 6. 6 3. Trigger Sebelum 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.
  • 7. 7 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.
  • 8. 8 1.2 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.
  • 9. 9 BAB II Pembahasan 2.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 database Dalam 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-tabel Setelah 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 persediaan
  • 10. 10 Tabel persediaan ini akan berisi data-data barang yang tersedia dalam toko tersebut. Isi tabel ini akan berubah sesuai dengan perubahan yang terjadi dalam tabel barang_masuk dan tabel barang_keluar. Jadi jika jumlah barang tertentu bertambah pada tabel masuk dan berkurang pada tabel keluar, maka akan terjadi perubahan pula dalam tabel persediaan. Untuk membuat tabel persediaan dapat dilakukan dengan pernitah sebagai berikut: 24010314120059>create table persediaan -> (id_barang CHAR(5) PRIMARY KEY, -> namabarang VARCHAR(25) NOT NULL, -> harga INT UNSIGNED NOT NULL, -> jumlah INT UNSIGNED NOT NULL) -> ; Query OK, 0 rows affected (0.26 sec) b. Pembuatan tabel barang_masuk Tabel ini akan berisi data-data jumlah barang yang dari distributor yang baru saja dipasok. Dengan adanya perubahan data pada tabel ini maka data pada tabel persediaan pun akan ikut berubah (bertambah). Untuk membentuk tabel ini dapat dilakukan dengan perintah sebagai berikut: 24010314120059>CREATE TABLE barang_masuk -> (id_barang CHAR(5) PRIMARY KEY, -> namabarang VARCHAR(25) NOT NULL, -> harga INT UNSIGNED NOT NULL, -> jumlah INT UNSIGNED NOT NULL) -> ; Query OK, 0 rows affected (0.19 sec) c. Pembuatan tabel barang_keluar Tabel ini akan berisi data-data jumlah barang yang telah dibeli oleh pelanggan. Karena dilakukan pembelian maka jumlah barang persediaan pun akan ikut berkurang. Jadi jika terjadi perubahan data pada tabel barang keluar ini maka akan terjadi perubahan pula pada tabel persediaan. Untuk membentuk tabel ini dapat dilakukan dengan perintah sebagai berikut: 24010314120059>CREATE TABLE barang_keluar -> (id_barang CHAR(5) PRIMARY KEY, -> namabarang VARCHAR(25) NOT NULL, -> harga INT UNSIGNED NOT NULL, -> jumlah INT UNSIGNED NOT NULL) -> ; Query OK, 0 rows affected (0.20 sec) 3. Pengisian tabel
  • 11. 11 Pertama kita isi di notepad dengan data barang: "A001","DAIA 100gr", 8500, 8 "A002","RINSO 100gr", 8900, 10 "B001","PEPSODENT 160gr", 8000, 6 "B002","RITADENT 160gr", 7600, 8 "A003","CIPTADENT 160gr", 10000, 9 Kemudian kita ketik perintah dibawah ini pada MySQL: 24010314120059>LOAD DATA LOCAL INFILE 'C:datadatabarang.txt' -> INTO TABLE persediaan -> FIELDS TERMINATED BY ',' -> ENCLOSED BY '"' -> LINES TERMINATED BY 'rn' -> ; Query OK, 2 rows affected (0.02 sec) Records: 5 Deleted: 0 Skipped: 3 Warnings: 0 Setelah dilakukan penginputan data pada tabel persediaan, hasilnya akan diperoleh tabel sebagai berikut: Diasumsikan tabel barang masuk dan tabel barang keluar belum terisi data. 4. Pembuatan stored procedure Prosedur ini diberi nama show persediaan dimana prosedur ini berisi perintah untuk menampilkan isi tabel persediaan yang ditulis diantara begin….end. Sebelum membuat stored procedure harus dilakukan pengaturan delimeternya, yaitu dari yang awalnya semicolon(;) menjadi //. Kemudian didefinisikan prosedur-prosedurnya. Setelah pembuatan stored procedure, delimeter harus dikembalikan pada karakter semula yaitu semicolon (;). 24010314120059>d // 24010314120059>CREATE PROCEDURE show_persediaan() -> BEGIN -> SELECT * FROM persediaan; -> END -> // Query OK, 0 rows affected (0.61 sec) Stored prosedur dapat diimplementasikan dengan menggunakan perintah call diikuti dengan nama prosedurnya sebagai berikut.
  • 12. 12 5. Pembuatan trigger Dalam program ini akan terdapat dua trigger untuk pengurangan dan penambahan jumlah persediaan. a. Trigger update_persediaan Jika pasokan barang datang dari distributor maka data akan dimasukkan dalam tabel barang masuk. Dengan adanya pertambahan data pada barang masuk akan mengakibatkan perubahan (penambahan) jumlhah barang pada tabel persediaan. Trigger ini akan melakukan penambahan jumlah persediaan barang. Untuk itu dapat dilakukan dengan perintah berikut. 24010314120059>d| 24010314120059>CREATE TRIGGER update_persediaan AFTER INSERT ON barang_masuk -> FOR EACH ROW BEGIN -> UPDATE persediaan SET jumlah=jumlah+new.jumlah WHERE id_barang=new.id_barang; -> END; -> | Query OK, 0 rows affected (0.77 sec) Trigger ini bernama update_persediaan dan akan dilakukan setelah adanya pemasukan pada tabel barang_masuk. Oleh sebab itu digunakan perintah AFTER. Tabel yang akan berasosiasi dengan trigger ini adalah tabel barang_masuk. Dalam trigger ini akan dilakukan update nilai jumlah dalam tabel persediaan dengan rumus: Jumlah=Jumlah+new.jumlah. Trigger ini akan diaktifkan ketika sebuah record dimodifikasi oleh karena itu digunakan event update. Dengan syarat Id_barang yang baru sama dengan Id_barang yang ada di tabel barang masuk.
  • 13. 13 Untuk melihat efek yang dihasilkan dari trigger ini, maka dilakukan insert data ke dalam tabel barang masuk sebagai berikut. 24010314120059>d; 24010314120059>INSERT INTO barang_masuk -> VALUES ("A001","DAIA 100gr", 8500, 9), -> ("A003","CIPTADENT 160gr", 7600, 9) -> ; Query OK, 2 rows affected (0.20 sec) Records: 2 Duplicates: 0 Warnings: 0 Hasil insert data akan ditampilkan dengan peintah sebagai berikut: Dari tabel diatas terlihat adanya perubahan jumlah barang. Pada tabel barang masuk dimasukkan data: Kode A001 jumlahnya 8 Kode A003 jumlahnya 9 Sehingga akan terjadi penambahan jumlah barang pula pada tabel persediaan sebagai berikut: Kode A001 jumlahnya 8+9 = 17 Kode A003 jumlahnya 9+9 = 18 b. Trigger kurangi_persediaan Jika pasokan barang datang dari distributor maka data akan dimasukkan dalam tabel barang masuk. Dengan adanya pertambahan data pada barang masuk akan mengakibatkan perubahan (pengurangan) jumlah barang pada tabel persediaan. Trigger ini akan melakukan pengurangan jumlah persediaan barang. Untuk itu dapat dilakukan dengan perintah berikut. 24010314120059>CREATE TRIGGER delete_persediaan AFTER INSERT ON barang_keluar -> FOR EACH ROW BEGIN -> UPDATE persediaan SET jumlah=jumlah-new.jumlah WHERE id_barang=new.id_barang; -> END; -> | Query OK, 0 rows affected (0.25 sec)
  • 14. 14 Trigger ini bernama kurangi_persediaan dan akan dilakukan setelah adanya pemasukan data pada tabel barang_keluar. Oleh sebab itu digunakan perintah AFTER. Tabel yang akan berasosiasi dengan trigger ini adalah tabel barang_keluar. Dalam trigger ini akan dilakukan update nilai jumlah dalam tabel persediaan dengan rumus: Jumlah=Jumlah – new.jumlah Trigger ini akan diaktifkan ketika sebuah record dimodifikasi oleh karena itu digunakan event update. Dengan syarat Id_barang yang baru sama dengan Id_barang yang ada di tabel barang keluar. Untuk melihat efek yang dihasilkan dari trigger ini, maka dilakukan insert data ke dalam tabel barang masuk sebagai berikut. 24010314120059>d; 24010314120059>INSERT INTO barang_keluar -> VALUES ("A002","RINSO 100gr", 8900, 3), -> ("A003","CIPTADENT 160gr", 7600, 4) -> ; Query OK, 2 rows affected (0.13 sec) Records: 2 Duplicates: 0 Warnings: 0 Hasil insert data akan ditampilkan dengan peintah sebagai berikut: Dari tabel diatas terlihat adanya perubahan jumlah barang. Pada tabel barang masuk dimasukkan data: Kode A002 jumlahnya 10 Kode A003 jumlahnya 18 Sehingga akan terjadi penambahan jumlah barang pula pada tabel persediaan sebagai berikut: Kode A002 jumlahnya 10 – 3 = 7 Kode A003 jumlahnya 18 – 4 = 14
  • 15. 15 BAB III Penutup 3.1 Kesimpulan Berdasarkan praktium yang telah dilaksanakan maka dapat diambil beberapa kesimpulan sebagai berikut: 1. Stored procedure adalah prosedur (seperti subprogram dalam bahasa pemrograman) yang disimpan di dalam database yang memudahkan pengguna dalam memanggil sebuah perintah dengan query yang lebih sederhana dan mudah diingat karena pengguna membuat sendiri. 2. Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel. Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. 3. Trigger memudahkan pengguna database untuk mengupdate tabel-tabel yang saling berpengaruh sehingga menyingkat waktu kerja dan hasilnya pun bisa lebih valid karena tabel yang telah terintegrasi.
  • 16. 16 DAFTAR PUSTAKA Modul Praktikum SBD ke-5. Stored Procedure dan Trigger.