Contoh Pengerjaan Soal UKK SMK RPL Paket 2 Tahun 2023

Contoh Pengerjaan Soal UKK SMK RPL Paket 2 Tahun 2023

Persiapan Pembuatan Database

Jika dulu kita terbiasa membuat tabel-tabel (dan objek database lainnya) di MySQL melalui phpMyAdmin, maka Laravel menyediakan fitur Database Migrations untuk berbagai kemudahan dan fleksibilitas, selain tentunya untuk alasan kepraktisan dan portabilitas, karena Laravel Migrations mengotomasi pembuatan database sekaligus relasi antar tabel dengan sintaks yang relatif ringkas. Namun sebelum membuat migration, akan kita lakukan revisi/modifikasi pada struktur database yang ada pada soal UKK P2, sehingga lebih ringkas, usable, dan mendekati kesesuaian dengan konvensi yang ada di Laravel Models. Pada soal UKK P2, berikut ini adalah struktur database yang disarankan (beserta keterangan bahwa database dapat disesuaikan):

Jika kita amati, ada beberapa hal yang bisa kita optimalkan dari struktur database tersebut tanpa mengurangi fungsionalitasnya, sekaligus mengintegrasikannya dengan mekanisme autentikasi Laravel UI yang akan kita gunakan:

  • Tabel petugas dan masyarakat sebenarnya memiliki banyak kemiripan, secara umum hanya berbeda pada keberadaan kolom nik dan level. Dengan menambahkan kolom nik dan level pada tabel users milik laravel UI, serta menambahkan level baru sebagai “masyarakat” sekaligus menjadi default value bagi level, maka tabel users sudah dapat mewakili tabel petugas dan masyarakat, karena bagaimanapun keduanya adalah pengguna sistem yang memerlukan akses ke aplikasi.
  • Karena tabel masyarakat dilebur ke tabel users, sedangkan tabel users menggunakan primary key berupa id (bigint, auto increment, khas Laravel), maka foreign key pada tabel pengaduan yang tadinya berupa nik, dapat kita ganti menjadi user_id.
  • Semua primary key untuk tabel pengaduan dan tanggapan, kita ganti dengan id sesuai konvensi Laravel, cukup kolom id saja.
  • Foreign key untuk pengaduan yang diberikan tanggapan, kita ganti dengan pengaduan_id, berelasi dengan tabel pengaduan.
  • Foreign key untuk petugas yang memberikan tanggapan, kita ganti dengan petugas_id, berelasi dengan tabel users.
  • Nama tabel pengaduan dan tanggapan tidak disesuaikan menggunakan konvensi Laravel menjadi pengaduans dan tanggapans, namun dipertahankan dengan menambahkan setting property $table pada Model nantinya.
  • Timestamp khas Laravel digunakan, namun meski demikian, field tgl_pengaduan dan tgl_tanggapan tetap dipertahankan.

Hasilnya, aplikasi hanya akan memiliki tabel-tabel bawaan Laravel UI ditambah dengan tabel pengaduan dan tanggapan, sehingga secara umum jika nantinya tabel failed_jobs, migrations, password_resets, dan personal_access_tokens kita sembunyikan, strukturnya akan menjadi:

pdm-revisi-laravel

Leave a Reply

Your email address will not be published. Required fields are marked *