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 :
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 :
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.
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
KERAPIAN + 5
BONUS PENGUMPULAN
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.
KERAPIAN + 5
KETENTUAN LAPORAN
KERAPIAN + 5
PENILAIAN LAPORAN
Salah penamaan ,
Seharusnya : Lap0910_XXXX.pdf
Yang dikumpul : Lap08_XXXX.pdf / 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)
);
execute insertTbl;
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