Skip to content

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:

  1. buat dua tabel sesuai struktur yang diberikan,
  2. masukkan data sesuai sumber data yang disediakan,
  3. buat function atau procedure sesuai kebutuhan soal,
  4. jalankan function atau procedure untuk menguji hasilnya,
  5. tampilkan hasil sesuai data yang tersedia,
  6. jelaskan secara singkat alasan penggunaan function atau procedure tersebut.

Struktur Tabel

Tabel employee_join

Gunakan struktur kolom berikut:

  • id
  • first_name
  • last_name
  • start_date
  • end_date
  • salary
  • city
  • job_id

Tabel job

Gunakan struktur kolom berikut:

  • job_id
  • title

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	6

Tantangan

Tantangan 1

Buatlah function untuk menampilkan gabungan first_name dan last_name dengan format:

last_name, first_name

Nama 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.