You are on page 1of 48

36

Penggunaan Framework CodeIgniter pada Program Pencatatan Absensi Siswa Berbasis Web di SMA Negeri Tempeh

Adi Heru Utomo* Awan Pribadi Basuki**

CodeIgniter adalah sebuah open source web application framework untuk digunakan membangun web site dinamis dengan PHP. Tujuannya adalah memungkinkan (developer) untuk membangun proyek lebih cepat dibanding dengan menulis kode dari awal, dengan menyediakan banyak libraries untuk tugas-tugas umum yang diperlukan dengan interface dan struktur logis yang sederhana untuk mengakses libraries tersebut.

Pada penelitian ini dilakukan penerapan framework CodeIgniter untuk membangun suatu program pencatatan absensi siswa berbasis web di SMA Negeri Tempeh.

Metode yang digunakan pada penelitian ini adalah model waterfall yang memiliki tahapan tahapan: requirement definition, system and software design, implementation and unit testing, integration and system testing, dan operation and maintenance. Pada penelitian ini tahap operation and maintenance tidak dilakukan.

Kesimpulan dari penelitian ini adalah: 1) Penerapan CodeIgniter pada pembuatan program absensi adalah dengan memisahkan file-file program ke dalam 3 kategori, yaitu: model, view dan controller. 2) Dengan program pencatatan absensi, maka proses entry data menjadi lebih praktis, yaitu dengan menggunakan komputer. 3) Program pencatatan absensi dapat digunakan untuk merekap data absensi dengan praktis dan cepat, yaitu dengan memilih kriteria perakapan, maka hasilnya dapat segera ditampilkan. 4) Program pencatatan absensi dapat digunakan untuk

mendeteksi pelanggaran absensi dengan cepat, melalui menu rekap pembinaan. Sedangkan saran untuk penelitian selanjutnya adalah penambahan fitur import data siswa (misalnya dalam format *.csv), agar proses entry data pada tahun ajaran baru tidak dilakukan manual satu persatu.

______________________________________________________________ * Staf Pengajar pada Jurusan Teknologi Informasi Politeknik Negeri Jember
** Freelance programmer, Alumni Jurusan Teknologi Informasi Politeknik Negeri Jember

I. PENDAHULUAN 1.1 Latar Belakang Afektif (sikap) merupakan salah satu komponen penilaian dalam kegiatan belajarmengajar pada sebuah sekolah. Begitu pentingnya sikap, sehingga bisa mempengaruhi keputusan dewan guru untuk menyatakan seorang siswa naik atau tidak pada saat kenaikan kelas. Salah satu poin dalam afektif adalah kehadiran siswa (presensi). Namun ada beberapa siswa terkadang meremehkan masalah kehadirannya di sekolah. Tidak hanya itu, pengelolaan informasi absensi pun terkadang tidak menjadi perhatian yang serius oleh pihak sekolah, sehingga diselenggarakan "seadanya". SMA Negeri Tempeh sebagai salah satu SMA di Kabupaten Lumajang juga melakukan rutinitas pencatatan absensi yang serupa dengan sekolah-sekolah lainnya. Proses pencatatan absensi siswa secara kronologis dapat diilustrasikan dengan gambar berikut:

Gambar 1.1 Kronologi Absensi

1. Wali murid menginformasikan tentang ketidakhadiran putra/putrinya dan menjelaskan sebabnya. Laporan ketidakhadiran juga bisa datang dari guru pengajar. Guru pengajar akan mencatat pada lembar absensi pribadinya, dan jurnal KBM di kelas. Kemudian akan

melakukan konfirmasi / cross check dengan guru piket tentang absensi siswa di kelas yang diajarnya. 2. Guru piket mencatat siswa yang tidak hadir beserta keterangan mengenai penyebab ketidakhadirannya. Selanjutnya memberikan data laporan kepada Guru BK untuk dilanjutkan pada proses berikutnya. 3. Guru BK mencatat pada buku absensi. Selanjutnya mengamati apakah seorang siswa tidak hadir karena alasan yang wajar atau mengandung unsur pelanggaran terhadap Tata Tertib Sekolah (poin skor). 4. Jika dinyatakan memenuhi kriteria pelanggaran, maka guru BK akan mengambil tindakan lebih lanjut untuk mengadakan pembinaan, misalnya dengan memanggil siswa dan orang tuanya untuk hadir di sekolah dan membicarakan tentang pelanggaran yang telah dilakukan siswa tersebut.

Pada proses pencatatan absensi seperti yang sudah dijabarkan di atas terdapat beberapa kekurangan diantaranya: 1. Catatan yang dibuat oleh guru piket umumnya berupa lembaran-lembaran kertas, sehingga mudah tercecer, terselip atau hilang dan terkesan kurang rapi. 2. Guru BK mengalami kendala ketika diharuskan membuat rekap data untuk suatu periode tertentu, misalnya yang digunakan untuk Laporan Penilaian Tengah Semester, atau bahkan untuk Laporan Penilaian Semester. Kendala tersebut misalnya: harus membuka catatan pada buku absensi dan mencatatnya kembali satu-persatu. 3. Siswa yang memenuhi skor pelanggaran dalam hal absensi biasanya terlambat dideteksi, untuk selanjutnya dibina. Akhirnya masalah timbul ketika kenaikan kelas; siswa dinyatakan tidak naik kelas karena jumlah skor pelanggaran yang berhubungan dengan absensi telah melampaui batas. Teknologi untuk mempermudah proses pencatatan absensi sudah mulai dikembangkan sejak lama. Misalnya menggunakan check clock manual dengan kartu, hingga yang berbasis

teknologi informasi dengan menggunakan pemindai sidik jari, atau dengan pemindai barcode yang terhubung dengan sistem yang secara otomatis akan meyimpan data pada database. Demkian pula teknologi web juga mengalami kemajuan yang sangat pesat. Banyak website yang kini menjadi semacam life-style karena kepopulerannya, diantaranya Google, Facebook, Friendster, Twitter, Yahoo dan lain sebagainya. Berdasarkan fakta-fakta tersebut, maka pada penelitian ini akan dibuat sebuah piranti lunak sederhana untuk mempermudah mengelola informasi absensi. Piranti lunak tersebut berbasis web dengan menggunakan framework PHP yaitu CodeIgniter serta RDBMS MySQL. Keuntungan aplikasi berbasis web adalah dapat diakses di sembarang tempat yang terhubung dengan jaringan internet. Oleh karena itu, aplikasi ini memungkinkan orang tua untuk mengakses informasi dan memantau kehadiran putra/putrinya di sekolah dengan cara mengakses aplikasi absensi siswa ini di internet.

1.2 Rumusan Masalah Berdasarkan masalah di atas, maka dapat dibuat rumusan masalah sebagai berikut: 1. Bagaimana menerapkan pemrograman berbasis web menggunakan framework PHP CodeIgniter pada pembuatan program pencatatan absensi? 2. Bagaimana program pencatatan absensi dapat mempermudah proses pencatatan dan pengelolaan informasi absensi? 3. Bagaimana program pencatatan absensi dapat mempermudah petugas untuk mendapatkan rekap data absensi berdasarkan kriteria tertentu? 4. Apakah program pencatatan absensi mampu untuk digunakan mendeteksi siswa yang melampaui skor pelanggaran absensi dalam jangka waktu yang relatif cepat?

1.3 Batasan Masalah Lingkup bahasan pada penelitian ini adalah sebagai berikut: 1. Program ini menggunakan framework CodeIgniter versi 1.7.1 dan MySQL versi 5.1.32. 2. Data siswa yang terlibat dan disimpan dalam basis data hanya terbatas data-data pokok siswa, seperti NIS, nama dan kelas. Begitu pula data absensi hanya terbatas pada tanggal absen, semester, jenis absen dan skor. 3. Kriteria untuk rekap absensi dibatasi pada empat jenis kriteria pencarian yaitu: rekap absen hari ini, rekap absen untuk periode tanggal tertentu, rekap absen berdasar skor pelanggaran dan yang terakhir per individu. 4. Pada Tata Tertib SMAN Tempeh mencantumkan berbagai macam pelanggaran dan skor/poin jika melakukannya. Sebagai upaya untuk deteksi dini tingkat kehadiran siswa, maka pada penelitian ini skor pelanggaran pada ranah absensi tidak boleh lebih dari 30 poin.

1.4 Tujuan dan Manfaat 1.4.1 Tujuan Tujuan dari penelitian ini adalah: 1. Membuat program pencatatan absensi berbasis web menggunakan framework CodeIgniter dan MySQL. 2. Membuat laporan (report) rekapitulasi absensi siswa dengan program pencatatan absensi.

1.4.2 Manfaat Manfaat yang diperoleh dalam penelitian ini adalah:

1. Bagi penulis, untuk memperluas dam memperdalam pemahaman di bidang pemrograman, khususnya penggunaan framework PHP CodeIgniter dan MySQL. Bagi SMA Negeri Tempeh, dapat mempermudah dalam proses entry data absensi siswa dan merekap data absensi tersebut.

II. LANDASAN TEORI 2.1 Program Program adalah instruksi-instruksi yang diberikan kepada komputer agar komputer dapat melaksanakan tugas-tugas tertentu (Kadir, 2000). Program komputer adalah program yang diciptakan secara khusus sehingga memungkinkan komputer melakukan fungsi tertentu. (Departemen Pendidikan Nasional, 2000).

2.2 Sistem Sistem berasal dari bahasa Latin (systema) dan bahasa Yunani (sustema) yaitu suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi. (http://id.wikipedia.org/wiki/Sistem, 2009). Menurut Hartono (1995), terdapat dua kelompok pendekatan dalam mendefinisikan sistem, yaitu yang menekankan pada prosedurnya dan yang menekankan pada komponen atau elemennya. Pendekatan sistem yang lebih menekankan pada prosedur mendefinisikan sistem sebagai berikut: suatu sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu.

Sedangkan pada pendekatan elemen atau komponennya mendefinisikan sistem sebagai kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu.

2.3 Absensi Definisi absensi menurut Kamus Besar Bahasa Indonesia Edisi Ketiga adalah ketidakhadiran (Departemen Pendidikan Nasional, 2000). Demikian pula menurut Kamus Besar Bahasa Indonesia Dalam Jaringan (KKBI Daring) definisi absensi adalah ketidakhadiran (Pusat Bahasa Departemen Pendidikan Nasional Republik Indonesia, 2008). 2.4 Web World Wide Web (www) atau lebih dikenal dengan web merupakan salah satu layanan yang didapat oleh pemakai komputer yang terhubung ke internet. Web pada awalnya adalah ruang informasi dalam internet, dengan menggunakan teknologi hypertext, pemakai dituntun untuk menemukan informasi dengan mengikuti link yang disediakan dalam dokumen web yang ditampilkan dalam browser web(Sidik dan Pohan, 2002). World Wide Web adalah sebuah sistem dokumen hypertext yang terhubung via internet. Dengan sebuah browser, seseorang dapat melihat halaman web yang mungkin berisi teks, gambar, video dan bentuk-bentuk multimedia lainnya dan saling terhubung menggunakan hyperlinks. Menggunakan konsep dari sistem hypertext yang terdahulu, World Wide Web diciptakan pada tahun 1989 oleh seorang Fisikawan Inggris Tim Berners-Lee, sekarang Direktur World Wide Web Consortium dan kemudian dibantu oleh Robert Cailiau, seorang Ilmuwan Komputer berkebangsaan Belgia ketika keduanya bekerja di CERN di Geneva, Switzerland (http://en.wikipedia.org/wiki/World_Wide_Web, 2009).

2.5 Framework Framework adalah kumpulan kode-kode program yang disimpan pada file-file yang berbeda yang dapat menyederhanakan operasi yang berulang-ulang (Upton, 2007:12). (PHP) Framework adalah koleksi kode, libraries, kelas dan run-time environtment yang membantu developer membangun web lebih cepat. Ide utama penggunaan framework adalah untuk menyediakan fungsi-fungsi yang biasa digunakan dan sebagai struktur dasar untuk membangun aplikasi di atasnya (Bari dan Syam, 2008).

2.6 MySQL MySQL adalah suatu perangkat lunak Relational Database Management System (RDBMS), yang berperan dalam penyimpanan, penerimaan, mengatur dan memanipulasi data pada suatu database. MySQL adalah program database. Kelebihan MySQL dibanding RDBMS lain adalah: 1. cost. MySQL adalah open source, dan bebas untuk digunakan bahkan dimodifikasi tanpa perlu membayar, kecuali untuk aplikasi bisnis itupun dengan harga yang relatif murah. 2. performance. MySQL sangat cepat. 3. trusted. MySQL digunakan oleh beberapa organisasi penting dan website yang sudah percaya atas kemampuan MySQL. 4. simplicity. Sangat mudah dalam instalasi dan menjalankannya. Faktanya, satu-satunya kekurangan teknis MySQL adalah tidak selalu mendukung fungsionalitas dan fitur yang disediakan oleh DMBS lain. Tetapi fitur-fitur baru selalu ditambahkan pada versi terbaru (Forta, 2005).

2.7 CodeIgniter CodeIgniter adalah sebuah open source web application framework untuk digunakan membangun web site dinamis dengan PHP. Tujuannya adalah memungkinkan (developer) untuk membangun proyek lebih cepat dibanding dengan menulis kode dari awal, dengan menyediakan banyak libraries untuk tugas-tugas umum yang diperlukan dengan interface dan struktur logis yang sederhana untuk mengakses libraries tersebut. Versi public yang pertama dirilis pada 28 Prbruari 2006, dan versi stabil terakhir adalah versi 1.7.1 yang dirilis pada 10 Pebruari 2009 (http://en.wikipedia.org/wiki/Codeigniter, 2009). Oleh karena itu, pada proyek pembuatan program absensi ini juga menggunakan CodeIgniter versi 1.7.1 yang dapat di download pada alamat http://codeigniter.com/download.php.

2.7.1 Model-View-Controller (MVC) CodeIgniter dirancang berdasarkan Model-View-Controller design pattern. MVC adalah pendekatan yang digunakan dalam merancang sebuah perangkat lunak yang memisahkan application logic (alur logika program) dari presentation (penampilan data untuk user). Pada prakteknya, membuat sebuah web site berisi kode program (script) yang minimal karena penampilan data terpisah dengan skrip PHP untuk logika program. 1. Model merepresentasikan struktur data. Umumnya model class akan berisi fungsi-fungsi yang digunakan untuk retrieve, insert dan update informasi di database. 2. View adalah informasi yang ditampilkan ke user. Sebuah view normalnya adalah sebuah halaman web, tetapi di CodeIgniter sebuah view dapat berarti bagian sebuah halaman seperti header atau footer. 3. Controller berperan menjembatani antara view dan model dan sumber daya lainnya yang dibutuhkan untuk memproses HTTP request dan mencetak sebuah halaman web.

Namun demikian, penerapan MVC pada CodeIgniter tidaklah strict, karena model tidak mutlak diperlukan. Jika tidak diperlukan pemisahan, atau jika penggunaan model membuat aplikasi menjadi lebih kompleks, maka model dapat diabaikan dengan membuat sebuah aplikasi minimal menggunakan controller dan view (CodeIgniter User Guide Version 1.7.1, 2009).

2.7.2 Application FlowChart Gambar di bawah ini menunjukkan bagaimana data mengalir pada sistem:

Gambar 2.1 CodeIgniter Application Flow

1. index.php berperan sebagai controller, melakukan inisialisasi base resource yang dibutuhkan untuk menjalankan CodeIgniter. 2. router memeriksa HTTP request untuk menentukan apa yang seharusnya dilakukan. 3. jika cache diaktifkan, maka hasilnya akan langsung ditampikan ke browser dengan mengabaikan aliran normal eksekusi sistem. 4. security. Sebelum controller aplikasi dimuat, HTTP request dan data yang dikirim oleh user akan disaring (filter) untuk keamanan. 5. controller memuat model, core libraries, plugins, helpers dan semua sumber data yang diperlukan untuk memproses sebuah permintaan. 6. view yang telah diolah kemudian dikirimkan ke web browser. Jika caching diaktifkan, view akan di ditampung dahulu sehingga pada request selanjutnya dapat langsung ditampilkan (CodeIgniter User Guide Version 1.7.1, 2009).

2.7.3 Struktur Direktori Instalasi CodeIgniter sangat mudah, yaitu dengan mengekstrak file hasil download ke root directory. Gambar berikut adalah struktur direktori CodeIgniter:

Gambar 2.2 Struktur Direktori CodeIgniter

1. Direktori System 1. application. Folder ini berisi aplikasi yang akan dibangun. Pada dasarnya akan berisi models, views, controllers dan kode lainnya seperti helpers, plugins, class ectensions. Pengembang akan banyak bekerja di folder ini. 2. cache. Folder ini berisi halaman yang telah ditampung (cache). 3. codeigniter. Folder ini berisi core class yang membangun CodeIgniter. Sebaiknya tidak mengubah apapun yang ada di folder ini, karena akan mengubah keseluruhan kerja sistem.

4. database. Folder ini berisi database driver dan utilitas database lainnya. Lagilagi sebaiknya tidak mengubah apapun yang ada di folder ini. 5. fonts. Folder ini berisi informasi mengenai font (huruf). 6. helpers. Folder ini berisi helper standar CodeIgniter seperti date, cookie dan url. 7. language. Folder ini berisi informasi bahasa. 8. libraries. Folder ini berisi libraries standar CodeIgniter seperti e-mail, calendars, file uploads dan lainnya. Software developer dapat membuat libraries tersendiri yang harus tersimpan pada foler application/libraries agar terpisah dengan library standar CodeIgniter. 9. logs. Folder ini digunakan untuk menulis log error. 10. plugins. Folder ini berisi plugins. Plugins dan helpers sangat mirip, fungsinya untuk membantu developer untuk mengerjakan sesuatu misalnya membuat forms, links dan sebagainya. Perbedaan utamanya adalah plugins biasanya berisi satu fungsi sedangkan helpers berisi banyak fungsi yang tergabung dalam satu file.

2. Direktori System/Application Direktori yang paling penting, tempat developer bekerja adalah /system/application dan semua sub direktori yang ada di dalamnya. Direktori system/application dibagi menjadi beberapa sub direktori, yaitu: 1. config. Berisi beberapa file penting yang mengontrol konfigurasi sistem, diantaranya database, autoload, routes dan sebagainya. 2. controllers. Berisi controller class file yang dibuat oleh developer untuk sebuah aplikasi. 3. errors. Berisi halaman standar untuk error CodeIgniter seperti error 404 dan PHP error. Bisa dimodifikasi sesuai kebutuhan. 4. hooks. Berisi hooks yang dibuat untuk aplikasi. Hook adalah cara paling aman untuk mengembangkan core CodeIgniter. 5. libraries. Berisi libraries yang dibuat oleh developer sendiri.

6. models. Berisi file model yang dibuat untuk aplikasi. 7. views. Berisi file view yang digunakan untuk penampilan data. Pada umumnya developer akan banyak bekerja di direktori model, view dan controller. Salah satu direktori yang juga penting adalah config, berisi file konfigurasi sistem. Pada umumnya akan diperlukan untuk mengubah file-file konfigurasi ketika akan membangun sebuah aplikasi.

III. METODOLOGI PENELITIAN 3.1 Metode Kegiatan Metode yang digunakan pada penelitian ini adalah model waterfall oleh Sommerville (2007) yang memiliki tahapantahapan sebagai berikut:

Gambar 3.1 Metode waterfall

3.1.1 Requirements Definition Layan.an sistem, batasan dan goal ditentukan dengan berkonsultasi dengan pengguna sistem. Layanan, batasan dan goal tersebut kemudian dijelaskan secara detail dan kemudian akan menjadi spesifikasi sistem (Sommerville, 2007). Pada tahap ini dilakukan penggalian informasi mengenai data-data yang dibutuhkan oleh sistem kepada Guru BK. Data-data tersebut diantaranya: data siswa, data kelas, data semester dan data untuk absensi. Dari diskusi diperoleh juga kebutuhan akan adanya data user yang akan menggunakan program ini. Selain itu juga ditanyakan bagaimana program ini akan digunakan dan hasil apa yang diharapkan dari penggunaan program ini.

3.3.2 System and Software Design Proses desain sistem, pemisahan kebutuhan antara hardware atau software. Dibuat sedemikian rupa untuk keseluruhan arsitektur sistem. Software design melibatkan pengidentifikasian dan pendeskripsian abstraksi system software dan hubungan diantaranya (Sommerville, 2007). Dari informasi yang didapatkan pada tahap requirements definition, maka dilakukan perancangan konsep/desain sistem menggunakan Context Diagram, Data Flow Diagram dan System Flowchart. Untuk penyimpanan data, dibuat konsep Relational Database menggunakan Entity Relationship Diagram. Menetukan field-field yang diperlukan sesuai kebutuhan sistem serta menentukan tipe data yang sesuai. Melakukan Normalisasi hingga desain database menjadi optimal. Selanjutnya rancangan database ini akan diterapkan pada kode SQL yang akan dijalankan pada RDBMS MySQL.

3.3.3 Implementation and Unit Testing Selama tahap ini, desain software diwujudkan sebagai sebuah set program atau unit program. Unit testing memastikan bahwa tiap unit memenuhi spesifikasinya (Sommerville, 2007). Proses ini dilakukan dengan cara menerjemahkan konsep sistem/program ke dalam program PHP menggunakan framework CodeIgniter versi 1.7.1. Karena menggunakan framework CodeIgniter, maka untuk memakai fungsi-fungsi CodeIgniter sintaks penulisan kode program PHP disesuaikan dengan user manual CodeIgniter. Tahap-tahap pembuatan aplikasi menggunakan CodeIgniter secara sederhana adalah: 1. Mengkonfigurasi file-file konfigurasi yang diperlukan bagi sistem yang terletak pada direktori system/application/config. 2. Membuat kelas-kelas Controller yang berfungsi mengatur alur logika program. Selanjutnya file-file kelas Controller tersebut akan disimpan pada direktori system\application\controllers. 3. Membuat kelas-kelas Model untuk pengaksesan database yang akan disimpan pada direktori system\application\models. 4. Membuat file-file View yang berfungsi untuk penampilan data kepada user dan disimpan pada direktori system\application\views. Proses pembuatan database MySQL menggunakan software bantu PHPMyAdmin versi 3.1.3. Dengan PHPMyAdmin, proses pembuatan database dan tabel-tabelnya menjadi lebih cepat dan mudah. Untuk memudahkan pembuatan layout (view) halaman web menggunakan program aplikasi Adobe Dreamweaver CS4, karena program ini memiliki keunggulan realtime preview yaitu tampilan hasil kode XHTML dan CSS dapat langsung terlihat begitu kode diketikkan.

3.3.4 Integration and System Testing Testing individual untuk setiap unit program, atau seluruh program sebagai satu sistem yang utuh untuk memastikan bahwa kebutuhan software telah terpenuhi. Setelah testing, software akan dikirim kepada pelanggan (Sommerville, 2007). Setelah program selesai dibuat dan program dapat berjalan, ujicoba dapat dimulai. Cara yang digunakan adalah dengan mencoba satu persatu fungsi program melalui interface-nya pada saat running. Hal ini dilakukan untuk mencari semua kemungkinan kesalahan dan memeriksa apakah output program sudah sesuai dengan yang diinginkan.

3.3.5 Operation and Maintenance. Umumnya (walaupun tidak harus) ini adalah tahap yang paling panjang, yaitu ketika sistem telah terpasang dan sudah digunakan. Maintenance melibatkan proses mengkoreksi error yang tidak dapat ditemukan pada tahap-tahap awal life-cycle, meningkatkan implementasi unit sistem dan mengembangkan layanan sistem ketika kebutuhan baru ditemukan (Sommerville, 2007). Pada penelitian ini tahap operation and maintenance masih belum dapat dilakukan.

IV. HASIL DAN PEMBAHASAN 4.1 Requirements Definition Dari hasil pengamatan dan wawancara, didapatkan form rekap absensi dan Tata Tertib SMA Negeri Tempeh yang di dalamnya memuat jenis-jenis pelanggaran yang berhubungan dengan absensi beserta skor/poinnya. Dari informasi awal ini dapat disimpulkan bahwa kebutuhan data sistem diantaranya: 1. Data guru, meliputi: nip, nama, username, password, hak, status.

2. Data absen, meliputi: id_absen, tanggal, nip, id_tapel, id_semester, nis, tingkat, jurusan, absen, skor. 3. Data kelas, meliputi: id_kelas, tingkat, jurusan. 4. Data semester, meliputi: id_semester, semester, status. 5. Data siswa, meliputi: nis, nama, id_kelas. 6. Data tahun pelajaran (tapel), meliputi: id_tapel, tapel, status. Setelah mendapatkan kebutuhan data pokok sistem, kemudian dilakukan pengembangan sehingga menghasilkan kesimpulan-kesimpulan tambahan diantaranya: 1. Jenis absen yaitu sakit, ijin, alpa, terlambat. Melakukan alpa mendapat skor 25 poin dan terlambat 10 poin, sedangkan untuk sakit tidak mendapatkan poin pelanggaran asalkan ada surat keterangan dokter. Sedangkan untuk ijin harus diperkuat dengan informasi dari orang tua/kerabat, tidak mendapatkan poin pelanggaran. 2. Program pencatatan absensi tidak merubah proses kerja / tata cara absensi, program ini hanya berlaku sebagai alat bantu untuk mempermudah proses absen, yaitu untuk entry data absensi, menerima kembali informasi dengan cepat terutama untuk rekap.

4.2 System and Software Design Pada tahap ini dirancang sistem dan desain dari program absensi dengan memperhatikan kebutuhan-kebutuhan yang telah didapatkan pada proses Requirements Definition. Maka digunakan Data Flow Diagram dan Flowchart untuk mendesain sistem dan hasilnya sebagai berikut:

4.2.1 Data Flow Diagram 1. Context Diagram

Gambar 4.1 Context Diagram Absensi

Guru (Piket, BK, Mata Pelajaran) memberikan informasi kepada Guru Piket mengenai data dirinya untuk dimasukkan ke dalam sistem. Guru Piket memasukkan data pribadi guru (Guru Piket, Guru Mata Pelajaran, Guru BK) ke dalam sistem. Data tersebut berguna untuk mengetahui siapa nantinya yang mencatat absensi. Siswa memberikan data pribadi kepada Guru Piket untuk dimasukkan ke dalam sistem. Data tersebut erat kaitannya dengan data yang akan dihasilkan pada saat rekap absensi, yaitu data siswa yang absen. Guru Piket merupakan penerima informasi yang pertama (hari ke-1) yang diberikan oleh orang tua/wali murid ketika anaknya tidak masuk. Selanjutnya Guru Piket memasukkan data absensi tersebut ke dalam sistem.

Guru Mata Pelajaran memberikan informasi kepada Guru Piket jika ada siswa yang tidak masuk pada saat jam pelajaran berlangsung. Biasanya untuk siswa yang sudah tidak masuk hari sebelumnya (hari > 2). Informasi ini akan dicocokkan pada catatan hari sebelumnya, jika memang siswa tersebut tidak masuk di hari sebelumnya, maka akan ditambahkan juga untuk hari ini (ketika Guru Mata pelajaran mengajar). Hal ini juga berfungsi untuk mencatat absensi siswa yang tidak diketahui oleh Guru Piket pada hari ke-1. Jika dalam sistem tercatat siswa yang telah melebihi skor pelanggaran absensi > 30, maka Guru Piket akan memberikan rekap data tersebut kepada Guru BK agar Guru BK dapat segera melakukan pembinaan terhadap siswa tersebut. Jika seorang siswa sudah masuk, ia akan memberikan informasi kepada Guru Piket agar tidak dicatat dalam absensi. Akhirnya semua rekap akan diberikan kepada Guru BK, data rekap tersebut selanjutnya akan diberikan kepada setiap wali kelas untuk dicatat dalam buku raport masing-masing siswa.

2. Data Flow Diagram Level 0

Gambar 4.2 DFD Level 0 Absensi

Proses yang terjadi pada DFD Level 0 Absensi adalah: 1. Guru Piket memasukkan data Guru ke simpanan data guru 2. Guru Piket memasukkan data siswa ke simpanan data siswa

3. Guru Piket memasukkan data absensi siswa ke simpanan data absen 4. Guru Mata Pelajaran melaporkan ke Guru Piket / memasukkan data absensi siswa hari > 1 ke simpanan data absen (jika siswa tidak masuk > 1 hari). 5. Guru BK mengambil rekap simpana data absensi.

4.2.2 Flowchart 1. System Flowchart

Gambar 4.3 System Flowchart Program Absensi

Proses yang terjadi pada system flowchart ini adalah: 1. Guru Piket memasukkan data pribadi Guru, sistem menyimpannya di simpanan data guru. 2. Guru Piket memasukkan data pribadi siswa, sistem menyimpannya di simpanan data siswa. 3. Guru Piket mencatat absensi hari ke-1, disimpan di simpanan data absen. 4. Guru Mata Pelajaran melaporkan ke guru piket / mencatat absensi hari > 1, disimpan di simpanan data absen. 5. Guru BK mengambil rekap data absensi.

2. Flowchart Proses Entry Data Guru

Gambar 4.4 Flowchart Proses Entry Data Guru Untuk mendata guru, maka harus lagin sebagai administrator, jika tidak maka menu entry guru tidak akan muncul.

3. Flowchart Proses Entry Data Siswa

Gambar 4.5 Flowchart Proses Entry Data Siswa Untuk melakukan entry data siswa harus login, minimal sebagai operator. Menu entry data siswa otomatis muncul jika login sebagai admnistrator.

3. Flowchart Proses Entry Data Absen

Gambar 4.6 Flowchart Proses Entry Data Absen Untuk melakukan entry data absen harus login, minimal sebagai operator. Menu entry data absen otomatis muncul jika login sebagai admnistrator.

4.2.3 Entity Relationship Diagram Database yang akan dibuat menggunakan RDBMS MySQL, dengan desain seperti yang tampak pada gambar berikut:

Gambar 4.7 ERD Program Absensi

Desain database program pencatatan absensi menggunakan 5 entitas, yaitu guru, absen, detail absen, siswa dan detail siswa. Entitas guru memiliki hubungan one to many dengan entitas absen. Entitas absen memiliki hubungan one to many dengan entitas detail_absen. Entitas detail absen memiliki hubungan many to one dengan entitas siswa. Entitas siswa memiliki hubungan one to many dengan entitas detail_siswa.

4.2.4 Desain Database Proses selanjutnya yang perlu dilakukan adalah pembuatan database untuk meyimpan data. Database dibuat dengan menggunakan RDBMS MySQL dengan bantuan software PHPMyAdmin versi 3.1.3. Database dibuat berdasarkan kebutuhan yang ada pada tahap requirements definition. Pada penelitian ini database diberi nama db_absensi, terdiri dari tabel-tabel: guru, absen, detail_absen, siswa dan detail_siswa. Berikut ini adalah spesifikasi dari tabel-tabel tersebut:

Tabel 4.1 Spesifikasi Data Absen


Field Name id_absen tanggal nip id_tapel id_semester nis tingkat jurusan absen skor Type int date varchar int int varchar varchar varchar varchar int 9 1 1 9 3 5 1 3 foreign key foreign key foreign key foreign key Length 11 Keterangan primary key

Tabel 4.2 Spesifikasi Data Guru


Field Name nip nama username password hak status Type varchar varchar varchar varchar varchar int Length 9 50 32 32 32 1 Keterangan primary key

Tabel 4.3 Spesifikasi Data Kelas


Field Name id_kelas Type int Length 11 Keterangan primary key

tingkat jurusan

varchar varchar

3 5

Tabel 4.4 Spesifikasi Data Semester


Field Name id_semester semester status Type varchar varchar int Length 4 1 1 Keterangan primary key

Tabel 4.5 Spesifikasi Data Siswa


Field Name nis nama id_kelas Type varchar varchar int Length 4 50 11 foreign key Keterangan primary key

Tabel 4.6 Spesifikasi Data Tahun Pelajaran


Field Name id_tapel tapel status Type int varchar int Length 11 9 1 foreign key Keterangan primary key

Semua tabel menggunakan engine "InnoDB", karena engine tipe ini mendukung fasilitas Refferential Integrity. Hal ini diperlukan agar data yang tersimpan di database tetap konsisten jika dilakukan operasi update dan delete.

4.2.5 Site Map Program Absensi

Gambar 4.8 Sitemap Program Absensi Halaman home atau public adalah halaman yang dapat diakses oleh umum, misalnya orang tua siswa. Tidak memerlukan login untuk memasukinya. Digunakan untuk mengecek apakah putra/putrinya masuk sekolah atau tidak. Halaman login adalah gerbang bagi guru piket untuk melakukan administrasi absensi. Dibutuhkan username dan password yang valid untuk dapat mengaksesnya. Halaman guru, digunakan untuk administrasi data guru. Terdapat menu tambah dan update data guru. Halaman siswa adalah halaman untuk administrasi data siswa, tersedia fungsi dasar untuk tambah, update dan hapus. Halaman absen adalah halaman untuk mencatat data absensi. Pada halaman ini terdapat menu untuk tambah dan hapus data absen.

Halaman rekap digunakan untuk mendapatkan data rekap absensi. Rekap tersebut dapat dikategorikan ke dalam periode: hari ini, periode waktu tertentu, skor pelanggaran (yang memerlukan pembinaan) dan untuk setiap individu.

4.2.6 Desain Halaman 1. Desain Halaman Login Halaman Login digunakan oleh guru untuk memasuki menu administrasi program pencatatan absensi, dengan mengisi username dan password yang sudah didaftarkan di database.

Gambar 4.9 Desain Halaman Login 2. Desain Halaman Home Halaman Home adalah halaman utama/pembuka ketika guru/orang tua mengakses Program Pencatatan Absensi. Berisi keterangan singkat tentang program dan menu untuk mengakses info absensi siswa.

Gambar 4.10 Desain Halaman Home

3. Desain Halaman Siswa Halaman siswa adalah halaman yang digunakan untuk melihat data siswa, disajikan dalam bentuk tabular agar mudah dan praktis. Pada halaman ini terdapat link untuk menambah, mengubah dan menghapus data siswa.

Gambar 4.11 Desain Halaman Siswa

4. Desain Halaman Siswa Edit Halaman ini digunakan bersama, yaitu untuk keperluan tambah dan untuk update data siswa.

Gambar 4.12 Desain Halaman Siswa Edit

5. Desain Halaman Absen Halaman Absen adalah halaman yang digunakan untuk melihat data abensi, disajikan dalam bentuk tabular agar mudah dan praktis. Secara default, data teratas adalah data yang terakhir kali di-entry ke dalam database. Pada halaman ini terdapat link untuk menambah, mengubah dan menghapus data absensi.

Gambar 4.13 Desain Halaman Absen

7. Desain Halaman Rekap Halaman rekap adalah halaman untuk melihat rekapitulasi absen berdasarkan kriteria tertentu. Halaman ini juga menyajikan data masih dalam bentuk tabular.

Gambar 4.14 Desain Halaman Rekap Individu

4.3 Implementation and Unit Testing Tahap ini diwujudkan dengan membuat code program untuk model dan controller dalam bahasa PHP sesuai dengan sintak yang terdapat pada user guide CodeIgniter versi 1.7.1. Sedangkan untuk tampilan (view), didesain dengan menggunakan bahasa XHTML dan CSS ditambah sedikit Javascript untuk interaktifitas, misalnya untuk memunculkan konfirmasi pada saat user menekan link "hapus".

4.3.1 Halaman Login Halaman login adalah halaman yang digunakan untuk login, ketika akan melakukan proses absensi.

Gambar 4.15 Halaman Login

4.3.2 Halaman Home Halaman ini adalah halaman awal yang dimuat. Terdapat field untuk memasukkan NIS bagi orang tua yang ingin mengetahui anaknya hadir atau tidak di sekolah pada hari itu.

Gambar 4.16 Halaman Home 4.3.3 Halaman Siswa Halaman siswa adalah halaman untuk menampilkan informasi tentang siswa.

Gambar 4.17 Halaman Siswa

Selanjutnya halaman yang berkaitan dengan administrasi siswa adalah halaman edit siswa. yang digunakan untuk melakukan penambahan dan pengubahan data siswa. Terutama untuk menentukan kelas.

Gambar 4.18 Halaman Siswa Edit

4.3.4 Halaman Administrasi Absensi Sesuai dengan namanya, halaman ini digunakan untuk menampilkan informasi mengenai absensi. Terdapat link untuk menambah dan menghapus data absensi.

Gambar 4.19 Halaman Absen Halaman absen edit digunakan oleh guru untuk menambah data absensi.

Gambar 4.20 Halaman Absen Edit 4.3.5 Halaman Administrasi Rekapitulasi Halaman rekap berfungsi untuk menampilkan hasil rekap dari data absensi. Terdapat beberapa menu rekap, diataranya: rekap untuk hari ini, rekap berdasarkan periode tertentu, rekap berdasarkan skor pelanggaran, dan rekap per individu.

Gambar 4.21 Halaman Menu Rekap

Gambar 4.22 Halaman Rekap Individu

4.4 Integration and System Testing Setelah program selesai dibuat dan program dapat berjalan, ujicoba dapat dimulai. Cara yang digunakan adalah dengan mencoba satu persatu fungsi program melalui interface-nya pada

saat running. Hal ini dilakukan untuk mencari semua kemungkinan kesalahan dan memeriksa apakah output program sudah sesuai dengan yang diinginkan.

4.5 Implementasi CodeIgniter 4.5.1 Controller Seperti yang sudah disebutkan dalam bab 2 tentang CodeIgniter, bahwa CodeIgniter bekerja mengikuti pola model-view-controller, maka pada prakteknya, program berbasis web ini terdiri dari 3 file-file utama yang merepresentasikan model-view-controller. Sebagai contoh, untuk menangani urusan siswa, maka dibuat kode program untuk controller siswa yang disimpan sebagai siswa.php, berikut potongan programnya: <?php class Siswa extends Controller { function Siswa() { parent::Controller(); $this->load->model('Siswa_model', '', TRUE); $this->load->plugin(array('abs_operator_nav', 'abs_administrator_nav')); } private $limit = 10; function index() { if ($this->session->userdata('logged_in') == TRUE) {

$this->list_all(); } else { redirect('login', 'refresh'); } } ?>

Controller bekerja mengatur logika program dan menerima request dari user, dan memanggil sumber daya yang diperlukan, misalnya model, plugins, view dan sebagainya. Filefile controller disimpan pada system\application\controllers. 4.5.2 Model Berikutnya diperlukan model untuk mengakses database. File ini disimpan sebagai siswa_model.php, berikut ini potongan programnya: <?php class Siswa_model extends Model { function Siswa_model() { parent::Model(); } function get_all_paged($limit, $offset)

{ $sql = "SELECT siswa.nis, siswa.nama AS nama_siswa, kelas.tingkat, kelas.jurusan FROM siswa, kelas WHERE siswa.id_kelas = kelas.id_kelas ORDER BY siswa.nis DESC LIMIT $offset, $limit;"; return $this->db->query($sql); } ?>

Model diperlukan untuk mengakses database (query), kemudian akan mengembalikan hasil query kepada controller yang umumnya berupa array.

4.5.2 View Setelah dibuat controller dan model, maka untuk menampilkan data diperlukan halaman yang digunakan untuk menampilkan data. Umumnya view berupa kode HTML/XHTML, ditambah CSS untuk memperindah tampilan halaman. Berikut ini contoh kode program untuk view, disimpan sebagai v_siswa.php: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Siswa</title> <link href="<?php echo base_url().'/styles/style.css'; ?>" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="<?php echo base_url().'/images/Fav_icon.png';?>" /> <style type="text/css"> body#siswa{ margin:0; margin-top:1em; font:80% Arial, Helvetica, sans-serif; } </style> </head> <body id="siswa"> <?php abs_header(); ?> <?php if($this->session->userdata('hak') == 'OPERATOR') { abs_operator_nav(); } else { abs_administrator_nav(); }

?> <div id="main_content"> <h1><?php echo isset($title) ? $title : ''; ?></h1> <h3><?php echo $this->session->flashdata('message'); ?></h3> <h3><?php echo isset($message) ? $message : ''; ?></h3> <div class="paging"> <?php echo isset($pagination) ? $pagination : ''; ?> </div> <?php echo isset($table) ? $table : ''; ?> <?php echo isset($link_add) ? $link_add : ''; ?> </div> <?php abs_footer(); ?> </body> </html>

Tampilan akhir halaman pada layar monitor, biasanya merupakan hasil modifikasi dari data yang dihasilkan oleh controller dan model. Kode PHP tidak akan muncul pada sisi client, karena semua proses dilakukan di server.

V. KESIMPULAN DAN SARAN 5.1 Kesimpulan Kesimpulan dari penelitian ini adalah:

1. Penerapan CodeIgniter pada pembuatan program absensi adalah dengan memisahkan file-file program ke dalam 3 kategori, yaitu: model, view dan controller. 2. Dengan program pencatatan absensi, maka proses entry data menjadi lebih praktis, yaitu dengan menggunakan komputer. 3. Program pencatatan absensi dapat digunakan untuk merekap data absensi dengan praktis dan cepat, yaitu dengan memilih kriteria perakapan, maka hasilnya dapat segera ditampilkan. 4. Program pencatatan absensi dapat digunakan untuk mendeteksi pelanggaran absensi dengan cepat, melalui menu rekap pembinaan.

5.2 Saran Saran-saran untuk menyempurnakan penelitian ini adalah: Penambahan fitur import data siswa (misalnya dalam format *.csv), agar proses entry data pada tahun ajaran baru tidak dilakukan manual satu persatu.

DAFTAR PUSTAKA [1] Anonym. 2009. CodeIgniter User Guide Version 1.7.1. CodeIgniter Development Team. http://codeigniter.com/download.php [2] Bari, Ahsanul, dan A. Syam. 2008. CakePHP Applicatin Development. Birmingham, UK: Packt Publishing Ltd. [3] Departemen Pendidikan Nasional. 2000. Kamus Besar Bahasa Indonesia Edisi Ketiga. Jakarta: Balai Pustaka. [4] Forta, Ben. 2005. MySQL Crash Course. United States of America: Sams Publishing. [5] Hartono, Jogiyanto. 1995. Analisis dan Disain Sistem Informasi: Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis.Yogyakarta: Andi Offset.

[6] Kadir, Abdul. 2000. Pemrograman Pascal. Buku 1. Yogyakarta: Penerbit Andi. [7] Mardiyanto, D. A. 2003. Diagram-Entity Relationship, Pemodelan Data dalam Rekayasa Perangkat Lunak. Materi Kuliah pada Institut Teknologi Bandung. http://kur2003.if.itb.ac.id/file/SE6162%20ERD.pdf [8] Pusat Bahasa Departemen Pendidikan Nasional. 2008. "Pencarian arti kata". http://pusatbahasa.diknas.go.id/kbbi/index.php [9] Upton, David. 2007. CodeIgniter for Rapid PHP Application Development. Birmingham, UK: Packt Publishing Ltd.

You might also like