46741_tbd(1)

3
PERTANYAAN 1. Buatlah cursor daritabel-tabelberikut : Tb_golongan Tb_jabatan Tb_pegawai 1. Hitunglahgajipokok DELIMITER $$ USE `db_pegawai`$$ DROP PROCEDURE IF EXISTS `hitung_gaji_pokok`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `hitung_gaji_pokok`(IN id INT, OUT totalgaji INT) BEGIN

Upload: krisna-budeg

Post on 12-Jul-2016

213 views

Category:

Documents


1 download

DESCRIPTION

Basisdata pembuatan procedure dengan tiga tabel yang berbeda

TRANSCRIPT

Page 1: 46741_TBD(1)

PERTANYAAN

1. Buatlah cursor daritabel-tabelberikut :

Tb_golongan

Tb_jabatan

Tb_pegawai

1. HitunglahgajipokokDELIMITER $$USE `db_pegawai`$$DROP PROCEDURE IF EXISTS `hitung_gaji_pokok`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `hitung_gaji_pokok`(IN id INT, OUT totalgaji INT)BEGIN DECLARE id_jabat, id_golong,gajigaji,tunjangan2 INT; SET id_jabat :=(SELECTid_jabatan FROM tb_pegawai WHERE id_pegawai=id); /*= 1*/

Page 2: 46741_TBD(1)

SET id_golong :=(SELECTid_gol FROM tb_pegawai WHERE id_pegawai=id); /*= 1*/ SET gajigaji :=(SELECTgaji FROM tb_golongan WHERE id_gol=id_golong); /*= 1000*/ SET tunjangan2 :=(SELECTtunjangan FROM tb_jabatan WHERE id_jabatan=id_jabat); /*= 100*/ SET totalgaji=gajigaji+tunjangan2; /* 100+100 =1100*/ END$$DELIMITER ;

2. Cursor menghitunggajipokokDELIMITER $$USE `db_pegawai`$$DROP PROCEDURE IF EXISTS `cursor_hitung_gaji_pokok`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `cursor_hitung_gaji_pokok`()BEGIN DECLARE done INT DEFAULT 0; DECLARE id_p INT; DECLARE prodrecord CURSOR FOR SELECT id_pegawai FROM tb_pegawai; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1; OPEN prodrecord;

WHILE NOT done DOFETCH prodrecord INTO id_p;CALL hitung_gaji_pokok(id_p,@a);IF @a IS NULL THEN

SET @a=0;END IF;IF NOT done THEN

UPDATE tb_pegawai SET total_gaji=@a WHERE id_pegawai=id_p;END IF;

END WHILE; CLOSE prodrecord; END$$DELIMITER ;

3. Memanggil cursorSELECT gaji FROM tb_golongan WHERE id_gol=1`hitung_gaji_pokok`(IN id INT, OUT totalgaji INT)CALL hitung_gaji_pokok(1,@a);SELECT @a;CALL `cursor_hitung_gaji_pokok`();

Page 3: 46741_TBD(1)

Tampaksepertigambardibawahini :