Anda di halaman 1dari 12

SOAL UNGUIDED

STORED PROCEDURE AND FUNCTION


PBD GASAL 2020/2021
____________________________________________________________________________________
SEBELUM MENGERJAKAN :
- Berdoa
- Buatlah tabel TRANSAKSI_XXXXXXXXX , XXXXXXXXX adalah 9 digit NPM kalian
Isi dari tabel TRANSAKSI_ XXXXXXXXX diambil dari tabel TRANSAKSI

1. ( BOBOT 15% ) Kolom TOTAL pada tabel TRANSAKSI_XXXXXXXXX memiliki kesalahan di mana
nilainya merupakan nilai random tidak sesuai tabel RINCIAN dan tabel DENDA, maka dari itu perbaiki
kolom tersebut dengan membuat sebuah PROSEDUR
Ketentuan:
a. Lakukan UPDATE dengan menggunakan CURSOR dan PERULANGAN.
b. Tampilkan output seperti contoh berikut :

Nota-1, Rp 90000 -> nomor_nota, total(Setelah update)


Total_akhir = total_awal – denda
Yang paling bawah adalah current_timestamp

Catatan :
a. Sertakan screenshot tabel TRANSAKSI_XXXXXXXXX setelah dilakukan update ( bagian nomor
nota dan total saja ).
b. Harap current_timestamp yang muncul disesuaikan dengan waktu pengerjaan kalian.
c. Cursor + Perulangan terserah mau pakai apa yang penting jalan + sesuai format + sesuai
ketentuan .

KERAPIAN + 5
SEBELUM MENGERJAKAN :
- PASTIKAN NOMOR 1 TIDAK ERROR DAN OUTPUTNYA SAMA
2. ( BOBOT 30% ) Buatlah sebuah FUNGSI untuk mencari nomor_nota dengan terbesar total
setelah update, lalu buatlah sebuah PROSEDUR untuk menghitung total setelah diskon yang mana
diskon ini merupakan parameter input.
a. FUNGSI ( POINT 20 )(+10 Bonus)
- Tidak memiliki parameter input.
- Memiliki tipe balikan VARCHAR
- Boleh menggunakan fungsi MAX()
- Bonus +10 apabila menggunakan PERULANGAN untuk mengecek total terbesar setelah
update
b. PROSEDUR ( POINT 80 )
- Memiliki sebuah parameter input dengan tipe VARCHAR.
- Output yang dihasilkan jika benar dan berhasil :

- Dilengkapi dengan EXCEPTION untuk mengecek parameter input, parameter input TIDAK
BOLEH KOSONG/ NULL, TIDAK BOLEH KURANG DARI 0, TIDAK BOLEH
LEBIH DARI 100, TIDAK BOLEH SELAIN ANGKA. Akan muncul pesan seperti
berikut :

c. Eksekusi
- Eksekusi prosedur dengan variabel input 2 digit terakhir NPM
- Eksekusi prosedur dengan variabel input berupa simbol/huruf
- Eksekusi prosedur dengan variabel input berupa (‘’)/null
- Eksekusi prosedur dengan variabel input berupa – simbol minus
- Eksekusi prosedur dengan variabel input berupa angka lebih dari 100
- Eksekusi prosedur dengan variabel input berupa angka kurang dari 0

Catatan :
a. PERULANGAN + EXCEPTION terserah menggunakan apa.
b. Ada 2 output yang perlu di screenshot yaitu pada saat berhasil eksekusi dan gagal eksekusi.
KERAPIAN + 5
SEBELUM MENGERJAKAN :
- Eksekusi script yang ada di akhir file ini

3. ( BOBOT 15% ) Buatlah sebuah FUNGSI untuk menghitung gaji pegawai tertentu yang ada di tabel
MANAGER lalu buatlah sebuah PROSEDUR untuk mengeksekusi fungsi tadi, menampilkan hasilnya,
dan memasukkannya ke tabel SalaryManager_xxxx dalam perulangan dengan ketentuan :
a. FUNGSI ( POINT 40 )
- Memiliki parameter input dengan tipe VARCHAR.
- Digunakan untuk menghitung salary_xxxx dari id_pegawai = parameter input
salary_xxxx := (bulanan_xxxx * 12) + tahunan_xxxx - (ganti_rugi_xxxx *
hilang_xxxx);
- bulanan_xxxx diambil dari tabel PETUGAS kolom bonus_bulanan.
- tahunan_xxxx diambil dari tabel MANAGER kolom bonus_tahunan.
- ganti_rugi_xxxx dan hilang_xxxx diambil dari tabel DENDA kolom ganti_rugi dan
jumlah_hilang.

b. PROSEDUR ( POINT 60 )
- Tanpa parameter.
- Output yang dihasilkan jika benar :

- Menggunakan PERULANGAN dan CURSOR untuk menampilkan output dan


memasukkan datanya ke tabel SalaryManager_xxxx , prosedur ini akan memanggil
FUNGSI untuk mendapatkan salary_xxxx dari id_pegawai yang sedang ditunjuk oleh
CURSOR.
- CURSOR menggunakan tabel MANAGER.
- Tabel SalaryManager_xxxx

Catatan :
a. Cursor + Perulangan terserah menggunakan apa.
b. Ada 2 output yang perlu di screenshot yaitu pada saat berhasil eksekusi dan tabel
SalaryManager_xxxx 
KERAPIAN + 5
SEBELUM MENGERJAKAN :
- Eksekusi script yang ada di akhir file ini, pastikan terbentuk 8 rows dengan pw kosong

4. ( BOBOT 40% )Buatlah 2 PROSEDUR untuk melakukan UPDATE terhadap kolom yang kosong
dari tabel di atas.
a. PROSEDUR A ( POINT 40 )
- Memiliki 2 parameter OUT yaitu Cek bertipe BOOLEAN dan id bertipe VARCHAR
- Di dalamnya ada fungsi untuk generate random number dan random string, fungsinya
sudah built-in silahkan cari di google
- Random number dan random string digunakan untuk UPDATE kolom pw pada tabel.
Contoh : apabila random number yang keluar adalah 8 maka pegawai dengan id_pegawai
Peg-8 akan diUPDATE kolom pw nya dengan nilai random string.
- Hanya pw yang masih kosong yang akan ter UPDATE, yang sudah terisi tidak akan diupdate
lagi
- Parameter OUT tadi digunakan untuk mereturnkan apakah update berhasil atau tidak dan
id_pegawai mana yang berhasil ter UPDATE
b. PROSEDUR B ( POINT 60 )
- Digunakan untuk mengeksekusi PROSEDUR A dalam sebuah PERULANGAN.
- Tampilkan juga timestamp saat prosedur mulai dieksekusi dan saat looping telah selesai,
hitung juga interval antara ke duanya.
- Perulangan dilakukan sebanyak 100x dan akan berhenti saat kolom pw sudah terisi penuh.
- Output yang dihasilkan PROSEDUR B :

- Bonus +5 apabila ada kondisi agar PROSEDUR B tidak ter eksekusi jika user
melakukannya dalam kondisi kolom pw sudah penuh.

Catatan :
a. Perulangan terserah menggunakan apa.
b. Random number disesuaikan dengan id_pegawai
c. Random string 12 digit uppercase
d. Ada 2 output yang harus discreenshot yaitu hasil eksekusi prosedur dan tabel hasil update .
Ditambah 1 lagi jika mengerjakan bonus

KERAPIAN + 5
KETENTUAN UNGUIDED
Apabila di soal tidak ditentukan nama
variabelnya/ nama – nama lainnya, silahkan beri
nama sendiri dengan tambahan 4 digit npm di
belakangnya.

Yang dikumpulkan adalah QUERY dan


SCREENSHOT COMMAND LINE.

Font QUERY : Courier New 10.

Usahakan SCREENSHOT COMMAND LINE


terbaca, ukuran kecil tidak masalah selagi bisa
dibaca saat dizoom.

Usahakan SCREENSHOT COMMAND LINE


rapi, gunakan set linesize dan set pagesize.

Sertakan identitas di pojok kiri atas berupa


NAMA dan NPM.

Nama file : UGD0910_XXXX.pdf


XXXX adalah 4 digit NPM.

BATAS PENGUMPULAN : SABTU, 17 OKTOBER 2020 23 : 59

KERAPIAN + 5
PENILAIAN UNGUIDED

1. Error
Error total : 60 ( nilai max pada nomor yang error )
Logic benar : 80 ( nilai max pada nomor yang error )
2. Penulisan variable , -5 setiap variable yang tidak diberi 4
digit NPM di belakangnya.
3. Nama tabel, -5 setiap tabel yang tidak diberi NPM di
belakangnya.
4. Nama prosedur/ fungsi, -5 setiap prosedur/ fungsi yang
tidak diberi 4 digit NPM di belakangnya.
5. Screenshot output, -5 setiap output yang tidak ada/ tidak
sesuai nomor.
6. Query, -5 setiap query yang tidak ada.
7. Screenshot query, -5 setiap screenshot query yang tidak
ada/ tidak sesuai nomor.
8. Tidak ada identitas, -10.
9. Salah format penamaan file, -10.
10. Salah format penulisan, -10.
11. Salah format pengumpulan, -10.

Salah penamaan ,
Seharusnya : UGD0910_XXXX.pdf
Yang dikumpul : UGD08_XXXX.pdf / yang lainnya

Salah format penulisan ,


Seharusnya : courier new 10 untuk query
Yang dikumpul : times new roman, calibri, dll

Salah format pengumpulan ,


Seharusnya : UGD0910_XXXX.pdf
Yang dikumpul : UGD0910_XXXX.docx / yang lainnya

KERAPIAN + 5
BONUS PENGUMPULAN

SELESAI & BENAR & DIKUMPULKAN +1½ JAM SETELAH SOAL DI


SHOW
UGD 110 + LAPORAN 100

SELESAI & BENAR & DIKUMPULKAN +2 JAM SETELAH SOAL DI


SHOW
UGD 105 + LAPORAN 100

Tambahan :
1. BATAS JAM BONUS AKAN DIBERITAHUKAN DI MS TEAMS / SITUS KULIAH
SETELAH SOAL DISHOW.

2. APABILA TIDAK ADA YANG MENDAPAT BONUS PERTAMA MAKA WAKTU BONUS
AKAN DITAMBAH.

3. MAHASISWA YANG MENDAPAT BONUS AKAN DIINFOKAN DI TEAMS PALING LAMBAT


KEESOKAN HARINYA.

4. BONUS DITENTUKAN DARI WAKTU SUBMISSION, APABILA SUDAH


MENGUMPULKAN SAAT BONUS TETAPI DIUBAH DAN DIKUMPULKAN DI LUAR
JAM BONUS MAKA AKAN HANGUS BONUSNYA.

KERAPIAN + 5
KETENTUAN LAPORAN

Yang dikumpulkan adalah penjelasan per nomor.

Jelaskan alur dari querynya, bisa menambahkan


screenshot jika perlu.

Yang berhubungan dengan code ditulis


menggunakan courier new 10.

Format penulisannya sesuai ketentuan di


Microsoft Teams / sheet penilaian dengan
catatan TIDAK ADA JUMLAH MAX
HALAMAN, maka dari itu jelaskan sejelas -
jelasnya .

Nama file : Lap0910_XXXX.pdf


XXXX adalah 4 digit NPM.

BATAS PENGUMPULAN : RABU, 21 OKTOBER 2020 23 : 59

Bagi yang bebas laporan kumpul covernya saja 


Tydack kumpul cover walaupun bonus, laporan= 0

KERAPIAN + 5
PENILAIAN LAPORAN

1. Asal – asalan, tidak mencapai minimal 5 kalimat dalam


1 paragraf per nomor, max 50.
2. Hanya menjelaskan ulang soal, max 50.
3. Nama variabel/ penulisan yang berhubungan dengan
code tidak ditulis menggunakan courier new 10, -5 setiap
kesalahan.
4. Tidak justify, -10 per paragraf.
5. Salah format penulisan, -10.
6. Salah format penamaan file, -10.
7. Salah format pengumpulan, -10.

Salah penamaan ,
Seharusnya : Lap0910_XXXX.pdf
Yang dikumpul : Lap08_XXXX.pdf / yang lainnya

Salah format penulisan ,


Seharusnya : courier new 10 untuk code, times new roman untuk penjelasan
Yang dikumpul : times new roman untuk penjelasan & code / font yang lainnya

Salah format pengumpulan ,


Seharusnya : Lap0910_XXXX.pdf
Yang dikumpul : Lap0910_XXXX.docx / yang lainnya

KERAPIAN + 5
MIRIP 100%
WALAUPUN 1 NOMER
SAJA DENGAN
MAHASISWA LAIN
UGD = 0*

*kalau ketauan

Menconteklah dengan cerdas gaes misalnya diganti dikit alias/ nama variabelnya 
Nyari apa gan

U KINDA SUS

KERAPIAN + 5
SCRIPT UNTUK NOMOR 3
CREATE TABLE SalaryManager_xxxx
(
id_pegawai varchar2(12),
salary number(20)
);

SCRIPT UNTUK NOMOR 4

CREATE TABLE RandomPassword_xxxx


(
id_pegawai varchar2(12),
pw varchar2(20)
);

CREATE OR REPLACE PROCEDURE insertTbl


IS
CURSOR curs_xxxx IS SELECT * FROM petugas;
BEGIN
FOR c in curs_xxxx
LOOP
INSERT INTO
RandomPassword_xxxx(id_pegawai, pw)
VALUES(c.id_pegawai,NULL);
END LOOP;
END insertTbl;
/

execute insertTbl;

SELECT * FROM RandomPassword_xxxx;

Ganti XXXX dengan 4 digit NPM kalian

KERAPIAN + 5
“A failure is like fertilizer; it stinks to be sure, but it makes things grow faster in the future.”
Denis Waitley

KERAPIAN + 5

Anda mungkin juga menyukai