Saturday, May 30, 2020

Tugas UAS Semester 2 Brian.

Belajar Membuat CRUD dan Fitur Login dengan PHP dan                                               MySQL
                              Oleh: Brian Aria
 CRUD adalah akronim untuk Create, Read, Update dan Delete. Operasi CRUD adalah manipulasi data dasar untuk database. Pada pertemuan kali ini saya akan membuat sebuah aplikasi sederhana dengan tampilan di bawah ini dengan menampilkan sebuah tabel dengan data dari database di sisi frontend Serta Bagian Login untuk Bagian Pertamanya. Terdapat beberapa tombol untuk mengubah data, menghapus serta menampilkan data. Tabel pengguna yang kita buat berisi data pribadi pengguna seperti NIM, nama, jurusan, alamat dan foto.
 
 Untuk Membuat CRUD Perlu Beberapa Keperluan Berikut: 
 -Folder dengan nama “CRUD_MHS” dan Subfolder "admin"
 -File Bootstrap, JavaScript, Font-awesome dan ckeditor 
-Folder khusus dengan nama “images” 
-Xampp, teks editor dan browser 
 Pertama-tama Bikin Database "Perpus2" dulu dan bikin Tabel "mahasiswa" seperti dibawah berikut:
Habis itu Bikin Tabel Dibawah Berikut:
 











Membuat Koneksi PHP dan MySQL (Admin)
 Setelah selesai membuat database, langkah selanjutnya adalah kita membuat koneksi PHP dengan database MySQL Kita Kerjain di Subfolder Admin,Karena Itu Buat Bagian Keduanya. Buat sebuah file koneksi.php. Pada file koneksi.php inilah nantinya akan kita buat koneksi PHP dengan MySQL 
 Koneksi.php:

  1. <?php
  2. $host="localhost";
  3. $user="root";
  4. $pass="";
  5. $database="perpus2";
  6. $mysqli=new mysqli($host,$user,$pass,$database);
  7. if (mysqli_connect_errno()) {
  8. trigger_error('Koneksi ke database gagal: '  . mysqli_connect_error(), E_USER_ERROR);
  9. }
  10. ?>
Setelah Koneksi.php Kita Juga  harus bikin Paging.php Sebab Paging.php itu buat memunculkan Dan MeRespon Apa Arti Ketikan KIta Di Dalam Php Itu.
Paging.php

  1. <?php
  2. class paging_mahasiswa{

  3. function cariPosisi($batas){

  4. if(empty($_GET['home'])){
  5. $posisi=0;
  6. $_GET['home']=1;
  7. }
  8. else{
  9. $posisi = ($_GET['home']-1) * $batas;
  10. }
  11. return $posisi;
  12. }

  13. // Fungsi untuk menghitung total halaman
  14. function jumlahHalaman($jmldata, $batas){
  15. $jmlhalaman = ceil($jmldata/$batas);
  16. return $jmlhalaman;
  17. }

  18. // Fungsi untuk link halaman 1,2,3 
  19. function navHalaman($halaman_aktif, $jmlhalaman){
  20. $link_halaman = "<li class='page-item'></li>";

  21. // Link ke halaman pertama (first) dan sebelumnya (prev)
  22. if($halaman_aktif > 1){
  23. $prev = $halaman_aktif-1;
  24. $link_halaman .= " 
  25. <li class='page-item'><a class='page-link' href=index.php?home>First</a></li>
  26. <li class='page-item'><a class='page-link' href=index.php?home=$prev> Prev</a></li>  ";
  27. }
  28. else{ 
  29. $link_halaman .= "  <li class='page-item disabled'><a class='page-link' href='#' tabindex='-1' aria-label='Previous'>  Previous </a></li>  ";
  30. }

  31. // Link halaman 1,2,3, ...
  32. $angka = ($halaman_aktif > 3 ? "<li class='page-item'> <span aria-hidden='true'>...</span> " : " </li>"); 
  33. for ($i=$halaman_aktif-2; $i<$halaman_aktif; $i++){
  34.   if ($i < 1)
  35.   continue;
  36.   $angka .= "<li class='page-item'><a class='page-link' href=index.php?home=$i>$i</a></li>  ";
  37.   }
  38.   $angka .= " <li class='page-item active'>  <a class='page-link' href='#'>$halaman_aktif</a> <span class='sr-only'>(current)</span></li>  ";
  39.   
  40. for($i=$halaman_aktif+1; $i<($halaman_aktif+3); $i++){
  41.     if($i > $jmlhalaman)
  42.       break;
  43.   $angka .= "<li class='page-item'><a class='page-link' href=index.php?home=$i>$i</a></li>  ";
  44.     }
  45. $angka .= ($halaman_aktif+2<$jmlhalaman ? " <li class='page-item'>  <span aria-hidden='true'>...</span> <a  class='page-link' href=index.php?home=$jmlhalaman>  $jmlhalaman</a>  " : " </li>");
  46. $link_halaman .= "<li class='page-item'>$angka</li>";

  47. // Link ke halaman berikutnya (Next) dan terakhir (Last) 
  48. if($halaman_aktif < $jmlhalaman){
  49. $next = $halaman_aktif+1;
  50. $link_halaman .= "
  51. <li class='page-item'><a class='page-link' href=index.php?home=$next>Next</a></li>
  52. <li class='page-item'><a class='page-link' href=index.php?home=$jmlhalaman>Last </a><li>";
  53. }
  54. else{
  55. $prev = $halaman_aktif-1;
  56. $link_halaman .= " <li class='page-item'><a class='page-link' href='index.php?home=$next' aria-label='Next'> Next</a></li> ";
  57. }
  58. return $link_halaman;
  59. }
  60. }
  61. ?>



Membuat Page Buatlah sebuah file dengan nama pages.php. File ini digunakan agar dapat memudahkan kita dalam pemanggilan halaman.

Pages.php


  1. <?php
  2. error_reporting( error_reporting() & ~E_NOTICE );
  3. include "koneksi.php";


  4. if ($_GET['page']=="add") {
  5. include "add.php";
  6. }

  7. else if ($_GET['page']=="create") {
  8. include "create.php";
  9. }

  10. else if ($_GET['page']=="edit") {
  11. include "edit.php";
  12. }

  13. else if ($_GET['page']=="update") {
  14. include "update.php";
  15. }

  16. else if ($_GET['page']=="delete") {
  17. include "delete.php";
  18. }

  19. else if ($_GET['page']=="add2") {
  20. include "add2.php";
  21. }

  22. else if ($_GET['page']=="create2") {
  23. include "create2.php";
  24. }

  25. else if ($_GET['page']=="edit2") {
  26. include "edit2.php";
  27. }

  28. else if ($_GET['page']=="update2") {
  29. include "update2.php";
  30. }

  31. else if ($_GET['page']=="delete2") {
  32. include "delete2.php";
  33. }

  34. else{
  35. include "read.php";
  36. }
  37. ?>


Menampilkan Data dari Database Admin Buat sebuah file dengan nama index.php. Pada file ini kita akan menampilkan NavBar, pemanggilan CSS, Bootstrap, Google font, dll. Serta pemanggilan halaman-halaman lain. Index.php ini merupakan halaman utama dari aplikasi CRUD yang kita buat. 

Index.php 


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>

  4. <title>BELAJAR CRUD</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  7. <meta http-equiv="x-ua-compatible" content="ie-edge">

  8. <link rel="stylesheet" href="css/bootstrap.css">
  9. <link rel="stylesheet" href="css/style.css">
  10. <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">

  11. </head>
  12. <body>

  13. <div id="wrapper">

  14. <nav class="navbar navbar-light bg-faded">
  15. <a class="navbar-brand" href="pancasaputra.wordpress.com">WEB PROGRAMMING 1</a>
  16. <ul class="nav navbar-nav">
  17. <li class="nav-item active">
  18. <a class="nav-link" href="index.php">Home<span class="sr-only">(current)</span></a>
  19. </li>
  20. <li class="nav-item">
  21. <a class="nav-link" href="index.php?page=add">Tambah Data</a>
  22. <li class="nav-item">
  23. <a class="nav-link" href="index.php?page=add2">Tambah Buku</a>
  24. <li class="nav-item">
  25. <a class="nav-link" href="logout.php">LOGOUT</a>
  26. </li>
  27. </ul>
  28. </nav>

  29. <div class="container box">
  30. <?php include "pages.php";?>
  31. </div>

  32. </div>


  33. <script src="js/jquery.min.js"></script>
  34. <script src="js/bootstrap.js"></script>
  35. <script src="ckeditor/ckeditor.js"></script>
  36. <script type="text/javascript">
  37. CKEDITOR.replace( 'alamat',{height:300} );
  38. </script>
  39. </body>
  40. </html>

Langkah selanjutnya adalah membuat file dengan nama read.php. Pada file ini kita akan buat untuk menampilkan hasil dari inputan data. read.php juga berisi tombol input, hapus, update dan details yang dihubungkan dengan file lain.

read.php


  1. <table class="table table-striped">
  2. <thead>
  3. <tr>
  4. <th>#</th>
  5. <th>NIM</th>
  6. <th>Nama Mahasiswa</th>
  7. <th>Jurusan</th>
  8. <th>Alamat</th>
  9. <th>Foto</th>
  10. <th>Action</th>
  11. </tr>
  12. </thead>
  13. <tbody>


  14. <?php
  15. $no = 0;
  16. $mahasiswa=$mysqli->query("SELECT * FROM mahasiswa");
  17. while($m=mysqli_fetch_array($mahasiswa)){
  18. $no++;
  19. ?>

  20. <?php
  21. include"paging.php";
  22. $p  = new paging_mahasiswa;
  23. $batas = 5;
  24. $posisi = $p->cariPosisi($batas);
  25. $mahasiswa=$mysqli->query("SELECT * FROM mahasiswa
  26. ORDER BY id DESC LIMIT $posisi,$batas");
  27. $no=0;
  28. while($m=mysqli_fetch_array($mahasiswa)){
  29. $no++;
  30. ?>

  31. <tr>
  32. <th scope="row"><?php echo $no;?></th>
  33. <td><?php echo $m['nim']; ?></td>
  34. <td><?php echo $m['nama']; ?></td>
  35. <td><?php echo $m['jurusan']; ?></td>
  36. <td><?php echo $m['alamat']; ?></td>
  37. <td><img src="images/<?php echo $m['gambar'];?>" height="50"></td>
  38. <td>
  39. <button type="button" class="btn btn-dark"><a href="index.php?page=edit&id=<?php echo $m['id'];?>">Edit<i class="fa fa-pencil"></i></a></button> |
  40. <button type="button" class="btn btn-info"><a href="index.php?page=details&id=<?php echo $m['id'];?>">Details<i class="fa fa-info"></i></a></button> |
  41. <button type="button" class="btn btn-danger"><a href="index.php?page=delete&id=<?php echo $m['id'];?>"onclick="return confirm('Anda yakin mau menghapus Data ini ?')">Hapus<i class="fa fa trash-o"></i></a></button>
  42. </td>
  43. </tr>

  44. <?php } ?>

  45. </tbody>
  46. </table>

  47. <div class="halaman">
  48. <nav aria-label="...">
  49. <ul class="pagination">

  50. <?php } ?>
  51. <?php
  52. $jmldata       = mysqli_num_rows($mysqli->query("SELECT * FROM mahasiswa"));
  53. $jmlhalaman    = $p->jumlahHalaman($jmldata, $batas);
  54. $linkHalaman   = $p->navHalaman($_GET['home'], $jmlhalaman);
  55. echo " <li class='page-item'> $linkHalaman </li>"; 
  56. ?>

  57. </ul>
  58. </nav>
  59. </div>

  60. <table class="table table-striped">
  61. <thead>
  62. <tr>
  63. <th>#</th>
  64. <th>Kode</th>
  65. <th>Judul Buku</th>
  66. <th>Penerbit</th>
  67. <th>Jenis Buku</th>
  68. <th>Referensi</th>
  69. <th>Foto</th>
  70. <th>Action</th>
  71. </tr>
  72. </thead>
  73. <tbody>


  74. <?php
  75. $no = 0;
  76. $buku=$mysqli->query("SELECT * FROM buku");
  77. while($m=mysqli_fetch_array($buku)){
  78. $no++;
  79. ?>

  80. <?php
  81. include"paging2.php";
  82. $p  = new paging_buku;
  83. $batas = 5;
  84. $posisi = $p->cariPosisi($batas);
  85. $buku=$mysqli->query("SELECT * FROM buku
  86. ORDER BY id DESC LIMIT $posisi,$batas");
  87. $no=0;
  88. while($m=mysqli_fetch_array($buku)){
  89. $no++;
  90. ?>

  91. <tr>
  92. <th scope="row"><?php echo $no;?></th>
  93. <td><?php echo $m['kode']; ?></td>
  94. <td><?php echo $m['judul_buku']; ?></td>
  95. <td><?php echo $m['penerbit']; ?></td>
  96. <td><?php echo $m['jenis_buku']; ?></td>
  97. <td><?php echo $m['referensi']; ?></td>
  98. <td><img src="images/<?php echo $m['gambar'];?>" height="50"></td>
  99. <td>
  100. <button type="button" class="btn btn-dark"><a href="index.php?page=edit2&id=<?php echo $m['id'];?>">Edit<i class="fa fa-pencil"></i></a></button> |
  101. <button type="button" class="btn btn-info"><a href="index.php?page=details2&id=<?php echo $m['id'];?>">Details<i class="fa fa-info"></i></a></button> |
  102. <button type="button" class="btn btn-danger"><a href="index.php?page=delete2&id=<?php echo $m['id'];?>"onclick="return confirm('Anda yakin mau menghapus Data ini ?')">Hapus<i class="fa fa trash-o"></i></a></button>
  103. </td>
  104. </tr>

  105. <?php } ?>

  106. </tbody>
  107. </table>

  108. <div class="halaman">
  109. <nav aria-label="...">
  110. <ul class="pagination">

  111. <?php } ?>
  112. <?php
  113. $jmldata       = mysqli_num_rows($mysqli->query("SELECT * FROM buku"));
  114. $jmlhalaman    = $p->jumlahHalaman($jmldata, $batas);
  115. $linkHalaman   = $p->navHalaman($_GET['home'], $jmlhalaman);
  116. echo " <li class='page-item'> $linkHalaman </li>"; 
  117. ?>

  118. </ul>
  119. </nav>
  120. </div>

  121. <br>
  122.                      
  123.                     <div>
  124.                         <br><br><?php include "footer.php"; ?>
  125.                     </div>


Berikut adalah tampilan dari index.php dan read.php

Menginput atau Menambahkan Data ke Database Siapkan sebuah file dengan nama add.php. file add.php ini akan kita jadikan form inputan data. Jadi, data yang akan terinput pada database akan kita masukan melalui form pada add.php ini.
 add.php

  1. <form name="form_mahasiswa" action="index.php?page=create" method="post" enctype="multipart/form-data">

  2. <div class="form-group">
  3. <label for="NIM">NIM</label>
  4. <input type="text" class="form-control" id="nim" placeholder="Input Nomor Induk Mahasiswa" name="nim" required>
  5. </div>

  6. <div class="form-group">
  7. <label for="Nama">Nama</label>
  8. <input type="text" class="form-control" id="nama" placeholder="Input Nama" name="nama" required>
  9. </div>

  10. <div class="form-group">
  11. <label for="Jurusan">Pilih Jurusan</label>
  12. <select name="jurusan" class="form-control" id="jurusan" required>
  13. <option value="">None</option>
  14. <option value="Sistem Informasi">Sistem Informasi</option>
  15. <option value="Teknik Informatika">Teknik Informatika</option>
  16. <option value="Teknik Komputer">Teknik Komputer</option>
  17. <option value="Sistem Informasi Akutansi">Sistem Informasi Akutansi</option>
  18. </select>
  19. </div>

  20. <div class="form-group">
  21. <label for="Alamat">Alamat</label>
  22. <textarea class="form-control" id="alamat" placeholder="Alamat" name="alamat" required>
  23. </textarea>
  24. </div>

  25. <div class="form-group">
  26. <label for="Gambar">Input Foto</label>
  27. <input type="file" class="form-control" id="gambar" name="gambar" required>
  28. </div>

  29. <div class="form-group">
  30. <button type="reset" class="btn btn-danger">Reset</button>
  31. <button type="sumbit" class="btn btn-primary">Simpan</button>
  32. </div>


Perhatikan pada syntax diatas, kita membuat form yang mengarah pada index.php?page=create atau create.php. Jadi, dengan create.php kita menangkap data yang di input dan kemudian mengirimkannya ke database untuk di simpan. Oleh karena itu, siapkan file dengan nama create.php create.php 


  1. ?php
  2. $nim = $_POST['nim'];
  3. $nama = $_POST['nama'];
  4. $jurusan = $_POST['jurusan'];
  5. $alamat = $_POST['alamat'];
  6. $gambar = $_FILES['gambar']['name'];
  7. $mysqli->query("INSERT INTO mahasiswa(nim,nama,jurusan,alamat,gambar) VALUES('$nim','$nama','$jurusan','$alamat','$gambar')");
  8. move_uploaded_file($_FILES['gambar']['tmp_name'],'images/'.$gambar);
  9. header('location:index.php');
  10. ?>



Selain yg 2 di atas kita harus juga bikin add2.php dan create2.php karena 2 bagian yg di atas itu menggunakan data dari tabel mahasiswa sementara 2 bagian itu yg kita akan buat itu mengguakan  database tabel buku.

add2.php

  1. <form name="form_mahasiswa" action="index.php?page=create2" method="post" enctype="multipart/form-data">

  2. <div class="form-group">
  3. <label for="Kode">Kode</label>
  4. <input type="text" class="form-control" id="kode" placeholder="Input Nomor Kode Buku" name="kode" required>
  5. </div>

  6. <div class="form-group">
  7. <label for="Judul Buku">Judul Buku</label>
  8. <input type="text" class="form-control" id="judul buku" placeholder="Input Judul buku" name="judul buku" required>
  9. </div>

  10. <div class="form-group">
  11. <label for="Penerbit">Pilih Penerbit Buku</label>
  12. <select name="penerbit buku" class="form-control" id="penerbit buku" required>
  13. <option value="">None</option>
  14. <option value="Elex Media Komputindo">Elex Media Komputindo</option>
  15. <option value="Kompas Gramedia">Kompas Gramedia</option>
  16. <option value="Penerbit Erlangga">Penerbit Erlangga</option>
  17. <option value="Erlangga for Kids">Erlangga For Kids</option>
  18. </select>
  19. </div>

  20. <div class="form-group">
  21. <label for="Jenis Buku">Pilih Jenis Buku</label>
  22. <select name="jenis buku" class="form-control" id="jenis buku" required>
  23. <option value="">None</option>
  24. <option value="Parodi">Parodi</option>
  25. <option value="Horror">Horror</option>
  26. <option value="Komedi">Komedi</option>
  27. <option value="Romantik">Romantik</option>
  28. </select>
  29. </div>


  30. <div class="form-group">
  31. <label for="Referensi">Referensi</label>
  32. <textarea class="form-control" id="referensi" placeholder="Referensi" name="referensi" required>
  33. </textarea>
  34. </div>

  35. <div class="form-group">
  36. <label for="Gambar">Input Foto</label>
  37. <input type="file" class="form-control" id="gambar" name="gambar" required>
  38. </div>

  39. <div class="form-group">
  40. <button type="reset" class="btn btn-danger">Reset</button>
  41. <button type="sumbit" class="btn btn-primary">Simpan</button>
  42. </div>

create2.php

  1. <?php
  2. $kode = $_POST['kode'];
  3. $judul_buku = $_POST['judul buku'];
  4. $penerbit = $_POST['penerbit'];
  5. $jenis_buku = $_POST['jenis_buku'];
  6. $referensi = $_POST['referensi'];
  7. $gambar = $_FILES['gambar']['name'];
  8. $mysqli->query("INSERT INTO buku(kode,judul_buku,penerbit,jenis_buku,referensi,gambar) VALUES('$kode','$jenis_buku','$penerbit','$jenis_buku','$referensi','$gambar')");
  9. move_uploaded_file($_FILES['gambar']['tmp_name'],'images/'.$gambar);
  10. header('location:index.php');
  11. ?>

Perhatikan syntax terakhir. Setelah kita menginput data ke database, kita dialihkan kembali ke halaman index dengan syntax:
  1. header('location:index.php');


Setelah kita bikin yg di atas tadi ,Kita akan coba untuk melihat hasilnya. Klik pada tombol tambah baru yang akan mengalihkan halaman ke add.php/add2.php
add.php


add2.php

Kemudian akan tampil form input seperti ini kemudian isikan data yang ingin di input
                                                                           (add.php)
(add2.php)

Kemudian klik simpan. maka hasilnya:
(add.php)->
(add2.php)->



Menampilkan Details di Admin (Blm Bisa)
dari Data yang Diinput Sebelumnya, coba perhatikan pada file read.php yang menampilkan data. Disana terdapat link details yang sudah kita buat untuk mengarahkan halaman ke halaman details.


  1. <button type="button" class="btn btn-info"><a href="index.php?page=details&id=<?php echo $m['id'];?>">Details<i class="fa fa-info"></i></a></button> |
  1. <button type="button" class="btn btn-info"><a href="index.php?page=details2&id=<?php echo $m['id'];?>">Details<i class="fa fa-info"></i></a></button> |


Oleh karena itu, Buatlah file dengan nama details.php. Pada file ini kita akan menampilkan detail dari file yang kita input.
Source Code details.php dan details2.php

 Details.php



  1. <?php 
  2.   $id = $_GET["id"];
  3.   $details = $mysqli->query("SELECT * FROM mahasiswa WHERE id = $id");
  4.   $d = mysqli_fetch_array($details);
  5.  ?>
  6.  
  7.  
  8.   <div class="container">
  9.     <div class="row justify-content-center">
  10.       <div class="col-md-6 mt-3 bg-light p-4 rounded">
  11.         <h2 class="bg-light p-2 rounded  text-center text-dark"> Data Calon Anggota BSI </h2>
  12.         <hr class="my-3">
  13.         <div class="text-center">
  14.           <img src="images/<?= $d["gambar"]; ?>" width="250" class="img-thumnail mt-3"> 
  15.         </div>
  16.         <h6 class="text-dark text-center mt-3">NIM  : <?= $d["nim"]; ?></h6>
  17.         <h6 class="text-dark text-center">Nama  : <?= $d["nama"]; ?></h6>
  18.         <h6 class="text-dark text-center">Jurusan  : <?= $d["jurusan"]; ?></h6>
  19.         <h6 class="text-dark text-center">Alamat  : <?= $d["alamat"]; ?></h6>
  20.       </div>
  21.     </div>
  22.   </div>
Detail2.php


  1. <?php 
  2.   $id = $_GET["id"];
  3.   $details = $mysqli->query("SELECT * FROM Buku WHERE id = $id");
  4.   $d = mysqli_fetch_array($details);
  5.  ?>
  6.  
  7.  
  8.   <div class="container">
  9.     <div class="row justify-content-center">
  10.       <div class="col-md-6 mt-3 bg-light p-4 rounded">
  11.         <h2 class="bg-light p-2 rounded  text-center text-dark"> Data Buku Anggota BSI </h2>
  12.         <hr class="my-3">
  13.         <div class="text-center">
  14.           <img src="images/<?= $d["gambar"]; ?>" width="250" class="img-thumnail mt-3"> 
  15.         </div>
  16.         <h6 class="text-dark text-center mt-3">Kode  : <?= $d["kode"]; ?></h6>
  17.         <h6 class="text-dark text-center">Judul Buku  : <?= $d["judul_buku"]; ?></h6>
  18.         <h6 class="text-dark text-center">Penerbit  : <?= $d["penerbit"]; ?></h6>
  19.         <h6 class="text-dark text-center">Jenis Buku  : <?= $d["jenis_buku"]; ?></h6>
  20.         <h6 class="text-dark text-center">Referensi  : <?= $d["referensi"]; ?></h6>
  21.         
  22.       </div>
  23.     </div>
  24.   </div>

Kita Udah Coba Bagian Itu Tetapi Saat Aku Coba Bagian Detail.php dan Detail2.php tetap nggak respon Jadi Jika Bagian Detail itu nggak Tolong Beritahu Coba Kasih Tahu Caranya ke Kita Di Komentar Bawah kita. :(




Mengedit/Mengupdate Data
Pada Database Sebelumnya perhatikan lagi file read.php. Disana terdapat link edit yang akan mengarahkan kita ke halaman form edit sekaligus mengirimkan data yang mau di edit.


  1. <button type="button" class="btn btn-dark"><a href="index.php?page=edit&id=<?php echo $m['id'];?>">Edit<i class="fa fa-pencil"></i></a></button> |

  1. <button type="button" class="btn btn-dark"><a href="index.php?page=edit2&id=<?php echo $m['id'];?>">Edit<i class="fa fa-pencil"></i></a></button> |

Oleh karena itu kita akan membuat file dengan nama edit.php untuk membuat form edit. Form eddit inilah yang nantinya akan menampilkan data yang akan di edit.

edit.php
<?php
$edit=$mysqli->query("select*from mahasiswa where id='$_GET[id]'");
$e=mysqli_fetch_array($edit);
?>

<form name="form_mahasiswa" action="index.php?page=update" method="post" enctype="multipart/form-data">

<div class="form-group">
<label for="NIM">NIM</label>
<input type="hidden" name="id" value="<?php echo $e['id'];?>">
<input type="text" class="form-control" id="nim" placeholder="Input Nomor Induk Mahasiswa" name="nim" required value="<?php echo $e['nim'];?>">
</div>

<div class="form-group">
<label for="Nama">Nama</label>
<input type="text" class="form-control" id="nama" placeholder="Input Nama" name="nama" required value="<?php echo $e['nama'];?>">
</div>

<div class="form-group">
<label for="Jurusan">Jurusan</label>
<select name="jurusan" class="form-control" id="jurusan" name="jurusan" required>
<option value="<?php echo $e['jurusan'];?>"><?php echo $e['jurussan'];?></option>
<option value="Sistem Informasi">Sistem Informasi</option>
<option value="Teknik Informatika">Teknik Informatika</option>
<option value="Teknik Komputer">Teknik Komputer</option>
<option value="Sistem Informasi Akutansi">Sistem Informasi Akutansi</option>
 </select>
</div>

<div class="form-group">
<label for="Alamat">Alamat</label>
<textarea class="form-control" id="alamat" placeholder="Alamat" name="alamat" required><?php echo $e['alamat'];?></textarea>
</div>

<div class="form-group">
<label for="Gambar">Gambar</label>
<input type="file" class="form-control" id="gambar" name="gambar">
<span><?php echo $e['gambar'];?></span>
</div>

<div class="form-group">
<button type="reset" class="btn btn-danger">Reset</button>
<button type="sumbit" class="btn btn-primary">Update</button>
</div>

</form>

edit2.php
<?php
$edit=$mysqli->query("select*from buku where id='$_GET[id]'");
$e=mysqli_fetch_array($edit);
?>

<form name="form_mahasiswa" action="index.php?page=update2" method="post" enctype="multipart/form-data">

<div class="form-group">
<label for="Kode">Kode</label>
<input type="text" class="form-control" id="kode" placeholder="Input Nomor Kode Buku" name="kode" required>
</div>

<div class="form-group">
<label for="Judul Buku">Judul Buku</label>
<input type="text" class="form-control" id="judul buku" placeholder="judul buku" name="judul buku" required>
</div>

<div class="form-group">
<label for="Penerbit">Pilih Penerbit Buku</label>
<select name="penerbit buku" class="form-control" id="penerbit buku" required>
<option value="">None</option>
<option value="Elex Media Komputindo">Elex Media Komputindo</option>
<option value="Kompas Gramedia">Kompas Gramedia</option>
<option value="Penerbit Erlangga">Penerbit Erlangga</option>
<option value="Erlangga for Kids">Erlangga For Kids</option>
</select>
</div>

<div class="form-group">
<label for="Jenis Buku">Pilih Jenis Buku</label>
<select name="jenis buku" class="form-control" id="jenis buku" required>
<option value="">None</option>
<option value="Parodi">Parodi</option>
<option value="Horror">Horror</option>
<option value="Komedi">Komedi</option>
<option value="Romantik">Romantik</option>
</select>
</div>


<div class="form-group">
<label for="Referensi">Referensi</label>
<textarea class="form-control" id="referensi" placeholder="Referensi" name="referensi" required>
</textarea>
</div>

<div class="form-group">
<label for="Gambar">Input Foto</label>
<input type="file" class="form-control" id="gambar" name="gambar" required>
</div>

<div class="form-group">
<button type="reset" class="btn btn-danger">Reset</button>
<button type="sumbit" class="btn btn-primary">Update</button>

</div>


Bisa lihat syntax diatas, method pengiriman data pada form ini kita menggunakan post dan actionnya mengarah ke update.php dan update2.php


  1. <form name="form_mahasiswa" action="index.php?page=update" method="post" enctype="multipart/form-data">
  1. <form name="form_mahasiswa" action="index.php?page=update" method="post" enctype="multipart/form-data">


Oleh sebab itu kita buat sebuah file baru dengan nama update.php untuk memproses form ini.

update.php

  1. <?php
  2. $edit=$mysqli->query("select*from mahasiswa where id='$_GET[id]'");
  3. $e=mysqli_fetch_array($edit);
  4. ?>

  5. <form name="form_mahasiswa" action="index.php?page=update" method="post" enctype="multipart/form-data">

  6. <div class="form-group">
  7. <label for="NIM">NIM</label>
  8. <input type="hidden" name="id" value="<?php echo $e['id'];?>">
  9. <input type="text" class="form-control" id="nim" placeholder="Input Nomor Induk Mahasiswa" name="nim" required value="<?php echo $e['nim'];?>">
  10. </div>

  11. <div class="form-group">
  12. <label for="Nama">Nama</label>
  13. <input type="text" class="form-control" id="nama" placeholder="Input Nama" name="nama" required value="<?php echo $e['nama'];?>">
  14. </div>

  15. <div class="form-group">
  16. <label for="Jurusan">Jurusan</label>
  17. <select name="jurusan" class="form-control" id="jurusan" name="jurusan" required>
  18. <option value="<?php echo $e['jurusan'];?>"><?php echo $e['jurussan'];?></option>
  19. <option value="Sistem Informasi">Sistem Informasi</option>
  20. <option value="Teknik Informatika">Teknik Informatika</option>
  21. <option value="Teknik Komputer">Teknik Komputer</option>
  22. <option value="Sistem Informasi Akutansi">Sistem Informasi Akutansi</option>
  23.  </select>
  24. </div>

  25. <div class="form-group">
  26. <label for="Alamat">Alamat</label>
  27. <textarea class="form-control" id="alamat" placeholder="Alamat" name="alamat" required><?php echo $e['alamat'];?></textarea>
  28. </div>

  29. <div class="form-group">
  30. <label for="Gambar">Gambar</label>
  31. <input type="file" class="form-control" id="gambar" name="gambar">
  32. <span><?php echo $e['gambar'];?></span>
  33. </div>

  34. <div class="form-group">
  35. <button type="reset" class="btn btn-danger">Reset</button>
  36. <button type="sumbit" class="btn btn-primary">Update</button>
  37. </div>
  38. </form>
update2.php
  1. <?php
  2. $gambar  = $_FILES['gambar']['name'];
  3. // Apabila gambar tidak diganti
  4. if(empty($gambar)){
  5. $mysqli->query("UPDATE mahasiswa SET nim    = '$_POST[nim]',
  6. nama   = '$_POST[nama]',
  7.     jurusan   = '$_POST[jurusan]',
  8.     alamat   = '$_POST[alamat]'
  9.     WHERE id = '$_POST[id]'");
  10. }else{
  11. $hapus= $mysqli->query("select*from mahasiswa where id='$_POST[id]'");
  12. // menghapus gambar yang lama
  13. $nama_gambar=mysqli_fetch_array($hapus);
  14. // nama field gambar
  15. $lokasi=$nama_gambar['gambar'];
  16. //alamat tempat foto
  17. $hapus_gambar="images/$lokasi";
  18. //script untuk menghapus gambar dari folder
  19. unlink($hapus_gambar);
  20. move_uploaded_file($_FILES['gambar']['tmp_name'],'images/'.$gambar);
  21. $mysqli->query("UPDATE mahasiswa SET nim    = '$_POST[nim]',
  22. nama   = '$_POST[nama]',
  23.     jurusan   = '$_POST[jurusan]',
  24.     alamat   = '$_POST[alamat]',
  25.     gambar = '$gambar'
  26.     WHERE id = '$_POST[id]'");
  27. }
  28. header('location:index.php');
  29. ?>

Sekarang coba ubah data dengan klik edit.
Setelah mengklik perbarui Data Brian akan berubah seperti dibawah ini.
(Bagian Buku Di Bawahnya Bagian Mahasiswa juga bisa kalau kamu ikutin cara update2 di atas tadi.)


Menghapus Data Pada Database Untuk membuat hapus data PHP langkah pertamanya adalah membuat file baru dengan nama delete.php. Karena pada read.php kita membuat link yang mengarahkan pada file delete.php


  1. <button type="button" class="btn btn-danger"><a href="index.php?page=delete&id=<?php echo $m['id'];?>"onclick="return confirm('Anda yakin mau menghapus Data ini ?')">Hapus<i class="fa fa trash-o"></i></a></button>


  1. <button type="button" class="btn btn-danger"><a href="index.php?page=delete&id=<?php echo $m['id'];?>"onclick="return confirm('Anda yakin mau menghapus Data ini ?')">Hapus<i class="fa fa trash-o"></i></a></button>
Delete.php


  1. <?php
  2. $hapus= $mysqli->query("select*from mahasiswa where id='$_GET[id]'");
  3. // memilih gambar untuk dihapus
  4. $nama_gambar=mysqli_fetch_array($hapus);
  5. // nama field gambar
  6. $lokasi=$nama_gambar['gambar'];
  7. //alamat tempat gambar
  8. $hapus_gambar="images/$lokasi";
  9. //script delete gambar dari folder
  10. unlink($hapus_gambar);
  11. $mysqli->query("DELETE FROM mahasiswa WHERE id='$_GET[id]'");
  12. header('location:index.php');
  13. ?>

Delete2.php
  1. <?php
  2. $hapus= $mysqli->query("select*from buku where id='$_GET[id]'");
  3. // memilih gambar untuk dihapus
  4. $nama_gambar=mysqli_fetch_array($hapus);
  5. // nama field gambar
  6. $lokasi=$nama_gambar['gambar'];
  7. //alamat tempat gambar
  8. $hapus_gambar="images/$lokasi";
  9. //script delete gambar dari folder
  10. unlink($hapus_gambar);
  11. $mysqli->query("DELETE FROM buku WHERE id='$_GET[id]'");
  12. header('location:index.php');
  13. ?>
Kita Sekarang akan mencoba Menghapus Akun Brian.
Pencet OK,Dan Akunnya akhirnya berhasil terhapus.
(Sama Juga Dgn Akun Buku Di Bawah.)


Footer Tidak lengkap bukan jika ada pembuka (NavBar) tidak ada penutup? maka dari itu saya buat footer sederhana.

Footer.php

  1. <footer class="page-footer font-big bg-dark">
  2.     <div align="center" class="footer-copyright py-3 text-light">&copy; 2020 <a href="https://brianaria1.blogspot.com">Brian Aria</a></div>
  3. </footer>

Sebelumnya pemanggilan footer sudah dilakukan pada index.php


  1. <br>
  2.                      
  3.                     <div>
  4.                         <br><br><?php include "footer.php"; ?>
  5.                     </div>





Setelah Kita Selesai Buat Semua Keperluan Buat Subfolder Admin Sekarang Kita Buat Bagian Login-nya buat File CRUD_MHS.
(Mohon Maaf Jika Bagian Penerbit Di Bawah Nggak Muncul)

Persiapan

1 .  Untuk memulai tutorial dan project membuat login dengan PHP dan MySQLi seperti di contoh ini, silahkan buat sebuah folder baru dengan nama login pada direktori localhost teman-teman.
2 .  Buat sebuah database baru dengan nama akademik. kemudian buat sebuah tabel baru dengan nama admin dalam database akademik. isi dari tabel admin yaitu id, username dan password. dimana id bertipe int, pilih primary dan centang auto_increment nya. username dan password sama-sama bertipe varchar dengan nilai 225.

membuat login dgn php mysql dan selesai.

selanjutnya isikan data admin. untuk data contoh saja. untuk contoh akun admin yang akan login. isikan username nya ‘admin’, dan password nya ‘admin123’.
Habis itu Buat sebuah file baru dengan nama koneksi.php dan simpan pada folder login yang telah kita buat.
koneksi.php
  1. <?php 
  2. $koneksi = mysqli_connect("localhost","root","","akademik");
  3.  
  4. // Check connection
  5. if (mysqli_connect_errno()){
  6. echo "Koneksi database gagal : " . mysqli_connect_error();
  7. }
  8.  
  9. ?>
silahkan teman-teman isi sendiri nama database nya sesuai nama database yang teman-teman buat, karena di sini kita akan menggunakan database akademik, maka nama databasenya akademik.
Sekarang Buat file baru lagi namanya index.php
  1. <title>Membuat Login Dengan PHP dan MySQLi - BRIANARIA1.BLOGSPOT.COM</title>
  2. </head>
  3. <body>
  4. <h2>Login - Tugas Buat Ambil Nilai UAS Brian</h2>
  5. <br/>
  6. <!-- cek pesan notifikasi -->
  7. <?php 
  8. if(isset($_GET['pesan'])){
  9. if($_GET['pesan'] == "gagal"){
  10. echo "Login gagal! username dan password salah!";
  11. }else if($_GET['pesan'] == "logout"){
  12. echo "Anda telah berhasil logout";
  13. }else if($_GET['pesan'] == "belum_login"){
  14. echo "Anda harus login untuk mengakses halaman admin";
  15. }
  16. }
  17. ?>
  18. <br/>
  19. <br/>
  20. <form method="post" action="cek_login.php">
  21. <table>
  22. <tr>
  23. <td>Username</td>
  24. <td>:</td>
  25. <td><input type="text" name="username" placeholder="Masukkan username"></td>
  26. </tr>
  27. <tr>
  28. <td>Password</td>
  29. <td>:</td>
  30. <td><input type="password" name="password" placeholder="Masukkan password"></td>
  31. </tr>
  32. <tr>
  33. <td></td>
  34. <td></td>
  35. <td><input type="submit" value="LOGIN"></td>
  36. </tr>
  37. </table>
  38. </form>
  39. </body>
  40. </html>

kita lanjutkan lagi dengan membuat file yang akan mengelola data yang di kirim dari form login dari index.php.
pada file index.php yang membuat halaman login di atas kita telah menetapkan aksi dari form ini adalah ‘cek_login.php’ dengan method ‘post’ untuk jenis pengiriman datanya. silahkan baca lagi tentang GET dan POST jika teman-teman belum mempelajarinya. sudah di bahas juga di www.malasngoding.com.
buat sebuah file baru lagi dengan nama cek_login.php.
cek_login.php
  1. <?php 
  2. // mengaktifkan session php
  3. session_start();
  4.  
  5. // menghubungkan dengan koneksi
  6. include 'koneksi.php';
  7.  
  8. // menangkap data yang dikirim dari form
  9. $username = $_POST['username'];
  10. $password = $_POST['password'];
  11.  
  12. // menyeleksi data admin dengan username dan password yang sesuai
  13. $data = mysqli_query($koneksi,"select * from admin where username='$username' and password='$password'");
  14.  
  15. // menghitung jumlah data yang ditemukan
  16. $cek = mysqli_num_rows($data);
  17.  
  18. if($cek > 0){
  19. $_SESSION['username'] = $username;
  20. $_SESSION['status'] = "login";
  21. header("location:admin/index.php");
  22. }else{
  23. header("location:index.php?pesan=gagal");
  24. }
  25. ?>

nah di file index.php ini kita membuat halaman login sederhana untuk admin.
kita lanjutkan lagi dengan membuat file yang akan mengelola data yang di kirim dari form login dari index.php.
pada file index.php yang membuat halaman login di atas kita telah menetapkan aksi dari form ini adalah ‘cek_login.php’ dengan method ‘post’ untuk jenis pengiriman datanya. silahkan baca lagi tentang GET dan POST jika teman-teman belum mempelajarinya. sudah di bahas juga di www.malasngoding.com.
buat sebuah file baru lagi dengan nama cek_login.php.
cek_login.php
perhatikan, di sini kita aktifkan dulu session php. karena kita menggunakan session sebagai penanda status pengguna yang akan login.
kita mengaktifkan session php dengan syntax berikut
kemudian jangan lupa juga untuk menghubungkannya dengan file koneksi database yang sudah kita buat.
kemudian menangkap data yang dikirim dari form login.
kemudian kita seleksi data admin yang memiliki username dan password yang sesuai dengan yang di input pada form login.
selanjutnya kita hitung jumlah record yang sesuai (yang sesuai dengan username dan password yang di input).
jika data username dan password admin di temukan di tabel ‘admin’, maka nilai dari variabel $cek adalah jumlah dari record yang di temukan. berarti variabel $cek bernilai 1 jika username dan password yang di input sesuai dengan yang ada di database. karena fungsi mysqli_num_rows() berfungsi untuk menghitung jumlah record hasil dari query yang ada dalam parameter si fungsi mysqli_num_rows() ini.
selanjutnya kita cek dengan if else jika variabel $cek lebih besar dari nol (berarti username dan password yang di input sesuai), maka kita buat session username dan session status seperti pada syntax berikut. kemudian kita alihkan ke folder admin/index.php.
jika tidak maka kita alihkan halamannya kembali ke halaman login (index.php) sambil mengirimkan data pesan (?pesan=gagal).
itu sebabnya di file index.php (halaman login) kita membuat pengecekan seperti berikut (perhatikan pada file index.php)
ini untuk memeriksa pesan yang di kirim. karena tadi jika username dan password tidak di temukan, akan dikirimkan pesan “gagal”. pada pengecekan notifikasi ini kita akan menampilkan pesan notifikasi “Login gagal! username dan password salah!” jika username dan password gagal. begitu juga seterusnya dengan pesan logout dan belum_login yang akan kita buat pengalihannya sebentar lagi

Halaman Admin

Seperti yang teman-teman lihat pada syntax sebelumnya. saat melakukan pengecekan, jika username dan password benar, maka halaman akan kita alihkan ke halaman admin yang berada dalam folder admin. Kita tadi udah bikin folder Baru 'admin' di atas sekarang kita akan buat logout.php

admin/logout.php

  1. <?php 
  2. // mengaktifkan session
  3. session_start();
  4.  
  5. // menghapus semua session
  6. session_destroy();
  7.  
  8. // mengalihkan halaman sambil mengirim pesan logout
  9. header("location:../index.php?pesan=logout");
  10. ?>

file logout berguna untuk menghapus semua session yang telah di buat saat login. dan mengalihkan halaman kembali ke halaman login sambil mengirim pesan ‘logout’.
kita menghapus semua session dengan fungsi session_destroy() seperti pada contoh di atas.
nah, semuaya selesai. Selamat Kamu Udah Selesai Tugas Buatan Kita.
Sampai Di Sini Saja Perjalanan Kita dan Terima Kasih Kamu Telah Ikutin Cara Kita Dari Awal hingga Akhir
Dan Terima Kasih Juga Ke 2 Sumber Yg Telah Membantu Kita Bikin Tugas Kita Selesai Juga:,
Siti Hartati Buat MYSQL dan CRUD dan
Malasngoding.com buat Ngajarin KIta Cara Buat Login (Part 1,Part 2)
Kamu juga bisa ikutin Kita dgn Cara yg kami ajarin di Atas dan Mohon Maaf Karena Bagian Penerbitnya ada Kesalahan Serta Bagian Detail.php dan Detail2.php yg kita masih nggak tahu cara merespon bagian itu jika Kamu Tahu Tolong Kasih TahuKita Di Bawah Komentar Artikel ini.
Sekian dari Kita dan Semoga Bermanfaat.
(Kalau Masih kelsulitan ngetik .php Kita Download Tugas Kita Disini Aja.)