BAB 5 IMPLEMENTASI SISTEM Pada bab ini akan membahas tentang implementasi sistem yang akan diterapkan pada program. Implementasi sistem ini merupakan pembuatan sistem manajemen pembangunan rumah pada PT. X. Implementasi sistem yang akan dijelaskan pada bab ini merupakan implementasi data dan implementasi proses. 5.1 Implementasi Data Implementasi data merupakan penerapan desain data yang dibuat pada bab sebelumnya. Hasil implementasi ERD dan mapping dalam bentuk tabel dalam basis data. Tabel-tabel tersebut dilengkapi dengan tipe data dari setiap kolomnya. Tabel ini yang akan digunakan dalam pembuatan sistem informasi nantinya. 5.1.1 Tabel Master Proyek Tabel master proyek merupakan tabel yang berfungsi untuk menyimpan data utama sebuah proyek pada PT. X. Data yang disimpan antara lain seperti id master proyek, nama proyek, lokasi, harga, tanggal deal, tanggal mulai, tanggal akhir, gambar rancangan, id client, id pegawai, luas, id mandor, angsuran, dan status proyek. Tabel master proyek dapat dilihat pada Gambar 5.1. BAB V IMPLEMENTASI SISTEM 5-2 Gambar 5.1 Gambar Tabel Master Proyek 5.1.2 Tabel Master Plan Tabel master plan berisi nama-nama pekerjaan apa saja yang bisa dilakukan oleh perusahaan. Nantinya setiap pekerjaan akan berisi bahan bangunan apa saja yang diperlukan untuk menyelesaikan pekerjaan tersebut. Data yang tersimpan pada tabel master plan antara lain seperti id master plan, nama pekerjaan, dan id jenis. Tabel master plan dapat dilihat pada Gambar 5.2. Gambar 5.2 Gambar Tabel Pegawai Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5.1.3 5-3 Tabel Jenis Master Plan Tabel jenis master plan berfungsi untuk mengelompokkan pekerjaan- pekerjaan kedalam jenis-jenis pekerjaan. Data yang tersimpan pada tabel jenis master plan adalah id jenis master plan dan nama jenis. Tabel jenis master plan dapat dilihat pada Gambar 5.3. Gambar 5.3 Gambar Tabel Jenis Master Plan 5.1.4 Tabel jadwal Tabel jadwal berguna untuk menyimpan data pekerjaan dan jadwal pekerjaan yang akan dilakukan di setiap proyek. Data yang tersimpan pada tabel jadwal antara lain seperti id jadwal, tanggal awal, tanggal akhir, harga, persentase, keterangan, id master proyek, id master plan, dan status jadwal. Gambar tabel jadwal dapat dilihat pada Gambar 5.4. Gambar 5.4 Gambar Jadwal Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5.1.5 5-4 Tabel Buruh Tabel buruh digunakan sebagai tempat untuk menampung data para buruh yang berkerja di setiap proyek. Data yang terdapat pada tabel buruh antara lain seperti id buruh, nama buruh, honor, jabatan, dan id proyek. Tabel buruh dapat dilihat pada Gambar 5.5 Gambar 5.5 Gambar Tabel Buruh 5.1.6 Tabel Beli Barang Tabel beli barang digunakan untuk menyimpan data bahan bangunan yang sudah dibeli oleh perusahaan yang dipergunakan untuk kebutuhan pada sebuah proyek. Data tersebut seperti id barang, id beli, jumlah, satuan, dan harga. Tabel hutang beli barang dapat dilihat pada Gambar 5.6. Gambar 5.6 Gambar Tabel Beli Barang Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5.1.7 5-5 Tabel Barang Jadwal Tabel barang jadwal berisi data bahan baku yang akan digunakan untuk menyelesaikan suatu pekerjaan pada setiap jadwal. Seperti dijelaskan pada sub bab sebelumnya bahwa setiap jadwal berisi nama-nama pekerjaan dan setiap pekerjaan berisi nama-nama bahan baku yang akan digunakan. Data yang tersimpan pada tabel barang jadwal antara lain seperti id barang jadwal, id barang, id jadwal, id master proyek, jumlah, dan total harga. Tabel barang jadwal dapat dilihat pada Gambar 5.7. Gambar 5.7 Gambar Tabel Barang Jadwal 5.1.8 Tabel Barang Tabel barang digunakan untuk menyimpan data seluruh bahan bangunan yang terdapat di perusahaan PT X. Data tersebut antara lain id barang, nama barang, satuan, dan harga barang. Tabel barang dapat dilihat pada Gambar 5.8. Gambar 5.8 Gambar Tabel Barang Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5.1.9 5-6 Tabel Pelanggan Tabel pelanggan digunakan untuk menyimpan data pelanggan pada perusahaan PT X. Setiap pelanggan yang berkerja sama dengan perusahaan bisa mempunyai lebih dari satu proyek pembangunan rumah. Data pelanggan yang tersimpan adalah id client, nama pelanggan, alamat, dan telp. Tabel pelanggan dapat dilihat pada Gambar 5.9. Gambar 5.9 Gambar Tabel Pelanggan 5.1.10 Gaji Pegawai Tabel gaji pegawai digunakan untuk menyimpan data gaji dari setiap pegawai yang berkerja pada perusahaan PT X. Pegawai yang tersimpan pada tabel ini adalah pegawai yang berkerja di kantor perusahaan. Data yang tersimpan pada tabel gaji pegawai adalah id gaji, nominal, tanggal, id pegawai penerima, id pegawai pembayar. Tabel gaji pegawai dapat dilihat pada Gambar 5.10. Gambar 5.10 Gambar Tabel Gaji Pegawai Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5-7 5.1.11 Pegawai Tabel pegawai digunakan untuk menyimpan data setiap pegawai yang berkerja pada perusahaan PT X. Data yang tersimpan pada tabel pegawai adalah id pegawai, nama pegawai, jabatan, dan nominal gaji pegawai. Tabel pegawai dapat dilihat pada Gambar 5.11. Gambar 5.11 Gambar Tabel Pegawai 5.1.12 Pembayaran Tabel pembayaran berfungsi sebagai tempat untuk menyimpan data pembayaran dari seorang pelanggan kepada perusahaan yang berhubungan dengan sesuatu proyek. Data yang tersimpan pada tabel ini adalah id pembayaran, tanggal tempo, tanggal pembayaran, nominal, keterangan, cara bayar, foto bukti, pembayaran ke, id master proyek, id pegawai, dan status pembayaran. Tabel pembayaran dapat dilihat pada Gambar 5.12. Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5-8 Gambar 5.12 Gambar Tabel Pembayaran 5.1.13 Tabel Pengeluaran Jasa Tabel pengeluaran jasa digunakan untuk menyimpan data keuangan perusahaan yang berhubungan dengan pengeluaran jasa. Data tersebut adalah id pengeluaran jasa, nama jasa, tanggal, nominal, keterangan, id master proyek, dan id pegawai. Tabel pengeluaran jasa dapat dilihat pada Gambar 5.13. Gambar 5.13 Gambar Tabel Pengeluaran Jasa 5.1.14 Tabel Realisasi Tabel realisasi digunakan untuk menyimpan data pekerjaan yang sudah dikerjakan secara sepenuhnya ataupun sebagian. Data yang disimpan pada tabel ini Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5-9 seperti id realisasi, tanggal realisasi, tanggal akhir, persentase realisasi, dan id jadwal. Tabel realisasi dapat dilihat pada Gambar 5.14. Gambar 5.14 Gambar Tabel Realisasi 5.1.15 Tabel Supplier Tabel supplier berfungsi untuk menyimpan data supplier yang mengirim bahan bahan bangunan kepada perusahaan di mana bahan bangunan tersebut digunakan pada suatu proyek tertentu. Data pada tabel supplier adalah id supplier, nama supplier, dan alamat supplier. Tabel supplier dapat dilihat pada Gambar 5.15. Gambar 5.15 Gambar Tabel Supplier 5.1.16 Tabel Pengguna Tabel pengguna digunakan sebagai wadah untuk menyimpan data pengguna yang dapat masuk atau login kedalam sistem. Data tersebut antara lain seperti id pengguna, nama pengguna, password, id pegawai Tabel Pengguna dapat dilihat pada Gambar 5.16. Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 10 Gambar 5.16 Gambar Tabel Pengguna 5.2 Implemetasi Proses Pada subbab ini akan dibahas tentang implementasi dari proses yang sudah didesain pada bab sebelumnya. Pada subbab ini juga akan disertai dengan potongan baris program yang digunakan untuk menjalankan proses yang sudah didesain. Potongan proses program yang akan dibahas adalah pembuatan rancangan anggaran biaya (RAB), pembayaran pelanggan, jadwal pembangunan, pembelian bahan bangunan, pembayaran jasa, progres pembangunan. 5.2.1 Pembuatan Rancangan Anggaran Biaya (RAB) Pembuatan rancangan anggaran biaya dibuat ketika ada seorang pengguna yang akan menggunakan jasa perusahaan PT X untuk menyelesaikan proyek pembangunan rumah pengguna tersebut. Proses pembuatan RAB dibagi menjadi beberapa proses bagian antara lain seperti proses penambahan data utama proyek, penyusunan pekerjaan proyek, menentukan bahan bangunan dari setiap pekerjaan, menentukan buruh dan gajinya, dan menentukan jumlah angsuran. Potongan baris program dari proses ini dapat dilihat pada Listing 5.1 sampai Listing 5.5. Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 11 Listing 5.1. Potongan Baris Program Proses Penambahan Proyek Baru <?php session_start(); $mycon = new mysqli("localhost", "root", "", "mydb"); if (isset($_POST["submit"])) { $target_dir = "foto_lokasi/"; $target_file = $target_dir.basename($_FILES['fot_lokasi']['name']); $imagetypefile = pathinfo($target_file,PATHINFO_EXTENSION); $uploadOk = 1; // Check if file already exists if (file_exists($target_file)) { echo "Maaf, Foto Belum Di Upload"; $uploadOk = 0; } // Check file size if ($_FILES["fot_lokasi"]["size"] > 500000) { echo "Maaf, Ukuran Foto Terlalu Besar"; $uploadOk = 0; } // Allow certain file formats if($imagetypefile != "jpg" && $imagetypefile != "png" && $imagetypefile != "jpeg" ) { echo "Sorry, hanya foto dengan format JPG, JPEG, & PNG yang bisa di upload."; Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 12 Listing 5.1. Potongan Baris Program Proses Penambahan Proyek Baru (lanjutan) $uploadOk = 0; } $check = getimagesize($_FILES["fot_lokasi"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } $nama = $_POST['nama']; $lokasi = $_POST['lokasi']; $deal = $_POST['deal']; $bangun = $_POST['bangun']; $luas = $_POST['luas']; $harga = $_POST['harga']; $namamandor = $_POST['namamandor']; $target = $_POST['target']; $angsuran = $_POST['angsuran']; echo $target_file; $harganow = str_replace(".", "", $harga); $namaclient = $_SESSION['namaclient']; $iduser = $_SESSION['iduser']; Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 13 Listing 5.1. Potongan Baris Program Proses Penambahan Proyek Baru (lanjutan) $rslt_idproyek = $mycon->query("SELECT * FROM `masterproyek` ORDER BY idmasterproyek DESC LIMIT 1"); $row_idproyek = $rslt_idproyek->fetch_array(); $idproyek = $row_idproyek['idmasterproyek'] + 1; $_SESSION['namaproyek'] = $nama; $_SESSION['lokasiproyek'] = $lokasi; $_SESSION['tgldeal'] = $deal; $_SESSION['luasbangun'] = $luas; //$_SESSION['hargaproyek'] = $harga; $_SESSION['namamandor'] = $namamandor; if ($uploadOk == 0) { echo "Sorry, Upload Failed."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fot_lokasi"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fot_lokasi"]["name"]). " has been uploaded."; $addproyek = "INSERT INTO `mydb`.`masterproyek` (`idmasterproyek`, `namaproyek`, `lokasi`, `harga`, `tgldeal`, `tglmulai`, `tglakhir`, `gambar_lok`, `gambar_ran`,`client_idclient`, `pegawai_idpegawai`, `luas`, `idpegawai_mandor`, `angsuran`, `status`) VALUES ('".$idproyek."', '".$nama."', '".$lokasi."', '".$harganow."', '".$deal."', '".$bangun."', '".$target."', '".$target_file."', '', '1', '".$iduser."', '".$luas."', '".$namamandor."', '".$angsuran."', '0')"; $rslt_addproyek = $mycon->query($addproyek); Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 14 Listing 5.1. Potongan Baris Program Proses Penambahan Proyek Baru (lanjutan) if ($rslt_addproyek) { # code... echo $harganow; $pilihproyek = $mycon->query("select * from masterproyek where idmasterproyek = '".$idproyek."'"); $row_pilihproyek = $pilihproyek->fetch_array(); $dp = $row_pilihproyek['harga'] * '0.2'; $retensi = $row_pilihproyek['harga'] * '0.05'; $sisa = $row_pilihproyek['harga'] - $dp - $retensi; $addbayar = "INSERT INTO `pembayaran` (`idpembayaran`, `tanggaltempo`, `tanggal`, `nominal`, `keterangan`, `cara_bayar`, `foto_bukti`, `pembayaran_ke`, `masterproyek_idmasterproyek`, `pegawai_idpegawai`, `status`) VALUES (NULL, '".$deal."', NULL, '".$dp."', 'DP', '', '', '1', '".$idproyek."', '1', 'Belum Lunas')"; $rslt_addbayar = $mycon->query($addbayar); if ($rslt_addbayar) { # code... echo "Bayar DP Berhasil"; $start_date = new DateTime($bangun); $end_date = new DateTime($target); $interval = $start_date->diff($end_date); setcookie("proyek[id]",$idproyek); header("Location: ta_masterjadwal.php"); } else {echo "BAYAR DP GAGAL";} } } Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 15 Listing 5.1. Potongan Baris Program Proses Penambahan Proyek Baru (lanjutan) else { echo "Sorry, there was an error uploading your file."; } } } ?> Listing 5.2. Potongan Baris Program Proses Penyusunan Pekerjaan Proyek $mycon = new mysqli("localhost", "root", "", "mydb"); if (isset($_POST["simpanplanning"])) { # code... $idnyaproyek = $_COOKIE["proyek"]["id"]; $cekstatus = $mycon->query("SELECT * FROM masterproyek where idmasterproyek = '".$idnyaproyek."'"); $row_statusproyek = $cekstatus->fetch_array(); if ($row_statusproyek['status'] == 1) { # code... $_SESSION['pesan'] = 'Anda tidak bisa menentukan planning baru. RAB sudah dikunci'; header("Location: ta_bahanbaku.php"); } else{ $idnya = $_POST['idnya']; $plan = $_POST['plan']; $jumlahplan = count($plan); if ($jumlahplan == 0) { # code... header("Location: ta_bahanbaku.php"); } else{ Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 16 Listing 5.2. Potongan Baris Program Proses Penyusunan Pekerjaan Proyek (lanjutan) for ($i=0; $i < $jumlahplan ; $i++) { # code... $rslt_idjadwal = $mycon->query("SELECT * FROM idjadwal DESC LIMIT 1"); `jadwal` ORDER BY $row_idjadwal = $rslt_idjadwal->fetch_array(); $idjadwal = $row_idjadwal['idjadwal'] + 1; $query_plan = "INSERT INTO `jadwal` (`idjadwal`, `tglawal`, `tglakhir`, `prosentase`, `keterangan`, `masterproyek_idmasterproyek`, `masterplan_idmasterplan`, `status`) VALUES ('".$idjadwal."', NULL, NULL, '0', '', '".$idnya."', '".$plan[$i]."', '0')"; $rslt_query_plan = $mycon->query($query_plan); if ($rslt_query_plan) { # code... $_SESSION['pesan'] = 'Pembuatan Jadwal Berhasil'; header("Location: ta_bahanbaku.php"); } } } } } Listing 5.3. Potongan Baris Program Proses Menentukan Bahan Bangunan if (isset($_POST["simpanbahan"])) { # code... $idnyaproyek = $_COOKIE["proyek"]["id"]; $idjadwal = $_POST['idjadwal']; $pilihbarang = $_POST['pilihbarang']; $jumlahbarang = count($pilihbarang); for ($i=0; $i < $jumlahbarang; $i++) { # code... Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 17 Listing 5.3. Potongan Baris Program Proses Menentukan Bahan Bangunan (lanjutan) $addbarang = $mycon->query("INSERT INTO `barang_jadwal2` (`idbarang_jadwal`, `barang_idbarang`, `masterproyek_idmasterproyek`, `jadwal_idjadwal`, `jumlah`, `totalharga`) VALUES ('', '".$pilihbarang[$i]."', '".$idnyaproyek."', '".$idjadwal."', '', '')"); if ($addbarang) { # code... $_SESSION['pesan'] = 'Pemilihan Bahan Bangunan Berhasil'; header("Location: ta_bahanbaku.php"); } else { # code... $_SESSION['pesan'] = 'Pemilihan Bahan Bangunan Gagal'; header("Location: ta_bahanbaku.php"); } } } Listing 5.4. Potongan Baris Program Proses Menentukan Jumlah dan Gaji Buruh if (isset($_POST["simpanburuh"])) { # code... $mycon = new mysqli("localhost", "root", "", "mydb"); $idnyaproyek = $_COOKIE["proyek"]["id"]; $nama = $_POST['nama']; $jabatan = $_POST['jabatan']; $gaji = $_POST['gaji']; $gajinow = str_replace(".", "", $gaji); Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 18 Listing 5.4. Potongan Baris Program Proses Menentukan Jumlah dan Gaji Buruh (lanjutan) $tambahburuh = $mycon->query("INSERT INTO `buruh` (`idburuh`, `nama_buruh`, `honor`, `jabatan`, `idproyek`) VALUES (NULL, '$nama', '$gajinow', '$jabatan', '$idnyaproyek')"); if ($tambahburuh) { # code... $hargakeg = $mycon->query("SELECT sum(harga) as jumlah from jadwal WHERE masterproyek_idmasterproyek = '".$idnyaproyek."'"); $row_hargakeg = $hargakeg->fetch_array(); $totalhargakeg = $row_hargakeg['jumlah']; $proyek = "Select * from masterproyek where idmasterproyek = '".$idnyaproyek."'"; $rslt_proyek = $mycon->query($proyek); $row_proyek = $rslt_proyek->fetch_array(); $start_date = new DateTime($row_proyek['tglmulai']); $end_date = new DateTime($row_proyek['tglakhir']); $interval = $start_date->diff($end_date); $selisihhari = $interval->days; $hargaburuh = $mycon->query("SELECT sum(honor) as jumlah from buruh WHERE idproyek = '".$idnyaproyek."'"); $row_hargaburuh = $hargaburuh->fetch_array(); $totalhargaburuh = $row_hargaburuh['jumlah'] * $selisihhari; $totalpengeluaran = $totalhargakeg + $totalhargaburuh; $ubahhargaproyek = $mycon->query("UPDATE `masterproyek` SET `harga` = '".$totalpengeluaran."' WHERE `masterproyek`.`idmasterproyek` = '".$idnyaproyek."'"); header("Location: ta_pilihburuh.php"); } } Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 19 Listing 5.5. Potongan Baris Program Proses Menentukan Jumlah Angsuran if (isset($_POST["rab"])) { # code... $idnyaproyek = $_COOKIE["proyek"]["id"]; $jmlhangsuran = $_POST['angsuran']; echo $jmlhangsuran." angsuran <br>"; $ambilharga = $mycon->query("select * from masterproyek WHERE idmasterproyek = '".$idnyaproyek."'"); $row_ambilharga = $ambilharga->fetch_array(); $hargaproyek = $row_ambilharga['harga']; $tglakhir = $row_ambilharga['tglakhir']; $target = $row_ambilharga['tglakhir']; $start_date = new DateTime($row_ambilharga['tglmulai']); $end_date = new DateTime($row_ambilharga['tglakhir']); $interval = $start_date->diff($end_date); $selisihhari = $interval->days; $dp = $hargaproyek * '0.2'; $retensi = $hargaproyek * '0.05'; $sisa = $hargaproyek - $dp - $retensi; $perangsuran = $sisa / $jmlhangsuran; for ($i=1; $i <= $jmlhangsuran; $i++) { # code... //Bayar Angsuran $addangsuran = "INSERT INTO `pembayaran` (`idpembayaran`, `tanggaltempo`, `tanggal`, `nominal`, `keterangan`, `cara_bayar`, `foto_bukti`, `pembayaran_ke`, `masterproyek_idmasterproyek`, `pegawai_idpegawai`, `status`) VALUES (NULL, '', NULL, '".$perangsuran."', 'Angsuran Ke ".$i."', '', '', '".$i."', '".$idnyaproyek."', '1', 'Belum Lunas')"; $rslt_addangsuran = $mycon->query($addangsuran); if ($rslt_addangsuran) { # code... Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 20 Listing 5.5. Potongan Baris Program Proses Menentukan Jumlah Angsuran (lanjutan) echo "Bayar Angsuran Berhasil"; } } $keretensi = $jmlhangsuran +1; $tanggalretensi = date('Y-m-d', strtotime('+60 days', strtotime($target))); //Bayar Retensi $addretensi = "INSERT INTO `pembayaran` (`idpembayaran`, `tanggaltempo`, `tanggal`, `nominal`, `keterangan`, `cara_bayar`, `foto_bukti`, `pembayaran_ke`, `masterproyek_idmasterproyek`, `pegawai_idpegawai`, `status`) VALUES (NULL, '".$tanggalretensi."', NULL, '".$retensi."', 'Retensi', '', '', '".$keretensi."', '".$idnyaproyek."', '1', 'Belum Lunas')"; $rslt_addretensi = $mycon->query($addretensi); $ubahstatus = $mycon->query("UPDATE `masterproyek` SET `status` = '1' WHERE `masterproyek`.`idmasterproyek` = '".$idnyaproyek."'"); if ($ubahstatus) { # code... $_SESSION['pesan'] = 'Kunci RAB Berhasil'; header("Location: ta_dataproyek.php"); } } else{ $idnyaproyek = $_COOKIE["proyek"]["id"]; $ambilharga = $mycon->query("select * from masterproyek WHERE idmasterproyek = '".$idnyaproyek."'"); $row_ambilharga = $ambilharga->fetch_array(); $hargaproyek = $row_ambilharga['harga']; $jmlhangsuran = $row_ambilharga['angsuran']; $start_date = new DateTime($row_ambilharga['tglmulai']); $end_date = new DateTime($row_ambilharga['tglakhir']); $interval = $start_date->diff($end_date); Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 21 Listing 5.5. Potongan Baris Program Proses Menentukan Jumlah Angsuran (lanjutan) $selisihhari = $interval->days; $dp = $hargaproyek * '0.2'; $retensi = $hargaproyek * '0.05'; $sisa = $hargaproyek - $dp - $retensi; $perangsuran = $sisa / $jmlhangsuran; $ubah1 = $mycon->query("UPDATE `pembayaran` SET `nominal` = '".$dp."' WHERE `pembayaran`.`masterproyek_idmasterproyek` = '".$idnyaproyek."' and `pembayaran`.`keterangan` = 'DP'"); for ($i=1; $i <= $jmlhangsuran ; $i++) { # code... $ubah2 = $mycon->query("UPDATE `pembayaran` SET `nominal` = '".$perangsuran."' WHERE `pembayaran`.`masterproyek_idmasterproyek` = '".$idnyaproyek."' and `pembayaran`.`keterangan` = 'Angsuran Ke ".$i."'"); } $ubah3 = $mycon->query("UPDATE `pembayaran` SET `nominal` = '".$retensi."' WHERE `pembayaran`.`masterproyek_idmasterproyek` = '".$idnyaproyek."' and `pembayaran`.`keterangan` = 'Retensi'"); echo $hargaproyek."<br>";; echo $dp."<br>"; echo $sisa."<br>"; echo $retensi."<br>"; header("Location: ta_bayarclient.php"); } 5.2.2 Pembuatan Rancangan Pembayaran Pelanggan Proses pembayaran dari pelanggan dilakukan ketika proyek atau pekerjaan pembangunan rumah akan dilakukan. Nominal yang harus dibayar kepada PT. X telah disepakati sejak awal dengan pelanggan. Proses pembayaran bisa dilakukan Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 22 dengan beberapa kali transaksi. Potongan baris program dari proses ini dapat dilihat pada Listing 5.6. Listing 5.6. Potongan Baris Program Proses Pembayaran Pelanggan if (isset($_POST['simpanbayar'])) { # code... $idnyaproyek = $_COOKIE["proyek"]["id"]; $cekstatus = $mycon->query("SELECT * FROM masterproyek where idmasterproyek = '".$idnyaproyek."'"); $row_statusproyek = $cekstatus->fetch_array(); if ($row_statusproyek['status'] == 1) { $idbayar = $_POST['idbayar']; $nominal = $_POST['nominal']; $carabayar = $_POST['carabayar']; $ket = $_POST['ket']; $idp = $_POST['idp']; $harganow = str_replace(".", "", $nominal); $target_dir = "foto_bukti_bayar/"; $target_file = $target_dir.basename($_FILES['fot_bukti']['name']); $imagetypefile = pathinfo($target_file,PATHINFO_EXTENSION); $uploadOk = 1; // Check if file already exists if (file_exists($target_file)) { echo "Maaf, Foto Belum Di Upload"; $uploadOk = 0; } // Check file size if ($_FILES["fot_bukti"]["size"] > 500000) { echo "Maaf, Ukuran Foto Terlalu Besar"; $uploadOk = 0; Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 23 Listing 5.6. Potongan Baris Program Proses Pembayaran Pelanggan (lanjutan) } // Allow certain file formats if($imagetypefile != "jpg" && $imagetypefile != "png" && $imagetypefile != "jpeg" ) { echo "Sorry, hanya foto dengan format JPG, JPEG, & PNG yang bisa di upload."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error $check = getimagesize($_FILES["fot_bukti"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } if ($uploadOk == 0) { echo "Sorry, Upload Failed."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fot_bukti"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fot_bukti"]["name"]). " has been uploaded."; $rslt_idproyek = $mycon->query("SELECT * FROM `pembayaran`WHERE masterproyek_idmasterproyek = '".$idp."' ORDER BY idpembayaran DESC LIMIT 1"); $row_idproyek = $rslt_idproyek->fetch_array(); Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 24 Listing 5.6. Potongan Baris Program Proses Pembayaran Pelanggan (lanjutan) $ke = $row_idproyek['pembayaran_ke'] + 1; $addproyek = "UPDATE `pembayaran` SET `tanggal` = '".date('Y-md')."', `status` = 'Lunas', cara_bayar = '".$carabayar."' WHERE `pembayaran`.`idpembayaran` = '".$idbayar."'"; $rslt_addproyek = $mycon->query($addproyek); if ($rslt_addproyek) { # code... //header("Location :pdfnota.php"); header("Location: ta_bayarclient.php"); } } else { echo "Sorry, there was an error uploading your file."; } } } else{ $_SESSION['pesan'] = 'RAB Belum Dikunci'; header("Location: ta_bayarclient.php"); } } 5.2.3 Pembuatan Rancangan Jadwal Pembangunan Pada potongan program dibawah ini digunakan untuk memyusun jadwal pembangunan yang akan dikerjakan pada suatu proyek tertentu. Jadwal pembangunan disusun setiap akhir minggu setelah melalui berbagai proses Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 25 pemilihan urutan pekerjaan. Potongan baris program dari proses ini dapat dilihat pada Listing 5.7. Listing 5.7. Potongan Baris Program Proses Penyusunan Jadwal if (isset($_POST["simpanjadwal"])) { # code... $idnyaproyek = $_COOKIE["proyek"]["id"]; $cekbyr = $mycon->query("SELECT * FROM `pembayaran` WHERE masterproyek_idmasterproyek = '".$idnyaproyek."' and keterangan = 'DP' and status = 'Lunas'"); $row_cekbyr = $cekbyr->fetch_array(); if ($row_cekbyr['status'] >= 'Lunas') { $jad = $_POST['jad'];//idjadwal $tglawal = $_POST['tglawal']; $tglakhir = date('Y-m-d', strtotime('+5 days', strtotime($tglawal))); //$tglakhir = $_POST['tglakhir']; $jumlahjad = count($jad); for ($i=0; $i < $jumlahjad ; $i++) { # code... $rslt_idproyek = $mycon->query("UPDATE `jadwal` SET `tglawal` = '".$tglawal."', `tglakhir` = '".$tglakhir."' , `status` = '1' WHERE `jadwal`.`idjadwal` = '".$jad[$i]."'"); if ($rslt_idproyek) { # code... $_SESSION['pesan'] = 'Pembuatan Jadwal Mingguan Berhasil'; echo '<script>window.location="ta_jadwal.php"</script>'; } else { # code... $_SESSION['pesan'] = 'Pembuatan Jadwal Mingguan Gagal, Pastikan Semua Terisi'; echo '<script>window.location="ta_jadwal.php"</script>'; } Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 26 Listing 5.7. Potongan Baris Program Proses Penyusunan Jadwal (lanjutan) } } else{ $_SESSION['pesan'] = 'Mohon Lakukan Pembayaran Sebagai DP Awal'; echo '<script>window.location="ta_jadwal.php"</script>'; } } 5.2.4 Pembuatan Rancangan Pembelian Bahan Bangunan Potongan program dibawah ini digunakan untuk proses pembelian bahan bangunan kepada supplier yang sudah bekerja sama dengan perusahan PT. X. Bahan baku yang dibeli akan digunakan untuk kebutuhan satu proyek. Jumlah Listing 5.8. Potongan Baris Program Proses Pembelian Bahan Baku <?php if (isset($_POST['submit2'])) { $mycon = new mysqli("localhost", "root", "", "mydb"); # code... $idnyaproyek = $_COOKIE["proyek"]["id"]; $nama = $_POST['nama']; $jumlah = $_POST['jumlah']; $harga = $_POST['harga']; $supplier = $_POST['supplier']; $satuan = $_POST['satuan']; $tangglnow = date("Y-m-d"); $iduser = $_SESSION['iduser']; $harganow = str_replace(".", "", $harga); Listing 5.8. Potongan Baris Program Proses Pembelian Bahan Baku (lanjutan) Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 27 $rslt_idbeli = $mycon->query("SELECT * FROM `beli` ORDER BY idbeli DESC LIMIT 1"); $row_idbeli = $rslt_idbeli->fetch_array(); $idbeli = $row_idbeli['idbeli'] + 1; $tambahbeli = $mycon->query("INSERT INTO `beli` (`idbeli`, `tanggal`, `masterproyek_idmasterproyek`, `suplier_idsuplier`, `pegawai_idpegawai`) VALUES ('".$idbeli."', '".$tangglnow."', '".$idnyaproyek."', '".$supplier."', '".$iduser."')"); if ($tambahbeli) { # code... $tambahbarangbeli = $mycon->query("INSERT INTO `barang_beli` (`barang_idbarang`, `beli_idbeli`, `jumlah_beli`, `satuan`, `harga_beli`) VALUES ('".$nama."', '".$idbeli."', '".$jumlah."', '".$satuan."', '".$harganow."')"); if ($tambahbarangbeli) { # code... $updatebarang = $mycon->query("UPDATE `barang` SET `harga_terakhir` = '".$harganow."' WHERE `barang`.`idbarang` = '".$nama."'"); if ($updatebarang) { # code... //$barangproyek = $mycon->query(""); header("Location: ta_belibarang.php"); } } } } ?> 5.2.5 Pembuatan Rancangan Pembayaran Jasa Potongan program dibawah ini digunakan untuk proses pembayaran jasa pada proyek pembangunan PT. X. Pembayaran jasa dilakukan ketika ada suatu pekerjaan yang tidak bisa dilakukan oleh pegawai perusahaan atau buruh yang bekerja di suatu proyek. Sehingga pekerjaan tersebuh harus dilakukan oleh orang Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 28 tertentu dengan keahlian tertentu. Potongan baris pada program ini dapat dilihat pada Listing 5.9. Listing 5.9. Potongan Baris Program Proses Pembayaran Jasa if (isset($_POST['submit2'])) { $mycon = new mysqli("localhost", "root", "", "mydb"); # code... $idpro = $_POST['idpro']; $nama = $_POST['namajasa']; $nominal = $_POST['nominal']; $ket = $_POST['keterangan']; $date = date('Y-m-d'); $iduser = $_SESSION['iduser']; $harganow = str_replace(".", "", $nominal); $idclient = "SELECT * FROM `masterproyek` where idmasterproyek = '".$idpro."'"; $rslt_idclient = $mycon->query($idclient); $row_idclient = $rslt_idclient->fetch_array(); $tambah = "INSERT INTO `mydb`.`pengeluaranjasa` (`idpengeluaranjasa`, `nama_jasa`, `tanggal`, `nomial`, `keterangan`, `masterproyek_idmasterproyek`, `pegawai_idpegawai`) VALUES (NULL, '".$nama."', '".$date."', '".$harganow."', '".$ket."', '".$idpro."', '".$iduser."')"; $rslt_tambah = $mycon->query($tambah); if ($rslt_tambah) { # code... echo "Sukses"; header("Location: ta_bayarjasa.php"); } } Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5.2.5 5 - 29 Pembuatan Rancangan Progres Pembangunan Potongan program dibawah ini digunakan untuk proses laporan progres pembangunan rumah PT. X. Progres yang tampilkan berupa prosesntase penyelesaikan yang terjadi pada suatu proyek. Dengan laporan progres ini sesorang dapat mengetahui tahap apa saja yang sudah terselesaikan dan tahap yang belum terselesaikan. Potongan baris pada program ini dapat dilihat pada Listing 5.10 Listing 5.10. Potongan Baris Program Proses Progres Pembangunan <div class="tab-pane fade" id="settings"> <h4>Daftar Realisasi</h4> <div class="panel-body"> <table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example"> <thead> <tr> <th>No</th> <th>Kegiatan </th> <th>Tanggal Awal</th> <th>Tanggal Akhir</th> <th>Prosentase</th> </tr> </thead> <?php $mycon = new mysqli("localhost", "root", "", "mydb"); $realisasi = "Select * from realisasi a, jadwal b, masterplan c where a.jadwal_idjadwal = b.idjadwal and b.masterproyek_idmasterproyek = '".$row_proyek['idmasterproyek']."' and b.masterplan_idmasterplan = c.idmasterplan"; $rslt_realisasi = $mycon->query($realisasi); $noo = 1; while ($row_realisasi = $rslt_realisasi->fetch_array()) Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya BAB V IMPLEMENTASI SISTEM 5 - 30 Listing 5.10. Potongan Baris Program Proses Progres Pembangunan (lanjutan) { echo "<tbody>"; echo "<tr class='odd gradeX'>"; echo "<td>".$noo++."</td>"; echo "<td>".$row_realisasi['nama_acara']."</td>"; echo "<td>".date("d F Y", strtotime($row_realisasi['tanggalawal']))."</td>"; echo "<td>".date("d F Y", strtotime($row_realisasi['tanggalakhir']))."</td>"; echo "<td>".$row_realisasi['prosentase_realisasi']." %</td>"; echo "</tr>"; echo "</tbody>"; } ?> </table></div></div>. Jurusan Teknik Informatika Fakultas Teknik Universitas Surabaya