PENERAPAN MODEL MVC PADA SISTEM INFORMASI
ABSENSI SISWA SMK PERTANIAN BERBASIS SMS
GATEWAY
SKRIPSI
Diajukan untuk memenuhi salah satu syarat kelulusan Program Sarjana
ANDRI SUTIADI
NIM : 15160211
Program Studi Ilmu Komputer Kampus Kota Sukabumi Fakultas Teknik dan Informatika
Universitas Bina Sarana Informatika 2020
PERSEMBAHAN
“Kunci Kebahagiaan adalah seberapa besar kita bersyukur akan nikmat-NYA. Semakin kita bersyukur, semakin pula kita Bahagia.”
Dengan Mengucapkan puji syukur kepada Allah S.W.T. skripsi ini kupersembahkan untuk :
1. Ibu dan Ayah tercinta yang telah membesarkan aku dan selalu membimbing, mendukung, memotivasi, memberi semua yang terbaik bagiku serta selalu mendoakan aku untuk meraih kesuksesanku.
2. Bapak dan ibu dosen pembimbing, penguji dan pengajar, yang selama ini telah tulus dan ikhlas meluangkan waktunya untuk menuntun dan mengarahkan saya, memberikan bimbingan dan pelajaran yang tiada ternilai harganya.
4. Teman dan rekan yang telah membuat hari-hari ku lebih ceria dan bermakna.
5. Dan kamu yang selalu memberi support dalam penyusunan laporan skripsi ini.
Tanpa mereka,
aku dan karya ini tak akan pernah ada, kalian terbaik..
PANDUAN PENGGUNAAN HAK CIPTA
Skripsi sarjana yang berjudul “Penerapan Model MVC Pada Sistem Informasi Absensi Siswa SMK Pertanian Berbasis SMS Gateway” adalah hasil karya tulis asli ANDRI SUTIADI dan bukan hasil terbitan sehingga peredaran karya tulis hanya berlaku dilingkungan akademik saja, serta memiliki hak cipta. Oleh karena itu, dilarang keras untuk menggandakan baik sebagian maupun seluruhnya karya tulis ini, tanpa seizin penulis.
Referensi kepustakaan diperkenankan untuk dicatat tetapi pengutipan atau peringkasan isi tulisan hanya dapat dilakukan dengan seizin penulis dan disertai ketentuan pengutipan secara ilmiah dengan menyebutkan sumbernya.
Untuk keperluan perizinan pada pemilik dapat menghubungi informasi yang tertera di bawah ini:
Nama : ANDRI SUTIADI
Alamat : Jl. Bhayangkara komplek secapa polri Blok i no 21 RT 05 RW 09 kecamatan gunung puyuh kelurahan kramat No. Hp. : 0821-1376-2073
E-mail : [email protected]
KATA PENGANTAR
Puji Syukur Alhamdulillah, penulis panjatkan kehadirat Allah SWT, yang telah melimpahkan rahmat dan hidayah-Nya, sehingga pada akhirnya dapat menyelesaikan skripsi dengan baik dan lancar. Adapun skripsi ini penulis beri judul sebagai berikut: “Penerapan Model MVC Pada Sistem Informasi Siswa SMK Pertanian Berbasis SMS Gateway”,
Tujuan penulisan Skripsi pada Program Sarjana (S1) ini dibuat sebagai salah satu syarat kelulusan Sarjana Universitas Bina Sarana Informatika. Sebagai bahan penulisan diambil berdasarkan hasil penelitian (eksperimen), observasi dan beberapa sumber literatur yang mendukung penulisan ini. Penulis menyadari bahwa tanpa bimbingan dan dorongan dari semua pihak, maka penulisan Skripsi ini tidak akan berjalan lancar. Oleh karena itu pada kesempatan ini, izinkanlah penulis menyampaikan ucapan terima kasih kepada:
1. Rektor Universitas Bina Sarana Informatika.
2. Dewan Fakultas Teknologi Informasi Universitas Bina Sarana Informatika. 3. Ketua Program Studi Ilmu Komputer Universitas Bina Sarana Informatika. 4. Bapak A. Gunawan, M.Kom. selaku Dosen Pembimbing I.
5. Bapak Jamal Maulana, M.Kom. selaku Dosen Pembimbing II. 6. Seluruh Mahasiswa Universitas Bina Sarana Informatika
7. Kedua orangtua tercinta yang telah memberikan dorongan baik berupa materi, semangat dan doa hingga selesainya penulisan ini.
Serta semua pihak yang terlalu banyak untuk disebut satu persatu sehingga terwujudnya penulisan ini. Penulis menyadari bahwa penulisan Skripsi ini masih jauh sekali dari sempurna, untuk itu penulis mohon kritik dan saran yang bersifat membangun demi kesempurnaan penulisan di masa yang akan datang. Akhir kata semoga Skripsi ini dapat berguna bagi penulis khususnya dan bagi para pembaca yang berminat pada umumnya.
ABSTRAK
Andri Sutiadi (15160211), Penerapan Model MVC Pada Sistem Informasi Absensi Siswa Smk Pertanian Berbasis SMS Gateway.
Sistem informasi absensi adalah sistem yang dibutuhkan di setiap sekolah, Sistem informasi absensi yang terkomputerisasi dengan media word, excel, manual dan dengan mengunakan media kertas pun belum cukup bagus untuk sistem informasi yang baik, maka dari itu diperlukan sistem informasi yang terintegrasi dengan database. Smk Pertanian Kadudampit ini menerapkan sistem informasi yang terintegrasi dengan database untuk membantu sekolah menyusun data data yang tercecer dan sulit di cari .Jika tidak terintegrasi dengan database maka dikhawatirkan terjadinya redudansi data, kerusakan data, dan kehilangan data. Sistem informasi smk pertanian kadudampit ini menerapkan Model view controller (MVC) sebuah pola yang terbukti membangun proyek secara lebih efektif. Didalam Model view
controller (MVC) terdapat 3 komponen utama, Ketiga komponen tersebut masing-
masing fokus pada perhatian, tanggung jawab, meningkatkan kecepatan dan fleksibilitas dalam proses pemeliharaan sistem. Dengan dibuat sistem informasi yang terintegrasi dengan database dan di terapkannya Model view controller (MVC) serta menggunakan metode model prototyping smk pertanian kadudampit dapat dengan memudahkan penyampaian kehadiran siswa kepada orang tua dan memudahkan dalam pelaporan dan penyusunan data siswa.
Kata Kunci: Absensi, Model view controller (MVC), Sistem Informasi, Aplikasi
WEB
ABSTRACT
Andri Sutiadi (15160211), Application of the MVC Model in Student Information
Attendance Systems SMS Gateway Based Vocational Agriculture.
Attendance information system is a system that is needed in every school, computerized attendance information system with word, excel, manual media and using paper media is not good enough for a good information system, therefore an integrated information system with database is needed. This Kadudampit Agriculture School implements an integrated information system with a database to help schools compile scattered data and is difficult to find. If it is not integrated with the database, it is feared that data redundancy, data damage and data loss will be feared. This cadudampit junior high school information system applies the Model view controller (MVC), a pattern that is proven to build projects more effectively. In the Model view controller (MVC) there are 3 main components, each of which focuses on attention, responsibility, increasing speed and flexibility in the system maintenance process. By creating an integrated information system with the database and implementing the view controller model (MVC) and using the prototype model of cadudampit agriculture can facilitate the delivery of student attendance to parents and facilitate reporting and compilation of student data.
Keywords: Attendance, Model view controller (MVC), Information Systems, WEB applications
DAFTAR ISI
Halaman
Lembar Judul Skripsi ... i
Lembar Persembahan ... ii
Lembar Persyaratan Keaslian Skripsi ... iii
Lembar Persyaratan Persetujuan Publikasi Karya Ilmiah ... iv
Lembar Persetujuan dan Pengesahan Skripsi ... v
Lembar Panduan Penggunaan Hak Cipta ... vi
Kata Pengantar ... vii
Lembar Abstrak ... ix
Daftar Isi ... xi
Daftar Simbol ... xiii
Daftar Gambar ...xvii
Daftar Tabel ... xviii
Daftar Lampiran ... xix
BAB I PENDAHULUAN 1.1. Latar Belakang Masalah... 1
1.2. Identifikasi Masalah ... 3
1.3. Perumusan Masalah ... 3
1.4. Tujuan dan Manfaat ... 3
1.5. Metode Penelitian 1.5.1 Teknik Pengumpulan Data ... 3
a. Observasi ... 3
b. Wawancara ... 4
c. Studi Pustaka ... 4
1.5.2 Metode Pengembangan Sistem ... 4
1.6. Ruang Lingkup ... 5
BAB II LANDASAN TEORI 2.1. Tinjauan Pustaka ... 6
2.1.1. Model View Controller (MVC) ... 6
2.2. Penelitian Terkait ... 11
BAB III ANALISA DAN PERANCANGAN 3.1. Tinjauan Institusi/Organisasi ... 13
3.1.1 Sejarah Institusi/Organisasi ... 13
3.1.2 Struktur Organisasi ... 14
3.2. Proses Bisnis Sistem ... 18
3.3. Spesifikasi Dokumen Sistem Berjalan ... 19
3.3.1. Spesifikasi Bentuk Dokumen Masukan ... 19
3.3.2. Spesifikasi Bentuk Dokumen Masukan ... 19
BAB IV RANCANGAN SISTEM DAN PROGRAM USULAN 4.1. Analisis Kebutuhan Software ... 20
4.2. Desain ... 33
4.2.1 Basis Data ... 33 xi
4.3. Code Generation ... 46
4.4. Pengujian ... 67
4.4.1. Spesifikasi Hardware dan Software ... 73
BAB V PENUTUP 5.1. Kesimpulan ... 74
5.2. Saran ... 74
DAFTAR PUSTAKA ... 76
DAFTAR RIWAYAT HIDUP ... 77
LEMBAR KONSULTASI ... 78
SURAT KETERANGAN RISET ... 80
LAMPIRAN-LAMPIRAN ... 81 Lampiran A. Daftar Kehadiran Guru
Lampiran B. Daftar Kehadiran Siswa
DAFTAR SIMBOL
A. Simbol UML (Unified Modeling Language) 1. Simbol Activity Diagram
START POINT
Digunakan untuk menggambarkan titik awal suatu aktivitas.
END POINT
Digunakan untuk menggambarkan titik akhir suatu aktivitas.
ACTION STATE
Digunakan untuk menggambarkan suatu aktivitas yang dilakukan.
CONTROL FLOW
Digunakan untuk menunjukkan bagaimana kendali suatu aktivitas terjadi pada aliran kerja dalam tindakan tertentu.
swimlane
SWIMLANE
Digunakan untuk menggambarkan pengelompokkan
Activity berdasarkan Actor.
ACTOR
Digunakan untuk menggambarkan orang, sistem atau external entitas yang menyediakan atau menerima informasi dari sistem.
2. Simbol Use Case Diagram
USE CASE
Digunakan untuk menggambarkan apa yang dikerjakan sistem.
ACTOR
Digunakan untuk menggambarkan orang, sistem atau external entitas yang menyediakan atau menerima informasi dari sistem.
ASSOCIATION
Digunakan untuk menggambarkan hubungan antara
Actor dan Use Case.
<<include>>
INCLUDE
Digunakan untuk menggambarkan hubungan antar Use
Case, yang termasuk didalam Use Case lain
(diharuskan).
3. Simbol Sequence Diagram
OBJECT
Menyatakan Object yang berinteraksi sebuah pesan
A MESSAGE
Menggambarkan tujuan dari pengiriman pesan
OBJECT LIFE LINE
Menggambarkan tempat mulai dan berakhirnya sebuah sistem
4. Simbol Deployment Diagram
NODE
Digunakan untuk menggambarkan fisik dari sistem.
COMPONENT INSTANCE
Suatu komponen dari suatu infrastruktur sistem.
DAFTAR GAMBAR
Halaman
Gambar II.1. Prinsip kerja metode MVC 8
Gambar III.2. Struktur Organisasi Smk Pertanian Kadudampit 14
Gambar III.3. Activity Diagram Guru 18
Gambar IV.4. Use Case diagram admin 20
Gambar IV.5. Use Case diagram guru 24
Gambar IV.6. Activity Diagram admin mengelola data guru 26 Gambar IV.7. Activity Diagram admin mengelola data siswa 27 Gambar IV.8. Activity Diagram admin mengelola data kelas 28 Gambar IV.9. Activity Diagram admin mengelola data mata pelajaran 29 Gambar IV.10. Activity Diagram admin mengelola data jadwal pelajaran 30 Gambar IV.11. Activity Diagram admin mengelola laporan absen guru 31 Gambar IV.12. Activity Diagram admin mengelola laporan absen mapel 32 Gambar IV.13. Entity Relationship Diagram sistem informasi absensi 33 Gambar IV.14. Logical Record Structure sistem informasi absensi 34 Gambar IV.15. Class diagram sistem informasi absensi 38 Gambar IV.16. Sequence diagram sistem informasi absensi 39 Gambar IV.17. Commponent diagram sistem informasi absensi 40 Gambar IV.18. Deploymet diagram sistem informasi absensi 41
Gambar IV.19. Tampilan halaman login 42
Gambar IV.20. Tampilan dashboad 42
Gambar IV.21. Tampilan halaman data guru 43
Gambar IV.22. Tampilan halaman data siswa 43
Gambar IV.23. Tampilan halaman data kelas 44
Gambar IV.24. Tampilan halaman data mata pelajaran 44 Gambar IV.25. Tampilan halaman jadwal pelajaran 45 Gambar IV.26. Tampilan halaman laporan absen guru 45 Gambar IV.26. Tampilan halaman laporan absen siswa 46
DAFTAR TABEL
Halaman Tabel IV.1.Deskripsi dari Use Case Diagram admin mengelola data guru 21 Tabel IV.2. Deskripsi dari Use Case Diagram admin mengelola data siswa 21 Tabel IV.3. Deskripsi dari Use Case Diagram admin mengelola data kelas 22 Tabel IV.4. Deskripsi dari Use Case Diagram admin mengelola data mapel 22 Tabel IV.5. Deskripsi dari Use Case Diagram admin mengelola data jadwal 23 Tabel IV.6. Deskripsi dari Use Case Diagram admin melihat lap absen guru 23 Tabel IV.7. Deskripsi dari Use Case Diagram admin melihat lap absen siswa 24 Tabel IV.8. Deskripsi dari Use Case Diagram guru melakukan absen masuk 25 Tabel IV.9. Deskripsi dari Use Case Diagram guru melakukan absen siswa 25
Tabel IV.10. Spesifikasi file absen guru 35
Tabel IV.11. Spesifikasi file absen siswa 35
Tabel IV.12. Spesifikasi file tabel kelas 36
Tabel IV.13. Spesifikasi file mapel 36
Tabel IV.14. Spesifikasi file jadwal 37
Tabel IV.15. Spesifikasi file send_sms 38
Tabel IV.16. Tabel Pengujian login 67
Tabel IV.17. Tabel Pengujian menu data guru 68 Tabel IV.18. Tabel Pengujian menu data siswa 68 Tabel IV.19. Tabel Pengujian menu data kelas 69 Tabel IV.20. Tabel Pengujian menu data mata pelajaran 70 Tabel IV.21. Tabel Pengujian menu data jadwal pelajaran 70 Tabel IV.22. Tabel Pengujian menu data laporan absen guru 71 Tabel IV.23. Tabel Pengujian menu data laporan mata pelajaran 72
Tabel IV.24. Tabel Spesifikasi Hardware 73
Tabel IV.25. Tabel Spesifikasi Software 73
DAFTAR LAMPIRAN
Halaman
Lampiran A. Daftar Kehadiran Siswa 83
Lampiran B. Daftar Kehadiran Guru 83
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Sekolah adalah tempat di mana generasi penerus bangssa dapat dicetak. Ini adalah aset bagi negara di mana lingkungan sekolah dapat memiliki dampak besar pada pengembangan pola pikir dan perilaku siswa. Hampir 8 jam waktu anak-anak dihabiskan di sekolah, pengawasan hanya diambil oleh setiap guru. Banyak siswa harus berada di sekolah, tetapi kenyataannya mereka berada di tempat-tempat umum seperti warung, kosan, dll (Yusuf & Susanto, 2010).
Dalam pelaksanaan belajar mengajar ada yang harus di perhatikan yaitu absensi siswa. Absensi siswa itu sangat penting karena berpengaruh terhadap prestasi yang dicapai oleh siswa, orang tua tentu memiliki ekspektasi bahwa siswa mengikuti pelajaran dan kegiatan belajar mengajar dengan baik. Masalah yang dihadapi oleh sekolah pada sistem informasi absensi yaitu ada sebagian siswa yang bolos sekolah tetapi orang tua siswa tidak mengetahui hal tersebut sehingga perlu di buat sistem informasi absensi berbasis gateway. Hasil penelusuran menggunakan mesin pencari menunjukkan bahwa penelitian mengenai masalah sistem informasi absensi siswa berbasis gateway pernah dilakukan tetapi tidak untuk smk pertanian kadudampit (Prakerin, Sms, Dengan, & Pi, 2017).
Untuk menyelesaikan suatu masalah dalam penerapan sistem informasi absesnsi siswa smk pertanin berbasis gateway ini menggunakan penerapan model
Model, view, controller (MVC). Model, view, controller (MVC) merupakan sebuah
arsitektur pengembangan aplikasi yang menekankan 3 komponen utama. Ketiga komponen tersebut masing-masing fokus pada perhatian, tanggung jawab, dan logika untuk mempercepat kinerjanya (Rasuliano, Kelen, & Belalawe, 2018).
Aplikasi dikembangkan kearah web dikarekan kebutuhan mendapatkan nilai informasi yang lebih cepat dan fleksibel, sistem ini akan diaplikasikan dalam bentuk aplikasi web. Sekolah dapat dengan cepat memberikan informasi kehadian siswa kepada orang tua siswa.
Dilatarbelakangi oleh masalah yang diuraikan tersebut, maka dibuatlah penelitian dengan judul: “PENERAPAN MODEL MVC PADA SISTEM INFORMASI ABSENSI SISWA SMK PERTANIAN BERBASIS GATEWAY”.
1.2. Identifikasi Permasalahan
Dari uraian Latar belakang diatas, dapat di identifikasi beberapa masalah yang akan digunakan sebagai bahan penelitian yaitu:
1. Sistem belum terintegrasi database sehingga mengakibatkan terjadinya redudansi data.
2. Laporan – laporan absensi masih tercecer tidak rapi sulit untuk dicari dan dikhawatirkan terjadinya kerusakan.
1.3. Perumusan Masalah
Dari latar belakang tersebut dapat diidentifikasi menjadi beberapa masalah diantaranya:
1. Belum adanya sistem yang teredudansi database untuk memudahkan dalam pelaporan dan penyusunan data siswa
2. Belum ada pelaporan – pelaporan yang pasti sehingga dibuat laporan yang lebih rapi dan cepat.
1.4. Tujuan dan Manfaat
Tujuan dari penulisan skripsi ini adalah:
1. Memudahkan sekolah menyampaikan kehadiran siswa kepada orang tua. 2. Menyampaikan kehadiran siswa dalam setiap kegiatan belajar mengajar.
Tujuan dari penulisan skripsi ini adalah untuk memenuhi salah satu syarat kelulusan pada program Strata Satu (S1) Program Studi Ilmu Komputer Kampus Sukabumi di Universitas Bina Sarana Informatika.
1.5. Metode Penelitian
Teknik pengumpulan data yang akan digunakan dalam penelitian ini ada tiga metode yaitu studi lapangan (observasi), wawancara, dan studi pustaka (Mursidik, Samsiyah, & Rudyanto, 2015:29) :
1. Observasi
Observasi dilakukan pengamatan secara langsung terkait beberapa data mengenai pengelolaan absesi siswa di Smk Pertanian Kadudampit.
2. Wawancara
Selain observasi, dilakukan juga wawancara langsung dengan cara Tanya jawab kepada sekolah terhadap sistem informasi absesnsi siswa .
3. Studi Pustaka
Pada penelitian ini, dilakukan pencarian dan pembelajaran dari berbagai macam literatur dan dokumen yang menunjang pengerjaan skripsi ini, diantaranya dari buku, journal, e-journal, paper, artikel ilmiah, juga dari berbagai macam website yang menyediakan informasi yang relevan dengan permasalahan dalam sistem informasi absensi siswa ini.
1.5.1. Metode Pengembangan Sistem
Metode yang digunakan dalam pengembangan sistem menggunakan model prototyping. Model prototyping merupakan suatu teknik untuk mengumpulkan informasi tertentu mengenai kebutuhan-kebutuhan informasi pengguna secara cepat. Berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan atau pemakai. Prototipe tersebut akan dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak (Susanto, Andriana, Susanto, & Andriana, 2015:43) .
1.6. Ruang Lingkup
Dalam penelitian ini, dibatasi hanya pada penerapan sistem informasi absensi siswa berbasis sms gateway dengan menerapkan metode MVC yang didalamnya terdapat form crud guru, form crud siswa, form crud kelas, form crud mapel, form crud jadwal, form absen masuk guru, form absen per mapel, form absen pulang guru, form laporan absensi guru, form laporan per mata pelajaran.
BAB II
LANDASAN TEORI
2.1. Tinjauan Pustaka
Guna mendapatkan persamaan persepsi mengenai pembahasan pada penelitian ini maka di perlukan penjelasan secara teoritis berkaitan dengan pengertian dari model view controller (MVC) dan absensi. Referensi diambil dari jurnal nasional yang berhubungan dengan penelitian terkait.
2.1.1. Model View Controller (MVC)
A. Pengertian Model View Controller (MVC)
Arsitektur Model View Controller (MVC) adalah sebuah pola yang terbukti membangun proyek secara lebih efektif. Hal ini dailakukan dengan memilah komponen antara Model, View dan Controller pada bagian-bagian dalam proyek. Adapun bagian-bagian dalam MVC adalah sebagai berikut :
1. Model merupakan layer yang merepresentasikan data untuk digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan memilahnya sebagai bagian terpisah, seerti enampungan data, persistence, serta
roses manipulasi, terpisah dari bagian lain aplikasi.
2. View merupakan layer yang mengandung keseluruhan detail dari implementasi
user interface. Di sini, komponen grafis menyediakan representasi proses
internal aplikasi dan menuntun alur interaksi user terhadap aplikasi
3. Controller merupakan layer yang menyediakan detail alur proram dan transisi
layer dan juga bertanggung jawab akan penampungan events yang dibuat oleh
user dari view dan melakukan update terhadap komponen model menggunakan data yang dimasukkan oleh user (Wismarini et al., 2018).
B. Kelebihan dan Kelemahan Model View Controller (MVC)
Layaknya sebuah metode analisis. Model View Controller (MVC) mepunyai kelebihan dan kelemahan di dalam sistem analisisnya.. kelebihan analisis ini (Nasution, 2015:2) yaitu:
1. Bagian model memberikan penempatan detil data yang terpisah dan tidak disebar di dalam keseluruhan aplikasi sehingga meningkatkan kecepatan dan fleksibilitas dalam proses pemeliharaan aplikasi.
2. Pemisahan model juga membuat objek model dapat digunakan oleh aplikasi lain dengan kebutuhan yang sama (reuse).
3. Pemisahan view memudahkan perakitan/integrasi dengan komponen aplikasi lainnya tanpa harus memperhatikan detil proses. Desainer hanya berkonsentrasi pada bentuk dan tampilan antarmuka pemakai (user interface).
4. Penggunaan Controller memungkinkan untuk perubahan proses tanpa harus mengganggu antarmuka pemakai. Detil proses disembunyikan oleh Controller sehingga tidak mengganggu presentasi ke user maupun pengelolaan data/informasi (manajemen database).
Di samping kelebihan-kelebihan, di atas, metode MVC juga memiliki kelemahan (Nasution, 2015:2) yaitu :
1. Peningkatan kompleksitas aplikasi karena arsitektur aplikasi yang terbagi menjadi tiga bagian.
2. Menimbulkan loosely coupled (komponen aplikasi yang membuat/mengacu ke komponen lainnya dengan sedikit/tanpa informasi detil dari komponen yang diacu tersebut.
C. Jenis - Jenis Model View Controller (MVC)
Di dalam aplikasi berbasis web dikenal beberapa jenis MVC (Wismarini et al., 2018:460) yaitu :
1. Server Side MVC dimana seluruh proses bisnis dilakukan pada sisi server. 2. Campuran Server Side dan Client Side MVC, dimana proses dilakukan di sisi
client dan sisi server, bisa menggunakan atau tidak menggunakan model dalam koneksi ke server dan biasanya memiliki kompleksitas yang tinggi.
3. Rich Internet Application (RIA), disebut juga Fat Client, merupakan aplikasi web yang memiliki kemampuan dan fungsi yang mirip aplikasi desktop, memiliki bagian yang mengambil data sendiri (MVC tersendiri) dan hanya bagian model yang ada di bagian server.
Sumber: (Nasution, 2015)
Gambar II.1. Prinsip kerja metode MVC
D. Framework CodeIgniter
Framework adalah abstraksi di dalam sebuah perangkat lunak yang
menyediakan fungsi yang generic sehingga dapat dirubah oleh kode yang dibuat user sehingga dapat menyediakan perangkat lunak untuk aplikasi tertentu.
Metode MVC adalah sebuah arsitektur yang dapat diimplementasikan secara bebas dengan atau tanpa bahasa pemrograman berorientasi objek. Dengan demikian metode MVC dapat diimplementasikan dalam sebuah framework (Rasuliano, Kelen, & Belalawe, 2018:11).
CodeIgniter merupakan sebuah framework pemrograman web dengan
menggunakan bahasa php. Framework ini ditulis dengan menggunakan bahas php versi 4 dan versi 5 oleh Rick Ellislab yang menjadi CEO Ellislab, Inc. dan dipublikasikan dengan lisensi di bawah Apache/BSD Open Source. Jadi CodeIgniter adalah framework php dan Open Source (Rasuliano, Kelen, & Belalawe, 2018:11). Manfaat yang dapat diambil dengan menggunakan framework CodeIgniter
(Nasution, 2015) adalah :
1. Gratis, sesuai dengan semangat Open Source untuk dapat digunakan dan dikembangkan secara bersama-sama. Dapat di-download pada alamat http://CodeIgniter.com/downloads/ secara gratis, bebas digunakan sesuai persyaratan persetujuan lisensi (lisence agreemen) yang bisa dilihat pada website tersebut di atas.
2. Ditulis dengan menggunakan bahasa php 4 (untuk versi 1.x.x) dan versi 5 (untuk versi 2.x.x) sehingga mendukung pemrograman dengan bahasa php.
3. Menggunakan metode MVC sebagai prinsip kerjanya sehingga dapat digunakan untuk mengembangkan aplikasi secara efisien dan dinamis serta lebih memudahkan dalam melakukan pemeliharaan aplikasi.
4. Menggunakan URL (Uniform Resource Locator) yang sederhana, bersih, dan SEF (Search Engine Friendly).
5. Memiliki paket library yang lengkap, mendukung fungsi-fungsi database, html, web, e-mail, session, pagination dan lain-lain.
6. Dokumentasi yang lengkap dan jelas, disertakan dalam website resminya dan dapat di-download bersama-sama dengan frameworknya.
7. Komunitas, framework ini didukung oleh banyak pengguna dan pengembang, walaupun awalnya dikembangkan oleh Ellislab, Inc.
8. Bersifat portabel dan dapat dijalankan pada berbagai platform yang mendukung bahasa pemrograman php.
E. Prinsip Kerja Framework CodeIgniter
Prinsip kerja utama framework CodeIgniter terletak pada file index.php yang diletakkan pada direktori root aplikasi. File ini akan memicu dan mengarahkan permintaan layanan halaman web ke dalam tubuh framework CodeIgniter. Mekanismenya (Nasution, 2015) adalah sebagai berikut :
1. File index.php bertindak sebagai pengendali utama yang berfungsi memuat kode script utama yang berfungsi menjalankan CodeIgniter.
2. Selanjutnya, modul routing berfungsi menerima permintaan layanan HTTP untuk menentukan arah eksekusi script yang akan dilaksanakan.
3. Jika konfigurasi cache tersedia, maka sistem langsung mengeksekusi untuk ditampilkan di halaman web.
4. Permintaan-permintaan layanan HTTP dan data-data dari form yang dikirimkan ke server, akan di-filter dan diamankan oleh modul security.
5. Selanjutnya data dikirmkan ke modul controller yang akan mengendalikan akses ke Model, Library, Helper, Plugin, dan sumber daya lainnya.
6. Kemudian controller akan mengirimkan data ke modul view untuk ditampilkan ke halaman web. Jika konfigurasi caching diaktifkan, maka sebelum tampilan ini dikirimkan ke web untuk ditampilkan ke browser, maka tampilan ini akan di- cache sehingga permintaan yang sama dapat dilakukan dengan lebih cepat.
2.2. Penelitian Terkait
Pada penelitian jurnal terkait, dilakukan kembali pertinjauan berdasarkan jurnal dari penelitian yang sesudahnya dilakukan, diantaranya :
Menurut (Yusuf & Susanto, 2015) yang berjudul “Pemanfaatan SMS
Gateway untuk Absensi Sekolah Siswa” Menjelaskan bahwa:
Sekolah adalah tempat di mana generasi penerus dapat dicetak. Ini adalah aset bagi negara di mana lingkungan sekolah dapat memiliki dampak besar pada pengembangan pola pikir dan perilaku siswa. Hampir 8 jam waktu anak-anak dihabiskan di sekolah, pengawasan hanya diambil oleh setiap guru. Banyak siswa harus berada di sekolah bangsa, tetapi kenyataannya mereka berada di tempat-tempat umum seperti warung, kosan, dll.
Menurut (Prakerin, Sms, Dengan, & Pi, 2017) yang berjudul “Pengembangan Sistem Informasi Penugasan Dan Monitoring Siswa Prakerin Berbasis Sms
Gateway Dengan Raspberry Pi”. Menjelaskan bahwa
Teknologi saat ini telah membawa manusia dalam kemudahan melakukan pekerjaan. Sistem yang dibuat bertujuan untuk mengerjakan pekerjaan dengan mudah dan cepat. Sarana penyampaian informasi yang mudah dan paling populer 6 adalah dengan menggunakan Short Message Service atau yang sering dikenal dengan SMS yang ada pada ponsel atau handphone. SMS menjangkau semua kalangan dari tingkat bawah maupun atas. Saat ini penyampaian informasi tugas dan monitoring siswa prakerin belum dibuat sistem yang mudah dan cepat.
Menurut (Rasuliano et al., 2018) yang berjudul “Implementasi Model-View-
Controller (Mvc) Pada Ujian Online Melalui Penerapan Framework Codeigniter” Menjelaskan bahwa:
Model, view, controller (MVC) merupakan sebuah arsitektur pengembangan
aplikasi yang menekankan kepada 3 komponen penting. Ketiga komponen tersebut masing-masing memiliki fokus perhatian, tanggung jawab dan logika sehingga mempercepat kinerjanya. Framework codeigniter merupakan salah satu framework terkenal yang sudah mendukung MVC. Dengan framework
codeigniter, pengembangan aplikasi web dapat dilakukan dengan cepat.
Sekolah Menengah Kejuruan Informatika Uyelindo Kupang pun merupakan salah satu sekolah dengan basis kejuruan informatika komputer. Sekolah ini dapat menerapkan ujian yang terkomputerisasi dengan sebuah sistem yang dinamakan sistem ujian online. Sistem ini dibangun dengan framework
codeigniter.
Menurut (Rahardja, Aini, & Santoso, 2018) yang berjudul “Pengintegrasian YII Framework Berbasis API pada Sistem Penilaian Absensi” menjelaskan bahwa:
Application Programming Interface atau API adalah sebuah dokumentasi
yang terdiri dari interface, kelas, fungsi, struktur dan sebagainya agar dapat membangun sebuah perangkat lunak. Dan API bisa dikatakan sebagai suatu kode pemrograman penghubung antara aplikasi atau web yang telah kita buat dengan fungsi yang dikerjakan. Dalam sistem informasi dirancang untuk saling terintegrasi semakin dibutuhkan beriringan dengan berkembangnya waktu. Integrasi data merupakan proses penggabungan data dari beberapa sumber ke dalam bentuk yang terintegrasi. Sumber integrasi data bisa menghasilkan jawaban terhadap permintaan yang tak dapat dijawab oleh masing-masing sumber data apabila dilakukan secara terpisah.
Berdasarkan penelitian – penelitian terdahulu maka penelitian ini akan menerapkan menerapkan metode model view controller (MVC) dengan objek yang berbeda.
BAB III
ANALISA SISTEM BERJALAN
3.1. Tinjauan Institusi / Organisasi
Sekolah pertanian Kadudampit adalah sekolah yang dalam proses belajar mengajar 70 % dalam ruangan kelas sedangkan 30% adalah laboratorium alam seperti sawah, ladang pertanian, kolam, danau, hutan dan lain–lainnya. Tidak dipungkiri Ilmu Pengetahuan dan tekhnologi komunikasi sangat dibutuhkan dalam bidang pertanian untuk melengkapi kebutuhan – kebutuhan kegiatan belajar mengajar disekolah dalam memenuhi kompetensi siswa baik dalam segi Adaptif dan Normatif bahkan segi Produktif.
3.1.1. Sejarah Institusi / Organisasi
SMK Pertanian Kadudampit berada di Jl. Swadarma KM 1 Kp. Lebak Siuh RT 18/07 Desa Sukamaju Kecamatan Kadudampit Kabupaten Sukabumi Provinsi Jawa Barat yang merupakan lokasi strategis untuk mengembangkan profesi keahlian dibidang pertanian, yang merupakan wilayah agrowisata di Jawa Barat. Nama Yayasan SMK Pertanian Kadudampit yaitu Yayasan Ath-Thurisin yang berdiri sejak tahun 2006.
3.1.2. Struktur Organisasi
Sumber: Profil SMK Pertanian Kadudampit (2016)
Gambar III.2. Struktur Organisasi Smk Pertanian Kadudampit
1. Pembina Yayasan
a) Menyelenggarakan lembaga pendidikan sejak proses perijinan. b) Menetapkan visi, orientasi, platform program dan kebijakan sekolah. c) Menyeleksi, mengangkat dan memberhentikan tenaga pengelola sekolah. d) Menyediakan sarana, prasarana dan pembiayaan sekolah.
e) Memberikan pertimbangan dan persetujuan terhadap rencana program pengelolaan sekolah.
f) program dan anggaran sekolah.
g) Mengawasi dan mengendalikan proses pengelolaan sekolah. h) Menilai kinerja dan tanggung jawab pengelola sekolah.
i) Memutuskan batas-batas kerja sama sekolah dengan pihak luar.
j) Bertanggung jawab atas kepengurusan, kepentingan dan tujuan yayasan. k) Bertanggung jawab di berhadapan pengadilan.
l) Bertanggung jawab penuh terhadap pengelolaan unit-unit yayasan. 2. Ketua Yayasan
a) Memimpin rapat – rapat organisasi.
b) Bertanggung jawab terhadap operasional organisasi.
c) Memimpin pelaksanaan kegiatan sebagaimana visi dan misi organisasi d) Memimpin koordinasi internal dan mewakili organisasi untuk urusan
eksternal.
e) Menerbitkan dan menandatangani surat – surat administrasi untuk program kegiatan – kegiatan atas persetujuan pendiri / pembina organisasi.
f) Melaporkan pelaksanaan kegiatan. 3. Kepala Sekolah
a) Memimpin pengelolaan sekolah.
b) Merencanakan program dan anggaran sekolah berdasarkan RKS dan RKJM yang ditetapkan oleh pengurus yayasan.
c) Mengorganisir tenaga guru dan pegawai.
d) Mengendalikan pelaksanaan program dan anggaran sekolah. e) Mengevaluasi pelaksanaan program dan realisasi anggran sekolah. f) Melaksanakan tugas kedinasan dengan instansi terkait.
g) Mengkomunikasikan program dan kebijakan sekolah dengan wali murid, komite sekolah dan masyarakat.
h) Melaporkan kondisi, perkembangan, proses dan hasil pelaksanaan program sekolah kepada pengurus yayasan dan komite sekolah.
i) Mempertanggungjawabkan kondisi, perkembangan, proses dan hasil pelaksanaan program sekolah kepada pengurus yayasan.
4. Komite Sekolah
a) Mendorong tumbuhnya perhatian dan komitmen masyarakat terhadap penyelenggaraan pendidikan yang bermutu.
b) Melakukan kerjasama dengan masyarakat (perorangan/organisasi/dunia usaha/dunia industri) dan pemerintah berkenaan dengan penyelenggaraan pendidikan yang bermutu.
c) Menampung dan menganalisis aspirasi, ide, tuntutan, dan berbagai kebutuhan pendidikan yang diajukan oleh masyarakat.
d) Memberikan masukan, pertimbangan, dan rekomendasi kepada sekolah mengenai:
1) Kebijakan dan program pendidikan.
2) Rencana Anggaran Pendidikan dan Belanja Sekolah (RAPBS). 3) Kriteria kinerja satuan pendidikan/sekolah.
4) Kriteria tenaga kependidikan. 5) Kriteria fasilitas pendidikan.
6) Hal-hal lain yang terkait dengan pendidikan.
e) Mendorong orangtua dan masyarakat berpartisipasi dalam pendidikan guna mendukung peningkatan mutu dan pemerataan Pendidikan.
f) Menggalang dana masyarakat dalam rangka pembiayaan penyelenggaraan pendidikan disatuan Pendidikan.
g) Melakukan evaluasi dan pengawasan terhadap kebijakan, program, penyelenggaraan, dan keluaran pendidikan di satuan pendidikan.
5. Ketua Jurusan
a) Menyusun program kerja.
b) Mendalami dan mengembangkan kurikulum sesuai dengan jurusan. c) Mengkoordinir tugas guru dan jurusan.
d) Mengkoordinir tugas Pokja pengembangan kurikulum sesuai dengan jurusan. e) Mengevaluasi analisa kurikulum dari masing-masing guru sesuai dengan
tugasnya.
f) Mengkoordinir penggunaan ruang praktek dalam jurusannya.
g) Membantu kepala sekolah dan peningkatan profesi guru sesuai dengan jurusan.
h) Membantu urusan administrasi meliputi catatan kewajiban siswa, data guru, inventaris sekolah dalam jurusannya.
i) Membantu wakil kepala sekolah bidang hubungan industry dan kurikulum. j) Membantu melaksanakan dan memelihara dengan dunia kerja/dunia industry
data instansi yang terkait.
k) Membantu pelaksana bimbingan penyuluhan kejuruan dalam jurusannya. l) Supervisi dan evaluasi kegiatan belajar mengajar dan tugas lain jalan
urusannya.
m) Memasarkan dan menelusuri tamatan. 6. Kepala Tata Usaha
a) Mengkoordinasi dan melaksanakan kegiatan organisasi/instansi. b) Membina dan pengembangan karier pegawai tata usaha.
c) Memberi penilaian hasil kerja karyawan. d) Menyusun program tata usaha.
f) Membagi tugas tata usaha dan pembantu pelaksana.
g) Menyusun laporan pelaksanaan kegiatan pengurusan ketatausahaan secara berkala.
3.2. Proses Bisnis Sistem
Guru melakukan absensi masuk sistem menampilkan jadwal yang akan diajar oleh guru,lalu guru memilih jadwal mengajar system menampilkan absen siswa, kemudian guru mengabsen siswa satu persatu setelah semua selesai di absen guru menyimpan absen dan sistem menampilkan data yang terlah tersimpan. Adapun
activity diagram dari prosedur tersebut adalah:
3.3. Spesifikasi Dokumen Sistem Berjalan 3.3.1. Spesifikasi Bentuk Dokumen Masukan
Dokumen masukan adalah semua laporan yang digunakan sebagai dasar untuk memperoleh data data yang akan diproses untuk menghasilkan suatu keluaran. Laporan masukan yang digunakan yaitu:
1. Nama Dokumen : absen masuk guru Fungsi : bisa mengabsen siswa Sumber : petugas admin
Tujuan : laporan absen harian
Media : Database
Frekuensi : Setiap hari Jumlah : Satu lembar
Format : Lampiran A1
3.3.2. Spesifikasi Bentuk Dokumen Keluaran
Dokumen keluaran adalah segala bentuk laporan yang akan mendukung pelaporan absensi kepada orang tua siswa. Dokumen keluaran yang digunakan yaitu:
2. Nama Dokumen : absen siswa
Fungsi : laporan absen siswa Sumber : petugas admin Tujuan : orang tua siswa
Media : Database
Frekuensi : Setiap hari Jumlah : Satu lembar
uc Use Case Model
Masukan email dan kata sandi
« include»
Login
Mengelola data guru
Mengelola data siswa
Mengelola data kelas Admin
Mengelola data mata pelajaran Mengelola data jadwal pelajaran Melihat laporan absen guru Melihat laporan absen mapel
BAB IV
RANCANG SISTEM DAN PROGRAM USULAN
4.1. Analisis Kebutuhan Software A. Tahapan Analisis
Pada sistem informasi absensi SMK Pertanian Kadudampit ini, hak akses tertinggi sebagai pengurus diberikan kepada admin untuk mengelola absensi di SMK Pertanian Kadudampit.
B. Use Case Diagram
1. Use Case Diagram admin
Gambar IV.4. Use Case diagram admin 20
Tabel IV.1.
Deskripsi dari Use Case Diagram admin mengelola data guru
Name: Mengelola data guru
Short Description: Admin dapat melakukan tambah, ubah, dan hapus data guru. Precondition: Admin sudah melakukan login. Postcondition: Data guru berhasil di masukan.
Actors: Admin
Trigger: Admin ingin menambah data guru. Standard process: (1) Admin melakukan login.
(2) Admin menambah data guru Alternative
processes: (2’) Admin mengubah data guru.
Tabel IV.2.
Deskripsi dari Use Case Diagram admin mengelola data siswa
Name: Mengelola data siswa
Short Description: Admin dapat melakukan tambah, ubah, dan hapus data siswa. Precondition: Admin sudah melakukan login. Postcondition: Data siswa berhasil di masukan.
Actors: Admin
Trigger: Admin ingin menambah data siswa. Standard process: (1) Admin melakukan login.
(2) Admin menambah data siswa Alternative
Tabel IV.3.
Deskripsi dari Use Case Diagram admin mengelola data kelas
Name: Mengelola data kelas
Short Description: Admin dapat melakukan tambah, ubah, dan hapus data kelas. Precondition: Admin sudah melakukan login. Postcondition: Data kelas berhasil di masukan.
Actors: Admin
Trigger: Admin ingin menambah data kelas. Standard process: (1) Admin melakukan login.
(2) Admin menambah data kelas Alternative
processes: (2’) Admin mengubah data kelas.
Tabel IV.4.
Deskripsi dari Use Case Diagram admin mengelola data mata pelajaran
Name: Mengelola data mata pelajaran Short Description: Admin dapat melakukan tambah,
ubah, dan hapus data mata pelajaran. Precondition: Admin sudah melakukan login. Postcondition: Data mata pelajaran berhasil di
masukan.
Actors: Admin
Trigger: Admin ingin menambah data mata pelajaran.
Standard process:
(1) Admin melakukan login. (2) Admin menambah data mata pelajaran
Alternative processes:
(2’) Admin mengubah data mata pelajaran.
Tabel IV.5.
Deskripsi dari Use Case Diagram admin mengelola data jadwal pelajaran
Name: Mengelola data jadwal pelajaran Short Description: Admin dapat melakukan tambah,
ubah, dan hapus data jadwal pelajaran. Precondition: Admin sudah melakukan login.
Postcondition: Data jadwal pelajaran berhasil di masukan.
Actors: Admin
Trigger: Admin ingin menambah data jadwal pelajaran.
Standard process:
(1) Admin melakukan login. (2) Admin menambah data jadwal pelajaran
Alternative processes:
(2’) Admin mengubah data jadwal pelajaran.
Tabel IV.6.
Deskripsi dari Use Case Diagram admin melihat laporan absen guru
Name: Melihat laporan absen guru
Short Description: Admin dapat melihat laporan absen guru
Precondition: Admin sudah melakukan login. Postcondition: Admin dapat mencetak laoran absensi
guru.
Actors: Admin
Trigger: Admin ingin melihat laporan absen guru.
Standard process: (1) Admin melakukan login. (2) Admin melihat laporan absensi guru. Alternative
Tabel IV.7.
Deskripsi dari Use Case Diagram admin melihat laporan absen siswa
Name: Melihat laporan absen siswa
Short Description: Admin dapat melihat laporan absen siswa
Precondition: Admin sudah melakukan login. Postcondition: Admin dapat mencetak laoran absensi
guru.
Actors: Admin
Trigger: Admin ingin melihat laporan absen guru.
Standard process: (1) Admin melakukan login. (2) Admin melihat laporan absensi guru.
Alternative
processes: (2’) Admin dapat exsport data laporan
2. Use Case diagram guru
Tabel IV.8.
Deskripsi dari Use Case Diagram guru melakukan absen masuk
Name: Melakukan absen masuk
Short Description: Guru dapat melakukan absen masuk. Precondition: Guru sudah melakukan login.
Postcondition: Guru berhasil melakukan absen masuk
Actors: Guru
Trigger: Guru ingin melakukan absen masuk Standard process: (1) Guru melakukan login.
(2) Guru melakukan absen masuk
Tabel IV.9.
Deskripsi dari Use Case Diagram guru melakukan absen siswa
Name: Melakukan absen siswa Short Description: Guru melakukan absen siswa
Precondition: Guru sudah melakukan absen masuk. Postcondition: Guru dapat menyimpan absen siswa
Actors: Guru
Trigger: Admin ingin melihat laporan absen guru.
Standard process: (1) Guru melakukan login.
(2) Guru melakukan absen masuk. Alternative
act data guru
Admin System
Melakukan login v alidasi
[gagal]
Memilih menu data guru
Menampilkan dashboard
Menampilkan data
Selesai
Tambah Ubah Aktif Hapus data
Menampilkan form Isi form
Simpan data
C. Activity Diagram
1. Activity diagram admin mengelola data guru
Alur activity diagram untuk menggambarkan alur proses sistem ketika petugas mengelola data guru dengan model swimlane.
act data siswa
Admin System
Melakukan login v alidasi
[gagal]
Memilih menu data guru
Menampilkan dashboard
Menampilkan data
Selesai
Tambah Ubah Hapus Hapus data
Menampilkan form Isi form
Simpan data
2. Activity diagram admin mengelola data siswa
Menampilkan
Menampilkan data
Tambah
Menampilkan
3. Activity diagram admin mengelola data kelas
act data mapel
Admin System
Melakukan login v alidasi
[gagal]
Memilih menu data mata pelajaran
Menampilkan dashboard
Menampilkan data
Selesai
Tambah Ubah Hapus Hapus data
Menampilkan form Isi form
Simpan data
4. Activity diagram admin mengelola data mata pelajaran
act guru2
Admin System
Melakukan login v alidasi
[gagal]
Memilih menu data jadwal pelajaran
Menampilkan dashboard
Menampilkan data
Selesai
Tambah Ubah Hapus Hapus data
Menampilkan form Isi form
Simpan data
5. Activity diagram admin mengelola data jadwal pelajaran
Menampilkan
Menampilkan data
6. Activity diagram admin melihat laporan absen guru
Menampilkan
Menampilkan data
7. Activity diagram admin melihat laporan absen mata pelajaran
Gambar IV.12. Activity diagram admin mengelola laporan absen mata pelajaran
4.2. Desain 4.2.1. Basis Data
1. Entity Relationship Diagram (ERD)
2. Logical Record Structure (LRS)
Gambar IV.14. Logical Record Structure sistem informasi absensi
3. Spesifikasi file
a. Spesifikasi File Tabel absen guru Nama Database : absen.sql Nama File : absen_guru Akronim : id_guru Tipe File : File Master Akses File : Random Kunci Field : id
Tabel IV.10.
Spesifikasi File absen guru
NO Elemen Data Nama Field Tipe Size Keterangan
1 Id id Integer 11 Primary key
2 Nama guru id_guru Integer 15
3 Masuk jam_masuk Time
4 Pulang jam_pulang Time
5 tanggal tanggal Date
b. Spesifikasi File Tabel absen siswa Nama Database : absen.sql Nama File : absen_siswa Akronim : nis
Tipe File : File Master Akses File : Random Kunci Field : id
Tabel IV.11.
Spesifikasi File absen siswa
NO Elemen Data Nama Field Tipe Size Keterangan
1 Id id Integer 11 Primary key
2 Nama siswa nis Integer 16
3 Jam jam Time
4 Jadwal id_jadwal Interger 11
5 Absen absensi enum
6 Tanggal tanggal Date
c. Spesifikasi File Tabel data kelas Nama Database : absen.sql Nama File : kelas Akronim : nama_kelas
Tipe File : File Master Akses File : Random Kunci Field : id
Tabel IV.12. Spesifikasi File kelas
NO Elemen Data Nama Field Tipe Size Keterangan
1 Id id Integer 0 Primary Key
2 Nama kelas nama_kelas Varchar 255
d. Spesifikasi File Tabel data mata pelajaran Nama Database : absen.sql
Nama File : mapel Akronim : nama_mapel Tipe File : File Master Akses File : Random Kunci Field : id
Tabel IV.13. Spesifikasi File mapel
NO Elemen Data Nama Field Tipe Size Keterangan
1 id id Integer 0 Primary Key
e. Spesifikasi File Table jadwal pelajaran Nama Database : absen.sql
Nama File : jadwal Akronim : id_kelas Tipe File : File Master Akses File : Random Kunci Field : id
Tabel IV.14. Spesifikasi File jadwal
NO Elemen Data Nama Field Tipe Size Keterangan
1 Id id Integer 0 Primary key
2 Nama jadwal id_kelas Integer 0 3 Mata pelajaran id_mapel Integer 0
4 hari hari enum
5 Nama guru id_guru Integer 0
6 mulai jam_mulai Time 0
7 akhir jam_akhir Time 0
f. Spesifikasi Tabel File kirim sms Nama Database : absen.sql Nama File : send_sms Akronim : no_hp Tipe File : File Master Akses File : Random Kunci Field : id
Tabel IV.15. Spesifikasi File send_sms
NO Elemen Data Nama Field Tipe Size Keterangan
1 Id id Integer 0 Primary key
2 Nomor no_hp varchar 255
3 Nama siswa nis varchar 255
4 coba try integer 0
5 Kirim is_send Enum 0
6 Buat Created_at datetime 0 7 ubah Updated_at datetime 0
4.2.2. Software Architecture 1. Class diagram
3. Sequence diagram
cmp Component Model
Corntab
PHP
Aphace
MySQL Sistem Inv entory
Bootstrap 4. Component diagram
5. Deployment diagram
4.3.1. User Interface 1. Tampilan Login
Gambar IV.19. Tampilan halaman login 2. Tampilan dashboard
3. Tampilan data guru
Gambar IV.21. Tampilan halaman data guru 4. Tampilan data siswa
5. Tampilan data kelas
Gambar IV.23. Tampilan halaman data kelas 6. Tampilan data mata pelajaran
7. Tampilan jadwal pelajaran
Gambar IV.25. Tampilan halaman jadwal pelajaran 8. Tampilan laporan absen guru
9. Tampilan laporan absen siswa
Gambar IV.27. Tampilan halaman laporan absen siswa
4.3. Code Generation
a. Controller Absen.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Absen extends CI_Controller { public $data = [];
public $field = []; public $id;
public function construct(){ parent:: construct();
if (!$this->ion_auth->logged_in()) { }else{ }else{ } }
// redirect them to the login page redirect('welcome', 'refresh'); if ($this->ion_auth->in_group('guru')){ $user = $this->ion_auth->user()->row(); $this->id = $user->id; show_404(); $this->load->model('Guru_model'); $this->load->model('Siswa_model'); $this->load->model('Service_model'); $this->load->model('Absen_model');
foreach ($this->General_model->umum() as $data) { $this->data['judul'] = $data->nama_instansi; $this->data['logo'] = $data->logo; $this->data['alamat'] = $data->alamat_instansi; $this->data['kontak'] = $data->hp_instansi; } $this->data['message'] = ($this->session->flashdata('message')) ? $this->session->flashdata('message') : ""; }
public function masuk() {
if ($this->ion_auth->in_group('guru')){ $this->field['id_guru'] = $this->id; $this->field['tanggal'] = date('Y-m-d'); $this->field['jam_masuk'] = date('H:i:s'); if($this->Guru_model->absen_masuk($this->field) == "200"){ $this->session->set_flashdata('message', "Berhasil Absen Masuk, Selamat mengajar..!", "success");
redirect('Dashboard', 'refresh'); }else{
$this->session->set_flashdata('message', "Gagal Absen, Silahkan hubungi tim Support.", "danger");
redirect('Dashboard', 'refresh'); }else{ } } } show_404();
public function keluar() {
if ($this->ion_auth->in_group('guru')){
if($this->Guru_model->absen_keluar($this->id) == "200"){ $this->session->set_flashdata('message', "Berhasil Absen Keluar, Hati-hati dijalan ..!", "success");
redirect('Dashboard', 'refresh'); }else{
$this->session->set_flashdata('message', "Gagal Absen, Silahkan hubungi tim Support.", "danger");
}else{
} }
}
show_404();
public function siswa($id = null){ if ($id != null) {
$id = $this->uri->segment(3);
$jadwal = $this->Absen_model->DetailJadwal($id);
foreach ($jadwal as $value) {
$id_kelas = $value->id_kelas; $this->data['mapel'] = $value->nama_mapel; $this->data['nm_kelas'] = $value->nama_kelas; $this->data['jam_akhir'] = $value->jam_akhir; } if ($this->input->post('submit')) { if (date('H:i:s') < $this->data['jam_akhir']) { if ($this->input->post('id_absen')) { $nis = $this->input->post('nis', TRUE);
$absen = $this->input->post('absensi', TRUE); if($this->Absen_model-
>UpdateAbsen($id,$nis,$absen) == "200"){
$this->session->set_flashdata('message', "Berhasil Update Absen", "success");
}else{
redirect(base_
url('Absen/siswa/'.$id), 'refresh');
$this->session->set_flashdata('message', "Gagal Absen, Silahkan hubungi tim Support.", "danger");
redirect(base_url('Absen/siswa/'.$id), 'refresh');
TRUE);
} }else{
$nis = $this->input->post('nis', TRUE); $absen = $this->input->post('absensi',
if($this->Absen_model- >InsertAbsen($id,$nis,$absen, $id_kelas) == "200"){
$this->session- >set_flashdata('message', "Berhasil Absen", "success");
redirect(base_url('Absen/siswa/'.$id), 'refresh'); }else{
$this->session-
>set_flashdata('message', "Gagal Absen, Silahkan hubungi tim Support.", "danger");
redirect(base_url('Absen/siswa/'.$id), 'refresh'); }
HABIS ... !')</script>";
}else{ }
echo "<script>alert('JAM MAPEL INI SUDAH
$this->session->set_flashdata('message', "Gagal Absen, Jam absen sudah berakhir.", "danger");
redirect(base_url('Dashboard'), 'refresh'); } } $this->data['siswa'] = $this->Siswa_model- >KelasData($id_kelas); $this->data['id_jadwal'] = $id; $this->template->load('tema','guru/list_siswa', $this->data); }else{ } } } show_404(); /**
* Log the user in */
public function login() {
$this->data['judul'] = $this->lang->line('login_heading');
// validate form input
$this->form_validation->set_rules('identity', str_replace(':', '', $this- >lang->line('login_identity_label')), 'required');
$this->form_validation->set_rules('password', str_replace(':', '', $this- >lang->line('login_password_label')), 'required');
if ($this->form_validation->run() === TRUE) {
// check to see if the user is logging in // check for "remember me"
$remember = (bool)$this->input->post('remember'); if ($this->ion_auth->login($this->input->post('identity'), $this- >input->post('password'), $remember)) { >ion_auth->messages()); } else { >ion_auth->errors());
//if the login is successful
//redirect them back to the home page
$this->session->set_flashdata('message', $this-
redirect('/Dashboard', 'refresh');
// if the login was un-successful // redirect them back to the login page
$this->session->set_flashdata('message', $this-
redirect('Welcome/', 'refresh'); // use redirects instead of loading views for compatibility with MY_Controller libraries
} }
else {
// set the flash data error message if there is one $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); >set_value('identity'), $this->data['identity'] = [ 'name' => 'identity', 'id' => 'identity', 'type' => 'text', 'value' => $this->form_validation- ]; $this->data['password'] = [ 'name' => 'password', 'id' => 'password', 'type' => 'password', ]; $this->_render_page('auth' . DIRECTORY_SEPARATOR . 'login', $this->data); } } /**
* Log the user out */
public function logout() {
$this->data['judul'] = "Logout";
// log the user out
$this->ion_auth->logout();
>messages());
}
// redirect them to the login page
$this->session->set_flashdata('message', $this->ion_auth-
redirect('welcome', 'refresh');
/**
* Change password */
public function change_password() {
$this->data['judul'] = "Ganti Kata Sandi";
$this->form_validation->set_rules('old', $this->lang- >line('change_password_validation_old_password_label'), 'required');
$this->form_validation->set_rules('new', $this->lang-
>line('change_password_validation_new_password_label'), 'required|min_length[' . $this->config->item('min_password_length', 'ion_auth') . ']|matches[new_confirm]');
$this->form_validation->set_rules('new_confirm', $this->lang- >line('change_password_validation_new_password_confirm_label'), 'required');
if (!$this->ion_auth->logged_in()) {
}
$user = $this->ion_auth->user()->row();
if ($this->form_validation->run() === FALSE) {
// display the form
// set the flash data error message if there is one $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); $this->data['min_password_length'] = $this->config- >item('min_password_length', 'ion_auth'); $this->data['old_password'] = [ 'name' => 'old', 'id' => 'old', 'type' => 'password', 'class' => 'form-control' '}.*$', ]; $this->data['new_password'] = [ 'name' => 'new', 'id' => 'new', 'type' => 'password', 'pattern' => '^.{' . $this->data['min_password_length'] . 'class' => 'form-control' ]; $this->data['new_password_confirm'] = [
'}.*$', 'name' => 'new_confirm', 'id' => 'new_confirm', 'type' => 'password', 'pattern' => '^.{' . $this->data['min_password_length'] . 'class' => 'form-control' ]; $this->data['user_id'] = [ 'name' => 'user_id', 'id' => 'user_id', 'type' => 'hidden', 'value' => $user->id, 'class' => 'form-control' ]; >data);
$this->template->load('tema', 'auth/change_password', $this-
// render //$this->_render_page('auth' . DIRECTORY_SEPARATOR . 'change_password', $this->data); } else { $identity = $this->session->userdata('identity'); $change = $this->ion_auth->change_password($identity, $this->input->post('old'), $this->input->post('new'));
if ($change) { >ion_auth->messages()); } else {
//if the password was successfully changed $this->session->set_flashdata('message', $this- $this->logout(); $this->session->set_flashdata('message', $this- >ion_auth->errors()); } } } redirect('auth/change_password', 'refresh'); /** * Forgot password */
public function forgot_password() {
$this->data['judul'] = $this->lang->line('forgot_password_heading');
// setting validation rules by checking whether identity is username or
if ($this->config->item('identity', 'ion_auth') != 'email') {
$this->form_validation->set_rules('identity', $this->lang- >line('forgot_password_identity_label'), 'required'); } else { $this->form_validation->set_rules('identity', $this->lang- >line('forgot_password_validation_email_label'), 'required|valid_email'); } if ($this->form_validation->run() === FALSE) {
$this->data['type'] = $this->config->item('identity', 'ion_auth'); // setup the input
$this->data['identity'] = [ 'name' => 'identity', 'id' => 'identity', ];
if ($this->config->item('identity', 'ion_auth') != 'email') { $this->data['identity_label'] = $this->lang- >line('forgot_password_identity_label'); } else { $this->data['identity_label'] = $this->lang- >line('forgot_password_email_identity_label');
}
// set any errors and display the form
$this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); $this->_render_page('auth' . DIRECTORY_SEPARATOR . 'forgot_password', $this->data); } else {
$identity_column = $this->config->item('identity', 'ion_auth'); $identity = $this->ion_auth->where($identity_column, $this- >input->post('identity'))->users()->row();
if (empty($identity)) {
if ($this->config->item('identity', 'ion_auth') != 'email') { $this->ion_auth- >set_error('forgot_password_identity_not_found'); } else { $this->ion_auth- >set_error('forgot_password_email_not_found'); }
>ion_auth->errors());
}
$this->session->set_flashdata('message', $this-
redirect("auth/forgot_password", 'refresh');
code to the user
// run the forgotten password method to email an activation
$forgotten = $this->ion_auth->forgotten_password($identity- >{$this->config->item('identity', 'ion_auth')});
if ($forgotten) {
>ion_auth->messages());
// if there were no errors
$this->session->set_flashdata('message', $this-
redirect("auth/login", 'refresh'); //we should display a confirmation page here instead of the login page
} else { >ion_auth->errors()); } } } $this->session->set_flashdata('message', $this- redirect("auth/forgot_password", 'refresh'); /**
*
* @param string|null $code The reset code */
public function reset_password($code = NULL) { if (!$code) { show_404(); } $this->data['judul'] = $this->lang->line('reset_password_heading'); $user = $this->ion_auth->forgotten_password_check($code); if ($user) {
// if the code is valid then display the password reset form
$this->form_validation->set_rules('new', $this->lang- >line('reset_password_validation_new_password_label'), 'required|min_length[' . $this->config->item('min_password_length', 'ion_auth') . ']|matches[new_confirm]');
$this->form_validation->set_rules('new_confirm', $this->lang- >line('reset_password_validation_new_password_confirm_label'), 'required');
if ($this->form_validation->run() === FALSE) {
// set the flash data error message if there is one $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); $this->data['min_password_length'] = $this->config- >item('min_password_length', 'ion_auth'); $this->data['new_password'] = [ 'name' => 'new', 'id' => 'new', 'type' => 'password', 'pattern' => '^.{' . $this- >data['min_password_length'] . '}.*$', ]; $this->data['new_password_confirm'] = [ 'name' => 'new_confirm', 'id' => 'new_confirm', 'type' => 'password', 'pattern' => '^.{' . $this- >data['min_password_length'] . '}.*$', ]; $this->data['user_id'] = [ 'name' => 'user_id', 'id' => 'user_id', 'type' => 'hidden', 'value' => $user->id, ]; $this->data['csrf'] = $this->_get_csrf_nonce(); $this->data['code'] = $code;
b. Html/view
<div id="infoMessage"><?php echo $message;?></div>
<p><?php echo anchor('auth/create_user', lang('index_create_user_link'), "class='btn btn-primary'")?></p>
<table cellpadding=0 cellspacing=10 class="table table-bordered" id="table_id"> <thead> <tr> <th><?php echo lang('index_fname_th');?></th> <th><?php echo lang('index_lname_th');?></th> <th><?php echo lang('index_email_th');?></th> <th><?php echo lang('index_status_th');?></th> <th><?php echo lang('index_action_th');?></th> </tr> </thead> <tbody>
<?php foreach ($users as $user):?> <tr> <td><?php echo htmlspecialchars($user- >first_name,ENT_QUOTES,'UTF-8');?></td> <td><?php echo htmlspecialchars($user- >last_name,ENT_QUOTES,'UTF-8');?></td> <td><?php echo htmlspecialchars($user- >email,ENT_QUOTES,'UTF-8');?></td> <td><?php echo ($user->active) ?
anchor("auth/deactivate/".$user->id, lang('index_active_link'), "class='btn btn- success'") : anchor("auth/activate/".$user->id, lang('index_inactive_link') , "class='btn btn-danger'");?>
</td>
<td><?php echo anchor("auth/edit_user/".$user->id, 'Ubah', "class='btn btn-warning'") ;?></td>