Halaman

Tampilkan postingan dengan label Berpikir Kritis. Tampilkan semua postingan
Tampilkan postingan dengan label Berpikir Kritis. 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: