Scroll to top

Aplikasi POS Kasir

Aplikasi POS Kasir

# DOKUMEN FLOW UNTUK USER - SISTEM POINT OF SALES (POS)

## A. FITUR-FITUR SISTEM

### 1. Manajemen Autentikasi & Pengguna
- **Login/Logout**: Masuk dan keluar dari sistem menggunakan email dan password
- **Registrasi**: Pendaftaran pengguna baru
- **Manajemen User**: 
  - Lihat daftar pengguna
  - Tambah pengguna baru dengan assign role
  - Edit data pengguna dan role
  - Hapus pengguna
  - Cari pengguna berdasarkan nama
- **Manajemen Role**: 
  - Lihat daftar role
  - Tambah role baru
  - Edit role dan permission-nya
  - Hapus role
- **Manajemen Permission**: 
  - Lihat daftar permission
  - Tambah permission baru
  - Edit permission
  - Hapus permission

### 2. Manajemen Kategori Produk
- **Lihat Daftar Kategori**: Daftar semua kategori dengan gambar dan deskripsi
- **Tambah Kategori**: Tambah kategori baru dengan gambar dan deskripsi
- **Edit Kategori**: Edit nama, deskripsi, dan gambar kategori
- **Hapus Kategori**: Hapus kategori dari sistem
- **Cari Kategori**: Pencarian kategori berdasarkan nama

### 3. Manajemen Produk
- **Lihat Daftar Produk**: Daftar semua produk dengan informasi lengkap
- **Tambah Produk**: 
  - Input barcode unik
  - Input nama, deskripsi, harga beli, harga jual, stok
  - Pilih kategori produk
  - Upload gambar produk
- **Edit Produk**: Edit semua informasi produk termasuk update gambar
- **Hapus Produk**: Hapus produk dari sistem
- **Cari Produk**: Pencarian produk berdasarkan nama

### 4. Manajemen Pelanggan
- **Lihat Daftar Pelanggan**: Daftar semua pelanggan
- **Tambah Pelanggan**: Input nama, nomor telepon (unik), dan alamat
- **Edit Pelanggan**: Edit data pelanggan
- **Hapus Pelanggan**: Hapus pelanggan dari sistem
- **Cari Pelanggan**: Pencarian pelanggan berdasarkan nama

### 5. Sistem Transaksi Penjualan
- **Scan/Input Barcode**: 
  - Scan barcode produk menggunakan scanner atau input manual
  - Sistem mencari produk secara otomatis
- **Keranjang Belanja**: 
  - Tambah produk ke keranjang dengan kuantitas
  - Lihat daftar produk di keranjang
  - Update kuantitas produk
  - Hapus item dari keranjang
  - Lihat total belanja
- **Pilih Pelanggan**: Pilih pelanggan dari daftar (opsional, bisa kosong)
- **Pembayaran**: 
  - Input diskon (jika ada)
  - Input uang tunai
  - Sistem hitung kembalian otomatis
  - Validasi uang tunai harus cukup
- **Proses Transaksi**: 
  - Generate invoice otomatis
  - Simpan transaksi
  - Update stok produk otomatis
  - Hitung profit otomatis
- **Cetak Struk**: Cetak struk transaksi dengan detail lengkap

### 6. Dashboard
- **Statistik**: Lihat widget statistik (Total Kategori, Produk, Transaksi, Pengguna)

---

## B. JENIS PENGGUNA (USER ROLES)

### 1. Super Admin
- **Email**: arya@gmail.com
- **Password**: password
- **Hak Akses**: 
  - ✅ Akses penuh ke semua fitur
  - ✅ Manajemen user, role, dan permission
  - ✅ Manajemen kategori, produk, dan pelanggan
  - ✅ Akses transaksi penjualan
  - ✅ Dashboard

### 2. Cashier (Kasir)
- **Email**: cashier@gmail.com
- **Password**: password
- **Hak Akses**: 
  - ❌ Tidak dapat akses manajemen user, role, permission
  - ❌ Tidak dapat akses manajemen kategori, produk, pelanggan
  - ✅ Hanya dapat akses transaksi penjualan
  - ✅ Dapat melakukan transaksi penjualan

### 3. Role Lainnya
Sistem mendukung berbagai role dengan permission berbeda:
- **users-access**: Role untuk manajemen pengguna
- **roles-access**: Role untuk manajemen role
- **permission-access**: Role untuk manajemen permission
- **categories-access**: Role untuk manajemen kategori
- **products-access**: Role untuk manajemen produk
- **customers-access**: Role untuk manajemen pelanggan
- **transactions-access**: Role untuk transaksi penjualan

Setiap role dapat memiliki permission detail (create, update, delete) sesuai kebutuhan bisnis.

---

## C. FLOW BISNIS (BUSINESS PROCESS FLOW)

### 1. Flow Setup Awal Sistem (Untuk Admin)

#### A. Setup Kategori Produk
```
1. Login sebagai Admin
   ↓
2. Masuk ke menu "Kategori"
   ↓
3. Klik "Tambah Kategori"
   ↓
4. Input data kategori:
   - Nama kategori (contoh: "Makanan", "Minuman", "Snack")
   - Deskripsi kategori
   - Upload gambar kategori
   ↓
5. Klik "Simpan"
   ↓
6. Kategori berhasil ditambahkan
   ↓
7. Ulangi untuk kategori lainnya
```

#### B. Setup Produk
```
1. Masuk ke menu "Produk"
   ↓
2. Klik "Tambah Produk"
   ↓
3. Input data produk:
   - Barcode (unik, contoh: "1234567890123")
   - Nama produk
   - Deskripsi produk
   - Pilih kategori
   - Harga beli (contoh: 5000)
   - Harga jual (contoh: 7000)
   - Stok awal (contoh: 100)
   - Upload gambar produk
   ↓
4. Klik "Simpan"
   ↓
5. Produk berhasil ditambahkan
   ↓
6. Ulangi untuk produk lainnya
```

#### C. Setup Pelanggan (Opsional)
```
1. Masuk ke menu "Pelanggan"
   ↓
2. Klik "Tambah Pelanggan"
   ↓
3. Input data pelanggan:
   - Nama pelanggan
   - Nomor telepon (harus unik)
   - Alamat
   ↓
4. Klik "Simpan"
   ↓
5. Pelanggan berhasil ditambahkan
```

#### D. Setup User Kasir
```
1. Masuk ke menu "Users"
   ↓
2. Klik "Tambah User"
   ↓
3. Input data user:
   - Nama kasir
   - Email (harus unik)
   - Password
   - Pilih role "transactions-access"
   ↓
4. Klik "Simpan"
   ↓
5. User kasir berhasil dibuat
```

---

### 2. Flow Transaksi Penjualan (Untuk Kasir)

#### A. Memulai Transaksi Baru
```
1. Login sebagai Kasir
   ↓
2. Masuk ke menu "Transaksi"
   ↓
3. Halaman transaksi terbuka dengan keranjang kosong
```

#### B. Menambah Produk ke Keranjang
```
1. Di bagian "Tambah Data Produk":
   ↓
2. Scan barcode produk menggunakan barcode scanner
   ATAU
   Input barcode secara manual di field "Scan/Input Barcode Produk"
   ↓
3. Tekan Enter atau klik di luar field
   ↓
4. Sistem mencari produk:
   ✅ Jika produk ditemukan:
      - Nama produk muncul di field "Produk"
      - Stok tersedia ditampilkan
   ❌ Jika produk tidak ditemukan:
      - Field "Produk" tetap kosong
      - Tidak dapat menambah ke keranjang
   ↓
5. Input kuantitas yang ingin dibeli (default: 1)
   ↓
6. Cek stok tersedia (sistem validasi otomatis)
   ↓
7. Klik tombol "Tambah"
   ↓
8. Produk berhasil ditambahkan ke keranjang
   ↓
9. Total belanja otomatis terupdate
```

#### C. Mengelola Keranjang
```
1. Lihat daftar produk di keranjang (tabel "Keranjang")
   ↓
2. Untuk menghapus item:
   - Klik tombol hapus (icon trash) pada item yang ingin dihapus
   - Item langsung terhapus dari keranjang
   - Total belanja otomatis terupdate
   ↓
3. Untuk menambah produk yang sama:
   - Scan/input barcode produk yang sama
   - Input kuantitas tambahan
   - Klik "Tambah"
   - Sistem otomatis update qty produk yang sudah ada di keranjang
```

#### D. Memilih Pelanggan (Opsional)
```
1. Di bagian "Transaksi":
   ↓
2. Field "Kasir" otomatis terisi dengan nama kasir yang login
   ↓
3. Di field "Pelanggan":
   - Klik dropdown "Pelanggan"
   - Cari pelanggan (jika banyak) atau pilih langsung
   - Pilih pelanggan
   ATAU
   - Biarkan kosong (untuk walk-in customer)
```

#### E. Proses Pembayaran
```
1. Di bagian "Pembayaran":
   ↓
2. Lihat "Total Belanja" (otomatis dari keranjang)
   ↓
3. Input "Diskon" (jika ada, contoh: 5000)
   - Sistem otomatis hitung: Grand Total = Total Belanja - Diskon
   ↓
4. Input "Bayar" (uang tunai yang diterima, contoh: 100000)
   ↓
5. Sistem otomatis hitung "Kembalian":
   - Kembalian = Bayar - Grand Total
   - Jika Bayar < Grand Total, tombol "Bayar" disabled
   ↓
6. Pastikan kembalian >= 0 (uang tunai cukup)
   ↓
7. Klik tombol "Bayar"
   ↓
8. Sistem validasi:
   ✅ Jika uang tunai >= grand total:
      - Proses transaksi
   ❌ Jika uang tunai < grand total:
      - Tampilkan notifikasi error
      - Transaksi tidak dapat diproses
```

#### F. Proses Transaksi
```
1. Setelah klik "Bayar" dan validasi berhasil:
   ↓
2. Sistem generate invoice number (format: TRX-XXXXXXXXXX)
   ↓
3. Sistem simpan transaksi ke database:
   - Data transaksi (invoice, cashier, customer, cash, change, discount, grand_total)
   - Detail transaksi (setiap produk di keranjang)
   - Profit per item (harga jual - harga beli) × qty
   ↓
4. Sistem update stok produk:
   - Untuk setiap produk di keranjang:
     Stok baru = Stok lama - Qty terjual
   ↓
5. Sistem hapus semua item di keranjang
   ↓
6. Redirect ke halaman "Cetak Struk"
   ↓
7. Tampilkan struk transaksi dengan detail lengkap:
   - Invoice number
   - Tanggal dan waktu transaksi
   - Nama kasir
   - Nama pelanggan (jika ada)
   - Daftar produk (nama, qty, harga, subtotal)
   - Total belanja
   - Diskon
   - Grand total
   - Uang tunai
   - Kembalian
   ↓
8. Transaksi selesai
   ↓
9. Kasir dapat:
   - Cetak struk (print)
   - Kembali ke halaman transaksi untuk transaksi baru
```

---

### 3. Flow Manajemen Produk (Untuk Admin/User dengan Permission)

#### A. Lihat Daftar Produk
```
1. Masuk ke menu "Produk"
   ↓
2. Lihat daftar produk dalam bentuk tabel:
   - Gambar produk
   - Nama produk
   - Kategori
   - Harga beli
   - Harga jual
   - Stok
   - Aksi (Edit, Hapus)
   ↓
3. Gunakan search box untuk mencari produk berdasarkan nama
   ↓
4. Gunakan pagination untuk melihat halaman berikutnya
```

#### B. Tambah Produk Baru
```
1. Di halaman daftar produk, klik "Tambah Produk"
   ↓
2. Form tambah produk terbuka
   ↓
3. Input semua field yang wajib:
   - Barcode (harus unik, tidak boleh sama dengan produk lain)
   - Nama produk
   - Deskripsi
   - Pilih kategori (dropdown)
   - Harga beli (angka)
   - Harga jual (angka)
   - Stok (angka)
   - Upload gambar (file image)
   ↓
4. Klik "Simpan"
   ↓
5. Validasi:
   ✅ Jika semua field valid:
      - Produk berhasil disimpan
      - Redirect ke halaman daftar produk
   ❌ Jika ada field yang tidak valid:
      - Tampilkan pesan error
      - Form tetap terbuka untuk perbaikan
```

#### C. Edit Produk
```
1. Di halaman daftar produk, klik tombol "Edit" pada produk yang ingin diedit
   ↓
2. Form edit produk terbuka dengan data produk terisi
   ↓
3. Edit field yang ingin diubah:
   - Barcode (dapat diubah, tapi harus tetap unik)
   - Nama, deskripsi, kategori, harga, stok
   - Gambar (opsional, jika tidak diubah tetap pakai gambar lama)
   ↓
4. Klik "Simpan"
   ↓
5. Produk berhasil diupdate
   ↓
6. Redirect ke halaman daftar produk
```

#### D. Hapus Produk
```
1. Di halaman daftar produk, klik tombol "Hapus" pada produk yang ingin dihapus
   ↓
2. Konfirmasi penghapusan (biasanya via SweetAlert)
   ↓
3. Jika dikonfirmasi:
   - Produk dihapus dari database
   - Gambar produk juga dihapus dari storage
   - Redirect ke halaman daftar produk
```

---

### 4. Flow Manajemen Kategori (Untuk Admin)

#### A. Lihat Daftar Kategori
```
1. Masuk ke menu "Kategori"
   ↓
2. Lihat daftar kategori dalam bentuk card/grid:
   - Gambar kategori
   - Nama kategori
   - Deskripsi
   - Aksi (Edit, Hapus)
   ↓
3. Gunakan search box untuk mencari kategori berdasarkan nama
   ↓
4. Gunakan pagination untuk melihat halaman berikutnya
```

#### B. Tambah Kategori Baru
```
1. Di halaman daftar kategori, klik "Tambah Kategori"
   ↓
2. Form tambah kategori terbuka
   ↓
3. Input semua field:
   - Nama kategori
   - Deskripsi
   - Upload gambar kategori
   ↓
4. Klik "Simpan"
   ↓
5. Kategori berhasil ditambahkan
   ↓
6. Redirect ke halaman daftar kategori
```

#### C. Edit Kategori
```
1. Di halaman daftar kategori, klik tombol "Edit"
   ↓
2. Form edit kategori terbuka
   ↓
3. Edit nama dan deskripsi
   ↓
4. Update gambar (opsional)
   ↓
5. Klik "Simpan"
   ↓
6. Kategori berhasil diupdate
```

#### D. Hapus Kategori
```
1. Di halaman daftar kategori, klik tombol "Hapus"
   ↓
2. Konfirmasi penghapusan
   ↓
3. Kategori dihapus (gambar juga dihapus)
```

---

### 5. Flow Manajemen Pelanggan (Untuk Admin/User dengan Permission)

#### A. Lihat Daftar Pelanggan
```
1. Masuk ke menu "Pelanggan"
   ↓
2. Lihat daftar pelanggan dalam bentuk tabel:
   - Nama pelanggan
   - Nomor telepon
   - Alamat
   - Aksi (Edit, Hapus)
   ↓
3. Gunakan search box untuk mencari pelanggan berdasarkan nama
   ↓
4. Gunakan pagination untuk melihat halaman berikutnya
```

#### B. Tambah Pelanggan Baru
```
1. Di halaman daftar pelanggan, klik "Tambah Pelanggan"
   ↓
2. Form tambah pelanggan terbuka
   ↓
3. Input semua field:
   - Nama pelanggan
   - Nomor telepon (harus unik)
   - Alamat
   ↓
4. Klik "Simpan"
   ↓
5. Validasi:
   ✅ Jika nomor telepon unik:
      - Pelanggan berhasil ditambahkan
   ❌ Jika nomor telepon sudah ada:
      - Tampilkan error "Nomor telepon sudah terdaftar"
```

#### C. Edit Pelanggan
```
1. Di halaman daftar pelanggan, klik tombol "Edit"
   ↓
2. Form edit pelanggan terbuka
   ↓
3. Edit data pelanggan
   ↓
4. Klik "Simpan"
   ↓
5. Pelanggan berhasil diupdate
```

#### D. Hapus Pelanggan
```
1. Di halaman daftar pelanggan, klik tombol "Hapus"
   ↓
2. Konfirmasi penghapusan
   ↓
3. Pelanggan dihapus dari sistem
```

---

### 6. Flow Manajemen User & Role (Untuk Super Admin)

#### A. Lihat Daftar User
```
1. Masuk ke menu "Users"
   ↓
2. Lihat daftar user dalam bentuk tabel:
   - Avatar (jika ada)
   - Nama user
   - Email
   - Role(s)
   - Aksi (Edit, Hapus)
   ↓
3. Gunakan search box untuk mencari user berdasarkan nama
   ↓
4. Gunakan pagination untuk melihat halaman berikutnya
```

#### B. Tambah User Baru
```
1. Di halaman daftar user, klik "Tambah User"
   ↓
2. Form tambah user terbuka
   ↓
3. Input data user:
   - Nama
   - Email (harus unik)
   - Password
   - Pilih role(s) dari checkbox/dropdown
   ↓
4. Klik "Simpan"
   ↓
5. User berhasil dibuat dengan role yang dipilih
```

#### C. Edit User
```
1. Di halaman daftar user, klik tombol "Edit"
   ↓
2. Form edit user terbuka
   ↓
3. Edit nama user
   ↓
4. Update password (opsional, jika dikosongkan tidak diubah)
   ↓
5. Update role assignment
   ↓
6. Klik "Simpan"
   ↓
7. User berhasil diupdate
```

#### D. Hapus User
```
1. Di halaman daftar user, klik tombol "Hapus"
   ↓
2. Konfirmasi penghapusan
   ↓
3. User dihapus dari sistem
   ↓
4. Dapat juga hapus multiple user sekaligus (jika fitur tersedia)
```

---

## RINGKASAN FLOW UTAMA

### Untuk Admin:
1. Setup kategori produk
2. Setup produk dengan barcode
3. Setup pelanggan (opsional)
4. Setup user kasir dengan role yang sesuai

### Untuk Kasir:
1. Login ke sistem
2. Masuk ke halaman transaksi
3. Scan/input barcode produk
4. Tambah produk ke keranjang dengan qty
5. Pilih pelanggan (opsional)
6. Input diskon dan uang tunai
7. Proses pembayaran
8. Cetak struk transaksi

### Untuk Admin (Manajemen):
1. Kelola kategori, produk, pelanggan
2. Kelola user dan role
3. Monitor transaksi dan profit

Bagikan Portfolio Ini:
Project Details
Category:

POS KASIR

Date:

11 November 2025

Ingin Project Seperti Ini?

Dapatkan project ini atau custom sesuai kebutuhan Anda

Pesan Project Ini Tersedia dalam paket ready atau custom
Previous Project
Sistem Aplikasi Absensi Guru
Next Project
E Commerce Fashion