1 APLIKASI MONITORING PRODUKTIVITAS KINERJA MITRA PERUSAHAAN (Studi Kasus: PDAM Provinsi DKI Jakarta) FIKRI KHARISMA PROGRAM STUDI TEKNIK INFORMATIKA ...
APLIKASI MONITORING PRODUKTIVITAS KINERJA MITRA PERUSAHAAN (Studi Kasus: PDAM Provinsi DKI Jakarta)
FIKRI KHARISMA 106091002879
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2011 M/1432 H
APLIKASI MONITORING PRODUKTIVITAS KINERJA MITRA PERUSAHAAN (Studi Kasus: PDAM Provinsi DKI Jakarta)
Oleh: FIKRI KHARISMA 106091002879
Skripsi Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer
Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2011 M/1432 H
APLIKASI MONITORING PRODUKTIVITAS KINERJA MITRA PERUSAHAAN (Studi Kasus: PDAM Provinsi DKI Jakarta)
Skripsi Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer Pada Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta
Oleh: FIKRI KHARISMA 106091002879
Menyetujui, Pembimbing 1
Pembimbing 2
Viva Arifin, MMSI NIP. 19730810 200604 2 001
Dr. Syafedi Syafei, M.Sc NIP. 19571005 198211 1 001
Mengetahui, Ketua Program Studi Teknik Informatika,
Yusuf Durachman, M.Sc, MIT NIP. 19710522 200604 1 002
ii
PENGESAHAN UJIAN
Skripsi yang berjudul “Aplikasi Monitoring Produktivitas Kinerja Mitra Perusahaan (Studi Kasus: PDAM Provinsi DKI Jakarta)” telah diuji dan dinyatakan lulus pada sidang Munaqosyah Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta pada hari Jum’at, 28 Januari 2011. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar Sarjana Strata Satu (S1) Program Studi Teknik Informatika.
Jakarta, 28 Januari 2011 Menyetujui,
Penguji, Penguji 1
Penguji 2
Arini, M.T NIP. 19760131 200901 2 001
Andrew Fiade, M.Kom NIP. 19820811 200912 1 004 Pembimbing,
Pembimbing 1
Pembimbing 2
Viva Arifin, MMSI NIP. 19730810 200604 2 001
Dr. Syafedi Syafei, M.Sc NIP. 19571005 198211 1 001 Mengetahui,
Dekan Fakultas Sains dan Teknologi
Ketua Program Studi Teknik Informatika
DR. Syopiansyah Jaya Putra, M.Sis NIP. 19680117 200112 1 001
Yusuf Durachman, M.Sc, MIT NIP. 19710522 200604 1 002 iii
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI ADALAH HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN
Jakarta, Januari 2011
Fikri Kharisma 106091002879
iv
ABSTRAK Fikri Kharisma, Aplikasi Monitoring Produktivitas Kinerja Mitra Perusahaan (Studi Kasus: PDAM Provinsi DKI Jakarta), dibimbing oleh Viva Arifin, MMSI dan Dr. Syafedi Syafei, M.Sc. Perusahaan Daerah Air Minum (PDAM) Provinsi DKI Jakarta merupakan perusahaan yang secara berkesinambungan menjalankan fungsinya dalam hal pelayanan dan penyediaan air untuk seluruh masyarakat propinsi DKI Jakarta. Dalam membantu menjalankan fungsinya, perusahaan mengadakan kerja sama atau bermitra dengan dua perusahaan lainnya, yaitu PT. PAM LYONNAISE JAYA (PALYJA) dan PT. AETRA AIR JAKARTA (AETRA). PDAM memantau kinerja kedua mitra dengan mendata ulang secara manual laporan-laporan yang disampaikan ke dalam bentuk laporan elektronik untuk dapat dilakukan evaluasi setiap bulannya. Melalui proses pendataan ulang secara manual laporan-laporan tersebut, terdapat kemungkinan adanya duplikasi data yang dapat menyebabkan ketidakakurasian data-data tersebut, dan proses evaluasi yang dilakukan berjalan lambat. Melihat permasalahan yang terjadi maka perlu dibuat aplikasi yang dapat meminimalkan permasalahan-permasalahan yang timbul dan meningkatkan proses evaluasi. Dalam penelitian ini aplikasi dibuat dengan menggunakan framework dan konsep pemrograman Model-View-Controller (MVC). Metode pengembangan aplikasi yang digunakan dalam penelitian ini adalah model proses incremental (Incremental Process Models). Pada akhirnya, aplikasi ini dapat mengurangi terjadinya duplikasi dan ketidakakurasian data, serta memudahkan dan mempercepat proses dalam melakukan evaluasi kinerja mitra PDAM. Untuk ke depannya, aplikasi ini dapat dikembangkan lagi untuk melakukan proses monitoring laporan kinerja dalam skala besar. Kata Kunci: Aplikasi, Monitoring, Framework, MVC Jumlah Halaman: xxxii + 160 halaman + 40 lampiran Jumlah Daftar Pustaka: 19 sumber (1992 - 2010)
v
KATA PENGANTAR
Bismillahirrahmanirrahim, Alhamdulillah penulis panjatkan puji dan syukur kehadirat Allah SWT, karena dengan rahmat, ridho, dan hidayahNya, penulis dapat menyelesaikan tugas akhir yang berjudul Aplikasi Monitoring Produktivitas Kinerja Mitra Perusahaan (Studi Kasus: PDAM Provinsi DKI Jakarta). Shalawat dan salam semoga selalu dilimpahkan kepada Nabi Muhammad SAW, keluarga, para sahabat, dan para pengikutnya hingga akhir jaman. Pada kesempatan ini, penulis juga ingin mengucapkan terima kasih kepada pihak-pihak yang telah memberikan bantuan baik dalam bentuk dukungan moral maupun materi selama penulis melaksanakan kegiatan penelitian hingga dalam penulisan laporan ini. Secara khusus penulis ingin menyampaikan terima kasih kepada: 1.
Bapak DR. Syopiansyah Jaya Putra, M.Sis selaku Dekan Fakultas Sains dan Teknologi yang telah memberikan komitmen, dorongan, dan program pendidikan bagi mahasiswanya.
2.
Bapak Yusuf Durachman, M.Sc, MIT selaku Ketua Program Studi Teknik Informatika yang telah memberikan komitmen, dorongan, dan program pendidikan bagi mahasiswanya.
3.
Ibu Viva Arifin, MMSI selaku Pembimbing I skripsi dari Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta yang telah memberikan dukungan baik secara moral maupun teknis.
vi
4.
Bapak Dr. Syafedi Syafei, M.Sc selaku Pembimbing II skripsi dari Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta yang telah memberikan dukungan baik secara moral maupun teknis.
5.
Bapak Duddy Permadi, S.E selaku Manager Sub Divisi Pengembangan Sistem dan Teknologi PDAM Provinsi DKI Jakarta yang telah membantu dan menerima penulis dengan baik selama penelitian.
6.
Bapak Enar Legowo, S.Kom selaku pembimbing lapangan dari pihak PDAM Provinsi DKI Jakarta, yang telah memberikan bimbingan dan dukungan, baik dalam bentuk moral maupun teknis sehingga penulis dapat menyelesaikan penelitian.
7.
Bapak M. Ditha Pratama, S.Ikom dari pihak PDAM Provinsi DKI Jakarta yang turut memberikan dukungan bagi penulis selama penelitian.
8.
Dosen-dosen Program Studi Teknik Informatika yang telah memberikan ilmu, pengetahuan, dan kemampuan manajemen beserta pemupukan akhlak, moral dan mental yang baik.
9.
Ayah dan ibu tercinta yang selalu mendo’akan, memberi kasih sayang, dan dukungan kepada anaknya tercinta, serta mas Aldhika, kakak yang selalu membantu dan berbagi ilmu, serta adikku Aulia Rahmah yang juga selalu memberikan dukungan.
10. Sahabat-sahabat Program Studi Teknik Informatika angkatan 2006 yang tidak dapat penulis sebutkan satu persatu.
vii
11. Seluruh pihak yang telah membantu dan namanya tidak dapat disebutkan satu persatu. Terima kasih atas dukungan dan motivasinya, semoga Allah SWT membalas segala kebaikan yang telah diberikan kepada penulis. Penulis juga ingin menyampaikan maaf yang sebesar-besarnya apabila selama ini ada hal-hal yang kurang berkenan yang dilakukan. Kritik dan saran yang sifatnya membangun akan penulis terima guna meningkatkan penulisan yang akan datang. Akhir kata, penulis berharap semoga tugas akhir ini dapat bermanfaat dalam pengembangan ilmu pengetahuan khususnya dalam bidang sains dan teknologi.
KATA PENGANTAR ....................................................................................
vi
DAFTAR ISI ...................................................................................................
ix
DAFTAR TABEL ...........................................................................................
xvi
DAFTAR GAMBAR ...................................................................................... xvii DAFTAR SIMBOL ......................................................................................... xxiii DAFTAR LAMPIRAN ................................................................................... xxxii
BAB I PENDAHULUAN 1.1. Latar Belakang .............................................................................
1
1.2. Perumusan Masalah .....................................................................
2
1.3. Batasan Masalah ...........................................................................
3
1.4. Tujuan dan Manfaat Penelitian ....................................................
3
1.4.1. Tujuan Penelitian ..............................................................
Login dengan benar ...............................................................
126
Gambar 4.75
Halaman home (setelah login dengan benar) ........................
126
Gambar 4.76
Login yang salah ...................................................................
127
Gambar 4.77
Login tanpa username dan password ....................................
127
Gambar 4.78
Tampil data target Palyja ......................................................
128
xx
Gambar 4.79
Tambah target Palyja data baru .............................................
128
Gambar 4.80
Tambah target Palyja data sudah tercatat ..............................
129
Gambar 4.81
Tambah target Palyja data kosong ........................................
129
Gambar 4.82
Update data target Palyja ......................................................
130
Gambar 4.83
Hapus data target Palyja ........................................................
130
Gambar 4.84
Tampil data realisasi Palyja ..................................................
131
Gambar 4.85
Tambah realisasi Palyja data baru .........................................
131
Gambar 4.86
Tambah realisasi Palyja data sudah tercatat ..........................
132
Gambar 4.87
Tambah realisasi Palyja data kosong ....................................
132
Gambar 4.88
Update data realisasi Palyja ..................................................
133
Gambar 4.89
Hapus data realisasi Palyja ....................................................
133
Gambar 4.90
Tampil rekapitulasi Palyja .....................................................
134
Gambar 4.91
Tampil grafik evaluasi Palyja ................................................
134
Gambar 4.92
Tampil data target Aetra ........................................................
135
Gambar 4.93
Tambah target Aetra data baru ..............................................
135
Gambar 4.94
Tambah target Aetra data sudah tercatat ...............................
136
Gambar 4.95
Tambah target Aetra data kosong .........................................
136
Gambar 4.96
Update data target Aetra .......................................................
137
Gambar 4.97
Hapus data target Aetra .........................................................
137
Gambar 4.98
Tampil data realisasi Aetra ....................................................
138
Gambar 4.99
Tambah realisasi Aetra data baru ..........................................
138
Gambar 4.100 Tambah realisasi Aetra data sudah tercatat ...........................
139
Gambar 4.101 Tambah realisasi Aetra data kosong .....................................
139
xxi
Gambar 4.102 Update data realisasi Aetra ...................................................
140
Gambar 4.103 Hapus data realisasi Aetra .....................................................
140
Gambar 4.104 Tampil rekapitulasi Aetra ......................................................
141
Gambar 4.105 Tampil grafik evaluasi Aetra .................................................
141
Gambar 4.106 Tampilan aplikasi user friendly .............................................
146
Gambar 4.107 Mudah mempelajari penggunaan aplikasi ..................................
147
Gambar 4.108 Pengguna dapat mengoperasikan aplikasi dengan baik ...............
147
Gambar 4.109 Web browser tanpa pemutar Flash ............................................
148
Gambar 4.110 Gangguan pada web server .....................................................
148
Gambar 4.111 Aplikasi berjalan pada web server versi tahun 2007 ................
149
Gambar 4.112 Restart pada web server ........................................................
149
Gambar 4.113 Waktu untuk memproses data ...............................................
150
Gambar 4.114 Memory resource yang terpakai ............................................
150
Gambar 4.115 Kegagalan dalam pemrosesan data .......................................
151
Gambar 4.116 Perubahan aplikasi pada direktori models-views-controllers.
151
Gambar 4.117 Penghapusan bagian persentase dan pesan kesalahan ...........
152
Gambar 4.118 Bagian persentase terhapus ...................................................
152
Gambar 4.119 Aplikasi berjalan di sistem operasi Linux .............................
153
Gambar 4.120 Aplikasi berjalan setelah instalasi web server .......................
153
Gambar 4.121 Export file Excel pada sistem operasi Linux .........................
154
Gambar 4.122 File Excel dapat terbuka pada sistem operasi Linux .............
154
Gambar 4.123 Aplikasi dapat berjalan pada sistem operasi yang lain ..........
155
xxii
DAFTAR SIMBOL
Simbol Use Case Diagram Simbol
Nama Actor
Use case
Subject Boundary
Communication path
Generalization
Extend
Include
Fungsi User di luar sistem Sebuah spesifikasi perilaku suatu entitas dalam interaksi dengan agen di luar Classifier yang sifatnya dideskripsikan dengan use case
Penjelasan tentang sambungan antara class instances Hubungan antara lebih spesifik dan deskripsi yang lebih umum, digunakan untuk inheritance dan deklarasi tipe polimorfik Menghubungkan sebuah perluasan use case ke use case dasar Menghubungkan use case dasar ke use case tambahan
(Sumber: Rumbaugh, et al., 2006)
xxiii
Simbol Class Diagram Simbol
Nama Class
Generalization
Fungsi Sebuah class adalah classifier yang memiliki objek. Sebuah class menyediakan template dari objek yang diciptakan (diinstansiasi). Di dalam class juga didefinisikan atribut dan operasi Sebuah hubungan generalization menghubungkan sebuah class yang umum dan sebuah class yang khusus atau spesifik
Sebuah hubungan usage terjadi dimana sebuah class membutuhkan class lain untuk operasi atau implementasi
Usage
(Sumber: http://resource.visual-paradigm.com/)
xxiv
Simbol Activity Diagram Simbol
Nama Action atau activity
Fork node
Intial node
Activity final node
Flow
Accept event action
Send signal action
Accept time action
Branch atau merge
xxv
Fungsi Perilaku spesifikasi yang menggambarkan sekuensial serta langkah-langkah prosedur komputasi Node dengan satu input dan beberapa output atau sebaliknya Menunjukkan tempat dimana eksekusi program dimulai ketika sebuah activity dipanggil Menyebabkan penghentian eksekusi paksa semua flow dalam activity dan berakhirnya pelaksanaan activity Mendeskripsikan sumber dan target dari berbagai jenis informasi Suatu aksi yang melakukan eksekusi sampai suatu jenis kejadian tertentu dikenal oleh objek pelaksana Spesifikasi dari blok informasi yang dikomunikasikan dengan asynchronous antar objek Suatu aksi yang dilakukan dalam waktu tertentu Situasi dimana flow input aksi dapat menuju satu atau beberapa
Pin
Object node
Exception handler
Interruptible activity region Expansion region
Sub-activity
kemungkinan flow output atau sebaliknya Merepresentasikan koneksi untuk nilai input atau output suatu aksi Merepresentasikan adanya suatu objek yang diproduksi oleh aksi Kontol yang melakukan asumsi jika ada pengecualian dari suatu kejadian yang terjadi Suatu daerah yang dapat dilakukan proses interupsi Suatu daerah yang mengeksekusi satu dari setiap elemen yang diinput Activity diagram utama terlalu kompleks sehingga dituhkan activity diagram tersendiri untuk proses tertentu
(Sumber: http://resource.visual-paradigm.com/ dan Rumbaugh, et al., 2006)
Fungsi Partisipasi individu dalam interaksi Jenis penghubung yang didefinisikan sebagai stereotip batas Jenis penghubung yang didefinisikan sebagai stereotip kontrol Sebuah jenis penghubung yang didefinisikan sebagai stereotip entitas Komunikasi antar lifeline Tipe message yang merupakan tipe operasi call Tipe message yang merupakan akhir dari eksekusi dan kembali kepada pemanggilnya Tipe pesan yang bergantung pada waktu panggilan pesan
Penghapusan objek
Create Message Model penciptaan objek
Self Message
Recursive Message
Found Message
Jenis pesan yang mana terjadinya peristiwa penerima dikenal
Lost Message
Jenis pesan yang mana terjadinya peristiwa pengiriman dikenal Sebuah fragmen gabungan alternatif menetapkan alternatif fragmen interaksi
Alternative Combined Fragment
xxviii
Jenis pesan yang merupakan pelaksanaan atau operasi memanggil dalam garis hidup yang sama Jenis pesan diri yang dijalankan secara rekursif
Loop Combined Sebuah fragmen yang Fragment mendefinisikan perulangan fragmen interaksi Interaction Use Sebuah cara singkat untuk menyalin isi dari interaksi yang dirujuk Sebuah unit yang Frame mempunyai perilaku untuk berfokus pada pengamatan pertukaran informasi
Actor
Concurrent
xxix
Aktor menentukan peran yang dimainkan oleh pengguna manusia, perangkat keras eksternal, atau subjek lain yang berinteraksi dengan subjek Membuat timeline eksekusi baru bersamaan
Continuation
Gate
Note
Mendefinisikan kelanjutan dari cabang Alternatve Combined Fragment yang berbeda Titik sambungan antara pesan internal dan eksternal dari frame Sebuah notasi tekstual yang dapat melekat pada elemen
Anchor
Sebuah konektor antara elemen dan catatan
Constraint
Kendala adalah suatu kondisi atau pembatasan, yang dapat disajikan dalam kedua bahasa natural atau bahasa mesin yang dapat dibaca.
(Sumber: http://resource.visual-paradigm.com/ dan Rumbaugh, et al., 2006)
xxx
Simbol Deployment Diagram Simbol
Nama Device Node
Artifact
Association
Execution Environment Node
Fungsi Sumber daya komputasi fisik dengan kemampuan pemrosesan untuk mengeksekusi artefak Artefak adalah informasi yang digunakan atau dihasilkan oleh proses pengembangan perangkat lunak Sebuah asosiasi yang menetapkan hubungan semantik yang dapat terjadi antar instansi Sebuah execution environment adalah node yang menawarkan lingkungan eksekusi untuk tipe komponen tertentu sebagai syarat untuk mengeksekusi artefak
(Sumber: http://resource.visual-paradigm.com/)
xxxi
DAFTAR LAMPIRAN
Halaman Lampiran 1. Surat Keterangan Penunjukkan Dosen Pembimbing Skripsi ..... A-1 Lampiran 2. Surat Keterangan Permohonan Penelitian ................................. A-2 Lampiran 3. Surat Keterangan Persetujuan Penelitian dari PDAM ............... A-3 Lampiran 4. Surat Keterangan Penelitian di PDAM ...................................... A-4 Lampiran 5. Wawancara Awal Penelitian ......................................................
B-1
Lampiran 6. Wawancara Akhir Penelitian dan Seusai Pengujian Aplikasi ...
B-2
Lampiran 7. Kode Program ............................................................................
C-1
xxxii
BAB I PENDAHULUAN
1.1. Latar Belakang Perkembangan teknologi informasi saat ini berkembang semakin cepat sejalan dengan pola berpikir manusia yang berkembang mengikuti jaman. Begitu pula dengan perkembangan komputer. Komputer merupakan salah satu alat yang dapat memberikan dampak positif seperti pengaksesan dan pemrosesan informasi yang cepat. Dengan teknologinya, komputer dapat digunakan untuk membantu manusia dalam memecahkan masalah, dan mempermudah aktivitas kerja, begitu pula aktivitas kerja Perusahaan Daerah Air Minum (PDAM) Provinsi DKI Jakarta. Perusahaan Daerah Air Minum (PDAM) Provinsi DKI Jakarta merupakan perusahaan yang secara berkesinambungan menjalankan fungsinya dalam hal pelayanan dan penyediaan air untuk seluruh masyarakat provinsi DKI Jakarta. Dalam membantu menjalankan fungsinya, perusahaan mengadakan kerja sama atau bermitra dengan dua perusahaan lainnya, yaitu PT. PAM Lyonnaise Jaya (PALYJA) dan PT. Aetra Air Jakarta (AETRA). Setiap bulannya kedua mitra tersebut mengirimkan laporan kinerja perusahaan kepada PDAM. Selanjutnya PDAM mendata ulang secara manual laporan-laporan tersebut sebagai bentuk kegiatan mengamati secara
1
2
seksama kinerja kedua mitra tersebut, dengan tujuan agar semua informasi yang diperoleh mengenai kinerja kedua mitra tersebut dapat menjadi landasan dalam mengambil keputusan tindakan selanjutnya yang diperlukan atau evaluasi. PDAM memantau kinerja kedua mitra dengan mendata ulang secara manual laporan-laporan yang disampaikan ke dalam bentuk laporan elektronik untuk dapat dilakukan evaluasi setiap bulannya. Melalui proses pendataan
ulang
kemungkinan
secara
adanya
manual
duplikasi
laporan-laporan data
yang
tersebut,
dapat
terdapat
menyebabkan
ketidakakurasian data-data tersebut, dan proses evaluasi yang dilakukan berjalan lambat. Berdasarkan uraian tersebut maka penulis ingin mengembangkan aplikasi monitoring produktivitas kinerja mitra perusahaan berbasis web. Adapun judul yang diangkat adalah Aplikasi Monitoring Produktivitas Kinerja Mitra Perusahaan (Studi Kasus: PDAM Provinsi DKI Jakarta).
1.2. Perumusan Masalah Permasalahan yang dapat dirumuskan melalui penelitian ini adalah: Bagaimana membangun aplikasi monitoring produktivitas kinerja sehingga kinerja kedua mitra perusahaan PDAM dapat diketahui oleh PDAM.
3
1.3. Batasan Masalah Berdasarkan rumusan masalah, penulis membatasi masalah pada beberapa hal, yaitu: 1.
Penelitian ini dilakukan terkait pada proses monitoring laporan kinerja air baku, air produksi, air terdistribusi, dan air terjual dari kedua mitra perusahaan.
2.
Penggunaan implementasi aplikasi monitoring produktivitas kinerja mitra perusahaan berbasis web pada penelitian ini sebatas pada aplikasi web, laporan rekapitulasi, dan data statistik dalam bentuk diagram.
3.
Perihal denda bagi mitra perusahaan yang realisasinya tidak memenuhi target yang telah ditetapkan, tidak ditampilkan dalam aplikasi ini karena hal tersebut merupakan kewenangan dan keputusan dari PDAM.
1.4. Tujuan dan Manfaat Penelitian 1.4.1. Tujuan Penelitian Berdasarkan uraian latar belakang, maka tujuan penelitian ini adalah: Menganalisis
dan
mengimplementasi
aplikasi
monitoring
produktivitas kinerja mitra perusahaan berbasis web dalam melakukan
proses
monitoring,
sehingga
memudahkan
dan
mempercepat PDAM dalam mengevaluasi kedua mitra perusahaan.
4
1.4.2. Manfaat Penelitian 1.4.2.1. Bagi Penulis 1.
Dapat mengetahui proses monitoring produktivitas kinerja kedua mitra perusahaan PDAM.
2.
Penulis dapat mengembangkan aplikasi berbasis web.
1.4.2.2. Bagi Instansi/Perusahaan 1.
Mendapatkan meminimalkan timbul
dalam
rekomendasi
aplikasi
yang
dapat
permasalahan-permasalahan
yang
proses
monitoring
proses
evaluasi
kinerja
mitra
terhadap
mitra
perusahaan. 2.
Meningkatkan
perusahaan tersebut. 1.4.2.3. Bagi Universitas 1.
Diharapkan sebagai sumbangan karya ilmiah dalam disiplin ilmu khususnya dalam bidang teknologi informasi.
2.
Berguna sebagai penambah hasil-hasil penelitian yang dapat dijadikan bahan acuan bagi peneliti lain yang berminat mengkaji permasalahan atau topik yang serupa.
5
1.5. Waktu dan Tempat Penelitian Penelitian ini dilaksanakan pada: Waktu : 11 Oktober 2010 - 15 Nopember 2010 Tempat : Divisi Bina Program PDAM Provinsi DKI Jakarta yang berlokasi di Jalan Penjernihan II Pejompongan, Jakarta Pusat.
1.6. Metode Penelitian Penulis menggunakan beberapa metode dalam proses pengumpulan data dan informasi yang diperlukan dalam penelitian ini. Metode yang digunakan adalah: 1.6.1. Metode Pengumpulan Data 1.
Wawancara (Interview) Pengumpulan data dan informasi dengan mengadakan tanya jawab antara peneliti dan instansi yang terkait.
2.
Studi Pustaka Pengumpulan data dan informasi dengan membaca buku-buku referensi yang dapat menjadi acuan dalam penelitian.
3.
Studi Sejenis Studi sejenis yang dapat berupa jurnal, artikel ilmiah, maupun dari studi kasus yang pernah ada sebagai bahan perbandingan penelitian penulis.
6
1.6.2.
Metode Pengembangan Aplikasi Metode
pengembangan
aplikasi
yang
dipakai
dalam
penelitian ini adalah model proses incremental. Model incremental menggabungkan elemen-elemen dari alur proses linear dan parallel. Model proses incremental berfokus pada pengantaran dari operasional produk dengan tiap perulangan. Kerangka proses pembangunan perangkat lunak dari model proses incremental meliputi lima kegiatan, yaitu: 1.
Communication. Sebelum kerja teknis apapun dapat dimulai, secara kritis sangat penting untuk berkomunikasi dan berkolaborasi dengan pelanggan dan stakeholder yang lain.
2.
Planning. Sebuah proyek perangkat lunak adalah sebuah perjalanan
yang
kompleks,
dan
kegiatan
perencanaan
menciptakan sebuah “peta” yang dapat membantu memandu tim seperti melakukan sebuah perjalanan. Peta yang dimaksud disebut sebagai software project plan, yang mendefinisikan kerja pembangunan perangkat lunak dengan mendeskripsikan tugas-tugas teknis untuk diadakan, resiko-resiko yang mungkin terjadi, sumber-sumber yang akan dibutuhkan, berbagai kerja yang akan dilaksanakan, dan jadwal kerja. 3.
Modelling. Seorang teknisi perangkat lunak menciptakan model-model untuk mengerti kebutuhan-kebutuhan perangkat
7
lunak dengan lebih baik, dan model yang akan mencapai kebutuhan-kebutuhan tersebut. 4.
Construction. Aktifitas ini menggabungkan pembuatan kode (baik manual maupun otomatis) dan pengujian yang diperlukan untuk mengungkapkan kesalahan-kesalahan yang ada pada kode.
5.
Deployment.
Perangkat lunak (sebagai sebuah kesatuan
lengkap atau sebagai sebuah perulangan bagian-bagian yang lengkap) diantarkan kepada pelanggan yang mengevaluasi produk yang diantarkan tersebut dan memberikan umpan balik berdasarkan evaluasi tersebut.
1.7. Sistematika Penulisan Pembahasan dalam skripsi ini terbagi ke dalam lima bab, berikut ini adalah uraian singkat masing-masing bab yang terdapat dalam skripsi ini: BAB I
PENDAHULUAN Dalam bab ini memberikan uraian mengenai latar belakang, perumusan masalah, batasan masalah, tujuan dan manfaat penelitian, waktu dan tempat penelitian, metodologi penelitian, dan sistematika penulisan.
BAB II
LANDASAN TEORI Dalam bab ini memberikan uraian mengenai berbagai teori yang berhubungan dengan permasalahan yang diambil penulis dan
8
yang digunakan sebagai dasar dalam penelitian ini. Teori-teori tersebut diambil dari pustaka, dokumentasi, dan informasi dari berbagai pihak. BAB III METODE PENELITIAN Dalam bab ini memberikan uraian mengenai metode penelitian yang digunakan serta langkah-langkah yang digunakan terkait dengan penelitian yang dilakukan. BAB IV ANALISIS DAN PEMBAHASAN Dalam bab ini memberikan uraian mengenai analisis dan pembahasan tentang pengembangan aplikasi. BAB V
PENUTUP Dalam bab ini memberikan uraian kesimpulan dari hasil penelitian yang dilakukan dan saran agar pengembangan aplikasi ini dapat lebih baik ke depannya.
BAB II LANDASAN TEORI
2.1. Aplikasi Aplikasi adalah sebuah program komputer yang digunakan untuk tugas yang spesifik atau khusus, seperti akuntansi, analisis dalam bidang sains atau medis, atau pemrosesan kata. Bagian “aplikasi” mengacu kepada keseluruhan set dari program yang secara kolektif mengimplementasikan sebuah proses bisnis yang spesifik. Program-program individual yang mengimplementasikan bagian dari proses bisnis ini dikenal sebagai “program aplikasi” atau “perangkat lunak aplikasi” (Nader, 1992: 20).
2.2. Monitoring dan Evaluasi Menurut Sumiyati (dalam Pusat Kurikulum, Badan Penelitian dan Pengembangan Departemen Pendidikan Nasional, 2009) monitoring atau pemantauan merupakan suatu kegiatan mengamati secara seksama suatu keadaan atau kondisi, termasuk juga perilaku atau kegiatan tertentu, dengan tujuan agar semua data masukan atau informasi yang diperoleh dari hasil pengamatan tersebut dapat menjadi landasan dalam mengambil keputusan tindakan selanjutnya yang diperlukan.
Tindakan
tersebut
diperlukan
seandainya
hasil
pengamatan
menunjukkan adanya hal atau kondisi yang tidak sesuai dengan yang direncanakan semula.
9
10
Sementara itu, evaluasi merupakan kegiatan yang menilai hasil yang diperoleh selama kegiatan pemantauan berlangsung. Lebih dari itu, evaluasi juga menilai hasil atau produk yang telah dihasilkan dari suatu rangkaian program sebagai dasar mengambil keputusan tentang tingkat keberhasilan yang telah dicapai dan tindakan selanjutnya yang diperlukan.
2.3. Perusahaan Menurut Undang-Undang Republik Indonesia No. 8 Tahun 1997 Tentang Dokumen Perusahaan disebut bahwa yang dimaksud dengan perusahaan adalah setiap bentuk usaha yang melakukan kegiatan secara tetap dan terus menerus dengan tujuan memperoleh keuntungan dan atau laba, baik yang diselenggarakan oleh orang-perorangan maupun badan usaha yang berbentuk badan hukum atau bukan badan hukum, yang didirikan dan berkedudukan dalam wilayah Negara Republik Indonesia.
2.4. Database Management System (DBMS) Sistem manajemen database atau Database Management System (DBMS) merupakan
suatu
sistem
software
yang
memungkinkan
user
untuk
mendefinisikan, membuat, dan memelihara database maupun menyediakan akses yang terkontrol terhadap data. Sebuah database merupakan sekumpulan data yang berhubungan secara logika dan memiliki beberapa arti yang saling berpautan. Istilah database kerap digunakan sebagai acuan terhadap data itu sendiri, namun
11
demikian, ada sejumlah komponen tambahan lainnya yang juga menjadi bagian dari suatu sistem manajemen database yang utuh. Hardware merupakan sistem komputer aktual yang digunakan untuk menyimpan dan mengakses database. Dalam sebuah organisasi berskala besar, hardware untuk sistem yang seperti ini terdiri dari jaringan (network) dengan sebuah server pusat dan beberapa program client yang berjalan di komputer desktop. Server adalah prosesor pusat yang secara fisik merupakan tempat penyimpanan database. Server biasanya memiliki sebuah prosesor yang begitu handal karena akan dipergunakan untuk mengelola operasi-operasi pengambilan data maupun berbagai manipulasi data aktual. Client merupakan program-program yang berinteraksi dengan DBMS dan berjalan di komputer desktop personal untuk mengakses database dari sisi pandang user. DBMS beserta client-nya dapat juga berada di dalam satu komputer tunggal. Dalam kasus seperti ini biasanya hanya terdapat satu user yang mengakses database pada satu waktu, sistem manajemen database personal atau single-user akan diakses oleh beberapa user pada waktu yang berbeda. Secara aktual, konfigurasi jaringan akan berbeda-beda antara satu organisasi dengan organisasi lainnya. Software adalah DBMS yang aktual. Di dalam jaringan client/server, DBMS memungkinkan program-program pengelola data untuk berada di server dan program-program client berada di masing-masing desktop. Di dalam sistem single-user biasanya hanya ada satu bagian software yang menangani keseluruhan operasi. DBMS memungkinkan para user untuk berkomunikasi dengan database. Dengan kata lain, ini merupakan mediator antara database dengan user. Beberapa
12
diantaranya diperbolehkan untuk mengubah bagian-bagian dari struktur database, beberapa yang lainnya diperbolehkan untuk mengubah data, sedangkan sisanya hanya diperbolehkan untuk melihat-lihat data. DBMS mengontrol akses dan membantu memelihara konsistensi data. Beberapa utility biasanya disertakan pula sebagai bagian dari DBMS ini (Toledo & Cushman, 2007: 1-2). 2.4.1. Data Data adalah jantung dari DBMS. Ada dua jenis data. Pertama, dan yang paling jelas, adalah kumpulan informasi yang diperlukan oleh organisasi. Jenis data kedua, atau metadata, adalah informasi mengenai database. Informasi ini biasanya disimpan dalam sebuah kamus data (data dictionary) atau katalog. Kamus data menyertakan informasi berupa user, hak istimewa (privileges) dan struktur internal database (Toledo & Cushman, 2007: 3). 2.4.2. Keuntungan DBMS Keuntungan menggunakan sebuah DBMS terbagi menjadi tiga kategori utama: 1.
Pemeliharaan Data yang Tepat Para user harus dapat mempercayai bahwa data senantiasa dalam keadaan akurat dan terkini. Inkonsistensi seharusnya dihindari dan redundansi pun seharusnya diminimalkan. Redundansi terjadi ketika informasi yang serupa disimpan di berbagai tempat. Inkonsistensi hadir ketika data di suatu lokasi mengalami perubahan sedangkan di lokasi lainnya tidak.
13
Kebanyakan sistem database menyediakan batasan integritas (integrity constraint) yang harus diikuti. 2.
Penyediaan Akses Terhadap Data Data biasanya dibagi pakai (shared) oleh beberapa user dan program. Baik penyimpanan maupun akses terhadap data seharusnya dapat dilakukan dengan mudah dan cepat. Dukungan yang sama terhadap semua jenis transaksi, baik yang interaktif maupun berupa query program, harus disediakan oleh DBMS. Query interaktif tidak harus menunggu hingga program aplikasi selesai dijalankan. Tugas DBMS adalah memungkinkan akses cepat untuk seluruh user yang membutuhkannya sambil tetap menjalankan prosedur-prosedur pemeliharaan database yang diperlukan.
3.
Pemeliharaan Keamanan Data Database Administrator (DBA) biasanya adalah orang yang bertanggung jawab terhadap keamanan data. Akses yang tidak sah (unauthorized) harus dicegah dan sejumlah tingkatan izin akses (permission) pun harus diberikan kepada para user. Sejumlah tool telah disediakan bagi DBA untuk melaksanakan seluruh prosedur keamanan dan mempertemukan semua kepentingan bersilangan yang muncul ketika banyak user harus mengakses ke database yang sama (Toledo & Cushman, 2007: 6-7).
14
2.4.3. Model Data Model data adalah suatu cara untuk menjelaskan susunan logis data beserta hubungan antar berbagai bagiannya dan ke seluruh bagian. Modelmodel data yang berbeda telah digunakan selama bertahun-tahun. Pada tahun-tahun awal sering kali suatu sistem mentah (flat file system) atau file teks sederhana (simple text file) hadir dengan seluruh data berada dalam urutan yang sama, nampak lebih mudah. Biasanya program aplikasi mengakses data secara berurutan (sequential) untuk melakukan proses batch. Tidak banyak akses interaktif yang tersedia. Model-model lainnya yang digunakan dalam mainframe besar adalah model hirarki (hierarchical) dan jaringan (network). Database hirarki disusun menggunakan sebuah model pohon (tree model), dengan satu akar dan beberapa tingkatan cabang. Setiap item hanya memiliki satu link yang menginduk padanya. Akses data dimulai dari akar dan menyusur ke bawah pohon hingga detail yang diinginkan berhasil ditemukan. Model network memuat banyak link di antara berbagai item data. Indeks yang saling berhubungan memungkinkan akses data dari berbagai arah. Pada tahun 1970, Dr. E. F. Codd mendeskripsikan suatu bentuk model baru, yaitu model relasional (relational model) untuk sistem database. Sistem manajemen database relasional (relational database management system), di mana seluruh data disimpan dalam tabel atau relasi, menjadi standar baru. Semua itu jauh lebih fleksibel dan mudah digunakan,
15
dengan hampir seluruh item data dapat diakses lebih cepat daripada modelmodel yang lain (Toledo & Cushman, 2007: 8). 2.4.4. Arsitektur Sistem Database Memahami suatu model abstrak dari sebuah data adalah penting dalam upaya mendeskripsikan arsitektur sistem database. Salah satu ciri utama database adalah data aktualnya terpisah dari program yang menggunakan data tersebut (Toledo & Cushman, 2007: 9). 2.4.4.1. Skema dan Bahasa Model
data
mendeskripsikan
data
dan
hubungan-
hubungannya di tingkat abstrak. Skema database digunakan untuk mendeskripsikan konsep organisasi sistem database. Organisasi ini ditentukan sebelum proses desain, biasanya menggunakan data definition language (DDL) yang disediakan oleh vendor software tertentu. Organisasi data dapat dideskripsikan dalam dua tingkatan, yaitu logis dan fisik. Organisasi fisik berhubungan dengan bagaimana data secara aktual tersimpan di dalam disk. Organisasi logis adalah konsep model data yang akan diimplementasikan. DDL memperbolehkan user untuk mendefinisikan organisasi data di tingkat logis. Software DBMS tertentu kemudian mengambil alih organisasi fisik data melalui pemetaan dari logis ke fisik (Toledo & Cushman, 2007: 9).
16
2.4.4.2. Arsitektur Tiga Tingkatan Metode yang diterima secara umum untuk menjelaskan arsitektur suatu sistem database disahkan oleh suatu komite pada tahun 1975 dan dijelaskan secara lebih menyeluruh pada tahun 1978. Artisektur ini dikenal sebagai ANSI/SPARC, sesuai dengan nama Standards Planning and Requirements Committee di American National Standards Institute (Toledo & Cushman, 2007: 10). Tiga tingkatan tersebut adalah internal, konseptual, dan eksternal. 1.
Tingkatan internal menyangkut cara data disimpan ke dalam hardware secara fisik. Tingkatan ini dideskripsikan menggunakan byte aktual dan terminologi machine-level (tingkat mesin). Biasanya software DBMS yang menangani tingkatan ini.
2.
Tingkatan konseptual, yaitu definisi logikal database, kadang diartikan sebagai tampilan komunitas. Model data dan diagram skema adalah penjelasan database dalam tingkatan konseptual. DBA dan asistennya mengurusi skema dan biasanya merekalah yang menggunakan DDL untuk mendefinisikan database.
3.
Tingkatan eksternal adalah tingkatan yang menyangkut user. Entah user itu adalah programmer aplikasi maupun end user, mereka selalu memiliki pandangan, atau model
17
bayangan, terhadap database dan isi yang terkandung di dalamnya (Toledo & Cushman, 2007: 10-11).
Gambar 2.1 The ANSI-SPARC three-level architecture (Sumber: Connolly & Begg, 2002: 35)
2.5. World Wide Web World Wide Web (WWW), atau Web, adalah sebuah aplikasi perangkat lunak yang membuat mudah dan mungkin bagi hampir semua orang untuk mempublikasikan dan menelusuri dokumen hypertext di Internet. Web dapat dianggap seperti mencakup semua informasi yang tersedia melalui browser web. Web telah berkembang besar karena kemudahan penggunaan dan daya tarik visual. Disebut "Web" karena interkoneksi antara dokumen menyerupai jaring laba-laba (Greenlaw & Hepp, 2002: 142).
18
Bagaimana Internet berbeda dari WWW? Internet dapat dianggap sebagai kelompok jaringan komputer yang sangat besar. Informasi di web diangkut melalui Internet. Oleh karena itu web menggunakan Internet. Bahkan, web kini menjadi kekuatan pendorong di belakang Internet. Web menghasilkan lalu lintas permintaan terbesar dalam Internet, dan teknologi Internet yang baru sedang dikembangkan untuk memenuhi keinginan pengguna web (Greenlaw & Hepp, 2002: 142-143). Ide sentral dalam pengembangan web adalah Uniform Resource Locator (URL). Sebuah URL adalah alamat web yang secara unik mengidentifikasi sebuah dokumen di web. Dokumen tersebut dapat berupa gambar, file HTML, program, atau file jenis lain. Alamat-alamat yang unik memungkinkan untuk terhubung ke dokumen web orang lain. Sifat nonlinier dari web merupakan salah satu atraksi utama. Karena orang di seluruh dunia yang berpartisipasi melakukan publikasi di dalam web, seluruh sistem telah berkembang menjadi sesuatu yang jauh lebih besar daripada kontribusi individu (Greenlaw & Hepp, 2002: 143-144).
2.6. Framework Framework dapat diartikan sebagai koleksi atau kumpulan potonganpotongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal (Basuki, 2010: 3).
19
2.7. Konsep Model-View-Controller (MVC) MVC adalah sebuah pola pemrograman yang bertujuan memisahkan logika bisnis, logika data, dan logika tampilan (interface), atau secara sederhana memisahkan antara proses, data, dan tampilan. MVC mengatur arsitektur sebuah aplikasi. Umumnya aplikasi yang dibangun dengan konsep MVC adalah aplikasi yang cukup besar, karena salah satu keuntungan dari MVC itu adalah kemudahan maintenance, dan pengembangan aplikasi tersebut (Wardana, 2010: 52).
Gambar 2.2 Model Hubungan MVC (Sumber: Wardana, 2010: 53) 1.
View adalah komponen dari MVC yang bertugas menampilkan apa yang harus ditampilkan ke pengunjung website. Isinya dapat berupa form, tabel, gambar, animasi ataupun lainnya yang boleh dilihat oleh user (pengunjung). Jadi, view mengatur bagaimana suatu data yang diperoleh dari controller ditampilkan untuk user. View mencakup
20
semua proses yang terkait layout output. Tempat menaruh template interface website atau aplikasi. View merupakan informasi yang ditampilkan kepada pengunjung dari website. 2.
Model adalah komponen MVC yang bertugas mengambil data dari database dan juga memasukkan data ke database. Isi utamanya berupa perintah SQL. Hasilnya dikirimkan ke controller.
3.
Controller adalah komponen MVC yang bertugas mengirim perintah ke model untuk mendapatkan data yang diinginkan. Controller tidak mengetahui bagaimana data tersebut diambil dari database, karena controller tidak berisi kode perintah SQL. Controller mengolah data dari input-an user dan data dari model, kemudian data olahan tersebut dikirimkan ke view untuk ditampilkan sesuai aturan controller. Controller merupakan penghubung antara model dan view dan mengatur hubungan tersebut (Wardana, 2010: 53).
2.8. Bahasa Pemrograman yang Digunakan 2.8.1. CSS CSS
(Cascading
Style
Sheets)
adalah
salah
satu
bahasa
pemrograman desain web (style sheet language) yang mengontrol format tampilan sebuah halaman web yang ditulis dengan menggunakan bahasa penanda (markup language). Biasanya CSS digunakan untuk mendesain sebuah halaman HTML, dan XHTML, tetapi sekarang bahasa pemrograman
21
CSS bisa diaplikasikan untuk segala dokumen XML, termasuk SVG dan XUL. CSS dibuat untuk memisahkan konten utama (biasanya dibuat dengan menggunakan bahasa HTML atau sejenisnya) dengan tampilan dokumen yang meliputi layout, warna, dan font. Pemisahan ini dapat meningkatkan daya akses konten pada web, menyediakan lebih banyak fleksibilitas dan kontrol dalam spesifikasi dari sebuah karakteristik dari sebuah tampilan, memungkinkan untuk membagi banyak halaman untuk sebuah formatting dan mengurangi kerumitan dalam penulisan kode dan struktur dari konten, contohnya teknik tableless pada layout desain web (layout tanpa tabel). Tujuan utama CSS diciptakan adalah untuk membedakan konten dari dokumen dan tampilan dari dokumen, dengan itu pembuatan ataupun pemrograman ulang web akan lebih mudah dilakukan. Hal yang termasuk dalam desain web diantaranya adalah warna, ukuran, dan formatting. Dengan adanya CSS, konten dan desain web akan mudah dibedakan, jadi memungkinkan untuk melakukan pengulangan pada tampilan-tampilan tertentu dalam suatu halaman web, sehingga akan memudahkan dalam membuat halaman web yang banyak, sehingga membuat waktu dalam membuat web jauh lebih cepat (Wismakarma, 2010: 2).
22
2.8.2. HTML Hypertext Markup Language (HTML) adalah sekumpulan perintah khusus (disebut “tag” atau “markup”) yang dipakai untuk menentukan struktur, bentuk, dan link pada dokumen ke dokumen multimedia lain di web. Extensible hypertext markup language (XHTML) adalah pengganti dan merupakan versi HTML yang sering dipakai. Kebutuhan untuk membuat HTML yang lebih sempit dianggap cukup penting karena isi World Wide Web saat ini harus bisa diteruskan ke banyak peranti (misalnya peranti bergerak) yang memiliki sedikit sumber daya dibandingkan komputer tradisional (Williams & Sawyer, 2007: 67-68). 2.8.3. PHP PHP (Hypertext Preprocessor) dikembangkan pertama kali tahun 1995 oleh Rasmus Lerdorf yang merupakan salah satu anggota group Apache. PHP pertama kali didesain sebagai alat tracking pengunjung web site Lerdorf.
Kemudian, fungsinya diperlebar dan dihubungkan dengan
Apache. PHP dikembangkan sepenuhnya untuk bahasa skrip side-server programming. PHP bersifat open-source dan dapat digabungkan dengan berbagai server yang berbeda-beda. PHP mempunyai kemampuan dapat mengakses database dan diintegrasikan dengan HTML. Berdasarkan hasil survei yang dilakukan Netcraft (http://www.netcraft.com), PHP lebih popular dalam jumlah pemakai dibanding dengan modul perl, CGI, dan ASP.
23
PHP adalah bahasa server-side programming yang power full untuk membuat halaman web yang dinamis dan interaktif. Sintak PHP mirip dengan bahasa Perl dan C. PHP biasanya sering digunakan bersama web server Apache di beragam sistem operasi. PHP juga men-support ISAPI dan dapat digunakan bersama dengan Microsoft IIS di Windows. PHP merupakan software open source, dapat digunakan dengan gratis dan dapat dijadikan alternatif selain side-server programming yang lain (Microsoft ASP). Sintak PHP dapat dituliskan langsung di antara kode HTML (Sunyoto, 2007: 119). PHP semakin popular karena memiliki beberapa kelebihan, antara lain: 1.
Mudah dibuat dan dijalankan.
2.
Mampu berjalan pada web server dengan sistem operasi yang berbeda-beda: PHP mampu berjalan pada sistem operasi UNIX, keluarga Windows, dan Machintosh.
3.
PHP bisa didapatkan secara gratis.
4.
Dapat berjalan pada web server yang berbeda: PHP mampu berjalan pada web server yang berbeda-beda, seperti Microsoft personal Web Server, Apache, IIS, Xitami, dll.
5.
Dapat di-embedded: PHP dapat diletakkan dalam tag HTML (Sunyoto, 2007: 121).
24
2.9. Perangkat Lunak yang Digunakan 2.9.1. CodeIgniter CodeIgniter adalah sebuah framework PHP yang dapat membantu mempercepat developer dalam pengembangan aplikasi web berbasis PHP dibandingkan jika menulis semua kode program dari awal. CodeIgniter menyediakan banyak library untuk mengerjakan tugas-tugas yang umumnya ada pada sebuah aplikasi berbasis web (Basuki, 2010: 8). Adapun
beberapa
keuntungan
menggunakan
CodeIgniter,
diantaranya: 1.
Gratis
2.
Ditulis Menggunakan PHP 4
3.
Berukuran Kecil
4.
Menggunakan Konsep M-V-C (Model-View-Controller)
5.
URL yang Sederhana
6.
Memiliki Paket Library yang Lengkap
7.
Extensible
8.
Tidak Memerlukan Template Engine
9.
Dokumentasi Lengkap dan Jelas
10. Komunitas (Basuki, 2010: 9) 2.9.2. XAMPP XAMPP merupakan pengembangan dari LAMP (Linux Apache, MySQL, PHP and PERL). XAMPP ini merupakan project non-profit yang dikembangkan oleh Apache Friends yang didirikan oleh Kai ‘Oswalad’
25
Seidler dan Kay Vogelgesang pada tahun 2002, project mereka ini bertujuan mempromosikan penggunaan Apache web server. XAMPP merupakan sebuah paket instalasi untuk PHP, APACHE dan MySQL (Ibrahim, 2008: 3).
2.10. Incremental Process Models Model incremental menggabungkan elemen-elemen dari alur proses linear dan parallel. Model incremental mengaplikasikan urutan linier dalam bentuk bergiliran seperti berlangsungnya waktu kalender. Setiap urutan linier menghasilkan penyampaian "increments" dari perangkat lunak dalam sebuah cara yang mirip dengan peningkatan yang dihasilkan oleh aliran proses evolusi. Sebagai contoh, perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma increment mungkin akan memberikan dasar manajemen file, mengedit, dan fungsi produksi dokumen dalam increment pertama; kemampuan lebih baik untuk mengedit dan produksi dokumen pada increment kedua; memeriksa ejaan dan tata bahasa pada increment ketiga dan kemampuan tata letak halaman yang lebih baik pada increment selanjutnya. Perlu dicatat bahwa proses aliran untuk setiap kenaikan dapat memasukkan paradigma prototyping (Pressman, 2010: 41).
26
Gambar 2.3 The Incremental Model (Sumber: Pressman, 2010: 42) Increment pertama sering berupa sebuah produk inti. Artinya, kebutuhan dasar dikembangkan tapi banyak fitur tambahan belum dikembangkan. Produk inti digunakan oleh pelanggan. Setelah digunakan dan dievaluasi, rencana dikembangkan untuk increment berikutnya. Rencana untuk modifikasi produk inti dibuat untuk lebih memenuhi kebutuhan pelanggan dengan adanya tambahan fitur dan fungsionalitas. Proses ini terus diulangi pada setiap increment, sampai produk sempurna selesai diproduksi. Model proses incremental berfokus pada penyampaian produk operasional pada setiap increment. Increment awal adalah versi stripped-down dari produk akhir, tetapi produk tersebut memberikan kemampuan yang melayani pengguna dan juga menyediakan platform untuk evaluasi oleh pengguna.
27
Pengembangan incremental terutama berguna ketika staf tidak tersedia untuk implementasi lengkap dengan tenggat waktu yang telah ditetapkan untuk proyek. Awal increment dapat diimplementasikan dengan lebih sedikit orang. Jika produk inti diterima dengan baik, maka staf dapat ditambahkan untuk mengimplementasikan peningkatan berikutnya. Selain itu, penambahan dapat direncanakan untuk mengelola resiko teknis. Sebagai contoh, sebuah sistem utama mungkin memerlukan ketersediaan hardware yang baru dalam pengembangan dan jadwal penyelesaian produk yang tidak pasti. Sangatlah mungkin untuk merencanakan increment awal dengan cara yang menghindari penggunaan hardware yang baru, sehingga memungkinkan fungsi yang tidak lengkap untuk diberikan kepada pengguna akhir tanpa penundaan berlebihan (Pressman, 2010 : 42). Menurut Pressman (2010 : 15) pemodelan ini menyangkut aktifitas berikut: 2.10.1. Communication Sebelum kerja teknis apapun dapat dimulai, secara kritis sangat penting untuk berkomunikasi dan berkolaborasi dengan pelanggan dan stakeholder yang lain. Tujuannya adalah untuk memahami tujuan proyek pelanggan dan untuk mengumpulkan persyaratan yang membantu mendefinisikan fitur dan fungsi perangkat lunak. 2.10.2. Planning Sebuah proyek perangkat lunak adalah sebuah perjalanan yang kompleks, dan kegiatan perencanaan menciptakan sebuah “peta” yang dapat
28
membantu memandu tim seperti melakukan sebuah perjalanan. Peta yang dimaksud disebut sebagai software project plan, yang mendefinisikan kerja pembangunan perangkat lunak dengan mendeskripsikan tugas-tugas teknis untuk diadakan, resiko-resiko yang mungkin terjadi, sumber-sumber yang akan dibutuhkan, berbagai kerja yang akan dilaksanakan, dan jadwal kerja. 2.10.3. Modelling Seorang teknisi perangkat lunak menciptakan model-model untuk mengerti kebutuhan-kebutuhan perangkat lunak dengan lebih baik, dan model yang akan mencapai kebutuhan-kebutuhan tersebut. 2.10.4. Construction Kegiatan
konstruksi
meliputi
serangkaian
pengkodean
dan
pengujian yang mengarah ke pekerjaan rekayasa perangkat lunak, mungkin coding penciptaan langsung dari bahasa pemrograman source code (misalnya Java), pembangkitan otomatis dari source code menggunakan representasi desain tingkat menengah dari komponen yang akan dibangun, atau pembangkitan otomatis dari executable menggunakan bahasa "pemrograman generasi keempat" (misalnya Visual C++). Fokus awal pengujian adalah pada tingkat komponen, biasanya disebut unit testing. Tingkatan lain dalam pengujian termasuk pengujian integrasi (yang dilakukan ketika sistem dibangun), pengujian validasi yang menilai apakah persyaratan telah dipenuhi untuk sistem yang lengkap (atau software increment), dan tes penerimaan yang dilakukan oleh pelanggan
29
dalam upaya untuk melaksanakan semua fitur dan fungsi yang diperlukan. Jika pengujian berhasil dilakukan, pengujian ini akan menemukan kesalahan dalam perangkat lunak. Keuntungan lainnya, pengujian menunjukkan bahwa fungsi perangkat lunak muncul untuk dapat bekerja sesuai dengan spesifikasi, dan bahwa persyaratan kinerja dan perilaku tampaknya telah dipenuhi. Selain itu, data yang dikumpulkan sebagai pengujian memberikan indikasi yang baik pada kehandalan perangkat lunak dan beberapa indikasi kualitas perangkat lunak secara keseluruhan. Tetapi pengujian tidak bisa menunjukkan adanya kesalahan dan cacat. Ini hanya dapat menunjukkan kesalahan dan cacat yang terjadi pada perangkat lunak. 2.10.5. Deployment Kegiatan pengembangan meliputi tiga tindakan: pengiriman, dukungan, dan umpan balik. Karena model proses perangkat lunak modern adalah evolusi atau bertahap di alam, penyebaran terjadi tidak hanya sekali, tapi beberapa kali selama perangkat lunak bergerak ke arah penyelesaian. Setiap siklus pengiriman menyediakan pengguna dan pelanggan increment operasional perangkat lunak yang menyediakan fungsi dan fitur yang dapat digunakan. Setiap siklus dukungan menyediakan dokumentasi dan bantuan manusia untuk semua fungsi dan fitur yang diperkenalkan selama seluruh siklus dikembangkan. Setiap umpan balik pada siklus menyediakan tim perangkat lunak dengan panduan penting bahwa hasil harus dilakukan
30
modifikasi pada fungsi, fitur, dan pendekatan yang diambil untuk increment berikutnya. Perangkat lunak yang dikirimkan memberikan manfaat bagi pengguna akhir, tapi juga memberikan umpan balik yang berguna untuk tim perangkat lunak. Ketika suatu increment mulai digunakan, pengguna akhir harus didorong untuk mengomentari fitur dan fungsi, kemudahan penggunaan, kehandalan, dan karakteristik lain yang sesuai.
2.11. Pengujian 2.11.1. Pengujian Fungsional Pengujian fungsional, atau lebih tepatnya, desain uji kasus fungsional hanya mempertimbangkan spesifikasi program dan bukan rancangan atau struktur implementasi. Berdasarkan pada spesifikasi program dan bukan pada kode internal, pengujian fungsional juga disebut basis spesifikasi atau black-box testing (Pezze & Young, 2008: 161). 2.11.2. Pengujian Non Fungsional Pengujian non-fungsional adalah topik yang luas yang mencakup berbagai aspek perilaku sistem. Beberapa tes non-fungsional yang paling umum yang secara rutin diidentifikasi dan dilakukan adalah kinerja, failover, dan tes kapasitas, namun banyak proyek lalai untuk tambahan pengujian sifat-sifat non-fungsional dari sistem yang mereka terapkan,
31
seperti tes keberlanjutan/kebocoran, operabilitas dan pemulihan (Ford, et al., 2008: 17). 2.11.3. Pengujian Black-Box (Black-Box Testing) Black-box testing, juga yang dikenal dengan behavioral testing, berfokus pada kebutuhan-kebutuhan fungsional dari perangkat lunak. Pengujian black-box berupaya untuk menemukan kesalahan dalam kategori berikut: (1) fungsi yang tidak tepat atau hilang, (2) kesalahan interface, (3) kesalahan pada struktur data atau akses database eksternal, (4) kesalahan perilaku atau kinerja, (5) kesalahan inisialisasi dan penghentian (Pressman, 2010: 495). Tujuan dari pengujian black-box adalah untuk memverifikasi kebenaran perilaku perangkat lunak yang secara langsung mendukung kegiatan bisnis sehari-hari. Tujuan ini sering disebut sebagai cakupan perilaku. Persyaratan untuk pengujian black-box adalah kebutuhan perangkat lunak, use case, program yang dieksekusi, dan data (Everett & McLeod, 2007: 131-132). 2.11.4. Pengujian White-Box (White-Box Testing) White-box testing, terkadang disebut glass-box testing, adalah sebuah filosofi desain kasus pengujian yang menggunakan struktur kontrol yang digambarkan sebagai bagian dari desain level komponen untuk menurunkan kasus uji (Pressman, 2010: 485). Tujuan dari pengujian white-box adalah untuk memverifikasi kebenaran pernyataan perangkat lunak, alur kode program, kondisi, loop,
32
dan aliran data. Tujuan ini sering disebut sebagai cakupan logika. Persyaratan untuk pengujian white-box mencakup persyaratan perangkat lunak, use case, program yang dieksekusi, data, dan kode sumbernya (Everett & McLeod, 2007: 107).
2.12. Unified Modelling Language (UML) Unified Modeling Language (UML) adalah bahasa pemodelan visual untuk tujuan umum yang digunakan untuk menentukan, memvisualisasi, membangun, dan mendokumentasikan artefak dari perangkat lunak sistem. UML digunakan untuk
memahami,
mendesain,
menjelajah,
mengonfigurasi,
memelihara
dan mengontrol informasi tentang sistem tersebut. UML dimaksudkan untuk digunakan dengan semua metode pengembangan, tahapan-tahapan siklus hidup, domain-domain aplikasi dan media. Pemodelan bahasa ini dimaksudkan untuk menyatukan pengalaman masa lalu tentang teknik pemodelan dan untuk memasukkan praktik-praktik terbaik perangkat lunak saat ini menjadi pendekatan standar. Spesifikasi UML tidak mendefinisikan proses standar tetapi dimaksudkan untuk menjadi berguna dengan proses pengembangan berulang. Hal ini dimaksudkan untuk mendukung proses pengembangan dengan object oriented. UML menyimpan informasi tentang struktur statis dan perilaku dinamis suatu sistem. Sebuah sistem dimodelkan sebagai koleksi benda-benda diskrit yang berinteraksi untuk melakukan kerja yang pada akhirnya bermanfaat. Struktur statis mendefinisikan jenis-jenis objek penting untuk sistem dan pelaksanaannya, serta
33
sebagai hubungan antara objek-objek. Perilaku dinamis mendefinisikan sejarah obyek dari waktu ke waktu dan komunikasi antara objek-objek untuk mencapai tujuan (Rumbaugh, et al., 2006: 3). UML bukanlah bahasa pemrograman. UML dapat digunakan untuk menulis program, tetapi tidak memiliki kemudahan sintak dan semantik yang mana kebanyakan bahasa pemrograman menyediakan untuk memudahkan tugas pemrograman. Beberapa tools dapat menyediakan generator kode dari UML ke dalam berbagai bahasa pemrograman, serta membangun reverse engineered model dari program yang ada. UML adalah bahasa pemodelan untuk tujuan umum. Untuk domain khusus, seperti tata letak GUI, desain sirkuit VLSI, atau kecerdasan buatan berbasis aturan, sebuah alat yang lebih khusus dengan bahasa khusus yang lebih tepat. UML merupakan bahasa pemodelan diskrit. Hal ini tidak dimaksudkan untuk model sistem berkesinambungan seperti yang ditemukan di bidang teknik dan fisika. UML dimaksudkan untuk menjadi tujuan universal bahasa pemodelan untuk sistem diskrit seperti yang terbuat dari perangkat lunak, firmware atau logika digital (Rumbaugh, et al., 2006: 4). 2.12.1. Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Dalam pembuatan Use Case Diagram, yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, mengcreate sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah
34
sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang menginclude dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang umum. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain (Dharwiyanti & Wahono, 2003: 4).
Gambar 2.4 Contoh Use Case Diagram (Sumber: Rumbaugh, et al., 2006: 695)
35
2.12.2. Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package, dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok: 1.
Nama (dan stereotype)
2.
Atribut
3.
Metoda
Atribut dan metoda dapat memiliki salah satu sifat berikut: 1.
Private,
tidak
dapat
dipanggil
dari
luar
class
yang
bersangkutan. 2.
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya.
3.
Public, dapat dipanggil oleh siapa saja.
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah
36
class. Dengan demikian interface mendukung resolusi metoda pada saat run-time (Dharwiyanti & Wahono, 2003: 5). Hubungan Antar Class: 1.
Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
2.
Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
3.
Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
4.
Hubungan dinamis, yaitu rangkaian pesan (message) yang dipassing dari satu class kepada class lain (Dharwiyanti & Wahono, 2003: 6).
37
Gambar 2.5 Contoh Class Diagram (Sumber: Dharwiyanti & Wahono, 2003: 6) 2.12.3. Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi ditrigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan
38
bagaimana
aktor
menggunakan
sistem
untuk
melakukan
(Dharwiyanti & Wahono, 2003: 7).
Gambar 2.6 Contoh Activity Diagram (Sumber: Rumbaugh, et al., 2006: 699)
aktivitas
39
2.12.4. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai tanggapan dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang mentrigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metode dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message (Dharwiyanti & Wahono, 2003: 8).
40
Gambar 2.7 Contoh Sequence Diagram (Sumber: Rumbaugh, et al., 2006: 700)
41
2.12.5. Deployment Diagram Deployment diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini (Dharwiyanti & Wahono, 2003: 10).
Gambar 2.8 Contoh Deployment Diagram (Sumber: Rumbaugh, et al., 2006: 701)
42
2.13. Tinjauan Umum PDAM Provinsi DKI Jakarta (PAM JAYA) 2.13.1. Sejarah 1.
Tahun 1843 Untuk memenuhi kebutuhan air kota Jakarta (Batavia) oleh Pemerintah Hindia Belanda pengadaan air bersih berasal dari sumur bor/artesis.
2.
Tahun 1918-1920 Ditemukan sumber mata air Ciburial di daerah Ciomas Bogor oleh Pemerintah Hindia Belanda dengan kapasitas 484 l/dt. Dan tahun berdirinya Gementeestaat-waterleidengen van Batavia.
3.
Tahun 1922 Pada tanggal 23 Desember untuk pertama kalinya air yang berasal dari Ciburial Bogor dialirkan ke kota Batavia (Jakarta), dan pada tanggal tersebut dijadikan sebagai hari jadi PAM JAYA.
4.
Tahun 1945 - 1963 Pelayanan air minum dilaksanakan oleh Dinas Saluran Air Minum Kota Praja dibawah Kesatuan Pekerjaan Umum Kota Praja.
5.
Tahun 1977 a.
Tanggal 30 April 1977 PAM JAYA disahkan berdasarkan PERDA DKI Jakarta No. 3/1977.
43
b.
Tanggal 2 November 1977 PAM JAYA dikukuhkan oleh SK Mendagri No. PEM/10/53/13350 diundangkan dalam Lembaran DKI Jakarta No. 74 tahun 1977.
6.
Tahun 1997 Tanggal 6 Juni 1997, penandatanganan perjanjian kerjasama PAM JAYA dengan 2 mitra swasta selama 25 tahun yaitu PT. Garuda Dipta Semesta yang saat ini menjadi PT. PAM LYONNAISE JAYA (PT. PALYJA) dan PT. Kekar Pola Airindo yang saat ini menjadi PT. THAMES PAM JAYA (PT. TPJ).
7.
Tahun 1988 Tanggal 1 Februari 1998, operasional secara penuh pelayanan air minum pada wilayah usaha dilaksanakan oleh 2 mitra swasta.
8.
Tahun 2001 Setelah melalui negosiasi Perjanjian Kerjasama direvisi dinyatakan kembali (Amended & Restated) dengan Perjanjian Kerjasama 22 Oktober 2001.
9.
Tahun 2004 - 2005 a.
Tanggal 24 Desember 2004 penandatangan kesepakatan Addendum Perjanjian Kerjasama 2001 untuk Wilayah Barat (PT. PALYJA).
44
b.
Tanggal 7 Oktober 2005 penandatangan kesepakatan Addendum Perjanjian Kerjasama 2001 untuk Wilayah Timur (PT. TPJ).
2.13.2. Visi dan Misi Visi PAM JAYA adalah terwujudnya PAM JAYA sebagai perusahaan yang memberikan pelayanan air minum kepada masyarakat DKI Jakarta secara menyeluruh dan berkualitas yang berorientasi pada kepuasaan pelanggan (total quality customer service). Misi PAM JAYA adalah melaksanakan pelayanan air minum yang berkesinambungan kualitas, kuantitas, dan kontinuitas, guna mendukung program Pemerintah Provinsi DKI Jakarta mewujudkan Kota Jakarta sebagai kota pelayanan.
45
2.13.3. Struktur Organisasi
Gambar 2.9 Struktur Organisasi PAM JAYA Penulis melakukan penelitian tugas akhir di Divisi Bina Program.
BAB III METODE PENELITIAN
3.1. Kerangka Berpikir Dalam melakukan penelitian ini, penulis melakukan tahapan-tahapan kegiatan dengan mengikuti rencana kegiatan yang tertuang dalam kerangka berpikir yang meliputi metode pengumpulan data dan metode pengembangan aplikasi.
Gambar 3.1 Kerangka Berpikir (Sumber: data diolah) 46
47
3.2. Metode Pengumpulan Data 3.2.1. Wawancara Penulis melakukan pertemuan dan wawancara kepada pihak yang terkait untuk mendapatkan informasi sehingga mengerti permasalahan dan hal-hal yang dibutuhkan untuk pembuatan dan pengembangan aplikasi. Daftar pertanyaan dan jawaban wawancara terdapat di lampiran 5. 3.2.2. Studi Pustaka Tahapan pengumpulan data dilakukan dengan cara studi pustaka, penulis mencari referensi-referensi yang relevan dengan objek yang akan diteliti. Pencarian referensi dilakukan di perpustakaan, toko buku, maupun secara online melalui internet. Setelah mendapatkan referensi-referensi yang relevan tersebut, penulis lalu mencari informasi-informasi yang dibutuhkan dalam penelitian ini dari referensi-referensi tersebut. Informasi yang didapatkan digunakan dalam penyusunan landasan teori, metode penelitian serta pengembangan aplikasinya secara langsung. Pustaka-pustaka yang dijadikan acuan dapat dilihat di Daftar Pustaka. 3.2.3. Studi Sejenis Pada tahap ini diadakan studi sejenis yang berkaitan dengan penelitian yang dilakukan oleh penulis. Studi sejenis yang digunakan dapat berupa jurnal, artikel ilmiah, maupun dari studi kasus yang pernah ada. Dibawah ini terdapat karya tulis yang pernah ada sebagai bahan perbandingan penelitian penulis.
48
Tabel 3.1 Studi Sejenis Nama Penulis Pribadiyono
Judul Karya Tulis Aplikasi Sistem Pengukuran Produktivitas Kaitannya dengan Pengupahan. 2006. Universitas Petra: Surabaya.
Fikri Kharisma (Penulis)
Aplikasi Monitoring Produktivitas Kinerja Mitra Perusahaan (Studi Kasus: PDAM Provinsi DKI Jakarta)
Kelebihan Menampilkan informasi indikator-indikator yang menyebabkan naik dan turunnya prestasi kerja individu, persentase karyawan yang memenuhi standar prestasi perusahaan, dan perencanaan perhitungan bonus prestasi kerja individu berdasarkan pencapaian produktivitasnya. Menampilkan informasi produktivitas kinerja mitra perusahaan berdasarkan parameter perbandingan nilai realisasi yang dicapai dengan nilai target, dan terlihat progress kinerja mitra perusahaan dari grafik statistik yang ada.
Kekurangan Hanya berfokus pada pengukuran produktivitas individu karyawan dalam perusahaan, tidak berfokus kepada mitra perusahaan.
Hanya berfokus kepada pemantauan produktivitas kinerja mitra perusahaan, tidak berfokus kepada produktivitas kayawan dalam perusahaan.
3.3. Metode Pengembangan Aplikasi Metode pengembangan aplikasi yang penulis gunakan dalam penelitian ini adalah metode incremental process model. Pemilihan metode ini dilakukan dengan alasan metode ini cocok untuk pengembangan aplikasi dalam waktu yang singkat, dan adanya perbaikan serta pengembangan aplikasi pada tahap-tahap increment berikutnya sesuai dengan kebutuhan user atau pengguna.
Gambar 3.2 The Incremental Model (Sumber: Pressman, 2010: 42) Tahapan-tahapan
yang
dilakukan
oleh
penulis
dalam
melakukan
pengembangan aplikasi ini adalah: 3.3.1. Communication Tahap ini berupa aktivitas komunikasi dengan client atau user yang akan menggunakan aplikasi ini.
50
Pada tahap ini penulis melakukan wawancara dengan pihak perusahaan yaitu PDAM mengenai hal-hal yang terkait untuk pembuatan dan pengembangan aplikasi. 3.3.2. Planning Tahap ini berupa perencanaan proyek perangkat lunak dengan menggambarkan tugas-tugas teknis yang dilakukan, berbagai kerja yang akan
dilaksanakan,
manajemen
resiko,
dan
sumber-sumber
yang
dibutuhkan. 3.3.2.1. Menggambarkan Tugas Teknis Tugas-tugas teknis yang dilakukan antara lain: 1.
Pengumpulan user requirement sehingga output yang dihasilkan dari sistem atau aplikasi sesuai dengan keinginan pengguna.
2.
Perancangan aplikasi yang meliputi modelling aplikasi dengan menggunakan UML, perancangan database, dan perancangan tampilan antarmuka (interface).
3.
Coding dan testing aplikasi.
4.
Deploying aplikasi yang telah dikembangkan, yaitu melakukan instalasi aplikasi pada komputer internal perusahaan.
51
3.3.2.2. Sumber Daya Sumber daya yang digunakan oleh penulis untuk membuat aplikasi ini adalah: 1.
Komputer Komputer yang digunakan oleh penulis mempunyai
spesifikasi sebagai berikut: a.
Processor AMD Athlon64 3000+ 1.81 GHz
b.
RAM 3 GB DDR2
c.
Harddisk 320 GB
3.3.3. Modelling Setelah mendefinisikan perencanaan dan tugas-tugas teknis yang akan dilakukan, maka tahapan berikutnya adalah melakukan analisis dan perancangan (design). Perancangan yang dimaksud meliputi modelling aplikasi, perancangan database, dan perancangan tampilan antarmuka (interface) dengan melakukan perancangan Graphical User Interface (GUI) dari aplikasi ini. 3.3.3.1. Modelling Aplikasi Untuk modelling aplikasi, penulis menggunakan alat bantu (tools) yaitu Unified Modelling Language (UML). Hal ini dilakukan untuk memudahkan pengembangan aplikasi selanjutnya, sehingga ada dokumentasi yang baik untuk menggambarkan aplikasi, selain itu penggunaan UML lebih cocok digunakan dalam perancangan aplikasi yang bersifat object oriented.
52
Modelling
aplikasi
yang
penulis
lakukan
dengan
menggunakan tools UML ini meliputi: 1.
Perancangan Use Case Diagram
2.
Perancangan Class Diagram
3.
Perancangan Activity Diagram
4.
Perancangan Sequence Diagram
5.
Perancangan Deployment Diagram
Implementasi modelling aplikasi dapat dilihat di subbab 4.3.1. 3.3.3.2. Perancangan Database Pada tahap ini penulis melakukan: 1.
Penerjemahan entity ke dalam database
2.
Menampilkan struktur database
Implementasi perancangan database dapat dilihat di subbab 4.3.2. 3.3.3.3. Perancangan Tampilan Pada tahap ini, penulis melakukan perancangan terhadap tampilan atau layout antarmuka (interface) dari aplikasi ini. Perancangan yang dilakukan meliputi perancangan layout halamanhalaman yang ada di dalam aplikasi. Implementasi perancangan tampilan dapat dilihat di subbab 4.3.3.
53
3.3.4. Construction Pada tahap ini ada dua tahap kegiatan yang dilakukan yaitu coding dan testing. 3.3.4.1. Coding Desain database yang telah dibuat, diimplementasikan langsung, dalam hal ini penulis menggunakan database MySQL dengan interface phpMyAdmin. Setelah implementasi database selesai dilakukan, implementasi aplikasi juga dilakukan. Pada implementasi aplikasi, penulis melakukan pengembangan aplikasi dengan mengacu pada desain aplikasi ke dalam bahasa pemrograman yang telah ditentukan. Hal ini dapat dilihat di subbab 4.4.1. 3.3.4.2. Testing Tahap selanjutnya dilakukan pengujian atau testing secara keseluruhan dari aplikasi yang telah dibuat. Adapun testing terhadap aplikasi dilakukan dengan menggunakan metode black-box. Adapun yang melakukan pengujian terhadap aplikasi adalah penulis dan pegawai PDAM. Pengujian aplikasi dapat dilihat di subbab 4.4.2.
3.3.5. Deployment Pada tahap ini penulis melakukan instalasi aplikasi pada komputer internal perusahaan untuk memberikan umpan balik atau feedback dari aplikasi yang telah dibuat.
BAB IV ANALISIS DAN PEMBAHASAN
Bab ini akan membahas secara rinci mengenai pengembangan aplikasi dengan menerapkan metode penelitian yang telah diuraikan pada bab sebelumnya. Metode pengembangan aplikasi yang dipakai dalam penelitian ini adalah Incremental Process Model. Berikut adalah pembahasan tahapan-tahapan yang digunakan dalam pengembangan aplikasi ini.
4.1. Communication Penulis melakukan wawancara dengan pihak perusahaan yaitu PDAM mengenai hal-hal yang terkait untuk pembuatan dan pengembangan aplikasi. Wawancara awal penelitian dapat dilihat di lampiran 5.
4.2. Planning 4.2.1. Menggambarkan Tugas Teknis Tugas-tugas
teknis
yang
dilakukan
untuk
pembuatan
dan
pengembangan aplikasi antara lain: 4.2.1.1. Persyaratan Pengguna (User Requirement) Persyaratan
pengguna
untuk
aplikasi
yang
akan
dikembangkan seperti yang tertera pada wawancara awal penelitian yaitu:
54
55
1.
Pengaturan manajamen user yang akan menggunakan aplikasi, hanya terdiri dari satu orang sebagai admin.
2.
Aplikasi dapat memasukkan data target dan realisasi dari masing-masing mitra perusahaan.
3.
Aplikasi dapat menampilkan laporan rekapitulasi dari masing-masing mitra dan dapat disimpan dalam bentuk file Microsoft Excel.
4.
Aplikasi dapat menampilkan evaluasi dari masingmasing mitra dalam bentuk grafik statistik dan grafik tersebut dapat disimpan dalam bentuk image atau gambar.
4.2.1.2. Pemodelan (Modelling) Perancangan aplikasi yang meliputi modelling aplikasi dengan
menggunakan
UML,
perancangan
database,
dan
perancangan tampilan antarmuka (interface). Hal ini dapat dilihat di subbab 4.3. 4.2.1.3. Coding dan Testing Pada tahap ini terdiri dari dua bagian, yaitu penulisan kode program dan dilanjutkan dengan pengujian pada aplikasi. Hal ini dapat dilihat di subbab 4.4.
56
4.2.1.4. Deploying Aplikasi Pada tahap ini terdapat proses instalasi aplikasi pada komputer internal perusahaan untuk memberikan umpan balik dari aplikasi yang telah dibuat. 4.2.2. Sumber Daya 4.2.2.1. Perangkat Lunak Aplikasi ini merupakan aplikasi yang berjalan pada web browser dengan menampilkan data-data dari database pada web server, dan menampilkan grafik statistik. Kemudian aplikasi ini dibuat dengan konsep pemrograman Model-View-Controller (MVC), dengan tujuan kemudahan pengembangan ke depannya. Berdasarkan kebutuhan tersebut, perangkat lunak yang diperlukan dalam pengembangan aplikasi ini adalah: 1.
Web server dengan database server yang sudah terintegrasi di dalamnya.
2.
Framework untuk menerapkan konsep pemrograman Model-View-Controller (MVC).
3.
Web browser dengan dukungan pemutar Flash (Flash Player) untuk dapat menampilkan grafik statistik.
4.
Editor untuk melakukan penulisan kode pada file PHP dan HTML.
57
4.2.2.2. Perangkat Keras Perangkat keras yang digunakan oleh penulis untuk membuat aplikasi ini adalah: 1.
Komputer Komputer yang digunakan oleh penulis mempunyai
spesifikasi sebagai berikut: d.
Processor AMD Athlon64 3000+ 1.81 GHz
e.
RAM 3 GB DDR2
f.
Harddisk 320 GB
4.3. Modelling Tahapan-tahapan pemodelan yang dibutuhkan penulis dalam membangun aplikasi ini, yaitu: 4.3.1. Modelling Aplikasi Modelling aplikasi yang penulis lakukan dengan diagram UML ini meliputi: 4.3.1.1. Use Case Diagram Penulis merencanakan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan namun use case hanya menjelaskan apa yang dilakukan actor dan sistem, bukan bagaimana actor dan sistem melakukan kegiatan.
58
Gambar 4.1 Use Case Diagram Aplikasi Monitoring
59
Tabel 4.1 Tabel Use Case Diagram Aplikasi Monitoring No. 1.
Requirement
Actor
Use Case
Melakukan penambahan data target Admin
Tambah Data Target
mitra perusahaan PALYJA dengan
PALYJA
mengisi field air baku, air produksi, air terdistribusi, air terjual, dan ufw/nrw 2.
Melakukan perubahan data target Admin
Update
mitra perusahaan PALYJA dengan
PALYJA
Data
Target
Data
Target
mengganti field air baku, air produksi, air
terdistribusi,
air
terjual,
dan
ufw/nrw 3.
4.
Melakukan penghapusan data target Admin
Hapus
mitra perusahaan PALYJA
PALYJA
Melakukan penambahan data realisasi Admin
Tambah Data Realisasi
mitra perusahaan PALYJA dengan
PALYJA
mengisi field air baku, air produksi, air terdistribusi, air terjual, dan ufw/nrw 5.
Melakukan perubahan data realisasi Admin
Update Data Realisasi
mitra perusahaan PALYJA dengan
PALYJA
mengganti field air baku, air produksi, air
terdistribusi,
air
terjual,
dan
ufw/nrw 6.
7.
Melakukan penghapusan data realisasi Admin
Hapus Data Realisasi
mitra perusahaan PALYJA
PALYJA
Melakukan rekapitulasi data realisasi Admin
Rekap PALYJA
mitra
perusahaan
PALYJA
berdasarkan kategori yang dipilih 8.
Melakukan evaluasi data realisasi Admin mitra perusahaan PALYJA dengan menampilkan
grafik
berdasarkan
Evaluasi PALYJA
60
kategori air yang dipilih 9.
Melakukan penambahan data target Admin
Tambah Data Target
mitra perusahaan AETRA dengan
AETRA
mengisi field air baku, air produksi, air terdistribusi, air terjual, dan ufw/nrw 10.
Melakukan perubahan data target Admin
Update
mitra perusahaan AETRA dengan
AETRA
Data
Target
Data
Target
mengganti field air baku, air produksi, air
terdistribusi,
air
terjual,
dan
ufw/nrw 11.
12.
Melakukan penghapusan data target Admin
Hapus
mitra perusahaan AETRA
AETRA
Melakukan penambahan data realisasi Admin
Tambah Data Realisasi
mitra perusahaan AETRA dengan
AETRA
mengisi field air baku, air produksi, air terdistribusi, air terjual, dan ufw/nrw 13.
Melakukan perubahan data realisasi Admin
Update Data Realisasi
mitra perusahaan AETRA dengan
AETRA
mengganti field air baku, air produksi, air
terdistribusi,
air
terjual,
dan
ufw/nrw 14.
15.
Melakukan penghapusan data realisasi Admin
Hapus Data Realisasi
mitra perusahaan AETRA
AETRA
Melakukan rekapitulasi data realisasi Admin
Rekap AETRA
mitra perusahaan AETRA berdasarkan kategori yang dipilih 16.
Melakukan evaluasi data realisasi Admin mitra perusahaan AETRA dengan menampilkan
grafik
kategori air yang dipilih
berdasarkan
Evaluasi AETRA
61
4.3.1.2. Class Diagram Class diagram aplikasi seperti pada gambar 4.2.
Gambar 4.2 Class Diagram Aplikasi Monitoring
62
4.3.1.3. Activity Diagram Activity diagram aplikasi seperti pada gambar 4.3, gambar 4.4, gambar 4.5, gambar 4.6, gambar 4.7, gambar 4.8, gambar 4.9, dan gambar 4.10.
Gambar 4.3 Activity Diagram Target Aetra
63
Gambar 4.4 Activity Diagram Realisasi Aetra
64
Gambar 4.5 Activity Diagram Rekapitulasi Aetra
65
Gambar 4.6 Activity Diagram Evaluasi Aetra
66
Gambar 4.7 Activity Diagram Target Palyja
67
Gambar 4.8 Activity Diagram Realisasi Palyja
68
Gambar 4.9 Activity Diagram Rekapitulasi Palyja
69
Gambar 4.10 Activity Diagram Evaluasi Palyja
70
4.3.1.4. Sequence Diagram Sequence diagram aplikasi seperti pada gambar 4.11, gambar 4.12, gambar 4.13, gambar 4.14, gambar 4.15, gambar 4.16, gambar 4.17, dan gambar 4.18.
Gambar 4.11 Sequence Diagram Target Aetra
71
Gambar 4.12 Sequence Diagram Realisasi Aetra
72
Gambar 4.13 Sequence Diagram Rekapitulasi Aetra
73
Gambar 4.14 Sequence Diagram Evaluasi Aetra
74
Gambar 4.15 Sequence Diagram Target Palyja
75
Gambar 4.16 Sequence Diagram Realisasi Palyja
76
Gambar 4.17 Sequence Diagram Rekapitulasi Palyja
77
Gambar 4.18 Sequence Diagram Evaluasi Palyja
78
4.3.1.5. Deployment Diagram Deployment diagram aplikasi seperti pada gambar 4.19 di bawah ini.
Gambar 4.19 Deployment Diagram Aplikasi Monitoring
79
4.3.2. Perancangan Database Berikut ini adalah perancangan database yang digunakan di dalam aplikasi. 4.3.2.1. Spesifikasi Database Tabel-tabel yang digunakan dalam database seperti pada tabel 4.2, tabel 4.3, tabel 4.4, tabel 4.5, tabel 4.6, tabel 4.7, tabel 4.8, tabel 4.9, dan tabel 4.10. 1.
Tabel bulan Tabel yang digunakan untuk menyimpan data bulan.
Tabel ini memiliki 2 field, yaitu id_bulan dan bulan. Tabel 4.2 Tabel bulan Nama Field
Tipe
Panjang
Keterangan
id_bulan*
int
2
Id bulan, primary key
bulan
varchar
15
Nama bulan
bulan_singkat
varchar
5
Nama bulan yang disingkat
2.
Tabel kategori Tabel yang digunakan untuk menyimpan data kategori
air. Tabel ini memiliki 2 field, yaitu id_kategori dan kategori. Tabel 4.3 Tabel kategori Nama Field
Tipe
Panjang
Keterangan
id_kategori*
int
2
Id kategori, primary key
kategori
varchar
60
Nama kategori air
80
3.
Tabel monitor_aetra Tabel yang digunakan untuk menyimpan data realisasi
produktivitas air tahun dan bulan tertentu pada mitra perusahaan AETRA. Tabel ini memiliki 8 field, yaitu id_mtraetra, id_tahun, id_bulan, air_baku, air_produksi, air_distribusi, air_terjual, dan ufw_nrw. Tabel 4.4 Tabel monitor_aetra Nama Field id_mtraetra*
Tipe int
Panjang 5
Keterangan Id monitor realisasi AETRA, primary key
id_tahun**
int
2
Id tahun, foreign key
id_bulan**
int
2
Id bulan, foreign key
air_baku
double
Besar realisasi air baku setiap bulan
air_produksi
double
Besar realisasi air produksi setiap bulan
air_distribusi
double
Besar realisasi air terdistribusi setiap bulan
air_terjual
double
Besar realisasi air terjual setiap bulan
ufw_nrw
double
Besar realisasi nilai tingkat kehilangan air atau unaccounted for water (UFW), maupun nilai air non rekening atau non revenue water (NRW) setiap bulan
81
4.
Tabel monitor_palyja Tabel yang digunakan untuk menyimpan data realisasi
produktivitas air tahun dan bulan tertentu pada mitra perusahaan PALYJA. Tabel ini memiliki 8 field, yaitu id_mtrpalyja, id_tahun, id_bulan, air_baku, air_produksi, air_distribusi, air_terjual, dan ufw_nrw. Tabel 4.5 Tabel monitor_palyja Nama Field id_mtrpalyja*
Tipe int
Panjang 5
Keterangan Id monitor realisasi PALYJA, primary key
id_tahun**
int
2
Id tahun, foreign key
id_bulan**
int
2
Id bulan, foreign key
air_baku
double
Besar realisasi air baku setiap bulan
air_produksi
double
Besar realisasi air produksi setiap bulan
air_distribusi
double
Besar realisasi air terdistribusi setiap bulan
air_terjual
double
Besar realisasi air terjual setiap bulan
ufw_nrw
double
Besar realisasi nilai tingkat kehilangan air atau unaccounted for water (UFW), maupun nilai air non rekening atau non revenue water (NRW) setiap bulan
82
5.
Tabel tahun Tabel yang digunakan untuk menyimpan data tahun.
Tabel ini memiliki 2 field, yaitu id_tahun dan tahun. Tabel 4.6 Tabel tahun Nama Field
Tipe
Panjang
Keterangan
id_ tahun*
int
2
Id tahun, primary key
tahun
varchar
5
Nama tahun
6.
Tabel target_aetra Tabel yang digunakan untuk menyimpan data target
produktivitas air tahun dan bulan tertentu pada mitra perusahaan AETRA. Tabel ini memiliki 8 field, yaitu id_targetaetra, id_tahun, id_bulan, air_baku, air_produksi, air_distribusi, air_terjual, dan ufw_nrw. Tabel 4.7 Tabel target_aetra Nama Field
Tipe
Panjang
Keterangan
id_ targetaetra*
int
5
Id target AETRA, primary key
id_tahun**
int
2
Id tahun, foreign key
id_bulan**
int
2
Id bulan, foreign key
air_baku
double
Besar target air baku setiap bulan
air_produksi
double
Besar target air produksi setiap bulan
air_distribusi
double
Besar target air terdistribusi setiap bulan
air_terjual
double
Besar target air terjual setiap
83
bulan ufw_nrw
double
Besar target nilai tingkat kehilangan air atau unaccounted for water (UFW), maupun nilai air non rekening atau non revenue water (NRW) setiap bulan
7.
Tabel target_palyja Tabel yang digunakan untuk menyimpan data target
produktivitas air tahun dan bulan tertentu pada mitra perusahaan PALYJA. Tabel ini memiliki 8 field, yaitu id_targetpalyja, id_tahun, id_bulan, air_baku, air_produksi, air_distribusi, air_terjual, dan ufw_nrw. Tabel 4.8 Tabel target_palyja Nama Field
Tipe
Panjang
Keterangan
id_ targetpalyja*
int
5
Id target PALYJA, primary key
id_tahun**
int
2
Id tahun, foreign key
id_bulan**
int
2
Id bulan, foreign key
air_baku
double
Besar target air baku setiap bulan
air_produksi
double
Besar target air produksi setiap bulan
air_distribusi
double
Besar target air terdistribusi setiap bulan
air_terjual
double
Besar target air terjual setiap bulan
ufw_nrw
double
Besar target nilai tingkat
84
kehilangan air atau unaccounted for water (UFW), maupun nilai air non rekening atau non revenue water (NRW) setiap bulan
8.
Tabel triwulan Tabel yang digunakan untuk menyimpan data triwulan.
Tabel ini memiliki 2 field, yaitu id_triwulan dan triwulan. Tabel 4.9 Tabel triwulan Nama Field
Tipe
Panjang
Keterangan
id_ triwulan*
int
2
Id triwulan, primary key
triwulan
varchar
10
Nama triwulan
9.
Tabel user Tabel yang digunakan untuk menyimpan data user atau
pengguna. Tabel ini memiliki 3 field, yaitu id_user, username, dan password. Tabel 4.10 Tabel user Nama Field
Tipe
Panjang
Keterangan
id_ user*
int
2
Id pengguna, primary key
username
varchar
20
Nama pengguna
password
varchar
20
Password pengguna
85
4.3.2.2. Entity Relationship Diagram (ERD) Entity relationship diagram (ERD) seperti pada gambar 4.20 di bawah ini. user 1
CRUD
M
M
target_palyja
target_aetra M
M
M
M monitor_palyja
monitor_aetra
M M
M
menggunakan
M
M
M
1 tahun
menggunakan 1 bulan
Gambar 4.20 Entity Relationship Diagram (ERD)
86
4.3.2.3. Logical Record Structure (LRS) Logical Record Structure (LRS) dari hasil penerjemahan ERD seperti pada gambar 4.21 di bawah ini.
Gambar 4.21 Logical Record Structure (LRS)
87
4.3.3. Perancangan Tampilan 4.3.3.1. Perancangan Interface Aplikasi Penulis merancang tampilan untuk interface aplikasi yang terdiri dari dua bagian utama yaitu interface bagian login dan halaman utama aplikasi. Header
Form Login
Footer Gambar 4.22 Rancang Tampilan Login Keterangan gambar: 1.
Header
: judul keterangan interface login
2.
Form Login : form login untuk pengguna
3.
Footer
: berupa gambar dan alamat perusahaan. Header
Menu
Content
Footer Gambar 4.23 Rancang Tampilan Halaman Aplikasi
88
Keterangan gambar : 1.
Header
: berupa gambar dan logo perusahaan
2.
Menu
: berupa menu-menu dari aplikasi.
3.
Content : Ruang utama dimana informasi dan data akan ditampilkan secara menyeluruh sesuai dengan masing-masing menu aplikasi.
4.
Footer
: berupa gambar dan alamat perusahaan.
4.3.3.2. Implementasi Interface Aplikasi pada Web Aplikasi ini digunakan oleh pengguna atau user untuk melakukan
kegiatan
monitoring
dan
evaluasi
kedua
mitra
perusahaan. 4.3.3.2.1. Halaman Login Halaman
ini
bertujuan
sebagai
halaman
penyeleksi pengguna untuk akses masuk ke aplikasi.
Gambar 4.24 Halaman Login Aplikasi
89
4.3.3.2.2. Halaman Home Halaman ini merupakan halaman awal dalam aplikasi, dan pengguna sebagai admin dapat memilih salah satu dari kedua mitra perusahaan untuk dilakukan kegiatan monitoring dan evaluasi.
Gambar 4.25 Halaman Home Aplikasi
90
4.3.3.2.3. Halaman Aetra Halaman
ini
merupakan
halaman
mitra
perusahaan Aetra dan terdapat menu target, realisasi, rekap, serta evaluasi yang dapat diplih oleh admin untuk melakukan kegiatan monitoring dan evaluasi terhadap mitra perusahaan ini.
Gambar 4.26 Halaman Aetra
91
1.
Halaman Target Aetra Halaman ini merupakan halaman untuk menampilkan,
menambah, meng-update, dan menghapus data target produktivitas air tahun dan bulan tertentu pada mitra perusahaan Aetra.
Gambar 4.27 Halaman Target Aetra
92
Gambar 4.28 Halaman Tambah Data Target Aetra
Gambar 4.29 Halaman Update Data Target Aetra
93
2.
Halaman Realisasi Aetra Halaman ini merupakan halaman untuk menampilkan,
menambah, meng-update, dan menghapus data realisasi produktivitas air tahun dan bulan tertentu pada mitra perusahaan Aetra.
Gambar 4.30 Halaman Realisasi Aetra
94
Gambar 4.31 Halaman Tambah Data Realisasi Aetra
Gambar 4.32 Halaman Update Data Realisasi Aetra
95
3.
Halaman Rekapitulasi Aetra Halaman ini merupakan halaman untuk menampilkan
rekapitulasi dari data target dan realisasi produktivitas air tahun dan kategori tertentu pada mitra perusahaan Aetra, serta admin dapat mendownload hasil rekapitulasi yang dalam bentuk file Excel.
Gambar 4.33 Halaman Rekapitulasi Aetra
96
Gambar 4.34 Download File Rekapitulasi Aetra
97
4.
Halaman Grafik Evaluasi Aetra Halaman ini merupakan halaman untuk menampilkan
grafik dari data target dan realisasi produktivitas air berdasarkan tahun dan kategori air tertentu pada mitra perusahaan Aetra.
Gambar 4.35 Halaman Grafik Evaluasi Aetra
98
4.3.3.2.4. Halaman Palyja Halaman
ini
merupakan
halaman
mitra
perusahaan Palyja dan terdapat menu target, realisasi, rekap, serta evaluasi yang dapat diplih oleh admin untuk melakukan kegiatan monitoring dan evaluasi terhadap mitra perusahaan ini.
Gambar 4.36 Halaman Palyja
99
1.
Halaman Target Palyja Halaman ini merupakan halaman untuk menampilkan,
menambah, meng-update, dan menghapus data target produktivitas air tahun dan bulan tertentu pada mitra perusahaan Palyja.
Gambar 4.37 Halaman Target Palyja
100
Gambar 4.38 Halaman Tambah Data Target Palyja
Gambar 4.39 Halaman Update Data Target Palyja
101
2.
Halaman Realisasi Palyja Halaman ini merupakan halaman untuk menampilkan,
menambah, meng-update, dan menghapus data realisasi produktivitas air tahun dan bulan tertentu pada mitra perusahaan Palyja.
Gambar 4.40 Halaman Realisasi Palyja
102
Gambar 4.41 Halaman Tambah Data Realisasi Palyja
Gambar 4.42 Halaman Update Data Realisasi Palyja
103
3.
Halaman Rekapitulasi Palyja Halaman ini merupakan halaman untuk menampilkan
rekapitulasi dari data target dan realisasi produktivitas air tahun dan kategori tertentu pada mitra perusahaan Palya, serta admin dapat mendownload hasil rekapitulasi yang dalam bentuk file Excel.
Gambar 4.43 Halaman Rekapitulasi Palyja
104
Gambar 4.44 Download File Rekapitulasi Palyja
105
4.
Halaman Grafik Evaluasi Palyja Halaman ini merupakan halaman untuk menampilkan
grafik dari data target dan realisasi produktivitas air berdasarkan tahun dan kategori air tertentu pada mitra perusahaan Palyja.
Gambar 4.45 Halaman Grafik Evaluasi Palyja
106
4.4. Construction 4.4.1. Coding Pada tahap ini dilakukan proses coding atau penulisan kode program untuk aplikasi dengan menggunakan bahasa pemrograman PHP. Selain itu dalam
membangun
aplikasi
ini
penulis
menggunakan
framework
CodeIgniter dan menggunakan konsep Model-View-Controller (MVC). Untuk penjelasan mengenai konsep Model-View-Controller (MVC) dapat dilihat di subbab 2.7. 4.4.1.1. Framework CodeIgniter Framework CodeIgniter yang digunakan dalam pembuatan aplikasi yaitu CodeIgniter versi 1.7.2. Berikut ini adalah tampilan CodeIgniter ketika dijalankan di web browser sebelum dilakukan perubahan untuk membuat website atau aplikasi web.
Gambar 4.46 CodeIgniter 1.7.2
107
Berikut ini adalah kode-kode php yang digunakan di dalam aplikasi, yang terdapat pada framework CodeIgniter. 1.
Bagian Otentikasi/Login Terdapat tiga file php untuk proses login yang terdapat
di direktori models, views, dan controllers. Pada direktori models terdapat file login_model.php, yang berisi kode untuk proses pengecekan ke database bagi user yang login ke dalam aplikasi.
Gambar 4.47 login_model.php Selanjutnya file login_view.php pada direktori views untuk menampilkan halaman login di web browser.
Gambar 4.48 login_view.php
108
Berikutnya file login.php yang terdapat pada direktori controllers untuk memproses login dari user dan sebagai penghubung antara models dan views.
Gambar 4.49 login.php 2.
Bagian
Target
untuk
masing-masing
mitra
perusahaan Terdapat file-file php untuk proses bagian target untuk masing-masing mitra perusahaan yang berada di direktori models, views, dan controllers. Pada direktori models terdapat file aetratgt_model.php dan palyjatgt_model.php, yang berisi kode untuk proses menampilkan data target dari database, menambah data target ke dalam database, mengupdate data target ke dalam database, dan menghapus data target dari database pada masing-masing mitra perusahaan, seperti pada gambar 4.50 dan 4.51 di bawah ini.
109
Gambar 4.50 aetratgt_model.php
Gambar 4.51 palyjatgt_model.php Selanjutnya terdapat file target.php pada direktori views untuk
masing-masing
mitra
perusahaan,
untuk
menampilkan halaman target pada web browser, seperti pada gambar 4.52 dan 4.53 di bawah ini.
110
Gambar 4.52 target.php untuk view bagian Aetra
Gambar 4.53 target.php untuk view bagian Palyja
111
Berikutnya, pada direktori controllers terdapat file aetra_target.php dan palyja_target.php untuk memproses penampilan data target, penambahan data target, update data target, dan penghapusan data target pada masingmasing mitra perusahaan, serta sebagai penghubung antara models dan views seperti pada gambar 4.54 dan 4.55 di bawah ini.
Gambar 4.54 aetra_target.php
Gambar 4.55 palyja_target.php
112
3.
Bagian
Realisasi
untuk
masing-masing
mitra
perusahaan Terdapat file-file php untuk proses bagian realisasi untuk masing-masing mitra perusahaan yang berada di direktori models, views, dan controllers. Pada direktori models
terdapat
file
aetrareal_model.php
dan
palyjareal_model.php, yang berisi kode untuk proses menampilkan data realisasi dari database, menambah data realisasi ke dalam database, meng-update data realisasi ke dalam database, dan menghapus data realisasi dari database pada masing-masing mitra perusahaan, seperti pada gambar 4.56 dan 4.57 di bawah ini.
Gambar 4.56 aetrareal_model.php
113
Gambar 4.57 palyjareal_model.php Selanjutnya terdapat file realisasi.php pada direktori views untuk masing-masing mitra perusahaan, untuk menampilkan halaman realisasi pada web browser, seperti pada gambar 4.58 dan 4.59 di bawah ini.
Gambar 4.58 realisasi.php untuk view bagian Aetra
114
Gambar 4.59 realisasi.php untuk view bagian Palyja Berikutnya, pada direktori controllers terdapat file aetra_realisasi.php
dan
palyja_realisasi.php
untuk
memproses penampilan data realisasi, penambahan data realisasi, update data realisasi, dan penghapusan data realisasi pada masing-masing mitra perusahaan, serta sebagai penghubung antara models dan views seperti pada gambar 4.60 dan 4.61 di bawah ini.
Gambar 4.60 aetra_realisasi.php
115
Gambar 4.61 palyja_realisasi.php 4.
Bagian Rekapitulasi untuk masing-masing mitra perusahaan Terdapat file-file php untuk proses bagian rekapitulasi
untuk masing-masing mitra perusahaan yang berada di direktori models, views, dan controllers. Pada direktori models
terdapat
file
aetrarekap_model.php
dan
palyjarekap_model.php, yang berisi kode untuk proses menampilkan rekapitulasi dari data target dan realisasi produktivitas air berdasarkan tahun dan kategori tertentu dari database, pada masing-masing mitra perusahaan, seperti pada gambar 4.62 dan 4.63 di bawah ini.
116
Gambar 4.62 aetrarekap_model.php
Gambar 4.63 palyjarekap_model.php
117
Selanjutnya terdapat file rekap.php pada direktori views untuk
masing-masing
mitra
perusahaan,
untuk
menampilkan halaman rekapitulasi pada web browser, seperti pada gambar 4.64 dan 4.65 di bawah ini.
Gambar 4.64 rekap.php untuk view bagian Aetra
Gambar 4.65 rekap.php untuk view bagian Palyja
118
Berikutnya, pada direktori controllers terdapat file aetra_rekap.php dan palyja_rekap.php untuk memproses penampilan rekapitulasi dari data target dan realisasi pada masing-masing mitra perusahaan, serta sebagai penghubung antara models dan views seperti pada gambar 4.66 dan 4.67 di bawah ini.
Gambar 4.66 aetra_rekap.php
Gambar 4.67 palyja_rekap.php
119
5.
Bagian
Evaluasi
untuk
masing-masing
mitra
perusahaan Terdapat file-file php untuk proses bagian evaluasi untuk masing-masing mitra perusahaan yang berada di direktori models, views, dan controllers. Pada direktori models
terdapat
file
aetragrafik_model.php
dan
palyjagrafik_model.php, yang berisi kode untuk proses menampilkan
grafik
dari
data
target
dan
realisasi
produktivitas air berdasarkan tahun dan kategori tertentu dari database, pada masing-masing mitra perusahaan, seperti pada gambar 4.68 dan 4.69 di bawah ini.
Gambar 4.68 aetragrafik_model.php
120
Gambar 4.69 palyjagrafik_model.php Selanjutnya terdapat file grafik.php pada direktori views untuk
masing-masing
mitra
perusahaan,
untuk
menampilkan halaman grafik evaluasi pada web browser, seperti pada gambar 4.70 dan 4.71 di bawah ini.
Gambar 4.70 grafik.php untuk view bagian Aetra
121
Gambar 4.71 grafik.php untuk view bagian Palyja Berikutnya, pada direktori controllers terdapat file aetra_grafik.php dan palyja_grafik.php untuk memproses penampilan grafik dari data target dan realisasi pada masing-masing mitra perusahaan, serta sebagai penghubung antara models dan views seperti pada gambar 4.72 dan 4.73 di bawah ini.
Gambar 4.72 aetra_grafik.php
122
Gambar 4.73 palyja_grafik.php 4.4.1.2. Web Server Untuk menjalankan aplikasi pada web browser secara offline, digunakan XAMPP versi 1.7.2. Berikut ini adalah rincian web server dan database yang terdapat dalam XAMPP versi 1.7.2. 1.
Web server
: Apache 2.2.12
2.
Database
: MySQL
5.1.37
dengan
phpMyAdmin 3.2.0.1
interface
123
4.4.2. Pengujian Aplikasi (Testing) 4.4.2.1. Pengujian Fungsionalitas Pengujian dibutuhkan untuk menguji apakah aplikasi sudah memenuhi persyaratan atau belum, dan untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya. Pengujian dilakukan secara mandiri oleh peneliti menggunakan metode blackbox dan juga dilakukan pengujian di lapangan oleh pegawai PDAM. 4.4.2.1.1. Pengujian Mandiri Pengujian aplikasi secara mandiri oleh peneliti dilakukan
dengan
metode
black-box,
yaitu
hanya
difokuskan pada fungsionalitas sistem tanpa mengetahui struktur internal program. Dalam metode ini kebenaran aplikasi yang diuji hanya dilihat berdasarkan keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. Pengujian
mandiri
yang
bersifat
pengujian
fungsional dapat dilihat pada tabel 4.11 berikut ini. Tabel 4.11 Pengujian Mandiri Kelas Uji Otentikasi Sistem
Butir Uji Masukkan username dan password yang benar Masukkan username dan password yang salah
Bukti Uji Dapat dilihat pada gambar 4.74 dan 4.75 (hasil login dengan benar) Dapat dilihat pada gambar 4.76
124
Menampilkan dan mengubah data target Palyja
Menampilkan dan mengubah data realisasi Palyja
Menampilkan rekapitulasi Palyja Menampilkan grafik evaluasi Palyja Menampilkan dan mengubah data target Aetra
Tidak memasukkan username dan password Tampil data target Palyja Tambah data target Palyja dengan data yang belum dimasukkan Tambah data target Palyja dengan data yang sudah dimasukkan Tambah data target Palyja dengan data kosong dimasukkan Update data target Palyja Hapus data target Palyja Tampilkan data realisasi Palyja Tambah data realisasi Palyja dengan data yang belum dimasukkan Tambah data realisasi Palyja dengan data yang sudah dimasukkan Tambah data realisasi Palyja dengan data kosong dimasukkan Update data realisasi Palyja Hapus data realisasi Palyja Tampil rekapitulasi Palyja
Dapat dilihat pada gambar 4.77 Dapat dilihat pada gambar 4.78 Dapat dilihat pada gambar 4.79
Dapat dilihat pada gambar 4.80
Dapat dilihat pada gambar 4.81
Dapat dilihat pada gambar 4.82 Dapat dilihat pada gambar 4.83 Dapat dilihat pada gambar 4.84 Dapat dilihat pada gambar 4.85
Dapat dilihat pada gambar 4.86
Dapat dilihat pada gambar 4.87
Dapat dilihat pada gambar 4.88 Dapat dilihat pada gambar 4.89 Dapat dilihat pada gambar 4.90
Tampil grafik evaluasi Palyja
Dapat dilihat pada gambar 4.91
Tampil data target Aetra Tambah data target Aetra dengan data yang belum dimasukkan Tambah data target Aetra dengan data yang sudah
Dapat dilihat pada gambar 4.92 Dapat dilihat pada gambar 4.93
Dapat dilihat pada gambar 4.94
125
Menampilkan dan mengubah data realisasi Aetra
Menampilkan rekapitulasi AETRA Menampilkan grafik evaluasi AETRA
dimasukkan Tambah data target Aetra dengan data kosong dimasukkan Update data target Aetra Hapus data target Aetra Tampilkan data realisasi Aetra Tambah data realisasi Aetra dengan data yang belum dimasukkan Tambah data realisasi Aetra dengan data yang sudah dimasukkan Tambah data realisasi Aetra dengan data kosong dimasukkan Update data realisasi Aetra Hapus data realisasi Aetra Tampil rekapitulasi Aetra
Dapat dilihat pada gambar 4.102 Dapat dilihat pada gambar 4.103 Dapat dilihat pada gambar 4.104
Tampil grafik evaluasi Aetra
Dapat dilihat pada gambar 4.105
Dapat dilihat pada gambar 4.95
Dapat dilihat pada gambar 4.96 Dapat dilihat pada gambar 4.97 Dapat dilihat pada gambar 4.98 Dapat dilihat pada gambar 4.99
Dapat dilihat pada gambar 4.100
Dapat dilihat pada gambar 4.101
126
4.4.2.1.2. Hasil Pengujian Mandiri
Gambar 4.74 Login dengan benar
Gambar 4.75 Halaman home (setelah login dengan benar)
127
Gambar 4.76 Login yang salah
Gambar 4.77 Login tanpa username dan password
128
Gambar 4.78 Tampil data target Palyja
Gambar 4.79 Tambah target Palyja data baru
129
Gambar 4.80 Tambah target Palyja data sudah tercatat
Gambar 4.81 Tambah target Palyja data kosong
130
Gambar 4.82 Update data target Palyja
Gambar 4.83 Hapus data target Palyja
131
Gambar 4.84 Tampil data realisasi Palyja
Gambar 4.85 Tambah realisasi Palyja data baru
132
Gambar 4.86 Tambah realisasi Palyja data sudah tercatat
Gambar 4.87 Tambah realisasi Palyja data kosong
133
Gambar 4.88 Update data realisasi Palyja
Gambar 4.89 Hapus data realisasi Palyja
134
Gambar 4.90 Tampil rekapitulasi Palyja
Gambar 4.91 Tampil grafik evaluasi Palyja
135
Gambar 4.92 Tampil data target Aetra
Gambar 4.93 Tambah target Aetra data baru
136
Gambar 4.94 Tambah target Aetra data sudah tercatat
Gambar 4.95 Tambah target Aetra data kosong
137
Gambar 4.96 Update data target Aetra
Gambar 4.97 Hapus data target Aetra
138
Gambar 4.98 Tampil data realisasi Aetra
Gambar 4.99 Tambah realisasi Aetra data baru
139
Gambar 4.100 Tambah realisasi Aetra data sudah tercatat
Gambar 4.101 Tambah realisasi Aetra data kosong
140
Gambar 4.102 Update data realisasi Aetra
Gambar 4.103 Hapus data realisasi Aetra
141
Gambar 4.104 Tampil rekapitulasi Aetra
Gambar 4.105 Tampil grafik evaluasi Aetra
142
4.4.2.1.3. Pengujian Lapangan Pada tahap ini pengujian dilakukan oleh satu orang pegawai Divisi Bina Program PDAM untuk melakukan uji coba terhadap aplikasi ini. Setelah dilakukan uji coba terhadap aplikasi, terdapat wawancara akhir penelitian yang juga merupakan hasil pengujian aplikasi yang dilakukan oleh pegawai PDAM. Wawancara akhir penelitian terdapat pada lampiran 6. Secara ringkas hasil pengujian dapat dilihat pada tabel 4.12 di bawah ini. Tabel 4.12 Hasil Pengujian Lapangan No 1. 2. 3. 4. 5.
Butir Uji Fitur aplikasi secara keseluruhan Fitur untuk mitra Palyja Fitur untuk mitra Aetra Keamanan aplikasi Kesesuaian dengan kebutuhan
Penilaian Baik Baik Baik Baik Baik
4.4.2.1.4. Kesimpulan Pengujian Dari hasil pengujian mandiri dan pengujian lapangan tersebut di atas, dapat ditarik kesimpulan bahwa aplikasi dapat diimplementasikan dengan baik.
4.4.2.2. Pengujian Non Fungsionalitas Pengujian ini merupakan pengujian terhadap fitur-fitur lain yang diperlukan oleh aplikasi agar dapat lebih memuaskan user atau
143
pengguna. Berikut ini adalah pengujian non fungsionalitas yang dilakukan oleh peneliti terhadap aplikasi ini dengan berdasarkan beberapa faktor yang ada. Tabel 4.13 Pengujian Non Fungsionalitas No 1.
2.
Faktor Uji Usability
Reliability
Sub Atribut
Penjelasan
Understandability Kemampuan untuk memahami penggunaan aplikasi oleh pengguna Learnability
Kemampuan untuk mempelajari penggunaan aplikasi
Operability
Kemampuan untuk mengoperasikan aplikasi
Maturity
Subkarakteristik yang berfokus pada tingkat kegagalan perangkat lunak
Fault Tolerance
Kemampuan untuk bertahan dari kesalahan
Hasil
Bukti Uji
Tampilan aplikasi yang user friendly menjadikan pengguna dapat memahami penggunaan aplikasi Tidak diperlukan pengetahuan khusus untuk mempelajari apikasi, sehingga pengguna dapat dengan mudah mempelajari penggunaan aplikasi Menu-menu yang sangat jelas yang terdapat di dalam aplikasi dan tampilan aplikasi yang user friendly menjadikan pengguna dapat mengoperasikan aplikasi dengan baik Kegagalan pada aplikasi hanya terjadi kepada web browser yang belum mendukung kemampuan pemutar Flash, dan gangguan dari web server Aplikasi tetap dapat berjalan ketika digunakan pada web server versi yang
Dapat dilihat pada gambar 4.106
Dapat dilihat pada gambar 4.107
Dapat dilihat pada gambar 4.108
Dapat dilihat pada gambar 4.109 dan 4.110
Dapat dilihat pada gambar 4.111
144
3.
Efficiency
Recoverability
Kemampuan untuk bangkit dari kegagalan dan kembali berjalan secara optimal
Time behavior
Menghitung waktu respon dari proses yang dilakukan Menghitung resource yang digunakan
Resource behavior
4.
Maintainability
Analyzability
Changeability
Stability
Kemampuan untuk menganalisa akar masalah yang terdapat dalam kegagalan aplikasi Mengarakterkan usaha yang dibutuhkan untuk merubah aplikasi
Mengarakterkan dampak negatif dari perubahan aplikasi yang terjadi
lebih lama dari yang digunakan pada pembuatan dan pengujian aplikasi Apabila terjadi kegagalan dalam komunikasi data dengan web server, maka diperlukan restart web server Waktu respon untuk memproses data dan menampilkannya cukup baik Dalam hal ini, setelah dilakukan pengecekan memory yang digunakan, aplikasi ini hanya menggunakan sekitar 5% dari memory resource yang ada Apabila terdapat kegagalan dalam pemrosesan akan muncul pesan kegagalan Untuk merubah aplikasi, tidak diperlukan usaha yang cukup sulit, karena aplikasi ini dibuat dengan konsep pemrograman Model-ViewController (MVC) Dalam hal ini, apabila terjadi kegagalan dalam perubahan aplikasi, maka akan muncul pesan kesalahan
Dapat dilihat pada gambar 4.112
Dapat dilihat pada gambar 4.113
Dapat dilihat pada gambar 4.114
Dapat dilihat pada gambar 4.115
Dapat dilihat pada gambar 4.116
Dapat dilihat pada gambar 4.117
145
Testability
5.
Portability
Adaptability
Mengarakterkan usaha yang diperlukan untuk menguji perubahan aplikasi Kemampuan untuk beradaptasi pada lingkungan yang baru
Installability
Kemampuan untuk dengan cepat meng-install ke device
Conformance
Karakteristik kesesuaian yang berkaitan dengan portabilitas
Replaceability
Bagaimana mudahnya untuk melakukan pertukaran komponen
beserta penjelasan kesalahannya Dalam hal ini, pengujian dapat dilakukan langsung pada perangkat lunak yang ada Setelah dilakukan pengujian aplikasi pada sistem operasi yang berbeda, aplikasi dapat beradaptasi dan berjalan dengan baik karena aplikasi ini bersifat web application, sehingga aplikasi dapat berjalan di web browser apapun sistem operasinya Dalam hal ini, tidak diperlukan pemasangan yang rumit, cukup install web server dan jalankan aplikasi di web browser Aplikasi dapat berjalan di web browser apapun sistem operasinya, dan export file Excel dan gambar dari aplikasi dapat dibuka dengan aplikasi office dan gambar apapun Sesuai dengan faktor di atas, aplikasi dengan mudah dapat dijalankan di perangkat lunak yang
Dapat dilihat pada gambar 4.118
Dapat dilihat pada gambar 4.119
Dapat dilihat pada gambar 4.120
Dapat dilihat pada gambar 4.121 dan 4.122
Dapat dilihat pada gambar 4.123
146
perangkat lunak yang diberikan dalam lingkungan tertentu
berbeda dengan lingkungan atau sistem operasi yang berbeda
4.4.2.2.1. Hasil Pengujian Non Fungsionalitas
Gambar 4.106 Tampilan aplikasi user friendly
147
Gambar 4.107 Mudah mempelajari penggunaan aplikasi
Gambar 4.108 Pengguna dapat mengoperasikan aplikasi dengan baik
148
Gambar 4.109 Web browser tanpa pemutar Flash
Gambar 4.110 Gangguan pada web server
149
Gambar 4.111 Aplikasi berjalan pada web server versi tahun 2007
Gambar 4.112 Restart pada web server
150
Gambar 4.113 Waktu untuk memproses data
Gambar 4.114 Memory resource yang terpakai
151
Gambar 4.115 Kegagalan dalam pemrosesan data
Gambar 4.116 Perubahan aplikasi pada direktori models-views-controllers
152
Gambar 4.117 Penghapusan bagian persentase dan pesan kesalahan
Gambar 4.118 Bagian persentase terhapus
153
Gambar 4.119 Aplikasi berjalan di sistem operasi Linux
Gambar 4.120 Aplikasi berjalan setelah instalasi web server
154
Gambar 4.121 Export file Excel pada sistem operasi Linux
Gambar 4.122 File Excel dapat terbuka pada sistem operasi Linux
155
Gambar 4.123 Aplikasi dapat berjalan pada sistem operasi yang lain
4.5. Deployment Penulis melakukan instalasi aplikasi pada komputer internal perusahaan PDAM untuk memberikan umpan balik atau feedback dari aplikasi yang telah diuji dan digunakan oleh pegawai PDAM.
BAB V PENUTUP
5.1. Kesimpulan Berdasarkan pembahasan pengembangan aplikasi monitoring secara keseluruhan dapat ditarik kesimpulan sebagai berikut: 1.
Aplikasi
ini
dapat
mengurangi
terjadinya
duplikasi
dan
ketidakakurasian data dalam proses monitoring produktivitas kinerja mitra PDAM. Hal ini dapat dilihat pada gambar 4.80 dan 4.94 di subbab 4.4.2.1.2. 2.
Sesuai pengujian dan wawancara akhir penelitian, aplikasi ini dapat memudahkan dan mempercepat proses dalam melakukan evaluasi kinerja mitra PDAM berdasarkan parameter perbandingan nilai realisasi yang dicapai dengan nilai target yang sudah ditentukan, sehingga terlihat tercapai atau tidaknya kinerja mitra PDAM, hal ini dapat dilihat pada gambar 4.90 dan 4.104 di subbab 4.4.2.1.2. Kemudian dengan tampilan grafik terlihat juga progress kinerja mitra PDAM, hal ini dapat dilihat pada gambar 4.91 dan 4.105 di subbab 4.4.2.1.2.
156
157
5.2. Saran Saran yang dapat penulis berikan terhadap pengembangan aplikasi ini ke depannya, yaitu aplikasi ini diharapkan dapat melakukan proses monitoring laporan kinerja dalam skala besar selain dari keempat laporan kinerja dalam aplikasi ini.
DAFTAR PUSTAKA
Basuki, A. P. 2010. Membangun Web Berbasis PHP Dengan Framework CodeIgniter. Penerbit Lokomedia, Yogyakarta: xiii + 212 hlm. Connolly, T. M. & C. E. Begg. 2002. Database Systems: A Practical Approach to Design, Implementation, and Management. Pearson Education Inc., London: xlix + 1236 hlm. Dharwiyanti, S. & R. S. Wahono. 2003. Pengantar Unified Modeling Language (UML):
13
hlm.
http://standy-oei.web.ugm.ac.id/
ppl/MateriSuplemenUml.pdf, 03 Agustus 2010, pk. 14.45 WIB. Everett, G. D. & R. McLeod Jr. 2007. Software Testing: Testing Across The Entire Software Development Life. John Wiley & Sons, Inc. New Jersey: xv + 261 hlm. Ford, C., I. Gileadi, S. Purba & M. Moerman. 2008. Patterns for Performance and Operability: Building and Testing Enterprise Software. Taylor Francis and Group, New York: xix + 317 hlm. Greenlaw, R. & E. Hepp. 2002. In-line/On-line: Fundamentals of The Internet and The World Wide Web. Mc Graw Hill Companies Inc., New York: xvi + 696 hlm. Ibrahim, Ali. 2008. Cara Praktis Membuat Website Dinamis Menggunakan XAMPP. Neotekno, Yogyakarta: viii + 146 hlm. Mata-Toledo, R. A. & P. K. Cushman. 2007. Schaum's Outlines Dasar-Dasar Database Relasional. Penerbit Erlangga, Jakarta: viii + 157 hlm.
158
Nader, J. C. 1992. Prentice Hall’s Illustrated Dictionary of Computing. Prentice Hall Inc., New South Wales: viii + 526 hlm. Peraturan Walikota Jogjakarta. 2007. Standar Operasional Dan Prosedur Manajemen Pengaman Sistem Informasi Dan Komunikasi Pada Pemerintah Kota
Yogyakarta:
9
hlm.
http://www.hukum.jogjakota.go.id/upload
/Perwal%20No_%2076%20Th%202007.pdf, 22 Mei 2010, pk. 20.15 WIB. Pezze, M. & M. Young. 2008. Software Testing and Analysis-Process, Principles, and Techniques. John Wiley & Sons, Inc. New Jersey: vii + 488 hlm. Presmann, R. S. 2010. Software Engineering: A Practitioner’s Approach. Mc Graw Hill Companies Inc., New York: xxviii + 895 hlm. Pribadiyono. 2006. Aplikasi Sistem Pengukuran Produktivitas Kaitannya dengan Pengupahan:
8
hlm.
http://puslit.petra.ac.id/journals/pdf.php?
PublishedID=IND06080203, 10 Januari 2011, pk. 20.35 WIB. Rumbaugh, J., I. Jacobson & G. Booch. 2006. The Unified Modeling Language Reference Manual. Pearson Education Inc., Westford: xiii + 721 hlm. Sumiyati. 2009. Monitoring Dan Evaluasi Pelaksanaan Standar Isi: 1 hlm. http://www.puskur.net/index.php?option=com_content&view=article&id=7 3:wawasan-4&catid=37:wawasan&Itemid=65, 03 Agustus 2010, pk. 14.31 WIB. Sunyoto, Andi. 2007. AJAX Membangun Web dengan Teknologi Asynchronouse JavaScript dan XML. Penerbit Andi, Yogyakarta: xiv + 226 hlm. Wardana. 2010. Menjadi Master PHP dengan Framework Codeigniter. Elex Media Komputindo, Jakarta: ix + 249 hlm.
Williams, B. K. & S. C. Sawyer. 2007. Using Information Technology: Pengenalan Praktis Dunia Komputer dan Komunikasi. Penerbit Andi, Yogyakarta: xxii + 586 hlm. Wismakarma, Komang. 2010. Panduan Lengkap Menguasai Pemrograman CSS. Penerbit Lokomedia, Yogyakarta: xiv + 204 hlm.
Lampiran 1 Surat Keterangan Penunjukkan Dosen Pembimbing Skripsi
A-1
Lampiran 2 Surat Keterangan Permohonan Penelitian
A-2
Lampiran 3 Surat Keterangan Persetujuan Penelitian dari PDAM
A-3
Lampiran 4 Surat Keterangan Penelitian di PDAM
A-4
Lampiran 5 Wawancara Awal Penelitian
B-1
Penanya
: Fikri Kharisma
Narasumber
: Enar Legowo, S.Kom
Jabatan
: Staf Divisi Bina Program
Tanggal
: 11 Oktober 2010
Tempat
: Divisi Bina Program PDAM Provinsi DKI Jakarta
Tujuan
: Mengetahui proses monitoring kinerja mitra perusahaan yang berlangsung di PDAM, dan mengetahui spesifikasi kebutuhan dari PDAM yang akan diimplementasikan ke dalam aplikasi
Dengan hormat, saya Fikri Kharisma mahasiswa UIN Syarif Hidayatullah Jakarta program studi Teknik Informatika, sedang mengadakan penelitian di PDAM bermaksud bertanya mengenai hal-hal yang terkait dengan penelitian yang akan saya lakukan. Terima kasih atas waktu dan kesempatan yang bapak berikan.
Fikri
: Bagaimana proses monitoring kinerja mitra perusahaan PDAM yang berlangsung selama ini?
Bpk. Enar : Kami dari PDAM setiap bulannya mendapatkan laporan kinerja dari masing-masing mitra, kemudian laporan-laporan tersebut direkap secara manual dengan membuat laporan rekap melalui software Microsoft Excel. Fikri
: Berapa jumlah mitra perusahaan PDAM?
Bpk. Enar : PDAM mempunyai dua mitra perusahaan yaitu PALYA atau PT. PAM Lyonnaise Jaya dan AETRA atau PT. Aetra Air Jakarta. Fikri
: Apa tujuan yang diharapkan oleh PDAM dengan adanya aplikasi monitoring ini?
Bpk. Enar : Tujuan dibuatnya aplikasi ini untuk memudahkan pegawai PDAM dalam memasukkan atau menginput data target dan realisasi dari masing-masing mitra, kemudian mendapatkan laporan rekapitulasi dari masing-masing mitra dan dapat disimpan dalam bentuk file Microsoft Excel, selain itu juga penampilan evaluasi dari masingmasing mitra dalam bentuk grafik statistik dan grafik tersebut dapat disimpan dalam bentuk image atau gambar. Fikri
: Apakah boleh setiap pegawai menggunakan aplikasi ini?
Bpk. Enar : Tidak semua pegawai dapat menggunakan aplikasi ini, hanya seorang pegawai dari Divisi Bina Program saja yang dapat menggunakan aplikasi ini. Fikri Bpk. Enar
: Terima kasih untuk waktu dan kesempatan yang bapak berikan. :
Ya, semoga sukses dalam membuat aplikasi ini.
Lampiran 6 Wawancara Akhir Penelitian dan Seusai Pengujian Aplikasi
B-2
Penanya
: Fikri Kharisma
Narasumber
: Enar Legowo, S.Kom
Jabatan
: Staf Divisi Bina Program
Tanggal
: 12 Nopember 2010
Tempat
: Divisi Bina Program PDAM Provinsi DKI Jakarta
Tujuan
: Mengetahui hasil pengujian aplikasi dan kesimpulan setelah pengujian aplikasi
Terima kasih atas waktu dan kesediaan bapak untuk menggunakan dan menguji aplikasi yang telah saya buat. Selanjutnya saya ingin bertanya kepada bapak mengenai proses penggunaan dan pengujian aplikasi ini.
Fikri
: Bagaimana proses untuk masuk atau login ke dalam aplikasi ini?
Bpk. Enar : Cukup mudah, tampilan interface login awal dari aplikasi ini user friendly, saya tinggal memasukkan username dan password. Fikri
: Bagaimana dengan halaman awal atau home aplikasi ini, apakah ada hambatan bagi bapak dalam menggunakan aplikasi ini dari halaman awal?
Bpk. Enar : Tidak, dari tampilannya cukup sederhana dan mudah untuk menggunakan aplikasi ini dari halaman awal, bagian atas dan bawah berupa gambar logo dan alamat PDAM. Kemudian bagian sebelah kiri terdapat menu bagi saya untuk dapat kembali ke halaman awal, dan menu jika saya ingin keluar dari aplikasi ini. Selain itu di bagian tengah terdapat dua tombol dari masing-masing mitra PDAM yaitu PALYJA dan AETRA, sehingga saya dapat memilih salah satu dari kedua mitra tersebut untuk selanjutnya melakukan proses kegiatan monitoring. Fikri
: Setelah bapak memilih tombol salah satu dari kedua mitra, bapak akan masuk ke halaman selanjutnya yang berisi empat tombol menu, yaitu TARGET, REALISASI, REKAP, dan EVALUASI, bagaimana proses bapak dalam melakukan kegiatan monitoring?
Bpk. Enar : Ya setelah memilih salah satu mitra tersebut, untuk memasukkan data target saya menekan tombol TARGET, selanjutnya setelah
memasuki halaman berikutnya saya dapat memasukkan data target, jika ada kesalahan terhadap data yang dimasukkan saya dapat mengubah dengan menekan tombol update, dan jika ingin menghapus saya dapat menekan tombol hapus. Untuk memasukkan data realisasi dari mitra tersebut, saya menekan tombol REALISASI, kemudian proses yang terjadi selanjutnya sama seperti ketika saya memasukan data target. Fikri
: Bagaimana dengan proses rekap dan penampilan grafik statistik?
Bpk. Enar : Ya untuk menampilkan rekap dari mitra tersebut saya menekan tombol REKAP, selanjutnya saya dapat memilih tahun dan kategori apakah itu triwulan 1 atau keseluruhan tahun, dan hal ini cukup bagus karena dalam penampilan rekap terdapat perbandingan antara target dan realisasi, dan yang penting juga saya dapat menyimpan atau mendownload rekap tersebut kedalam file Microsoft Excel. Kemudian untuk grafik evaluasi, setelah saya menekan tombol EVALUASI saya juga dapat memilih tahun dan kategori air apa yang ingin ditampilkan ke dalam grafik tersebut, dan juga grafik ini dapat disimpan ke dalam bentuk gambar atau image. Fikri
: Bagaimana pendapat bapak setelah menguji dan menggunakan aplikasi ini?
Bpk. Enar : Aplikasi ini cukup membantu memudahkan dan mempercepat proses dalam melakukan evaluasi kinerja mitra PDAM berdasarkan parameter perbandingan nilai realisasi yang dicapai dengan nilai target yang sudah ditentukan, sehingga terlihat tercapai atau tidaknya kinerja mitra PDAM. Kemudian dengan tampilan grafik terlihat juga progress kinerja mitra PDAM. Fikri
: Terima kasih untuk waktu dan kesempatan yang bapak berikan untuk menggunakan dan menguji aplikasi ini.
Bpk. Enar
:
Ya, saya berharap semoga ke depannya aplikasi ini dapat
dikembangkan untuk memonitor kinerja yang lain dari masing-masing mitra.
Lampiran 7 Kode Program
C-1
INDEKS KODE PROGRAM
No.
Nama
8.1.
login.php
8.2.
home.php
8.3.
palyja.php
8.4.
palyja_target.php
8.5.
palyja_realisasi.php
8.6.
palyja_rekap.php
8.7.
aetra.php
8.8.
aetra_target.php
8.9.
aetra_realisasi.php
8.10.
aetra_rekap.php
Keterangan Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan dalam proses login dan logout Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan untuk mengirimkan perintah ke “view” untuk menampilkan halaman home Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan untuk mengirimkan perintah ke “view” untuk menampilkan halaman palyja Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan dalam proses tambah, update, dan hapus dalam halaman target palyja Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan dalam proses tambah, update, dan hapus dalam halaman realisasi palyja Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan untuk menampilkan tabel rekapitulasi dalam halaman rekapitulasi palyja Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan untuk mengirimkan perintah ke “view” untuk menampilkan halaman aetra Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan dalam proses tambah, update, dan hapus dalam halaman target aetra Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan dalam proses tambah, update, dan hapus dalam halaman realisasi aetra Kode php di dalam bagian “controller” yang berisi fungsi-fungsi yang digunakan untuk menampilkan tabel rekapitulasi dalam halaman rekapitulasi aetra
8.1.
login.php
load‐>model('Login_model', '', TRUE); } /** * Memeriksa user state, jika dalam keadaan login akan menampilkan halaman home, * jika tidak akan meload halaman login */ function index() { if ($this‐>session‐>userdata('login') == TRUE) { redirect('home'); } else { $this‐>load‐ >view('login/login_view'); } } /** * Memproses login */ function process_login() { $this‐>form_validation‐ >set_rules('username', 'Username', 'required'); $this‐>form_validation‐ >set_rules('password', 'Password', 'required'); if ($this‐>form_validation‐>run() == TRUE) { $username = $this‐ >input‐>post('username'); $password = $this‐ >input‐>post('password'); if ($this‐>Login_model‐ >check_user($username, $password) == TRUE) { $data = array('username' => $username, 'login' => TRUE); $this‐ >session‐>set_userdata($data); redirect('home'); } else { $this‐ >session‐>set_flashdata('message', 'Maaf, username dan atau password Anda salah'); redirect('login/index');
} } else { $this‐>load‐ >view('login/login_view'); } } /** * Memproses logout */ function process_logout() { $this‐>session‐>sess_destroy(); redirect('login', 'refresh'); } } // END Login Class /* End of file login.php */ /* Location: ./system/application/controllers/login.php */
8.2.
home.php
session‐ >unset_userdata('username'); $this‐>session‐ >unset_userdata('password'); if ($this‐>session‐>userdata('login') == TRUE) { $this‐>load‐ >view('home'); } else { redirect('login'); } } } // END Home Class /* End of file home.php */ /* Location: ./system/application/controllers/home.php */
8.3.
palyja.php
session‐>userdata('login') == TRUE) { $this‐>load‐ >view('palyja/palyja'); } else { redirect('login'); } } } // END Palyja Class /* End of file palyja.php */ /* Location: ./system/application/controllers/palyja.php */
8.4.
palyja_target.php
load‐ >model('Palyjatgt_model', '', TRUE); $this‐>load‐ >model('Tahun_model', '', TRUE); $this‐>load‐>model('Bulan_model', '', TRUE); } /** * Inisialisasi variabel untuk $title(untuk id element ), dan * $limit untuk membatasi penampilan data di tabel */ var $limit = 12; var $title = 'Monitoring PAM JAYA ‐ PALYJA'; /** * Memeriksa user state, jika dalam keadaan login akan menjalankan fungsi get_all() * Jika tidak akan meredirect ke halaman login */
function index() { if ($this‐>session‐>userdata('login') == TRUE) { $this‐>get_all(); } else { redirect('login'); } } /** * Mendapatkan semua data target di database dan menampilkannya di tabel */ function get_all() { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET PALYJA'; $data['main_view'] = 'palyja/target'; /* Offset */ $uri_segment = 3; $offset = $this‐>uri‐ >segment($uri_segment); /* Load data */ $targets = $this‐>Palyjatgt_model‐ >get_all($this‐>limit, $offset); $num_rows = $this‐ >Palyjatgt_model‐>count_all(); if ($num_rows > 0) { /* Generate pagination */ $config['base_url'] = site_url('palyja_target/get_all'); $config['total_rows'] = $num_rows; $config['per_page'] = $this‐>limit; $config['uri_segment'] = $uri_segment; $this‐>pagination‐ >initialize($config); $data['pagination'] = $this‐>pagination‐>create_links(); /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array( 'table_open' => '
$this‐>session‐ >set_flashdata('message', 'Satu data target berhasil disimpan!'); redirect('palyja_target/add'); } else { $this‐>load‐ >view('palyja/target_form', $data); } } /** * Menampilkan form update data target */ function update($id_targetpalyja) { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET PALYJA > Update'; $data['main_view'] = 'palyja/target_form'; $data['form_action'] = site_url('palyja_target/update_process'); $data['link'] = array('link_back' => anchor('palyja_target','Kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐ >get_tahun()‐>result(); foreach($tahun as $row) { $data['options_tahun'][$row‐>id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐ >get_bulan()‐>result(); foreach($bulan as $row) { $data['options_bulan'][$row‐>id_bulan] = $row‐>bulan; } // cari data dari database $target = $this‐>Palyjatgt_model‐ >get_target_by_id($id_targetpalyja); // buat session untuk menyimpan data primary key (id_targetpalyja) $this‐>session‐ >set_userdata('id_targetpalyja', $target‐ >id_targetpalyja); // Data untuk mengisi field2 form $data['default']['id_tahun'] = $target‐>id_tahun; $data['default']['id_bulan'] = $target‐>id_bulan; $data['default']['air_baku'] = $target‐>air_baku;
$data['default']['air_produksi'] = $target‐>air_produksi; $data['default']['air_distribusi'] = $target‐>air_distribusi; $data['default']['air_terjual'] = $target‐>air_terjual; $data['default']['ufw_nrw'] = $target‐>ufw_nrw; $this‐>load‐ >view('palyja/target_form', $data); } /** * Proses update data target */ function update_process() { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET PALYJA > Update'; $data['main_view'] = 'palyja/target_form'; $data['form_action'] = site_url('palyja_target/update_process'); $data['link'] = array('link_back' => anchor('palyja_target','kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐ >get_tahun()‐>result(); foreach($tahun as $row) { $data['options_tahun'][$row‐>id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐ >get_bulan()‐>result(); foreach($bulan as $row) { $data['options_bulan'][$row‐>id_bulan] = $row‐>bulan; } // Set validation rules $this‐>form_validation‐ >set_rules('id_tahun', 'Tahun', 'required'); $this‐>form_validation‐ >set_rules('id_bulan', 'Bulan', 'required'); $this‐>form_validation‐ >set_rules('air_baku', 'Air Baku', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_produksi', 'Air Produksi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_distribusi', 'Air Terdistribusi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_terjual', 'Air Terjual', 'required|numeric|is_natural');
$this‐>form_validation‐ >set_rules('ufw_nrw', 'UFW/NRW', 'required|numeric|numeric_positive'); // jika proses validasi sukses, maka lanjut mengupdate data if ($this‐>form_validation‐>run() == TRUE) { // Save data $target = array('id_tahun' => $this‐>input‐ >post('id_tahun'), 'id_bulan' => $this‐ >input‐>post('id_bulan'), 'air_baku' => $this‐ >input‐>post('air_baku'), 'air_produksi' => $this‐ >input‐>post('air_produksi'), 'air_distribusi'=> $this‐>input‐ >post('air_distribusi'), 'air_terjual' => $this‐ >input‐>post('air_terjual'), 'ufw_nrw' => $this‐ >input‐>post('ufw_nrw')); $this‐>Palyjatgt_model‐ >update($this‐>session‐>userdata('id_targetpalyja'), $target); // Set pesan $this‐>session‐ >set_flashdata('message', 'Satu data target berhasil diupdate!'); redirect('palyja_target'); } else { $this‐>load‐ >view('palyja/target_form', $data); } } /** * Proses validasi data target agar tidak ada duplikasi data */ function valid_entry() { $tahun = $this‐>input‐ >post('id_tahun'); $bulan = $this‐>input‐ >post('id_bulan'); if ($this‐>Palyjatgt_model‐ >valid_entry($tahun, $bulan) == FALSE) { $this‐>form_validation‐ >set_message('valid_entry', 'Data sudah tercatat pada tabel. Silahkan ulangi lagi'); return FALSE; } else { return TRUE; }
} } // END Palyja_target Class /* End of file palyja_target.php */ /* Location: ./system/application/controllers/palyja_target.php */
8.5.
palyja_realisasi.php
load‐>model('Palyjareal_model', '', TRUE); $this‐>load‐>model('Tahun_model', '', TRUE); $this‐>load‐>model('Bulan_model', '', TRUE); } /** * Inisialisasi variabel untuk $title(untuk id element ), dan * $limit untuk membatasi penampilan data di tabel */ var $limit = 12; var $title = 'Monitoring PAM JAYA ‐ PALYJA'; /** * Memeriksa user state, jika dalam keadaan login akan menjalankan fungsi get_all() * Jika tidak akan meredirect ke halaman login */ function index() { if ($this‐>session‐>userdata('login') == TRUE) { $this‐>get_all(); } else { redirect('login'); } } /** * Mendapatkan semua data target di database dan menampilkannya di tabel */ function get_all() { $data['title'] = $this‐>title; $data['h2_title'] = 'REALISASI PALYJA'; $data['main_view'] = 'palyja/realisasi'; /* Offset */ $uri_segment = 3; $offset = $this‐>uri‐>segment($uri_segment);
>id_mtrpalyja,'hapus',array('class'=> 'delete','onclick'=>"return confirm('Anda yakin akan menghapus data ini?')")) ); } $data['table'] = $this‐>table‐ >generate(); } else { $data['message'] = 'Tidak ditemukan satupun data realisasi!'; } $data['link'] = array('link_add' => anchor('palyja_realisasi/add/','Tambah data', array('class' => 'add'))); $data['link2'] = array('link_back' => anchor('palyja','Kembali', array('class' => 'back'))); // Load view $this‐>load‐>view('palyja/realisasi', $data); } /** * Menghapus data realisasi dengan ID realisasi tertentu */ function delete($id_mtrpalyja) { $this‐>Palyjareal_model‐ >delete($id_mtrpalyja); $this‐>session‐>set_flashdata('message', 'Satu data realisasi berhasil dihapus'); redirect('palyja_realisasi'); } /** * Menampilkan form tambah realisasi */ function add() { $data['title'] = $this‐>title; $data['h2_title'] = 'REALISASI PALYJA > Tambah Data'; $data['main_view'] = 'palyja/realisasi_form'; $data['form_action'] = site_url('palyja_realisasi/add_process'); $data['link'] = array('link_back' => anchor('palyja_realisasi','Kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) {
$data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } $this‐>load‐>view('palyja/realisasi_form', $data); } /** * Proses tambah data realisasi */ function add_process() { $data['title'] = $this‐>title; $data['h2_title'] = 'REALISASI PALYJA > Tambah Data'; $data['main_view'] = 'palyja/realisasi_form'; $data['form_action'] = site_url('palyja_realisasi/add_process'); $data['link'] = array('link_back' => anchor('palyja_realisasi','Kembali', array('class' =>'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } // Set validation rules $this‐>form_validation‐>set_rules('id_tahun', 'Tahun', 'required|callback_valid_entry'); $this‐>form_validation‐>set_rules('id_bulan', 'Bulan', 'required|callback_valid_entry'); $this‐>form_validation‐>set_rules('air_baku', 'Air Baku', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_produksi', 'Air Produksi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_distribusi', 'Air Terdistribusi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_terjual', 'Air Terjual', 'required|numeric|is_natural'); $this‐>form_validation‐>set_rules('ufw_nrw', 'UFW/NRW', 'required|numeric|numeric_positive'); if ($this‐>form_validation‐>run() == TRUE) { // Save data $realisasi = array('id_tahun' => $this‐>input‐>post('id_tahun'), 'id_bulan' => $this‐>input‐ >post('id_bulan'),
'air_baku' => $this‐>input‐ >post('air_baku'), 'air_produksi' => $this‐>input‐ >post('air_produksi'), 'air_distribusi'=> $this‐>input‐ >post('air_distribusi'), 'air_terjual' => $this‐>input‐>post('air_terjual'), 'ufw_nrw' => $this‐>input‐ >post('ufw_nrw')); $this‐>Palyjareal_model‐ >add($realisasi); $this‐>session‐ >set_flashdata('message', 'Satu data realisasi berhasil disimpan!'); redirect('palyja_realisasi/add'); } else { $this‐>load‐ >view('palyja/realisasi_form', $data); } } /** * Menampilkan form update data realisasi */ function update($id_mtrpalyja) { $data['title'] = $this‐>title; $data['h2_title'] = 'REALISASI PALYJA > Update'; $data['main_view'] = 'palyja/realisasi_form'; $data['form_action'] = site_url('palyja_realisasi/update_process'); $data['link'] = array('link_back' => anchor('palyja_realisasi','Kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } // cari data dari database $realisasi = $this‐>Palyjareal_model‐ >get_realisasi_by_id($id_mtrpalyja); // buat session untuk menyimpan data primary key (id_mtrpalyja)
$this‐>session‐>set_userdata('id_mtrpalyja', $realisasi‐>id_mtrpalyja); // Data untuk mengisi field2 form $data['default']['id_tahun'] = $realisasi‐>id_tahun; $data['default']['id_bulan'] = $realisasi‐>id_bulan; $data['default']['air_baku'] = $realisasi‐>air_baku; $data['default']['air_produksi'] = $realisasi‐ >air_produksi; $data['default']['air_distribusi'] = $realisasi‐ >air_distribusi; $data['default']['air_terjual'] = $realisasi‐ >air_terjual; $data['default']['ufw_nrw'] = $realisasi‐>ufw_nrw; $this‐>load‐>view('palyja/realisasi_form', $data); } /** * Proses update data realisasi */ function update_process() { $data['title'] = $this‐>title; $data['h2_title'] = 'REALISASI PALYJA > Update'; $data['main_view'] = 'palyja/realisasi_form'; $data['form_action'] = site_url('palyja_realisasi/update_process'); $data['link'] = array('link_back' => anchor('palyja_realisasi','kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } // Set validation rules $this‐>form_validation‐>set_rules('id_tahun', 'Tahun', 'required'); $this‐>form_validation‐>set_rules('id_bulan', 'Bulan', 'required'); $this‐>form_validation‐>set_rules('air_baku', 'Air Baku', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_produksi', 'Air Produksi', 'required|numeric|is_natural');
$this‐>form_validation‐ >set_rules('air_distribusi', 'Air Terdistribusi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_terjual', 'Air Terjual', 'required|numeric|is_natural'); $this‐>form_validation‐>set_rules('ufw_nrw', 'UFW/NRW', 'required|numeric|numeric_positive'); // jika proses validasi sukses, maka lanjut mengupdate data if ($this‐>form_validation‐>run() == TRUE) { // Save data $realisasi = array('id_tahun' => $this‐>input‐>post('id_tahun'), 'id_bulan' => $this‐>input‐ >post('id_bulan'), 'air_baku' => $this‐>input‐ >post('air_baku'), 'air_produksi' => $this‐>input‐ >post('air_produksi'), 'air_distribusi'=> $this‐>input‐ >post('air_distribusi'), 'air_terjual' => $this‐>input‐>post('air_terjual'), 'ufw_nrw' => $this‐>input‐ >post('ufw_nrw')); $this‐>Palyjareal_model‐ >update($this‐>session‐>userdata('id_mtrpalyja'), $realisasi); // Set pesan $this‐>session‐ >set_flashdata('message', 'Satu data realisasi berhasil diupdate!'); redirect('palyja_realisasi'); } else { $this‐>load‐ >view('palyja/realisasi_form', $data); } } /** * Proses validasi data target agar tidak ada duplikasi data */ function valid_entry() { $tahun = $this‐>input‐>post('id_tahun'); $bulan = $this‐>input‐>post('id_bulan'); if ($this‐>Palyjareal_model‐ >valid_entry($tahun, $bulan) == FALSE) { $this‐>form_validation‐ >set_message('valid_entry', 'Data sudah tercatat pada tabel. Silahkan ulangi lagi'); return FALSE; } else { return TRUE; }
} } // END Palyja_realisasi Class /* End of file palyja_realisasi.php */ /* Location: ./system/application/controllers/palyja_realisasi.php */
8.6.
palyja_rekap.php
load‐>model('Palyjarekap_model', '', TRUE); $this‐>load‐>model('Tahun_model', '', TRUE); $this‐>load‐>model('Triwulan_model', '', TRUE); // Load to_excelp_pi plugins //$this‐>load‐>plugin('to_excelp'); } /** * Inisialisasi variabel untuk $title(untuk id element ) */ var $title = 'Monitoring PAM JAYA ‐ PALYJA'; /** * Memeriksa user state, jika dalam keadaan login akan menjalankan fungsi main() * Jika tidak akan meredirect ke halaman login */ function index() { if ($this‐>session‐>userdata('login') == TRUE) { $this‐>main(); } else { redirect('login'); } } /** * Menampilkan halaman utama rekap palyja */ function main() { $data['title'] = $this‐ >title; $data['h2_title'] = 'REKAPITULASI PALYJA'; $data['main_view'] = 'palyja/rekap'; $data['form_action'] = site_url('palyja_rekap/get_rekap'); // data tahun untuk dropdown menu $query_tahun = $this‐>Tahun_model‐ >get_tahun();
$tahun = $query_tahun‐>result(); $num_rows = $query_tahun‐>num_rows(); if ($num_rows > 0) { foreach($tahun as $row) { $data['options_tahun'][$row‐>id_tahun] = $row‐ >tahun; } } else { $data['options_tahun'][''] = ''; } // data triwulan untuk dropdown menu $query_triwulan = $this‐>Triwulan_model‐ >get_triwulan(); $triwulan = $query_triwulan‐>result(); $num_rows = $query_triwulan‐>num_rows(); if ($num_rows > 0) { foreach($triwulan as $row) { $data['options_triwulan'][$row‐>id_triwulan] = $row‐>triwulan; } } else { $data['options_triwulan'][''] = ''; } $data['link2'] = array('link_back' => anchor('palyja','Kembali', array('class' => 'back'))); // Load view $this‐>load‐>view('palyja/rekap', $data); } /** * Mendapatkan data rekap dari database, kemudian menampilkan di halaman */ function get_rekap($id_tahun = 0, $id_triwulan = 0) { $data['title'] = $this‐>title; $data['h2_title'] = 'REKAPITULASI PALYJA'; $data['main_view'] = 'palyja/rekap'; $data['form_action'] = site_url('palyja_rekap/get_rekap'); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data triwulan untuk dropdown menu $triwulan = $this‐>Triwulan_model‐ >get_triwulan()‐>result(); foreach($triwulan as $row) {
$data['options_triwulan'][$row‐ >id_triwulan] = $row‐>triwulan; } // untuk tahun yang terpilih $data['default']['id_tahun'] = $id_tahun; // untuk triwulan yang terpilih $data['default']['id_triwulan'] = $id_triwulan; // cek input parameter fungsi get_rekap() if ( !($id_tahun == 0) && !($id_triwulan == 0) ) { // data tahun, untuk tahun terpilih $thn = $this‐>Tahun_model‐ >get_tahun_by_id($id_tahun); $data['active_year'] = $thn‐>tahun; // data triwulan, untuk triwulan terpilih $trw = $this‐>Triwulan_model‐ >get_triwulan_by_id($id_triwulan); $data['active_triwulan'] = $trw‐ >triwulan; // load data from database $rekap = $this‐ >Palyjarekap_model‐>get_rekap($id_tahun, $id_triwulan)‐>result(); $num_rows = $this‐ >Palyjarekap_model‐>get_rekap($id_tahun, $id_triwulan)‐>num_rows(); // jika query > 0 if ($num_rows > 0) { if ($id_triwulan == 1) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('palyja/rekap', $data); } else if ($id_triwulan == 2) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('palyja/rekap', $data); }
else if ($id_triwulan == 3) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda*
2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('palyja/rekap', $data); } else if ($id_triwulan == 4) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('palyja/rekap', $data); } else if ($id_triwulan == 5) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('palyja/rekap', $data); } else { $this‐ >session‐>set_flashdata('message', 'Data tidak ditemukan!'); redirect('palyja_rekap'); } } // jika query < 0 else { $this‐>session‐ >set_flashdata('message', 'Data tidak ditemukan!'); redirect('palyja_rekap'); } }
load‐>model('Aetratgt_model', '', TRUE); $this‐>load‐>model('Tahun_model', '', TRUE); $this‐>load‐>model('Bulan_model', '', TRUE); } /** * Inisialisasi variabel untuk $title(untuk id element ), dan * $limit untuk membatasi penampilan data di tabel */ var $limit = 12; var $title = 'Monitoring PAM JAYA ‐ AETRA'; /** * Memeriksa user state, jika dalam keadaan login akan menjalankan fungsi get_all() * Jika tidak akan meredirect ke halaman login */ function index() { if ($this‐>session‐>userdata('login') == TRUE) { $this‐>get_all(); } else { redirect('login'); } } /** * Mendapatkan semua data target di database dan menampilkannya di tabel */ function get_all() { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET AETRA'; $data['main_view'] = 'aetra/target'; /* Offset */ $uri_segment = 3; $offset = $this‐>uri‐>segment($uri_segment); /* Load data */ $targets = $this‐>Aetratgt_model‐ >get_all($this‐>limit, $offset); $num_rows = $this‐>Aetratgt_model‐ >count_all();
} $data['table'] = $this‐>table‐ >generate(); } else { $data['message'] = 'Tidak ditemukan satupun data target!'; } $data['link'] = array('link_add' => anchor('aetra_target/add/','Tambah data', array('class' => 'add'))); $data['link2'] = array('link_back' => anchor('aetra','Kembali', array('class' => 'back'))); // Load view $this‐>load‐>view('aetra/target', $data); } /** * Menghapus data target dengan ID Target tertentu */ function delete($id_targetaetra) { $this‐>Aetratgt_model‐ >delete($id_targetaetra); $this‐>session‐>set_flashdata('message', 'Satu data target berhasil dihapus'); redirect('aetra_target'); } /** * Menampilkan form tambah target */ function add() { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET AETRA > Tambah Data'; $data['main_view'] = 'aetra/target_form'; $data['form_action'] = site_url('aetra_target/add_process'); $data['link'] = array('link_back' => anchor('aetra_target','Kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } $this‐>load‐>view('aetra/target_form', $data); }
/** * Proses tambah data target */ function add_process() { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET AETRA > Tambah Data'; $data['main_view'] = 'aetra/target_form'; $data['form_action'] = site_url('aetra_target/add_process'); $data['link'] = array('link_back' => anchor('aetra_target','Kembali', array('class' =>'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } // Set validation rules $this‐>form_validation‐>set_rules('id_tahun', 'Tahun', 'required|callback_valid_entry'); $this‐>form_validation‐>set_rules('id_bulan', 'Bulan', 'required|callback_valid_entry'); $this‐>form_validation‐>set_rules('air_baku', 'Air Baku', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_produksi', 'Air Produksi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_distribusi', 'Air Terdistribusi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_terjual', 'Air Terjual', 'required|numeric|is_natural'); $this‐>form_validation‐>set_rules('ufw_nrw', 'UFW/NRW', 'required|numeric|numeric_positive'); if ($this‐>form_validation‐>run() == TRUE) { // Save data $target = array('id_tahun' => $this‐>input‐>post('id_tahun'), 'id_bulan' => $this‐>input‐ >post('id_bulan'), 'air_baku' => $this‐>input‐ >post('air_baku'), 'air_produksi' => $this‐>input‐ >post('air_produksi'),
'air_distribusi'=> $this‐>input‐ >post('air_distribusi'), 'air_terjual' => $this‐>input‐>post('air_terjual'), 'ufw_nrw' => $this‐>input‐ >post('ufw_nrw')); $this‐>Aetratgt_model‐ >add($target); $this‐>session‐ >set_flashdata('message', 'Satu data target berhasil disimpan!'); redirect('aetra_target/add'); } else { $this‐>load‐ >view('aetra/target_form', $data); } } /** * Menampilkan form update data target */ function update($id_targetaetra) { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET AETRA > Update'; $data['main_view'] = 'aetra/target_form'; $data['form_action'] = site_url('aetra_target/update_process'); $data['link'] = array('link_back' => anchor('aetra_target','Kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } // cari data dari database $target = $this‐>Aetratgt_model‐ >get_target_by_id($id_targetaetra); // buat session untuk menyimpan data primary key (id_targetaetra) $this‐>session‐>set_userdata('id_targetaetra', $target‐>id_targetaetra); /// Data untuk mengisi field2 form $data['default']['id_tahun'] = $target‐>id_tahun;
$data['default']['id_bulan'] = $target‐>id_bulan; $data['default']['air_baku'] = $target‐>air_baku; $data['default']['air_produksi'] = $target‐ >air_produksi; $data['default']['air_distribusi'] = $target‐ >air_distribusi; $data['default']['air_terjual'] = $target‐ >air_terjual; $data['default']['ufw_nrw'] = $target‐>ufw_nrw; $this‐>load‐>view('aetra/target_form', $data); } /** * Proses update data target */ function update_process() { $data['title'] = $this‐>title; $data['h2_title'] = 'TARGET AETRA > Update'; $data['main_view'] = 'aetra/target_form'; $data['form_action'] = site_url('aetra_target/update_process'); $data['link'] = array('link_back' => anchor('aetra_target','kembali', array('class' => 'back'))); // data tahun untuk dropdown menu $tahun = $this‐>Tahun_model‐>get_tahun()‐ >result(); foreach($tahun as $row) { $data['options_tahun'][$row‐ >id_tahun] = $row‐>tahun; } // data bulan untuk dropdown menu $bulan = $this‐>Bulan_model‐>get_bulan()‐ >result(); foreach($bulan as $row) { $data['options_bulan'][$row‐ >id_bulan] = $row‐>bulan; } // Set validation rules $this‐>form_validation‐>set_rules('id_tahun', 'Tahun', 'required'); $this‐>form_validation‐>set_rules('id_bulan', 'Bulan', 'required'); $this‐>form_validation‐>set_rules('air_baku', 'Air Baku', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_produksi', 'Air Produksi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_distribusi', 'Air Terdistribusi', 'required|numeric|is_natural'); $this‐>form_validation‐ >set_rules('air_terjual', 'Air Terjual', 'required|numeric|is_natural'); $this‐>form_validation‐>set_rules('ufw_nrw', 'UFW/NRW', 'required|numeric|numeric_positive');
// jika proses validasi sukses, maka lanjut mengupdate data if ($this‐>form_validation‐>run() == TRUE) { // Save data $target = array('id_tahun' => $this‐>input‐>post('id_tahun'), 'id_bulan' => $this‐>input‐ >post('id_bulan'), 'air_baku' => $this‐>input‐ >post('air_baku'), 'air_produksi' => $this‐>input‐ >post('air_produksi'), 'air_distribusi'=> $this‐>input‐ >post('air_distribusi'), 'air_terjual' => $this‐>input‐>post('air_terjual'), 'ufw_nrw' => $this‐>input‐ >post('ufw_nrw')); $this‐>Aetratgt_model‐ >update($this‐>session‐>userdata('id_targetaetra'), $target); // Set pesan $this‐>session‐ >set_flashdata('message', 'Satu data target berhasil diupdate!'); redirect('aetra_target'); } else { $this‐>load‐ >view('aetra/target_form', $data); } } /** * Proses validasi data target agar tidak ada duplikasi data */ function valid_entry() { $tahun = $this‐>input‐>post('id_tahun'); $bulan = $this‐>input‐>post('id_bulan'); if ($this‐>Aetratgt_model‐ >valid_entry($tahun, $bulan) == FALSE) { $this‐>form_validation‐ >set_message('valid_entry', 'Data sudah tercatat pada tabel. Silahkan ulangi lagi'); return FALSE; } else { return TRUE; } } } // END Aetra_target Class /* End of file aetra_target.php */ /* Location: ./system/application/controllers/aetra_target.php */
8.9.
aetra_realisasi.php
load‐>model('Aetrareal_model', '', TRUE); $this‐>load‐>model('Tahun_model', '', TRUE); $this‐>load‐>model('Bulan_model', '', TRUE); } /** * Inisialisasi variabel untuk $title(untuk id element ), dan * $limit untuk membatasi penampilan data di tabel */ var $limit = 12; var $title = 'Monitoring PAM JAYA ‐ AETRA'; /** * Memeriksa user state, jika dalam keadaan login akan menjalankan fungsi get_all() * Jika tidak akan meredirect ke halaman login */ function index() { if ($this‐>session‐>userdata('login') == TRUE) { $this‐>get_all(); } else { redirect('login'); } } /** * Mendapatkan semua data target di database dan menampilkannya di tabel */ function get_all() { $data['title'] = $this‐>title; $data['h2_title'] = 'REALISASI AETRA'; $data['main_view'] = 'aetra/realisasi'; /* Offset */ $uri_segment = 3; $offset = $this‐>uri‐>segment($uri_segment); /* Load data */ $reals = $this‐>Aetrareal_model‐ >get_all($this‐>limit, $offset); $num_rows = $this‐>Aetrareal_model‐ >count_all(); if ($num_rows > 0) { /* Generate pagination */
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('aetra/rekap', $data); } else if ($id_triwulan == 2) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('aetra/rekap', $data); } else if ($id_triwulan == 3) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra');
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('aetra/rekap', $data); } else if ($id_triwulan == 5) { /* Table */ /*Set table template for alternating row 'zebra'*/ $tmpl = array('table_open'=>'
Persentase Pencapaian = (Realisasi/Target**) x 100% 1. Persentase < 100% : Target tidak tercapai, ada denda* 2. Persentase >= 100% : Target tercapai, tidak ada denda * Denda merupakan kewenangan PDAM dan ditentukan oleh PDAM
** Besar nilai target ditentukan langsung setiap bulan berdasarkan kesepakatan antara PDAM dan Mitra'); // Load view $this‐>load‐ >view('aetra/rekap', $data); } else { $this‐ >session‐>set_flashdata('message', 'Data tidak ditemukan!'); redirect('aetra_rekap'); } } // jika query < 0 else { $this‐>session‐ >set_flashdata('message', 'Data tidak ditemukan!'); redirect('aetra_rekap'); } } else { $id_tahun = $this‐>input‐ >post('id_tahun'); $id_triwulan = $this‐>input‐ >post('id_triwulan'); if ( !($id_tahun == 0) && !($id_triwulan == 0) ) {
redirect("aetra_rekap/get_rekap/$id_tahun/$id _triwulan"); } else { redirect('aetra_rekap'); } } } // Download excel function download($id_tahun, $id_triwulan) { $file_name = 'Rekapitulasi_Air_Aetra'; $query = $this‐>Aetrarekap_model‐ >get_rekap($id_tahun, $id_triwulan); $data['query'] = $query; $this‐>load‐>view('to_excela',$data); //to_excel($query, $file_name); } } // END Aetra_rekap Class /* End of file aetra_rekap.php */ /* Location: ./system/application/controllers/aetra_rekap.php */