Menu Analisa Menu Laporan dan Advance Report

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_injectiondata { filter=mysql_real_escape_stringstripslashesstrip_tagshtm lspecialcharsdata,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: SELECT sumnominal_transaksi AS nominal FROM transaksi where kode_unit=r[kode_unit] and date_formattanggal_input,m- Y=bulan_tahun SELECT sumnominal_biaya AS nominal FROM biaya where kode_unit=r[kode_unit] and date_formattanggal_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 SUMnominal_transaksi AS NOMINAL FROM transaksi WHERE date_formattanggal_input,m-Y=bulan_aktif SELECT SUMnominal_biaya AS NOMINAL FROM biaya WHERE date_formattanggal_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 SUMnominal_transaksi AS NOMINAL FROM transaksi WHERE tanggal_input BETWEEN tanggal_aktif tanggal_aktif 2 SELECT SUMnominal_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