# Sistem Manajemen Toko Kelontong

#### **Cerita:**

Pak Budi adalah pemilik toko kelontong di desa. Selama ini, ia mencatat stok barang, transaksi penjualan, dan pemasukan secara manual di buku catatan. Namun, ia sering lupa mengupdate stok atau mencatat transaksi, sehingga sulit mengetahui sisa stok barang atau keuntungannya.

Pak Budi ingin memiliki aplikasi sederhana untuk mencatat data barang, stok, dan transaksi penjualan, agar pekerjaannya lebih efisien. Ia juga ingin aplikasi ini mudah digunakan oleh dirinya maupun karyawannya.

***

**User Story:**

1. **Sebagai Pak Budi**, saya ingin dapat **login ke aplikasi** sehingga hanya saya dan karyawan yang bisa menggunakan aplikasi.
2. **Sebagai Pak Budi**, saya ingin dapat **menambahkan data barang** seperti nama barang, harga, dan jumlah stok.
3. **Sebagai Pak Budi**, saya ingin dapat **mencatat transaksi penjualan**, sehingga saya tahu barang apa saja yang terjual dan sisa stoknya.
4. **Sebagai Pak Budi**, saya ingin dapat **melihat laporan penjualan harian**, termasuk total pemasukan.

***

**Skema Database (Maksimal 4 Tabel):**

1. **Tabel `users`**
   * `id_user` (Primary Key, INT)
   * `username` (VARCHAR, UNIQUE)
   * `password` (VARCHAR)
   * `role` (ENUM: "Admin", "Karyawan")
2. **Tabel `barang`**
   * `id_barang` (Primary Key, INT)
   * `nama_barang` (VARCHAR)
   * `harga` (DECIMAL)
   * `stok` (INT)
3. **Tabel `transaksi`**
   * `id_transaksi` (Primary Key, INT)
   * `id_barang` (Foreign Key, INT, mengacu pada `barang.id_barang`)
   * `jumlah` (INT)
   * `total_harga` (DECIMAL)
   * `tanggal_transaksi` (DATE)
4. **Tabel `laporan`**
   * `id_laporan` (Primary Key, INT)
   * `tanggal` (DATE)
   * `total_pemasukan` (DECIMAL)

***

#### **Tugas:**

1. Buatlah aplikasi berbasis web menggunakan **PHP**, **HTML**, **CSS**, dan **MySQL** yang dapat:
   * **Login**: Hanya user yang memiliki akun dapat mengakses sistem.
   * Menambahkan, mengedit, dan menghapus data barang.
   * Mencatat transaksi penjualan barang.
   * Menampilkan laporan harian total pemasukan.
2. **Bonus**:
   * Tambahkan fitur pencarian barang berdasarkan nama.
   * Enkripsi password pada tabel `users`.
