# PERTEMUAN 11 ## ROUTINE ### Live Preview - [Click Me](https://hackmd.io/@novaardiansyah/HkTitaHNT) ## TUGAS PRAKTIKUM ### Soal A. ```sql= create database Routine; show databases; use Routine; ``` ### Soal B. ```sql= create function fungsi1(a smallint) returns int return(a+a); select fungsi1(60); ``` ### Soal C. ```sql= create function fungsi2(kar char(50)) returns int return length(kar); select fungsi2('MySQL'); ``` ### Soal D. ```sql= create function fungsi3(nilai int) returns int return (nilai + 100); select fungsi3(10); ``` ### Soal E. ```sql= show create function fungsi1; ``` ### Soal F. ```sql= show create function fungsi2; show create function fungsi3; ``` ### Soal G. ```sql= drop function fungsi3; show create function fungsi3; ``` ### Soal H. ```sql= create database sekolah; use sekolah; create table siswa(nis varchar(15), nama char(20), angkatan varchar(30), primary key(nis)); ``` ### Soal I. ```sql= insert into siswa values('11234', 'ana', '2008/2009'); insert into siswa values('11235', 'bayu', '2009/2010'); insert into siswa values('11236', 'canda', '2010/2011'); insert into siswa values('11237', 'dirga', '2012/2013'); insert into siswa values('11238', 'endang', '2013/2014'); ``` ### Soal J. ```sql= DELIMITER // CREATE PROCEDURE jumlahsiswa (OUT parameter1 INT) BEGIN SELECT COUNT(*) INTO parameter1 FROM siswa; END; // DELIMITER ; ``` ### Soal K. ```sql= call jumlahsiswa(@a); select (@a); ``` ### Soal L. ```sql= create database toko; use toko; create table barang (NamaBarang varchar(50), Satuan varchar(30), Harga int, Jumlah int); insert into barang values('Sabun', 'Bungkus', 3000, 20); insert into barang values('Sikat Gigi', 'Bungkus', 4000, 50); insert into barang values('Sampho', 'Botol', 3000, 30); insert into barang values('Kopi', 'Kg', 10000, 20); insert into barang values('Teh', 'Bungkus', 30000, 40); insert into barang values('Beras', 'Kg', 10000, 10); DELIMITER // CREATE PROCEDURE jumlahHargaBarang (OUT parameter1 INT) BEGIN SELECT SUM(Harga * Jumlah) INTO parameter1 FROM barang; END; // DELIMITER ; call jumlahHargaBarang(@a); select (@a); ``` ## TUGAS PENDAHULUAN ### SOAL. 1. Apa yang dimaksud dengan routine? 2. Jelaskan perbedaan antara fungsi tersimpan dan prosedur tersimpan? 3. Mengapa dengan menggunakan routine dapat mempermudah penggunaan bagi user? 4. Mengapa dengan menggunakan routine dapat lebih menjaga keamanan suatu database 5. Dari 4 soal diatas buatlah materi kesimpulan yang minimal adalah 2 paragraf. ### JAWABAN. 1. Routine dalam MySQL merujuk pada kumpulan pernyataan SQL yang disimpan di server. Routine dapat berupa prosedur atau fungsi. Prosedur adalah kumpulan pernyataan SQL yang dapat dipanggil menggunakan pernyataan CALL, sedangkan fungsi adalah rutinitas yang mengembalikan nilai. Kedua jenis rutinitas ini dapat disimpan di server dan dipanggil oleh klien tanpa perlu mengulangi pernyataan SQL individual 2. Perbedaan utama antara fungsi tersimpan dan prosedur tersimpan adalah bahwa fungsi mengembalikan nilai, sedangkan prosedur tidak. Fungsi dapat digunakan dalam pernyataan SQL, sementara prosedur dipanggil menggunakan pernyataan CALL. 3. Penggunaan routine dapat mempermudah penggunaan bagi pengguna karena klien tidak perlu terus-menerus mengulangi pernyataan SQL individual. 4. Penggunaan routine dapat lebih menjaga keamanan suatu database karena rutinitas yang tersimpan dapat memastikan bahwa setiap operasi dieksekusi dengan benar dan tercatat dengan baik. ## KESIMPULAN Routine dalam MySQL, baik berupa prosedur atau fungsi, merupakan kumpulan pernyataan SQL yang tersimpan di server. Perbedaan utama antara fungsi dan prosedur tersimpan adalah bahwa fungsi mengembalikan nilai, sementara prosedur tidak. Penggunaan rutinitas dapat mempermudah penggunaan bagi pengguna karena klien tidak perlu terus-menerus mengulangi pernyataan SQL individual. Selain itu, rutinitas yang tersimpan juga dapat lebih menjaga keamanan suatu database dengan memastikan bahwa setiap operasi dieksekusi dengan benar dan tercatat dengan baik, serta memberikan lingkungan yang konsisten dan aman