SISTEM INFORMASI TERINTEGRASI
PADA PT. GRAHA SARANA GRESIK
SKRIPSI
Oleh:
ARLITA RETYANDIAS NPM: 0634010106
K e p a d a
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
YAYASAN KESEJAHTERAAN PENDIDIKAN DAN PERUMAHAN
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
FAKULTAS TEKNOLOGI INDUSTRI
________________________________________________________________________________________________________________________
HALAMAN PENGESAHAN
Mahasiswa dengan nama dan NPM yang tertera di bawah ini:
Nama : Arlita Retyandias
NPM : 0634010106
Progdi : Teknik Informatika
Dengan ini telah melaksanakan Ujian Negara Lisan pada tahun akademik 2009/2010.
Judul Skripsi:
SISTEM INFORMASI TERINTEGRASI PADA PT. GRAHA SARANA GRESIK
Menyetujui,
Dosen Pembimbing I
M. Irwan Afandi, ST, MSc. NPT. 37607 070 220
Dosen Pembimbing II
Doddy Riwandono, S.Kom NPT. 37805 070 218
Ketua Program Studi Teknik Informatika
Basuki Rahmat, S.Si, MT NPT. 36907 060 209
D E K A N
Fakultas Teknologi Industri
YAYASAN KESEJAHTERAAN PENDIDIKAN DAN PERUMAHAN
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
FAKULTAS TEKNOLOGI INDUSTRI
________________________________________________________________________________________________________________________
SKRIPSI
SISTEM INFORMASI TERINTEGRASI PADA PT. GRAHA SARANA GRESIK
Disusun oleh:
ARLITA RETYANDIAS NPM: 0634010106
Telah dipertahankan dan diterima di hadapan Tim Penguji Tugas Akhir Program Studi Teknik Informatika Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur Pada tanggal 11 Juni 2010
Susunan Tim Penguji:
1. Penguji I,
Ir. Purnomo Edy Sasongko, MP NPT. 030 194 662
2. Penguji II,
Fetty Tri Anggraeny, S.Kom NPT. 38202 060 208
3. Penguji III,
YAYASAN KESEJAHTERAAN PENDIDIKAN DAN PERUMAHAN
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
FAKULTAS TEKNOLOGI INDUSTRI
________________________________________________________________________________________________________________________
LEMBAR BEBAS REVISI
Kami yang bertanda tangan di bawah ini menyatakan bahwa mahasiswa berikut:
Nama : Arlita Retyandias NPM : 0634010106 Progdi : Teknik Informatika
Telah mengerjakan revisi Tugas Akhir Ujian Lisan Gelombang V, TA. 2009/2010 dengan judul:
SISTEM INFORMASI TERINTEGRASI PADA PT. GRAHA SARANA GRESIK
Dosen Penguji yang memerintahkan revisi:
1. Ir. Purnomo Edy Sasongko, MP
NPT. 030 194 662 ( ……… )
2. Fetty Tri Anggraeny, S.Kom
NPT. 38202 060 208 ( ……… )
3. Yusron Rijal, S.Si, MT
NPT. 0715 067 901 ( ……… )
Mengetahui,
Dosen Pembimbing I
M. Irwan Afandi, ST, MSc. NIP. 37607 070 220
Dosen Pembimbing II
ARLITA RETYANDIAS (0634010106) SISTEM INFORMASI TERINTEGRASI PADA PT. GRAHA SARANA GRESIK
Dosen Pembimbing I : M. Irwan Afandi, ST, MSc. Dosen Pembimbing II : Doddy Ridwandono, S.Kom
___________________________________________________________________________________________________
ABSTRAK
Perusahaan sekelas PT. Graha Sarana Gresik yang memiliki 10 urusan unit dengan bidang yang berbeda-beda dan total omzet lebih dari 5 miliyar rupiah setiap bulannya seharusnya memiliki suatu sistem informasi utama yang mengintegrasikan sistem informasi yang terdapat di dalam masing-masing urusan unit, sehingga proses penyusunan laporan konsolidasinya dapat dilakukan secara otomatis oleh sistem informasi utama tersebut. Namun dalam kenyataannya, PT. Graha Sarana Gresik belum memiliki sistem informasi utama tersebut. Sehingga proses penyusunan laporan konsolidasi pun harus dilakukan secara manual. Perbedaan bidang yang mencolok antara masing-masing urusan unit menyebabkan proses penyusunan yang dilakukan secara manual tersebut memerlukan waktu yang semakin panjang.
Hal itu mengakibatkan pihak Top Manager harus menunggu hingga akhir bulan untuk mendapatkan laporan konsolidasi, padahal proses pengambilan keputusan tidak bisa selalu menunggu selama itu. Seringkali muncul masalah-masalah urgent yang harus secepatnya diputuskan penyelesaiannya. Namun saat ini belum memungkinkan apabila pihak manajer atau direksi meminta laporan konsolidasi sewaktu-waktu.
Solusi yang dibutuhkan oleh PT. Graha Sarana Gresik adalah sebuah sarana yang mampu menjembatani perbedaan bidang yang mencolok antara masing-masing urusan unit yang ada. Sarana yang mampu mengintegrasikan setiap transaksi yang terjadi dalam masing-masing urusan unit dan mengolahnya menjadi data untuk penyusunan laporan konsolidasi. Sarana yang mampu menyajikan laporan konsolidasi tersebut dengan cepat dan tepat.
Dalam pengerjaan Tugas Akhir ini, sarana yang dibutuhkan di atas dikembangkan dalam bentuk website berupa Sistem Informasi Terintegrasi. Website ini dibangun dengan bahasa pemrograman PHP dan menggunakan Wamp Server 2.0 sebagai web server dan MySQL sebagai database server.
Kata kunci: sistem informasi, integrasi.
KATA PENGANTAR
Syukur alhamdulillah penulis panjatkan ke hadirat Allah SWT, yang telah
melimpahkah rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan
laporan Tugas Akhir yang berjudul Sistem Informasi Terintegrasi Pada PT. Graha
Sarana Gresik ini dengan baik dan tepat waktu sebagaimana yang telah
ditetapkan..
Pada kesempatan ini, penulis juga ingin mengucapkan terima kasih yang
sebesar-besarnya kepada:
1. Orang tua tercinta atas dukungan moril maupun materil.
2. Elia Patrick Lipesik, S.Kom yang selalu setia mendampingi, membantu,
mendukung dan memberi semangat setiap waktu.
3. Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Indonesia Universitas
Pembangunan Nasional ”Veteran” Jawa Timur.
4. Basuki Rahmat, S.Kom, M.Kom selaku Ketua Jurusan Teknik Informatika
Universitas Pembangunan Nasional ”Veteran” Jawa Timur.
5. M. Irwan Afandy, S.T, M.Sc selaku Dosen Pembimbing I Tugas Akhir.
6. Doddy Ridwanndono, S.Kom selaku Dosen Pembimbing II Tugas Akhir.
7. Seluruh anggota keluarga yang telah memberikan dorongan, baik secara
moril maupun materil, sehingga laporan ini dapat selesai tepat pada
waktunya.
Penulis menyadari adanya keterbatasan kemampuan dan pengetahuan
dalam menyusun laporan ini, sehingga tak lupa penulis memohon maaf yang
sebesar-besarnya kepada semua pihak atas segala kesalahan, baik yang disengaja
maupun yang tidak disengaja, selama mengerjakan dan menyusun laporan Tugas
Akhir ini.
Akhir kata, penulis berharap semoga laporan Tugas Akhir ini dapat ikut
menunjang perkembangan ilmu pengetahuan dan dapat bermanfaat bagi kita
semua, sehingga untuk saran dan kritik yang bersifat membangun sangat
diharapkan.
Surabaya, 12 Juni 2010
Penulis
THANKS TO
Pada kesempatan kali ini, aku ingin mengucapkan terima kasih kepada Allah
SWT yang atas rahmat dan limpahan hidayah-Nya sajalah akhirnya aku bisa
menyelesaikan TA ini. Ya Allah, terima kasih banyak atas kemudahan, kelancaran dan
kesempatan indah yang telah Engkau anugerahkan kepada hambamu ini.
Ayah dan Bundaku tercinta, terima kasih banyak atas bantuan moril dan
materil yang telah Ayah dan Bunda berikan. Terima kasih pula atas limpahan kasih
sayang Ayah dan Bunda selama ini.
Elia Patrick Lipesik, S.Kom, yang selalu rajin dan sabar mendorongku untuk
menyelesaikan TA ini. Terima kasih telah rela mengajariku mati-matian sampai larut
malam agar bisa menyelesaikan ujian dengan baik. Terima kasih juga karena selalu
ada saat suntuk dan stress melandaku. Terima kasih telah menemaniku selama ini.
Mbak Chenty, yang selalu sabar dan rela menggantikan tugas-tugasku di
rumah, yang juga telah mengantar dan menemaniku rias ke salon untuk foto ijasah.
Mas Dofan Reo Sandias, S.Kom, yang mau berbagi pengalamannya saat TA dan
terima kasih juga atas masukan dan perhatiannya. Keponakanku tercinta Raihan,
senyummu selalu menghibur tantemu ini saat stress melanda. Mas Rangga yang telah
meluangkan waktu dan tenaga serta skillnya memfotoku untuk foto ijasah. Emak,
Yangti dan Yangkung atas do’anya yang tak pernah putus untukku. Tante-tanteku,
Om-omku dan sepupu-sepuku.
Yoan, Nana, Ririn, Meme dan Tumi, atas pinjaman sepatu dan printernya,
terima kasih juga karena telah menjadi sahabat-sahabatku yang baik. Mbak
Faradillah, S.E yang telah rela mngerjakan tugas kantorku saat aku tidak masuk
karena harus mengurus TA ini. Pak Sofyan Kurniyawan Effendy yang selalu
memberikan ijin tidak masuk kerja untuk mengurus TA ini.
Semua Pihak-pihak yang belum disebutkan namanya disini, Thanks to all...!!!
v
This book is dedicated to
Elia “Puss” Patrick Lipesik
DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR ... ii
THANKS PAGE ... iv
DAFTAR ISI ... vi
DAFTAR GAMBAR ... viii
BAB I PENDAHULUAN……….…….. ……… 1
1.1 Latar Belakang ……….………... 1
1.2 Perumusan Masalah……….……... 3
1.3 Batasan Masalah……….…….... 4
1.4 Sistematika dan Metodologi……….……….…... 4
1.5 Tujuan ………...……….……… 5
1.6 Manfaat ………...………... 6
BAB II LANDASAN TEORI ………..……….. 7
2.1 Sistem Informasi Terintegrasi ……...……….………..……. 7
2.2. Data Flow Diagram ……….. 9
2.3 PHP ..……….…………..…... 12
2.4 CMS ………...….………... ………. 18
2.5 Wamp Server………...….………... …… 19
2.4 MySQL………...….………... …………. 20
BAB III ANALISA DAN PERANCANGAN SISTEM ………... 23
3.1 Data Flow Diagram ………..………...……….. 23
3.2 Data Model ………. 28
3.2 Desain User Interface ……… 33
BAB IV HASIL DAN PEMBAHASAN………...………... 36
4.1 Website ..……… 36
4.1.1 Halaman Utama ………. 36
4.1.2 Halaman User………... 39
4.1.3 Halaman Admin …………... 44
4.1.4 Koneksi Database……... 45
4.1.5 Secutiry …………... 46
4.2 Database ...………... 47
4.2.1 Menu Analisa ………... 47
4.2.2 Menu Laporan dan Advanced Report ... 48
4.2.3 Menu Transaksi…………... 49
4.2.4 Menu Biaya ……... 50
4.2.5 Menu Profile …... 51
BAB V UJI COBA DAN EVALUASI ……….. 52
5.1 Uji Coba Sistem ………. 52
5.2 Evaluasi Sistem ……….. 60
5.2.1 Form Login ………... 60
5.2.2 Form Pengaturan Profile …... 61
BAB VI KESIMPULAN DAN SARAN ………..………... 64
6.1 Kesimpulan ………... 64
6.2 Saran ..………... 64
DAFTAR PUSTAKA………. 66
DAFTAR GAMBAR
Gambar 2.1 Simbol Process ...
Gambar 2.2 Simbol Data Flow ………
Gambar 2.3 Simbol Data Store ………...
Gambar 2.4 Simbol External Entity ………
Gambar 3.1 DFD Level 0 ………...
Gambar 3.2 DFD Level 1 ………...
Gambar 3.3 DFD level 2 Login User ……….
Gambar 3.4 DFD level 2 Login Admin ………..
Gambar 3.5 DFD Level 2 Mengisi Transaksi ………...
Gambar 3.6 CDM (part-1) ………...
Gambar 3.7 CDM (part-2) ………..
Gambar 3.8 PDM ...………...
Gambar 3.9 Desain Halaman Utama ………..
Gambar 3.10 Desain Halaman User………
Gambar 3.11 Desain Halaman Back-end Admin………
Gambar 3.12 Desain Halaman Admin ………...
Gambar 4.1 Halaman Utama ………...
Gambar 4.2 Halaman User ………...
Gambar 4.3 Hasil Plugin JpGraph ………..
Gambar 4.4 Menu Profile………
Gambar 4.5 Back-end Admin………...
Gambar 4.6 Halaman Admin ………...
Gambar 4.7 Menu Admin Manager………....
Gambar 5.1 Menu Analisa ………...
Gambar 5.2 Menu Laporan………...
Gambar 5.3 Form Advance Report ………...
Gambar 5.4 Transaksi Hall ………...
Gambar 5.5 Transaksi Kantin ………...
Gambar 5.6 Transaksi Perdagangan ………...
ix
Gambar 5.8 Transaksi Laundry ………...
Gambar 5.9 Transaksi Travel ………...
Gambar 5.10 Kwitansi Transaksi ………...
Gambar 5.11 Menu Biaya ………...
Gambar 5.12 Menu Kategori ………...
Gambar 5.13 Form Tambah Kategori ………...
Gambar 5.14 Menu Membership ………...
Gambar 5.15 Form Tambah Member ………...
Gambar 5.16 Fitur Cari Member ………...
Gambar 5.17 Menu Profile ………...
Gambar 5.18 Pesan Kesalahan pada Form Login ………...
Gambar 5.19 Penulisan Email yang Salah ………...
Gambar 5.20 Pesan Kesalahan Email Belum Benar ………...
Gambar 5.21 Nama yang Terlalu Panjang ………...
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
PT. Graha Sarana Gresik merupakan anak perusahaan PT. Petrokimia
Gresik yang memiliki tiga unit usaha, yaitu Gedung, Hotel dan Travel. Seperti
namanya, PT. Graha Sarana Gresik merupakan perusahaan yang berbasis di
Gresik, namun beberapa urusan unitnya ada yang berbasis di luar kota Gresik,
seperti Sidoarjo, Tuban hingga bahkan di pulau Bali. Omzet yang diraup
perusahaan ini mencapai lebih dari 5 miliyar rupiah setiap bulannya.
Unit usaha Gedung memiliki 3 buah urusan unit, yaitu Convention Hall,
Kantin dan Perdagangan Umum. Convention Hall bergerak di bidang penyewaan
ruang pertemuan utama milik PT. Graha Sarana Gresik. Sedangkan Kantin,
seperti namanya, bergerak dalam bidang penyediaan makanan dalam skala yang
besar. Perdagangan Umum bergerak dalam bidang makelar proyek-proyek
pengadaan barang dan jasa, baik untuk PT. Petrokimia Gresik maupun anak-anak
perusahaannya. Unit usaha Gedung yang bertempat di gedung utama PT. Graha
Sarana Gresik ini mampu meraup pendapatan hingga 2 miliyar rupiah setiap
bulannya.
Unit usaha Hotel memiliki 2 buah urusan unit, yaitu Puri dan Laundry.
Urusan Puri bergerak dalam bidang penyewaan pondok peristirahatan. Berbeda
dengan hotel pada umumnya, pondok peristirahatan yang disewakan hanya 2 buah
dan sasarannya lebih ke internal PT. Petrokimia Gresik dan anak-anak
2
YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2
pakaian. Sasaran utamanya adalah karyawan PT. Petrokimia Gresik yang tinggal
di perumahan dinas PT. Petrokimia Gresik serta hotel-hotel di kota Gresik dan
sekitarnya. Omzet kedua urusan unit di atas mencapai hingga 100 juta setiap
bulannya.
Unit usaha Travel memiliki 5 urusan unit yang tersebar di 4 kota, 2 di
Gresik, 1 di Sidoarjo, 1 di Tuban dan yang terakhir di Denpasar, Bali. Travel PT.
Graha Sarana Gresik yang mempekerjakan sekitar 40 karyawan ini ternyata cukup
diminati oleh internal PT. Petrokimia Gresik yang merupakan sasaran utama dari
unit usaha ini. Hal itu terbukti dari omzet per bulannya yang mencapai sekitar 3
miliyar rupiah dan merupakan penyumbang keuntungan terbesar bagi PT. Graha
Sarana Gresik.
Dengan perbedaan yang sangat mencolok pada bidang-bidang yang
digeluti oleh masing-masing urusan unit di atas, maka laporan konsolidasi
menjadi sangat penting artinya untuk mengevaluasi kinerja masing-masing urusan
unit, apakah urusan unit tersebut telah mampu meraup keuntungan seperti yang
ditargetkan sebelumnya atau malah stagnan bahkan merugi. Yang dimaksud
dengan laporan konsolidasi adalah hasil rekapitulasi laporan transaksional
masing-masing urusan unit yang dimiliki oleh PT. Graha Sarana Gresik. Laporan
konsolidasi ini disusun setiap akhir bulan dan digunakan sebagai landasan utama
dari proses pengambilan keputusan yang dilakukan oleh para manajer dan segenap
jajaran direksi.
Perusahaan sekelas PT. Graha Sarana Gresik yang memiliki 10 urusan unit
dengan bidang yang berbeda-beda dan total omzet lebih dari 5 miliyar rupiah
3
mengintegrasikan sistem informasi - sistem informasi yang terdapat di dalam
masing-masing urusan unit, sehingga proses penyusunan laporan konsolidasinya
dapat dilakukan secara otomatis oleh sistem informasi utama tersebut. Namun
dalam kenyataannya, PT. Graha Sarana Gresik belum memiliki sistem informasi
utama tersebut. Sehingga proses penyusunan laporan konsolidasi pun harus
dilakukan secara manual. Perbedaan bidang yang mencolok antara masing-masing
urusan unit menyebabkan proses penyusunan yang dilakukan secara manual
tersebut memerlukan waktu yang semakin panjang.
Hal itu mengakibatkan pihak Top Manager harus menunggu hingga akhir
bulan untuk mendapatkan laporan konsolidasi, padahal proses pengambilan
keputusan tidak bisa selalu menunggu selama itu. Seringkali muncul
masalah-masalah urgent yang harus secepatnya diputuskan penyelesaiannya. Namun saat
ini belum memungkinkan apabila pihak manajer atau direksi meminta laporan
konsolidasi sewaktu-waktu.
Solusi yang dibutuhkan oleh PT. Graha Sarana Gresik adalah sebuah
sarana yang mampu menjembatani perbedaan bidang yang mencolok antara
masing-masing urusan unit yang ada. Sarana yang mampu mengintegrasikan
setiap transaksi yang terjadi dalam masing-masing urusan unit dan mengolahnya
menjadi data untuk penyusunan laporan konsolidasi. Sarana yang mampu
menyajikan laporan konsolidasi tersebut dengan cepat dan tepat.
1.2. Perumusan Masalah
Berdasarkan latar belakang di atas, maka dibuat suatu perumusan masalah,
4
“Bagaimana cara membuat suatu sarana yang mampu mengintegrasikan
informasi transaksional lintas unit usaha agar dapat menghasilkan laporan
konsolidasi secara cepat?”
1.3. Batasan Masalah
Ruang lingkup permasalahan dalam Tugas Akhir ini adalah pembuatan
aplikasi sistem informasi terintegrasi berbasis website dengan mengangkat studi
kasus lintas unit usaha yang terjadi pada PT. Graha Sarana Gresik.
Tugas Akhir ini tidak akan membahas:
Proses input transaksi masing-masing urusan unit secara mendalam, karena
fokus utamanya adalah penyusunan laporan konsolidasi.
Fitur-fitur website yang tidak ada hubungannya dengan proses penyusunan
laporan konsolidasi.
Desain website secara mendalam.
Proses implementasi dan deployment system secara fisik pada PT. Graha
Sarana Gresik, karena data-data perusahaan tersebut hanya digunakan sebagai
dasar studi kasus.
1.4. Sistematika dan Metodologi
Laporan Tugas Akhir ini akan dibagi menjadi 6 bab dengan sistematika
penulisan dan metodologi pengerjaan sebagai berikut:
Bab I PENDAHULUAN
Bab I berisikan latar belakang yang mendasari pelaksanaan Tugas Akhir
5
metodologi, tujuan dan manfaat Tugas Akhir ini.
Bab II LANDASAR TEORI
Bab II merupakan penjelasan mengenai teori-teori yang digunakan dalam
Tugas Akhir ini.
Bab III ANALISA DAN PERANCANGAN SISTEM
Bab III merupakan tahap analisa dan perancangan terhadap sistem yang
dikembangkan dalam Tugas Akhir ini.
Bab IV HASIL DAN PEMBAHASAN
Bab IV menjelaskan hasil implementasi konsep dan pengembangan sistem
yang dibangun dalam Tugas Akhir ini.
Bab V UJI COBA DAN EVALUASI SISTEM
Bab V merupakan tahap testing terhadap sistem yang telah dibangun dan
kemudian dilakukan evaluasi terhadap hasil testing tersebut.
Bab VI KESIMPULAN DAN SARAN
Bab VI merupakan hasil yang diperoleh dari Tugas Akhir ini, mencakup
kesimpulan yang dihasilkan dari pengujian sistem. Selain itu terdapat
saran-saran konstruktif untuk pengembangan sistem ini selanjutnya.
1.5. Tujuan
Tujuan yang ingin dicapai dari Tugas Akhir ini adalah membuat sarana
integrasi lintas unit usaha yang mampu mengolah dan menyajikan laporan
6
1.6. Manfaat
Manfaat dari Tugas Akhir ini adalah:
Mengefektifkan proses transaksi yang terjadi sehari-hari.
Mengintegrasikan setiap proses transaksi yang terjadi pada masing-masing
urusan unit.
Memudahkan proses rekapitulasi laporan transaksional masing-masing urusan
unit.
Mengefisienkan proses penyusunan laporan konsolidasi.
Menyajikan laporan konsolidasi sewaktu-waktu.
Memberikan bahan pertimbangan yang valid bagi pihak Top Manager dalam
BAB II
LANDASAN TEORI
2.1. Sistem Informasi Terintegrasi
Sistem Informasi Terintegrasi adalah konfigurasi yang membantu untuk
mengkoordinasikan operasi mekanik dalam suatu organisasi. Sistem ini diakui
satu langkah di depan sistem informasi manajemen. Sistem Informasi Terintegrasi
membantu penyediaan informasi yang dibutuhkan dengan tujuan mendukung
proses pengambilan keputusan dalam sebuah organisasi. Hal ini dikatakan sebagai
salah satu yang sangat krusial karena integrasi melibatkan pemahaman banyak
masalah teknis.
Sistem Informasi Terintegrasi sebenarnya bukanlah suatu konsep yang
baru. Sistem ini sudah muncul sejak beberapa tahun yang lalu. Namun sistem ini
seringkali tidak mampu memenuhi ekspektasi yang diharapkan. Hal itu
disebabkan Sistem Informasi Terintegrasi hanyalah alat dan baru akan
memberikan pengaruh maksimal dan memberikan hasil yang lebih baik apabila
sistem-sistem yang telah ada berfungsi sebagaimana yang dibutuhkan oleh Sistem
Informasi Terintegrasi ini. Ketika sistem-sistem pendukung lainnya belum
berfungsi dengan maksimal atau bahkan mungkin malah belum ada, konsep utama
yang diusung oleh Sistem Informasi Terintegrasi akan sia-sia. Dan keberadaan
sistem ini malah akan menambah beban organisasi tersebut.
Untuk mengimplementasikan Sistem Informasi Terintegrasi yang dapat
mencakup semua aplikasi yang telah ada sebelumnya, suatu perusahaan harus
melakukan banyak penelitian dan pelatihan terlebih dahulu. Langkah pertama
8
YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
8
tentunya adalah menganalisa kebutuhan perusahaan dari sisi organisasinya.
Penelitian tersebut harus focus pada pertanyaan besar, “Mengapa Sistem
Informasi Terintegrasi dibutuhkan di perusahaan ini?” dan “Bagaimana sistem
tersebut akan memenuhi tujuan perusahaan ini?”. Hasil dari penelitian itu akan
digunakan untuk melakukan langkah-langkah selanjutnya dalam penelitian dan
implementasi. Hasil tersebut harus diuji lagi dengan mengajukan pertanyaan
langsung pada orang-orang yang nantinya diharapkan akan menggunakan atau
mendapatkan hasil dari implementasi Sistem Informasi Terintegrasi tersebut.
Misalnya manajer, direksi dan pihak-pihak lain yang berkepentingan dalam proses
pengambilan keputusan. Beberapa pertanyaan yang perlu mereka jawab adalah,
“Bagaimana koordinasi ini akan dapat menguntungkan kita? Akankah ini menjadi
solusi yang efektif?”. Langkah-langkah analisa selanjutnya adalah sebagai
berikut:
Gap Analysis
Gap Analysis akan mengidentifikasi faktor-faktor pendorong yang perlu
disediakan dalam upaya menyelaraskan de-stabilisasi yang telah ada di dalam
suatu organisasi. Analisa ini akan mengeksploitasi kekurangan-kekurangan
yang ada pada sistem yang telah ada dan menyarankan pembetulan–
pembetulan yang diperlukan. Kekurangan-kekurangan tersebut akan dianalisa
dalam setiap aspek seperti teknologi, penguasaan informasi dan
praktek-praktek relevan lainnya. Gap Analysis harus menghasilkan cukup banyak
saran untuk menyingkirkan faktor-faktor yang menyebabkan kemunduran
organisasi. Saran-saran tersebut ditindaklanjuti setelah berkonsultasi dengan
9
Sistem Informasi Terintegrasi akan berjalan nantinya. Gap Analysis ini
dibutuhkan untuk membuat Sistem Informasi Terintegrasi menjadi se-user
friendly mungkin.
Implementation
Proses implementasi Sistem Informasi Terintegrasi hanya dapat dimulai jika
semua saran-saran yang dihasilkan dari analisa atau proses sebelumnya sudah
dilakukan. Proses implementasi ini bisa menjadi sesuatu yang sangat rumit
karena banyaknya kesulitan-kesulitan praktis yang mungkin muncul dan
memberikan tantangan kepada konsep utama Sistem Informasi Terintegrasi.
Assessment
Setiap orang yang berhubungan baik secara langsung maupun tidak langsung
dengan Sistem Informasi Terintegrasi ini harus memberikan feedback untuk
membantu technical team menentukan sejauh mana Sistem Informasi
Terintegrasi berjalan setelah diimplementasikan.
Sistem Informasi Terintegrasi adalah suatu fungsi yang sangat krusial
untuk perusahaan. Keberhasilan sistem ini akan sangat bergantung pada
keselarasannya dengan aplikasi perusahaan yang lain, misalnya Sistem Informasi
Eksekutif.
(Sumber: ERP Wire, 2009)
2.2. Data Flow Diagram
Data Flow Diagram (DFD) adalah suatu grafik yang menjelaskan sebuah
sistem dengan menggunakan bentuk-bentuk atau simbol untuk menggambarkan
10
input, process dan output yang terjadi dalam suatu sistem. DFD juga
menggambarkan aliran data dalam sebuah sistem.
Dalam mendokumentasikan sebuah sistem, DFD mempunyai level-level
mulai dari yang terkecil, yaitu level 0 atau sering disebut context diagram.
Context diagram ini merupakan gambaran paling umum dari sistem, yang hanya
memiliki satu proses saja untuk mewakili seluruh sistem. Semakin bertambahnya
level dalam DFD akan semakin detail digambarkannya proses-proses yang ada
pada sistem, tetapi yang boleh bertambah hanya proses dan data flow saja.
Sedangkan untuk data source, jumlahnya harus tetap dengan yang ada pada
context diagram. Khusus untuk data store, pada context diagram masih belum
digambarkan, baru mulai tampak pada level 1 dan konsisten jumlahnya sampai
pada level berikutnya.
Simbol-simbol yang digunakan dalam DFD terdiri dari 4 macam, yaitu:
process, data flow, data store dan external entity. Berikut uraian singkat mengenai
4 simbol tersebut.
Process adalah simbol yang mengubah suatu data dari suatu bentuk menjadi
bentuk yang lain. Dengan kata lain, proses menerima masukan data dan
mengeluarkan keluaran data lain yang telah diproses. Simbol process dapat
dilihat pada Gambar 2.1 berikut ini.
11
Data flow atau aliran data adalah aliran yang menunjukkan perpindahan data
dari satu bagian ke bagian lain dalam suatu sistem. Data flow dalam DFD
digambarkan dengan tanda panah dan diberi keterangan di sampingnya yang
menunjukkan data yang mengalir. Simbol data flow dapat dilihat pada
Gambar 2.2 berikut ini.
Gambar 2.2 Simbol Data Flow
Data store adalah tempat penyimpanan data dalam suatu sistem, baik secara
manual maupun secara elektronik. Simpanan data digunakan jika suatu proses
perlu menggunakan lagi data tersebut. Simbol data store dapat dilihat pada
Gambar 2.3 berikut ini.
Gambar 2.3 Simbol Data Store
External entity mewakili entitas eksternal yang berkomunikasi dengan sistem
yang sedang dikembangkan. Ada 2 macam external entity, yaitu source dan
sink. External entity source merupakan sumber data, sedangkan external entity
sink merupakan tujuan data. Simbol keduanya dapat dilihat pada Gambar 2.4
berikut ini.
Gambar 2.4 Simbol External Entity
12
2.3. PHP
PHP yang merupakan singkatan dari PHP Hypertext Prepocessor,
sebenarnya adalah sebuah produk yang bernama asli “Personal Home Page
Tools” (Pemrograman Web dengan PHP, Betha Sidik, 2001). PHP adalah suatu
bahasa yang bersifat server side dan didesain khusus untuk aplikasi website. PHP
dapat disisipkan di antara bahasa HTML. Karena merupakan bahasa server side,
maka bahasa PHP akan dieksekusi di server, sehingga yang dikirimkan ke
browser adalah “hasil jadi” dalam bentuk HTML dan kode PHP tidak terlihat lagi.
(Sumber: Digital Library UK Petra, 2007)
2.3.1. Struktur Program PHP
Kode program PHP menyatu dengan tag-tag HTML dalam satu file. Kode
PHP diawali dengan tag <? Atau <?php dan ditutup dengan tag ?>. Berikut struktur
penulisan sintaks PHP dalam HTML:
<HTML> <HEAD>
<TITLE>Contoh</TITLE> </HEAD>
<BODY> <?-script PHP-?> </BODY> </HTML>
(Sumber: Johan Firdaus – Dasar PHP, 2008)
2.3.2. Variabel
Dalam PHP, variabel diawali dengan tanda dollar “$”, sedang untuk
menugaskan sebuah nilai pada variabel tersebut digunakan tanda “=”. Jadi untuk
membuat sebuah variabel dan menugaskan sebuah nilai dapat dilakukan dengan
13
$Nama = “Arlita Retyandias”
Nama adalah identifier (nama variabel) dan string “Arlita Retyandias”
telah ditugaskan atau disimpan dalam variabel tersebut.
(Sumber: Johan Firdaus – Dasar PHP, 2008)
2.3.3. Tipe Data
Tipe data yang dapat diolah oleh PHP di antaranya adalah tipe data
numerik (integer dan float), string dan object.
Tipe Data Numerik
Terdiri atas integer, float dan double, tipe integer merupakan data numerik
yang berupa bilangan bulat, sementara float dapat menampung nilai numerik
dalam bentuk nilai desimal.
Tipe Data String
Tipe data yang menampung informasi tekstual seperti huruf, kata dan kalimat.
Isi dari string diapit oleh tanda kutip, seperti yang terlihat berikut ini:
$type_string = “Tata”
Tipe Data Object
Tipe data ini merupakan pengembangan yang dilakukan PHP untuk
mendukung pemrograman berorientasi objek. Tipe data object adalah tipe data
yang di dalamnya mempunyai data dan method. Data yang dimiliki oleh suatu
object dikenal dengan nama atribut dan method umumnya berupa sebuah
fungsi. Data object di sini didefenisikan dengan membuat defenisi kelas
terlebih dahulu. Suatu variabel yang bertipe object diinisialisasi
(dideklarasikan) dengan menggunakan perintah new diikuti nama object
14
<?php class objek {
function counter ( ) {
(Sumber: Johan Firdaus – Dasar PHP, 2008)
2.3.4. Percabangan
Sintaks PHP dijalankan secara urut dari baris pertama hingga baris terakhir
secara urutan (sequence). Akan tetapi aplikasi yang dikembangkan dengan PHP
tidak selalu mempunyai struktur kontrol yang berurutan, sering kali urutan
perintah tidak harus dikerjakan apabila ada suatu kondisi yang tidak terpenuhi.
Berikut ini adalah daftar perintah yang dapat digunakan untuk melakukan
pengecekan kondisi:
Pernyataan IF
IF (ekspresi) {
Perintah; ………. }
Pernyataan ELSE
IF (ekspresi) {
15
Pernyataan IF – ELSEIF
IF (ekspresi)
Pernyataan SWITCH
SWITCH ($var)
(Sumber: Johan Firdaus – Dasar PHP, 2008)
2.3.5. Perulangan
PHP memungkinkan suatu perintah dilakukan berulang kali selama
kondisi blok perulangan bernilai benar (true) dan akan berhenti begitu kondisi
16
Pernyataan WHILE
WHILE (kondisi) {
Pernyataan FOR
FOR (inisialisasi; kondisi; increment) {
blok pernyataan; }
(Sumber: Johan Firdaus – Dasar PHP, 2008)
2.3.6. Session dan Cookies
Aplikasi yang melakukan otentikasi (login pemakainya) membutuhkan
model yang bukan connectionless agar semua aktifitas user dapat diketahui mulai
dari saat user login sampai dengan ketika user logout (keluar aplikasi). PHP
mempunyai mekanisme yang disebut session dan cookies. Session dan cookies
merupakan cara yang digunakan untuk mengetahui state atau koneksi dari seorang
pengunjung dari sebuah komputer sedang atau telah melakukan koneksi kepada
server atau belum.
Kondisi connectionless menyebabkan pengunjung tidak dapat dideteksi
dengan akurat, karena setiap kali akses dianggap sebagai pengunjung baru. Maka
17
akan dicatat kejadiannya, jika pengunjung melakukan akses lagi ke dalam server
maka tidak perlu dicatat sebagai pengunjung baru.
Session dan cookies berbeda dalam mengimplementasi data state atau
koneksi. Session akan mencatat data koneksi pada server sedangkan cookies
mencatat data pada client (browser).
(Sumber: Johan Firdaus – Dasar PHP, 2008)
2.3.7. Plugin
Plugin PHP adalah semacam fungsi atau fitur tambahan yang digabungkan
ke dalam script untuk menambah kemampuan dan kinerja dari sistem yang akan
dibuat.
2.3.7.1. JpGraph
JpGraph merupakan suatu library berbasis Object Oriented Programming
(OOP) yang ditulis dengan bahasa PHP. Library ini dapat digunakan untuk
membuat bermacam-macam grafik untuk keperluan penyajian data secara statistik
dengan cara yang cukup mudah dan perintah sesederhana mungkin.
JpGraph memiliki banyak sekali fitur dan kelebihan, antara lain:
Fleksibilitas dalam skala.
Mendukung pembuatan grafik berformat JPG, PNG dan GIF.
Mampu menampilkan grafik ke dalam website.
Mendukung penggunaan image sebagai latar belakang grafik.
18
Mendukung line plot, pie plot 2D dan 3D, bar plot, scatter plot, gantt chart
dan radar plot.
Mendukung pemberian legenda pada grafik.
Mampu menggabungkan beberapa grafik ke dalam satu grafik.
(Sumber: Aditus Consulting, 2009)
2.3.7.2. TinyMCE
TinyMCE adalah sebuah platform independen berbasis website yang
menggunakan Javascript HTML WYSIWYG editor control. Dirilis sebagai open
source di bawah LGPL oleh Moxiecode Systems AB. Plugin ini memiliki
kemampuan untuk mengkonversi HTML TEXTAREA fields atau HTML
elements menjadi editor instances. TinyMCE sangat mudah diintegrasikan ke
dalam Content Management Systems (CMS).
Kelebihan yang dimiliki oleh TinyMCE adalah:
Mudah diatur sesuai kebutuhan.
Dapat digunakan dalam berbagai macam browser.
Proses load sangat cepat.
AJAX compatible.
Mendukung berbagai macam bahasa internasional.
(Sumber: TinyMCE Official Website, 2010)
2.4. Content Management System
Content Management System (CMS) adalah sistem aplikasi yang
19
website, yang diatur oleh CMS adalah semua file yang membangun website
tersebut. Bahkan dalam perkembangannya, hal-hal yang bisa diatur oleh sebuah
CMS semakin banyak. Contohnya block atau module position, front page
manager, bahkan templates atau themes dari tampilan website.
Struktur CMS secara garis besar terdiri dari dua bagian, yaitu front end
dan back end. Front end adalah tampilan utama halaman website, yaitu halaman
yang diakses oleh pengunjung umum. Sedangkan back end adalah bagian
administrasi yang hanya bisa diakses sang pemilik website maupun orang-orang
yang telah ditunjuk untuk melakukan manajemen website. Istilah umumnya
adalah halaman administrator (administrator page).
(Sumber: Wikipedia – Sistem Manajemen Konten, 2010)
2.5. WAMP Server
WAMP Server adalah sebuah aplikasi yang dapat merubah personal
computer (PC) menjadi sebuah server. Kegunaan WAMP Server ini adalah
membuat local network sendiri di sebuah PC. Dengan begitu maka fase
pembuatan website dapat dilakukan secara offline di PC milik programmer.
Dengan di tempatkannya banyak file pendukung website di PC maka programmer
tidak perlu buka tutup internet. Hal ini menghemat waktu, tenaga dan biaya.
WAMP merupakan paket web server Apache, database server MySQL dan
bahasa pemrograman PHP yang berjalan di sistem operasi Windows. Dengan
mengemas keempat tools di atas dalam satu paket, maka WAMP menjadi pilihan
utama para programmer website.
20
2.6. MySQL
Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel- tabel
yang secara logik merupakan struktur dua dimensi terdiri dari baris (row atau
record) dan kolom (column atau field). Sedangkan dalam sebuah database dapat
terdiri dari beberapa table.
MySQL merupakan software resmi yang dikembangkan oleh perusahaan
Swedia bernama MySQL AB, yang awalnya bernama TcX Data Konsult AB.
Pada awalnya MySQL memakai nama mSQL atau “mini SQL” sebagai antarmuka
yang digunakan, namun ternyata dengan menggunakan mSQL itu ditemui banyak
hambatan, yaitu lambat dan tidak fleksibel. Oleh karena itu, Michael Widenius
berusaha mengembangkan interface yang akhirnya disebut MySQL. Kala itu,
MySQL didistribusikan secara khusus, yakni untuk keperluan nonkomersial
bersifat gratis, sedangkan untuk kebutuhan komersial diharuskan membayar
lisensi. Barulah sejak versi 3.23.19, MySQL dikategorikan software berlisensi
GPL, yakni dapat dipakai tanpa biaya untuk kebutuhan apapun. Hingga kini,
MySQL dapat dijalankan di berbagai sistem operasi misalnya Linux, Unix,
Windows. Kelebihan MySQL adalah pada kecepatan akses, biaya, konfigurasi,
ketersediaan source code karena MySQL dibawah Open Source License dan
menjadi database open source yang sangat populer. MySQL merupakan database
relational (RDBMS) yang mempunyai kemampuan yang sangat cepat untuk
menjalankan SQL dengan multithread dan multiuser. Oleh karena itu, dengan
dengan melihat begitu tingginya potensi MySQL untuk dijadikan sebagai database
yang andal, segala fitur pendukung terus dikembangkan agar penggunaan MySQL
21
Ada beberapa alasan mengapa MySQL menjadi database yang sangat
populer dan digunakan oleh banyak orang, antara lain ialah :
MySQL merupakan database yang memiliki kecepatan yang tinggi dalam
melakukan pemrosesan data, dapat diandalkan dan mudah digunakan serta
mudah dipelajari.
MySQL mendukung banyak bahasa pemrograman seperti Java, C, C++,
Phyton, dan PHP.
Koneksi, kecepatan dan keamanan membuat MySQL sangat cocok diterapkan
untuk pengaksesan database melalui internet dengan menggunakan bahasa
pemrograman Perl atau PHP sebagai interface-nya.
MySQL dapat menangani database dengan skala yang sangat besar, dapat
menampung 60 ribu tabel, dan juga bisa menampung 5 miliyar baris data,
selain itu batas indeks pada tiap tabel dapat menampung mencapai 32 indeks.
Dalam hal relasi antar tabel pada suatu database, MySQL menerapkan metode
yang sangat cepat yaitu dengan menggunakan metode one sweep multijoin.
MySQL sangat efesien dalam mengelola informasi yang kita minta yang
berasal dari banyak tabel sekaligus.
Multiuser, yaitu dalam satu database server pada MySQL dapat diakses oleh
beberapa user dalam waktu yang sama tanpa mengalami konflik atau crash.
Security yang dimiliki database MySQL dikenal baik karena memilki lapisan
serkuritas seperti subnetmask, nama host dan izin akses user dengan sistem
perizinan yang khusus serta password yang dimiliki setiap user dalam bentuk
data terenkripsi.
22
Beberapa tipe data dalam MySQL yang sering dipakai untuk membuat
suatu database:
Tipe data Keterangan
INT(M) [UNSIGNED] Angka
-2147483648 s/d 2147483647
FLOAT(M,D) Angka pecahan
DATE Tanggal Format : YYYY-MM-DD
DATETIME Tanggal dan Waktu
Format : YYYY-MM-DD HH:MM:SS CHAR(M) String dengan panjang tetap sesuai
yang
ditentukan. Panjangnya 1 – 255
VARCHAR(M) String dengan panjang yang berubah – ubah sesuai dengan yang disimpan saat itu. Panjangnya 1 – 255 karakter
BLOB Teks dengan panjang maksimum
65535 karakter
LONG BLOB Teks dengan panjang maksimum 4294967295 karakter
BAB III
ANALISA DAN PERANCANGAN SISTEM
Pada tahap analisa dan perancangan, Sistem Informasi Terintegrasi ini
akan digambarkan menggunakan DFD yang kemudian dilengkapi dengan CDM
dan PDM serta desain User Interface. Pengguna website akan dibagi menjadi 2
kelompok utama untuk memudahkan perancangan sistem, yaitu Admin dan User.
Admin adalah administrator website yang bertugas mengelola website, sedangkan
User adalah pengguna website yang mengakses Sistem Informasi Terintegrasi.
User dibagi lagi menjadi 3 level, yaitu level Pegawai, Manajer dan Direksi.
Pegawai adalah User yang bertugas mengisikan transaksi dan biaya ke dalam
database sistem. Pegawai adalah karyawan masing-masing urusan unit. Manajer
adalah kepala unit usaha. Sedangkan Direksi adalah pemimpin PT. Graha Sarana
Gresik. Manajer dan Direksi berkepentingan mendapatkan laporan kosolidasi
yang diolah dan disajikan oleh sistem.
3.1. Data Flow Diagram (DFD)
DFD level 0 Sitem Informasi Terintegrasi ini digambarkan dengan 1
process dan 5 external entity. Proses utama pada DFD level ini dinamakan Sistem
Informasi Terintegrasi, sebagaimana judul Tugas Akhir ini. Lima external entity
yang disebutkan tadi adalah Admin, User, Pegawai, Manajer dan Direksi. Admin
mengalirkan info ke dalam sistem, yang kemudian disajikan kepada User.
Sedangkan pegawai mengisikan data transaksi untuk diolah dan disajikan kepada
Manajer dan Direksi. Untuk lebih jelasnya dapat dilihat pada Gambar 3.1.
24
Gambar 3.1 DFD Level 0
Pada DFD Level 0 di atas, entitas Pegawai, Manajer dan Direksi
sebenarnya juga merupakan bagian dari entitas User. Hanya saja, baru pada DFD
Level 1 ketiga entitas tersebut dikenali dan diberikan hak akses oleh sistem.
izi n akses
laporan pi li han laporan
25
Segera setelah proses Login User dilakukan, User yang semula belum
dikenali langsung diberikan hak akses sesuai levelnya masing-masing. Dan
kemudian ketiga level user itu mengakses proses yang berberda, entitas Pegawai
mengakses proses Mengisi Transaksi, sedangkan entitas Manajer dan Direksi
mengakses proses Menyajikan Laporan. Sedangkan Admin mengakses proses
Mengelola Website.
DFD level 2 akan dibagi menjadi 2 bagian, yang pertama untuk membedah
lagi proses Login User dan Login Admin, kemudian yang lainnya untuk
membedah proses Mengisi Transaksi.
DFD Level 2 Login User memiliki 4 buah proses, yaitu proses Menerima
Username dan Password, proses Menyaring Character, proses Verifikasi
Username dan Password dan proses Memberi Hak Akses. Pada proses yang
pertama, entitas yang dikenali hanyalah User saja. User mengalirkan data
username beserta password ke dalam sistem dan diterima oleh proses Menerima
Username dan Password. Selanjutnya data username dan password yang telah
diinputkan User tersebut dikirim ke proses kedua, yaitu Menyaring Character.
Proses ini bertujuan menyaring karakter berbahaya yang mungkin disisipkan di
dalam string username dan password yang diinputkan oleh User. Hal ini berkaitan
erat dengan security website. Kemudian baru hasil filterisasinya dialirkan ke
proses Verifikasi Username dan Password. Di proses inilah terletak inti dari Login
User. Username dan password hasil filterisasi pada proses sebelumnya itu
kemudian dicocokkan dengan username dan password yang tersimpan pada data
storage User. Karena password yang disimpan di dalam data storage sudah dalam
26
Gambar 3.3 DFD Level 2 Login User
Pemberian privilage atau hak akses kepada entitas User membuat entitas
User dikenali sebagai salah satu dari entitas Pegawai, Manajer atau Direksi. Hal
itu bisa terjadi karena di dalam data storage User telah tersimpan informasi level
User yang menandakan apakah pemilik username tersebut masuk dalam level
Pegawai, Manajer atau Direksi. Begitu entitas User tersebut memiliki hak akses
tertentu, maka selanjutnya mereka tidak akan dianggap sebagai User biasa lagi,
melainkan diasumsikan sebagai salah satu dari entitas Pegawai, Manajer atau
Direksi.
DFD Level 2 Login Admin tidak jauh berbeda dengan DFD Level 2 Login
User di atas. Jika DFD Level 2 Login User terdiri atas 4 buah proses, maka pada
27
Menerima Username dan Password, proses Menyaring Character dan proses
Verifikasi Username dan Password. Untuk lebih jelasnya dapat dilihat pada
Gambar 3.4 berikut ini.
izin akses
Gambar 3.4 DFD Level 2 Login Admin
DFD Level 2 Mengisi Transaksi terdiri atas 2 proses, yaitu Mengisi Form
Transaksi dan Menyimpan Data Transaksi. Proses Mengisi Transaksi dilakukan
oleh Pegawai, kemudian data transaksi yang dimasukkan tersebut dialirkan ke
proses selanjutnya, yaitu Menyimpan Data Transaksi. Proses ini mengakses data
storage Transaksi. MENYIMPAN DAT A
TRANSAKSI
28
3.2. Data Model
Tahap Data Model ini akan dibagi menjadi 2 bagian, yaitu Conceptual
Data Model (CDM) dan Physical Data Model (PDM). CDM untuk Sistem
29
30
31
CDM di atas terdiri atas 16 buah tabel. Pembahasan bagian CDM ini akan
dibagi menjadi bagian untuk menekan tingkat kerumitannya. Bagian yang pertama
terdiri atas 2 buah tabel, yaitu Admin dan Info. Kedua tabel ini erat kaitannya
dengan tugas Admin membuat info atau pengumuman yang kemudian akan
disajikan pada front end website. Tabel Admin menyimpan semua informasi
administrator website dan digunakan untuk kepentingan Login Admin. Tabel ini
berelasi 1 to many ke tabel Info.
Bagian selanjutnya terdiri atas 3 buah tabel, yaitu User, Unit_Usaha dan
Urusan_Unit. Sama seperti tabel Admin, tabel User juga menyimpan semua
informasi terkait user yang mengakses Sistem Informasi Terintegrasi ini, termasuk
di dalamnya level_user. Field level_user inilah yang merupakan bentuk nyata dari
hak akses yang banyak disinggung dalam sub bab DFD di atas. Tabel User
berkaitan erat dengan tabel Unit_Usaha danUrusan_Unit, karena setiap user
dikelompokkan ke dalam unit usaha dan urusan unit tertentu di dalam setiap
proses bisnis yang terjadi sehari-harinya.
Dua bagian sisanya akan membahas seputar transaksi dan biaya. Yang
dimaksud dengan istilah transaksi di sini adalah setiap transaksi yang dilakukan
oleh masing-masing urusan unit dan mendatangkan pendapatan bagi perusahaan.
Sedangkan istilah biaya digunakan untuk beban yang harus dibayarkan
perusahaan setiap bulannya.
Tabel Biaya dan Keluar berelasi many to 1 karena tabel Keluar berisi
kategori yang digunakan untuk mengelompokkan biaya. Jadi untuk beban yang
dibayar oleh perusahaan setiap bulannya, akan dimasukkan dalam kategori
32
Tabel Transaksi merupakan tabel yang paling banyak berelasi dengan
tabel-tabel lainnya. Pertama-tama tabel ini berelasi many to 1 dengan tabel
Member. Hal ini menggambarkan informasi membership akan disimpan dalam
setiap transaksi yang dilakukan oleh seorang member perusahaan.
Kemudian tabel Transaksi juga berelasi dengan 6 tabel detail transaksi,
yaitu Detail_Hall, Detail_Perdagangan, Detail_Kantin, Detail_Puri,
Detail_Laundry dan Detail Travel. Keenam tabel detail ini akan digunakan untuk
menyimpan semua informasi detail dari transaksi yang dilakukan. Karena berelasi
1 to many pada keenam tabel tersebut, maka pada setiap transaksi memungkinkan
penjualan lebih dari 1 barang atau jasa. Alasan mengapa sampai diperlukan 6
buah tabel untuk menyimpan informasi transaksi adalah karena setiap urusan unit
memiliki bidang yang berbeda-beda, jadi tentu saja membutuhkan field yang
berbeda-beda pula. Misalnya pada urusan Laundry tidak akan memerlukan field
check_in & check_out seperti yang ada pada urusan Puri. Sehingga sangat tidak
memungkinkan apabila keenam bidang yang digeluti oleh urusan unit PT. Graha
Sarana Gresik dipaksakan dalam sebuah tabel saja.
Masing-masing tabel detail tersebut juga berelasi dengan tabel Masuk.
Tabel Masuk ini memiliki fungsi yang sama persis dengan tabel Keluar pada
konteks biaya. Tabel Masuk ini menyimpan informasi kategori yang digunakan
untuk mengelompokkan transaksi yang dilakukan. Perbedaannya terletak pada
relasi tabel Masuk dengan tabel Urusan_Unit. Hal ini menandakan bahwa kategori
masing-masing urusan unit berbeda-beda. Sedangkan dalam tabel Keluar tidak
berelasi dengan tabel Urusan_Unit, dikarenakan kategori biaya diseragamkan
33
PDM hasil generate dari CDM yang telah dibahas panjang lebar di atas
dapat dilihat pada Gambar 3.8 berikut ini.
34
3.3. Desain User Interface
Desain user interface merupakan hal yang sangat penting dalam tahap
analisa dan perancangan sistem. Terlebih lagi jika sarana yang dibangun adalah
website. Hal ini dikarenakan user interface merupakan penghubung antara sistem
dengan end user.
Halaman Utama adalah halaman yang akan pertama kali menyambut
semua kelompok pengguna website. Karena website yang dikembangkan ini
adalah website internal, maka desain Halaman Utama tentunya tidak sesemarak
halaman utama seperti website pada umumnya. Form login diletakkan di tempat
yang mudah terlihat. Tepat di bawah form login ditampilkan menu dan info
terbaru yang diinputkan oleh Admin.
35
Setelah berhasil melakukan proses login, maka user akan diarahkan ke
Halaman User. Menu-menu yang disediakan antara lain Analisa, Laporan,
Advance Report, Transaksi, Biaya, Kategori, Membership dan Profil.
Gambar 3.10 Desain Halaman User
Untuk mengakses Halaman Admin tidak bisa melalui form login yang ada
pada Halaman Utama, melainkan melalui back-end website seperti yang
ditunjukkan pada Gambar 3.11 berikut ini.
36
Jika berhasil Login, maka tampilan Halaman Admin akan seperti pada
Gambar 3.12 berikut ini.
Gambar 3.12 Desain Halaman Admin
Menu-menu yang disediakan pada Halaman Admin ini antara lain
Manajemen Admin, Manajemen User, Edit Menu Admin, Edit Menu User dan
BAB IV
HASIL DAN PEMBAHASAN
Sistem Informasi Terintegrasi berbasis website ini ditulis dengan bahasa
PHP dan membutuhkan web server serta database server dalam proses
implementasinya. Adapun web server yang digunakan dalam Tugas Akhir ini
adalah WAMP Server dan MySQL sebagai database server. Sistem yang
dibangun ini terdiri atas dua unsur utama, user interface dan basis data. User
interface direpresentasikan oleh halaman-halaman website yang digunakan.
Sedangkan data yang diolah dan disajikan berasal dari database. Karena itu,
uraian pada bab ini akan dibagi berdasarkan kedua unsur tersebut.
4.1. Website
Website penyajian data akademik dan keuangan mahasiswa ini terdiri atas
tiga halaman utama, yaitu Halaman Utama (front-end), Halaman User dan
Halaman Admin. Halaman Utama adalah halaman yang pertama kali diakses oleh
pengguna website dan di sana terdapat form login untuk User. Halaman User yang
merupakan inti dari Sistem Informasi Terintegrasi ini. Halaman User bisa diakses
apabila proses login telah berhasil. Sedangkan Halaman Admin adalah halaman
bagi administrator website untuk mengelola content website. Halaman Admin
diakses melalui back-end.
4.1.1. Halaman Utama
Halaman Utama memiliki tampilan seperti yang ditunjukkan pada
37
YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
37
Gambar 4.1 berikut ini.
Gambar 4.1 Halaman Utama
Form Login dibuat dengan sintaks form PHP yang dipadukan dengan
sintaks HTML. Ketika tombol Login ditekan, maka module cek_login akan
diakses dan inputan User akan dikirim dengan metode POST. Pada module
cek_login, inputan User tadi akan diperiksa dulu, apakah formatnya sudah benar
atau belum dengan menggunakan fungsi ctype_alnum() yang akan memberikan
nilai 0 atau FALSE apabila inputan mengandung karakter selain huruf dan angka.
Hal ini akan dibahas lebih lanjut pada sub bab Security.
Setelah lolos dari filterisasi di atas, barulah username dan password yang
38
dalam database. Proses pemeriksaan ini sekaligus mengambil semua data User
dari database, yang apabila proses login ini berhasil, semua data tersebut akan
langsung didaftarkan pada session untuk memberikan hak akses pada User
tersebut. Untuk lebih jelasnya dapat dilihat pada potongan script berikut ini:
$password=md5($_POST[password]);
$login=mysql_query("select * from user where
kode_user='$_POST[username]' and password_user='$password'"); $ketemu=mysql_num_rows($login);
mysql_query("update user set session_user='$id_session' where kode_user='$r[kode_user]'");
header('location:user/media.php?module=home'); }
else
echo
"<h1>Login Gagal!</h1>
<p align=justify>
Username dan password yang Anda masukkan tidak cocok! </p>";
Blok pernyataan di dalam if($ketemu>0) merupakan proses pemberian hak
akses pada User. Fungsi session_regenerate_id() adalah untuk menghasilkan id
session yang baru. Kode session yang baru itu akan digunakan sebagai tanda
pengenal yang lebih unik dari sekedar username. Jika mengandalkan username
saja, bahayanya adalah username tersebut dapat disalahgunakan oleh User lain.
Karena itulah digunakan kode session yang merupakan karakter acak. Kode
session lama yang ada di dalam database langsung di-update dengan yang baru
39
Statement header(’location:user/media.php?module=home’); di dalam
potongan script di atas menandakan apabila user berhasil melakukan proses Login
User, maka dia akan diarahkan pada halaman lain yang merupakan Halaman User.
4.1.2. Halaman User
Halaman User adalah halaman bagi User yang telah berhasil melakukan
proses Login User. Halaman User ini digunakan oleh tiga macam level User, yaitu
Pegawai, Manajer dan Direksi. Tampilan Halaman User akan seperti Gambar 4.2
berikut ini.
Gambar 4.2 Halaman User
Menu-menu yang ada di halaman ini tidak semuanya dapat diakses oleh
setiap level user. Misalnya menu Analisa tidak dapat diakses oleh User dengan
level Pegawai. Hal itu dikarenakan halaman Analisa memang didesain khusus
untuk kepentingan pengambilan keputusan oleh Top Manager. Maka dari itu
pembatasan akses User dilakukan di setiap halaman menu yang ada. Perwujudan
pembatasan akses memanfaatkan statement IF dan dapat dilihat pada potongan
40
elseif($_SESSION[level_user]=='manager')
header('location:?module=analisa&act=grafik_unit'); elseif($_SESSION[level_user]=='employee')
echo "Anda tidak berhak untuk mengakses halaman ini!";
Jika level User adalah Manajer, maka langsung diarahkan ke bagian script
yang lain, yaitu grafik_unit. Jika bukan, maka akan muncul peringatan, “Anda
tidak berhak untuk mengakses halaman ini!” seperti yang terlihat pada potongan
script di atas.
Untuk mendukung kerapian file yang digunakan, terutama untuk
menu-menu yang ada pada Halaman User, maka potongan script di bawah ini sangat
besar manfaatnya.
$module=$_GET[module];
$query="SELECT * FROM menu_user ORDER BY urutan_menu"; $mssql=mssql_query($query);
while($data=mssql_fetch_row($mssql))
{ if($module==substr(($data[2]),8))
include "modul/modul_".$module."/".$module.".php";}
Dengan statement GET yang ada di atas, maka setiap link menu yang
ditekan oleh User akan dibedakan berdasarkan module-nya. Jika module-nya
sudah didapatkan, maka akan dicocokkan dengan daftar menu yang ada di dalam
tabel menu_user. Kemudian setelah ditemukan yang cocok dengan module
tersebut, maka statement include akan dieksekusi. Hal ini berarti setiap script
menu terletak di dalam directory modul/modul_module/module.php. Dengan cara
ini, maka setiap script tertata rapi di dalam folder modul dan terpisah-pisah
berdasarkan nama module-nya. Hal ini juga memudahkan apabila ada
penambahan menu di kemudian hari, karena programmer hanya perlu
menambahkan data module-nya di tabel menu_user dan meletakkan script
menunya pada folder modul. Selain itu, agar menu barunya muncul maka di tabel
41
Menu Analisa merupakan menu spesial bagi Direksi dan Manajer. Dari
sisi pemrograman sedikit berbeda dengan halaman menu yang lain karena analisa
yang ditampilkan disajikan menggunakan plugin PHP yang memang khusus untuk
chart, yaitu JPGraph.
Gambar 4.3 Hasil Plugin JPGraph
Untuk menghasilkan bar chart seperti di atas, diperlukan script seperti
berikut ini:
$graph = new Graph(750,300,'auto'); $graph->SetScale("textlin"); $b1plot = new BarPlot($datay1);
$b2plot = new BarPlot($datay2);
42
$gbplot=new GroupBarPlot(array($b1plot,$b2plot)); $gbplot->SetWidth(0.8);
$graph->Add($gbplot);
$graph->xaxis->SetTickLabels($datax); $graph->xaxis->title->Set("Unit");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->Stroke();
Script di atas berbasis OOP dan membutuhkan file library bawaan
JPGraph lainnya. Di atas terlihat object bernama Graph yang didefinisikan dengan
new. Kemudian ditentukan skala dan marginnya. BarPlot adalah diagram batang.
Statement new barPlot berarti $bplot diplot sebagai diagram batang baru yang
didefinisikan berisi $datay. Variabel $datay ini adalah array yang menampung
data-data yang akan ditampilkan dalam bentuk grafik. $graph->Add($bplot);
berarti $bplot diletakkan pada object $graph. Dan untuk menampilkan chart harus
dengan statement $graph->Stroke();. Untuk data yang disajikan akan dibahas
lebih lanjut pada sub bab Database. Demikian pula untuk Menu Laporan,
Advance Report, Transaksi dan Biaya.
Menu Profile adalah menu bagi User untuk merubah informasi profil
mereka. Informasi yang dimaksud melingkupi Password, Nama dan Email, seperti
pada Gambar 4.4 berikut ini.
43
Form Profile ini sangat terbuka dengan kemungkinan injeksi oleh user
yang tidak bertanggung jawab. Karena itu semua kolom isian yang disediakan di
atas disaring lagi dengan fungsi anti_injeksi(). Fungsi ini akan dibahas lebih lanjut
pada sub bab Security.
Begitu lolos dari proses penyaringan, maka data-data yang telah diisikan
oleh User akan disimpan ke dalam tabel user. Karena terdapat kolom password
yang boleh diisi boleh tidak, maka statement update dibedakan menjadi dua
bagian. Untuk lebih jelasnya dapat melihat potongan script berikut ini.
if(empty($_POST[password_user]) && empty($_POST[password_confirm]) ){
mysql_query("UPDATE user SET nama_user = '$nama_user', email_user = '$email_user'
WHERE session_user = '$_POST[session_user]'");
header('location:?module=profile');
echo “Password hanya boleh berisi huruf dan angka."; elseif(strlen($password_user)<4)
echo "Minimal password terdiri atas 4 karakter."; else
{
$enkripsi=md5($password_user); mysql_query("UPDATE user SET
password_user = '$enkripsi',
nama_user = '$nama_user',
email_user = '$email_user'
WHERE session_user = '$_POST[session_user]'"); header('location:?module=profile');
} }
Jika kolom password dan confirm password kosong, maka query update
hanya dilakukan terhadap kolom nama_user dan email_user. Sedangkan jika tidak
kosong, maka password dicocokkan dulu dengan confirm password. Jika sama,
barulah tabel user di-update dengan query yang nyaris sama, hanya saja ditambah
44
4.1.3. Halaman Admin
Halaman Admin adalah halaman bagi administrator website untuk
mengelola content website. Halaman ini diakses melalui back-end seperti konsep
CMS pada umumnya.
Gambar 4.5 Back-end Admin
Script yang digunakan untuk membuat form Login Admin di atas sama
dengan script form Login User. Jika Admin berhasil melewati proses login ini,
maka Admin akan diarahkan pada Halaman Admin yang berfungsi sebagai sarana
pengelolaan content website, terutama konten yang disajikan pada User. Hal itu
ditunjukkan dengan menu-menu yang tersedia bagi Admin, seperti yang terlihat
pada Gambar 4.6 berikut ini.
45
Sama seperti Halaman User, pada Halaman Admin ini juga terdapat lebih
dari satu level admin yang bisa mengaksesnya, yaitu Super Administartor dan
Administrator. Super Administrator di sini “berkuasa” penuh atas segala
pengaturan content website. Sedangkan Administrator hanya dapat menambahkan
User baru dan membuat info yang ditampilkan di Halaman Utama. Cara
membedakan menu kedua kelompok user itu sama dengan potongan script yang
digunakan pada pembatasan akses Halaman User.
Dalam setiap menu yang disediakan bagi Admin, terdapat 3 macam aksi
yang mungkin dilakukan oleh Admin, yaitu tambah, ubah dan hapus. Tambah
diwakili oleh tombol Tambah, sedangkan ubah dan hapus diwakili oleh icon,
seperti yang terlihat pada Gambar 4.7 berikut ini.
Gambar 4.7 Menu Admin Manager
Pada fitur tambah, maka script yang dijalankan berisi statement insert.
Statement update untuk ubah dan delete untuk hapus. Masing-masing menu
mengakses tabelnya sendiri-sendiri. Hal ini akan dibahas pada sub bab Database.
4.1.4. Koneksi Database
Script yang digunakan untuk melakukan menghubungkan PHP dengan
46
<?php
$server = "localhost"; $username = "root"; $password = "";
$database = "dbgraha";
mysql_connect ($server,$username,$password) or die ("gagal"); mysql_select_db ($database)or die ("Database tidak ditemukan"); ?>
Nama server MySQL yang diakses adalah localhost. Menggunakan login
root dan melakukan koneksi dengan statement mysql_connect. Setelah terkoneksi,
langkah berikutnya adalah memilih database aktif yang terdapat di dalam server
dengan statement mysql_select_db. Dalam script di atas, terlihat bahwa database
dbgraha yang merupakan database inti website ini diatur sebagai default
database. Nantinya, ketika diperlukan pengaksesan ke database yang lain, pada
script tersebut cukup disertakan statement mysql_select_db.
4.1.5. Security
Dengan cukup banyaknya kolom isian yang tersedia bagi User, baik pada
Halaman Utama, Halaman User maupun Halaman Admin, maka security
merupakan aspek yang harus diberi perhatian lebih. Karena itulah dalam setiap
script yang mengandung field input bagi User, minimal harus disaring dengan
salah satu fungsi ctype. Misalnya untuk harga atau jumlah. Karena keduanya
memiliki karakter yang sama, yaitu hanya boleh terdiri atas angka saja, maka field
inputannya harus disaring terlebih dulu dengan ctype_digit(). Fungsi ini akan
menghasilkan nilai 0 atau False apabila di dalam string terdapat karakter selain
angka. Demikian halnya untuk ctype_alnum() untuk angka dan huruf saja. Fungsi
ctype_alnum() digunakan untuk menyaring username dan password, baik ketika
47
Selain fungsi ctype, untuk menangani injeksi-injeksi yang marak di
internet, maka digunakan fungsi_anti_injeksi yang dikembangkan sendiri selama
pengerjaan Tugas Akhir ini. Fungsi ini merupakan kombinasi beberapa fungsi
PHP yang memang ditujukan untuk penanganan isi string yang cenderung
berbahaya. Script fungsi_anti_injeksi adalah sebagai berikut:
<?php
function anti_injection($data) {
$filter=mysql_real_escape_string(stripslashes(strip_tags(htm lspecialchars($data,ENT_QUOTES))));
return $filter;
}
Fungsi htmlspecialchars() bertujuan untuk mengkonversi semua karakter
spesial yang terkandung di dalam $data, yang merupakan parameter. Misalnya
karakter ‘&’ dikonversi menjadi ‘&’. Kemudian strip_tags() bertujuan untuk
menonaktifkan tag HTML atau tag PHP. Seringkali injeksi disisipkan di dalam
tag-tag HTML atau PHP. Fungsi stripslashes() berguna untuk menghapus semua
tanda double backslash \\. Dan fungsi mysql_real_escape_string() berguna untuk
mengamankan query dari karakter seperti \x00, \n, \r, ‘, “, \x1a.
4.2. Database
Pembahasan pada sub bab Database ini akan dibagi-bagi sesuai dengan
menunya masing-masing dengan tujuan mempermudah pemahaman akan
penggunaan setiap tabel.
4.2.1. Menu Analisa
Untuk menampilkan grafik perbandingan pendapatan dan pengeluaran