Halaman

Rabu, 18 September 2024

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:


Senin, 02 September 2024

Kirim Tugas Company Profile - Kelas 10

Kelas 10 A

https://drive.google.com/drive/folders/16VTJ3xFxQaAWnTI57UGW7UW9-gaeHhPV?usp=sharing


Kelas 10 B

https://drive.google.com/drive/folders/1kYq44R9h_v5XM0Cz-FGjITqNDv5oE8MM?usp=sharing


MELIHAT, MEMBERI MASUKAN, MENILAI:

Rubrik Penilaian Pembuatan Company Profile (Integrasi Word, PowerPoint, Excel)

Kriteria Penilaian

Tingkat Pencapaian


Contoh Penggunaan Tiap Aplikasi

  • Word: Untuk penulisan teks utama company profile, visi misi, sejarah perusahaan, dll.
  • PowerPoint: Untuk presentasi company profile, pembuatan slide yang menarik dengan visual yang mendukung. Data dari Excel bisa di-copy paste atau dihubungkan ke PowerPoint agar update secara otomatis.
  • Excel: Untuk membuat tabel data perusahaan, analisis data, dan visualisasi data sederhana (misal: grafik pertumbuhan penjualan).

Tips Penilaian

  • Berikan umpan balik yang spesifik: Jangan hanya memberikan nilai, tetapi jelaskan bagian mana yang sudah baik dan bagian mana yang perlu diperbaiki.
  • Perhatikan proses: Selain hasil akhir, perhatikan juga proses pengerjaan siswa. Apakah mereka aktif mencari informasi, berdiskusi, dan bekerja sama?
  • Sesuaikan dengan tingkat kesulitan: Tingkat kesulitan tugas bisa disesuaikan dengan kemampuan siswa.
  • Libatkan siswa dalam penilaian: Ajak siswa untuk saling memberikan masukan dan melakukan penilaian diri.

Catatan: Rubrik ini bersifat umum dan dapat disesuaikan dengan kebutuhan dan tujuan pembelajaran Anda.

Contoh Penggunaan dalam PowerPoint:

  • Slide 1: Cover dengan logo perusahaan dan judul "Company Profile".
  • Slide 2: Tentang Perusahaan (menggunakan teks dari Word).
  • Slide 3: Visi dan Misi (menggunakan teks dari Word).
  • Slide 4: Struktur Organisasi (menggunakan diagram organisasi yang dibuat di Word atau PowerPoint).
  • Slide 5: Produk/Jasa (menggunakan gambar dan deskripsi singkat).
  • Slide 6: Pertumbuhan Penjualan (menggunakan grafik dari Excel).
  • Slide 7: Kontak (menggunakan informasi kontak dari Word).

 

Penilaian

Nama Penilai                     :

Tugas yang dinilai             :

Judul Company Profile      :

Nilai                                   :

Uraikan apa saja yang sudah dikerjakan oleh teman anda terkait pembuatan company profie!

 

 HASIL PENGAMATAN DAN PENILAIAN DI KUMPULKAN DI LINK BAWAH INI:

10A 
https://drive.google.com/drive/folders/1-1jcpNzYQQVSnoUEX9sExV0XrWLDHpKp?usp=sharing

10B
https://drive.google.com/drive/folders/1wafbT1BQJK190xy-WvEoI9PI6ZFM3t7l?usp=sharing