Studi Kasus - Sistem Aplikasi Kasir

Kelas: PPL A
Tahun: 2023/2024 (Genap)

Anggota Kelompok:
  1. Muhammad Razan Athallah (5025211008) 
  2. Muhammad Hafidh Rosyadi (5025211013)

Tugas keenam berupa latihan membuat desain sitem aplikasi kasir secara berkelompok. Desain sitem termasuk requirement functional dan non functional, high level design, low level design, dan workflow system.
 

High Level Design





Functional Requirements

  1. Pemrosesan Transaksi Penjualan: Memindai produk melalui kode barang (id barang) atau entri manual dan menghitung total biaya. 
  2. Manajemen Produk: Menambahkan produk baru ke sistem, termasuk nama, harga, kategori, stok. Selain itu, Memperbarui detail produk yang ada. 
  3. Pelaporan: Menghasilkan laporan penjualan untuk periode tertentu.

Non-Functional Requirements

  1. Usability : Aplikasi harus memiliki antarmuka yang intuitif dan mudah digunakan untuk memastikan adopsi yang cepat oleh kasir baru. 
  2. Performance: Responsibilitas tinggi dengan minimnya delay dalam pemrosesan transaksi untuk menangani penjualan jam sibuk dengan efisien. 
  3. Reliability: Pemrosesan transaksi yang akurat untuk memastikan penetapan harga yang benar dan penyesuaian inventaris. 
  4. Maintainability: Mudah diperbarui dan dipelihara dengan gangguan minimal.

Asumsi Kapasitas

Untuk sistem kasir, asumsi mungkin termasuk: 
  1. Jumlah Produk di Toko: Asumsikan minimarket menyimpan sekitar 10.000 item unik. 
  2. Transaksi Harian: Transaksi harian rata-rata = 5.000 transaksi. Transaksi puncak (mempertimbangkan hari-hari khusus atau promosi) = 10.000 transaksi per hari. 
  3. Rata-rata Item per Transaksi: 10 item.

Estimasi Penyimpanan

Mari kita asumsikan ukuran penyimpanan rata-rata untuk setiap jenis data: 
  1. Data Produk: Asumsikan setiap rekaman produk mengonsumsi sekitar 512 byte (nama, kategori, harga, barcode, dll.). 
  2. Data Transaksi: Asumsikan setiap rekaman transaksi mengonsumsi sekitar 1 KB, mengingat mencakup beberapa item, total harga, jumlah pembayaran, tipe pembayaran, dan  tanggal/waktu transaksi jika berlaku.

Menghitung Total Penyimpanan

  1. Produk: 10.000 produk x 512 byte per produk = 5 MB. 
  2. Transaksi: Penyimpanan harian: 5.000 transaksi/hari x 1 KB per transaksi = 5 GB/hari. Asumsikan data disimpan selama 5 tahun (untuk penyesuaian atau analisis): 5 GB/hari x 365 hari/tahun x 5 tahun = 9.125 GB, atau sekitar 9 TB. 
  3. Transaksi Puncak: Penyimpanan harian puncak: 10.000 transaksi/hari x 1 KB per transaksi = 10 GB/hari (hanya relevan untuk perencanaan kapasitas pada hari-hari puncak). 
Secara ringkas, untuk sistem kasir: 
  1. Data Produk: 5 MB (dampaknya tidak signifikan terhadap total penyimpanan). 
  2. Transaksi: Sampai dengan 9 sampai 10 TB selama 5 tahun.

Service

Layanan Kasir sebagai layanan Utama.

Kasir melakukan login/register kedalam system. Kasir dapat melakukan transaksi untuk melayani pelanggan dengan cara scan barcode ataupun input secara manual dan mengeluarkan total perbelanjaan. Selain itu, kasir dapat menambah/mengubah barang. Terakhir kasir dapat melihat report dari transaksi yang sudah terjadi.


Bagian yang dibutuhkan:

  1. Antarmuka Kasir

Kasir berinteraksi dengan sistem melalui aplikasi desktop atau antarmuka web.

  1. Layanan Otentikasi dan Registrasi

Mengelola otentikasi dan proses registrasi kasir untuk memastikan akses aman ke sistem.

  1. Database

Menyimpan data kasir, detail transaksi dan informasi produk/barang. Berfungsi sebagai repositori sentral untuk sistem.

  1. Layanan Pembayaran

Mengelola semua data dan layanan terkait pembayaran untuk transaksi yang diproses oleh kasir.

  1. Layanan Pengolahan Transaksi

Bertanggung jawab untuk memproses transaksi yang diinisiasi oleh kasir, memperbarui inventaris, dan menghasilkan struk.

  1. Layanan Manajemen Inventaris

Mengelola inventaris, termasuk menambahkan produk baru, memperbarui tingkat stok, dan menangani informasi produk.

  1. Layanan Cadangan dan Pemulihan

Menyediakan mekanisme cadangan dan pemulihan untuk melindungi data jika terjadi kegagalan sistem atau kehilangan data.



Database Design

Arsitektur database akan menggunakan database dengan SQL, karena diperlukan untuk menyimpan data yang relasional seperti transaksi dan produk yang dibeli, serta transaksi dengan kasir yang menangani. Berikut adalah CDM dari sistem aplikasi kasir yang kami rancang:


Terdapat 4 tabel, yaitu: 
  1. Kasir: terdiri dari kolom id sebagai unique identifier, kolom nama yang menyimpan nama kasir, kolom email menyimpan email kasir, dan kolom password menyimpan password yang dibuat kasir. Kolom email dan password ini nantinya dapat digunakan untuk kasir login ke aplikasi. 
  2. Transaksi: terdiri dari kolom id sebagai unique identifier, kolom tanggal yang menyimpan tanggal dan waktu terjadinya transaksi, kolom total_harga yang menyimpan total harga dari produk yang dibeli, kolom jumlah_pembayaran menyimpan uang yang dibayarkan oleh konsumen yang bertransaksi, dan kolom tipe_pembayaran menyimpan tipe pembayaran seperti tunai, e-wallet, dll. 
  3. Barang: terdiri dari kolom id sebagai unique identifier, kolom nama yang menyimpan nama barang, kolom harga yang menyimpan harga dari satuan barang tersebut, kolom stok yang menyimpan jumlah barang yang tersedia, dan kolom detail menyimpan detail barang. 
  4. Kategori: terdiri dari kolom id sebagai unique identifier, dan kolom nama yang menyimpan nama dari kategori.

Communicating with Server

Asumsikan aplikasi kasir yang dibuat digunakan pada beberapa cabang toko, dan memiliki server untuk melayani penyimpanan data barang, data transaksi, dsb. Maka digunakan RESTful API untuk berkomunikasi dengan server.

  1. Registrasi kasir

  • Endpoint: POST /kasir/register

  • Request: 

{

“nama”: “Ben White”,

“email”: “bnbwt@example.com”,

“password”: “test123”

}

  • Response:

{

“status”: “success”,

“message”: “berhasil melakukan registrasi kasir.”,

“id”: 123,

“token”: “auth_token”

}


  1. Autentikasi kasir

  • Endpoint: POST /kasir/login

  • Request:

{

“email”: “bnbwt@example.com”,

“password”: “test123”

}

  • Response:

{

“status”: “success”,

“message”: “berhasil melakukan log in.”,

“id”: 123,

“token”: “auth_token”

}


  1. Menambah kategori baru

  • Endpoint: POST /kategori

  • Request:

{

“nama”: “Pewangi Pakaian”

}

  • Response:

{

“status”: “success”,

“message”: “berhasil menambahkan kategori.”,

“id”: 20

}


  1. Menambah barang baru

  • Endpoint: POST /barang

  • Request:

{

“nama”: “Molto”,

“harga”: 35000,

“stok”: 10,

“detail”: “molto warna biru”,

  “id_kategori”: 20

}

  • Response:

{

“status”: “success”,

“message”: “berhasil menambahkan barang.”,

“id”: 13

}


  1. Menambah transaksi

  • Endpoint: POST /transaksi

  • Request:

{

“id_kasir”: 123,

“tanggal”: "2024-04-21T18:25:43-05:00",

“items”:

[

{

“id”: 13,

“jumlah”: 3

},

{

“id”: 17,

“Jumlah”: 2

}

],

“total_harga”: 135000,

“total_pembayaran”: 150000, 

“tipe_pembayaran”: “tunai”

}

  • Response:

{

“status”: “success”,

“message”: “berhasil melakukan transaksi.”

“id”: 134

}


  1. Melihat riwayat transaksi

  • Endpoint: GET /transactions?month=2024-05

  • Response: 

{

  "status": "success",

  "data": [

    {

      "id": 234,

“id_kasir”: 123,

      "tanggal": "2024-05-01T12:34:56",

“items”:

 [

{

“id”: 13,

“jumlah”: 3

},

{

“id”: 17,

“Jumlah”: 2

}

],

      "total_harga": 50000,

      "jumlah_pembayaran": 60000,

      "tipe_pembayaran": "tunai"

    },

    {

      "id": 235,

“id_kasir”: 123,

      "tanggal": "2024-05-15T08:30:45",

   “items”:

 [

{

“id”: 13,

“jumlah”: 5

},

{

“id”: 17,

“Jumlah”: 4

}

],

      "total_harga": 75000,

      "jumlah_pembayaran": 75000,

      "tipe_pembayaran": "e-wallet"

    }

  ],

  "message": "Daftar transaksi pada bulan Mei 2024 berhasil diambil."

}


Workflow of The System

Berikut adalah langkah-langkah dari proses transaksi:

  1. Kasir registrasi ke aplikasi kasir, kemudian jika akun kasir sudah dibuat maka kasir harus login.

  2. Kasir memilih menu tambah transaksi pada dashboard, kemudian melakukan input barang yang dibeli, baik dengan scan maupun input manual.

  3. Kasir mencatat total pembayaran dan tipe pembayaran konsumen, kemudian menyelesaikan transaksi, data transaksi terkirim ke database server.


Berikut adalah langkah-langkah dari proses menambah barang:

  1. Kasir registrasi ke aplikasi kasir, kemudian jika akun kasir sudah dibuat maka kasir harus login.

  2. Kasir memilih menu tambah barang, kemudian mengisikan nama, harga, stok, detail, dan kategori barang.

  3. Kasir menyelesaikan proses menambah barang, data barang terkirim ke database server.


Untuk menambah kategori workflownya kurang lebih sama dengan menambah barang, hanya saja menu yang dipilih adalah tambah kategori, dan data yang dimasukkan berupa nama kategori.


Berikut adalah langkah-langkah untuk melihat histori transaksi:

  1. Kasir registrasi ke aplikasi kasir, kemudian jika akun kasir sudah dibuat maka kasir harus login.

  2. Kasir memilih menu histori transaksi pada dashboard, langkah ini akan mengirim request ke database server dan diresponse dengan data transaksi.

  3. Kasir dapat melakukan filter seperti menampilkan transaksi pada bulan tertentu.

Komentar

Postingan populer dari blog ini

ETS - PPL

TUGAS 5 PPL - Low Level Design