Studi Kasus HRIS 8 — Memisahkan Masalah Aturan dari Masalah Data

Studi Kasus HRIS 8 — Memisahkan Masalah Aturan dari Masalah Data

Kembali ke bagian induk

Contoh penerapan tambahan; data simulasi dan pembahasan mandiri.

Domain Isi
Karyawan Andi, Budi, Citra
Departemen IT, Keuangan
Tanggal 10 Juli, 11 Juli
Predikat Bernilai true tepat untuk
Karyawan(x) Andi, Budi, Citra
MemilikiSisaCuti(x) Andi, Budi
DisetujuiAtasan(x) Andi, Citra
Probation(x) Budi
DisetujuiHRD(x) Tidak ada
BekerjaPada(x,d) (Andi,IT), (Budi,IT), (Citra,Keuangan)
KuotaPenuh(d,t) (IT,11 Juli)
CutiDiproses(x,t) (Andi,10 Juli), (Andi,11 Juli)

Ketentuan sumber: selain tuple yang tercantum, predikat bernilai false. Tidak ada tahun yang diberikan untuk tanggal; 10 Juli dan 11 Juli cukup diperlakukan sebagai dua label objek berbeda.

Aturan yang digunakan

Aturan yang harus dianalisis:

F1=∀x∀d∀t[(Karyawan(x)∧BekerjaPada(x,d)∧MemilikiSisaCuti(x)∧DisetujuiAtasan(x)∧¬KuotaPenuh(d,t)∧(Probation(x)⇒DisetujuiHRD(x)))⇒CutiDiproses(x,t)].F2=∀x(Probation(x)⇒DisetujuiHRD(x)).F3=∀x∀d∀t[(Karyawan(x)∧BekerjaPada(x,d)∧KuotaPenuh(d,t))⇒¬CutiDiproses(x,t)].F4=∃x∃tCutiDiproses(x,t).

Situasi contoh

Kita memisahkan kesalahan aturan dari kesalahan data, lalu memperbaiki model sambil menjaga kejadian cuti yang sah.

Gunakan data Tugas 7 dan aturan F2, F3, F4 di atas. Budi sedang probation tetapi tidak mendapat persetujuan HRD. Cuti Andi pada 11 Juli diproses ketika kuota IT penuh; cutinya pada 10 Juli juga diproses.

Langkah penyelesaian

Petugas menemukan dua kesalahan, lalu bertanya apa yang harus diperbaiki. Menghapus semua data pemrosesan memang dapat menghilangkan pelanggaran kuota, tetapi akan menghilangkan saksi F4 juga. Mengubah simbol saja tidak menyelesaikan catatan Andi yang bertentangan. Kita perlu memeriksa aturan dan data sebagai satu paket, kemudian mempertahankan kejadian yang memang memenuhi syarat.

1. Satisfiable, Contradictory, dan Consistent

Jawaban utama: kumpulan aturan F2,F3,F4 bersama seluruh fakta data asli tidak konsisten. Namun aturan F2,F3,F4 tanpa data yang memaksakan pelanggaran dapat dipenuhi bersama.

Istilah Arti sederhana Penerapan pada kasus
Satisfiable Ada paling sedikit satu interpretasi yang membuat benar F4 dipenuhi oleh data Andi–10 Juli; F2 juga dapat benar pada data lain yang memberi HRD kepada seluruh karyawan probation
Contradictory Tidak ada interpretasi yang membuat kalimat itu benar F2 sendiri bukan contradictory; tetapi konjungsi F2 dengan fakta Budi probation dan Budi tidak disetujui HRD tidak dapat benar
Consistent Ada satu interpretasi yang membuat semua anggota kumpulan benar bersama F2,F3,F4 saja consistent; jika seluruh fakta data asli diwajibkan juga, kumpulannya tidak consistent

Letak pertentangan pertama: data memberi Probation(Budi)=true dan DisetujuiHRD(Budi)=false. Instansiasi F2 pada Budi menuntut persetujuan HRD=true. Jadi model bersama akan dipaksa membuat predikat yang sama true sekaligus false.

Letak pertentangan kedua: data memberi Karyawan(Andi), BekerjaPada(Andi,IT), KuotaPenuh(IT,11 Juli), dan CutiDiproses(Andi,11 Juli), semuanya true. Instansiasi F3 memaksa ¬CutiDiproses(Andi,11 Juli) true. Lagi-lagi satu fakta dan negasinya dipaksa benar bersama.

Pernyataan “selain yang tertulis dianggap false” sangat berpengaruh. Tidak adanya nama Budi di daftar HRD bukan sekadar “belum tahu”; dalam interpretasi soal, itu berarti false. Jika ketentuan ini tidak ada, ketiadaan catatan belum otomatis menjadi negasi fakta.

Model pembanding untuk menunjukkan aturan saja satisfiable: pertahankan domain, pekerjaan, dan kuota; dalam skenario hipotetis terpisah, beri HRD kepada Budi dan proses hanya Andi–10 Juli. F2 benar, F3 benar karena tidak ada pemrosesan saat kuota penuh, dan F4 benar dengan saksi Andi–10 Juli. Dengan demikian F2,F3,F4 bukan kumpulan yang mustahil secara bawaan. Perubahan HRD ini hanya model pembuktian keberadaan, bukan pernyataan bahwa Budi sungguh mendapat izin pada data sumber.

2. Closure — Menentukan Siapa yang Dicakup Aturan

Ambil formula terbuka

H(x,d,t)=[Karyawan(x)∧BekerjaPada(x,d)∧KuotaPenuh(d,t)]⇒¬CutiDiproses(x,t).

Variabel bebasnya x,d,t. Bila petugas hanya menulis H, ia belum menyatakan bahwa larangan berlaku untuk semua karyawan, semua departemen, dan semua tanggal. Universal closure-nya adalah ∀x∀d∀tH(x,d,t), yaitu F3. Semua variabel sudah terikat, sehingga kalimat tertutup.

Existential closure ∃x∃d∃tH(x,d,t) hanya meminta ada satu triple dengan implikasi benar. Satu triple tanpa kuota penuh saja sudah dapat memenuhinya; ini terlalu lemah untuk memastikan larangan berlaku di seluruh sistem. F2,F3,F4 pada soal sudah tertutup; menutupnya lagi tidak menambahkan pemeriksaan baru. Closure tidak menghapus fakta yang melanggar aturan.

3. Substitusi Aman — Mengganti Objek Tanpa Mengubah Cakupan

Untuk memeriksa pelanggaran F3, ambil H(x,d,t) yang terbuka lalu ganti x←Andi, d←IT, t←11 Juli. Hasilnya H(Andi,IT,11 Juli). Ketiga pengganti adalah konstanta yang cocok jenis objeknya dan tidak mempunyai variabel bebas, sehingga tidak tertangkap kuantifier.

Secara lengkap langkah ini adalah instansiasi universal F3, yang menggunakan penggantian aman pada bagian H. Jangan sekadar mengganti tulisan x pada kalimat tertutup ∀x∀d∀tH dan mengira pemunculan terikat x adalah pemunculan bebas yang boleh diganti oleh operator substitusi bebas.

Penjelasan tambahan tentang renaming. Untuk melihat bahaya penangkapan variabel, pakai dua predikat ilustrasi: AtasanDari(y,x), berarti y atasan x; Menyetujui(y,x), berarti y menyetujui pengajuan x. Keduanya khusus untuk menjelaskan teknik, bukan tambahan data sesi 7.

Φ(x)=∀y(AtasanDari(y,x)⇒Menyetujui(y,x)).

x adalah karyawan yang sedang dibahas; y berjalan di antara orang-orang yang menjadi atasannya. Jika x hendak diganti variabel y, penggantian langsung menghasilkan ∀y(AtasanDari(y,y)⇒Menyetujui(y,y)). y yang baru masuk menjadi terikat dan artinya berubah menjadi hubungan seseorang dengan dirinya sendiri.

Cara aman: rename pengikat y menjadi z yang segar dahulu, lalu ganti x dengan y:

∀z(AtasanDari(z,x)⇒Menyetujui(z,x)),Φ[y/x]=∀z(AtasanDari(z,y)⇒Menyetujui(z,y)).

y pengganti sekarang tetap bebas; z tetap menunjuk orang yang diperiksa sebagai atasan. Teknik ini menjaga makna penggantian. Ia tidak otomatis membuat data sumber konsisten: keamanan substitusi dan kebenaran kebijakan merupakan pemeriksaan berbeda.

4. Usulan Perbaikan Aturan dan Data

Kita memilih penafsiran kebijakan persetujuan HRD diwajibkan ketika pengajuan probation diproses. Karena itu, rumus F2 yang semula terlalu luas diganti secara eksplisit dengan

F2baru=∀x∀t[(CutiDiproses(x,t)∧Probation(x))⇒DisetujuiHRD(x)].

Budi tidak harus diberi persetujuan fiktif. Selama belum disetujui HRD, pengajuannya tidak boleh diproses. Jika perusahaan memang menghendaki F2 lama berlaku bagi semua karyawan probation tanpa mengaitkan pengajuan, F2 lama tidak boleh dianggap terpenuhi pada data Budi saat ini; diperlukan perubahan kebijakan atau persetujuan nyata yang kemudian dicatat.

Tambahkan arah yang sebelumnya belum ada: semua keputusan pemrosesan harus memenuhi syarat. Dengan jenis variabel yang telah ditetapkan:

∀x∀t[CutiDiproses(x,t)⇒∃dL(x,d,t)].

Artinya, bila cuti diproses, harus ada departemen tempat karyawan itu bekerja yang memenuhi syarat L. Untuk data kasus, setiap karyawan mempunyai tepat satu departemen. Asumsi model perbaikan: gunakan satu departemen penanggung jawab per pengajuan; bila boleh lebih dari satu, tentukan kebijakan kuota departemen mana yang berlaku. Tanpa penegasan itu, “ada satu departemen yang layak” belum memastikan seluruh pembatas beberapa departemen dipatuhi.

Pertahankan F1 sebagai arah syarat cukup dan F3 sebagai larangan kuota. Bila perusahaan menghendaki gerbang yang sepenuhnya ditentukan oleh syarat ini, tanpa penundaan atau jalur pengecualian lain, dua arah tersebut boleh diringkas menjadi

∀x∀t[CutiDiproses(x,t)⇔∃dL(x,d,t)].

Ini usulan kebijakan yang diperjelas, bukan konsekuensi yang sudah diberikan oleh F1 lama. F4 tetap hanya pernyataan bahwa pada data ini ada pemrosesan; sistem tidak harus memaksakan F4 pada setiap hari ketika mungkin tidak ada satu pun pengajuan layak.

Perbaikan catatan kasus: dalam skenario koreksi, hapus pasangan (Andi,11 Juli) dari relasi CutiDiproses karena kuota IT tanggal itu penuh. Pertahankan (Andi,10 Juli). Data lainnya, termasuk HRD Budi=false, tetap. Ini usulan koreksi model.

Kasus setelah koreksi Keputusan dan alasan
Andi–10 Juli Diproses: saldo ada, atasan setuju, kuota belum penuh, tidak probation
Andi–11 Juli Tidak diproses: kuota IT penuh
Budi–kedua tanggal Tidak diproses: atasan belum setuju dan syarat HRD probation belum terpenuhi; pada 11 Juli kuota juga penuh
Citra–kedua tanggal Tidak diproses: sisa cuti tidak ada

Pemeriksaan hasil usulan: hanya Andi–10 Juli memenuhi ∃dL(x,d,t) dan hanya pasangan itu yang diproses. Jadi arah cukup dan arah perlu sama-sama terpenuhi. F2baru benar karena tidak ada cuti probation tanpa HRD yang diproses; F3 benar karena tidak ada pemrosesan pada kuota penuh; F4 tetap benar dengan saksi Andi–10 Juli. F2 lama tetap salah jika dinilai pada data koreksi ini, sehingga harus disebut sebagai aturan yang diganti, bukan diam-diam dilaporkan telah lulus.

Urutan berpikir delapan sesi kini tersambung: tulis arti simbol, tentukan nilai, temukan contoh gagal, buktikan kesimpulan dari premis, perbarui bagian aturan, sebut objeknya, periksa semua data, lalu perbaiki kebijakan dan catatan yang memang bertentangan.

Lanjut belajar