Praktikum Web Semester 8: Part 1
Praktikum Web Semester 8: Part 2
Praktikum Web Semester 8: Part 3
Praktikum Web Semester 8: Part 4
Praktikum Web Semester 8: Part 5

Buat sebuah database baru di MySQL dengan nama praktikum_penjualan, pilih database-nya, buka menu SQL dan jalankan perintah berikut

CREATE TABLE `jenisbarang` (
`id` INT NOT NULL AUTO_INCREMENT ,
`namajenisbarang` VARCHAR(200) NOT NULL ,
PRIMARY KEY (`id`)) ENGINE = InnoDB;

INSERT INTO `jenisbarang` (`id`, `namajenisbarang`) VALUES 
(NULL, 'Pakaian pria'), 
(NULL, 'Pakaian wanita') 

Pada file database.php isikan dengan

<?php
class Database
{

    private $host;
    private $db_name;
    private $username;
    private $password;
    public $conn;

    function __construct()
    {
        $this->host     = 'localhost';
        $this->username = 'root';
        $this->password = '';
        $this->db_name    = 'praktikum_penjualan';
    }

    public function getConnection()
    {
        $this->conn = null;
        try {
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            // $this->conn->exec("set names utf8");
        } catch (PDOException $exception) {
            echo "Connection error: " . $exception->getMessage();
        }
        return $this->conn;
    }
}

Pada folder pages, buat file dan folder berikut
Folder1

isi jenisbarangread.php dengan

<section class="content-header">
    <div class="container-fluid">
        <div class="row mb-2">
            <div class="col-sm-6">
                <h1>Jenis Barang</h1>
            </div>
            <div class="col-sm-6">
                <ol class="breadcrumb float-sm-right">
                    <li class="breadcrumb-item"><a href="?page=home">Home</a></li>
                    <li class="breadcrumb-item active">Jenis Barang</li>
                </ol>
            </div>
        </div>
    </div>
</section>
<section class="content">
    <div class="card">
        <div class="card-header">
            <h3 class="card-title">Data Jenis Barang</h3>
            <a href="?page=jenisbarangcreate" class="btn btn-success btn-sm float-right"><i class="fa fa-plus-circle"></i> Tambah Data</a>
        </div>
        <div class="card-body">
            <table id="mytable" class="table table-bordered table-hover">
                <thead>
                    <tr>
                        <th>No</th>
                        <th>Nama Jenis Barang</th>
                        <th>Opsi</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                    include_once "database/database.php";
                    $database = new Database();
                    $db = $database->getConnection();

                    $selectSql = "SELECT * FROM jenisbarang";

                    $stmt = $db->prepare($selectSql);
                    $stmt->execute();

                    $no = 1;
                    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                    ?>
                        <tr>
                            <td><?php echo $no++ ?></td>
                            <td><?php echo $row['namajenisbarang'] ?></td>
                            <td>
                                <form action method="POST">
                                    <input type="hidden" name="id" value="<?php echo $row['id'] ?>">
                                    <a href="?page=jenisbarangupdate&id=<?php echo $row['id'] ?>" class="btn btn-primary btn-sm mr-1"><i class="fa fa-edit"></i> Ubah</a>
                                    <a href="?page=jenisbarangdelete&id=<?php echo $row['id'] ?>" class="btn btn-danger btn-sm" onClick="javascript: return confirm('Konfirmasi data akan dihapus?');"><i class="fa fa-trash"></i> Hapus</a>
                                </form>
                            </td>
                        </tr>
                    <?
                    }
                    ?>
                </tbody>
            </table>
        </div>
    </div>
</section>

<?php include_once "components/scripts.php" ?>

Tambahkan case pada file routes.php untuk jenisbarangread

..
case 'jenisbarangread':
    if (file_exists('pages/admin/jenisbarang/jenisbarangread.php')) {
        include 'pages/admin/jenisbarang/jenisbarangread.php';
    } else {
        include "pages/404.php";
    }
    break;
default:
    include "pages/404.php";
    break;

Hasil read
Folder1

isi jenisbarangcreate.php dengan

<?php
if (isset($_POST['btnSimpan'])) {
    include_once "database/database.php";
    $database = new Database();
    $db = $database->getConnection();

    $insertSql = "INSERT INTO jenisbarang (namajenisbarang) VALUES (?)";
    $stmt = $db->prepare($insertSql);
    $stmt->bindParam(1, $_POST['namajenisbarang']);
    if ($stmt->execute()) {
        $_SESSION['hasil_create'] = true;
    } else {
        $_SESSION['hasil_create'] = false;
    }
    echo "<meta http-equiv='refresh' content='0;url=?page=jenisbarangread'>";
}
?>
<section class="content-header">
    <div class="container-fluid">
        <div class="row mb-2">
            <div class="col-sm-6">
                <h1>Jenis Barang</h1>
            </div>
            <div class="col-sm-6">
                <ol class="breadcrumb float-sm-right">
                    <li class="breadcrumb-item"><a href="?page=home">Home</a></li>
                    <li class="breadcrumb-item"><a href="?page=jenisbarangread">Jenis Barang</a></li>
                    <li class="breadcrumb-item active">Tambah Data</li>
                </ol>
            </div>
        </div>
    </div>
</section>
<section class="content">
    <div class="card">
        <div class="card-header">
            <h3 class="card-title">Tambah Jenis Barang</h3>
        </div>
        <div class="card-body">
            <form method="POST">
                <div class="form-group">
                    <label for="namajenisbarang">Nama Jenis Barang</label>
                    <input type="text" class="form-control" name="namajenisbarang">
                </div>
                <a href="?page=jenisbarangread" class="btn btn-danger btn-sm float-right"><i class="fa fa-times"></i> Batal</a>
                <button type="submit" name="btnSimpan" class="btn btn-success btn-sm float-right"><i class="fa fa-save"></i> Simpan</button>
            </form>
        </div>
    </div>
</section>

<?php include_once "components/scripts.php" ?>

Tambahkan case pada file routes.php untuk jenisbarangcreate

..
case 'jenisbarangcreate':
    if (file_exists('pages/admin/jenisbarang/jenisbarangcreate.php')) {
        include 'pages/admin/jenisbarang/jenisbarangcreate.php';
    } else {
        include "pages/404.php";
    }
    break;
default:
    include "pages/404.php";
    break;

Kembali ke file jenisbarangread.php tambahkan kedalam div container-fluid perintah berikut

<section class="content-header">
    <div class="container-fluid">
        <?php
        if (isset($_SESSION["hasil_create"])) {
            if ($_SESSION["hasil_create"]) {
        ?>
                <div class="alert alert-success alert-dismissible">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                    <h5><i class="icon fas fa-check"></i> Berhasil</h5>
                    Tambah data jenis barang berhasil
                </div>
            <?php
            } else {
            ?>
                <div class="alert alert-danger alert-dismissible">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                    <h5><i class="icon fas fa-ban"></i> Gagal</h5>
                    Tambah data jenis barang gagal
                </div>
        <?php
            }
            unset($_SESSION['hasil_create']);
        }
        ?>
        <div class="row mb-2">
        ..

Berikut halaman create dan hasil setelah create

create
readhasil

Praktikum Web Semester 8: Part 1
Praktikum Web Semester 8: Part 2
Praktikum Web Semester 8: Part 3
Praktikum Web Semester 8: Part 4
Praktikum Web Semester 8: Part 5