Dosen Pengampu:
Dani Gunawan, S.T., M.T.
Asisten Laboratorium:
Rogate Sola Fide
Penulis
BAB I
PENDAHULUAN
1.1.Latar Belakang
Di tengah pandemi covid – 19 yang sedang terjadi saat ini, banyak perusahaan
yang terpaksa untuk memutuskan hubungan kerja dengan karyawannya. Hal ini
menyebabkan kekacauan ekonomi. Oleh karena itu, pembukaan usaha toko kue
diharapkan dapat mengurangi kekacauan ekonomi yang sedang terjadi. Sistem
pembayaran di toko kue juga perlu dibenahi sehingga data penjualan dan laba usaha
dapat dikelola dengan baik.
Pembuatan sistem pembayaran toko kue dapat memperoleh keuntungan dari
sistem yang dikembangkan. Keuntungan yang dapat diperoleh dari keuntungan yang
didapatkan dari penjualan sistem dan juga penjualan kue.
1.2.Tujuan
Pembuatan sistem pembayaran toko kue ini dilakukan sebagai langkah awal untuk
menjadi seorang pengembang perangkat lunak atau software developer. Melalui program
ini diharapkan agar tiap anggota memperoleh pengalaman dalam pembuatan aplikasi,
sehingga pada masa mendatang dapat mengembangkan aplikasi yang lebih bermanfaat.
BAB II
PEMBAHASAN
2.1. Diagram UML ( Unified Modeling Language )
2.2.Pra Pengolahan dan Deklarasi Namespace
//Prapengolahan
#include <iostream>
#include <fstream>
#include <ctime>
#include <string>
#include <cstdlib>
#include <conio.h>
#include <windows.h>
Penggalan kode diatas adalah header yang digunakan pada program ini. Header
fstream berfungsi untuk mengoperasikan file data penjualan dalam program ini. Header
ctime berfungsi untuk menentukan waktu transaksi yang terjadi untuk menjamin
kebenaran struk pembelian jika suatu saat terjadi permasalahan antara pembeli dan
pemilik toko. Begitu juga dengan header cstdlib, conio.h, windows.h dibutuhkan dalam
program ini.
Program ini memerlukan deklarasi namespace untuk mempersingkat penulisan
kode, karena program ini banyak memakai banyak fungsi dari library std.
2.3.Struktur Folder
Sistem Pembayaran Green Arrow
Penjualan_Green_Arrow.txt
Green_Arrow.exe
Struktur folder diatas adalah struktur dari program excecutable dan file
pendukung program ini. File Penjualan_Green_Arrow.txt berisi catatan penjualan yang
terdiri dari nama penjaga toko, kode kue, nama kue, total harga dan waktu penjualan.
File Green_Arrow.exe adalah excecutable file untuk memulai proses transaksi.
2.4.Fungsi Main
int main(){
system("color 8B");
Welcome pelanggan;
Login user;
Menu laku;
Uang ag;
ag.getPajak( " PPn : ");
ag.getPajak();
ag.getBalik();
ag.data();
Time belanja;
return 0;
Potongan kode program diatas adalah fungsi utama untuk pembuatan objek dan
pemanggilan fungsi dari class – class yang sudah ada. Kode system(“color 8B”)
berfungsi untuk memberikan warna pada latar belakang dan juga huruf pada sistem
pembayaran.
Kelas Welcome berisi output untuk ucapan selamat datang pada saat program
pertama kali dijalankan, dan juga berisi perintah untuk melakukan login sebelum
proses transaksi dijalankan.
public:
string user, pass;
char c;
int i;
public:
Login(){
int login=0;
while(c != '\r')
c = getch();
if(c == '0')
{
switch(getch())
default:
break;
};
if(pass.size() != 0)
pass.erase(pass.size() - 1, 1);
continue;
}
else if(c <= '9' && c >= '0' || c >= 'a' && c <= 'z' || c >= 'A' &&
c <= 'Z')
pass += c;
cout << "*";
else
continue;
i=4;
login=1;
}else {
cout << endl;
};
Kelas login ini bertujuan untuk menjaga keamanan kasir. Di program ini tidak
di atur proses registrasi agar keamanan login semakin terjaga. Apabila user melakukan
kesalahan mengisi data username atau password maka program akan langsung berakhir.
Password dan Username pada saat login sudah ditetapkan sebelum program dijalankan.
2.7.Kelas Menu
class Menu{
public:
fstream is;
string line;
public:
Menu(){
is.open("menu.txt");
if(is.is_open()){
cout << endl;
}
cout << endl;
is<<" " << endl;
is<<" DAFTAR MENU TOKO KUE GREEN
ARROW " << endl;
is<<" ______ _____________________
____________ " << endl;
is<<" | Kode | Daftar Kue | Harga |" << endl;
is<<" | 1 | Rainbow cake | 25000 |" << endl;
is<<" | 2 | Tiramisu | 30000 |" << endl;
is<<" | 3 | Red Velvet | 45000 |" << endl;
is<<" | 4 | Cheese Cake | 30000 |" << endl;
is<<" | 5 | Cinnamon Roll | 18000 |" << endl;
is<<" | 6 | Lava Cake | 12000 |" << endl;
is<<" | 7 | Pudding | 15000 |" << endl;
is<<" | 8 | Nastar | 75000 |" << endl;
is<<" | 9 | Chocolate cookie | 60000 |" << endl;
is<<"
|______|_____________________|___________|" << endl;
cout<<endl;
cout << endl;
is.close();
is.open("menu.txt");
if(is.fail())
cout << " Gagal Membuka daftar Menu" << endl;
while(getline(is,line)){
cout << line << endl;
}
is.close();
}
~Menu(){
cout << " Selamat menikmati ^_^\n";
cout << " Callcenter(2278)\n\n";
system("pause");
}
};
Kelas Menu diatas berisi konstruktur Menu untuk menampilkan daftar menu
beserta harga dengan menggunakan operating file. Di akhir kelas Menu terdapat
destruktur menu untuk mengakhiri program.
public:
fstream green;
char nama[30];
double diskon;
Pembayaran(){
if(kode_kue == '1'){
harga_kue = 25000;
harga_kue = 30000;
nama_kue = "Tiramisu";
harga_kue = 45000;
harga_kue = 30000;
else if(kode_kue=='6'){
harga_kue = 12000;
harga_kue = 15000;
nama_kue = "Pudding";
harga_kue = 75000;
nama_kue = "Nastar";
else if(kode_kue=='9'){
harga_kue = 60000;
else{
try{
catch(...){
cout << " Pembelian kue sebanyak 0 tidak
diperbolehkan" << endl;
while(1){
Pembayaran();
cout << " Total Harga : Rp." << total << ",-"
<< endl;
total_harga += total;
if(pilih == 'Y'){
if(kode_kue1 == '1'){
harga_kue = 25000;
harga_kue = 30000;
nama_kue1 = "Tiramisu";
harga_kue = 45000;
harga_kue = 30000;
harga_kue = 18000;
harga_kue = 12000;
}
else if(kode_kue1 == '7'){
harga_kue = 15000;
nama_kue1 = "Pudding";
harga_kue = 75000;
nama_kue1 = "Nastar";
harga_kue = 60000;
else{
try{
catch(...){
while(1){
Pembayaran();
}
cout << " Kode Kue : " <<kode_kue1<<
endl;
total_harga += total;
else
diskon = total_harga * 0;
if (y == 0){
throw("");
return x * y;
int data(){
green.open("Penjualan_Green_Arrow.txt", ios::app);
if(green.is_open()){
else{
green << "Nama penjaga toko : " << nama << endl;
green << "Kode Kue pertama : " << kode_kue << endl;
green << "Kode kue kedua : " << kode_kue1 << endl;
green.close();
~Pembayaran(){
};
Pembelian kue dengan jumlah 0 tidak akan bisa dilakukan atau struk tidak dapat
dicetak, dikarenakan penggunaan exception handling pada class ini.
Adanya pemberian diskon jika pembelian dalam jumlah tertentu. Jika membeli
lebih dari 4 kue maka akan mendapat diskon sebesar 7%. Jika pembelian kue lebih dari
9 maka akan mendapat diskon sebesar 30%.
Setelah pembelian selesai, program akan mencetak struk pembelian yang terdiri
dari nama pembeli, kode kue, jumlah kue, diskon, pajak ppn, uang kembalian, dan
waktu serta tanggal pembelian.
Kelas pembayaran merupakan superclass untuk kelas pajak dan kelas uang.
public:
int pajak;
int total_bayar;
int chg;
public:
void getPajak(string x){
void getPajak(){
}else{
};
Kelas pajak merupakan subclass dari kelas pembayaran. Kelas pajak adalah kelas
untuk menghitung pajak ppn dan juga untuk memberikan hadiah kepada pelanggan dengan
jumlah pembelian tertentu.
public:
int jumlah_uang;
int kembalian;
public:
void getBalik(){
kembalian = jumlah_uang-total_bayar;
};
Kelas uang merupakan subclass dari kelas pembayaran, kelas ini berfungsi
untuk menentukan jumlah uang kembalian.
public :
public:
Time(){
char* dt = ctime(&now);
};
Kelas ini merupakan kelas yang berfungsi untuk menentukan waktu dan
tanggal dari proses transaksi yang terjadi.
3.1. Kesimpulan
Sistem pembayaran toko kue ini dilengkapi dengan catatan penjualan setiap transaksi.
Waktu yang dibutuhkan untuk menyelesaikan tugas ini satu sampai dua minggu. Program ini
dikembangkan di lingkungan sistem operasi windows dan dapat dioperasikan di sistem operasi
lain. Di lingkungan Windows, program ini di eksekusi dengan konsol Command Prompt.
3.2. Saran
Kepada pihak yang ingin melakukan pengembangan terhadap sistem ini, diperlukan
perhatian terhadap penentuan jumlah barang yang tersedia dan juga menampilkannya.
Kami menyadari bahwa aplikasi ini masih jauh dari kata sempurna. Oleh karena itu,
kritik dan saran yang membangun sangat dibutuhkan.