Views/header_view.
php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- Link ke Bootstrap CSS -->
<link rel="stylesheet" href="<?= base_url('css/[Link]') ?>">
<!-- Bootstrap -->
<link href="<?= base_url('css/[Link]" rel="stylesheet') ?>">
<link href="<?= base_url('css/[Link]') ?>" rel="stylesheet">
<script src="<?= base_url('js/[Link]') ?>"></script>
<!-- Jquery -->
<script type="<?= base_url('text/javascript" src="js/[Link]') ?>"></script>
<!-- Font Awesome -->
<link rel="stylesheet" href="<?= base_url('fontawesome/css/[Link]') ?>">
<!-- Data Tables -->
<link href="<?php echo base_url('datatables/[Link]') ?>" type="text/css" rel="stylesheet">
<script type="text/javascript" src="<?php echo base_url('datatables/[Link]') ?>"></script>
<!-- DataTables CSS -->
<link rel="stylesheet" href="[Link]
<!-- Sweet alert 2 -->
<script src="[Link]
<!-- DataTables CSS -->
<link rel="stylesheet" href="[Link]
<!-- jQuery -->
<script src="[Link]
<!-- DataTables JS -->
<script src="[Link]
</head>
<body>
<nav class="navbar navbar-expand-sm navbar-dark bg-info">
<div class="container">
<a href="<?= base_url(); ?>" class="navbar-brand">Data Barang Inventory</a>
<button class="navbar-toggle d-lg-none" type="button" data-toggle="collapse" data-target="#collapsibleNavId"
aria-controls="collapsibleNavId" aria-expanded="false" aria-label="Toggle navigation">
</button>
</div>
</nav>
Views/barang_view.php
<div class="container pt-5">
<a href="<?= base_url('barang/new'); ?>" class="btn btn-success mb-2">Tambah Data</a>
<div class="card">
<div class="card-header bg-info text-white">
<h4 class="card-title text-center">Tabel data inventory</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-striped" id="barangTable">
<thead>
<tr>
<th>No.</th>
<th>Nama Barang</th>
<th>Qty</th>
<th>Merek barang</th>
<th>Type</th>
<th>harga</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php $no = 1;
foreach ($getBarang as $isi) { ?>
<tr>
<td><?= $no; ?></td>
<td><?= $isi['nama_barang']; ?></td>
<td><?= $isi['qty']; ?></td>
<td><?= $isi['merk']; ?></td>
<td><?= $isi['type']; ?></td>
<td>Rp <?= number_format($isi['harga']); ?> </td>
<td>
<a href="<?= base_url('barang/edit/' . $isi['id_barang']); ?>"
class="btn btn-success">
Edit</a>
<a href="<?= base_url('barang/remove/' . $isi['id_barang']); ?>"
onclick="javascript:return confirm('Apakah ingin menghapus data barang ?')"
class="btn btn-danger">
Hapus</a>
</td>
</tr>
<?php $no++;
} ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('#barangTable').DataTable();
});
</script>
Views/footer_view.php
<!-- Link ke Bootstrap JS -->
<script src="<?= base_url('js/[Link]') ?>"></script>
<!-- Link javascript untuk Jquery -->
<script src="<?= base_url('js/[Link]') ?>"></script>
</body>
</html>
Views/tambah_view.php
<div class="containter p-5">
<a href="<?php echo base_url('barang') ?>" class="btn btn-secondary mb-2">Kembali</a>
<div class="card">
<div class="card-header bg-info text-white">
<div class="card-title text-center">Tambah Data Barang</div>
<div class="card-body">
<form action="<?php echo base_url('barang/create') ?>" method="post">
<div class="form-group">
<label for="">Nama Barang</label>
<input type="text" name="nama" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Quantity</label>
<input type="text" name="qty" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Merek Barang</label>
<input type="text" name="merk" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Tipe barang</label>
<input type="text" name="type" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Harga</label>
<input type="number" name="harga" class="form-control" id="" required>
</div>
<br>
<button class="btn btn-success">Tambah Data</button>
</form>
</div>
</div>
</div>
</div>
Views/edit_view.php
<div class="containter p-5">
<a href="<?php echo base_url('barang') ?>" class="btn btn-secondary mb-2">Kembali</a>
<div class="card">
<div class="card-header bg-info text-white">
<div class="card-title text-center">Edit Data Barang</div>
<div class="card-body">
<form action="<?= base_url('barang/update/' . $barang['id_barang']) ?>" method="post">
<?= csrf_field() ?>
<input type="hidden" name="id_barang" value="<?= $barang['id_barang'] ?>">
<div class="form-group">
<label for="">Nama Barang</label>
<input type="text" name="nama" value="<?= $barang['nama_barang'] ?>" class="form-control" id=""
required>
</div>
<div class="form-group">
<label for="">Quantity</label>
<input type="number" name="qty" value="<?= $barang['qty'] ?>" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Merek Barang</label>
<input type="text" name="merk" value="<?= $barang['merk'] ?>" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Tipe barang</label>
<input type="text" name="type" value="<?= $barang['type'] ?>" class="form-control" id="" required>
</div>
<div class="form-group">
<label for="">Harga</label>
<input type="number" name="harga" value="<?= $barang['harga'] ?>" class="form-control" id="" required>
</div>
<br>
<button class="btn btn-success">Edit Data</button>
</form>
</div>
</div>
</div>
</div>
Contollers/[Link]
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\Barang_model;
use Codeigniter\RESTfull\ResourcePresenter;
class Barang extends BaseController{
public function index(){
$model = new Barang_model;
$data['title'] = 'Data Barang';
$data['getBarang'] = $model->getBarang();
echo view('header_view', $data);
echo view('barang_view', $data);
echo view('footer_view', $data);
}
public function new(){
$data['title'] = 'Tambah Data Barang';
echo view('header_view', $data);
echo view('tambah_view', $data);
echo view('footer_view', $data);
}
public function create(){
$model = new Barang_model;
$data = array(
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'merk' => $this->request->getPost('merk'),
'type' => $this->request->getPost('type'),
'harga' => $this->request->getPost('harga')
);
$model->saveBarang($data);
// Notifikasi bawaan bisa memakai alertifyJS
echo '<script>
alert("Sukses Tambah Data Barang");
[Link]="'.base_url('barang').'";
</script>';
// echo '<script>
// [Link]({
// icon: "success",
// title: "Sukses Tambah Data Barang",
// text: "Data barang telah berhasil ditambahkan.",
// showConfirmButton: false,
// timer: 1500
// }).then(function() {
// [Link] = "' . base_url('barang') . '";
// });
// </script>';
}
// public function edit($id=null){
// $model = new Barang_model;
// $getBarang = $model->getBarang($id)->getRow();
// if(isset($getBarang)){
// $data['barang'] = $getBarang;
// $data['title'] = 'Edit'.$getBarang->nama_barang;
// echo view('header_view',$data);
// echo view('edit_view',$data);
// echo view('footer_view',$data);
// }else {
// echo '
// <script>
// alert("")ID barang'.$id.' Tidak ditemukan;
// [Link]="'.base_url('barang').'"
// </script>';
// }
// }
public function edit($id=null){
$model = new Barang_model;
$getBarang = $model->getBarang($id); // Hasilnya array
// $getBarang = $model->getBarang($id)->getRow(); // getRow() digunakan untuk mengambil 1 baris
if(isset($getBarang)){
$data['barang'] = $getBarang;
$data['title'] = 'Edit '.$getBarang['nama_barang'];
echo view('header_view',$data);
echo view('edit_view',$data);
echo view('footer_view',$data);
}else {
echo '
<script>
alert("")ID barang'.$id.' Tidak ditemukan;
[Link]="'.base_url('barang').'"
</script>';
}
}
// public function update($id=null)
// {
// $model = new Barang_model;
// $id = $this->request->getPost('id_barang');
// $data = array(
// 'nama_barang' => $this->request->getPost('nama'),
// 'qty' => $this->request->getPost('qty'),
// 'merk' => $this->request->getPost('merk'),
// 'type' => $this->request->getPost('type'),
// 'harga' => $this->request->getPost('harga')
// );
// $model->editBarang($data,$id);
// echo '<script>
// alert("Sukses Edit Data Barang");
// [Link]="'.base_url('barang').'"
// </script>';
// }
// Versi 4.1.3
public function update($id = null)
{
$model = new Barang_model();
// Validasi input dari form
$validation = \Config\Services::validation();
$validation->setRules([
'nama' => 'required|string|max_length[100]',
'qty' => 'required|integer',
'merk' => 'required|string|max_length[50]',
'type' => 'required|string|max_length[50]',
'harga' => 'required|numeric',
]);
// Jika validasi gagal
if (!$validation->withRequest($this->request)->run()) {
return redirect()->back()->with('errors', $validation->getErrors())->withInput();
}
// Ambil data input dari form
$data = [
'nama_barang' => $this->request->getPost('nama'),
'qty' => $this->request->getPost('qty'),
'merk' => $this->request->getPost('merk'),
'type' => $this->request->getPost('type'),
'harga' => $this->request->getPost('harga'),
];
// Update data di database
$update = $model->editBarang($data, $id);
if ($update) {
// Berhasil update
return redirect()->to(base_url('barang'))->with('message', 'Data berhasil diperbarui');
} else {
// Gagal update
return redirect()->back()->with('error', 'Gagal memperbarui data');
}
}
// Versi 4.1.3
// public function remove($id=null)
// {
// $model = new Barang_model;
// $getBarang = $model->getBarang($id);
// if(isset($getBarang))
// {
// $model->hapusBarang($id);
// echo '<script>
// alert("Hapus Data Barang Sukses");
// [Link]="'.base_url('barang').'"
// </script>';
// }else{
// echo '<script>
// alert("Hapus Gagal !, ID barang '.$id.' Tidak ditemukan");
// [Link]="'.base_url('barang').'"
// </script>';
// }
// }
public function hapus($id = null) {
$model = new Barang_model();
// Pastikan ID valid
if (is_numeric($id)) {
$delete = $model->deleteBarang($id);
if ($delete) {
return redirect()->to(base_url('barang'))->with('message', 'Data berhasil dihapus');
} else {
return redirect()->to(base_url('barang'))->with('error', 'Gagal menghapus data');
}
} else {
return redirect()->to(base_url('barang'))->with('error', 'ID tidak valid');
}
}