Anda di halaman 1dari 15

LAPORAN RESMI

MODUL VI
“BRANCING / LOOPING”
SISTEM MANAJEMEN BASIS DATA

NAMA : PUTRI NUR ALI SAHLUM


N.R.P : 210441100108
DOSEN : YUDHA DWI PUTRA NEGARA S.Kom.,M.Kom
ASISTEN : AGISTIA DEVI WARDANI
TGL PRAKTIKUM : 05 MEI 2023

Disetujui : 09 MEI 2023


Asisten

AGISTIA DEVI WARDANI


200441100145

LABORATORIUM BISNIS INTELIJEN SISTEM


PRODI SISTEM INFORMASI
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BAB I
PENDAHULUAN

1.1 Latar Belakang


Stored Procedure merupakan kumpulan perintah SQL yang telah
didefinisikan dan disimpan dalam database. Dalam stored procedure, terdapat
berbagai fitur yang memungkinkan kita untuk mengelola data dan menjalankan
logika bisnis yang kompleks di dalam database. Salah satu fitur penting dalam
stored procedure adalah kemampuan untuk melakukan branching (percabangan)
dan looping (pengulangan) dalam SQL.
Dalam laporan praktikum ini, kita akan fokus pada penggunaan branching
dan looping dalam stored procedure SQL. Branching memungkinkan kita untuk
mengatur aliran eksekusi berdasarkan kondisi tertentu, sedangkan looping
memungkinkan kita untuk mengulangi sekelompok perintah sejumlah kali tertentu
atau berdasarkan kondisi tertentu. Kedua fitur ini sangat berguna dalam
pengembangan aplikasi dan pemrosesan data di dalam database.
Penerapan branching dan looping dalam stored procedure SQL akan
membantu memahami bagaimana kita dapat mengontrol aliran eksekusi, membuat
keputusan berdasarkan kondisi, serta melakukan pengulangan pada operasi
tertentu. Hal ini akan sangat berguna dalam mengembangkan fungsi-fungsi bisnis
kompleks dan melakukan pemrosesan data yang lebih efisien di dalam database.

1.2 Tujuan
- Mengerti tentang Stored Procedure
- Mampu Menggunakan Varibel, Brancing/Looping serta Percabangan pada
Stored Procedure
BAB II
DASAR TEORI

2
2.1 Variabel
Di deklarasi dengan keyword “DECLARE” kemudian di ikuti dengan
nama variabel dan tipe data.

Sintaks:
DECLARE nama variabel TYPE DEFAULT nilai;
 Untuk DEFAULT sifatnya opsional
DELIMITER //
CREATE PROCEDURE dec1()

BEGIN
DECLARE COUNT INT DEFAULT0;
DECLARE x INT;
DECLARE message VARCHAR(100);
END;
DELIMITER ;
Contoh Cetak Nama :

DELIMITER |

CREATE PROCEDURE Excetak_nm( IN namadepan VARCHAR(20),


IN namabelakang VARCHAR(30), IN gelardepan CHAR (6),
IN gelarbalakang CHAR(10))

BEGIN
DECLARE nama VARCHAR(50);
SET nama =CONCAT (gelardepan, " ",namadepan, " ", namabelakang, " ",
gelarbelakang);
SELECT nama AS hasil;
END;
DELIMITER ;

Contoh prosedur untuk mencetak nama :


call cetak_nm("Doni","Abdul","Dr.","S.Kom, M.Kom");

2.2 Pencabangan dan Pengulangan

A. Percabangan
Penggunaan pernyataan-pernyataan pencabangan ataupun pengulangan di
dalam stored procedure merupakan tindakan yang legal. Dengan demikian,
kita bisa menghasilkan suatu prosedur yang kompleks. Perintah pemilihan ini
berupa statement-statement yang akan mengerjakan instruksi jika kondisi
benar/terpenuhi. Contoh berikut memperlihatkan penggunaan pernyataan IF

Sintak :

IF [val] THEN IF [val] THEN


[result1] [result1]
END IF ; ELSE
[result2]
END IF ;

DELIMITER //
CREATE PROCEDURE cobaIF(
IN bil INT(3)
)
BEGIN
/*Deklarasi Variabel*/ DECLARE
str VARCHAR(50); if (bil<0) then
SET str ='Bilangan Negetif'; ELSE
SET str='Bilangan Posistif';
END if;
SELECT str;
END//
DELIMITER;

Atau

DELIMITER |
CREATE PROCEDURE exIF(
IN bil INT(3)
)
BEGIN
/*Deklarasi Variabel*/ DECLARE
str VARCHAR(50); if (bil<0) then
SET str ='Bilangan Negetif'; ELSE
SET str='Bilangan Posistif';
END if;
SELECT str;
END;
DELIMITER ;

Untuk memanggilnya :
call exIF(7);

B. Pengulangan
Perintah perulangan dengan menggunakan statement LOOP, WHILE,
dan REPEAT. Penggunaan statement LOOP diawali dengan menentukan
nama perulangan : LOOP dan diakhiri dengan END LOOP.

Statement WHILE Statement WHILE melakukan perulangan berdasarkan


kondisi tertentu. Perulangan akan dilakukan jika kondisi bernilai benar/true.

Sintak Loop :
Loop_name : LOOP
[statement1]
[statement2]
END LOOP loop_name

Sintak While :
Loop_Name : WHILE [condition] DO
[statement1]
[statement2]
END WHILE Loop_Name;

Sintak Repeat :
[begin_label:]
REPEAT
statement_list
UNTIL
search_condition
END REPEAT [end_label]

Contoh penggunaan looping adalah sebagai berikut :

DELIMITER |
CREATE PROCEDURE ExLoop(
IN bil INT(3)
)
BEGIN
/*Deklarasi Variabel*/
DECLARE str VARCHAR(150);
DECLARE i int(3); Set
i=1;
Set str= ;
While i<= bil do
Set str=concat (str, i, , );
Set i=i+1;
END WHILE;
SELECT str;
END;
|
DELIMITER ;
BAB IV
IMPLEMENTASI

3
4
4.1 Soal
1. Buatlah Stored Procedure Variabel untuk menampilkan detail transaksi
dengan isi : Nama customer, nama produk, harga, tanggal transaksi
2. Insert kedalam tabel transaksi yang anda miliki. Procedure harus memiliki
sebuah kondisi yang harus dipenuhidan jika kondisi tidak terpebuhi, maka
akan tampil peringatan (contoh: insert ke tabel peminjaman buku,
jikaanggota masih mempunyai buku yang belum dikembalikan. Maka akan
menampilkan peringatan dan insert gagal).
3. Buatlah store procedure untuk menentukan diskon setiap minimum
pembelian. Jika membeli 2-3 barang mendapatkan diskon 10%, jika
membeli 4-5 barang mendapatkan diskon 15%, dan jika membeli 6-7
barang mendapatkan diskon 20%. (Setiap kondisi harus menampilkan teks.
Cth : Anda mendapatkan diskon 20%, kemudian menampilkan hasil
perhitungan diskonnya.)
4. Buatlah Stored procedure Looping untuk mencetak data 1 sampai dengan
15

4.2 Jawaban
1.
o Query
DELIMITER //
CREATE PROCEDURE hitung_hari(
IN nim VARCHAR(255),
IN kode_kelas VARCHAR(4),
OUT total_hari INT
)
BEGIN
SELECT DATEDIFF(CURRENT_DATE(), MAX(tanggal_diambil))
INTO total_hari
FROM krs
WHERE nim = nim && kode_kelas = kode_kelas;
END //
DELIMITER ;
CALL hitung_hari ("1234567890", "C02", @total_hari);
SELECT @total_hari AS Total_Hari;

o Hasil

o Penjelasan
Query diatas adalah procedure yang digunakan untuk mengetahui
selisih hari antara tanggal mahasiswa mengambil kelas dan tanggal saat
ini. Procedure menggunakan 2 parameter IN yaitu nim dan kode_kelas,
dan 1 parameter OUT yaitu total_hari, kemudian didalam isi procedure
tersebut melakukan eksekusi Query SELECT
DATEDIFF(CURRENT_DATE(), MAX(tanggal_diambil)) INTO
total_hari, ini berfungsi untuk menampilkan selisih hari dari tanggal
sekarang dan kolom tanggal_diambil, dan hasilnya akan dimasukan ke
dalam total_hari. Kemudian klausa where disini digunakan untuk
memfilter data berdasarkan nim dan juga kode_kelas. Selanjutnya
procedure yang sudah dibuat, akan dipanggil munggunakan call, dan untuk
menampilkan hasil total_hari menggunakan perintah SELECT @total_hari
AS Total_hari.

2.
o Query
DELIMITER //
CREATE PROCEDURE updateAlamatMhs(
IN nim VARCHAR(25),
IN alamat VARCHAR(100)
)
BEGIN
UPDATE mahasiswa m SET m.alamat = alamat WHERE m.nim =
nim;
END //
DELIMITER ;

CALL updateAlamatMhs("1234567890", "Sampang");


SELECT * FROM mahasiswa;

o Hasil

o Penjelasan
Query diatas adalah procedure yang digunakan untuk mengupdate
alamat mahasiswa. Di procedure tersebut terdapat 2 parameter IN yaitu
nim dan alamat. Procedure yang sudah dibuat akan dipanggil
menggunakan call dengan memasukan 2 argumen yakni nim dan alamat.
Contohnya disini nim yang dimasukan 1234567890, dan perubahan
alamatnya adalah Sampang.

3.
o Query
DELIMITER //
CREATE PROCEDURE getMhsKrs()
BEGIN
SELECT m.nim, m.nama_mahasiswa, COUNT(*) AS Jumlah_Kelas
FROM
krs k INNER JOIN mahasiswa m ON k.nim = m.nim
GROUP BY nama_mahasiswa
ORDER BY m.nim;
END //
DELIMITER ;

CALL getMhsKrs();

o Hasil

4.
o Query
DELIMITER //
CREATE PROCEDURE tambah_krs(
IN nim VARCHAR(16),
IN kode_kelas VARCHAR(4),
IN tahun_ajaran YEAR(4)
)
BEGIN
DECLARE tanggal_sekarang DATE;
SET tanggal_sekarang = CURDATE();

INSERT INTO krs (nim, kode_kelas, tahun_ajaran, tanggal_diambil)


VALUES (nim, kode_kelas, tahun_ajaran, tanggal_sekarang);
END //
DELIMITER ;

CALL tambah_krs("1234567890", "D02", 2022);


o Hasil

5.
o Query
DELIMITER //
CREATE PROCEDURE getMhsByTgl()
BEGIN
SELECT * FROM mahasiswa WHERE tanggal_lahir BETWEEN
'2000-01-01' AND '2000-01-05';
END //
DELIMITER ;

CALL getMhsByTgl();

o Hasil
BAB V
PENUTUP

5
5.1 Analisa
Pada praktikum kali ini, praktikan dapat mengalisa bahwa dengan
mengetahui penggunaan Type Data dan Stored Procedure memungkinkan
pengguna bisa untuk menulis kode program yang lebih terstruktur dan
terorganisir. Dengan adayanya tipe data, kita bisa menentukan nilai apa yang
bisa disimpan didalam variabel tersebut. Ada lima jenis tipe data yaitu
character string, numeric, temporal, binary, dan boolean. Query Stored
Procedure dapat disimpan ke dalam database dan dapat dipanggil berulang kali,
sehingga pengguna dapat menghindari menulis Query yang sama berulang kali.
Untuk membuat prosedur kita perlu menuliskan Create Procedure kemudian
diikuti nama prosedur yang ingin kita buat Penggunaan Stored Procedure pada
database memiliki manfaat yang signifikan, antara lain meningkatkan efisiensi
dan kecepatan operasi, meminimalkan jumlah data yang ditransfer antara
database dan aplikasi, keterstrukturan kode, keamanan data, kemudahan
pemeliharaan, dan portabilitas kode program.

5.2 Kesimpulan
1. Tipe data merupakan bagian dari variabel yang mempengaruhi perilaku
variabel
2. Dalam Type Data Atribut seperti nama dan alamat direpresentasikan
oleh character string
3. Type Data Temporal merupakan tipe data yang menyimpan tanggal dan
waktu yang disesuikan dengan system-timezone (komputer)
4. Stored Procedure adalah sekumpulan Kode yang tersimpan di dalam
database dan dapat dieksekusi berulang-ulang tanpa perlu menulis ulang
kode program.
5. Stored Procedure memungkinkan pengguna untuk mengakses data dalam
database dan menjalankan operasi tertentu dengan lebih efisien dan
terstruktur.

Anda mungkin juga menyukai