Membuat CRUD dengan PHP menggunakan Session dan Array

Membuat CRUD dengan PHP Session dan Array

CRUD kependekan dari create, read, update, delete. fungsi dasar pada pembuatan aplikasi website. intinya data dapat dibuat lalu disimpan, data juga dapat di update dan dihapus.

Dalam artikel ini kita akan membuat CRUD dengan bantuan php session dan array. php session adalah global variabel pada php yang dituliskan seperti $_SESSION gunanya untuk menyimpan data sementara, dalam memasukan datanya kita akan menggunakan array. dalam satu variabel array kita dapat menampung beberapa nilai contohnya $a = array(1,2,3);

Konsepnya data array dimasukkan kedalam php session sehingga data array sebelumnya dapat dipanggil kembali meskipun browser direload. Cek jika data array belum ada makan session dimasukan data variabel array, jika data array pada session sudah ada maka kita masukan data array kedalam data session. sebenarnya data session itu adalah array karena saat pertama kali kita cek jika data belum ada kita masukan data array, dengan bantuan fungsi array_push() kita dapat memasukkan data array kedalam data session array contohnya seperti array_push(session_array, data_array). Untuk dapat menghapus data kita dapat menggunakan fungsi unset() contohnya seperti unset(session_array[kunci]). Sedangkan untuk mengupdate data kita tentukan dulu key arraynya contohnya seperti berikut session_array[key][nama_pelanggan].

Dalam contoh ini kita akan membuat crud data pelanggan yang kolumnya sederhana seperti nama_pelanggan, nohp_pelanggan, dan alamat_pelangggan. Untuk lebih jelasnya kita akan membuat kodingan seperti dibawah ini:

CREATE
Cek terlebih dahulu apakah form sudah dinput? lalu buat data array pelanggan, setelah itu cek session data pelanggan jika sudah ada tambahkan variable data array kedalam data session dengan fungsi array_push

<?php
session_start();
if(isset($_POST['submit'])){
  $data = array();

  $data['nama_pelanggan'] = $_POST['nama_pelanggan'];
  $data['nohp_pelanggan'] = $_POST['nohp_pelanggan'];
  $data['alamat_pelanggan'] = $_POST['alamat_pelanggan'];

  if($_SESSION['data_pelanggan']){
    $data_pelanggan = $_SESSION['data_pelanggan'];
    array_push($data_pelanggan,$data);
    $_SESSION['data_pelanggan'] = $data_pelanggan;
  }else{
    $_SESSION['data_pelanggan'][] = $data;
  }

  header("location: ./crud.php");

}
?>

READ
Untuk membaca data kita dapat meload data array menggunakan fungsi foreach $data as $k as $val

<?php
session_start();
if($_SESSION['data_pelanggan']){ ?>
  <a href='?act=add'>Tambah[+]</a><br>
  <table border="1">
    <tr>
      <th>No</th>
      <th>Nama</th>
      <th>Nohp</th>
      <th>Alamat</th>
      <th colspan="2">Action</th>
    </tr>
    <!-- $key sebagai kuncinya -->
  <?php $no=0; foreach ($_SESSION['data_pelanggan'] as $key => $value) { $no++; ?>
    <tr>
      <td><?php echo $no;?></td>
      <td><?php echo $value['nama_pelanggan'];?></td>
      <td><?php echo $value['nohp_pelanggan'];?></td>
      <td><?php echo $value['alamat_pelanggan'];?></td>
      <td><button type="button" onclick="window.location='crud.php?act=delete&id=<?php echo $key;?>'">Hapus</button></td>
      <td><button type="button" onclick="window.location='crud.php?act=edit&id=<?php echo $key;?>'">Edit</button></td>
    </tr>
  <?php } ?>

  </table>

<?php }else{
  echo "belum ada data! <a href='?act=add'>tambah[+]</a>";
}

?>

UPDATE
Cara untuk update data session array menggunakan key array nya lalu diisi nilai dengan = contohnya seperti berikut:

<?php
session_start();
//id sebagai kunci array
$id = $_GET['id'];
$_SESSION['data_pelanggan'][$id]['nama_pelanggan'] = $_POST['nama_pelanggan'];
$_SESSION['data_pelanggan'][$id]['nohp_pelanggan'] = $_POST['nohp_pelanggan'];
$_SESSION['data_pelanggan'][$id]['alamat_pelanggan'] = $_POST['alamat_pelanggan'];
//alihkan halaman
?>

DELETE
Untuk dapat menghapus kita dapat menggunakan fungsi unset()

<?php
session_start();
//id sebagai kunci array
$id = $_GET['id'];
unset($_SESSION['data_pelanggan'][$id]);
//alihkan halaman
?>

GET DATA BY ID

Untuk medapatkan berdasarkan id atau key arraynya contoh kita akan menampilkan nama pelanggan

<?php
session_start();
//id sebagai kunci array
$id = $_GET['id'];
$data_pelanggan = $_SESSION['data_pelanggan'][$id];
echo "nama pelanggan: ". $data_pelanggan['nama_pelanggan'];
?>

Kita akan coba menggabungkannya kedalam satu file contohnya seperti berikut ini:

<?php
ini_set("error_reporting", 0);
session_start();
if(isset($_POST['submit'])){
  $data = array();

  $data['nama_pelanggan'] = $_POST['nama_pelanggan'];
  $data['nohp_pelanggan'] = $_POST['nohp_pelanggan'];
  $data['alamat_pelanggan'] = $_POST['alamat_pelanggan'];

  if($_SESSION['data_pelanggan']){
    $data_pelanggan = $_SESSION['data_pelanggan'];
    array_push($data_pelanggan,$data);
    $_SESSION['data_pelanggan'] = $data_pelanggan;
  }else{
    $_SESSION['data_pelanggan'][] = $data;
  }

  header("location: ./crud.php");

}

if($_SESSION['data_pelanggan']){ ?>
  <a href='?act=add'>Tambah[+]</a><br>
  <table border="1">
    <tr>
      <th>No</th>
      <th>Nama</th>
      <th>Nohp</th>
      <th>Alamat</th>
      <th colspan="2">Action</th>
    </tr>
  <?php $no=0; foreach ($_SESSION['data_pelanggan'] as $key => $value) { $no++; ?>
    <tr>
      <td><?php echo $no;?></td>
      <td><?php echo $value['nama_pelanggan'];?></td>
      <td><?php echo $value['nohp_pelanggan'];?></td>
      <td><?php echo $value['alamat_pelanggan'];?></td>
      <td><button type="button" onclick="window.location='crud.php?act=delete&id=<?php echo $key;?>'">Hapus</button></td>
      <td><button type="button" onclick="window.location='crud.php?act=edit&id=<?php echo $key;?>'">Edit</button></td>
    </tr>
  <?php } ?>

  </table>

<?php }else{
  echo "belum ada data! <a href='?act=add'>tambah[+]</a>";
}

switch($_GET['act']){

  case "add":
    $form = "<p><form action='' method='post'>";
    $form .= "Nama pelanggan: <input type='text' name='nama_pelanggan'><br>";
    $form .= "Nohp pelanggan: <input type='text' name='nohp_pelanggan'><br>";
    $form .= "Alamat pelanggan: <input type='text' name='alamat_pelanggan'><br>";
    $form .= "<input type='submit' name='submit'></form><br>";
    echo $form;
    break;

  case "delete":
    $id = $_GET['id'];
    unset($_SESSION['data_pelanggan'][$id]);
    header("location: ./crud.php");
    break;

  case "update":
    $id = $_GET['id'];
    $_SESSION['data_pelanggan'][$id]['nama_pelanggan'] = $_POST['nama_pelanggan'];
    $_SESSION['data_pelanggan'][$id]['nohp_pelanggan'] = $_POST['nohp_pelanggan'];
    $_SESSION['data_pelanggan'][$id]['alamat_pelanggan'] = $_POST['alamat_pelanggan'];
    header("location: ./crud.php");
    break;

  case "edit":
    $id = $_GET['id'];
    $data_pelanggan = $_SESSION['data_pelanggan'][$id];
    $form = "<p><form action='?act=update&id={$id}' method='post'>";
    $form .= "Nama pelanggan: <input type='text' name='nama_pelanggan' value='{$data_pelanggan["nama_pelanggan"]}'><br>";
    $form .= "Nohp pelanggan: <input type='text' name='nohp_pelanggan' value='{$data_pelanggan["nohp_pelanggan"]}'><br>";
    $form .= "Alamat pelanggan: <input type='text' name='alamat_pelanggan' value='{$data_pelanggan["alamat_pelanggan"]}'><br>";
    $form .= "<input type='submit' name='update'></form><br>";
    echo $form;
    break;

  case "default":
  break;
}


?>

Simpan file dengan nama crud.php, oh iya tutorial ini sudah dicoba pada php versi 7 dan bekerja sebagaimana mestinya.

Related posts

Leave a Comment