• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN ANALISA HASIL

4.1. Antar Muka Pengguna Sistem

4.1.3. Pengelolaan DPA-SKPD

4.1.3.4. Hapus Detail DPA-SKPD

User memilih detail_dpa_skpd yang akan dihapus, dimana detail_dpa_skpd yang dapat dihapus hanya jika DPA-SKPD belum disahkan, jika user telah memilih maka akan muncul form hapus detail DPA-SKPD, sebagai contoh disajikan dalam gambar 4.6 berikut ini:

Stored procedure yang digunakan untuk melakukan proses hapus Detail DPA-SKPD adalah hapus_DPA_detail, listing hapus_DPA_detail akan disajikan pada listing 4.10 serta diperjelas pada tabel 3.53:

Listing 4.10 Stored procedure hapus_DPA_detail DELIMITER $$;

DROP PROCEDURE IF EXISTS `pendapatan`.`hapus_DPA_detail`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `hapus_DPA_detail`(

p_no_urut_detail_dpa_skpd int, p_user int, out keluaran varchar(30))

BEGIN

declare tahun char(4); declare tot double;

declare p_triwulan_I, p_triwulan_II, p_triwulan_III, p_triwulan_IV double;

declare prosentase1, prosentase2, prosentase3, prosentase4 double;

declare p_no_urutDPA int; declare p_volume double;

declare EXIT HANDLER FOR NOT FOUND select ('proses gagal') as keluaran;

declare EXIT HANDLER FOR SQLEXCEPTION select 'proses gagal' as keluaran;

SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET AUTOCOMMIT=0;

START TRANSACTION;

IF EXISTS(select d.no_urutDPA

from dpa_skpd d, detail_dpa_skpd det where det.no_urut_detail_dpa_skpd=p_no_urut_detail_dpa_skpd and det.no_urutDPA=d.no_urutDPA and d.pengesahan=0) then update detail_dpa_skpd set hapus='ok' where no_urut_detail_dpa_skpd=p_no_urut_detail_dpa_skpd;

select no_urutDPA, volume into p_no_urutDPA, p_volume from detail_dpa_skpd

where

no_urut_detail_dpa_skpd=p_no_urut_detail_dpa_skpd;

select th_anggaran into tahun from dpa_skpd where no_urutDPA=p_no_urutDPA for update;

select triwulan_I into prosentase1 from prosentase_pendapatan where th_anggaran=tahun for update;

select triwulan_II into prosentase2 from prosentase_pendapatan where th_anggaran=tahun for update;

select triwulan_III into prosentase3 from prosentase_pendapatan where th_anggaran=tahun for update;

select triwulan_IV into prosentase4 from prosentase_pendapatan where th_anggaran=tahun for update;

select (total-p_volume) into tot from dpa_skpd where no_urutDPA=p_no_urutDPA;

set p_triwulan_I = (tot*prosentase1); set p_triwulan_II = (tot*prosentase2); set p_triwulan_III = (tot*prosentase3); set p_triwulan_IV = (tot*prosentase4);

update dpa_skpd set triwulan_I=p_triwulan_I, triwulan_II=p_triwulan_II, triwulan_III=p_triwulan_III, triwulan_IV=p_triwulan_IV, total=tot where no_urutDPA=p_no_urutDPA;

select 'Data berhasil dihapus' into keluaran; commit;

else

select('Data tidak dapat dihapus karna sudah disahkan') into keluaran;

rollback;

end if;

SET AUTOCOMMIT=1; END$$

DELIMITER ;$$

Stored procedure diatas menjelaskan proses hapus Detail DPA-SKPD dan menggunakan transaksi management, dimana masukkannya adalah no_urut_detail_dpa_skpd dan no_pengunjung dimana no_pengunjung diperoleh saat proses login atau user yang mengakses dan parameter keluarannya berupa konfirmasi. Proses hapus Detail DPA-SKPD ini akan berpengaruh pada tabel detail_dpa_skpd dan dpa_skpd. Pertama akan dilakukan proses pengecekan apakah data yang akan dihapus sudah disahkan atau belum, jika sudah maka akam muncul konfirmasi “Data tidak dapat dihapus karna sudah disahkan”. Tetapi jika belum disahkan maka pada tabel detail_dpa_skpd pada data yang bersangkutan akan diberi flag pada field hapus diberi tanda “ok” yang menandakan kalau data sudah dihapus dan juga akan mengupdate tabel dpa_skpd untuk nilai

dikurangi volume sesuai dengan data yang dihapus, setelah itu hasil update akan berubah sesuai dengan prosentase_pendapatan sesuai dengan tahun anggaran data yang dihapus.

4.1.3.5. Pengesahan DPA-SKPD

Pertama user memilih data DPA-SKPD yang akan disahkan, dimana data yang akan disahkan belum pernah disahkan sebelumnya. Sebagai contoh berikut merupakan form pengesahan DPA-SKPD, disajikan dalam gambar 4.7 berikut ini:

Gambar 4.7 Form Pengesahan DPA-SKPD

Untuk menampilkan form seperti diatas maka dibutuhkan 3 stored procedure yaitu stored procedure tampil_detail_DPA_kop, tampil_detail_dpa_isi dan tampil_detail_dpa_isi_2.

Listing 4.11 Stored procedure tampil_detail_DPA_kop DELIMITER $$;

DROP PROCEDURE IF EXISTS `pendapatan`.`tampil_detail_DPA_kop`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `tampil_detail_DPA_kop`(

p_no_urutDPA int) BEGIN

declare urusan varchar(50); declare bidang varchar(50); declare organisasi varchar(50); declare kd_urusan varchar(4); declare kd_bidang varchar(5); declare kd_organisasi varchar(5); declare kd_program char(4); declare kd_kegiatan char(4);

declare gab_urusan_bidang varchar(100); declare gab_kd_urusan_bidang varchar(10);

declare gab_kd_urusan_bidang_organisasi varchar(15);

select th_anggaran into tahun from dpa_skpd where no_urutDPA=p_no_urutDPA;

select u.kode_urusan, b.kode_bidang, o.kode_organisasi, u.uraian, b.uraian, o.uraian, p.kode_program, k.kode_kegiatan into kd_urusan, kd_bidang, kd_organisasi, urusan, bidang, organisasi, kd_program, kd_kegiatan

from dpa_skpd d, organisasi o, bidang b, urusan u, kegiatan k, program p

where d.no_urutDPA=p_no_urutDPA and

d.no_kode_organisasi=o.no_kode_organisasi

and o.no_kode_bidang=b.no_kode_bidang and b.no_kode_urusan=u.no_kode_urusan

and u.th_anggaran=tahun and b.th_anggaran=tahun and o.th_anggaran=tahun

and k.no_kode_kegiatan=d.no_kode_kegiatan and k.th_anggaran=tahun and p.no_kode_program=k.no_kode_program;

set gab_urusan_bidang = concat(urusan,' ',bidang);

set gab_kd_urusan_bidang = concat(kd_urusan,'.',kd_bidang); set gab_kd_urusan_bidang_organisasi =

concat(kd_urusan,'.',kd_bidang,'.', kd_organisasi);

select tahun, gab_kd_urusan_bidang, kd_program, kd_kegiatan,gab_kd_urusan_bidang_organisasi, gab_urusan_bidang, organisasi;

END$$

DELIMITER ;$$

Listing 4.12 Stored procedure tampil_detail_dpa_isi DELIMITER $$;

DROP PROCEDURE IF EXISTS `pendapatan`.`tampil_detail_dpa_isi`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `tampil_detail_dpa_isi`(

p_no_urutDPA int) BEGIN

select r.kode_rekening, det.uraian, det.volume, det.satuan, det.harga_satuan

from rekening r, detail_dpa_skpd det

where det.no_urutDPA=p_no_urutDPA and r.no_urut_rekening=det.no_urut_rekening

order by r.kode_rekening asc; END$$

Listing 4.13 Stored procedure tampil_detail_dpa_isi_2 DELIMITER $$;

DROP PROCEDURE IF EXISTS `pendapatan`.`tampil_detail_dpa_isi_2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `tampil_detail_dpa_isi_2`(

p_no_urutDPA int) BEGIN

select triwulan_I, triwulan_II, triwulan_III, triwulan_IV, total from dpa_skpd

where no_urutDPA=p_no_urutDPA; END$$

DELIMITER ;$$

Stored procedure yang digunakan untuk melakukan proses pengesahan DPA-SKPD adalah pengesahanDPA_SKPD, listing

pengesahanDPA_SKPD akan disajikan pada listing 4.14 Berikut:

Listing 4.14 Stored procedure pengesahanDPA_SKPD DELIMITER $$;

DROP PROCEDURE IF EXISTS `pendapatan`.`pengesahanDPA_SKPD`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `pengesahanDPA_SKPD`( p_no_urutDPA int)

BEGIN

declare sekarang date; declare tahun char(4); declare bulan char(2); declare tgl char(2); declare skrg varchar(12); set sekarang = now();

set tahun = substr(sekarang,1,4); set bulan = substr(sekarang,6,2); set tgl = substr(sekarang, 9,2);

set skrg = concat(tgl,"-", bulan, "-", tahun); update dpa_skpd

set pengesahan=1, tgl_pengesahan=skrg where no_urutDPA=p_no_urutDPA;

END$$

DELIMITER ;$$

Stored procedure diatas digunakan untuk proses pengesahan, dimana masukkannya adalah no_urutDPA, dimana akan berpengaruh pada tabel dpa_skpd yaitu pada field pengesahan dan tgl_pengesahan, pada pengesahan akan diupdate menjadi 1 yang menandakan jika DPA-SKPD sudah disahkan tetapi jika 0 maka DPA-SKPD belum disahkan. Selain itu tgl_pengesahan akan berisi tanggal saat terjadi proses pengesahan.

Dokumen terkait