SISTEM INFORMASI TERINTEGRASI PADA PT. GRAHA SARANA GRESIK.

(1)

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


(2)

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

Ir. Sutiyono, MT NPT. 030 191 025


(3)

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,

Yusron Rijal, S.Si, MT NPT. 0715 067 901


(4)

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

Doddy Riwandono, S.Kom NIP. 37805 070 218


(5)

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.


(6)

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


(7)

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


(8)

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


(9)

v

This book is dedicated to

Elia “Puss” Patrick Lipesik


(10)

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


(11)

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


(12)

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 ………... Gambar 5.7 Transaksi Puri ………...

10 11 11 11 24 24 26 27 27 28 29 32 33 34 34 35 37 39 41 42 44 44 45 52 53 53 54 54 55 55 viii


(13)

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 ………... Gambar 5.22 Pesan Kesalahan Masukan Terlalu Panjang ………...

56 56 57 57 58 58 58 59 59 59 61 62 62 63 63


(14)

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 perusahaannya. Sedangkan Laundry bergerak dalam bidang jasa pencucian


(15)

2

YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


(16)

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 setiap bulannya seharusnya memiliki suatu sistem informasi utama yang


(17)

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, yaitu:


(18)

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 ini, perumusan masalah yang diangkat, ruang lingkup, sistematika,


(19)

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


(20)

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 kepentingan pengambilan keputusan.


(21)

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


(22)

8

YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


(23)

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 departemen yang terkait. Tujuan utamanya adalah meramalkan bagaimana


(24)

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 aliran data dari proses-proses yang saling berhubungan. DFD menggambarkan


(25)

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.


(26)

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 (Sumber: Digital Library UK Petra, 2008)


(27)

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 cara sebagai berikut:


(28)

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 (berupa nama kelas object).


(29)

14

<?php class objek {

function counter ( ) {

return 5; }

function pesan ( ) {

echo “pesan”; }

}

$test = new objek; $test -> pesan ( ); ?>

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

Perintah; ……….


(30)

15 } ELSE { Perintah; ………. }

Pernyataan IF – ELSEIF IF (ekspresi) { Perintah; ………. } ELSEIF (ekspresi) { Perintah; ………. } ELSE { Perintah; ………. }

Pernyataan SWITCH SWITCH ($var) { CASE nilai1 :

Perintah_nilai1; Break;

CASE nilai2 :

Perintah_nilai2; Break;

[DEFAULT :

Perintah nilai_default; Break;] }

(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 bernilai salah (false). Berikut ini adalah daftar perintah perulangan:


(31)

16

Pernyataan WHILE WHILE (kondisi) {

blok pernyataan; }

Pernyataan DO – WHILE DO

{

blok pernyataan; }

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 dengan adanya session dan cookies maka setiap pengunjung dari setiap komputer


(32)

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.


(33)

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 digunakan untuk mengatur dokumen dan content. Dalam hubungannya dengan


(34)

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.


(35)

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 dapat lebih optimal lagi.


(36)

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.


(37)

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


(38)

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.


(39)

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

i zin akses

username password username password username passsword hak akses hak akses pegawai hak akses

manajer hak akses

di reksi

pil ihan menu

modul menu form l ogi n url url info terbaru ADMIN USER

PEGAWAI MANAJER DIREKSI

1 MENGAKSES WEBSIT E 2 LOGIN USER 5 MENGAKSES BACK-END 6 LOGIN ADMIN 3 MENGISI TRANSAKSI 4 MENYAJIKAN LAPORAN 7 MENGELOLA WEBSIT E 3 ADMIN

2 USER username

password

data transaksi

pi li han

laporan pi li han laporan

l aporan

l aporan

1 INFO

i nfo terbaru

4 MENU ADMIN

modul menu

5 TRANSAKSI

data

transaksi data

transaksi


(40)

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 bentuk enkripsi, maka password hasil filterisasi tersebut juga dienkripsi.


(41)

26 hak akses izin akses username password username passsword hak akses hak akses pegawai hak akses manajer

hak akses direksi USER

PEGAWAI MANAJER DIREKSI

21 MENERIMA USERNAME DAN PASSWORD 23 VERIFIKASI USERNAME DAN PASSWORD 2 USER 22 MENYARING CHARACTER username password hasil filter username password 24 MEMBERI HAK AKSES

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 DFD Level 2 Login Admin hanya terdiri atas 3 proses saja, yaitu proses


(42)

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 username password username passsword ADMIN 61 MENERIMA USERNAME DAN PASSWORD 63 VERIFIKASI USERNAME DAN PASSWORD 3 ADMIN 62 MENYARING CHARACTER username password hasil filter username password

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. report data transaksi PEGAWAI 31 MENGISI FORM TRANSAKSI 32 MENYIMPAN DAT A

TRANSAKSI

5 T RANSAKSI data transaksi

data transaksi


(43)

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 Informasi Terintegrasi ini dapat dilihat pada Gambar 3.6 dan 3.7 di bawah ini.


(44)

29


(45)

30


(46)

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 tertentu, misalnya biaya pegawai, bahan dan utilitas dan lain-lain.


(47)

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 untuk semua urusan unit.


(48)

33

PDM hasil generate dari CDM yang telah dibahas panjang lebar di atas dapat dilihat pada Gambar 3.8 berikut ini.

ADMIN kode_admin password_admin nama_admin email_admin session_admin level_admin blokir_admin varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(15) char(1) <pk> INFO kode_info kode_admin judul_info isi_info gambar_info tanggal_dibuat int varchar(50) varchar(50) text varchar(100) timestamp <pk> <fk> USER kode_user kode_urusan kode_unit password_user nama_user email_user session_user level_user blokir_user varchar(50) varchar(15) varchar(10) varchar(50) varchar(50) varchar(50) varchar(50) varchar(15) char(1) <pk> <fk2> <fk1> UNIT_USAHA kode_unit nama_unit varchar(10) varchar(25) <pk> URUSAN_UNIT kode_urusan kode_unit nama_urusan potongan_urusan varchar(15) varchar(10) varchar(50) int <pk> <fk> TRANSAKSI kode_transaksi kode_user kode_unit kode_member kode_urusan atas_nama t t l d t il ... int varchar(50) varchar(10) varchar(10) varchar(15) varchar(50) i t <pk> <fk3> <fk2> <fk1> <fk4> MEMBER kode_member nomor_ktp nama_member alamat_member telepon_member urutan_member varchar(10) varchar(25) varchar(25) varchar(50) varchar(20) int <pk> MASUK kode_masuk kode_urusan nama_masuk harga_masuk varchar(20) varchar(15) varchar(50) int <pk> <fk> BIAYA kode_biaya kode_user kode_urusan kode_keluar kode_unit keterangan_biaya jumlah_biaya harga_biaya nominal_biaya tanggal_biaya tanggal_input_biaya int varchar(50) varchar(15) varchar(5) varchar(10) varchar(100) int int int date timestamp <pk> <fk4> <fk3> <fk1> <fk2> KELUAR kode_keluar nama_keluar varchar(5) varchar(50) <pk> DETAIL_TRAVEL kode_transaksi kode_masuk keterangan_travel urutan_travel jumlah_tiket harga_tiket nominal_travel kota_keberangkatan kota_tujuan jenis kelas atas_nama_tiket tanggal_keberangkatan tanggal_kedatangan int varchar(20) varchar(100) int int int int varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) datetime datetime <fk2> <fk1> DETAIL_PURI kode_transaksi kode_masuk keterangan_puri urutan_puri res_dari_tanggal res_sampai_tanggal check_in check_out lama_inap tarif_inap nominal_puri int varchar(20) varchar(100) int date date datetime datetime int int int <fk1> <fk2> DETAIL_HALL kode_transaksi kode_masuk keterangan_hall urutan_hall sewa_dari_tanggal sewa_sampai_tanggal lama_sewa harga_sewa nominal_hall tanggal_lunas_hall int varchar(20) varchar(100) int date date int int int datetime <fk1> <fk2> DETAIL_PERDAGANGAN kode_masuk kode_transaksi keterangan_dagang urutan_dagang jumlah_dagang jenis_dagang harga_dagang nominal_dagang tanggal_lunas_dagang varchar(20) int varchar(100) int int varchar(25) int int datetime <fk2> <fk1> DETAIL_LAUNDRY kode_transaksi kode_masuk keterangan_laundry urutan_laundry jumlah_laundry harga_laundry nominal_laundry tanggal_pengambilan int varchar(20) varchar(100) int int int int datetime <fk1> <fk2> DETAIL_KANTIN kode_transaksi kode_masuk keterangan_kantin urutan_kantin jumlah_kantin harga_kantin nominal_kantin int varchar(20) varchar(100) int int int int <fk1> <fk2>


(49)

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.


(50)

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.


(51)

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


(52)

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


(53)

37

YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


(54)

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 dimasukkan oleh User tadi diperiksa apakah cocok atau tidak dengan yang ada di


(55)

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); $r=mysql_fetch_array($login); if($ketemu>0) { session_start(); session_regenerate_id(); $id_session=session_id(); $_SESSION[kode_user]=$r[kode_user]; $_SESSION[password_user]=$r[password_user]; $_SESSION[nama_user]=$r[nama_user]; $_SESSION[level_user]=$r[level_user]; $_SESSION[kode_unit]=$r[kode_unit]; $_SESSION[kode_urusan]=$r[kode_urusan]; $_SESSION[session_user]=$id_session; $_SESSION[login_date]=date("d-m-Y"); $_SESSION[login_time]=date("H:i:s");

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 saja di-regenerate.


(56)

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 script berikut ini:


(57)

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 menu_user pun harus ditambahkan link menunya.


(58)

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

$graph->img->SetMargin(70,30,20,40); $graph->yaxis->SetTitleMargin(45); $graph->yaxis->scale->SetGrace(30); $graph->xaxis->SetTickSide(SIDE_DOWN); $graph->yaxis->SetTickSide(SIDE_LEFT); $b1plot = new BarPlot($datay1);

$b2plot = new BarPlot($datay2);

$b1plot->SetCSIMTargets($targ,$alts); $b2plot->SetCSIMTargets($targ,$alts); $b1plot->SetFillColor("orange"); $b2plot->SetFillColor("purple"); $b1plot->SetShadow();

$b2plot->SetShadow();

$b1plot->value->SetFormat("%d",70); $b2plot->value->SetFormat("%d",70);

$b1plot->value->SetFont(FF_ARIAL,FS_NORMAL,6); $b2plot->value->SetFont(FF_ARIAL,FS_NORMAL,6); $b1plot->value->SetColor("blue");

$b2plot->value->SetColor("red"); $b1plot->value->Show();

$b2plot->value->Show();

$b1plot->SetLegend("Pemasukan"); $b2plot->SetLegend("Pengeluaran");


(59)

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.


(60)

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

else {

if($password_user<>$password_confirm)

echo "Password tidak cocok.";

elseif(!ctype_alnum($password_user))

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 hasil enkripsi password untuk kolom password_user.


(61)

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.


(62)

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 MySQL adalah sebagai berikut:


(63)

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 proses pendaftaran maupun login.


(64)

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 ‘&amp’. 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 perusahaan dari masing-masing unit digunakan query berikut:


(65)

48

SELECT sum(nominal_transaksi) AS nominal FROM transaksi

where kode_unit='$r[kode_unit]' and date_format(tanggal_input,'%m-%Y')='$bulan_tahun'

SELECT sum(nominal_biaya) AS nominal FROM biaya

where kode_unit='$r[kode_unit]' and date_format(tanggal_biaya,'%m-%Y')='$bulan_tahun'

Query yang peertama mengakses tabel transaksi dan menghitung total pendapatan perusahaan selama bulan tertentu, sedangkan query kedua menghitung total pengeluaran perusahaan. $r[kode_unit] adalah kode unit usaha yang dihasilkan dari perulangan while. Pada menu-menu grafik yang lain, secara garis besar query-nya sama dengan yang di atas, hanya saja pembatasan where-nya berbeda, disesuaikan dengan kebutuhan grafik antara bulan tertentu sampai bulan tertentu atau antara tahun tertentu hingga tahun tertentu.

4.2.2. Menu Laporan dan Advance Report

Kedua menu ini sebenarnya memiliki query yang nyaris sama persis dengan query menu Analisa di atas. Hanya saja, jika pada menu Analisa hasil eksekusi query tadi disajikan dalam bentuk grafik batang, maka dalam kedua menu ini hasilnya disajikan dalam bentuk laporan keuangan seperti pada umumnya. Perbedaan antara menu Laporan dan Advance Report adalah pada statement where-nya. Hal itu dikarenakan pada menu Laporan, secara otomatis laporan konsolidasi yang ditampilkan adalah laporan yang terjadi selama bulan ini. Sedangkan pada menu Advance Report, User dapat menentukan laporan antara tanggal tertentu hingga tanggal tertentu yang ingin ditampilkan. Query adalah sebagai berikut:

SELECT SUM(nominal_transaksi) AS NOMINAL FROM transaksi WHERE date_format(tanggal_input,'%m-%Y')='$bulan_aktif'


(66)

49

SELECT SUM(nominal_biaya) AS NOMINAL FROM biaya WHERE date_format(tanggal_biaya,'%m-%Y')='$bulan_aktif'

AND kode_keluar='$kode_keluar'

Sama seperti menu Analisa, query yang pertama untuk menghitung total pendapatan dan yang kedua untuk mendapatkan total pengeluaran. Variabel $bulan_aktif menyimpan informasi bulan yang diambil dari tanggal sistem. $kode_keluar dihasilkan dari perulangan while dan akan mneghasilkan total pengeluaran yang dibagi-bagi menurut kategori biaya dari tabel Keluar.

Pada menu Advance Report, query yang digunakan adalah:

SELECT SUM(nominal_transaksi) AS NOMINAL FROM transaksi

WHERE tanggal_input BETWEEN '$tanggal_aktif' && '$tanggal_aktif 2'

SELECT SUM(nominal_biaya) AS NOMINAL FROM biaya WHERE kode_keluar='$kode_keluar'

AND tanggal_biaya BETWEEN '$tanggal_aktif' && '$tanggal_aktif2'

Variabel $tanggal_aktif adalah tanggal yang ditentukan oleh User sebagai tanda awal mulainya laporan. Sedangkan $tanggal_aktif2 adalah tanggal yang ditentukan sebagai tanggal akhir laporan.

4.2.3. Menu Transaksi

Pada menu Transaksi ini, terdapat cukup banyak query yang digunakan. Yang pertama-tama untuk menyimpan detail transaksi. Detail transaksi ini disimpan di dalam tabel detail masing-masing urusan unit. Contoh query-nya adalah sebagai berikut:

insert into detail_hall values

('$max[KODE_TRANSAKSI]','$i','$kode_masuk','$keterangan_detail','$ _POST[$nama_tanggal1]', '$_POST[$nama_tanggal2]', '$lama_sewa', '$harga_sewa','$nominal_detail',current_timestamp())

$max[KODE_TRANSAKSI] adalah variabel yang menyimpan informasi kode_transaksi terbesar yang ada di tabel Transaksi. Kemudian $i adalah index perulangan while yang digunakan untuk menetukan urutan detail transaksi


(67)

50

tersebut. Current_timestamp() menghasilkan waktu sistem untuk disimpan sebagai tanggal reservasi Hall.

Sedangkan untuk menyimpan transaksi itu sendiri menggunakan query yang akan dipaparkan berikut ini:

insert into transaksi values

('$max[KODE_TRANSAKSI]','$_POST[atas_nama]','$ambil[TOTAL]','$_SES SION[transaksi_kode_member]','$_SESSION[kode_unit]',

'$_SESSION[kode_urusan]',’$_SESSION[kode_user]',current_timestamp( ))

Pada tabel Transaksi, yang disimpan adalah atas_nama, total nominal detail transaksi, kode_member (jika ada), kode_unit dan kode_urusan untuk menandakan transaksi tersebut terjadi pada urusan unit mana, dan tanggal terjadinya transaksi.

Pada menu Transaksi ini juga terdapat fitur untuk melakukan edit transaksi. Query yang digunakan adalah:

update detail_hall set tanggal_lunas=current_timestamp() where kode_transaksi=$kode_transaksi and urutan_detail=$urutan_detail

Pada contoh kasus urusan Hall, yang dapat diedit hanyalah field tanggal_lunas. Proses update dilakukan dengan membatasi kode_transaksi dan urutan_detail, sehingga hanya detail transaksi tertentu yang terubah.

4.2.4. Menu Biaya

Menu biaya menggunakan query berikut:

insert into biaya

(kode_keluar,keterangan_biaya,jumlah_satuan,harga_satuan, nominal_biaya,tanggal_biaya,kode_unit,kode_urusan,kode_user, tanggal_input)

values

('$_POST[kode_keluar]','$_POST[keterangan_biaya]',

'$_POST[jumlah_satuan]','$_POST[harga_satuan]',

'$nominal_biaya','$tanggal_biaya','$_SESSION[kode_unit]', '$_SESSION[kode_urusan]','$_SESSION[kode_user]',


(68)

51

4.2.5. Menu Profile

Menu ini berfungsi mengubah informasi profil masing-masing User. Query yang digunakan adalah:

UPDATE user SET

password_user = '$enkripsi',

nama_user = '$nama_user',

email_user = '$email_user'

WHERE

session_user = '$_POST[session_user]'

Proses update dilakukan pada tabel user dan mengganti field password_user, nama_user dan email_user dengan pembatasan menggunakan session_user. Jika User memilih mengosongkan password pada form Profile, maka query yang digunakan hanya minus password_user.


(69)

BAB V

UJI COBA DAN EVALUASI

Pada bab ini akan dijelaskan mengenai hasil uji coba dan evaluasi sistem. Uji coba yang dimaksudkan di sini adalah proses percobaan terhadap setiap fitur yang disediakan bagi User. Sedangkan evaluasi adalah upaya memberikan error handling bagi setiap aksi yang mungkin dilakukan oleh User.

5.1. Uji Coba Sistem

Tahap uji coba sistem ini hanya akan dilakukan terhadap user interface sistem yang direpresentasikan oleh website. Hal itu dikarenakan tidak ada User atau Admin yang dapat mengakses database server, sehingga satu-satunya sarana interaksi terhadap sistem adalah melalui website.

Pada menu Analisa, tampilan yang akan didapatkan oleh Direksi dan Manajer akan seperti pada Gambar 5.1 berikut ini.

Gambar 5.1 Menu Analisa

Pada menu Laporan, tampilan yang akan didapatkan oleh User akan


(70)

53

YangDiPrintCumaHalaman1nyaDoankBoz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


(71)

53

seperti pada Gambar 5.2 berikut ini.

Gambar 5.2 Menu Laporan

Tampilan form Advance Report akan seperti pada Gambar 5.3 berikut ini.

Gambar 5.3 Form Advance Report

Pada menu Transaksi untuk urusan Hall, tampilan yang akan didapatkan akan seperti pada Gambar 5.4 berikut ini.


(72)

54

Gambar 5.4 Transaksi Hall

Pada menu Transaksi untuk urusan Kantin, tampilan yang akan didapatkan akan seperti pada Gambar 5.5 berikut ini.

Gambar 5.5 Transaksi Kantin

Pada menu Transaksi untuk urusan Perdagangan, tampilan yang akan didapatkan akan seperti pada Gambar 5.6 berikut ini.


(73)

55

Gambar 5.6 Transaksi Perdagangan

Pada menu Transaksi untuk urusan Puri, tampilan yang akan didapatkan akan seperti pada Gambar 5.7 berikut ini.

Gambar 5.7 Transaksi Puri

Pada menu Transaksi untuk urusan Laundry, tampilan yang akan didapatkan akan seperti pada Gambar 5.8 berikut ini.


(74)

56

Gambar 5.8 Transaksi Laundry

Pada menu Transaksi untuk urusan Travel, tampilan yang akan didapatkan akan seperti pada Gambar 5.9 berikut ini.

Gambar 5.9 Transaksi Travel


(75)

57

seperti pada Gambar 5.10 berikut ini.

Gambar 5.10 Kwitansi Transaksi

Pada menu Biaya, tampilan yang akan didapatkan oleh User akan seperti pada Gambar 5.11 berikut ini.

Gambar 5.11 Menu Biaya

Pada menu Kategori, tampilan yang akan didapatkan oleh User akan seperti pada Gambar 5.12 berikut ini.


(76)

58

Gambar 5.12 Menu Kategori

Jika tombol Tambah Kategori dipilih, tampilan yang akan didapatkan oleh User akan seperti pada Gambar 5.13 berikut ini.

Gambar 5.13 Form Tambah Kategori

Pada menu Membership, tampilan yang akan didapatkan oleh User akan seperti pada Gambar 5.14 berikut ini.

Gambar 5.14 Menu Membership

Jika tombol Tambah Member dipilih, tampilan yang akan didapatkan oleh User akan seperti pada Gambar 5.15 berikut ini.


(1)

62

Gambar 5.19 Penulisan Email yang Salah

Jika contoh di atas terjadi, maka fungsi-fungsi itu akan menghasilkan FALSE apabila tidak menemukan salah satu dari kedua karakter tersebut. Kondisi

FALSE akan memunculkan pesan kesalahan seperti pada Gambar 5.20 berikut ini.

Gambar 5.20 Pesan Kesalahan Email Belum Benar

Selain itu, karena masukan User pada form ini akan disimpan dalam database, maka perlu diperhatikan panjang field tabel yang akan digunakan untuk menyimpan data tersebut. Fungsi strlen($nama_user)>50 atau strlen($email_user)>50 digunakan untuk menghitung panjang masukan. Dengan meletakkannya dalam fungsi IF, maka akan tampil pesan kesalahan apabila User menginputkan dengan panjang yang melebihi 50 karakter (batas field-nya). Fungsi strlen() ini digunakan hampir pada setiap form masukan website yang akan disimpan ke dalam database. Karena tanpa mempersiapkan error handling semacam ini, pesan error yang akan ditampilkan pada user akan merupakan pesan error asli PHP.


(2)

Gambar 5.21 Nama yang Terlalu Panjang

Dengan masukan semacam di atas, atau salah satu dari ketiga kolom masukan di atas yang diinputkan terlalu panjang, maka perintah IF yang di dalamnya terdapat fungsi strlen() akan menampilkan pesan kesalahan.


(3)

BAB VI

KESIMPULAN DAN SARAN

6.1. Kesimpulan

Dari pengerjaan Tugas Akhir berjudul Sistem Informasi Teritegrasi pada PT. Graha Sarana Gresik ini yang telah dibangun, diimplementasikan dan diuji coba ini, secara umum dapat diambil kesimpulan sebagai berikut:

a. Untuk menjembatani perbedaan bidang dan mengintegrasikan laporan transaksional pada masing-masing urusan unit dibutuhkan suatu sistem informasi utama yang menjadi induk dari sistem informasi-sistem informasi yang telah ada, yaitu Sistem Informasi Terintegrasi ini.

b. Untuk mengolah, menyusun dan menyajikan laporan konsolidasi secara cepat dibutuhkan Sistem Informasi Terintegrasi yang mampu secara real time mengolah data transaksi terbaru dan menyajikannya saat itu juga, baik dalam bentuk laporan maupun grafik.

6.2. Saran

Selain kesimpulan di atas, pengerjaan Tugas Akhir ini masih meninggalkan banyak ruang untuk eksperimen dan pengembangan selanjutnya. Beberapa saran yang diharapkan mampu memperbaiki sistem ini beserta lingkungan sistemnya di masa mendatang adalah:

a. Integrasi akan memiliki power yang sangat kuat apabila setiap proses bisnis yang terjadi sehari-hari telah terkomputerisasi dan tersistem dengan baik. Pada studi kasus Tugas Akhir ini, masih banyak proses bisnis yang belum ter-cover


(4)

(5)

65

di dalam sistem. Akan jauh lebih baik apabila job descriptions yang terjadi sehari-hari didokumentasikan dengan baik untuk menjadi catatan penting bagi pengembangan di masa mendatang.

b. Sistem Informasi Terintegrasi ini sangat mungkin apabila ingin dikembangkan menjadi Sistem Informasi Akuntansi Terintegrasi, sehingga laporan yang disajikan bukan hanya laporan konsolidasi saja, melainkan sekaligus laporan keuangan perusahaan secara menyeluruh dengan menerapkan kaidah ilmu akuntansi.


(6)

DAFTAR PUSTAKA

ERP-Wire, 2009, “Understanding Integrated Information Systems”, (Online), (http://www.erpwire.com/erp-articles/integrated-information-systems.htm, diakses tanggal 27 Maret 2010).

Digital Library UK Petra, 2008, “Teori Dasar”, (Online),

(http://digilib.petra.ac.id/jiunkpe/s1/info/2008/jiunkpe-ns-s1-2008-26402108-9524-portal_masakan-chapter2.pdf, diakses tanggal 26 Januari 2010).

Digital Library UK Petra, 2007, “Landasan Teori”, (Online),

(http://digilib.petra.ac.id/jiunkpe/s1/info/2007/jiunkpe-ns-s1-2007-26403155-8931-intranet_rachmat-chapter2.pdf, diakses tanggal 4 November 2009).

Firdaus, J., 2008, Dasar PHP, “Jo Point Of View”, (Online),

(http://johanfirdaus.zo-ka01.com/, diakses tanggal 31 Oktober 2009). Aditus Consulting, 2009, “JpGraph – PHP Graph Creating Library”, (Online),

(http://www.aditus.nu/jpgraph/index.php/, diakses tanggal 24 Januari 2010). TinyMCE, 2010, “TinyMCE - Home”, (Online),

(http://tinymce.moxiecode.com/index.php, diakses tanggal 26 Januari 2010). Wikipedia, 2010, “Sistem Manajemen Konten”, (Online),

(http://id.wikipedia.org/wiki/Sistem_manajemen_konten, diakses tanggal 17 Februari 2010).

WAMP Server Official Website, 2009, “Apache, MySQL, PHP on Windows”, (Online), (http://www.wampserver.com/en/, diakses tanggal 17 Februari 2010).