Anda di halaman 1dari 7

Nama : Rizki Afriani

NIM : 1515015033

Praktikum Sistem Manajemen Basis Data


POSTTEST MODUL 4 : STORED PROCEDURE (Penggunaan Pengulangan)

Posttest Soal 1 :
Buatlah Procedure untuk menghitung nilai cicilan (pokok+bunga) mulai bulan pertama hingga
bulan ke 24, jika besar pinjaman 48.000.000 dan bunga dihitung sebesar 2 % dari sisa pinjaman
setiap bulannya menggunakan perulangan : WHILE, REPEAT, LOOP.

a. WHILE

Analisis :
Pertama kita membuat nama prosedur cicilwhile dan mendefinisi prosedur dengan parameter
bentuk tipe IN sebagai masukan dengan prosedur dengan nama cicil dengan type integer.
Mendefinisikan variable yaitu cicilan, bulanan, bayar, bunga dan perbulan dengan tipe semua

1|Page
integer. Membuat temporary table yang digunakan untuk membuat table sementara dalam
MySQL yang nantinya table hanya dapat di akses pada saat php diproses setelah itu otomatis
terhapus dan tidak masuk dalam database. Dalam kasus kali ini menggunakan database
akademik yang sudah tersedia. Query atau perintah seperti berikut :

create temporary table kreditan (bulan int(10), bayarannya int(10));

Mendeklarasikan SET untuk memberi nilai pada cicilan dengan perhitungan masukan dari variable
cicil dibagi 24 dan SET perbulan = 1 dimana memberikan nilai 1. Dan meinisiasikan perulangan
WHILE dengan kondisi selama perbulan lebih kecil dari sama dengan 24 bulan maka masuk ke dalam
kondisi DO bulanan = cicilan(cicil*bunga=0.02). Hasil dari bulanan yang didapat ditambahkan ke
dalam kolom dari table temporary / table sementara. Dan dalam setiap perbulan yang ditambahkan akan
terus bertambah 1 bulan karena sudah di kondisikan SET perbulan = perbulan +1. Meninisiasikan
mengetahui jumlah cicil yang dibayar dengan kondisi cicil=cicil-cicilan. Untuk END WHILE yaitu untuk
mengakhiri perulangan yang terjadi jadi jika semua kondisi sudah diesekusi dilanjut dengan select bulan,
bayarannya from kreditan yaitu menampilkan hasil dari kondisi yang sudah diesekusi dalam while dan
menampilkan hasil akhir dari perhitungan tersebut dari table kreditan.

Untuk memanggil dari procedure yang sudah dibuat dengan query :

Call cicilwhile(48000000);

2|Page
b. REPEAT

Analisis :
1. Mendeklarasikan sama dengan kondisi while untuk declare variable dan parameter dan temporary
table hanya saja yang membedakan yaitu penamaan procedure.
2. Mendesklarasikan pengulangan REPEAT dan di dalam kondisi repeat terdapat pernyataan yang akan
diesekusi terus menerus sampai kondisi bernilai benar (true).
3. Pernyataan sama seperti dalam kondisi WHILE untuk perhitungan cicilan dan bulanan yang harus
dibayar.
4. UNTIL kondisi_pengulangan ( perbulan lebih kecil dari 24 maka akan terus mengesekusi sampai
semua 24 bulan)
5. Dan menampilkan hasil dari perhitungan yang sudah dijamah wkk.

Query memanggil procedure repeat :

Call cicilrepeat(48000000);

3|Page
(Output hasil call cicilrepeat(48000000);)

C. LOOP

4|Page
Analisis :

1. Mendeklarasikan sama dengan kondisi while untuk declare variable dan parameter dan temporary
table hanya saja yang membedakan yaitu penamaan procedure.
2. Mendesklarasikan pengulangan nama_label: LOOP dan di dalam kondisi LOOP terdapat pernyataan
yang akan dieksekusi terus sampai pernyataan tersebut keluar dari pengulangan dengan pernyataan
LEAVE:nama_label.
3. Pada kasus ini, nama_label = nama dari table temporary.
4. Dan untuk keluar dari pernyataan yang sudah diesksekusi terdapat pernyataan IF jika perbulan lebih
besar dari angka 24 maka pernyataan LEAVE akan mengesekusi dan keluar dari kondisi LOOP.
5. Dan menampilkan hasil akhir yang telah ditambahkan dalam temporary table yang sudah dibuat.

Pemangilan output dengan query sebaga berikut :

Call cicilloop(480000000);

5|Page
Posstest Soal 2 :

Buatlah procedure untuk menyusun data text menggunakan CURSOR dari table mahasiswa dengan
format sebagai berikut :

Nama; NIM; Tempat Lahir; Tanggal Lahir #

Analisis :

1. Mendeskripsikan declare variable dan parameter nya.


v_finished dengan tipe boleean parameter false
v_nama tipe varchar default
v_tempatlahir, v_tanggallahir dan list_mahasiswa

2. Mendeskripsikan declare nama_cursor cursor_mahasiswa CURSOR FOR SELECT_ statement


(nama,nim,tempatlahir,tanggallahir) dari table mahasiswa.
3. DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_finished = TRUE ; untuk
menghandle nilai yang ditangkap dari mahasiswa yang mana jika bernilai TRUE akan menjalankan
statement selanjutnya.
4. Dengan membuka CURSOR OPEN cursor_name (cursor_mahasiswa)
5. Mengambil hasi nilai dari variable fetch nama,nim,tempatlahir,tanggallahir dan mengisi nilai dalam
list_mahasiswa

6|Page
6. Terdapat kondisi IF v_finished TRUE, dimaksudnya jika semua kondisi / nilai dinyatakan benar
maka statement selanjutnya yaitu LEAVE get_nama.
7. LEAVE get_nama yaitu keluar dari kondisi LOOP dari get_nama
8. Terakhir menutup cursor dengan CURSOR CLOSE cur_name (get_nama) dan menampilkan hasil
dari list_mahasiswa

Pemanggilan untuk query sebagai berikut :

Call Daftar_Mahasiswa();

7|Page

Anda mungkin juga menyukai