Membuat Aplikasi CRUD Dengan PHP dan MySQL

Tutorial kali ini saya akan menjelaskan cara membuat aplikasi sederhana CRUD (Create, Read, Update, Delete) dengan menggunakan PHP dan MySQL. Dalam membuat aplikasi yang berbasis web, hal yang paling penting dan paling utama untuk diketahui adalah membuat aplikasi CRUD. Sebelumnya di artikel tentang Perbedaan POST dan GET di PHP, saya sudah pernah mengatakan bahwa implementasi method POST dan GET biasanya lebih banyak akan ditemukan dalam proses CRUD ini. Silahkan perhatikan nanti setiap intruksi-intruksi dalam tutorial ini, supaya anda tahu pada saat bagaimana harus menggunakan method POST dan pada saat bagaimana harus menggunakan GET.

Di tutorial kali ini saya skenariokan kita akan membuat aplikasi pengolahan data barang. Dimana dalam pengolahan data barang ini akan terdapat proses CRUD (Create, Read, Update, Delete) atau SIUD (Select, Insert, Update, Delete).

Pertama persiapkan dulu tabel barang untuk menyimpan data barang
CREATE TABLE barang (
    id_barang int(11) NOT NULL AUTO_INCREMENT,
    nama_barang varchar(30),
    satuan_barang varchar(10),
    harga_barang decimal(10,0),
    stock_barang int(10),
    PRIMARY KEY(id_barang)
)

INSERT INTO barang (nama_barang, satuan_barang, harga_barang, stock_barang) VALUES ('LAPTO TOSHIBA L635', 'PCS', 5000000, 10)

Buat script koneksi ke database
koneksi.php
<?php
$hostdb ="localhost";
$usernamedb ="root";
$passworddb ="";
$database ="tutorial";

$koneksi = mysql_connect($hostdb, $usernamedb, $passworddb) or die("Kesalahan Koneksi");
mysql_select_db($database, $koneksi) or die ("Databasenya Error");
?>
Silahkan diganti value $hostdb, $usernamedb, $passworddb, $database sesuaikan dengan database anda.

Buat form untuk menampilkan data barang
data-barang.php
<html>
  <head><title>DAFTAR BARANG</title></head>
  <body>
    <h2>DAFTAR BARANG</h2><br />

    <form action="tambah-barang.php">
      <input type="submit" value="TAMBAH BARANG">
    </form>

    <?php
      //inkludkan koneksi database
      include("koneksi.php");
  
      //Buat perintah untuk melihat data barang
      $lihat_barang = mysql_query("SELECT * from barang");
      
      //Script melihat jumlah barang keseluruhan
      $total_barang = mysql_num_rows($lihat_barang);
    ?>
    
    <table border="1" cellspacing="1" cellpadding="1">
      <tr>
 <td>Id Barang</td>
 <td>Nama Barang</td>
 <td>Satuan Barang</td>
 <td>Harga Barang</td>
 <td>Stock Barang</td>
 <td>Proses</td>
     </tr>
     <!-- Menampilkan semua barang dengan menggunakan perulangan while -->
     <?php while($data=mysql_fetch_array($lihat_barang)){ ?>
     <tr>
 <td><?php echo $data["id_barang"];?></td>
 <td><?php echo $data["nama_barang"];?></td>
 <td><?php echo $data["satuan_barang"];?></td>
 <td><?php echo $data["harga_barang"];?></td>
 <td><?php echo $data["stock_barang"];?></td>
 <td><a href="ubah-barang.php?idbarang=<?php echo $data['id_barang'];?>">Update</a> | <a href="hapus-barang.php?idbarang=<?php echo $data['id_barang'];?>">Delete</a></td>
     </tr>
     <?php } ?>
    </table>
    <p>Jumlah Barang: <?php echo $total_barang; ?></p>
  </body>
</html>

Dan berikut tampilan dari daftar barang
Tampilan Daftar Barang
Tampilan Daftar Barang

Selanjutnya buat form untuk tambah barang
tambah-barang.php
<html>
  <head><title>TAMBAH BARANG</title></head>
  <body>
    <h2>TAMBAH BARANG</h2>
    <fieldset style="width: 20%;">
      <legend>Form Input Barang</legend>
      <form action="act-tambah-barang.php" method="POST">
 <p>
   Nama Barang<br />
   <input type="text" name="nama_barang" required>
 </p>
 <p>
   Satuan Barang<br />
   <input type="text" name="satuan_barang" required>
 </p>
 <p>
   Harga Barang<br />
   <input type="text" name="harga_barang" required>
 </p>
 <p>
   Stock Barang<br />
   <input type="text" name="stock_barang" required>
 </p>
 <p>
   <input type="submit" value="Simpan" />
   <input type="reset" value="Reset" onclick="return confirm('hapus data yang telah diinput?')">
   </p>
      </form>
    </fieldset>
  </body>
</html>

Form Tambah Barang
Form Tambah Barang

Tapi form tambah barang di atas belum bisa untuk menyimpan data, maka dari itu perlu dibuatkan script untuk menyimpan data.
act-tambah-barang.php
<?php
  //inkludkan koneksi database
  include("koneksi.php");
  
  if(isset($_POST['submit']))
  {
    //Ambil Data yang dikirim dengan method POST
    $nama_barang = $_POST['nama_barang'];
    $satuan_barang = $_POST['satuan_barang'];
    $harga_barang = $_POST['harga_barang'];
    $stock_barang = $_POST['stock_barang'];
    
    //Buat query untuk insert data ke tabel
    $tambah_barang=mysql_query("INSERT INTO barang (nama_barang, satuan_barang, harga_barang, stock_barang) VALUES ('$nama_barang', '$satuan_barang', '$harga_barang', '$stock_barang')");
    
    //Redirect ke Daftar Barang Jika Berhasil, jika tidak tampilkan pesan
    if($tambah_barang)
      echo '<script type="text/javascript">window.location="data-barang.php"</script>';
    else
      echo "Gagal Menyimpan Barang";
  }
  else
  {
    echo '<script type="text/javascript">window.location="tambah-barang.php"</script>';
  }
?>

Barikutnya buat script untuk menampilkan data barang yang akan diubah berdasarkan id, kemudian buatkan form untuk mengubah data barang
ubah-barang.php
<?php
  //inkludkan koneksi ke database
  if(isset($_GET['idbarang']))
  {
      include("koneksi.php");
      
      //Ambil ID dari barang yang akan diedit dengan method GET
      $id_barang = $_GET["idbarang"];
      
      //Buat query untuk mengambil data
      $ambildata = mysql_query("SELECT * FROM barang WHERE id_barang='$id_barang'");
      $data = mysql_fetch_array($ambildata);
      
?>

    <html>
      <head><title>UBAH BARANG</title></head>
      <body>
 <h2>UBAH BARANG</h2>
 <fieldset style="width: 20%;">
   <legend>Form Ubah Barang</legend>
   <form action="act-ubah-barang.php" method="POST">
       <input type="hidden" name="id_barang" value="<?php echo $id_barang?>">
     <p>
       Nama Barang<br />
       <input type="text" name="nama_barang" value="<?php echo $data['nama_barang'];?>" required>
     </p>
     <p>
       Satuan Barang<br />
       <input type="text" name="satuan_barang" value="<?php echo $data['satuan_barang'];?>" required>
     </p>
     <p>
       Harga Barang<br />
       <input type="text" name="harga_barang" value="<?php echo $data['harga_barang'];?>" required>
     </p>
     <p>
       Stock Barang<br />
       <input type="text" name="stock_barang" value="<?php echo $data['stock_barang'];?>" required>
     </p>
     <p>
       <input type="submit" name="submit" value="Simpan">
       <input type="reset" value="Reset" onclick="return confirm('hapus data yang telah diinput?')">
       </p>
   </form>
 </fieldset>
      </body>
    </html>
<?php 
  }
  else
  {
    echo '<script type="text/javascript">window.location="data-barang.php"</script>';
  }
?>
Berikut tampilan ketika salah satu data barang di klik pada daftar barang
Ubah Data Barang
Tampilan Ubah Data Barang
Coba perhatikan gambar di atas, ada tanda merah melingkar. Itu artinya, dalam mengambil data dari barang yang akan diedit di form ubah barang, saya menggunakan method GET dengan parameter id barang itu sendiri. Kenapa menggunakan parameter id barang? Karena sesuai dengan pembuatan table tadi, kita menset id barang sebagai primary key (unik).

Tetapi button simpan yang ada di form ubah barang belum berfungsi, maka dari itu sekarang buatkan script untuk mengolah data barang yang diubah
act-ubah-barang.php
<?php
  //inkludkan koneksi database
  include("koneksi.php");
  
  if(isset($_POST['submit']))
  {
    //Ambil Data yang dikirim dengan method POST
    $id_barang = $_POST['id_barang'];
    $nama_barang = $_POST['nama_barang'];
    $satuan_barang = $_POST['satuan_barang'];
    $harga_barang = $_POST['harga_barang'];
    $stock_barang = $_POST['stock_barang'];
    
    //Buat query untuk ubah data ke tabel
    $ubah_barang=mysql_query("UPDATE barang set nama_barang='$nama_barang', satuan_barang='$satuan_barang', harga_barang='$harga_barang', stock_barang='$stock_barang' WHERE id_barang='$id_barang'");
    
    //Redirect ke Daftar Barang Jika Berhasil, jika tidak tampilkan pesan
    if($ubah_barang)
      echo '<script type="text/javascript">window.location="data-barang.php"</script>';
    else
      echo "Gagal Menyimpan Barang";
  }
  else
  {
    echo '<script type="text/javascript">window.location="tambah-barang.php"</script>';
  }
?>

Selanjutnya yang terkahir kita buat script untuk menghapus data barang yang kita inginkan
hapus-barang.php
<?php
  //inkludkan koneksi ke database
  if(isset($_GET['idbarang']))
  {
      include("koneksi.php");
      
      //Ambil ID dari barang yang akan diedit dengan method GET
      $id_barang = $_GET["idbarang"];
      
      //Buat query untuk mengambil data
      $hapus = mysql_query("DELETE FROM barang WHERE id_barang='$id_barang'");
      
      //Redirect ke Daftar Barang Jika Berhasil, jika tidak tampilkan pesan
      if($hapus)
 echo '<script type="text/javascript">window.location="data-barang.php"</script>';
      else
 echo "Gagal Menghapus Barang";
  }
  else
  {
    echo '<script type="text/javascript">window.location="data-barang.php"</script>';
  }
      
?>

Jadi kira-kira seperti itulah aplikasi CRUD sederhana dengan skenario data barang. Tetapi menurut saya aplikasi CRUD ini jika diaplikasikan ke dalam sistem yang besar belum cukup sempur, karena bisa di akses oleh siapa saja diluar admin. Maka dari itu perlu membuat autentikasi di PHP untuk menghindari hal tersebut. Bagaimana, Sudah paham? Silahkan tuangkan dalam komentar jika ada yang ditanyakan :D


Blog, Updated at: 12:02 AM

5 komentar:

  1. maaf gan, bisa diupload / dkirim via email file nya dlam bntuk ms.word :D ?
    terima kasih sbelumnya
    email : rafend1717@gmail.com

    ReplyDelete
  2. Parse error: syntax error, unexpected 'Â Â Â Â Â Â include' (T_STRING) in C:\xampp\htdocs\barang\data-barang.php on line 13
    kenapa ya error

    ReplyDelete
    Replies
    1. Bisa agan copy script yang agan buat? Silahkan dipaste di pastebin.com, kirimkan link pastenya disini...

      Delete
  3. Replies
    1. Silahkan.. agan bisa langsung tanyakan di kolom komentar ini.. Saya akan jawab semampu saya :D

      Delete

Berkomentarlah dengan bijak dan sopan. Tidak diperbolehkan menggunakan kata-kata yang mengandung SARA. Komentar akan melalui moderation terlebih dahulu, jika terdapat kata-kata yang tidak sesuai ketentuan, maka komenar tidak dapat ditampilkan. Mari Saling berkomentar dengan baik :)