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.
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.
-
Customer membuat ID transaksi customer berikut: Dengan membuat objek dari class
transct_123 = Transaction()
-
Kemudian customer memasukkan nama item, jumlah item, dan harga barang Masukkan item yang ingin dibeli.
add_item([ , , ])
-
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(, )
-
Jika batal membeli item belanja, customer bisa melakukan:
a. menghapus salah satu item dari nama item dengan method: delet_item(<nama_item>)
b. Langsung menghapus semua transaksi atau reset transaksi dengan method:
reset_transaction()
-
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:
-
Setelah melakukan pengecekan, customer bisa menghiting total belanja yang sudah dibeli menggunakan method total_price() dengan ketentuan:
-
Jika total belanja diatas 200.000 akan mendapat diskon 5%
-
Jika total belanja diatas 300.000 akan mendapat diskon 8%
-
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 berikut ini akan menjelaskan bagaimana Aplikasi ini bekerja
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:
- def init(self): Inisialisasi objek transaksi dengan atribut items, yaitu list dict.
- 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 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_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_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 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 reset_transaction(self): Fungsi untuk menghapus semua item dari list items. Output: keterangan tidak ada yang dibeli.
- 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 total_price(self): Fungsi untuk menghitung total harga dari seluruh item pada list items. Output: Total harga dari seluruh item pada list items.
- 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_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_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_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.
masih banyak yang perlu ditingkatkan dari program self - service ini seperti,
-
Flow kerja yang dibutuhkan harus lebih kompleks dan tidak terbatas pada 4 test case saja.
-
Penggunaan UI/UX yang harus hadir di program ini untuk memperindah dan memudahkan user untuk menggunakan aplikasi self - service ini
-
Penggunaan database untuk menyimpan data cache dari didapatkan dari pengunjung yang sudah melakukan transaksi.









