Monday, May 3, 2021

Membuat Aplikasi Pengaduan Masyarakat dengan Php dan MySQL bag 2 (hak akses admin dan petugas)

Melanjutkan dari coding sebelumnya mengenai hak akses masyarakat yang mempunyai fitur Register, Login, Menulis Laporan Pengaduan & Logout. maka pada pertemuan kali ini kita akan mempelajari tentang hak akses sebagai administrator dan petugas, maka langkah awal kita harus membuat folder admin dan petugas terlebih dahulu.


1.  Sekarang kita akan membuat file index.php di dalam folder admin dengan source code sebagai berikut :

<?php
    @session_start();
    include "../koneksi.php";

    //if(@$_SESSION['nama']) {
    if(@$_SESSION['level']) {
     $level = $_SESSION['level'];
     $nama_petugas = $_SESSION['nama_petugas'];
     $id_petugas = @$_SESSION['id_petugas'];
?>

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
    <meta charset="utf-8">
    <title>Aplikasi Pengaduan Masyarakat</title>
    <link href="../css/main.css" rel="stylesheet" type="text/css">
</head>
<body style="background-image: url(../img/1.PNG);">
<div id="canvas">
    <div style="background-image: url(../img/korp_ungu.PNG);" id="header" >        
        <font color="#fff">Sistem Informasi Pengaduan Masyarakat</font>
    </div>

    <div id="menu">
        <ul>
            <li class="utama"><a href="/2021/UKK/admin">Beranda</a></li>
            <li class="utama"><a href="">Registerasi</a>
                <ul>
                    <li><a href="?page=masyarakat">Lihat Data</a></li>
                    <li><a href="?page=masyarakat&action=tambah">Tambah Data</a></li>
                </ul>
            </li>
            <li class="utama"><a href="">Verifikasi & Validasi</a>
                <ul>
                    <li><a href="?page=verval">Lihat Data</a></li>
                    <li><a href="?page=verval&action=tambah">Tambah Data</a></li>
                </ul>
            </li>     
             <li class="utama"><a href="">Tanggapan</a>
                <ul>
                    <li><a href="?page=tanggapan">Lihat Pengaduan Terverfikasi</a></li>
                    <li><a href="">Tambah Data</a></li>
                </ul>
            </li>

            <li class="utama"><a href="">Generate Laporan</a>
                 <ul>
                    <li><a href="?page=laporan">Registerasi Masyarakat</a></li>
                    <li><a href="">Petugas Pengaduan</a></li>
                    <li><a href="">Pengaduan Masuk</a></li>
                    <li><a href="">Pengaduan Diproses</a></li>
                    <li><a href="">Pengaduan Selesai</a></li>
                    <li><a href="">Tanggapan</a></li>
                </ul>
            </li>      
            <li class="utama right" style="background-color: #f60"><a href="logout.php">Logout</a></li>
            <li class="utama right">
                <?php
                if(@$_SESSION['nama_petugas']){
                    $user_terlogin = @$_SESSION['nama_petugas'];                
                } 
                ?>
                <a>Selamat datang, <?php echo $user_terlogin; ?> (<font color="yellow"><?php echo $level."-".$id_petugas; ?></font>)</a>
            </li>
        </ul>
    </div>

    <div style="background-color: #fff;" id="isi">
        <?php
        $page = @$_GET['page'];
        $action = @$_GET['action'];
        if($page == "masyarakat"){
            if($action == ""){
                include "masyarakat.php";
            } else if($action == "tambah") {
                include "tambah_masyarakat.php";
            } else if($action == "edit") {
                include "edit_masyarakat.php";
            } else if($action == "hapus") {
                include "hapus_masyarakat.php";
            }
        } else if($page == "verval"){
             if($action == ""){
                include "../petugas/verval.php";
            } else if($action == "tambah") {
                include "../petugas/tambah_verval.php";
            } else if($action == "edit") {
                include "../petugas/edit_verval.php";
            } else if($action == "hapus") {
                include "../petugas/hapus_verval.php";
            }
        } else {
            ?>
            
            <p style="color: red">Halaman tidak ditemukan</p>
            <br>
            Saat ini anda berada di Menu Administrator<br>
            Menu yang bisa anda akses sbb :<br>
            <ol>
                <li>Registerasi</li>
                <li>Verifikasi dan Validasi</li>
                <li>Memberikan Tanggapan</li>
                <li>Generate Laporan</li>
            </ol>
        <?php
        }
        ?>
    </div>

    <div id="footer">
        Copyright 2021 - Hari Zulianto
    </div>
</div>
</body>
</html>

<?php
} else {
    header("location: login.php");
}
?>

jika ingin download file, silahkan klik link disamping : index dan simpan di dalam folder admin

2. sebelum di uji coba, sebaiknya buat juga file login.php dengan source code sebagai berikut :

<?php
session_start();
include '../koneksi.php';
if(@$_SESSION['nama_petugas']) {
header("location: index.php");
} else {
?>

<!DOCTYPE html>
<html>
<head>
<title>Sistem Informasi Pengaduan Masyarakat</title>
<link href="../css/style.css" rel="stylesheet" type="text/css">
</head>
<body style="background-color: #F8F8FF">
<div id="utama">
<div id="judul">
Halaman Login Admin
</div>

<div id="inputan">
<form action="" method="post">
<div>
<input type="text" name="user" placeholder="Username" class="lg" />
</div>
<div style="margin-top: 10px;">
<input type="password" name="pass" placeholder="Password" class="lg">
<div style="margin-top: 10px;">
<input type="submit" name="login" value="Login" class="btn" />
</div>
</form>

<?php
if(isset($_POST['login'])){
//if($user == "" || $pass = "") {
if(empty($_POST['user']) || empty($_POST['pass'])) {
/*echo "<br><center><font color='#ff0000'>Username / Password tidak boleh kosong</font></center>";
*/
?> 
<script type="text/javascript">alert("Username / password tidak boleh kosong")</script>
<?php
} else {
$user = $_POST['user'];
$pass = $_POST['pass'];
//$query = "SELECT username,password FROM petugas WHERE username='$user' AND password=md5('$pass')";
$query = "SELECT * FROM petugas WHERE username='$user' AND password='$pass'";
$sql = mysqli_query($koneksi, $query);
$rows = mysqli_fetch_array($sql);
$id_petugas = $rows['id_petugas'];
$level = $rows['level'];
$nama_petugas = $rows['nama_petugas'];

if ($rows) {
@$_SESSION['id_petugas'] = $id_petugas;
@$_SESSION['nama_petugas'] = $nama_petugas;
@$_SESSION['level'] = $level;
//echo "Sukses Admin";
if($level == 'admin'){
header("location: index.php");
} elseif($level == 'petugas'){
header("location: ../petugas/index.php");
}
} else {
echo "<script language=\"JavaScript\">\n";
echo "alert('Username atau Password Salah!');\n";
echo "window.location='login.php'";
echo "</script>";
//echo "<br><center><font color='#ff0000'>Username / Password Salah</font></center>";
}
}
}
?>
</div>
</div>

</body>
</html>

<?php
?>

Jika ingin download file login.php, klik link disamping : login

Jika source code index.php diatas dijalankan, maka akan tampil sebagai berikut :


Secara otomatis index.php akan di redirect ke file login.php karena sudah menggunakan session


3. Sekarang kita akan melakukan uji coba username dan password yang ada di database / tabel petugas ke dalam form login.



Masukkan salah satu data tersebut ke dalam form login kemudian klik login.

4. Buat juga file index.php dan simpan ke dalam folder petugas, dengan source sbb :

<?php
   session_start();
    //include '../koneksi.php';
     if(@$_SESSION['nama_petugas']) {
        $id_petugas = @$_SESSION['id_petugas'];
        $level = @$_SESSION['level'];
        $nama_petugas = @$_SESSION['nama_petugas'];
?>

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
    <meta charset="utf-8">
    <title>Aplikasi Pengaduan Masyarakat</title>
    <link href="../css/main.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="canvas">
    <div id="header">
        Sistem Informasi Pengaduan Masyarakat 
    </div>

    <div id="menu">
        <ul>
            <li class="utama"><a href="/2021/UKK/petugas">Beranda</a></li>         
            <li class="utama"><a href="">Verifikasi & Validasi</a>
                <ul>
                    <li><a href="?page=verval">Verval Pengaduan</a></li>
                    <li><a href="?page=verval&action=lihat">Lihat Data Verval</a></li>
                </ul>
            </li>
            <li class="utama"><a href="">Tanggapan</a>
                <ul>
                    <li><a href="?page=tanggapan">Lihat Pengaduan Terverfikasi</a></li>
                    <li><a href="">Tambah Data</a></li>
                </ul>
            </li>

            <li class="utama"><a href="">Laporan</a></li>
            <li class="utama right" style="background-color: #f60"><a href="../admin/logout.php">Logout</a></li>
            <li class="utama right">
                <?php
                if(@$_SESSION['nama_petugas']){
                    $user_terlogin = @$_SESSION['nama_petugas'];                    
                }
                ?>
                <a>Selamat datang, <?php echo $user_terlogin; ?> (<font color="yellow"><?php echo $level; ?></font>)</a> 
            </li>
        </ul>
    </div>

    <div id="isi">
        <?php
        $page = @$_GET['page'];
        $action = @$_GET['action'];
        if($page == "verval"){
            if($action == ""){
                include "verval.php";
            } else if($action == "tambah") {
                include "tambah_verval.php";
            } else if($action == "lihat") {
                include "lihat_verval.php";
            } else if($action == "hapus") {
                include "hapus_verval.php";
            }        
        } else if($page == "tanggapan"){
            if($action == ""){
                include "tanggapan.php";
            } else if($action == "tambah_tanggapan") {
                include "tambah_tanggapan.php";
            } else if($action == "lihat") {
                include "lihat_verval.php";
            } else if($action == "hapus") {
                include "hapus_verval.php";
            }        
        } else if($page == ""){
            echo "Anda berada di halaman utama pada Hak Akses Petugas<br>";
            echo("Ada beberapa menu yang bisa anda akses, seperti :<br>");
            echo("1. Menu Verifikasi dan Validasi<br>");
            echo("2. Menu Tanggapan<br>");
            echo "string".$id_petugas.$user_terlogin.$level;
        } else {
            echo "halaman tidak ditemukan";
        }
        ?>
    </div>

    <div id="footer">
        Copyright 2021 - Hari Zulianto
    </div>
</div>
</body>
</html>

<?php
} else {
    header("location: ../admin/login.php");
}
?>

Jika ingin download file index.php, silahkan klik link berikut : index

Jika username dan password sesuai dengan data yang ada di database / tabel petugas dengan level petugas, maka akan tampil halaman index seperti dibawah ini dengan level petugas




Pada halaman ini (hak akses petugas), menu-menu / fitur yang dapat diakses antara lain :


menu login, logout, verifikasi &validasi dan tanggapan


5. Jika kita klik menu Verifikasi & Validasi dan sub menu Verval Pengaduan maka akan tampil Daftar Laporan Pengaduan dari masyarakat seperti terlihat pada gambar dibawah ini :


untuk data yang tampil adalah data yang belum masuk ke proses Verval sehingga yang tampil data dengan status 0

6. Sekarang kita buka file index.php di folder admin untuk menelusuri syntax/code cara memanggil halaman verval dari  menu Verval Pengaduan. Berikut source codenya :



7. Bisa disimpulkan bahwa menu Verval Pengaduan akan memanggil file verval.php.

Berikut ini source code verval.php :

<?php 
//session_start();
include_once '../koneksi.php';
    //include '../koneksi.php';
     if(@$_SESSION['nama_petugas']) {
?>

<fieldset>
<legend>Tampil Data Pengaduan untuk Verval</legend>
<div style="margin-bottom: 15px"; align="right">
<form action="" method="post">
<input type="text" name="input_pencarian" placeholder="Ketik sebagian isi laporan" style="width: 500px padding:5px;" />
<input type="submit" name="cari" value="Cari" style="padding: 3px;" />
</form>
</div>
<table width="100%" border="1px" style="border-collapse: collapse;">
<tr style="background-color: #fc0;">
<th>No</th>
<th>Tgl. Pengaduan</th>
<th>NIK</th>
<th>Isi Laporan</th>
<th>Foto</th>
<th>Status</th>
<th>Aksi</th>
</tr>
<?php
$input_pencarian = @$_POST['input_pencarian'];
$cari = @$_POST['cari'];
/*include 'koneksi.php';*/
$no = 1;
if(isset($_POST['cari'])){
if(isset($_POST['input_pencarian'])){
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where isi_laporan like '%$input_pencarian%'");
} else {
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where status like '0'");
}
} else {
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where status like '0'");
}

$cek = mysqli_num_rows($sql);
if($cek < 1){
?>
<tr>
<td colspan="7" align="center" style="padding: 10px;">Data tidak ditemukan</td>
</tr>
<?php
} else {
while ($data = mysqli_fetch_assoc($sql)) {
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $data['tgl_pengaduan']; ?></td>
<td><?php echo$data['nik']; ?></td>
<td><?php echo$data['isi_laporan']; ?></td>
<td><img src="../img/<?php echo$data['foto']; ?>" width="40" height="30"> </td>
<td><?php echo$data['status']; ?></td>
<td align="center">
<a onclick="return confirm('Yakin mau Verval data ?')" href="?page=verval&action=tambah&id_pengaduan=<?php echo $data['id_pengaduan'] ?>"><button >Verval</button></a>
</td>
</tr>
<?php
}
}
?>
</table>
</fieldset>

<?php
} else {
    header("location: ../admin/login.php");
}
?>

8. Langkah selanjutnya melakukan tindakan verval  terhadap data yang masih 0 statusnya, dengan cara klik tombol verval


Sehingga akan muncul jendela popup konfirmasi untuk melanjutkan verifikasi atau tidak. jika klik tombol OK maka akan lanjut ke halaman Tambah Verval (memanggil file tambah_verval.php) seperti terlihat pada gambar dibawah ini :


untuk source code file tambah_verval.php bisa dilihat dibawah ini :

<?php 
include_once '../koneksi.php';    
     if(@$_SESSION['nama']) {
?>

<fieldset>
<legend>Verifikasi & Validasi Data pengaduan</legend>
<?php
$id_pengaduan = @$_GET['id_pengaduan'];
$query = "SELECT * FROM pengaduan WHERE id_pengaduan = '$id_pengaduan'";
$sql = mysqli_query($koneksi, $query);
$rows = mysqli_fetch_array($sql);
?>
<form action="" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>ID Pengaduan</td>
<td>:</td>
<td><input type="text" name="id_pengaduan" value="<?php echo $rows['id_pengaduan']; ?>" disabled /></td>
</tr>
<tr>
<td>Tanggal Pengaduan</td>
<td>:</td>
<td><input type="text" name="tgl_pengaduan" value="<?php echo $rows['tgl_pengaduan']; ?>" disabled  /></td>
</tr>
<tr>
<td>NIK</td>
<td>:</td>
<td><input type="text" name="nik" value="<?php echo $rows['nik']; ?>" disabled  /></td>
</tr>
<tr>
<td>Isi Laporan</td>
<td>:</td>
<td><input style="height: 50px;" type="text" name="isi_laporan" value="<?php echo $rows['isi_laporan']; ?>" disabled  /></td>
</tr>
<tr>
<td>Foto</td>
<td>:</td>
<td><input type="text" name="foto" value="<?php echo $rows['foto']; ?>" disabled /></td>
</tr>
<tr>
<td>Status</td>
<td>:</td>
<td><input type="text" name="status" value="<?php echo $rows['status']; ?>" disabled /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" name="verval" value="Verval" /> </td>
</tr>
</table>
</form>
<?php
$id_pengaduan = @$_POST['id_pengaduan'];
$tgl_pengaduan = @$_POST['tgl_pengaduan'];
$nik = @$_POST['nik'];
$isi_laporan = @$_POST['isi_laporan'];
$foto = @$_POST['foto'];
$status = @$_POST['status'];
if(isset($_POST['verval'])){
if(empty($id_pengaduan) || empty($tgl_pengaduan) || empty($nik) || empty($isi_laporan)) {
echo "Data tidak boleh kosong ";
} else {
$query = "update pengaduan set status = 'proses' where id_pengaduan = '$id_pengaduan'";
$sql = mysqli_query($koneksi, $query);
?>
<script type="text/javascript">
alert('Data berhasil di verval');
window.location.href="?page=verval";
</script>
<?php
}
}
?>
</fieldset>

<?php
} else {
    header("location: ../admin/login.php");
}
?>

9. Langkah selanjutnya kita akan membuat file Lihat Verval dengan tampilan sebagai berikut :

untuk source codenya bisa dilihat pada file index.php



terlihat pada file index.php untuk melihat data verval, maka akan memanggil file lihat_verval.php
dengan source code sebagai berikut :

nama file : lihat_verval.php
<?php 
//session_start();
include_once '../koneksi.php';
    //include '../koneksi.php';
     if(@$_SESSION['nama']) {
?>

<fieldset>
<legend>Tampil Data Verval</legend>
<div style="margin-bottom: 15px"; align="right">
<form action="" method="post">
<input type="text" name="input_pencarian" placeholder="Ketik sebagian isi laporan" style="width: 500px padding:5px;" />
<input type="submit" name="cari" value="Cari" style="padding: 3px;" />
</form>
</div>
<table width="100%" border="1px" style="border-collapse: collapse;">
<tr style="background-color: #fc0;">
<th>No</th>
<th>Tgl. Pengaduan</th>
<th>NIK</th>
<th>Isi Laporan</th>
<th>Foto</th>
<th>Status</th>
<th>Aksi</th>
</tr>
<?php
$input_pencarian = @$_POST['input_pencarian'];
$cari = @$_POST['cari'];
/*include 'koneksi.php';*/
$no = 1;
if(isset($_POST['cari'])){
if(isset($_POST['input_pencarian'])){
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where isi_laporan like '%$input_pencarian%'");
} else {
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where status like 'proses'");
}
} else {
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where status like 'proses'");
}

$cek = mysqli_num_rows($sql);
if($cek < 1){
?>
<tr>
<td colspan="7" align="center" style="padding: 10px;">Data tidak ditemukan</td>
</tr>
<?php
} else {
while ($data = mysqli_fetch_assoc($sql)) {
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $data['tgl_pengaduan']; ?></td>
<td><?php echo$data['nik']; ?></td>
<td><?php echo$data['isi_laporan']; ?></td>
<td><img src="../img/<?php echo$data['foto']; ?>" width="40" height="30"> </td>
<td><?php echo$data['status']; ?></td>
<td align="center">
<a onclick="return confirm('Yakin mau Verval data ?')" href="?page=verval&action=hapus_verval&id_pengaduan=<?php echo $data['id_pengaduan'] ?>"><button disabled="disabled" >Hapus</button></a>
</td>
</tr>
<?php
}
}
?>
</table>
</fieldset>

<?php
} else {
    header("location: ../admin/login.php");
}
?>

Sehingga jika dijalankan, maka akan tampil sebagai berikut :


pada gambar terlihat data dengan status proses yang akan tampil.

10. Langkah selanjutnya kita akan mengakses menu Tanggapan sub menu Tanggapan Terverifikasi yang terlihat seperti gambar dibawah ini :


Untuk alur pemanggilan filenya, bisa dilihat pada index.php 




Source file tanggapan.php dapat dilihat dibawah ini :

<?php 
    include_once '../koneksi.php';
   
     if(@$_SESSION['nama_petugas']) {
     $level = @$_SESSION['level'];
     $idp = @$_SESSION['idp'];
?>

<fieldset>
<legend>Tampil Data Verval</legend>
<div style="margin-bottom: 15px"; align="right">
<form action="" method="post">
<input type="text" name="input_pencarian" placeholder="Ketik sebagian isi laporan" style="width: 500px padding:5px;" />
<input type="submit" name="cari" value="Cari" style="padding: 3px;" />
</form>
</div>
<table width="100%" border="1px" style="border-collapse: collapse;">
<tr style="background-color: #fc0;">
<th>No</th>
<th>Tgl. Pengaduan</th>
<th>NIK</th>
<th>Isi Laporan</th>
<th>Foto</th>
<th>Status</th>
<th>Aksi</th>
</tr>
<?php
$input_pencarian = @$_POST['input_pencarian'];
$cari = @$_POST['cari'];
/*include 'koneksi.php';*/
$no = 1;
if(isset($_POST['cari'])){
if(isset($_POST['input_pencarian'])){
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where isi_laporan like '%$input_pencarian%'");
} else {
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where status like 'proses'");
}
} else {
$sql = mysqli_query($koneksi, "SELECT * FROM pengaduan where status like 'proses'");
}

$cek = mysqli_num_rows($sql);
if($cek < 1){
?>
<tr>
<td colspan="7" align="center" style="padding: 10px;">Data tidak ditemukan</td>
</tr>
<?php
} else {
while ($data = mysqli_fetch_assoc($sql)) {
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $data['tgl_pengaduan']; ?></td>
<td><?php echo$data['nik']; ?></td>
<td><?php echo$data['isi_laporan']; ?></td>
<td><img src="../img/<?php echo$data['foto']; ?>" width="40" height="30"> </td>
<td><?php echo$data['status']; ?></td>
<td align="center">
<a onclick="return confirm('Yakin mau menanggapi data ?')" href="?page=tanggapan&action=tambah_tanggapan&id_pengaduan=<?php echo $data['id_pengaduan'] ?>"><button>Tanggapi</button></a>
</td>
</tr>
<?php
}
}
?>
</table>
</fieldset>

<?php
} else {
    header("location: ../admin/login.php");
}
?>


























0 comments:

Post a Comment

 

© Copyright 2010 oleh HariZ| Powered By : Blogger