Skip to content

suwarnoadi107/LMS---Project-Python-by-Adi

Repository files navigation

Python Project: Super Cashier Library Management System (SC-LMS)

A. Latar Belakang

Super Cashier Library Management System (SC-LMS) merupakan sistem automasi yang digunakan untuk mendukung operasional kasir dalam memuat daftar belanja pelanggan. Fitur yang terdapat dalam sistem ini meliputi pembuatan transaksi, penambahan, penyuntingan, dan penghapusan item belanja, serta perhitungan total belanja.

B. Alur Program (Flowchart)

Flow Chart Project Python 1 - Pacmann

Tahap 1. Pembuatan Transaksi

Pada tahap 1, akan dilakukan pembuatan transaksi dengan fungsi buat_transaksi() dan pemilihan nomor transaksi secara acak dengan fungsi pilih_nomor(). Kedua fungsi ini membutuhkan input dari variabel awal berupa 'Ya' atau 'Tidak'. Input 'Ya' berarti pelanggan telah memilih nomor transaksi sehingga bisa langsung memasukkannya, sedangkan input 'Tidak' untuk pelanggan yang baru ingin membuat transaksi.

Tahap 2. Penambahan Item Belanja

Dengan fungsi add_item(), pelanggan/kasir hanya perlu menginput nilai keputusan 'Ya' untuk menambah item atau 'Tidak' jika tidak ingin menambah item dan menginput variabel list transaksiku. Jika memilih 'Ya', maka pelanggan/kasir harus memasukkan nama produk, jumlah yang dibeli, dan harga satuannya secara satu per satu. Bila penginputan item belanja sudah selesai, pelanggan/kasir dapat menginput nilai 'Tidak' pada variabel lanjut_add_item.

Tahap 3. Koreksi, Hapus, dan Reset List Item Belanja

Pengoreksian Item Belanja

Jika ada item yang salah ketika proses penginputan, dapat digunakan fungsi koreksi_awal() untuk melakukan koreksi, baik pada nama item, jumlah, maupun harga satuannya.

Hapus dan Reset Item Belanja

Terdapat fungsi delete_item() untuk menghapus item belanja yang ingin dibatalkan ataupun salah input berdasarkan nama produknya. Fungsi ini juga akan menghapus informasi jumlah yang dibeli serta harga satuannya. Sementara itu, ada pula fungsi reset_item() untuk menghapus seluruh isi list transaksi yang memuat informasi seluruh daftar belanja milik seorang pelanggan.

Tahap 4. Cek Item Belanja

Fungsi check_list() digunakan untuk mengecek kesesuaian list jumlah nama produk, jumlah yang dibeli, dan harga satuannya. Fungsi check_item_sementara() untuk mengecek kesamaan jumlah baris antarkolom setelah list ditransformasikan menjadi sebuah data frame. Apabila telah sesuai, variabel transaksiku akan ditransformasikan menjadi data frame dengan fungsi check_item() dan disimpan dalam variabel my_transaksi.

Tahap 5. Pengecekan Ulang

Dengan fungsi lanjut_transaksi(), kita dapat mengecek item belanjaan terlebih dahulu dan melakukan koreksi apabila diperlukan. Pada tahap ini, kita juga masih bisa melakukan penghapusan item atau seluruh daftar item belanja.

Tahap 6. Pembayaran

Dengan fungsi pembayaran(), pelanggan/kasir akan menyelesaikan keseluruhan proses transaksi dan akan keluar output berupa struk belanja yang berisi informasi tanggal, nomor transaksi, list item, total belanja, dan total pembayaran (apabila mendapatkan diskon).

C. Penjelasan Modul dan Fungsi

datetime

Merupakan modul yang menyediakan kelas untuk manipulasi tanggal dan waktu. Pada program ini, modul datetime digunakan untuk menghasilkan output berupa tanggal dan waktu saat transaksi diselesaikan.

pandas

Merupakan modul yang biasa digunakan untuk analisis data. Dalam program ini, modul pandas digunakan untuk membuat data frame daftar belanja.

transaksi_modul

Modul ini dibuat secara khusus untuk project ini dan terdiri atas beberapa fungsi untuk membuat transaksi, menambah item belanja, dan menghitung total harga. Adapun detailnya antara lain:

image

image

image

image

image

Fungsi pembayaran()

image

update_item_list_modul

Modul ini dibuat secara khusus untuk project ini dan terdiri atas beberapa fungsi, seperti koreksi nama item, jumlah, dan atau harga, hapus item, dan reset transaksi.

image

image

image

image

cek_transaksi_modul

Modul ini dibuat untuk melihat kesesuaian antarkomponen dalam list atau data frame daftar item dalam transaksi.

image

image

fungsi check_item()

image

update_item_dataframe_modul

Modul ini dibuat secara khusus untuk project ini dan terdiri atas beberapa fungsi, seperti koreksi nama item, jumlah, dan atau harga, hapus item, dan reset transaksi. Modul ini digunakan untuk data yang sudah dalam bentuk data frame.

image

image

image

image

D. Test Case

Sebelum memulai test case, akan dibuat dahulu transaksinya.

image

Test Case 1

Pada case ini, akan ditambahkan beberapa item, antara lain:

  • 2 ayam goreng seharga Rp8.000,00
  • 2 bungkus nasi seharga Rp2.000,00
  • 1 mouse seharga Rp43.000,00
  • 2 es teh seharga Rp3.000,00 dan
  • 1 tempat makan seharga Rp72.000,00

image

Test Case 2

Menghapus item 'mouse' dari list transaksi.

image

Test Case 3

Menghapus seluruh item pada list transaksi.

image

Sebelum ke test case 4, akan dilakukan add_item() kembali. Namun, pada kali ini, akan diinput item sebagai berikut.

  • 1 tisu seharga Rp2.500,00
  • 1 sling bag seharga Rp79.900,00
  • 1 earphone seharga Rp26.000,00
  • 1 tumblr seharga Rp43.000,00
  • 1 totebag seharga Rp5.000,00
  • 3 bearbrand seharga Rp12.000,00
  • 2 roti sobek seharga Rp17.000,00
  • 4 keripik seharga Rp17.500,00 dan
  • 1 pak tusuk gigi seharga Rp9.000,00.

image

Kemudian, kita akan uji dengan mengoreksi totebag menjadi goodie bag dan harganya berubah menjadi Rp23.000,00. Setelah itu, proses dilanjutkan hingga check_item()

image

Test Case 4

Dilakukan perhitungan total biaya dan pembayaran setelah diskon.

image

E. Simpulan dan Future Work

Simpulan

Penyelesaian pembuatan Super Cashier Library Management System (SC-LMS) dapat berjalan dengan baik karena adanya alur program yang jelas dan terencana melalui flowchart. Flowchart merupakan modal awal yang sangat diperlukan untuk memudahkan kita selama proses programming ke depannya, sebab melalui alur yang jelas itu, kita memiliki gambaran fitur apa saja yang perlu dibuat, seperti fungsi, branching, looping, dan sebagainya.

Adapun dalam Super Cashier Library Management System (SC-LMS), kita banyak berkaitan dengan looping, brancing, function, dan try and except. Dalam beberapa program, branching dan looping diletakkan dalam function agar sistem kerja menjadi lebih efisien, efektif, dan lebih terarah alurnya. Selain itu, fungsi-fungsi yang dibuat ini disimpan dalam modular code sehingga isi file program utama lebih sederhana dan tidak banyak program/kode. Kita juga belajar membiasakan bagaimana menulis fungsi dan program yang baik dengan menambah docstring, comment, juga penulisan kode yang tidak berdekatan satu sama lain, tetapi juga tidak selalu berjauhan, agar orang lain juga mampu memahami kode/program yang kita buat.

Digunakan juga modul/library seperti pandas untuk pembuatan data frame dan manipulasi data di dalamnya, serta datetime untuk manipulasi tanggal dan waktu.

Future Work

Saat program ini dibuat, saya sebagai author belum mempelajari class sehingga baru mengetahuinya setelah program ini selesai dijalankan. Banyak pada program ini, kodingan yang dapat dibuat dalam class, tetapi belum bisa saya lakukan karena keterbatasan waktu. Bila memiliki waktu lebih, saya akan berusaha memperbarui program ini dengan merevisi beberapa kodingan dengan class agar lebih sederhana dan lebih mudah dipahami. Selain itu, saya juga ingin menambah fitur agar pelanggan dapat memilih untuk menambah item, koreksi item, hapus item, reset item, hingga pembayaran akhir melalui pesan yang diinputkan, tanpa perlu menulis ulang kode yang ada dalam script.

Selain itu, saya juga tertarik untuk menambah fitur penyimpanan riwayat transaksi sehingga semisal pelanggan telah membuat transaksi sebelumnya (ingat bagian awal saat buat transaksi), pelanggan dapat melanjutkan pengisian list rencana transaksinya.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published