Halaman

Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Selasa, 10 September 2024

MODUL AJAR BERPIKIR KOMPUTASIONAL DAN ALGORITMA PEMROGRAMAN FASE F (KELAS 12)

Pelajari modul ini dan ikuti sesuai dengan prosedur penulisan program!



edit.php

<!DOCTYPE html>
<html>
<head>
  <title>Edit Data Siswa</title>
</head>
<body>
  <h2>Edit Data Siswa</h2>

  <?php
  // Ambil nilai NIS dari parameter URL
  $nis = $_GET['nis'];

  // Koneksi ke database (sama seperti modul 2)
include 'dbkonek.php';
  // Query untuk mengambil data siswa berdasarkan NIS
  $sql = "SELECT * FROM siswa WHERE NIS='$nis'";
  $result = mysqli_query($conn, $sql);
  $row = mysqli_fetch_assoc($result);
  ?>

  <form action="proses_edit.php" method="post">
    <input type="hidden" name="nis" value="<?php echo $row['NIS']; ?>">
    Nama: <input type="text" name="nama" value="<?php echo $row['Nama']; ?>"><br>
    Kelas: 
      <select name="kelas">
        <option value="10" <?php if ($row['Kelas'] == '10') echo 'selected'; ?>>10</option>
        <option value="11" <?php if ($row['Kelas'] == '11') echo 'selected'; ?>>11</option>
        <option value="12" <?php if ($row['Kelas'] == '12') echo 'selected'; ?>>12</option>
      </select><br>
    <input type="submit" value="Simpan">
  </form>
</body>
</html>


hapus.php

<?php
// Koneksi ke database (sama seperti modul 2)
include 'dbkonek.php';
// Ambil NIS dari parameter URL
$nis = $_GET['nis'];

// Query untuk menghapus data
$sql = "DELETE FROM siswa WHERE NIS='$nis'";

if (mysqli_query($conn, $sql)) {
  header("Location: input.php");
  exit();
} else {
  echo "Error deleting record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

Berikut ini adalah kode output.php

<?php
// Koneksi ke database (sama seperti modul 2)
include 'dbkonek.php';
// Query untuk mengambil semua data siswa
$sql = "SELECT * FROM siswa";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  echo "<table border=1><tr><th>NIS</th><th>Nama</th><th>Kelas</th><th>Aksi</th></tr>";
  while($row = mysqli_fetch_assoc($result)) {
    echo "<tr><td>" . $row["NIS"] . "</td><td>" . $row["Nama"] . "</td><td>" . $row["Kelas"] . "</td><td>
      <a href='edit.php?nis=" . $row["NIS"] . "'>Edit</a> | 
      <a href='hapus.php?nis=" . $row["NIS"] . "' onclick='return confirm(\"Apakah Anda yakin ingin menghapus data ini?\")'>Hapus</a>
    </td></tr>";
  }
  echo "</table>";
} else {
  echo "0 results";
}

mysqli_close($conn);
?>


Level Tingkat Lanjut

Memberi NOTIFIKASI dan VALIDASI
Modifikasi input,php


Modifikasi proses.php


Menambahkan fasilitas cari.php

<?php
// Koneksi ke database (sesuaikan dengan konfigurasi Anda)
include 'dbkonek.php';

// Ambil kata kunci pencarian dari URL
$nama = $_GET['nama'];

// Query pencarian
$sql = "SELECT * FROM siswa WHERE nama LIKE '%$nama%'";
$result = mysqli_query($conn, $sql);

// Tampilkan hasil pencarian
if (mysqli_num_rows($result) > 0) {
    echo "<h2>Hasil Pencarian</h2>";
    echo "<table border='1'>
        <tr>
            <th>NIS</th>
            <th>Nama</th>
            </tr>";
    while($row = mysqli_fetch_assoc($result)) {
        echo "<tr>";
        echo "<td>" . (isset($row['NIS']) ? $row['NIS'] : "NIS tidak ditemukan") . "</td>";
        echo "<td>" . (isset($row['Nama']) ? $row['Nama'] : "Nama tidak ditemukan") . "</td>";
        // Tambahkan kolom lain sesuai dengan tabel siswa Anda
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "Data siswa tidak ditemukan.";
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Form Pencarian Siswa</title>
</head>
<body>
    <h1>Pencarian Siswa</h1>
    <form action="cari.php" method="GET">
        <input type="text" name="nama" placeholder="Masukkan nama siswa">
        <button type="submit">Cari</button>
    </form>
</body>
</html>


MEMBUAT PENAMBAHAN FASILITAS PEMBAYARAN

Sebelum membuat file pembayaran.php kita harus menambahkan terlebih dahulu tabel yang ada di mysql dengan cara:

CREATE TABLE pembayaran ( id_pembayaran INT AUTO_INCREMENT PRIMARY KEY, nis INT, bulan INT, tahun INT, jumlah DECIMAL(10,2), tanggal_bayar DATE, keterangan TEXT, id_petugas INT, status_pembayaran ENUM('Belum Lunas', 'Lunas', 'Tertunda', 'Dibatalkan'), bukti_pembayaran VARCHAR(255), tanggal_input TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

Kemudian membuat file pembayaran.php seperti di bawah ini:

<?php

// Koneksi ke database (sesuaikan dengan konfigurasi Anda)
include 'dbkonek.php';

// Cek apakah form sudah disubmit
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Ambil data dari form
    $nis = $_POST['nis'];
    $bulan = $_POST['bulan'];
    $tahun = $_POST['tahun'];
    $jumlah = $_POST['jumlah'];
    $tanggal_bayar = $_POST['tanggal_bayar'];
    $keterangan = $_POST['keterangan'];
    $id_petugas = $_SESSION['id_petugas']; // Asumsikan id_petugas sudah ada di session

    // Siapkan query INSERT
    $sql = "INSERT INTO pembayaran (nis, bulan, tahun, jumlah, tanggal_bayar, keterangan, id_petugas) 
            VALUES (?, ?, ?, ?, ?, ?, ?)";

    // Prepare statement
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("iissssi", $nis, $bulan, $tahun, $jumlah, $tanggal_bayar, $keterangan, $id_petugas);

    // Eksekusi query
    if ($stmt->execute()) {
        echo "Data pembayaran berhasil ditambahkan";
    } else {
        echo "Error: " . $stmt->error;
    }

    $stmt->close();
}

// Tampilkan form pembayaran jika belum disubmit
?>

<!DOCTYPE html>
<html>
<head>
    <title>Form Pembayaran</title>
</head>
<body>
    <h2>Form Pembayaran SPP</h2>
    <form action="" method="post">
        NIS: <input type="text" name="nis" required><br>
        Bulan: <input type="text" name="bulan" required><br>
        Tahun: <input type="text" name="tahun" required><br>
        Jumlah: <input type="number" name="jumlah" required><br>
        Tanggal Bayar: <input type="date" name="tanggal_bayar" required><br>
        Keterangan: <textarea name="keterangan"></textarea><br>
        <input type="submit" value="Simpan">
    </form>
</body>
</html>

<?php
include 'lihat_pembayaran.php';
?>

Tambahkan file lihat_pembayaran.php

<?php
include 'dbkonek.php';

// Query untuk mengambil semua data pembayaran
$sql = "SELECT * FROM pembayaran";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  echo "<h2>Daftar Pembayaran</h2>";
  echo "<table><tr><th>NIS</th><th>Bulan</th><th>Tahun</th><th>Jumlah</th><th>Tanggal Bayar</th><th>Keterangan</th></tr>";
  while($row = $result->fetch_assoc()) {
    echo "<tr><td>" . $row["nis"] . "</td><td>" . $row["bulan"] . "</td><td>" . $row["tahun"] . "</td><td>" . $row["jumlah"] . "</td><td>" . $row["tanggal_bayar"] . "</td><td>" . $row["keterangan"] . "</td></tr>";
  }
  echo "</table>";
} else {
  echo "Tidak ada data pembayaran.";
}

$conn->close();
?>

MEMBUAT PENAMBAHAN FASILITAS LOGIN

Masukkan pada SQL phpmyadmin :
CREATE TABLE petugas ( id_petugas INT AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(100), username VARCHAR(50) UNIQUE, password VARCHAR(255), level ENUM('admin', 'petugas') );

Buat file index.php

<?php
session_start();

// Koneksi ke database (sesuaikan dengan konfigurasi Anda)
include 'dbkonek.php';

// Cek apakah form sudah disubmit
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Ambil data dari form
    $username = $_POST['username'];
    $password = $_POST['password'];

    // Query untuk mencari pengguna
    $sql = "SELECT * FROM petugas WHERE username = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        if (password_verify($password, $row['password'])) {
            // Login berhasil, simpan data pengguna ke session
            $_SESSION['id_petugas'] = $row['id_petugas'];
            $_SESSION['level'] = $row['level'];
            header("Location: menu.php"); // Ganti dengan halaman dashboard Anda
        } else {
            echo "Password salah";
        }
    } else {
        echo "Username tidak ditemukan";
    }

    $stmt->close();
}

// Tampilkan form login jika belum disubmit
?>

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    
    <form action="" method="post">
        <table align='center'>
<tr><th colspan='2' width='250'><h2>Selamat Datang di Sistem Pendataan Siswa Seminari Garum.<br><h3> <font color='red'>Silakan masuk menggunakan akun Admin atau Petugas!</th></tr>
<tr><td><img src='img\user.png' width='25'></td> <td><input type="text" name="username" required></td></tr>
        <tr><td><img src='img\pass.png' width='25'></td> <td><input type="password" name="password" required></td></tr>
        <tr><td colspan='2' align='center'><input type="submit" value="LOGIN"></td></tr>
</table>
    </form>
</body>
</html>

Buat file logout.php

<?php
session_start();
session_destroy();
header("Location: index.php");
exit();

Tambahkan kode pada menu.php

<?php
session_start();

// Periksa apakah ada sesi pengguna
if (!isset($_SESSION['id_petugas'])) {
    header("Location: index.php");
    exit();
}
?>

============================================

Update kode proses.php

<?php
include 'dbkonek.php';

// Ambil data dari form
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$kelas = $_POST['kelas'];


// Upload gambar
$target_dir = "foto/";
$target_file = $target_dir . basename($_FILES["foto"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));


// Cek apakah file yang diunggah adalah gambar
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["foto"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

// Cek ukuran file (sesuaikan dengan kebutuhan Anda)
if ($_FILES["foto"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

// Hanya file JPG, JPEG, PNG, dan GIF yang diizinkan
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// Jika $uploadOk masih 1, maka upload file
if ($uploadOk == 1) {
    if (move_uploaded_file($_FILES["foto"]["tmp_name"], $target_file)) {
        echo "The file ". htmlspecialchars( basename( $_FILES["foto"]["name"])). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file."; 

    }
}



// Cek apakah NIS sudah ada di database
$sql = "SELECT * FROM siswa WHERE NIS='$nis'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // Jika NIS sudah ada, tampilkan pesan error dan arahkan kembali ke halaman input
  echo "<script>alert('NIS sudah ada!'); window.location.href='input.php';</script>";
} else {

// Insert data ke database
$sql = "INSERT INTO siswa (NIS, Nama, Kelas, Foto) VALUES ('$nis', '$nama', '$kelas', '$target_file')";

if (mysqli_query($conn, $sql)) {
    // Jika data berhasil ditambahkan, alihkan ke halaman index.php
    header("Location: input.php");
    //echo "<script>alert('Data berhasil ditambahkan'); window.location.href='input.php';</script>";
    exit();
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
mysqli_close($conn);
?>



Link pengumpulan umpan balik peserta didik:


Selasa, 24 Oktober 2023

Penjelasan singkat tentang bahasa pemrograman PHP?


PHP, singkatan dari Hypertext Preprocessor, merupakan salah satu bahasa pemrograman yang sangat populer di dunia pengembangan web. Dikembangkan pertama kali pada tahun 1994 oleh Rasmus Lerdorf, PHP dirancang khusus untuk pengembangan aplikasi web dinamis. Salah satu keunggulan utama PHP adalah kemampuannya untuk disematkan langsung dalam HTML, memungkinkan pengembang untuk menyisipkan kode PHP di dalam dokumen HTML tanpa memerlukan file terpisah. Selain itu, PHP mendukung berbagai database, termasuk MySQL, PostgreSQL, dan Oracle, memudahkan integrasi dengan sistem manajemen basis data (DBMS) yang berbeda.

Salah satu fitur menonjol dari PHP adalah sifatnya yang bersifat server-side, artinya kode PHP dijalankan di server web sebelum hasilnya dikirim ke browser pengguna. Hal ini membuat PHP efektif untuk memproses formulir, mengakses database, dan melakukan tugas server-side lainnya. Sintaksisnya yang mirip dengan C dan Perl juga membuatnya relatif mudah dipahami oleh para pengembang. Meskipun PHP telah ada selama bertahun-tahun, tetapi terus berkembang dengan munculnya versi-versi terbaru yang menawarkan peningkatan keamanan, kinerja, dan fitur-fitur baru untuk mendukung pengembangan aplikasi web yang semakin kompleks.