Soal Tantangan
Pada bagian ini, mahasiswa diminta menyusun stored function dan stored procedure secara mandiri untuk menunjukkan pemahaman terhadap penggunaan stored routine pada MySQL. Tantangan ini tidak lagi hanya mengikuti langkah percobaan yang sudah tersedia pada aktivitas praktikum, tetapi menuntut mahasiswa membaca kebutuhan proses, mengenali routine yang tepat, lalu menuliskan definisi function atau procedure yang sesuai.
Agar jawaban lebih konsisten, gunakan dua tabel berikut:
- tabel
employee_join, - tabel
job.
Gunakan struktur dan data yang sudah ditentukan pada modul ini.
Petunjuk Umum
Kerjakan tantangan ini dengan format berikut:
- buat dua tabel sesuai struktur yang diberikan,
- masukkan data sesuai sumber data yang disediakan,
- buat function atau procedure sesuai kebutuhan soal,
- jalankan function atau procedure untuk menguji hasilnya,
- tampilkan hasil sesuai data yang tersedia,
- jelaskan secara singkat alasan penggunaan function atau procedure tersebut.
Struktur Tabel
Tabel employee_join
Gunakan struktur kolom berikut:
idfirst_namelast_namestart_dateend_datesalarycityjob_id
Tabel job
Gunakan struktur kolom berikut:
job_idtitle
Sumber Data
Data berikut digunakan sebagai file sumber impor menggunakan LOAD DATA.
1 Jason Martin 1996-07-25 2006-07-25 1235.56 Toronto 1
2 Alison Mathews 1976-03-21 1986-02-21 6662.78 Vancouver 2
3 James Smith 1978-12-12 1990-03-15 6545.78 Vancouver 2
4 Celia Rice 1982-10-24 1999-04-21 2345.78 Vancouver 3
5 Robert Black 1984-01-15 1998-08-08 2335.78 Vancouver 2
6 Linda Green 1987-07-30 1996-01-04 4323.78 New York 2
7 David Larry 1990-12-31 1998-02-12 7898.78 New York 3
8 James Cat 1996-09-17 2002-04-15 1233.78 Vancouver 2
10 Hercule Poirot 1973-05-23 2001-08-09 4313.98 Brussels 5
11 Lincoln Rhyme 1999-05-25 2011-07-13 3213.98 New York 6Tantangan
Tantangan 1
Buatlah function untuk menampilkan gabungan first_name dan last_name dengan format:
last_name, first_nameNama function yang digunakan adalah revName.
Contoh output yang diharapkan:
+-------------------------------+
| revName(first_name,last_name) |
+-------------------------------+
| Martin, Jason |
| Mathews, Alison |
| Smith, James |
| Rice, Celia |
| Black, Robert |
| Green, Linda |
| Larry, David |
| Cat, James |
| Poirot, Hercule |
| Rhyme, Lincoln |
+-------------------------------+Tantangan 2
Buatlah procedure untuk menampilkan first_name, last_name, dan job_description berdasarkan masukan sebuah id employee.
Nama procedure yang digunakan adalah empJob.
Contoh output yang diharapkan:
mysql> CALL empJob(4);
+------------+-----------+---------+
| first_name | last_name | title |
+------------+-----------+---------+
| Celia | Rice | Manager |
+------------+-----------+---------+mysql> CALL empJob(2);
+------------+-----------+--------+
| first_name | last_name | title |
+------------+-----------+--------+
| Alison | Mathews | Tester |
+------------+-----------+--------+Hal yang Harus Ditunjukkan
- struktur tabel yang digunakan,
- data contoh yang dimasukkan,
- definisi function
revName, - definisi procedure
empJob, - hasil pemanggilan function,
- hasil pemanggilan procedure,
- penjelasan singkat mengapa function dan procedure tersebut sesuai.
Arah Analisis
Pada tantangan ini, mahasiswa diharapkan mampu menunjukkan perbedaan penggunaan function dan procedure. Function digunakan ketika yang dibutuhkan adalah nilai hasil tertentu yang dapat dipanggil langsung di dalam query, sedangkan procedure digunakan ketika ingin menjalankan proses tertentu dan menampilkan hasil melalui CALL.
Penutup
Soal tantangan ini dirancang untuk melatih kemampuan mahasiswa dalam menyusun stored function dan stored procedure secara lebih mandiri dan terarah. Melalui tantangan ini, mahasiswa tidak hanya berlatih menulis routine, tetapi juga belajar membedakan kapan menggunakan function dan kapan menggunakan procedure berdasarkan kebutuhan proses dan hasil yang ingin diperoleh.