• Tidak ada hasil yang ditemukan

PENERAPAN MODEL MVC PADA SISTEM INFORMASI ABSENSI SISWA SMK PERTANIAN BERBASIS SMS GATEWAY SKRIPSI ANDRI SUTIADI NIM :

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENERAPAN MODEL MVC PADA SISTEM INFORMASI ABSENSI SISWA SMK PERTANIAN BERBASIS SMS GATEWAY SKRIPSI ANDRI SUTIADI NIM :"

Copied!
100
0
0

Teks penuh

(1)

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

(2)

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..

(3)
(4)
(5)
(6)

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]

(7)

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.

(8)

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.

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

DAFTAR LAMPIRAN

Halaman

Lampiran A. Daftar Kehadiran Siswa 83

Lampiran B. Daftar Kehadiran Guru 83

(19)

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

(20)

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”.

(21)

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.

(22)

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) .

(23)

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.

(24)

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

(25)

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.

(26)

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.

(27)

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.

(28)

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.

(29)

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:

(30)

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.

(31)

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.

(32)

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.

(33)

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.

(34)

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.

(35)

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.

(36)

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:

(37)

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

(38)

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

(39)

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

(40)

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.

(41)

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

(42)

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

(43)

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

(44)

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.

(45)

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

(46)

Menampilkan

Menampilkan data

Tambah

Menampilkan

3. Activity diagram admin mengelola data kelas

(47)

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

(48)

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

(49)

Menampilkan

Menampilkan data

6. Activity diagram admin melihat laporan absen guru

(50)

Menampilkan

Menampilkan data

7. Activity diagram admin melihat laporan absen mata pelajaran

Gambar IV.12. Activity diagram admin mengelola laporan absen mata pelajaran

(51)

4.2. Desain 4.2.1. Basis Data

1. Entity Relationship Diagram (ERD)

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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

(57)

3. Sequence diagram

(58)

cmp Component Model

Corntab

PHP

Aphace

MySQL Sistem Inv entory

Bootstrap 4. Component diagram

(59)

5. Deployment diagram

(60)

4.3.1. User Interface 1. Tampilan Login

Gambar IV.19. Tampilan halaman login 2. Tampilan dashboard

(61)

3. Tampilan data guru

Gambar IV.21. Tampilan halaman data guru 4. Tampilan data siswa

(62)

5. Tampilan data kelas

Gambar IV.23. Tampilan halaman data kelas 6. Tampilan data mata pelajaran

(63)

7. Tampilan jadwal pelajaran

Gambar IV.25. Tampilan halaman jadwal pelajaran 8. Tampilan laporan absen guru

(64)

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();

(65)

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() {

(66)

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");

(67)

}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");

(68)

}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");

(69)

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');

(70)

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 {

(71)

// 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() {

(72)

$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()) {

(73)

}

$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'] = [

(74)

'}.*$', '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'));

(75)

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');

email

// setting validation rules by checking whether identity is username or

if ($this->config->item('identity', 'ion_auth') != 'email') {

(76)

$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');

(77)

}

// 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'); }

(78)

>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'); /**

(79)

*

* @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) {

(80)

// 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;

(81)

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>

Gambar

Gambar III.2. Struktur Organisasi Smk Pertanian Kadudampit
Gambar III.3. Activity Diagram Guru
Gambar IV.4. Use Case diagram admin  20
Tabel IV.1.
+7

Referensi

Dokumen terkait

Dengan demikian penulis membuat perancangan sistem informasi akademik berbasis SMS Gateway pada SMK Satya Praja Petarukan yang diharapkan mampu membantu orang tua

Dari penulisan skripsi yang berjudul „Sistem Manajemen Bimbingan Konseling Berbasis SMS Gateway SMK N 1 SAPTOSARI ini dapat disimpulkan bahwa sistem manajemen

Kesimpulan dari penelitian ini adalah Sistem Informasi Kehadiran Siswa di SMP Nurul Jadid Paiton Probolinggo berbasis SMS Gateway dapat digunakan untuk mencatat data

gateway dibangun dengan bahasa pemrograman PHP dan Database MySQL. Aplikasi system informasi berbasis SMS gateway yang dibuat dapat digunakan sebagai

Pada tugas akhir ini dilakukan perencanaan Aplikasi Layanan Akademik Kepada Siswa-siswi dan Orang Tua/Wali pada SMK PGRI Pangkalpinang Berbasis SMS Gateway

Tahap implementasi pelayanan informasi nilai mahasiswa berbasis sms gateway dilakukan dengan menggunakan gammu sebagai sms gateway, MySQL sebagai pengolah database

Judul : Implementasi SMS Gateway untuk Informasi Absensi Siswa dan Pengajar (Studi Kasus: Absensi Siswa dan Pengajar di SD Swasta Adhyaksa Medan).. Kategori

Layanan informasi absensi siswa berbasis SMS ini berfungsi untuk memberikan informasi kehadiran siswa kepada orang tua siswa sesuai dengan format SMS yang