Total Tayangan Halaman

Kamis, 23 April 2026

Phyton Dasar pertemuan 1

Download phycharm atau phycharm comunity
Phyton digunakan untuk microcontroller, otomotion/menyalakan lampu, resberyti, arduino atau alat hardware, web, bermain data, Mesin learning, desktop, ai atau multifungsi 
Praktek.
1. New projects 
2. Virtuallenv
3. Centang main.py

Titik Warna merah itu break poin atau Debagh atau tempat berhenti. Hapus semua code
print() adalah sintak mencetak ke bagian consule
print('') menggunakan kutif mendeklasikam sebuah strings

Boolean itu adalah antara true or false
Bahasa pemograman memiliki variable.
Contoh coding
nama= "Syahrul" atau pake ' ' sama aja #tipe string
usia = 18 #tipe integer
tinggi_badan = 183.5 #tipe float jika koma ganti dengan titik





Input User
print(input('hallo siapa nama kamu'))
Menggunakan variable:
input_nama = input('hallo siapa nama kamu?')
print(input_nama)

Operator Matematika: + - * / & // (pembuatan)
a = 4
b = 2
c = a / b #tipe data float
print(c)

Analogi lain ketika print harus sama tipenya gak boleh beda


Tugas
saldo_awal = input('berapa saldo awalmu: ') 
deposit = input('berapa mau deposit ya?' )

print(saldo_akhir)

#munculkan output ke terminal consule hasil setelah saldo awal mu ditambahkan dengan deposit

Jawab:
saldo_awal = input('berapa saldo awalmu: ') 
deposit = input('berapa mau deposit ya?' )
saldo_akhir = int(saldo_awal + int(deposit)
print(saldo_akhir)

TIPE DATA STRING 
nama_saya = "Raeni Official"
print(nama_saya.find('O'))

Hasil : 6 
Alasannya dihitung dari enol
____________________________________
nama_saya = "Raeni Official"
print(len(nama_saya))

Hasil : 11
Alasannya len menghitung jumlah huruf
____________________________________
nama_saya = "Raeni Official"
print('x' in nama_saya)

Hasil : False
Alasannya karena Boolean antara true or false 
____________________________________
nama_saya = "Raeni Official"
print(nama_saya.upper())

Hasil : RAENI OFFICIAL 
Alasannya Mengganti huruf besar
____________________________________
nama_saya = "raeni official"
print(nama_saya.cappitalize())

Hasil : Raeni official 
Alasannya mengganti huruf besar diawal 
____________________________________
nama_saya = "Raeni Official"
print(nama_saya.count('a'))

Hasil : 3
Alasannya menghitung jumlah karakter yang disebutkan 

Bab mengenai Kondisi atau IF
Penjelasan:
== sama dengan
> lebih dari
< kurang dari
!= tidak sama dengan
>= lebih dari sama dengan
<= kurang dari sama dengan
Praktek:
usia = 20
if usia == 20:
   print('menjadi karyawan tetap')
Hasil : menjadi karyawan tetap'
________________________________
Kondisi berubah karna gak cocok/ supaya mec atau pengecualian (else)
usia = 50
if usia == 20:
    print('menjadi karyawan tetap')
else:
    print('masa pensiunan bekerja')
Hasil : masa pensiun bekerja

usia = 20
if usia >= 20:
    print('menjadi karyawan tetap')
else:
    print('masa pensiunan bekerja')
Hasil : menjadi karyawan tetap

KONDISI (AND OR)
usia= 7
if usia >= 5 and usia <= 10;
    print('halo anak-anak)
else:
    print('........pengecualian..........')
Hasil : halo anak-anak
______________________________
usia= 15
if usia >= 5 and usia <= 10:
    print('halo anak-anak)
elif usia > 10 and usia <=20:
    print('halo remaja')
else:
    print('........pengecualian..........')
Hasil : remaja

PR perkondisian
usia 0 belum lahir
usia 1-3 bayi
usia 3-5 balita
5-10 anak-anak
10 -17 remaja
18 - 25 dewasa
25 - 35 orang tua 
35 - 50 manula

Looping atau Array (kumpulan value atau nilai-nilai dari variable)
contoh:
1.
hobby_saya = ['nonton', 'belajar', 'memasak']
print(hobby_saya)
2.
hobby_saya = ['nonton', 'belajar', 'memasak']
print(hobby_saya[1])
3.
hobby_saya = ['nonton', 'belajar', 'memasak']
print(len(hobby_saya)
4. Baris kebawah atau ngelooping atau tuntunan data yg ada
hobby_saya = ['nonton', 'belajar', 'memasak']
for hobby in hobby_saya:
     print(hobby)
5. Looping tanpa Array
awal = 1
while awal <= 10:
     print(awal)
     awal = awal + 1 #atau awal += 1

Latihan 
#user bisa bayar hutang jika saldo dia cukup atau lebih untuk membayar
#user tidak akan bisa bayar hutang jika saldo nya kurang
jawab:
saldo_awal = 5000
deposit = input('berapa mau depositnya: ')

saldo_total = saldo_awal + deposit 
hutang = 50_000

Selasa, 10 Februari 2026

Peminjaman Alat Bootstrap 5 Part 2

 Mari Kita Kenalan dulu APAsih FRAMEWORK

Framework adalah struktur yang tersusun dari serangkaian kode generik dan berfungsi untuk mengembangkan sistem dan aplikasi. Kerangka kerja ini berperan sebagai template atau model yang menyediakan fungsi cerdas dan elemen struktur standar untuk memudahkan pekerjaan developer.

Kenapa Pake Bootstrap 5 karena menurut lebih mudah, banyak referensi dan dapat diimplementasikan dengan coding backend PHP dan Javascript dalam pembelajaran dikelas.

Berikut Link saya download: Download · Bootstrap v5.0







Jangan Lupa Buat Databasenya


Mari Kita Buat Laman Admin


admin/dasboard.php

<?php
session_start();

if (!isset($_SESSION['login']) || $_SESSION['role'] != 'admin') {
    header("Location: ../index.php");
    exit;
}
?>
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Dashboard Admin</title>

    <!-- Bootstrap 5 -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/
    dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- Bootstrap Icons -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/
    font/bootstrap-icons.css" rel="stylesheet">

   
</head>
<body>

<!-- NAVBAR -->
<nav class="navbar navbar-dark bg-dark">
    <div class="container-fluid">
        <span class="navbar-brand">
            <i class="bi bi-speedometer2"></i> Admin Panel
        </span>
        <a href="../auth/logout.php" class="btn btn-danger btn-sm">
            <i class="bi bi-box-arrow-right"></i> Logout
        </a>
    </div>
</nav>

<div class="container-fluid">
    <div class="row">

        <!-- SIDEBAR -->
        <div class="col-md-3 col-lg-2 sidebar p-0">
            <div class="list-group list-group-flush">

                <a href="dashboard.php" class="list-group-item
                list-group-item-action active">
                    <i class="bi bi-house"></i> Dashboard
                </a>

                <a href="users.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-people"></i> CRUD User
                </a>

                <a href="kategori.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-tags"></i> Kategori
                </a>

                <a href="alat.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-box-seam"></i> Data Alat
                </a>

                 <a href="peminjam.php" class="list-group-item
                    list-group-item-action">
                    <i class="bi bi-people-fill"></i> Data Peminjam
                </a>

                <a href="peminjaman.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-journal-arrow-up"></i> Transaksi Pinjam Alat
                </a>

                <a href="log.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-clock-history"></i> Log Aktivitas
                </a>

            </div>
        </div>

        <!-- CONTENT -->
        <div class="col-md-9 col-lg-10 content">
            <h4>Dashboard Admin</h4>
            <hr>

            <p>Selamat datang, <strong>Admin</strong>.</p>
            <p>
                Silakan gunakan menu di samping untuk mengelola sistem peminjaman alat.
            </p>
        </div>

    </div>
</div>

</body>
</html>


admin/alat.php

<?php
session_start();
require "../config/database.php";

// proteksi halaman (khusus admin)
if (!isset($_SESSION['login']) || $_SESSION['role'] != 'admin') {
    header("Location: ../index.php");
    exit;
}

// LOGIKA PENCARIAN
$keyword = "";
if (isset($_GET['search'])) {
    $keyword = trim($_GET['search']);
    // query cari
    $sql = "SELECT alat.*, kategori.nama_kategori
            FROM alat
            LEFT JOIN kategori ON alat.id_kategori = kategori.id_kategori
            WHERE nama_alat LIKE :keyword
               OR kategori.nama_kategori LIKE :keyword
            ORDER BY id_alat DESC";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(['keyword' => "%$keyword%"]);
    $data = $stmt->fetchAll();
} else {
    // query default (semua data)
    $data = $pdo->query("
        SELECT alat.*, kategori.nama_kategori
        FROM alat
        LEFT JOIN kategori ON alat.id_kategori = kategori.id_kategori
        ORDER BY id_alat DESC
    ")->fetchAll();
}
?>

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Data Alat</title>

    <!-- Bootstrap 5 -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/
    dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- Bootstrap Icons -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/
    font/bootstrap-icons.css" rel="stylesheet">
   
    <!-- CSS Admin -->
    <link href="../assets/css/boostrap.css" rel="stylesheet">
</head>
<body>

<!-- NAVBAR -->
<nav class="navbar navbar-dark bg-dark">
    <div class="container-fluid">
        <span class="navbar-brand">
            <i class="bi bi-speedometer2"></i> Admin Panel
        </span>
        <a href="../auth/logout.php" class="btn btn-danger btn-sm">
            <i class="bi bi-box-arrow-right"></i> Logout
        </a>
    </div>
</nav>

<div class="container-fluid">
    <div class="row">

        <!-- SIDEBAR -->
            <div class="col-md-3 col-lg-2 sidebar p-0">
            <div class="list-group list-group-flush">
                <a href="dashboard.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-house"></i> Dashboard
                </a>
                <a href="users.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-people"></i> CRUD User
                </a>
                <a href="kategori.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-tags"></i> Kategori
                </a>
                <a href="alat.php" class="list-group-item list-group-item-action active">
                    <i class="bi bi-box-seam"></i> Data Alat
                </a>
                <a href="peminjam.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-people-fill"></i> Data Peminjam
                </a>
                <a href="peminjaman.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-journal-arrow-up"></i> Transaksi Pinjam Alat
                </a>
               <a href="log.php" class="list-group-item list-group-item-action">
                    <i class="bi bi-clock-history"></i> Log Aktivitas</a>
            </div>
        </div>

        <!-- CONTENT -->
        <div class="col-md-9 col-lg-10 content">
           
            <h4 class="mt-3">Data Alat</h4>

            <div class="d-flex justify-content-between mb-3">
                <a href="tambah_alat.php" class="btn btn-primary">
                    <i class="bi bi-plus-lg"></i> Tambah Alat
                </a>

                <!-- FORM PENCARIAN -->
                <form method="GET" class="d-flex" role="search">
                    <input class="form-control me-2" type="search" name="search"
                           placeholder="Cari alat / kategori..."
                           value="<?= htmlspecialchars($keyword) ?>"
                           aria-label="Search">
                    <button class="btn btn-outline-success" type="submit">
                        <i class="bi bi-search"></i>
                    </button>
                    <?php if ($keyword): ?>
                        <a href="alat.php" class="btn btn-outline-secondary ms-1"
                            title="Reset">
                            <i class="bi bi-x-lg"></i>
                        </a>
                    <?php endif; ?>
                </form>
            </div>

            <table class="table table-bordered table-striped">
                <thead class="table-dark">
                    <tr>
                        <th>No</th>
                        <th>Kategori</th>
                        <th>Nama Alat</th>
                        <th>Gambar</th>
                       
                        <th>Stok</th>
                        <th>Kondisi</th>
                        <th width="150">Aksi</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if (count($data) > 0): ?>
                        <?php $no = 1; foreach ($data as $row): ?>
                        <tr>
                            <td><?= $no++ ?></td>
                            <td><?= $row['nama_kategori'] ?? '-' ?></td>
                            <td><?= htmlspecialchars($row['nama_alat']) ?></td>
                            <td class="text-center">
                                <?php if (!empty($row['gambar'])): ?>
                                    <img src="../assets/image/<?=
            $row['gambar'] ?>" alt="gambar" width="60" class="img-thumbnail">
                                <?php else: ?>
                                    <span class="text-muted">-</span>
                                <?php endif; ?>
                            </td>
                           
                            <td><?= $row['stok'] ?></td>
                            <td>
                                <!-- Kondisi Badge -->
                                <?php
                                    $badgeClass = 'bg-secondary';
                                    if ($row['kondisi'] == 'Baik') $badgeClass =
                                    'bg-success';
                                   
                                    elseif ($row['kondisi'] == 'Rusak')
                                    $badgeClass = 'bg-danger';
                                ?>
                                <span class="badge <?= $badgeClass ?>">
                                <?= htmlspecialchars($row['kondisi']) ?></span>
                            </td>
                            <td>
                                <a href="edit_alat.php?id=<?= $row['id_alat'] ?>"
                                   class="btn btn-warning btn-sm">
                                   <i class="bi bi-pencil-square"></i> Edit
                                </a>
                                <a href="hapus_alat.php?id=<?= $row['id_alat'] ?>"
                                   class="btn btn-danger btn-sm"
                                   onclick="return confirm
                                   ('Yakin ingin menghapus alat ini?')">
                                   <i class="bi bi-trash"></i> Hapus
                                </a>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    <?php else: ?>
                        <tr>
                            <td colspan="7" class="text-center">
                                Data alat tidak ditemukan
                            </td>
                        </tr>
                    <?php endif; ?>
                </tbody>
            </table>

        </div>

    </div>
</div>

</body>
</html>

admin/tambahalat.php

<?php
session_start();
require "../config/database.php";

// proteksi halaman (khusus admin)
if (!isset($_SESSION['login']) || $_SESSION['role'] != 'admin') {
    header("Location: ../index.php");
    exit;
}

// ambil data kategori
$kategori = $pdo->query("SELECT * FROM kategori")->fetchAll();

// proses simpan
if (isset($_POST['simpan'])) {
    $nama     = trim($_POST['nama_alat']);
    $kategori_id = $_POST['id_kategori'];
    $stok     = $_POST['stok'];
    $kondisi  = trim($_POST['kondisi']);
    $gambar   = null;

    // validasi sederhana
    if ($nama == "" || $stok == "") {
        $error = "Nama alat dan stok wajib diisi!";
    } else {
        // Upload Gambar
        if (!empty($_FILES['gambar']['name'])) {
            $target_dir = "../assets/image/";
            if (!is_dir($target_dir)) mkdir($target_dir, 0777, true);

            $file_name = time() . "_" . basename($_FILES["gambar"]["name"]);
            $target_file = $target_dir . $file_name;
            $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

            // Validasi tipe file
            $allowed_types = ['jpg', 'jpeg', 'png', 'gif'];
            if (in_array($imageFileType, $allowed_types)) {
                if (move_uploaded_file($_FILES["gambar"]["tmp_name"], $target_file)) {
                    $gambar = $file_name;
                } else {
                    $error = "Gagal mengupload gambar.";
                }
            } else {
                $error = "Format file tidak didukung! Gunakan JPG, JPEG, PNG, atau GIF.";
            }
        }

        if (!isset($error)) {
            $sql = $pdo->prepare("
                INSERT INTO alat (nama_alat, id_kategori, stok, kondisi, gambar)
                VALUES (?, ?, ?, ?, ?)
            ");
            $sql->execute([$nama, $kategori_id, $stok, $kondisi, $gambar]);

            header("Location: alat.php");
            exit;
        }
    }
}
?>

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Tambah Alat</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

<nav class="navbar navbar-dark bg-dark">
    <div class="container">
        <span class="navbar-brand">Tambah Data Alat</span>
        <a href="alat.php" class="btn btn-secondary btn-sm">Kembali</a>
    </div>
</nav>

<div class="container mt-4">

    <div class="card shadow">
        <div class="card-body">

            <h5 class="mb-3">Form Tambah Alat</h5>

            <?php if (isset($error)): ?>
                <div class="alert alert-danger">
                    <?= $error ?>
                </div>
            <?php endif; ?>

            <form method="POST" enctype="multipart/form-data">
                <div class="mb-3">
                    <label class="form-label">Nama Alat</label>
                    <input type="text" name="nama_alat" class="form-control" required>
                </div>

                <div class="mb-3">
                    <label class="form-label">Kategori</label>
                    <select name="id_kategori" class="form-select">
                        <option value="">-- Pilih Kategori --</option>
                        <?php foreach ($kategori as $k): ?>
                            <option value="<?= $k['id_kategori'] ?>">
                                <?= htmlspecialchars($k['nama_kategori']) ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <div class="mb-3">
                    <label class="form-label">Gambar Alat</label>
                    <input type="file" name="gambar" class="form-control" accept="image/*">
                    <small class="text-muted">Format: JPG, JPEG, PNG, GIF</small>
                </div>

                <div class="mb-3">
                    <label class="form-label">Stok</label>
                    <input type="number" name="stok" class="form-control" min="0" required>
                </div>

                <div class="mb-3">
                    <label class="form-label">Kondisi</label>
                    <select name="kondisi" class="form-select" required>
                        <option value="Baik">Baik</option>
                        <option value="Rusak">Rusak</option>
                    </select>
                </div>

                <button type="submit" name="simpan" class="btn btn-primary">
                    Simpan
                </button>
                <a href="alat.php" class="btn btn-secondary">
                    Batal
                </a>
            </form>

        </div>
    </div>

</div>

</body>
</html>





Phyton Dasar pertemuan 1

Download phycharm atau phycharm comunity Phyton digunakan untuk microcontroller, otomotion/menyalakan lampu, resberyti, arduino atau alat ha...