Skip to content

MausDennis/Self-service-app-with-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Background Project

Andi adalah seorang pemilik supermarket besar di salah satu kota di Indonesia, Andi memiliki rencana untuk melakukan perbaikan proses bisnis, yaitu Andi akan membuat sistem kasir yang self-service di supermarket miliknya. Sehingga customer bisa langsung memasukkan item yang dibeli, jumlah item yang dibeli, dan harga item yang dibeli dan fitur yang lain. Sehingga customer yang tidak berada di kota tersebut bisa membeli barang dari supermarket tersebut Setelah Andi melakukan riset, ternyata Andi memiliki masalah, yaitu Andi membutuhkan Programmer untuk membuatkan fitur - fitur agar bisa sistem kasir self-service di supermarket itu bisa berjalan dengan lancar.

Feature Requirements

Akhirnya Andi meminta tolong kepada teman-teman selaku programmer Python untuk membuat program yang menyelesaikan problem tersebut.

Jika ada yang berbelanja, begini journey customer dalam membantu orang yang berbelanja tersebut.

  1. Customer membuat ID transaksi customer berikut: Dengan membuat objek dari class

    transct_123 = Transaction()

  2. Kemudian customer memasukkan nama item, jumlah item, dan harga barang Masukkan item yang ingin dibeli.

    add_item([ , , ])

  3. Jika terjadi kesalahan dalam memasukkan nama item atau jumlah item atau harga item tetapi tidak ingin menghapus itemnya, Customer bisa melakukan:

    a. Update nama item dengan method:

    update_item_name(, )

    b. Update jumlah item dengan method:

    update_item_qty(, )

    c. Update harga item dengan method:

    update_item_price(, )

  4. Jika batal membeli item belanja, customer bisa melakukan:

    a. menghapus salah satu item dari nama item dengan method: delet_item(<nama_item>)

    tabel_1

    b. Langsung menghapus semua transaksi atau reset transaksi dengan method:

    reset_transaction()

  5. Customer sudah selesai dengan berbelanja online nya, tetapi Customer masih ragu apakah harga barang dan nama barang yang diinput sudah benar. Bisa saja customer melakukan kesalahan dalam melakukan input, semisal sudah melakukan input harga barang tetapi lupa untuk input nama barangnya. Bisa menggunakan method: check_order(). Dengan ketentuan:

    a. Akan mengeluarkan pesan "Pemesanan Sudah Benar"

    b. Akan mengeluarkan pesan "Terdapat kesalahan input data"

    c. Keluarkan output berikut:

    tabel_2

  6. Setelah melakukan pengecekan, customer bisa menghiting total belanja yang sudah dibeli menggunakan method total_price() dengan ketentuan:

    1. Jika total belanja diatas 200.000 akan mendapat diskon 5%

    2. Jika total belanja diatas 300.000 akan mendapat diskon 8%

    3. Jika total belanja diatas 500.000 akan mendapat diskon 10%

    Andi juga memberikan pesan kepada teman-teman kalau diberi kebebasan untuk menambahkan fitur yang lain apabila masih terdapat fitur yang belum tercover dalam sistem tersebut

Flowchart

Flowchart berikut ini akan menjelaskan bagaimana Aplikasi ini bekerja

Diagram self service cashier drawio

Penjelasan Fungsi dan Attribute

Project ini menggunakan dua file, yaitu : Pacmann_project_python.py sebagai file utama yang akan dieksekusi, serta modul script.py yang berisi fungsi-fungsi untuk menjalankan program.

Pada modul script.py terdapat class Transaction() dengan fungsi-fungsi sebagai berikut:

  1. def init(self): Inisialisasi objek transaksi dengan atribut items, yaitu list dict.

def init

  1. def add_item(self, item, jumlah, harga): Fungsi untuk menambahkan item ke dalam list items. Parameter, item (list): List yang berisi nama item, jumlah item, dan harga per item. Output berupa pesan yang memberitahu bahwa item sudah berhasil ditambahkan ke dalam list items.

def add_item

  1. def update_item_name(self, item, item_baru): Fungsi untuk mengganti nama item pada list items. Parameter: item : Nama item yang akan diganti. new_item (string): Nama baru untuk item yang akan diganti. Output: Pesan yang memberitahu bahwa nama item sudah berhasil diubah.

def update_item_name

  1. def update_item_qty(self, item, jumlah_baru)): Fungsi untuk mengganti jumlah item pada list items. Parameter: item (string): Item yang ingin diubah jumlahnya. jumlah_baru (int): Jumlah baru untuk item yang ingin diubah. Output: Pesan yang memberitahu bahwa jumlah item sudah berhasil diubah.

def update_item_qty

  1. def update_item_price(self, item, harga_baru): Fungsi untuk mengganti harga per item pada list items. Parameter: item (string): Nama item yang ingin diubah harganya. harga_baru (int): Harga per item yang baru untuk item yang ingin diubah. Output: Pesan yang memberitahu bahwa harga per item sudah berhasil diubah.

def update_item_price

  1. def delete_item(self, item): Fungsi untuk menghapus item dari list items. Parameter: item (string): Nama item yang ingin dihapus dari list items. Output: keterangan tidak ada yang dibeli.

def delete_item

  1. def reset_transaction(self): Fungsi untuk menghapus semua item dari list items. Output: keterangan tidak ada yang dibeli.

def reset_transaction

  1. def check_order(self): Fungsi untuk mengecek apakah input data sudah benar atau tidak. Output: Jika semua input data sudah benar, fungsi akan mengeluarkan pesan "Pemesanan Anda Sudah Benar". Jika terdapat kesalahan pada input data, fungsi akan mengeluarkan pesan "Terdapat kesalahan input data". Jika input data sudah benar, fungsi akan mengeluarkan output berupa tabel berisi item, jumlah item harga satuan, dan total harga.

def check_order

  1. def total_price(self): Fungsi untuk menghitung total harga dari seluruh item pada list items. Output: Total harga dari seluruh item pada list items.

def total_price

Test Case

  1. Test_1

Customer ingin menambahkan dua item baru menggunakan method add_item() . Item yang ditambahkan adalah sebagai berikut:

  Nama Item: Ayam Goreng, Qty: 2, Harga: 20000
          
  Nama Item: Pasta gigi, Qty: 3, Harga: 15000

test_1

  1. Test_2

Ternyata Customer salah membeli salah satu item dari belanjaan yang sudah ditambahkan, maka Customer menggunakan method untuk menghapus item. Item yang ingin dihapuskan adalah Pasta Gigi.

test_2

  1. Test_3

Ternyata setelah dipikir - pikir Customer salah memasukkan item yang ingin dibelanjakan! Daripada menghapusnya satu - satu, maka Customer cukup menggunakan method reset_transaction() untuk menghapus semua item yang sudah ditambahkan.

test_3

  1. Test_4

Setelah Customer selesai berbelanja, sistem akan menghitung total belanja yang harus dibayarkan menggunakan method total_price() . Sebelum mengeluarkan output, total belanja akan menampilkan item - item yang dibell.

test_4

Conclusion

masih banyak yang perlu ditingkatkan dari program self - service ini seperti,

  1. Flow kerja yang dibutuhkan harus lebih kompleks dan tidak terbatas pada 4 test case saja.

  2. Penggunaan UI/UX yang harus hadir di program ini untuk memperindah dan memudahkan user untuk menggunakan aplikasi self - service ini

  3. Penggunaan database untuk menyimpan data cache dari didapatkan dari pengunjung yang sudah melakukan transaksi.

About

Making Self Service Cashier App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published