Jumat, 27 September 2019

CRUD PHP DB MySQL

Assalamu’alaikum… Pada kesempatan kali ini saya mau membagi ilmu yang merupakan masih dasar ini, apakah itu? CRUD, istilah tersebut merupakan singkatan dari Create, Read, Update dan Delete sudahkah Anda mendengarnya. Jika belum akan kita perjelas secara rinci. Oke CRUD Anda sudah tahu singkatan dari istilah tersebut, namun untuk penjelasanya ada 4 karakter disana. C (Create): yang berarti membuat sebuah data baru, contoh kita sedang melakukan registrasi disebuah web itu sudah merupakan Create dari CRUD karena kita membuat dan menyimpan data registrasi ke database. R (Read): Membaca atau menampilkan suatu data yang tadinya berada didatabase MySQL misalnya, kemudian ditampilkan di WEB menggunakan bahasa pemrograman Php U (Update): nah untuk yang satu ini prosesnya adalah mengedit sebuah data dari database yang kemudian di edit menggunakan bahasa pemrograman Php berupa WEB. Contoh edit profil facebook. D (Delete): Pastinya Anda tahu fungsinya apa bukan? Fungsinya hampir sama dengan Update akan tetapi proses ini adalah untuk melakukan penghapusan data di database melalui bahasa Php. Contoh pada sebuah blog terkadang ada komentar, kemudian kita hapus komentar tersebut, nah itu sudah termasuk proses delete dalam CRUD. Itu adalah beberapa penjelasan yang saya buat dengan sesederhana mungkin agar Anda mampu mempelajarinya dengan mudah dimengerti. Saya harap info diatas bermanfaat bagi Anda, dan teman – teman anda.

Disini saya akan mencoba memberi scrip dan data base tentang CRUD sederhana menggunakan php dan MySQL.
Langsung saja yang pertama buatlah database terlebih dahulu .
1. Database


2. selanjutna saya akan memberi kodingan tentang CRUD .
Beri nama index.php dalam file php.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
    <script type="text/javascript" src="assets/js/jquery.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="assets/js/jquery.validate.min.js"></script>
    <title> CRUD PHP </title>
</head>

<body>
    <?php 
        include 'header.php';
    ?>
    
    <div class="container">
        <br>  
        <hr>
        <br>

        <div class="container">
            <div class="row justify-content-between">
                <div class="">
                    <a href="tambah.php" class="btn btn-success"><i class="fa "></i> Tambah Data Anggota</a>
                </div>
            </div>
        </div>

        <br>
        
        <!-- start table data responsive -->
        <div class="table-responsive">
            <table class="table table-striped table-bordered table-hover" id="tb-mahasiswa">
                <thead>
                    <tr>
                        <th>No</th>
                        <th>Nama</th>
                        <th>Username</th>
                        <th>Password</th>
                        <th>Email</th>                    
                        <th>Menu</th>
                    </tr>
                </thead>

                <tbody>
                    <?php
                        require_once('koneksi.php');

                        $no = 1;
                        $koneksiObj = new koneksi();
                        $koneksi    = $koneksiObj->getKoneksi();
                        
                        if($koneksi->connect_error){
                            echo "Gagal Koneksi : ". $koneksi->connect_error;
                            echo "</td></tr>";
                        }

                        $query = "select * from mahasiswa order by nama";
                        $data  = $koneksi->query($query);
                        
                        if($data->num_rows <= 0){
                            echo "<tr>";
                            echo "<td colspan='7' class='text-center'><i>Data kosong</i></td>";
                            echo "</tr>";
                        } else{
                            $sql = mysqli_query($koneksi, "SELECT * FROM mahasiswa"); 
                            
                            if(mysqli_num_rows($sql) == 0){ 
                                echo '<tr><td colspan="14">Data Tidak Ada.</td></tr>';
                            }else{ 
                                
                                while($row = mysqli_fetch_assoc($sql)){ 
                                    echo "<tr>";
                                    echo "<td>".$no++."</td>";
                                    echo "<td class='center'>".$row['nama']."</td>";
                                    echo "<td class='center'>".$row['username']."</td>";
                                    echo "<td class='center'>".$row['password']."</td>";
                                    echo "<td class='center'>".$row['email']."</td>";
                                    echo '<td class="text-center"><a href="edit.php?id='.$row['id'].'" class="btn btn-info btn-sm"><i class="fa fa-pencil"></i> Edit</a>';
                                    echo ' 
                                    <a href="hapus.php?id='.$row['id'].'" class="btn btn-danger btn-sm delete-link"><i class="fa fa-trash"></i> Hapus</a></td>';
                                    echo "</tr>";
                                }
                            }
                        }
                    ?>
                </tbody>
            </table>
        </div>
    </div>

    

</body>

</html>

2. selanjutnya membuat file edit.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
    <script type="text/javascript" src="assets/js/jquery.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="assets/js/jquery.validate.min.js"></script>
    <title> Data Mahasiswa </title>
</head>

<body>
    <?php 
        include ('header.php');
    ?>
    
    <?php
        require_once('koneksi.php');

        if($_GET['id']!=null){
            $id        = $_GET['id'];
            $koneksiObj = new Koneksi();
            $koneksi    = $koneksiObj->getKoneksi();
            
            if($koneksi->connect_error){
                echo "Gagal Koneksi : ". $koneksi->connect_error;
            }
            
            $query = "select * from mahasiswa where id='$id'";
            $data = $koneksi->query($query);
        }
    
        if($data->num_rows <= 0){
            echo "Data tidak ditemukan!";
        } else{
            while($row = $data->fetch_assoc()){
                $id             = $row['id'];
                $nama           = $row['nama'];
                $username       = $row['username'];
                $password       = $row['password'];
                $email          = $row['email'];
            }
        }
    ?>

    <div class="container">
            <br>
            <h2><i class="fa fa-angle-double-right"></i> Edit Data</h2>
            <hr>
            <br>

            <!-- start form edit data -->
            <form id="editdata" class="form-horizontal" method="post" action="update.php">
                <input type="hidden" class="form-control" id="id" name="id" value="<?php echo $id;?>">
                <div class="form-group">
                    <label for="nim">Nama</label>
                    <div>
                        <input type="text" class="form-control" id="nama" name="nama" value="<?php echo $nama;?>">
                    </div>
                </div>

                <div class="form-group">
                    <label for="nama">Username</label>
                    <div>
                        <input type="text" class="form-control" id="username" name="username" value="<?php echo $username;?>">
                    </div>
                </div>

                <div class="form-group">
                    <label for="nama">Password</label>
                    <div>
                        <input type="text" class="form-control" id="password" name="password" value="<?php echo $password;?>">
                    </div>
                </div>

                <div class="form-group">
                    <label for="nama">Email</label>
                    <div>
                        <input type="text" class="form-control" id="email" name="email" value="<?php echo $email;?>">
                    </div>
                </div>

                <div class="form-group">
                    <div>
                        <button type="submit" class="btn btn-success"><i class="fa fa-save"></i> Simpan</button>
                        <a href="index.php" class="btn btn-danger"><i class="fa fa-ban"></i> Batal</a>
                    </div>
                </div>                    
            </form>

        </div>


    <script language="javascript">
        $.validator.addMethod("alpha", function(value, element){
            return this.optional(element) || value.match(/^[a-zA-Z\s]+$/);
        });
        $("#editdata").validate({
            rules: {
                username: "required",
                nama: {
                    required: true,
                    alpha: true
                },
                email: {
                    required: true,
                    email: true
                },
                password: {
                    required: true,
                    minlength: 8
                }
            },
            message: {
                username: "Masukkan username anda!",
                nama: {
                    required: "Masukkan nama anda!",
                    alpha: "Inputan hanya diperbolehkan huruf dan spasi!"
                },
                email: "Masukkan email anda yang valid!",
                password: {
                    required: "Masukkan password anda!",
                    minlength: "Password minimal 8 karakter!"
                }
            },
            submitHandler: function(form) {
                form.submit();
            }
        });
    </script>

</body>

</html>

3.hapus.php
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
<script type="text/javascript" src="assets/js/jquery.js"></script>
<script type="text/javascript" src="assets/js/bootstrap.js"></script>
<script type="text/javascript" src="assets/js/bootstrap.min.js"></script>

<div class="container">
<?php
    include "koneksi.php";
    $koneksiObj = new Koneksi();
    $koneksi = $koneksiObj->getKoneksi();
    
    $query = "DELETE FROM mahasiswa WHERE id=" . $_GET["id"];

    if($koneksi->query($query) === true) {
        echo '<br><div class="alert alert-success alert-dismissable">Data berhasil dihapus <a href="index.php">  Lihat Data</a></div>';            
    } else {
        echo '<br><div class="alert alert-danger alert-dismissable">Data gagal dihapus! Kembali ke <a href="index.php">  Halaman Awal</a></div>';
    }
?>

</div>

4.header.php
<nav class="navbar navbar-expand-lg navbar navbar-dark bg-dark">
  <div class="container">
    <a class="navbar-brand" href="index.php">DATA MEMBERS</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span>
      </button>
      
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">                  
          <li class="nav-item">
            <a class="nav-link" href="index.php">Lihat Data</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="tambah.php">Tambah Data</a>
          </li>
        </ul>
      </div>
  </div>

</nav>

5. ini membuat konekssi ke database beri nama koneksi.php
<?php
    class Koneksi{
private $server   = "localhost";
private $username = "root";
private $password = "";
private $db       = "crud";

function getKoneksi(){
            return new mysqli($this->server, $this->username, $this->password, $this->db);
        }
    }

?>

6.selanjutnya membuat simpan.php
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
<script type="text/javascript" src="assets/js/jquery.js"></script>
<script type="text/javascript" src="assets/js/bootstrap.js"></script>
<script type="text/javascript" src="assets/js/bootstrap.min.js"></script>

<div class="container">
<?php
    require_once('koneksi.php');
    $koneksiObj = new Koneksi();
    $koneksi = $koneksiObj->getKoneksi();

    if($koneksi->connect_error){
        echo "Gagal Koneksi : ". $koneksi->connect_error;
    } 
    
    $nama       = $_POST['nama'];
    $username   = $_POST['username'];
    $password   = $_POST['password'];
    $email      = $_POST['email'];
   
    if($nama=='' || $username=='' || $password=='' || $email==''){
        echo "Data yang dimasukkan salah. Pastikan semua form telah terisi!<br>";
        echo '<a href="tambah.php">Kembali</a>';
        return;
    }

    $query1 = "select * from mahasiswa where username='$username' or email='$email'";
    $count = $koneksi->query($query1);
    if($count->num_rows > 0){
        echo "Username atau Email sudah terdaftar, mohon periksa kembali!";
        echo '<a href="tambah.php">Kembali</a>';
        return;
    }

    $query = "insert into mahasiswa (nama, username, password, email) values('$nama', '$username', '$password', '$email')";
    
    if($koneksi->query($query)===true){        
        echo '<br><div class="alert alert-success alert-dismissable">Data '.$nama.' berhasil disimpan. <a href="index.php">  Lihat Data</a></div>';
    } else{
        echo '<br><div class="alert alert-danger alert-dismissable">Data gagal disimpan! Kembali ke <a href="index.php">  Halaman Awal</a></div>';
    }
    
    $koneksi->close();
?>

</div>

7. tambah.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
    <script type="text/javascript" src="assets/js/jquery.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.js"></script>
    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="assets/js/jquery.validate.min.js"></script>
    <title> Data Member </title>
</head>

<body>
    <?php 
        include ('header.php');
    ?>
    
    <!-- start form tambah data -->
    <div class="container">
        <br>  
        <h2><i class="fa fa-angle-double-right"></i> Tambah Data <i class="fa fa-angle-double-right"></h2>
        <i>NAMA : FATHUL HARIS STALAS</i>
        <br>
        <i>NIM : 17090111</i>
        <br>
        <i>KELAS : 5C </i>
        <hr>
        <br>

        <form id="inputdata" class="form-horizontal" method="post" action="simpan.php">
            <div class="form-group">
                <label for="nim">Nama</label>
                <div>
                    <input type="text" class="form-control" id="nama" name="nama">
                </div>
            </div>

            <div class="form-group">
                <label for="nama">Username</label>
                <div>
                    <input type="text" class="form-control" id="username" name="username">
                </div>
            </div>

            <div class="form-group">
                <label for="nama">Password</label>
                <div>
                    <input type="text" class="form-control" id="password" name="password">
                </div>
            </div>

            <div class="form-group">
                <label for="nama">Email</label>
                <div>
                    <input type="text" class="form-control" id="email" name="email">
                </div>
            </div>

            <div class="form-group">
                <div>
                    <button type="submit" class="btn btn-success"><i class="fa fa-save"></i> Simpan</button>
                    <a href="index.php" class="btn btn-danger"><i class="fa fa-ban"></i> Batal</a>
                </div>
            </div>                    
        </form>
    </div>
    <!-- end form tambah data -->

    

    <script language="javascript">
        $.validator.addMethod("alpha", function(value, element){
            return this.optional(element) || value.match(/^[a-zA-Z\s]+$/);
        });
        $("#inputdata").validate({
            rules: {
                username: "required",
                nama: {
                    required: true,
                    alpha: true
                },
                email: {
                    required: true,
                    email: true
                },
                password: {
                    required: true,
                    minlength: 8
                }
            },
            message: {
                username: "Masukkan username anda!",
                nama: {
                    required: "Masukkan nama anda!",
                    alpha: "Inputan hanya diperbolehkan huruf dan spasi!"
                },
                email: "Masukkan email anda yang valid!",
                password: {
                    required: "Masukkan password anda!",
                    minlength: "Password minimal 8 karakter!"
                }
            },
            submitHandler: function(form) {
                form.submit();
            }
        });
    </script>

</body>

</html>


8. update.php
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css">
<script type="text/javascript" src="assets/js/jquery.js"></script>
<script type="text/javascript" src="assets/js/bootstrap.js"></script>
<script type="text/javascript" src="assets/js/bootstrap.min.js"></script>

<div class="container">
<?php
    require_once('koneksi.php');
    $koneksiObj = new Koneksi();
    $koneksi = $koneksiObj->getKoneksi();

    if($koneksi->connect_error){
        echo "Gagal Koneksi : ". $koneksi->connect_error;
    } 
    
    $id         = $_POST['id'];
    $nama       = $_POST['nama'];
    $username   = $_POST['username'];
    $password   = $_POST['password'];
    $email      = $_POST['email'];

    if($id=='' || $nama=='' || $username=='' || $password=='' || $email==''){
        echo "Gagal update, pastikan semua kolom di form telah terisi!<br>";
        echo '<a href="index.php">kembali</a>';
        return;
    }

    $query1 = "select * from mahasiswa where username='$username' or email='$email'";
    $count = $koneksi->query($query1);
    if($count->num_rows > 0){
        echo "Username atau Email sudah terdaftar, mohon periksa kembali!";
        echo '<a href="index.php">Kembali ke halaman awal</a>';
        return;
    }

    $query = "update members set nama='$nama', username='$username', password='$password', email='$email' where id='$id'";
    
    if($koneksi->query($query)===true){
        echo '<br><div class="alert alert-success alert-dismissable">Data '.$nama.' berhasil diupdate. <a href="index.php">  Lihat Data</a></div>';
    } else{
        echo '<br><div class="alert alert-danger alert-dismissable">Data gagal diupdate! Kembali ke <a href="index.php">  Halaman Awal</a></div>';
    }
    
    $koneksi->close();
?>
</div>

itu scrip CRUD dengan php dengan MySQL untuk lebih lengkapnya bisa download di link ini 

https://drive.google.com/file/d/1MhSdCsLg5r17VWOY0cvNmf1TMkQxAEsm/view?usp=sharing

itu saja yang bisa saya sampaikan apabila ada kekurangan mohon maaf .terimakasih