LAPORAN BASIS DATA MODUL 7 STORED PROCEDURE PDF

Title LAPORAN BASIS DATA MODUL 7 STORED PROCEDURE
Author A. Adyana Firdaus
Pages 37
File Size 2.8 MB
File Type PDF
Total Downloads 273
Total Views 518

Summary

LAPORAN MODUL VII PRAKTIKUM BASIS DATA “ STORED PROCEDURE” Disusun untuk Memenuhi Matakuliah Praktikum Basis Data Dibimbing oleh Triyanna Widyaningtyas, S.T., M.T. Oleh: Aisya Rawdha 170533628608 Ari Candra A. F. 170533628623 S1 PTI ‘17 OFF A UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ...


Description

Accelerat ing t he world's research.

LAPORAN BASIS DATA MODUL 7 STORED PROCEDURE Ari Candra Adyana Firdaus

Related papers

Download a PDF Pack of t he best relat ed papers 

LAPORAN PRAKT IKUM 7 BASIS DATA-ST ORED PROCEDURE dwit ha fajri

Laporan Basis Dat a Modul 7 Sept ian Adi Prat ama

LAPORAN MODUL VII PRAKTIKUM BASIS DATA “ STORED PROCEDURE”

Disusun untuk Memenuhi Matakuliah Praktikum Basis Data Dibimbing oleh Triyanna Widyaningtyas, S.T., M.T.

Oleh: Aisya Rawdha Ari Candra A. F.

170533628608 170533628623

S1 PTI ‘17 OFF A

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA Maret 2018

I.

Tujuan Praktikum • Memahami

konsep

dasar

stored

procedure,

kelebihan

dan

kekuranganya. • Memahami implementasi stored procedure di dalam basis data. • Mampu menyelesaikan operasi – operasi data spesifik dengan memanfaatkan stored procedure

II.

Dasar Teori

1. Stored Procedure Stored Procedure adalah sebuah prosedur layaknya subprogram (subrutin) di dalam bahasa pemrograman reguler yang tersimpan di dalam katalog basis data. Beberapa kelebihan yang ditawarkan stored procedure antara lain : mengingkatakan performa, mereduksi trafik jaringan, reusable, dan meningkatkan kontrol sekuriti. Di balik kelebihan tersebut, stored procedure juga memiliki kekurangan. Di antaranya adalah berpotensi meningkatkan beban server dan penulisnaya tidak mudah (memerlukan pengetahuan yang spesifik). Contoh sintaks stored procedure :

Untuk memanggil sotred preocedure, digunakan perintah CALL (beberapa DBMS ada yang menggunakan EXECUTE).

Dalam Implementasinya, penggunaan stored procedure sering melibatkan parameter. Di MySQL, parameter stored procedure dibedakan menjadi tiga mode : IN, OUT, dan INOUT.

A. IN Parameter yang merupakan mode default ini mengindikasikan bahwa sebuah parameter dapat di-pass ke dalam stored procedure tetapi nilainya tidak dapat diubah (dari dalam stored procedure) B. OUT Mode ini mengindikasikan bahwa stored procedure dapat mengubah parameter dan mengirimkan kembali ke program pemanggil C. INOUT Mode ini pada dasarnya merupakan kombinasi dari mode IN dan OUT. Sintaks pendefinisan parameter diperlihatkan sebagai berikut :

Stored procedure dapat mencerminkan beragam operasi data, misalnya seleksi, penambahan, pengubahan, penghapusan, dan juga operasi – oprasi DDL. Seperti halnya procedure di dalam bahasa pemrograman, stored procedure juga dapat melibatkan variabel, pernyataan kondisional, dan pengulangan.

III.

Latihan 1. Stored Procedure Seperti

halnya

tabel,

stored

procedure

diciptakan

dengan

menggunakan perintah CREATE sebagai contoh, buat stored procedure

getMahasiswa()

untuk

menampilkan

semua

mahasiswa. 1. Ketikkan pernyataan pembuatan stored procedure berikut :

data

Perintah DELIMITER digunakan untuk mengubah delimiter standar, misalnya di sini dari titik koma (;) menjadi slash ganda (//). Langkah ini umumnya dilakukan ketika isi stored procedure mengandung titik komayang merupakan delimiter standar di SQL. Pernyataan di antara BEGIN dan END merupakan badan (body) stored procedure. Perintah DELIMITER di akhir baris digunakan untuk mengembalikan delimiter ke karakter semula.

2. Eksekusi Query tersebut dengan memanggil procedure getMahasiswa().

2. Parameter IN Stored procedure di contoh sebelumnya memperlihatkan bentuk default (tanpa parameter). Di sini kita juga bisa mendefinisikan parameter yang nantinya dapat digunakan olehh pernyataan di body stored procedure. Sebagai contoh, kita bisa mendapatkan semua data matakuliah di semester tertentu.

Untuk memanggil stored procedure yang memiliki parameter, maka kita harus menspesifikasikan argumenya. Misalkan kita ingin mendapatkan data matakuliah di semester 3.

Apabila pemanggilan stored procedure di atas mengabaikan argumen, DBMS akan merespon dengan pesan kesalahan. Bergantung kebutuhan, pendefinisian parameter pada stored procedure juga bisa lebih dari satu. Sebagai contoh, buat stored procedure dengan dua buah parameter seperti berikut :

Pemanggilan stored procedure di atas tentunya akan memerlukan dua buah argumen.

Variabel Di MySQL, kita juga bisa mendeklarasikan variabel global – ruang lingkup session dengan menggunakan perintah SET dan notasi @. Sebagai contoh, perintah berikut akan mendeklarasikan variabel bernama smt dan diinisialisasi dengan nilai 3. Dan untuk memeriksa nilai variabel, gunakan perintah select

Langkah selanjutnya, kita bisa memanfaatkan variabel yang telah dideklarasikan untuk operasi – operasi lain, misalnya sebagai argumen stored procedure. CALL getMHSBySemester(@smt);

Penambahan Data Pada operasi penambahan, data – data terkait diisikan melaui argumen. Selanjutnya, isi stored procedure akan memasukkan data ke dalam tabel. Berikut adalah contoh stored procedure untuk menambahkan data pada tabel dosen

Lakukan eksekusi terhadap procedure tersebut call AddDosen('212','Gunawan','Jl. Ambarawa');

Selanjutnya lakukan pengecekan data pada tabel dosen. select * from dosen;

Operasi – operasi manipulasi data lainya bisa anda coba sendiri, dan tidak jauh berbeda dengan pernyataan SQL reguler

3. Parameter OUT Dalam konteks bahasa pemrograman, parameter OUT analog dengan passing-by-reference. Dengan demikian, parameter ini nilainya bisa diubah oleh stored procedure.

Untuk mengeksekusi stored procedure dengan parameter OUT, dibutuhkan argumen yang spesifik. Perhatikan,

argumen

harus

menggunakan

notasi

@,

yang

mengindikasikan sebagai suatu parameter OUT. Langkah selanjutnya, untuk mendapatkan nilai variabel, gunakan pernyataan

4. Parameter INOUT Pada parameter dengan mode INOUT ini, kita bisa mengirimkan parameter kedalam stored procedure dan mendapatkan nilai kembalian yang baru dari stored procedure yang didefinisikan. Sebagai contoh, definisikan stored procedure seperti berikut :

Lakukan eksekusi pada procedure tersebut untuk mencari jumlah matakuliah yang memiliki sks = 2. Dengan mendeklarasikan variabel @sks

dengan

nilai

CountBySks(@sks);

2

terlebih

dahulu

set

@sks=2;.

call

Lakukan pengecekan pada variabel sks setelah

dilakukan eksekusi pada stored procedure tersebut.select @sks;

Pendekatan INOUT juga dapat direpresentasikan dengan memisah parameter IN dan OUT Contoh penggunaanya, misal untuk mendapatkan jumlah mahasiswa yang jenis kelaminya adalah L.

Kemudian lakukan eksekusi pada procedure tersebut.

Maka akan didapat jumlah dari mahasiswa yang berjenis kelamin L adalah :

5. Pencabangan dan Pengulangan Penggunaan

pernyataan



pernyataan

percabangan

ataupun

pengulangan dapat dilakukan di dalam stored procedure.Sehingga dapat digunakan untuk menghasilkan suatu procedure yang lebih kompleks. Contoh berikut merupakan penggunaan dari pernyataan IF di dalam stored procedure.

Di dalam procedure tersebut membutuhkan beberapa variabel tambahan seperti str, sehingga di dekalrasikan variabel str dengan tipe varchar. Variabel ini digunakan sebagai keluaran dari procedure teresebut.

Kemudian eksekusi stored procedure tersebut dengan memberikan parameter bilangan berapapun. CALL DemoIF(7);

Contoh tersebut merupakan contoh untuk pernyataan kondisi didalam stored procedure. Dan berikut merupakan contoh penggunaan perulangan atau LOOPING pada stored procedure.

Lakukan eksekusi pada procedure tersebut. CALL DemoLOOP(9);

IV.

Tugas Praktikum 1. Definisikan stored procedure untuk meng-update data pada tabel mahasiswa! a. Source code : Procedure DELIMITER // CREATE PROCEDURE UpdateData(NimLama CHAR(15), Nama VARCHAR(30), JK ENUM('L','P'), Alamat VARCHAR(30)) BEGIN UPDATE mahasiswa SET Nama=Nama,Jk=JK, Alamat=Alamat WHERE Nim=Nimlama; END //

Eksekusi Procedure CALL UpdateData('102', gura')

b. Screenshoot

'Aisya',

'P',

'Jl.

sigura-

c. Analisis Program Perintah SQL di atas merupakan procedure untuk mengupdate data menggunakan stored procedure UpdateData CREATE PROCEDURE UpdateData

yang didalamnya terdapat field yaitu, Nimlama

bertipe data CHAR dengan panjang karakter 15, Nama yang bertipe data VARCHAR dengan panjang karakter 30, terdapat JK yang bertibe dapat ENUM hanya memilih l atau p, dan kemudian Alamat yang bertipe data VARCHAR panjangnya 30 karakter (NimLama CHAR(15), Nama VARCHAR(30), JK ENUM('L','P'), Alamat VARCHAR(30)).procedur

tersebut memulai dari mengedit

tabel mahasiswa BEGIN UPDATE mahasiswa yang diset dengan kondisi

SET

Nama=Nama,Jk=JK,

Alamat=Alamat

Dimana

ditunjukkan dengan Nim = Nimlama WHERE Nim = Nimlama; END //.

Kita melakukan eksekusi terhadap prosedure tersebut dengan

pemanggilan untuk update data kita bisa mengganti isi kolom atau record kolom CALL UpdateData('102', 'Aisya', 'P', 'Jl. sigura-gura')

dan data pada NIM 102 akan terupdate dengan

menggantikan record sebelumnya.

2. Definisikan stored procedure untuk mengetahui apakah nim sembarang mahasiswa sedang mengambil matakuliah atau tidak. Jika sedang mengambil, set status “ADA’, dan jika tidak mengambil, set status “TIDAK ADA”. a. Source code : Procedure DELIMITER // CREATE PROCEDURE getnimMk( IN nim INT(3) ) BEGIN DECLARE str VARCHAR(50); IF EXISTS (SELECT * FROM ambil_mk WHERE ambil_mk.nim = nim) THEN SET str = 'ADA'; ELSE SET str = 'TIDAK ADA'; END IF; SELECT nim,str AS status; END //

Eksekusi Procedure (mahasiswa mengambil matakuliah) CALL getnimMk(105)

Eksekusi Procedure (mahasiswa tidak mengambil matakuliah) CALL getnimMK(109)

b. Screenshoot

c. Analisis Program Pada SQL di atas merupakan procedure untuk mendapatkan nim mahasiswa dan dapat mengetahui mahasiswa mana

yang

mengambil matakuliah dan yang tidak mengambil. Di dalam procedure

tersebut

ada

perintah

untuk

PROCEDURE getnimMk(IN nim INT(3))

membuat

dengan NIM bertipe data

int dan panjang karakternya 3. . BEGIN VARCHAR(50);

CREATE

DECLARE

str

dan dimulai dari pendeklarasian variabel tambahan

yang bertipe data VARCHAR dengan panjang karakter 50. IF EXISTS (SELECT * FROM ambil_mk WHERE ambil_mk.nim =

nim)yang

diartikan bahwa terdapat kondisi IF EXISTS untuk

mengambil seluruh field dari tabel ambi_mk dimana memiliki kondisi. THEN SET str = 'ADA' ELSE SET str = 'TIDAK ADA';END IF; SELECT nim,str AS status;

SQL tersebut

arti dari perintas

pengesetan pada variabel str jika kondisi diatas

memenuhi, maka str akan keluar ADA, jika tidak memenuhi maka str akan keluar TIDAK ADA, str tersebut dikeluarkan sebagai field status. Untuk mengeksekusi procedure tersebut kita dapat menggunakan perintah CALL getnimMK(...) NIM mana yang mengambil matakuliah.

3. Definisikan stored procedure untuk menampilkan nilai genap saja, dengan inputan yang ditentukan! a. Source code : Procedure DELIMITER // CREATE PROCEDURE getnilaiGenap( IN nilai INT(3) ) BEGIN DECLARE str VARCHAR(20); IF (nilai%2 = 0) THEN SET str = 'GENAP'; END IF; SELECT nilai, str; END //

Eksekusi Procedure CALL getnilaiGenap(80)

b. Screenshoot

c. Analisis Program Pada SQL di atas merupakan procedure untuk mengetahui nilai genap pada sebuah data dengan penginputan nilai langsung yang ditentukan.

Membuat

getnilaiGenap

procedure

CREATE

PROCEDURE

dengan didalamnya terdapat field baru yaitu (IN

nilai INT(3))nilai

dengan tipe data INT agar dapat dioperasikan

dengan operasi matematika, panjang karakternya 3. BEGIN DECLARE

str

VARCHAR(20);IF

(nilai%2

=

0)melulai

procedure dengan pendeklarasian variabel baru yang bertipe data VARCHAR ddengan panjang karakter 20. Dengan kondisi Nilai %2=0

merupakan nilai tersebut tidak memiliki sisa jika dibagi 2,

nilainya merupakan nilai bulat,

THEN SET str = 'GENAP';

menget str sama dengan genap jika kondisi diatas terpenuhi END IF; SELECT nilai, str;

akan

terpenuhi

dengan memasukkan nilai genap maka

kondisinya.

Kemudian

setelah

melakukan

pembuatan procedure selesai, untuk mendapatkan nilai GENAP kita dapat melakukan perintah pemanggilan nilai genap dengan cara CALL getnilaiGenap(80) maka akan dikeluarkan outputan bahwa nilai 80 merupakan nilai GENAP.

V.

Tugas Rumah 1. Definisikan Store prosedure untuk menambahkan data pada tabel mahasiswa, jika data sudah ada, set status “Data Mahasiswa Sudah Terdaftar”. dan jika data belum ada, set status “Data Mahasiswa berhasil ditambahkan” dan langsung ditampilkan! a. Source code : Procedure DELIMITER // CREATE PROCEDURE getStatusMahasiswa( IN nim_mhs INT(3), IN nama_mhs VARCHAR(30), IN jenis_kelamin_mhs ENUM('L','P'), IN alamat_mhs VARCHAR(30) ) BEGIN DECLARE status_mhs VARCHAR(50); IF EXISTS(SELECT*FROM mahasiswa WHERE nim_mhs IN(SELECT m.Nim FROM mahasiswa m)) THEN SET status_mhs="Data Mahasiswa Sudah Terdaftar"; ELSE INSERT INTO mahasiswa VALUES( nim_mhs,nama_mhs,jenis_kelamin_mhs,alamat_mhs); SET status_mhs="Data Mahasiswa berhasil ditambahkan"; END IF; SELECT status_mhs; END //

Eksekusi procedure CALL getStatusMahasiswa("101", Kenangan");

"Arif",

"L",

"Jl.

CALL getStatusMahasiswa("311", Buntu");

b. Screenshot

"Ari",

"L",

"Jl.

c. Analisis program Pada program diatas menggunakan 1 query untuk membuat procedure dan 2 query untuk eksekusi procedure. CREATE PROCEDURE getStatusMahasiswa(

digunakan untuk membuat

procedure baru dengan nama getStatusMahasiswa yang berisikan IN nim_mhs INT(3), IN nama_mhs VARCHAR(30), IN jenis_kelamin_mhs ENUM('L','P'), IN alamat_mhs VARCHAR(30)

)

nim_mhs menggunakan tipe data integer

dengan panjang karakter 3, nama_mhs menggunakan tipe data varchar dengan panjang karakter 30, jenis_kelamin_mhs menggunakan tipe data enum dengan pilihan karakter L dan P, alamat_mhs menggunakan tipe data varchar dengan panjang karakter 30. Saat memulai procedure menggunakan BEGIN, program akan menjalankan perintah DECLARE status_mhs VARCHAR(50);

yaitu mendeklarasikan status_mhs dengan tipe

data varchar dan panjang karakter 50, jika data sudah ada sebelumnya maka program akan menjalankan perintah IF EXISTS(SELECT*FROM

mahasiswa

WHERE

IN(SELECT m.Nim FROM mahasiswa m))

nim_mhs

dan mengeluarkan

output bahwa data mahasiswa sudah terdaftar dengan perintah SET

status_mhs="Data

Mahasiswa

Sudah

Terdaftar";

namun jika data yang dimasukkan belum ada maka program akan

menjalankan

VALUES(

perintah

nim_mhs,

alamat_mhs);

INSERT

nama_mhs,

INTO

mahasiswa

jenis_kelamin_mhs,

yang berarti memasukkan data baru ke tabel

mahasiswa dengan values nim, nama, jenis kelamin, dan alamat kemudian mengeluarkan output data mahasiswa berhasil

ditambahkan

menggunakan

perintah

SET

status_mhs="Data Mahasiswa berhasil ditambahkan";. Saat eksekusi

procedure

menggunakan

perintah

CALL

getStatusMahasiswa Kenangan");,

("101",

"Arif",

"L",

"Jl.

output yang dikeluarkan adalah data mahasiswa

sudah terdaftar karena mahasiswa dengan status nim, nama, jenis

kelamin,

dan

alamat

tersebut

sudah

diinputkan

sebelumnya. Namun jika eksekusi procedure menggunakan perintah CALL getStatusMahasiswa ("311", "Ari", "L", "Jl. Buntu");,

maka output yang dikeluarkan adalah data

mahasiswa berhasil ditambahkan karena mahasiswa dengan status nim, nama, jenis kelamin, dan alamat tersebut belum diinputkan sebelumnya.

2. Definisikan suatu Stored procedure yang berfungsi untuk menambahkan data pada tabel penulis, detail_buku, dan buku. a. Source code : Procedure DELIMITER // CREATE PROCEDURE AddPenulis( IN id INT (4), IN nama VARCHAR (40) ) BEGIN INSERT INTO tabel_penulis (id_penulis, nama_penulis) VALUES (id,nama); END // DELIMITER // CREATE PROCEDURE AddStok( IN id INT(3), IN harga INT(6), IN stok INT(2) ) BEGIN INSERT INTO detail_buku (id_buku,harga,stok) VALUES (id,harga,stok); END // DELIMITER // CREATE PROCEDURE AddBuku( IN id_bk INT(3), IN id_pls INT(3)

IN nama_bk VARCHAR (20), IN genre VARCHAR (10), IN tahun YEAR (4) ) BEGIN INSERT INTO tabel_buku (id_buku,id_penulis,nama_buku,genre,tahun) VALUES (id_bk,id_pls,nama_bk,genre,tahun); END //

Eksekusi procedure CALL AddPenulis(125,'Candra Firdaus') SELECT * FROM tabel_penulis; CALL AddStok(212,120000,45) SELECT * FROM detail_buku; CALL AddBuku (212, 125, 2010) SELECT * FROM tabel_buku;

b. Screenshot

'Anak

Ayam',

'Action',

c. Analisis program : Program diatas menggunakan 3 query untuk membuat procedure dan 3 query untuk eksekusi procedure. Untuk membuat procedure daftar penulis menggunakan perintah CREATE PROCEDURE AddPenulis( (4), IN nama VARCHAR (40) )

yang berisi IN id INT

yaitu id penulis dengan tipe

data integer dan panjang karakter 4 serta nama penulis dengan tipe data varchar dan panjang karakter 40. Saat memulai procedure menggunakan BEGIN, perintah yang dijalankan adalah

INSERT

nama_penulis)

INTO

tabel_penulis

VALUES (id, nama);,

(id_penulis,

yaitu memasukkan

data baru ke tabel_penulis berupa id penulis dan nama penulis dengan values id dan nama. Untuk membuat procedure detail buku menggunakan perintah CREATE PROCEDURE AddStok( yang berisi IN id INT(3), IN harga INT(6), IN stok

INT(2) ),

yaitu id buku dengan tipe data integer dan panjang

karakter 3, harga buku dengan tipe data integer dan panjang karakter 6, serta stok buku dengan tipe data integer dan panjang karakter 2. Saat memulai procedure menggunakan BEGIN,

perintah yang dijalankan adalah INSERT

detail_buku

(id_buku,

stok);,

harga,

harga,

stok)

INTO

VALUES

(id,

yaitu memasukkan data baru ke tabel

detail_buku berupa id buku, h...


Similar Free PDFs