9 Buku Saya | Tridarma Tasdik | Prodi Sistem Informasi | Skripsi SI
Kuliah Nalar SI Gratis
Katabah Berbagi
Pusat Digitalisasi Nalar Sunda Cisewu
CV dan Lowongan Kerja
Program Portofolio Dosen
Blog dan Pengalaman | Korban AI | Siap Kerja | Kontak | PrivacyPolicy | Inggris Arab | Daftar Isi
Showing posts with label PHP Web 1. Show all posts
Showing posts with label PHP Web 1. Show all posts

Saturday, February 1, 2025

Web 1: Tombol Tambah

 

TOMBOL TAMBAH 

Struktur Folder 

- index.php

- classes/

   - Database.php

   - Item.php

**

classes/Database.php

<?php

class Database {

    private $host = 'localhost';

    private $dbname = 'oop_db';

    private $username = 'root';

    private $password = '';

    public $conn;


    public function __construct() {

        try {

            $this->conn = new PDO("mysql:host={$this->host};dbname={$this->dbname}", 

                                  $this->username, $this->password);

            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        } catch (PDOException $e) {

            die("Koneksi gagal: " . $e->getMessage());

     

   }

    }

}

?>

 

*****

Ini batas akhir script untuk file Database.php

*****

classes/Item.php

<?php

require_once 'Database.php';


class Item {

    private $db;


    public function __construct() {

        $database = new Database();

        $this->db = $database->conn;

    }


    public function addItem($name) {

        $stmt = $this->db->prepare("INSERT INTO items (name) VALUES (:name)");

        $stmt->bindParam(':name', $name);

        return $stmt->execute();

    }


    public function getItems() {

        $stmt = $this->db->query("SELECT * FROM items ORDER BY id DESC");

        return $stmt->fetchAll(PDO::FETCH

_ASSOC);

    }

}

?>

 

*****

Ini batas akhir untuk file Item.php

*****

 

index.php

<?php

require_once 'classes/Item.php';


$itemObj = new Item();


if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['name'])) {

    $itemObj->addItem($_POST['name']);

}


$items = $itemObj->getItems();

?>


<!DOCTYPE html>

<html>

<head>

    <title>Tambah Item (OOP + DB)</title>

</head>

<body>

    <h1>Tambah Item</h1>

    <form method="post">

        <input type="text" name="name" placeholder="Nama item" required>

        <button type="submit">Tambah</button>

    </form>


    <h2>Daftar Item</h2>

    <ul>

        <?php foreach ($items as $item): ?>

            <li><?= htmlspecialchars($item['name']) ?></li>

        <?php endforeach; 

?>

    </ul>

</body>

</html>

 

*****

Ini batas akhir untuk file index.php

**** 

 

Struktur Tabel MySQL 

CREATE DATABASE IF NOT EXISTS oop_db;

USE oop_db;


CREATE TABLE IF NOT EXISTS items (

    id INT AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(100) NOT NU

LL

);

 

****

 Sampai di sini, kita sudah punya file Database.php, Item.php, dan index.php, serta database "oop_db" yang memuat tabel "items".

*** 

Penjelasan OOP:

Kelas Database mengelola koneksi database (reusable).

Kelas Item mengelola logika bisnis (insert dan ambil data).

index.php hanya sebagai tampilan dan handler form, menjaga prinsip separation of concerns dalam OOP.

Sunday, May 2, 2021

Login

 config.php

<?php
//koneksi ke database mysql, silahkan di rubah dengan koneksi agan sendiri
$koneksi = mysqli_connect("localhost","root","","komtas");

//cek jika koneksi ke mysql gagal, maka akan tampil pesan berikut
if (mysqli_connect_errno()){
echo "Gagal melakukan koneksi ke MySQL: " . mysqli_connect_error();
}
?>


**
lg_index.php
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h2>Login Admin</h2>
<!-- cek pesan notifikasi -->
<?php 
if(isset($_GET['pesan'])){
if($_GET['pesan'] == "gagal"){
echo "Login gagal! Username dan password salah!";
}else if($_GET['pesan'] == "logout"){
echo "Anda telah berhasil logout";
}else if($_GET['pesan'] == "belum_login"){
echo "Anda harus login untuk mengakses halaman admin";
}
}
?>
<form method="post" action="lg_cek_login.php">
<table>
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username" placeholder="Masukkan username"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="password" placeholder="Masukkan password"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" value="LOGIN"></td>
</tr>
</table>
</form>
</body>
</html>

**

lg_cek_login.php
<?php 
// mengaktifkan session php
session_start();

// menghubungkan dengan koneksi
include 'config.php';

// menangkap data yang dikirim dari form
$username = $_POST['username'];
$password = md5($_POST['password']);

// menyeleksi data admin dengan username dan password yang sesuai
$data = mysqli_query($koneksi,"select * from loginku where username='$username' and password='$password'");

// menghitung jumlah data yang ditemukan
$cek = mysqli_num_rows($data);

if($cek > 0){
$_SESSION['username'] = $username;
$_SESSION['status'] = "login";
header("location:hai.php");
}else{
header("location:lg_index.php?pesan=gagal");
}
?>

**

Buatlah satu file lagi, namanya hai.php

Saturday, May 1, 2021

Cari

 Name File: cari.php

Ketik script di bawah ini:

<html>
<body>
<?php
//koneksi ke database mysql, silahkan di rubah dengan koneksi agan sendiri
$koneksi = mysqli_connect("localhost","root","","stmikj2");

//cek jika koneksi ke mysql gagal, maka akan tampil pesan berikut
if (mysqli_connect_errno()){
 echo "Gagal melakukan koneksi ke MySQL: " . mysqli_connect_error();
}
?>

<form action="" method="get">
 <label>Cari :</label>
 <input type="text" name="cari">
 <input type="submit" value="Cari">
</form>

<?php
if(isset($_GET['cari'])){
 $cari = $_GET['cari'];
 echo "<b>KDMK: ".$cari."</b>";
}
?>

<table border="1">
 <tr>
  <th>KDMK</th>
  <th>MK</th>
 </tr>

 <?php
 if(isset($_GET['cari'])){
  $cari = $_GET['cari'];
 
  $data = mysqli_query($koneksi,"select * from mk where kdmk like '%$cari'"); 
 }
 else{
  $data = mysqli_query($koneksi,'select * from mk');
 }
 //$no = 1;
 while($d = mysqli_fetch_array($data)){
 ?>
 <tr>
  <td><?php echo $d['kdmk'];?></td>
  <td><?php echo $d['mk'];?></td>
 </tr>
 <?php } ?>
</table>

</body>
</html>