Modul 7
Modul 7
b. Mengisi tabel yang telah dibuat sebelumnya dengan data sebagai berikut:
(1) Tabel mahasiswa
INSERT INTO mahasiswa (nim, nama, jenis_kelamin,
alamat)
VALUES (101, 'Arif', 'L', 'Jl. Kenangan'),
(102, 'Budi', 'L', 'Jl. Jombang'),
(103, 'Wati', 'P', 'Jl. Surabaya'),
(104, 'Ika', 'P', 'Jl. Jombang'),
(105, 'Tono', 'L', 'Jl. Jakarta'),
(106, 'Iwan', 'L', 'Jl. Bandung'),
(107, 'Sari', 'P', 'Jl. Malang');
1. Stored Procedure
Membuat stored procedure getMahasiswa( ) untuk menampilkan semua data
mahasiswa.
DELIMITER //
CREATE PROCEDURE getMahasiswa()
BEGIN
DELIMITER ;
2. Parameter IN
BEGIN
SELECT *
FROM matakuliah
WHERE semester = smt;
END //
DELIMITER ;
Untuk memanggil stored procedure yang memiliki parameter, maka kita harus
menspesifikasikan argumennya. Misalnya kita ingin mendapatkan data
matakuliah di semester 3.
Pendifinisian parameter pada stored procedure juga bisa lebih dari satu. Sebagai
contoh, buat stored procedure dengan dua buah parameter seperti berikut :
DELIMITER //
BEGIN
SELECT *
FROM matakuliah
WHERE semester = smt
AND sks = s;
END //
DELIMITER ;
Penambahan data
Contoh berikut memperlihatkan stored procedure untuk penambahan data di
tabel jurusan.
DELIMITER //
BEGIN
END //
DELIMITER ;
3. Parameter OUT
Dalam konteks bahasa pemrograman, parameter OUT analog dengan passing-
by-referance. Dengan demikian, parameter ini nilainya bisa diubah oleh stored
procedure.
DELIMITER //
BEGIN
SELECT COUNT(kode_mk)
END //
DELIMITER ;
4. Parameter INOUT
Pada parameter dengan model ini, kita bisa mengirimkan parameter ke stored
procedure dan mendapatkan nilai kembalian yang baru. Sebagai contoh, buat
stored procedure seperti berikut :
DELIMITER //
BEGIN
SELECT COUNT(nim)
INTO arg
FROM mahasiswa
WHERE jenis_kelamin = arg;
END //
DELIMITER ;
DELIMITER //
BEGIN
SELECT COUNT(nim)
INTO total
FROM mahasiswa
WHERE jenis_kelamin = sx;
END //
DELIMITER ;
Contoh penggunaannya :
BEGIN
IF (bil>0) THEN
SET str = 'Lebih dari Nol';
ELSE
SET str = 'Kurang dari / sama dengan Nol';
END IF;
DELIMITER ;
Contoh penggunaannya :
DELIMITER //
BEGIN
-- Deklarasi variabel
DECLARE x INT;
DECLARE str VARCHAR(50);
SET x = 1;
SET str = '';
WHILE x<=bil
DO
END WHILE;
END //
DELIMITER ;
D. TUGAS PRAKTIKUM
1. Definisikan stored procedure untuk mendapatkan banyak matakuliah dan jumlah
total sks dengan menilbatkan dua buah parameter OUT.
Jawab :
DELIMITER //
BEGIN
SELECT COUNT(kode_mk), SUM(sks)
INTO jml, total
FROM matakuliah;
END //
DELIMITER ;
BEGIN
-- Deklarasi variabel di dalam stored procedure
DECLARE str VARCHAR(30);
DECLARE arg1 INT(2);
DECLARE arg2 INT(2);
SELECT count(nim) INTO arg1 FROM mahasiswa WHERE
nim=nim1;
SELECT count(kode_mk) INTO arg2 FROM matakuliah WHERE
kode_mk = kode_mk1;
IF (arg1=0 OR arg2=0) THEN
SET str = "Operasi Gagal";
ELSE
BEGIN
SET str = "OK";
INSERT INTO Ambil_MK
VALUES(nim1, kode_mk1);
END;
END IF;
SELECT str;
END //
DELIMITER ;
3. Definisikan stored procedure untuk memodifikasi data dosen apabila eksis dan
melakukan penambahan jika belum eksis. Jadi, masukan dari argumen dapat
digunakan untuk penambahan ataupu modifikasi data.
Jawab :
DELIMITER //
BEGIN
-- Deklarasi variabel di dalam stored procedure
DECLARE str VARCHAR(30);
DECLARE arg1 INT(2);
IF (arg1=0) THEN
BEGIN
SET str = "Entry Data";
INSERT INTO Dosen
VALUES(kode_dos1,nama_dos1,alamat_dos1);
END;
ELSE
BEGIN
SET str = "Modifikasi Data";
UPDATE dosen SET nama_dos = nama_dos1 WHERE
kode_dos=kode_dos1;
UPDATE dosen SET alamat_dos = alamat_dos1 WHERE
kode_dos=kode_dos1;
END;
END IF;
SELECT str;
END //
DELIMITER ;