FP PBKK INFORMASI PENJUALAN

Nama: Dafarel Fatih Wirayudha
Kelas : PBKK A
NRP : 5025211120

Link : GitHub

Pada final project ini saya menggunakan referensi paper berikut sebagai base studi kasus saya: Paper

Paper tersebut membahas tentang perancangan aplikasi sistem informasi penjualan berbasis website. Aplikasi dari paper ini lebih mengarah untuk pemilik toko yang ingin mengelola tokonya dengan lebih mudah.

Saya sedikit menambahakan fitur untuk website ini agar memungkinkan pengguna juga menggunakan website ini untuk transaksi jual beli.

1. Buatlah deskripsi studi kasus aplikasi ditinjau dari MVC.

Toko Hamas merupakan sebuah toko barang pokok konvensional. Seiring dengan perkembangan teknologi dan tren e-commerce yang terus meningkat, manajemen Toko Hamas merasa perlunya untuk mengembangkan keberadaan mereka ke ranah online. Dengan demikian, mereka berencana untuk membangun sebuah platform toko online yang memungkinkan pelanggan untuk menjelajahi dan membeli produk-produk mereka dengan mudah melalui internet.

Tujuan dari proyek ini adalah untuk membuat sebuah website sistem informasi toko online yang efisien, user-friendly, dan dapat meningkatkan penetrasi pasar Toko Hamas melalui platform online. 

MVC (Model-View-Controller) Merupakan pola desain arsitektur perangkat lunak yang digunakan untuk mengorganisir struktur dan aliran kerja aplikasi. 

Berikut adalah model, view, dan controller yang saya gunakan untuk website ini:

- Model
1. Model Auth : Menangani fungsi-fungsi untuk melakukan authentication yang berbasis table "users" pada database
2. Model Barang : Menangani fungsi-fungsi untuk melakukan aksi pada data barang yang berbasis table "barang" pada database
3. Model Invoice : Menangani history transaksi jual beli barang yang berbasis table "invoice" pada database
4. Model Profil : Berisi fungsi yang berbasis table "profil" yang berisi data profil toko

- View
Disini ada view authetikasi dan 2 base view yang berbeda yaitu view untuk pihak toko (admin dan karyawan) dan view untuk customer

View Admin:
1. Dashboard : Berisi data profil toko dan info user yang sedang login saat ini.
2. Data Barang : Berisi data barang yang digunakan untuk memantau barang yang ada dan opsi untuk menambah, mengedit, dan menghapus barang
3. Data Kasir : Berisi data-data kasir
4. Invoice : Berisi daftar history transaksi jual beli
5. Pengguna : Berisi data-data akun customer
6. Profil : Berisi data profil toko yang bisa diedit melalui tampilan view ini

View Customer:
1. Dashboard : Menampilkan data barang yang siap dibeli
2. Keranjang : Berisi barang barang yang sudah dipilih customer untuk dibeli
3. Pembayaran : Berisi form yang harus diisi dengan data data customer untuk menyelesaikan pembelian
4. Proses Pesanan : Berisi notifikasi status pesanan

Lalu terakhir ada view login dan registrasi yang berisi halaman untuk melakukan authentikasi.

- Controller
Disini ada contoller authentikasi dan 2 jenis base controller lainnya yaitu controller admin dan controller customer

Controller Admin:
1. Dashboard : Pengelolaan akses hanya pihak toko yang boleh mengakses bagian ini dan pengambilan data barang dari database untuk di passing ke view admin/dashboard.
2. Data Barang : Pengelolaan akses hanya pihak toko yang boleh mengakses bagian ini dan fungsi-fungsi untuk melakukan CRUD ke table barang
3. Data Kasir : Pengelolaan akses hanya admin yang boleh mengakses bagian ini dan fungsi-fungsi untuk melakukan CRUD ke table user dengan role kasir
4. Invoice : Pengelolaan hanya admin yang boleh akses dan CRUD ke table invoice
5. Pengguna : Pengelolaan hanya admin yang boleh akses dan CRUD ke table invoice dengan role_id customer
6. Profil toko : Pengelolaan akses hanya pihak toko yang boleh mengakses bagian ini dan CRUD untuk table profil

Controller Customer:
1. Dashboard : Pengelolaan akses jika belum login maka akan diarahkan ke halaman login dan CRUD untuk table barang
2. Welcome : Tampilan utama customer yang diarahkan ke view/dashboard

Lalu terakhir ada controller login dan register untuk pengelolaan authentikasi

2. Buatlah rancangan umum arsitektur atau fitur yang ada dalam aplikasi 

Berikut adalah rancangan fitur-fitur yang ada di website ini:
1. Login dan Register : Para pengguna website akan memiliki akun masing-masing yang akan digunakan untuk mengakses website
2. Pemesanan Barang : Customer bisa melakukan pemesanan/pembelian barang dari view dashboard utama
3. Keranjang Barang : Customer dapat melihat barang barang apa saja yang sudah ditambahkan untuk dibeli
4. Penambahan Barang : Pihak toko dapat menambahkan barang untuk dijual pada halaman admin atau kasir
5. Data kasir : Admin dapat mengelola data kasir yang bekerja 
6. Data pengguna : Admin dapat mengelola data akun customer
7. Transaksi Penjualan : Admin dapat men-track transaksi penjualan yang sudah dilakukan customer
8. Profil Toko : Admin dapat mengupdate data profil toko

3. Rancang desain databasenya

Database yang saya pakai memiliki beberapa table yaitu:
1. tb_barang : Berisi data-data barang
2. tb_invoice : Berisi data transaksi penjualan
3. tb_pesanan : Berisi detail data transaksi penjualan
4. tb_profil : Berisi data profil toko
5. tb_user : Berisi data user dengan masing masing rolenya

Berikut adalah code sqlnya:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";

CREATE TABLE `tb_barang` (
  `id_brg` int(11) NOT NULL,
  `nama_brg` varchar(120) NOT NULL,
  `harga_beli` int(11) NOT NULL,
  `harga_jual` int(11) NOT NULL,
  `stok` int(4) NOT NULL,
  `gambar` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

INSERT INTO `tb_barang` (`id_brg`, `nama_brg`, `harga_beli`, `harga_jual`, `stok`, `gambar`) VALUES
(1, 'Telur 1 kg', 30000, 31000, 44, 'telur.jpg'),
(2, 'Kopi Kapal Api 1 Sachet', 1000, 2000, 25, 'kopi.jpg'),
(3, 'Gula Pasir 1 kg', 14500, 17000, 30, 'gula.jpg'),
(4, 'Minyak Goreng 1 Liter', 24000, 25000, 24, 'minyak.jpg'),
(5, 'Beras 1 kg', 13000, 14000, 38, 'beras.jpg'),
(6, 'Susu Kental Manis 1 sachet', 2000, 3000, 32, 'susu.jpg');

CREATE TABLE `tb_invoice` (
  `id` int(11) NOT NULL,
  `nama` varchar(56) NOT NULL,
  `alamat` varchar(225) NOT NULL,
  `tgl_pesan` datetime NOT NULL,
  `batas_bayar` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE `tb_pesanan` (
  `id` int(11) NOT NULL,
  `id_invoice` int(11) NOT NULL,
  `id_brg` int(11) NOT NULL,
  `nama_brg` varchar(50) NOT NULL,
  `jumlah` int(3) NOT NULL,
  `harga` int(10) NOT NULL,
  `pilihan` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE `tb_profil` (
  `nama_toko` varchar(120) NOT NULL,
  `nama_pemilik` varchar(120) NOT NULL,
  `no_telepon` varchar(120) NOT NULL,
  `alamat` varchar(120) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

DELIMITER $$
CREATE TRIGGER `pesanan_penjualan` AFTER INSERT ON `tb_pesanan` FOR EACH ROW BEGIN
  UPDATE tb_barang SET stok = stok-NEW.jumlah
    WHERE id_brg = NEW.id_brg;
END
$$
DELIMITER ;
CREATE TABLE `tb_user` (
  `id` int(11) NOT NULL,
  `nama` varchar(50) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `role_id` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

ALTER TABLE `tb_barang`
  ADD PRIMARY KEY (`id_brg`);ALTER TABLE `tb_invoice`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `tb_pesanan`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `tb_user`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `tb_barang`
  MODIFY `id_brg` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

ALTER TABLE `tb_invoice`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

ALTER TABLE `tb_pesanan`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

ALTER TABLE `tb_user`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
COMMIT;

4. Buat desain front end 
Login Page:

Register Page:
Dashboard user:

Detail Keranjang:

Halaman Pembayaran:

Dashboard Admin :

Data Barang (admin):
Tambah Barang:
Data Kasir:
Transaksi Penjualan:

Manajemen Pengguna
Profil Toko:



5. Tentukan Control yang akan mengandle logika back end.

Seperi yang sudah dijelaskan sebelumnya disini ada contoller authentikasi dan 2 jenis base controller lainnya yaitu controller admin dan controller customer

Controller Admin:
1. Dashboard : Pengelolaan akses hanya pihak toko yang boleh mengakses bagian ini dan pengambilan data barang dari database untuk di passing ke view admin/dashboard.
2. Data Barang : Pengelolaan akses hanya pihak toko yang boleh mengakses bagian ini dan fungsi-fungsi untuk melakukan CRUD ke table barang
3. Data Kasir : Pengelolaan akses hanya admin yang boleh mengakses bagian ini dan fungsi-fungsi untuk melakukan CRUD ke table user dengan role kasir
4. Invoice : Pengelolaan hanya admin yang boleh akses dan CRUD ke table invoice
5. Pengguna : Pengelolaan hanya admin yang boleh akses dan CRUD ke table invoice dengan role_id customer
6. Profil toko : Pengelolaan akses hanya pihak toko yang boleh mengakses bagian ini dan CRUD untuk table profil

Controller Customer:
1. Dashboard : Pengelolaan akses jika belum login maka akan diarahkan ke halaman login dan CRUD untuk table barang
2. Welcome : Tampilan utama customer yang diarahkan ke view/dashboard

Lalu terakhir ada controller login dan register untuk pengelolaan authentikasi.

6. Video Demo Presentasi Website Kelompok 9



Comments

Popular posts from this blog

Quiz PBKK A

CRUD dalam code igniter