(STUDI KASUS: STEI SEBI)
TUGAS AKHIR
Diajukan Sebagai Salah Satu Syarat Untuk Menempuh Sidang Sarjana Strata-1
Pada Program Studi Teknik Elektro Konsentrasi Teknik Informatika
Disusun Oleh:
INDRA SUPRIATNA NIM
PROGRAM STUDI TEKNIK ELEKTRO KONSENTRASI TEKNIK INFORMATIKA
LEMBAR PENGESAHAN
Tugas Akhir Dengan Judul:
RANCANG BANGUN SISTEM PRESENSI KARYAWAN MENGGUNAKAN VISUAL BASIC 2010 DAN MYSQL 5
(STUDI KASUS: STEI SEBI)
Karawang, Februari 2013
Telah disetujui dan disahkan oleh:
Ketua Sidang
( Dr. Ir. M. Budi Djatmiko, M.Si. )
Penguji I Penguji II
( Dr. Ir. Eka Purwanda, M.Si. ) ( Hari Fajar, S.Kom )
Pembimbing I Pembimbing II
( Indra Gumelar, S.Si., M.T. ) (Muhammad Syafiuddin Usman, S.T. )
Ketua Program Studi
i
KATA PENGANTAR
Puji syukur penulis panjatkan atas kehadirat Illahi Rabbi yang atas rahmat,
hidayah serta innayah-Nya-lah sehingga pada akhirnya penulis dapat
menyelesaikan skripsi yang berjudul “Rancang Bangun Sistem Presensi Karyawan Menggunakan Visual Basic 2010 dan MySQL 5 (Studi Kasus: STEI SEBI)“ ini dengan baik.
Tak pelak dalam proses penyusunan skripsi ini banyak pula pihak yang terlibat
serta memberi banyak dukungan, bimbingan dan do’anya hingga tak berkendak
kacang lupa akan kulitnya, maka melalui lembar ini ingin pula penulis sampaikan
ucapan dan rasa terima kasih yang tulus kepada:
1. Bapak Muhammad Syafiuddin Usman, ST., selaku Dosen
Pembimbing yang telah memberi banyak masukan berdasarkan
pengalaman nyata selama proses bimbingan yang penulis jalani
2. Bapak Ir. Pontjo Roebiarko, M.Sc., yang telah meluangkan banyak
waktu untuk membantu penulis menyelesaikan segala keperluan
penyelesaian skripsi
3. Bapak Mulyadi, SEI., selaku bagian SDI beserta jajaran staf STEI
SEBI yang telah memberi banyak masukan dalam pembuatan aplikasi
dalam karya tulis ini
4. Kang Aria, haturnuhun buat bantuannya yang seringkali dibajak
ii
5. Yoni Malinda, sang Hudan tercinta, yang acap kali memberi perhatian
dan dukungannya untuk optimisme kehidupan penulis
6. Ibunda serta Ayahanda yang tak henti-hentinya mendo’a-kan penulis
agar menjadi orang yang bermanfaat
7. Pihak-pihak yang tak dapat penulis sebutkan satu per satu yang telah
turut serta merealisasikan terselesaikannya skripsi ini
Akhir kata penulis berharap bahwa skripsi ini bisa bermanfaat bagi kegiatan
civitas akademika STT Texmaco pada khususnya, serta khalayak ramai pada
umumnya.
Depok, Desember 2012
iii
ABSTRAKSI
NAMA : Indra Supriatna
NIM :
JUDUL : Rancang Bangun Sistem Presensi Karyawan Menggunakan Visual Basic 2010 Dan MySQL 5 (Studi Kasus: STEI SEBI)
Kebutuhan pengelolaan informasi mengenai kehadiran karyawan dalam sebuah instansi mutlak dibutuhkan sebagai alat analisa pegawai terhadap komitmen pekerjaan di lapangan.
Seiring perkembangan teknologi informasi, maka perlu dibangun sistem presensi terkomputerisasi yang bertujuan untuk mempermudah pencatatan jumlah kehadiran dan menggantikan proses pencatatan manual.
Dengan memanfaatkan Visual Basic sebagai bahasa pemrograman serta MySQL sebagai basisdata, maka dibuatlah suatu aplikasi yang diharapkan dapat membantu mempermudah proses kalkulasi presensi karyawan di sebuah institusi secara cepat dan informatif.
iv
ABSTRACT
NAMA : Indra Supriatna
NIM :
JUDUL : Design of Employee Presence System Using Visual Basic 2010 and MySQL 5 (Case Study: STEI SEBI)
Information management needs regarding employee attendance within an institution is absolutely necessary as a means of analyzing the commitment of employees working in the field.
Along with the development of information technology it is necessary to build a computerized attendance system that aims to facilitate attendance and replace the manual procedure.
By utilizing the Visual Basic as programming language and MySQL as the database to create an application that is expected to help ease the process of calculating employee attendance at an institution, quickly and informatively.
v DAFTAR ISI
KATA PENGANTAR ... i
ABSTRAKSI ... iii
ABSTRACT ... iv
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Batasan Masalah... 2
1.4 Sistematika Penulisan ... 2
BAB II LANDASAN TEORI ... 4
2.1 Pengertian Presensi ... 4
2.2 Pengertian Aplikasi ... 5
2.3 Pengertian Sistem ... 5
2.4 Pengertian Data dan Informasi ... 8
2.5 Pengertian Sistem Informasi ... 10
2.6 Visual Basic ... 10
2.7 MySQL ... 12
2.8 Alat Analisis ... 12
vi
2.8.2 Diagram Alir Dokumen (Flow Map) ... 14
2.8.3 UML (Unified Modelling Language) ... 15
2.8.3.1 Tujuan UML ... 16
2.8.3.2 Notasi UML ... 16
2.8.3.2.1 Actor ... 16
2.8.3.2.2 Use Case ... 17
2.8.3.2.3 Interaction ... 18
2.8.3.2.4 Dependency ... 18
2.8.3.2.5 Association ... 19
2.8.3.2.6 Generalization ... 19
2.8.3.2.7 Realization ... 20
2.8.3.2.8 Use Case Diagram ... 20
2.8.3.2.9 Sequence Diagram ... 21
2.8.4 Entity Relationship Diagram (ERD) ... 22
BAB III PEMBAHASAN ... 23
3.1 Analisis Sistem Berjalan ... 23
3.1.2 Deskripsi Sistem Berjalan ... 23
3.1.3 Flow map ... 24
3.1.4 Penilaian Terhadap Sistem Berjalan ... 25
3.1.4.1 Data ... 26
3.1.4.2 Informasi ... 28
3.2 Perancangan Sistem Baru ... 31
vii
3.2.2 ERD ... 34
3.2.3 Relasi Tabel ... 35
3.2.4 Antarmuka ... 35
3.2.4.1 Input ... 35
3.2.4.2 Output ... 37
3.2.5 Kodifikasi ... 38
3.2.6 Flowchart yang diusulkan ... 39
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 43
4.1 Implementasi ... 43
4.1.1 Antarmuka ... 43
4.1.2 Perangkat keras yang digunakan ... 45
4.2 Pengujian ... 46
4.2.1 Koneksi basisdata ... 46
4.2.2 Presensi dan login ... 47
BAB V PENUTUP ... 49
5.1 Simpulan ... 49
5.2 Saran ... 49
DAFTAR PUSTAKA ... 51
viii
DAFTAR GAMBAR
Gambar 2.1 Karakteristik Sistem ... 8
Gambar 2.2 Sisklus Pengolahan Data ... 9
Gambar 2.3 System Development Life Cycle ... 14
Gambar 2.4 Notasi Actor... 16
Gambar 2.5 Notasi Use Case ... 17
Gambar 2.6 Notasi Interaction ... 18
Gambar 2.7 Contoh Notasi Include Dependency ... 19
Gambar 2.8 Notasi Association ... 19
Gambar 2.9 Notasi Generalization ... 19
Gambar 2.10 Notasi Realization ... 20
Gambar 2.11 Contoh Use Case Diagram ... 21
Gambar 2.12 Sequence Diagram ... 21
Gambar 3.1 Flow map sistem berjalan ... 25
Gambar 3.2 Use Case Diagram yang diusulkan ... 31
Gambar 3.3 Sequence Diagram Karyawan ... 32
Gambar 3.4 Sequence Diagram Admin SDM ... 33
Gambar 3.5 Sequence Diagram Superuser ... 33
Gambar 3.6 Diagram ERD ... 34
Gambar 3.7 Relasi Tabel ... 35
ix
Gambar 3.9 Informasi Presensi ... 36
Gambar 3.10 Informasi Pribadi ... 36
Gambar 3.11 Ubah PIN ... 37
Gambar 3.12 Peringatan dan pesan kesalahan ... 37
Gambar 3.13 Rekapitulasi Presensi per periode tertentu ... 37
Gambar 3.14 Rekapitulasi Presensi tiap karyawan per periode tertentu ... 38
Gambar 3.15 Flowchart presensi ... 39
Gambar 3.16 Flowchart perbarui alasan keterlambatan dan pulang cepat ... 40
Gambar 3.17 Flowchart Admin SDM ... 41
Gambar 3.18 Flowchart Superuser ... 42
Gambar 4.1 Presensi Karyawan ... 43
Gambar 4.2 Informasi Presensi ... 44
Gambar 4.3 Informasi Pribadi ... 44
Gambar 4.4 Ubah PIN ... 45
Gambar 4.5 Peringatan dan pesan kesalahan ... 45
Gambar 4.6 Gagal terhubung ke basisdata ... 46
Gambar 4.7 Proses Presensi ... 47
Gambar 4.8 Proses login ketika kolom ID dan atau PIN dikosongkan ... 47
x
DAFTAR TABEL
Tabel 2.1 Simbol Diagram Alir Dokumen ... 15
Tabel 2.2 Notasi ERD ... 22
Tabel 3.1 Analisis Data Presensi ... 26
Tabel 3.2 Pengembangan Data Presensi – Tabel Karyawan ... 27
Tabel 3.3 Pengembangan Data Presensi – Tabel Presensi ... 27
Tabel 3.4 Output aplikasi presensi yang sedang berjalan ... 28
Tabel 3.5 Rekapitulasi Presensi Global ... 29
1
BAB I
PENDAHULUAN
1.1Latar Belakang
STEI SEBI merupakan sebuah institusi pendidikan yang mengususkan diri pada
pengembangan sistem ekonomi Islam dan didukung oleh 27 orang karyawan
dalam kegiatan operasionalnya. Dalam pengelolaan data kehadiran karyawan,
institusi ini masih mengolah data secara manual dikarenakan terbatasnya fitur
laporan rekapitulasi kehadiran yang ada pada aplikasi presensi yang selama ini
dipakai. Kendala lain yang dihadapi adalah hak akses untuk membuat laporan
presensi hanya ada pada satu akun sehingga segala keperluan pembuatan laporan
akan sangat bergantung kepada pemilik akun yang bersangkutan, oleh karena itu
perlu dikembangkannya sebuah sistem yang mampu mengakomodir kebutuhan
pengolahan data sekaligus pusat informasi karyawan STEI SEBI.
Untuk pengolahan basisdata, dalam pengembangan sistem yang sudah berjalan
dan dengan mempertimbangkan fleksibilitas jangka panjang, maka dipilihlah
MySQL yang merupakan salah satu database server yang sangat powerfull, cepat,
dan dapat diimplementasikan dalam berbagai macam jenis database (Wahana
Komputer, 2011). Saat ini, MySQL 5 merupakan versi terbaru dari MySQL yang
Merujuk pada uraian di atas, penulis menetapkan “Rancang Bangun Sistem
Presensi Karyawan Menggunakan Visual Basic 2010 dan MySQL 5 (Studi Kasus:
STEI SEBI)“ sebagai judul skripsi yang dibuat.
1.2Rumusan Masalah
1. Bagaimana merancang dan membangun aplikasi presensi sehingga dapat
dijadikan sebagai sentra informasi kehadiran karyawan yang mampu
mengalkulasi jumlah kehadiran secara otomatis dan periodik.
2. Bagaimana menangani keterbatasan hak akses agar pembuatan laporan
presensi karyawan untuk periode tertentu tidak tergantung kepada satu akun.
1.3Batasan Masalah
1. Dengan mempertimbangkan efisiensi anggaran institusi, maka aplikasi yang
akan dibangun tidak dilengkapi dengan perangkat sensor (fingerprint,
barcode-reader, dan lainnya).
2. Fokus pengembangan aplikasi dibatasi pada pengolahan data presensi
dengan hasil akhir berupa rekapitulasi kehadiran karyawan periode tertentu
dan tidak mencakup penghitungan penggajian karyawan.
3. Terdapat toleransi penitipan presensi dalam rangka tugas institusi.
1.4Sistematika Penulisan
Skripsi ini disusun secara sistematis ke dalam beberapa bab, antara lain:
Bab ini berisi penjelasan mengenai latar belakang, rumusan masalah, batasan
masalah, tujuan, dan metodologi penelitian secara menyeluruh.
2. BAB II Landasan Teori
Bab ini mengurai dasar teori dan perangkat analisa yang dipergunakan.
3. BAB III Pembahasan
Bab ini menjelaskan mengenai sistem presensi yang berjalan, analisa
permasalahan dan perancangan sistem yang akan diimplementasikan.
4. BAB IV Implementasi
Bab ini membahas mengenai implementasi dari desain sistem yang
dikembangankan.
5. Bab V Simpulan dan Saran
4
BAB II
LANDASAN TEORI
2.1Pengertian Presensi
Adanya kesalahpahaman penggunaan istilah kehadiran dan ketidakhadiran yang
beredar di masyarakat menyebabkan perlunya bagi penulis menjelaskan
perbedaan istilah yang sesungguhnya.
1. Presensi
Menurut Kamus Besar Bahasa Indonesia yang dikutip (Yayasan Lembaga Sabda),
presensi didefinisikan sebagai pre-sen-si /présénsi/ n kehadiran.
2. Absensi
(Yayasan Lembaga Sabda), dari Kamus Besar Bahasa Indonesia, absensi memiliki
pengertian ab-sen-si /absénsi/ n ketidakhadiran.
(Panggabean, 2002), Definisi ketidakhadiran (absenteism) adalah kegagalan
untuk melapor pada waktu kerja. Dengan kata lain ketidakhadiran merupakan
kegagalan seorang karyawan untuk hadir di tempat kerja pada hari kerja.
Ketidakhadiran berbeda dengan terlambat (lateness) atau lamban (tardiness)
yang menunjukkan kegagalan untuk datang tepat waktu.
Dari penjelasan diatas dapat disimpulkan bahwa penggunaan istilah yang benar
adalah kata “presensi” yang mengandung pemahaman sebagai satu bentuk
kehadiran seseorang di sebuah tempat untuk memenuhi kewajibannya.
1. Presensi Manual
Sistem ini dalam proses pendataannya masih menggunakan tulisan tangan (tanda
tangan).
2. Presensi Otomatis
Sistem ini dalam proses pendataannya sudah menggunakan alat bantu
terkomputerisasi. Untuk sebagian institusi yang memiliki jumlah karyawan
berskala besar, beberapa diantaranya sudah menggunakan barcode reader, finger
print, bahkan retinal-scan sebagai alat penunjang efektifitas kinerja perusahaan
(Irawan, 2012).
2.2Pengertian Aplikasi
Menurut (Dhanta, 2009), aplikasi (application) adalah software yang dibuat oleh
suatu perusahaan komputer untuk mengerjakan tugas-tugas tertentu.
2.3Pengertian Sistem
(Jogiyanto, Analisis dan Desain Sistem Informasi: Pendekatan Terstruktur Teori
dan Praktek Aplikasi Bisnis, 2005) mengurai definisi sistem menjadi dua
pendekatan, yaitu:
1. Berdasarkan prosedur
Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling
berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau
untuk menyelesaikan suatu sasaran tertentu.
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai
tujuan tertentu.
Dijelaskan pula bahwa terdapat delapan karakteristik dalam sistem, yaitu:
1. Komponen (component)
Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, bekerja
sama membentuk satu kesatuan. Setiap komponen mempunyai sifat-sifat dari
sistem untuk menjalankan suatu fungsi tertentu dan mempengaruhi proses sistem
secara keseluruhan.
2. Batasan (boundary)
Merupakan daerah yang membatasi antara suatu sistem dengan sistem yang
lainnya atau dengan lingkungan luarnya. Batas sistem dapat dipandang sebagai
satu kesatuan dan menunjukkan ruang lingkup dari sistem tersebut.
3. Lingkungan luar (environment)
Segala sesuatu yang berada di luar batas dari sistem yang mempengaruhi operasi
sistem dapat dikatakan sebagai lingkungan luar. Lingkungan luar dapat bersifat
menguntungkan yang memberikan energi pada sistem sehingga harus selalu dijaga
dan dipelihara. Selain itu lingkungan luar juga dapat merugikan sistem. Untuk
dapat mempertahankan kelangsungan hidup sistem, maka lingkungan yang seperti
ini harus dapat dikendalikan.
4. Penghubung (interface)
Merupakan media penghubung antara sub-sistem dengan sub-sistem lainnya.
Melalui penghubung sumber-sumber daya dapat mengalir dari sistem ke
5. Masukan (input)
Masukan adalah energi yang dimasukkan ke dalam sistem, dapat berupa masukan
perawatan dan masukan signal. Masukan perawatan (maintenance input) adalah
energi yang dimasukkan agar sistem tersebut dapat beroperasi. Masukan sinyal
(signal input) adalah energi yang diproses untuk mendapatkan keluaran.
6. Keluaran (output)
Keluaran adalah hasil dari energi yang diolah dan diklasifikasikan menjadi
keluaran yang berguna dan sisa pembuangan. Keluaran dapat merupakan masukan
untuk sub-sistem yang lain atau kepada supra sistem.
7. Pengolahan (processing)
Suatu sistem mempunyai suatu bagian pengolah yang dapat mengubah masukan
menjadi keluaran.
8. Sasaran (objective) atau tujuan (goal)
Sistem memiliki sasaran (objective) atau tujuan (goal) yang akan menentukan
masukan yang dibutuhkan dan keluaran yang dihasilkan sistem. Suatu sistem
Gambar 2.1 Karakteristik Sistem
Sumber: (Jogiyanto, Analisis dan Desain Sistem Informasi: Pendekatan
Terstruktur Teori dan Praktek Aplikasi Bisnis, 2005)
2.4Pengertian Data dan Informasi
Menurut (Jogiyanto, Pengenalan Komputer: Dasar Ilmu Komputer, Pemrograman,
Sistem Informasi dan Intelegensi Buatan, 1993) data adalah kumpulan kejadian
yang diangkat dari suatu kenyataan. Data dapat berupa angka-angka, huruf-huruf
atau simbol-simbol khusus atau gabungan darinya. Data mentah masih belum bisa
berceritera banyak, sehingga perlu diolah lebih lanjut. Pengolahan data adalah
suatu informasi. Informasi adalah hasil dari kegiatan pengolahan data yang
memberikan bentuk yang lebih berarti dari suatu kejadian.
Suatu proses pengolahan data terdiri dari 3 tahapan dasar yang disebut dengan
siklus pengolahan data (data processing cycle), yaitu masukan (input), proses
(process) dan keluaran (output).
Gambar 2.2 Sisklus Pengolahan Data
Sumber: (Jogiyanto, Pengenalan Komputer: Dasar Ilmu Komputer, Pemrograman,
Sistem Informasi dan Intelegensi Buatan, 1993)
Dalam lingkup sistem informasi, informasi memiliki beberapa karakteristik.
Menurut (Romney & Steinbart, 2006), karakteristik informasi yang berguna
adalah sebagai berikut:
1. Relevan
Informasi adalah relevan jika informasi itu mengurangi ketidakpastian,
meningkatkan kemampuan pembuat keputusan untuk membuat prediksi, atau
konfirmasi, atau membenarkan dugaan mereka sebelumnya.
2. Dapat dipercaya
Informasi dapat dipercaya jika informasi tersebut bebas dari kesalahan dan secara
akurat mewakili kejadian atau aktivitas dari organisasi.
Informasi yang lengkap adalah informasi yang tidak mengurangi aspek penting
dari event atau aktivitas yang mendasari pengukuran informasi tersebut.
4. Tepat waktu
Informasi yang tepat waktu adalah informasi yang tersedia tepat waktu sehingga
memungkinkan pembuat keputusan untuk membuat keputusan.
5. Dapat dimengerti
Informasi akan dapat dimengerti jika informasi tersebut dipresentasikan dalam
format yang benar dan dapat dimengerti.
6. Dapat diuji
Informasi dapat diuji jika ada dua orang yang berpengalaman bekerja secara
terpisah dan masing-masing menghasilkan informasi yang sama.
2.5Pengertian Sistem Informasi
(Oetomo, 2002) menjelaskan sistem informasi sebagai kumpulan elemen yang
saling berhubungan satu sama lain yang membentuk satu kesatuan untuk
mengintegrasikan data, memproses dan menyimpan serta mendistribusikan
informasi.
2.6Visual Basic
Microsoft Visual Basic atau disingkat VB merupakan salah satu bahasa
pemrograman aplikasi yang sangat dikenal di dunia. Aplikasi VB pertama kali
yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction
Code) yang dikembangkan di era 1950-an.
Tahun 1998, Microsoft merilis Visual Basic versi 6.0 yang menyuguhkan
fungsi-fungsi pengaksesan data terintegrasi dan bersifat grafis ke sumber data (data
source) yang membuat VB versi 6.0 menjadi sebuah pilihan ideal untuk
membangun aplikasi berskala perusahaan.
2002 seakan menjadi batu loncatan yang cukup ekstrim bagi pengembangan
aplikasi VB, karena di tahun ini Microsoft menelurkan paket VB yang berbeda
dari versi-versi sebelumnya, terutama mengenai ketidakkompetibelan penggunaan
bahasa dengan versi VB terdahulu. Salah satu yang menjadi sorotan adalah
adanya teknologi .Net Framework yang memungkinkan para programmer dapat
membangun aplikasi Windows Form, aplikasi web berbasis ASP.NET, juga
aplikasi command-line.
Pada 19 November 2007, Microsoft kembali merilis versi terbaru dari VB, yaitu
VB 9.0 atau VB 2008 bersamaan dengan dirilisnya beberapa produk bahasa
pemrograman lain yang diproduksi Microsoft. Pada versi kali ini, Microsoft telah
menambahkan banyak fitur baru bersamaan dengan penyematan sistem .Net
Framework versi 3.5.
April 2010, Microsoft menelurkan versi terakhirnya yaitu VB 2010 yang telah
menyertakan dukungan untuk Dynamic Language Runtime dan .Net Framework
2.7MySQL
MySQL merupakan RDBMS (Relational Data Base Management Sistem) yang
bersifat open source dibawah lisensi GPL (General Public License) yang
membebaskan siapa saja untuk menggunakan serta mengembangkan MySQL
dengan ketentuan untuk tidak mengomersilkan produk turunannya.
MySQL menggunakan SQL (Structured Query Language) sebagai bahasa dasar
untuk mengakses basisdatanya. SQL adalah sebuah konsep pengoperasian
basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang
memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Secara harafiah, basidata atau database merupakan sekumpulan data yang
tersusun dengan aturan tertentu dalam bentuk tabel (Wahana Komputer, 2011).
MySQL dikembangkan sekitar tahun 1994 oleh sebuah perusahaan pengembang
perangkat lunak dan konsultan basisdata bernama MySQL AB yang berada di
Swedia. Perusahaan tersebut selanjutnya diakuisisi oleh SUN Microsystem yang
saat ini telah diambil alih oleh ORACLE sehingga perputaran manajemen ini
semakin mengukuhkan posisi MySQL diberbagai komunitas maupun pengguna
enterprise.
2.8Alat Analisis
Perlunya alat bantu dalam proses pembuatan sebuah aplikasi akan sangat
bermanfaat dalam pemahaman dan evaluasi informasi dari sebuah sistem yang
2.8.1Metode Pengembangan Sistem
System Development Life Cycle (SDLC) adalah standarisasi umum dalam
pembangunan sebuah aplikasi yang digunakan sebagai acuan untuk membangun
aplikasi yang baik dan tersruktur. SDLC juga merupakan alat untuk manajemen
proyek yang bisa digunakan untuk merencanakan, memutuskan dan mengontrol
proses pengembangan sistem informasi. Metode SDLC ini seringkali dinamakan
juga sebagai proses pemecahan masalah, adapun pengembangan sistem yang
digunakan dalam penelitian ini adalah paradigma waterfall dengan
langkah-langkah sebagai berikut (Pressman, 2002):
1. Rekayasa Sistem
Dikarenakan piranti lunak merupakan bagian dari suatu sistem, maka pembuatan
sebuah piranti lunak dapat dimulai dengan mengaji apa yang dibutuhkan oleh
sistem untuk kemudian diterapkan dalam analisis dan pendesainan aplikasi.
2. Analisis Kebutuhan Perangkat Lunak
Merupakan proses pengumpulan dan pemahaman dasar dari aplikasi yang akan
dibangun. Dalam tahap analisis, terdapat langkah-langkah dasar yang harus
dilakukan antara lain:
1. Identify, yaitu mengidentifikasikan masalah
2. Understand, yaitu memahami kerja dari sistem yang ada
3. Analyze, yaitu menganalisis sistem
4. Report, yaitu membuat laporan hasil analisis
Perancangan merupakan proses yang memfokuskan pada pengolahan struktur
data, arsitektur perangkat lunak, detail prosedur dan karakteristik antarmuka.
4. Pengkodean
Merupakan proses penulisan bahasa pemrograman agar dapat dijalankan oleh
mesin.
5. Pengetesan
Proses yang memastikan bahwa input yang dilakukan akan menghasilkan output
yang sesuai.
6. Pemeliharaan
Proses pemeliharaan dilakukan setelah piranti lunak sampai di tangan user dengan
tujuan untuk menjaga stabilitas kebutuhan yang diinginkan oleh user.
Gambar 2.3 System Development Life Cycle
2.8.2Diagram Alir Dokumen (Flow Map)
Menurut (Albahra, 2005), Diagram Alir Dokumen atau Flow Map adalah
bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian
Tabel 2.1 Simbol Diagram Alir Dokumen
Komponen Keterangan
Proses
Dokumen
Arsip
Proses Manual
Input manual
Media Simpan
Garis Alir
2.8.3UML (Unified Modelling Language)
Hermawan (Hermawan, 2004) menjelaskan bahwa UML merupakan bahasa
standar yang digunakan untuk menjelaskan dan memvisualisasikan artifak dari
2.8.3.1Tujuan UML
Menurut (Suhendar & Gunadi, 2002) bahwa tujuan utama UML adalah:
1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekpresif
untuk mengembangkan dan saling menukar model dengan mudah dan
dimengerti secara umum.
2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa
pemrograman dan proses rekayasa.
3. Menyatukan praktik-praktik terbaik yang terdapat dalam pemodelan
2.8.3.2Notasi UML 2.8.3.2.1Actor
Actor adalah segala sesuatu yang berinteraksi dengan sistem aplikasi komputer
yang bisa berupa orang, perangkat keras, atau obyek lain yang biasanya
memberikan informasi pada sistem dan atau memerintahkan sistem untuk
melakukkan sesuatu dalam satu sistem yang sama.
2.8.3.2.2Use Case
Use Case bertujuan untuk menjelaskan urutan kegiatan yang dilakukan actor dan
sistem untuk mencapai suatu tujuan tertentu sebatas pada “apa” yang dilakukan,
bukan “bagaimana” actor dan sistem melakukan kegiatan tersebut.
Gambar 2.5 Notasi Use Case
Di dalam use case terdapat urutan kegiatan yang disebut use case specification
yang terdiri dari:
1. Use Case Name, pemberian identitas berupa nama pada use case yang akan
dipergunakan, biasanya diawali dengan kata kerja untuk menunjukkan suatu
aktivitas.
2. Brief Description, untuk menjelaskan secara singkat dalam 1 atau 2 kalimat
tentang tujuan dari use case.
3. Basic flow, untuk menjelaskan interaksi antara actor dengan sistem dalam
kondisi normal, dengan kata lain berjalan lancar dan tanpa halangan untuk
mencapai tujuan dari use case.
4. Alternate flow, merupakan pelengkap dari basic flow yang bertujuan untuk
menjelaskan apa yang akan terjadi jika terdapat suatu halangan ketika use
case berlangsung. Biasanya berhubungan dengan error yang mungkin
terjadi karena masalah sistem komputer secara internal, eksternal, dan
5. Special requirements, menginformasikan mengenai kebutuhan lain yang
belum tercakup dalam basic flow maupun alternate flow, seperti kebutuhan
waktu dan kecepatan transaksi serta kapasistas akses ke sistem ketika
sejumlah user mengakses dalam waktu yang bersamaan.
6. Pre-condition, merupakan persyaratan yang harus dipenuhi sebelum use
case mulai dilakukan.
7. Post-condition, merupakan kondisi yang terjadi setelah use case dieksekusi.
2.8.3.2.3Interaction
Interaction digunakan untuk menunjukkan aliran pesan atau informasi antar obyek
maupun hubungan antar obyek. Biasanya interaction ini dilengkapi juga dengan
teks bernama operation signature yang tersusun dari nama operasi, parameter
yang dikirim dan tipe parameter yang dikembalikan.
Gambar 2.6 Notasi Interaction 2.8.3.2.4Dependency
Dependency merupakan relasi yang menunjukkan bahwa perubahan di satu
elemen akan memberi dampak pada elemen lain. Elemen yang berada pada ujung
tanda panah menunjukan elemen tersebut bergantung pada sumber arah panah.
Terdapat 2 stereotype dari dependency, yaitu:
1. Include. Stereotype ini akan menunjukkan bahwa suatu bagian dari sebuah
elemen akan memicu eksekusi dari elemen yang lain. Contoh: A B: maka
operasi yang ada di class A akan memicu dieksekusinya operasi yang ada di
2. Extend. Stereotype ini akan menunjukan bahwa suatu bagian dari sebuah
elemen bisa disisipkan ke dalam elemen lain. Contoh: X Z: maka suatu
fungsi use case X bisa disisipkan ke dalam use case B atau dengan kata lain
X opsional bagi Z.
Kedua stereotype ini direpresentasikan dengan menambah teks “include” atau
“extend” dalam notasi dependency-nya.
Gambar 2.7 Contoh Notasi Include Dependency 2.8.3.2.5Association
Association menggambarkan navigasi antar class (navigation), banyaknya obyek
yang bisa berhubungan (multiplicity), dan status apakah suatu class menjadi
bagian dari class lainnya (aggregation).
Gambar 2.8 Notasi Association 2.8.3.2.6Generalization
Generalization menunjukan hubungan antar elemen yang lebih umum
(superclass) ke elemen yang lebih spesifik (sub class).
2.8.3.2.7Realization
Realization menunjukan hubungan yang akan merealisasikan apa yang dinyatakan
oleh elemen sebelumnya.
Gambar 2.10 Notasi Realization
2.8.3.2.8Use Case Diagram
Use Case Diagram menjelaskan mengenai apa saja yang akan dilakukan oleh
sistem serta siapa saja yang akan berinteraksi dengan sistem. User akan
memanfaatkan dokumentasi Use Case Diagram untuk memahami sistem dan
mengevaluasi pemecahan masalah yang telah diajukan atau sedang dihadapi,
sedangkan developer menjadikan dokumen Use Case Diagram sebagai bahan
rujukan dalam pengembangan sistem.
Pada umumnya Use Case Diagram akan menggunakan elemen actor, use case,
dependency, generalization dan association untuk memberikan gambaran statis
Gambar 2.11 Contoh Use Case Diagram
2.8.3.2.9Sequence Diagram
Sequence Diagram menjelaskan secara detil urutan proses yang dilakukan dalam
sistem untuk mencapai tujuan dari use case, dan biasanya tersusun dari elemen
obyek, interaction dan message.
2.8.4Entity Relationship Diagram (ERD)
Menurut (Al-Fatta, 2007) Entity Relationship Diagram merupakan gambar atau
diagram yang menunjukkan informasi dibuat, disimpan, dan digunakan dalam
sistem bisnis yang pada akhirnya dapat digunakan untuk menunjukkan
aturan-aturan bisnis yang ada pada sistem informasi yang akan dibangun.
Tabel 2.2 Notasi ERD
Simbol Keterangan
Entity, merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain.
Link, merupakan penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atributnya.
Relationship, merupakan
penunjuk hubungan antara 2 entitas yang dideskripsikan dengan kata kerja yang memiliki modalitas (null/not null) dan kardinalitas (1:1, 1:N atau M:N).
23
BAB III PEMBAHASAN
3.1Analisis Sistem Berjalan
1. Karyawan login dengan mencari dan menggunakan akun yang telah
tersimpan di basisdata aplikasi agar kehadirannya dapat didokumentasikan
2. Aplikasi presensi akan menyimpan data kehadiran di basisdata untuk
kemudian diolah pada periode tertentu
3. Pada periode tertentu, Admin SDM akan mencetak dokumen laporan
presensi yang telah tersimpan di basisdata untuk kemudian dibuatkan
arsipnya
4. Dokumen yang telah dihasilkan pada langkah sebelumnya diolah secara
manual untuk menghasilkan rekapitulasi total kehadiran masing-masing
karyawan yang selanjutnya dipergunakan Bagian SDM dan Pengarsipan
untuk berbagai keperluan
3.1.2Deskripsi Sistem Berjalan
Penulis membagi deskripsi analisis sistem berjalan menjadi 3 bagian utama, yaitu:
1. Input
Pada bagian ini prosedur presensi hanya mengandalkan nama akun tanpa
menjadi masalah pada karyawan dengan tingkat kepedulian dan ketelitian
yang rendah terhadap prosedur presensi.
Masalah lain adalah mengenai ketiadaan fasilitas penambahan akun yang
akan membebani karyawan baru karena mereka harus melakukan pelaporan
kehadiran secara manual ke Bagian SDM di setiap harinya.
2. Proses
Ketergantungan pada satu akun tertentu untuk menyajikan laporan presensi
menjadi faktor penghambat pengolahan data manakala terjadi hal yang tidak
diinginkan pada akun tersebut.
3. Output
Kendala berikutnya adalah output hasil pengolahan data yang tidak
memberikan hasil kalkulasi kehadiran karyawan untuk periode tertentu
karena informasi yang ada hanya sebatas laporan kehadiran karyawan
per-kedatangan.
3.1.3Flow map
Berikut adalah flow map dari sistem berjalan yang telah diuraikan pada bagian
Gambar 3.1 F low map sistem berjalan
3.1.4Penilaian Terhadap Sistem Berjalan
Berdasarkan informasi diatas maka terdapat beberapa kendala yang dimiliki oleh
aplikasi presensi yang dipergunakan, antara lain:
- Kesalahan akun presensi karena ketiadaan validasi akan menyebabkan
- Ketiadaan fasilitas penambahan akun akan membebani karyawan baru yang
akhirnya berimbas ke Bagian SDM
- Ketergantungan pada satu akun tertentu merupakan faktor penghambat
dalam pembuatan laporan presensi
- Rekapitulasi presensi yang dibutuhkan Bagian SDM harus dihitung secara
manual sehingga menyebabkan inefisiensi pengolahan laporan presensi
untuk periode tertentu
3.1.4.1Data
Berikut analisis data presensi yang dipergunakan pada sistem aplikasi presensi
yang sedang berjalan dalam bentuk tabel:
Tabel 3.1 Analisis Data Presensi
Item Fungsi Sumber Data Kemunculan
Nama Identitas presensi Karyawan Presensi Tanggal Informasi tanggal
kehadiran
Komputer Presensi, Laporan presensi
JamDatang Infromasi jam kedatangan
Komputer Presensi, Laporan presensi
JamKeterlambatan Informasi lama keterlambatan
Aplikasi presensi Presensi, Laporan presensi
PtnganKeterlambatan Tidak diketahui Aplikasi presensi Presensi
EHK Tidak diketahui Aplikasi Presensi
Alasan Membuat
keterangan keterlambatan
Karyawan Presensi
TEHK Tidak diketahui Aplikasi presensi Presensi Tlambat Tidak diketahui Aplikasi presensi Presensi
Berdasarkan keterangan di atas, terdapat beberapa item yang semestinya
pendukung untuk efiktifitas prosedur presensi. Berikut bentuk pengembangan data
tabel yang diusulkan:
Tabel 3.2 Pengembangan Data Presensi – Tabel Karyawan
Item Fungsi Sumber Data Kemunculan
ID Identitas presensi Admin SDM Presensi,
Rekapitulasi Presensi Global, Rekapitulasi Presensi Detail Nama Lengkap Identitas nama
karyawan,
Tabel 3.3 Pengembangan Data Presensi – Tabel Presensi
Item Fungsi Sumber Data Kemunculan
ID Identitas presensi Admin SDM Presensi,
Rekapitulasi Presensi Global, Rekapitulasi Presensi Detail Tanggal Informasi tanggal
kehadiran Jam Datang Informasi jam
Rekapitulasi Presensi Detail Jam Pulang Informasi jam
kepulangan Alasan Pulang Cepat Membuat
keterangan
Informasi yang dihasilkan oleh aplikasi presensi yang sedang berjalan saat ini
tidak jauh berbeda dengan data input pada bagian di atas:
Tabel 3.4 Output aplikasi presensi yang sedang berjalan
Item Fungsi Sumber Data Kemunculan
Nama Identitas presensi Karyawan Presensi Tanggal Informasi tanggal
kehadiran
Komputer Presensi, Laporan presensi
JamDatang Infromasi jam kedatangan
Komputer Presensi, Laporan presensi
JamKeterlambatan Informasi lama keterlambatan
Aplikasi presensi Presensi, Laporan presensi
PtnganKeterlambatan Tidak diketahui Aplikasi presensi Presensi
EHK Tidak diketahui Aplikasi Presensi
Alasan Membuat
keterangan keterlambatan
Karyawan Presensi
TEHK Tidak diketahui Aplikasi presensi Presensi Tlambat Tidak diketahui Aplikasi presensi Presensi
Tabel 3.5 Rekapitulasi Presensi Global
Item Fungsi Sumber Data Kemunculan
ID Identitas presensi Admin SDM Presensi,
Rekapitulasi Presensi Global, Rekapitulasi Presensi Detail Nama Lengkap Identitas nama
karyawan Jumlah Presen Informasi jumlah
kehadiran
Komputer Rekapitulasi Presensi Global, Rekapitulasi Presensi Detail Jumlah Absen Informasi jumlah
ketidakhadiran
Komputer Rekapitulasi Presensi Global, Rekapitulasi Presensi Detail
Kota Keterangan Kota Admin SDM Rekapitulasi
Presensi Global, KaBag SDM Validasi Kepala
Bagian SDM
Tabel 3.6 Rekapitulasi Presensi Detail
Item Fungsi Sumber Data Kemunculan
ID Identitas presensi Admin SDM Presensi,
Nama Lengkap Identitas nama Tanggal Informasi tanggal
kehadiran Jam Datang Informasi jam
kedatangan Jam Pulang Informasi jam
kepulangan Alasan Pulang Cepat Informasi
kepulangan
Karyawan Rekapitulasi Presensi Global, Rekapitulasi Presensi Detail
Kota Keterangan Kota Admin SDM Rekapitulasi
Presensi Global, KaBag SDM Validasi Kepala
3.2Perancangan Sistem Baru
Tahap perancangan ini dipersiapkan dalam rangka memenuhi proses implementasi
dan juga memberikan gambaran umum mengenai bentuk sistem yang akan
dikembangkan.
3.2.1UML
Seorang karyawan (termasuk di dalamnya Admin SDM dan Superuser)
melakukan presensi untuk pertama kalinya di hari berjalan dengan ID yang
dimilikinya. Pada login berikutnya di hari yang sama, karyawan tersebut harus
menyertakan PIN sebagai syarat validasi yang akan mengarahkan pada
manajemen data pribadi sehingga karyawan tersebut dapat mengetahui dan
mengelola data-data yang tersedia.
Gambar 3.3 Sequence Diagram Karyawan
Saat pertama kali datang, karyawan akan memasukkan nomor ID tanpa perlu
memasukkan PIN sehingga sistem akan langsung mencatat waktu kedatangan.
Tahap berikutnya, bagi karyawan yang ingin melakukan kegiatan manajemen data
seperti memperbarui PIN, data pribadi, alasan keterlambatan, dan lain-lain, maka
karyawan tersebut harus re-login yang disertai validasi berupa PIN untuk
membuka hak akses manajemen data yang bersangkutan. Jika prosedur yang
dilakukan salah maka aplikasi akan menampilkan pesan kesalahan, jika prosedur
Gambar 3.4 Sequence Diagram Admin SDM
Selain memiliki fungsi dasar yang sama sebagai karyawan biasa, Admin SDM
juga memiliki hak akses untuk melakukan penambahan data karyawan dan
rekapitulasi presensi periode tertentu.
Gambar 3.5 Sequence Diagram Superuser
Superuser adalah user tunggal yang memiliki hak akses tertinggi di dalam sistem
3.2.3Relasi Tabel
Gambar 3.7 Relasi Tabel
3.2.4Antarmuka
3.2.4.1Input
Gambar 3.9 Informasi Presensi
Gambar 3.11 Ubah PIN
Gambar 3.12 Peringatan dan pesan kesalahan yang berhubungan dengan ID dan PIN
3.2.4.2Output
Gambar 3.14 Rekapitulasi Presensi tiap karyawan per periode tertentu
3.2.5Kodifikasi
Pemberian kode tertentu yang terdiri dari kumpulan huruf dan angka dalam
rangka identifikasi dokumen, berikut kode yang digunakan:
idStaf: yy-nn
keterangan:
yy = tahun menjadi karyawan, 2 dijit
3.2.6Flowchart yang diusulkan
43
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1Implementasi
Implementasi merupakan tahapan yang dilakukan untuk menambatkan sistem
sehingga siap untuk dioperasikan.
4.1.1Antarmuka
Berikut merupakan hasil implementasi dari sistem yang telah dibuat berupa
screenshot aplikasi yang telah dikembangkan menggunakan pemrograman Visual
Basic 2010 dan basisdata MySQL 5.
Gambar 4.2 Informasi Presensi
Gambar 4.4 Ubah PIN
Gambar 4.5 Peringatan dan pesan kesalahan
4.1.2Perangkat keras yang digunakan
1. Server (webhosting):
Clock prosesor : 3,2Ghz
Ruang harddisk : 250Mb
Memori : 512Mb
2. Client:
Clock prosesor : 1,6Ghz
Memori : 6Gb
Lain-lain : Mouse, Keyboard, Monitor
4.2Pengujian
Pengujian dilakukan untuk menemukan kesalahan yang mungkin muncul ketika
aplikasi berjalan, serta untuk mengetahui apakah aplikasi yang dibuat sudah sesuai
dengan tujuan dan fungsi yang sebelumnya telah ditetapkan.
Dalam pengujian ini penulis menggunakan metode black box testing dengan cara
menguji sistem informasi dari segi fungsionalitas tanpa melihat kode sumbernya
secara langsung.
4.2.1Koneksi basisdata
Kolom ID Staf dan PIN akan terblokir (disable) kemudian statusbar akan
menampilkan pesan bahwa koneksi ke server basisdata bermasalah
4.2.2Presensi dan login
Gambar 4.7 Proses Presensi
49
BAB V PENUTUP
5.1Simpulan
Dengan adanya pengembangan sistem informasi dan perbaikan pada aplikasi yang
telah dipakai sebelumnya, maka:
1. Pembuatan laporan data presensi lebih cepat tersaji sehingga mempermudah
bagian SDM untuk mengelola data dan meminimalisir segala kemungkinan
kesalahan kalkulasi jumlah kehadiran karyawan pada periode tertentu secara
otomatis dan periodik.
2. Ketergantungan pada satu akun tertentu dalam pembuatan laporan presensi
dapat dihindari dengan adanya fasilitas penambahan Admin SDM.
5.2Saran
Aplikasi presensi ini memiliki kekurangan dimana karyawan yang telah
melakukan prosesi kehadiran tidak mampu dideteksi manakala yang bersangkutan
tidak melakukan prosesi pencatatan jam pulang kerja. Hal ini tentu mengganggu
ketika bagian SDM memerlukan detail jam masuk dan jam pulang karyawan.
Solusi yang dapat ditempuh adalah dengan melakukan sosialisasi kepada
karyawan mengenai pentingnya melakukan prosesi presensi masuk dan presensi
pulang, dan atau modifikasi aplikasi yang ada menjadi aplikasi yang lebih
sebagainya yang mana saat ini memang belum dibutuhkan pihak STEI SEBI
sehubungan dengan efisiensi anggaran untuk pengadaan perangkat terkait jumlah
51
DAFTAR PUSTAKA
Albahra, L. b. (2005). Analisis Desain Sistem Informasi. Yogyakarta: Graha Ilmu.
Al-Fatta, H. (2007). Analisis dan Perancangan Sistem Informasi untuk Keunggulan Bersaing Perusahaan & Organisasi Modern. Yogyakarta: ANDI OFFSET.
Darmayuda, K. (2010). Pemrograman Aplikasi Database dengan Microsoft Visual Basic .Net 2008. Bandung: Penerbit Informatika.
Dhanta, R. (2009). Kamus Istilah Komputer, Grafis, dan Internet. Surabaya: Indah.
Fathansyah. (2001). Basis Data. Bandung: Informatika.
Hermawan, J. (2004). Analisa Desain dan Pemrograman Berorientasi Objek dengan UML dan Visual Basic .Net. Yogyakarta: Penerbit Andi.
Irawan, D. (2012, Maret 18). Warta Warga Gunadarma University. Dipetik April 13, 2012, dari Sistem Biometriks Absensi Karyawan Dalam Menunjang
Efektifitas Kinerja Perusahaan:
http://wartawarga.gunadarma.ac.id/2012/03/sistem-biometriks-absensi-karyawan-dalam-menunjang-efektifitas-kinerja-perusahaan/
Jogiyanto, H. (2005). Analisis dan Desain Sistem Informasi: Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis. Yogyakarta: Andi.
Jogiyanto, H. (1993). Pengenalan Komputer: Dasar Ilmu Komputer, Pemrograman, Sistem Informasi dan Intelegensi Buatan. Yogyakarta: Andi Offset.
Kadir, A. (2003). Konsep & Tuntunan Praktis Basis Data. Yogyakarta: Penerbit Andi.
Kristanto, A. (2003). Perancangan Sistem Informasi dan Aplikasi. Yogyakarta: Gava Media.
Nugroho, A. (2004). Konsep Pengembangan Sistem Basis Data. Bandung: Informatika.
52
Panggabean, M. S. (2002). Manajemen Sumber Daya Manusia. Bogor: Ghalia Indonesia.
Phan, D. (2005). Flow Map Layout. Stanford University InfoVis 2005 .
Pressman, R. S. (2002). Rekayasa Perangkat Lunak, Pendekatan Praktis (Buku Dua). Yogyakarta: Andi Publisher.
Romney, M., & Steinbart, P. (2006). Accounting Information Systems (10 ed.). New Jersey: Pearson Prentice Hall.
Suhendar, A., & Gunadi, H. (2002). Visual Modeling Menggunakan UML dan Rational Rose. Bandung: Informatika.
Tomy. (2008). Tip dan Trik Profesional MySQL 5. Jakarta: Elex Media Komputindo.
Wahana Komputer. (2011). Microsoft Visual Basic 2010 & MySQL untuk Aplikasi Point of Sales. Semarang: Penerbit Andi.
Public Class _01Login
Private Sub _01Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Private Sub btnPresence_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPresence.Click
Private Sub tbID_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tbID.KeyPress If e.KeyChar = Chr(13) And tbID.Text <> "" Then 'nambahin baru
altcmd = New MySql.Data.MySqlClient.MySqlCommand("select * from tstaf where idstaf='" & tbID.Text & "'", altconn) idstaf='" & tbID.Text & "' AND tanggal= CURDATE() ", altconn)
altdr = altcmd.ExecuteReader idstaf='" & tbID.Text & "'", altconn)
altdr = altcmd.ExecuteReader altdr.Read()
tbPIN.Text = altdr.Item("pin")
prosespresensi()
Private Sub tbID_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbID.TextChanged
btnPresence.Enabled = False Try
altcmd = New MySql.Data.MySqlClient.MySqlCommand("select * from tstaf where idstaf='" & tbID.Text & "'", altconn)
Private Sub tbPIN_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles tbPIN.Enter btnPresence.Enabled = False
End Sub
'kode untuk ngeload data di kolom yg lain
Private Sub tbPIN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tbPIN.KeyPress & tbPIN.Text & "'", altconn)
altdr.Read() CURDATE(), CURTIME(), '00:00:00', '-', '17:00:00', '-')", altconn)
Else
altcmd = New MySqlCommand("INSERT INTO tpresensi VALUES('" & tbID.Text & "', CURDATE(), CURTIME(), TIMEDIFF(CURTIME(),'08:00:00'), '-', '17:00:00', '-')", altconn)
End If & tbPIN.Text & "'", altconn)
altdr = altcmd.ExecuteReader "yyMMdd") & "' and idstaf = '" & tbID.Text & "' order by tanggal desc", altconn)
altdr = altcmd.ExecuteReader CURDATE(), CURTIME(), '00:00:00', '-', '17:00:00', '-')", altconn)
Else
altcmd = New MySqlCommand("INSERT INTO tpresensi VALUES('" & tbID.Text & "', CURDATE(), CURTIME(), TIMEDIFF(CURTIME(),'08:00:00'), '-', '17:00:00', '-')", altconn)
End If
If _03Menu_Utama.ToolStripStatusLabel1.Text = "Superuser" Then _03Menu_Utama.SuperuserToolStripMenuItem1.Visible = True _03Menu_Utama.AdminSDMToolStripMenuItem1.Visible = False _03Menu_Utama.KaryawanToolStripMenuItem1.Visible = False ElseIf _03Menu_Utama.ToolStripStatusLabel1.Text = "Admin SDM" Then _03Menu_Utama.SuperuserToolStripMenuItem1.Visible = False _03Menu_Utama.AdminSDMToolStripMenuItem1.Visible = True _03Menu_Utama.KaryawanToolStripMenuItem1.Visible = False Else
_03Menu_Utama.SuperuserToolStripMenuItem1.Visible = False _03Menu_Utama.AdminSDMToolStripMenuItem1.Visible = False _03Menu_Utama.KaryawanToolStripMenuItem1.Visible = True End If
_03Menu_Utama.ToolStripStatusLabel2.Text = Label1.Text _03Menu_Utama.Label4.Text = tbID.Text
End Sub
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
End End Sub
Public Class _02Daftar_Kehadiran
Protected Overrides ReadOnly Property CreateParams() As CreateParams Get
Private Sub btnBack_Click(sender As System.Object, e As System.EventArgs) Handles btnBack.Click Me.Close()
_01Login.Show() _01Login.tbID.Clear() _01Login.tbPIN.Clear()
_01Login.Label1.Text = "Nama Lengkap"
_01Login.PictureBox2.Image = My.Resources.logo _01Login.tbID.Focus()
Private Sub _02Daftar_Hadir_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
tpresensi.jammasuk as jam, tpresensi.telat as telat, tpresensi.ketmasuk as alasan from tstaf, tpresensi where tstaf.idstaf=tpresensi.idstaf and tpresensi.tanggal=CURDATE() and tstaf.idstaf <> '0000'",
altconn)
'altcmd = New MySqlCommand("select tpresensi.idstaf as id, tstaf.nama as nama, tstaf.alamat as alamat from tstaf, tpresensi where tstaf.idstaf=tpresensi.idstaf and tpresensi.tanggal=CURDATE()", altconn)
altcmd = New MySqlCommand("select idstaf, nama, alamat from tstaf where idstaf not in (select idstaf from tpresensi where tanggal=curdate()) and idstaf <> '0000'", altconn)
End With End While altdr.Dispose() altdr.Close() Catch ex As Exception MsgBox(ex.Message) End Try
Public Class _03Menu_Utama
'kode untuk menonaktifkan tombol "x"
Protected Overrides ReadOnly Property CreateParams() As CreateParams Get
'kode untuk menonaktifkan tombol "x"
Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
_01Login.PictureBox2.Image = My.Resources.logo _01Login.tbID.Focus()
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ToolStripStatusLabel3.Text = Format(Now, "dd/MM/yy HH:mm:ss") If Format(Now, "dd") <= 26 Then
If Month(Now) = 1 Then
Label8.Text = "27 " & MonthName(12) & " " & Year(Now) - 1 & " - " & "26 " & MonthName(Month(Now)) & " " & Year(Now)
Else
Label8.Text = "27 " & MonthName(Month(Now) - 1) & " " & Year(Now) & " - " & "26 " & MonthName(Month(Now)) & " " & Year(Now)
End If Else
If Month(Now) = 12 Then
Label8.Text = "27 " & MonthName(Month(Now)) & " " & Year(Now) & " - " & "26 " & MonthName(1) & " " & Year(Now) + 1
Else
Label8.Text = "27 " & MonthName(Month(Now)) & " " & Year(Now) & " - " & "26 " & MonthName(Month(Now) + 1) & " " & Year(Now)
End If End If End Sub
'kode untuk timer
Private Sub _03Menu_Utama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
datapresensi()
altcmd = New MySqlCommand("select hour(telat) as jam, minute(telat) as menit, ketmasuk, jampulang, ketpulang from tpresensi where idstaf='" & _01Login.tbID.Text & "' and tanggal = '" & Format(Now, "yyMMdd") & "'", altconn)
End If
Private Sub btnUpdateAlasanTelat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateAlasanTelat.Click
altcmd = New MySqlCommand("UPDATE tpresensi SET tpresensi.ketmasuk='" & Replace(TextBox1.Text, "'", "''") & "' where tpresensi.idstaf='" & _01Login.tbID.Text & "' and tanggal = '" & Format(Now, "yyMMdd") & "'", altconn) MonthName(Month(Now)) & " " & Year(Now)
altcmd = New MySqlCommand("select * from tpresensi where idstaf=" &
_01Login.tbID.Text & " and tanggal between '" & Year(Now) - 1 & "-12-27' and '" & Year(Now) & "-" & Month(Now) & "-26' order by tanggal desc", altconn)
Else
'Label8.Text = "27 " & MonthName(Month(Now) - 1) & " " & Year(Now) & " - " & "26 " & MonthName(Month(Now)) & " " & Year(Now)
altcmd = New MySqlCommand("select * from tpresensi where idstaf=" &
_01Login.tbID.Text & " and tanggal between '" & Year(Now) & "-" & Month(Now) - 1 & "-27' and '" & Year(Now) & "-" & Month(Now) & "-26' order by tanggal desc", altconn)
End If Else
If Month(Now) = 12 Then
'Label8.Text = "27 " & MonthName(Month(Now)) & " " & Year(Now) & " - " & "26 " & MonthName(1) & " " & Year(Now) + 1
altcmd = New MySqlCommand("select * from tpresensi where idstaf=" &
_01Login.tbID.Text & " and tanggal between '" & Year(Now) & "-" & Month(Now) & "-27' and '" & Year(Now) + 1 & "-01-26' order by tanggal desc", altconn)
Else
'Label8.Text = "27 " & MonthName(Month(Now)) & " " & Year(Now) & " - " & "26 " & MonthName(Month(Now) + 1) & " " & Year(Now)
altcmd = New MySqlCommand("select * from tpresensi where idstaf=" &
_01Login.tbID.Text & " and tanggal between '" & Year(Now) & "-" & Month(Now) & "-27' and '" & Year(Now) & "-" & Month(Now) + 1 & "-26' order by tanggal desc", altconn)
Dim cmd As New MySqlCommand("UPDATE tpresensi SET jampulang=CURTIME(), ketpulang='" &
Replace(TextBox2.Text, "'", "''") & "' where idpresensi='" & Format(Now, "yyMMdd") + _01Login.tbID.Text & "'", altconn)
Private Sub KelolaDataPribadiToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles KelolaDataPribadiToolStripMenuItem.Click
_04Data_Pribadi.ShowDialog() End Sub
Private Sub KelolaDataPribadiToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles KelolaDataPribadiToolStripMenuItem1.Click
_04Data_Pribadi.ShowDialog() End Sub
Private Sub KelolaDataPribadiToolStripMenuItem2_Click(sender As System.Object, e As System.EventArgs) Handles KelolaDataPribadiToolStripMenuItem2.Click
_04Data_Pribadi.ShowDialog() End Sub
Private Sub UbahPINToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles UbahPINToolStripMenuItem.Click
_05Ubah_PIN.ShowDialog() End Sub
Private Sub UbahPINToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles UbahPINToolStripMenuItem1.Click
_05Ubah_PIN.ShowDialog() End Sub
Private Sub UbahPINToolStripMenuItem2_Click(sender As System.Object, e As System.EventArgs) Handles UbahPINToolStripMenuItem2.Click
_05Ubah_PIN.ShowDialog() End Sub
Private Sub TambahAdminSDMToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ManajemenAdminSDMToolStripMenuItem.Click
_06Tambah_Admin.ShowDialog() End Sub
Private Sub TambahDataKaryawanToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles TambahDataKaryawanToolStripMenuItem.Click
_07Tambah_Karyawan.ShowDialog() End Sub
Imports System.Drawing.Bitmap
'kode untuk menonaktifkan tombol "x"
Protected Overrides ReadOnly Property CreateParams() As CreateParams Get
'kode untuk menonaktifkan tombol "x"
Dim id As String
Sub enable(ByVal root As Control, ByVal state As Boolean) For Each ctrl As Control In root.Controls
Private Sub _04Data_Pribadi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
altcmd = New MySql.Data.MySqlClient.MySqlCommand("select * from tstaf where idstaf='" & _01Login.tbID.Text & "'", altconn)
DateTimePicker1.Text = Convert.ToDateTime(altdr.Item("tanggalLahir")) TextBox4.Text = altdr.Item("alamat")
TextBox5.Text = altdr.Item("telfon") End If
Private Sub btnUpdateFoto_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdateFoto.Click
On Error Resume Next
OpenFileDialog1.Filter = "Supported files|*.jpg;*.png" OpenFileDialog1.ShowDialog()
PictureBox1.Load(OpenFileDialog1.FileName) strimagename = OpenFileDialog1.FileName
PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage gantifoto = True
End Sub
Private Sub btnUpdateData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateData.Click
Dim jk As Char
Dim mstream As New System.IO.MemoryStream()
'PictureBox1.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg) //jum'at Dim arrImage() As Byte = mstream.GetBuffer()
altcmd.Parameters.AddWithValue("@File", IO.File.ReadAllBytes(OpenFileDialog1.FileName)) Else
Private Sub btnUpdatePin_Click(sender As System.Object, e As System.EventArgs) _05Ubah_PIN.ShowDialog()
End Sub
Private Sub btnTutupDataPribadi_Click(sender As System.Object, e As System.EventArgs) Handles btnTutupDataPribadi.Click
Me.Close() End Sub
Public Class _05Ubah_PIN
Private Sub _05Ubah_PIN_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load TextBox1.Focus()
End Sub
Private Sub TextBox3_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Chr(13) Then ubahpin() End Sub
Private Sub btnUbah_Click(sender As System.Object, e As System.EventArgs) Handles btnUbah.Click ubahpin() and pin='" & TextBox1.Text & "'", altconn)
altdr = altcmd.ExecuteReader idstaf='" & _01Login.tbID.Text & "'", altconn)
altdr.Close()
Private Sub btnBatalUbahPIN_Click(sender As System.Object, e As System.EventArgs) Handles btnBatalUbahPIN.Click
Me.Close() End Sub
Private Sub btnTambahAdmin_Click(sender As System.Object, e As System.EventArgs) Handles btnTambahAdmin.Click
Dim mstream As New System.IO.MemoryStream() Dim arrImage() As Byte = mstream.GetBuffer()
altcmd = New MySqlCommand("INSERT INTO tstaf(idstaf, pin, nama, jenisKelamin, tempatLahir, tanggalLahir, alamat, telfon, idgrup, foto) values('" & tbIDAdmin.Text & "','" & tbPINAdmin.Text & "','" & tbNamaAdmin.Text & "', 1, '-', 2013-01-01, '-', '-', 2, @foto)", altconn)
altcmd.Parameters.AddWithValue("@foto", IO.File.ReadAllBytes("../../Resources/logo.png")) altcmd.ExecuteNonQuery()
Private Sub _06Tambah_Admin_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
altcmd = New MySql.Data.MySqlClient.MySqlCommand("select * from tstaf where idgrup=2", altconn)
Private Sub ListView1_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick
Private Sub btnPerbaruiAdmin_Click(sender As System.Object, e As System.EventArgs) Handles btnPerbaruiAdmin.Click
altcmd = New MySql.Data.MySqlClient.MySqlCommand("update tstaf set nama = '" & tbNamaAdmin.Text & "', pin = '" & tbPINAdmin.Text & "' where idstaf = '" & tbIDAdmin.Text & "'", altconn)
altcmd.ExecuteNonQuery() altcmd.Dispose()
MsgBox("Updated")
tbIDAdmin.Clear()
tbNamaAdmin.Text = "Admin SDM" tbPINAdmin.Text = "1231" End Sub
Private Sub btnHapusAdmin_Click(sender As System.Object, e As System.EventArgs) Handles btnHapusAdmin.Click
altcmd = New MySql.Data.MySqlClient.MySqlCommand("delete from tstaf where idstaf = '" & tbIDAdmin.Text & "'", altconn)
Private Sub btnResetAdmin_Click(sender As System.Object, e As System.EventArgs) Handles btnResetAdmin.Click
Private Sub btnTutupAdmin_Click(sender As System.Object, e As System.EventArgs) Handles btnTutupAdmin.Click
Me.Close() End Sub
Private Sub btnTambahKaryawan_Click(sender As System.Object, e As System.EventArgs) Handles btnTambahKaryawan.Click
Dim mstream As New System.IO.MemoryStream() Dim arrImage() As Byte = mstream.GetBuffer()
altcmd = New MySqlCommand("INSERT INTO tstaf(idstaf, pin, nama, jenisKelamin, tempatLahir, tanggalLahir, alamat, telfon, idgrup, foto) values('" & tbIDKaryawan.Text & "','" & tbPINKaryawan.Text & "','" & tbNamaKaryawan.Text & "', 1, '-', 2013-01-01, '-', '-', 3, @foto)", altconn)
altcmd.Parameters.AddWithValue("@foto", IO.File.ReadAllBytes("../../Resources/logo.png")) altcmd.ExecuteNonQuery()
Private Sub _07Tambah_Karyawan_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
altcmd = New MySql.Data.MySqlClient.MySqlCommand("select * from tstaf where idgrup=3", altconn)
Private Sub ListView1_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick
Private Sub btnPerbaruiKaryawan_Click(sender As System.Object, e As System.EventArgs) Handles btnPerbaruiKaryawan.Click
altcmd = New MySql.Data.MySqlClient.MySqlCommand("update tstaf set nama = '" &
tbNamaKaryawan.Text & "', pin = '" & tbPINKaryawan.Text & "' where idstaf = '" & tbIDKaryawan.Text & "'", altconn)
altcmd.ExecuteNonQuery() altcmd.Dispose()
MsgBox("Updated")
tbIDKaryawan.Enabled = True tbIDKaryawan.Clear()
tbNamaKaryawan.Text = "Nama Lengkap" tbPINKaryawan.Text = "1231"
End Sub
Private Sub btnHapusKaryawan_Click(sender As System.Object, e As System.EventArgs) Handles btnHapusKaryawan.Click
altcmd = New MySql.Data.MySqlClient.MySqlCommand("delete from tstaf where idstaf = '" & tbIDKaryawan.Text & "'", altconn)
Private Sub btnResetKaryawan_Click(sender As System.Object, e As System.EventArgs) Handles btnResetKaryawan.Click
Private Sub btnTutupKaryawan_Click(sender As System.Object, e As System.EventArgs) Handles btnTutupKaryawan.Click
Me.Close() End Sub
Module Module1
Public altconn As MySqlConnection Public altda As MySqlDataAdapter Public altds As DataSet
Public altcmd As MySqlCommand Public altdr As MySqlDataReader
Public altstr, altserver, altuser, altpw, altdb As String
Public Sub altconnect()
'altstr = "server=192.168.0.1; port=3306; user=root; password=P4ssW0rd; database=asibi" altstr = "server=localhost; user=root; password=; database=asibi"