Tugas 5 : Low Level Design
Robby Ulung Pambudi
Deskripsi
Aplikasi Point of Sale (POS), merupakan sistem perangkat lunak yang mempercepat proses transaksi dengan konsumen, menghilangkan pencatatan manual, dan meningkatkan efisiensi bisnis dengan modul kasir, gudang, dan laporan.
High Level Design (HLD)
A. Requirements (Kebutuhan)
Untuk mempermudah pemahaman kebutuhan dari perancangan aplikasi sistem point of sale (POS), maka dibagi ke dalam dua jenis kebutuhan yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional merupakan kebutuhan yang berisi proses proses apa saja yang nantinya dilakukan oleh sistem saat digunakan. Sementara kebutuhan nonfungsional merupakan kebutuhan yang menitikberatkan kepada properti prilaku yang dimiliki oleh sistem dan pengguna. Aplikasi minimarket dibangun ke dalam 2 (dua) modul utama yaitu modul kasir dan penjualan dan modul inventori untuk gudang.
a. Kebutuhan Fungsional
- Transaksi Penjualan: Aplikasi harus memungkinkan kasir untuk memproses transaksi penjualan dengan cepat dan akurat, termasuk penghitungan harga dan jumlah barang.
- Manajemen Stok: Modul gudang harus memungkinkan pengelolaan stok barang, termasuk penambahan, pengurangan, dan pembaruan informasi stok.
- Pembuatan Laporan: Aplikasi harus dapat menghasilkan laporan penjualan yang rinci, termasuk informasi tentang barang yang terjual, jumlah penjualan, dan pendapatan.
- Manajemen Pengguna: Aplikasi harus memiliki fitur manajemen pengguna yang memungkinkan administrasi hak akses, pembuatan pengguna baru, dan pengaturan kredensial.
- Pembaruan Harga Barang: Kasir atau admin harus dapat memperbarui harga barang yang ada dalam sistem.
b. Kebutuhan Non-fungsional
- Kinerja: Aplikasi harus responsif dan mampu menangani volume transaksi yang besar tanpa penurunan kinerja yang signifikan.
- Keamanan: Sistem harus memiliki tingkat keamanan yang tinggi untuk melindungi data pelanggan dan informasi bisnis sensitif.
- Skalabilitas: Aplikasi harus dapat dengan mudah disesuaikan dengan kebutuhan bisnis yang berkembang, baik dari segi jumlah pengguna maupun volume transaksi.
- Kesesuaian Perangkat: Aplikasi harus dapat berjalan dengan baik di berbagai perangkat keras dan sistem operasi yang berbeda.
- Dokumentasi: Dokumentasi yang komprehensif harus disertakan untuk memudahkan instalasi, penggunaan, dan pemeliharaan aplikasi oleh pengguna dan administrator.
B. Arsitektur Sistem
a. Arsitektur Aplikasi Client/Server
b. Arsitektur Local Area Network
C. Flow Cara Kerja Sistem
Low Level Design (LLD)
A. Teknologi
Sistem Point of Sale (POS) adalah aplikasi yang digunakan untuk memproses transaksi penjualan secara langsung antara penjual dan pembeli. Berikut adalah spesifikasi teknologi umum yang digunakan untuk membangun aplikasi POS:
1. Sistem Operasi:
- Linux: Distribusi Linux seperti Ubuntu, Debian, CentOS, atau Fedora umumnya digunakan untuk menjalankan server aplikasi POS. Linux sering dipilih karena keandalannya, kinerja yang baik, dan biaya operasional yang rendah.
- Windows: Sistem operasi Windows, khususnya Windows 10 IoT Enterprise atau Windows Server, sering digunakan untuk menjalankan aplikasi POS di komputer kasir atau mesin POS yang berbasis Windows. Windows menawarkan dukungan perangkat keras yang luas dan integrasi yang baik dengan perangkat lunak bisnis lainnya.
2. Bahasa Pemrograman:Bahasa pemrograman yang umum digunakan untuk membangun aplikasi POS termasuk Python, Java, C#, dan JavaScript (dengan kerangka kerja seperti Node.js).
3. Database:MySQL, PostgreSQL, atau SQLite adalah pilihan umum untuk database penyimpanan data transaksi penjualan, inventaris, dan informasi pelanggan.
4. Kerangka Kerja (Framework):Pemilihan kerangka kerja tergantung pada bahasa pemrograman yang digunakan. Contoh kerangka kerja termasuk Django atau Flask untuk Python, Spring Framework untuk Java, .NET Framework untuk C#, dan Express.js untuk JavaScript.
5. Antarmuka Pengguna:Antarmuka pengguna yang ramah pengguna dan responsif sangat penting untuk aplikasi POS. Teknologi seperti HTML, CSS, dan JavaScript digunakan untuk membangun antarmuka pengguna, sementara kerangka kerja front-end seperti React, Angular, atau Vue.js dapat digunakan untuk mempercepat pengembangan antarmuka pengguna yang dinamis.
6. API (Application Programming Interface):
Membangun API yang dapat diakses dari berbagai platform dan perangkat memungkinkan integrasi dengan perangkat keras (seperti mesin kasir, pemindai barcode) dan perangkat lunak lainnya (seperti sistem manajemen persediaan, sistem manajemen pelanggan).
7. Keamanan:
Perlindungan data sensitif dan keamanan transaksi penting dalam aplikasi POS. Penggunaan HTTPS untuk komunikasi yang aman, otentikasi pengguna yang kuat, enkripsi data, serta praktik pengembangan aman lainnya harus diimplementasikan.
8. Pemrosesan Pembayaran:Integrasi dengan penyedia layanan pembayaran seperti Stripe, PayPal, atau Square diperlukan untuk memungkinkan transaksi pembayaran kartu kredit dan pembayaran digital.
B. Database
Berikut merupakan design model database yang digunakan dalam aplikasi sistem point of sale (POS)
b. SQL Code
Berikut SQL code yang digunakan untuk design model database di atas :
```CREATE TABLE Jenis ( Kode_jenis INT AUTO_INCREMENT PRIMARY KEY, Nama_jenis VARCHAR(255));
CREATE TABLE Merk ( Kode_merk INT AUTO_INCREMENT PRIMARY KEY, Nama_merk VARCHAR(255));
CREATE TABLE Satuan ( Kode_satuan INT AUTO_INCREMENT PRIMARY KEY, Nama_satuan VARCHAR(255));
CREATE TABLE Supplier ( Kode_supplier INT AUTO_INCREMENT PRIMARY KEY, Nama_supplier VARCHAR(255), Alamat_supplier VARCHAR(255), Kota_supplier VARCHAR(255), Telpon_supplier VARCHAR(20), Fax_supplier VARCHAR(20));
CREATE TABLE Barang ( Kode_barang INT AUTO_INCREMENT PRIMARY KEY, Kode_jenis INT, Kode_merk INT, Nama_barang VARCHAR(255), Kode_satuan INT, Harga_jual DECIMAL(10, 2), Harga_beli DECIMAL(10, 2), Banyak INT, Kode_supplier INT, FOREIGN KEY (Kode_jenis) REFERENCES Jenis(Kode_jenis), FOREIGN KEY (Kode_merk) REFERENCES Merk(Kode_merk), FOREIGN KEY (Kode_satuan) REFERENCES Satuan(Kode_satuan), FOREIGN KEY (Kode_supplier) REFERENCES Supplier(Kode_supplier));
CREATE TABLE Master ( Faktur_beli INT AUTO_INCREMENT PRIMARY KEY, Tanggal_beli DATE, Kode_supplier INT, Subtotal DECIMAL(10, 2), FOREIGN KEY (Kode_supplier) REFERENCES Supplier(Kode_supplier));
CREATE TABLE Beli_Detil ( Faktur_beli INT, Kode_barang INT, Banyak_beli INT, Harga_beli DECIMAL(10, 2), PRIMARY KEY (Faktur_beli, Kode_barang), FOREIGN KEY (Faktur_beli) REFERENCES Master(Faktur_beli), FOREIGN KEY (Kode_barang) REFERENCES Barang(Kode_barang));
CREATE TABLE Jual_Master ( Faktur_jual INT AUTO_INCREMENT PRIMARY KEY, Tanggal_jual DATE, Kode_konsumen INT, Subtotal DECIMAL(10, 2), Diskon DECIMAL(5, 2));
CREATE TABLE Jual_Detil ( Faktur_jual INT, Kode_barang INT, Banyak_jual INT, Harga_jual DECIMAL(10, 2), PRIMARY KEY (Faktur_jual, Kode_barang), FOREIGN KEY (Faktur_jual) REFERENCES Jual_Master(Faktur_jual), FOREIGN KEY (Kode_barang) REFERENCES Barang(Kode_barang));
```
c. Communicating with The Server Untuk berkomunikasi dengan server MySQL dari aplikasi ini, Anda dapat menggunakan digunakan sebuah driver MySQL yang sesuai. Berikut ini adalah contoh menggunakan Python dengan library MySQL Connector untuk berkomunikasi dengan server MySQL:
```import mysql.connector
# Membuat koneksi ke databasemydb = mysql.connector.connect( host="localhost", user="username", password="password", database="nama_database")
# Membuat objek cursor untuk mengeksekusi perintah SQLmycursor = mydb.cursor()
# Contoh mengeksekusi perintah SQL untuk mengambil data dari tabel Jenismycursor.execute("SELECT * FROM Jenis")
# Mengambil semua baris hasil eksekusi perintah SQLresult = mycursor.fetchall()
# Menampilkan hasilfor row in result: print(row)
# Menutup koneksimydb.close()
```
C. Design Interface
Referensi :
https://citec.amikom.ac.id/main/index.php/citec/article/download/15/15
Komentar
Posting Komentar