menurutku jika menggunakan tabel yang kamu buat, tidak
akan diketahu pastinya pegawai A bekerja dalam
sebulan, kenapa? karena hampir dipastikan bahwa dalam
satu bulan itu ada kalender merahnya/libur bukan?
apalagi jam lembur, sudah pasti tidak diketahui...
jadi coba rubah metodenya dengan bentuk logika sebagai
berikut:
TabelL
1. TabelPegawai (kolomnya apa aja apaaja yang
dibutuhkan, yang penting ID untuk link ke tabel 2)
2. TabelKerja (berisikan seluruh tanggal dalam setahun
(biasanya isi data tanggal digenerete oleh program
sewaktu awal tahun, isian tanggal fix, misal
20-05-2007) jadi isi data langsung diisi tanggal untuk
semua pegawai dalam waktu setahun.
kolomnya:
idtgl; tgl; kodelibur; idpegawai; jammasukkerja;
jamkeluarkerja; jammasukpegawai; jamkeluarpegawai;
selisihjamkerja; kolom lain yang diperlukan
kodelembur nilainya 0 (tidak libur), 1 (libur) : isian
pada kolom ini diisi oleh bagian kepegawaian, buat
program yang dapat mendukung memasukkan tanggal sekali
banyak, agar memudahkan petugasnya.
jika hari libur/tgl merah/hari minggu kodenya diisi 1,
jadi didalm setahun harus lebih dari 60 hari yang
libur.
jammasukkerja/jamkeluarkerja : diisi oleh bagian
kepegawaian pertama sekali, ini untuk membedakan
jika hari senin masuk jam8, sabtu masuk jam 9, jam
keluar juga bisa berbeda, senin jam 4, sabtu jam 2.
jammasukpegawai/jamkeluarpegawai isinya ya jam
masuk/keluar pegawai, jika dihubungkan dgn program
sidik jari, isiannya otomtis oleh program. Jika
pegawai tidak masuk, isian default kolom ini 00:00:00
atau bisa juga null.
selisihjamkerja diisi oleh bagian kepegawaian, sewaktu
membuat rekapitulasi perbulan. nilanya diambil dari
selisihjamkerjamasuk/keluar dikurang selisi
jammasuk/keluarpegawai. (misalnya jam kerja 08.00 s/d
17.00, berarti jam kerja selama 9 jam sehari, pegawai
tersebut masuk jam 09.00 dan pulang jam 16.00 berarti
pegawai tersebut bekerja selama 7 jam. Berarti nilai
kolom selisihjamkerja = 2 (diambil dari 9-7). jika
makin banyak berarti berarti pegawainya makin telat
datangnya, nilai 2 ini digunakan untuk mengurangi
gaji pegawai, jika sistem gaji di tempat kamu
menggunakan pengurangan gaji jika telat.
3. TabelLembur (berisikan data tanggal lembur, isi
data diisi oleh bagian kepegawian sewaktu ada
pelaksanaan lembur. Jika perusahaan kamu menerapkan
lembur setiap hari kerja, ya gunakan metode pengisian
tabelkerja diatas.
kolomnya:
idtgl; tgl; kodelibur; idpegawai; jammasuklembur;
jamkeluarlembur (maximalnya); jammasukpegawai;
jamkeluarpegawai; lamajamlembur ; selisihjamlembur;
kolom lain yang diperlukan
cara pengisian nya sama dengan tabelkerja diatas,
dengan sedikit perubahan konsep, dimana jamkeluar
lembur diisi oleh pegawai bersangkutan sewaktu
absensi.
dengan ketiga tabel diatas (minimal) kamu bisa mencari
:
1. data hari kerja pegawai dengan interval waktu
perminggu/bulan/tahun
select * from tabelkerja where tgl between tglawal and
tglakhir and jammasukkerja <> null/"00:00:00" and
idpegawai = id
untuk jam lembur juga, dan kamu bisa memanipulasi data
yang disimpan didalam ketiga tabel tersebut sesuai
kebutuhanmu.
Semoga membantu: =(oVo)=
====================
BaceInside Publisher
Copyright @2007
Not for reproduced, republished.
Thank You
====================
____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for
today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow