The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Sistem Bil See Hup Bakery di Cheng Perdana

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by chingkpang, 2020-11-29 06:14:33

Kerja Kursus ASK T3 PangKamChing

Sistem Bil See Hup Bakery di Cheng Perdana

FOLIO ASK PT3 2020 

____________________________________________________________________________
 

PERNYATAAN MASALAH :  
SISTEM PENGIRAAN PEMBAYARAN 

UNTUK JUALAN 
SEE HUP BAKERY DI CHENG PERDANA 

NAMA PELAJAR :​ PANG KAM CHING
KELAS :​ 3 NEKAD
NAMA GURU YANG MENANDA :​ PUAN HOO MEOW LIN
NAMA SEKOLAH :​ SMK TUN HAJI ABDUL MALEK
TARIKH HANTAR : ​29 NOVEMBER 2020

 
 
 
 

KANDUNGAN  M/S 

  3 

BIL  TAJUK 

1.  PENDAHULUAN 

2.  CARTA GANTT 

3.  FASA PEMBANGUNAN ATUR CARA : 

  a. Analisis Masalah  4 

  b. Reka Bentuk Atur Cara  4-23 

  c. Pengekodan  24-25 

  d. Pengujian dan Penyahpepijatan  26-38 

  e. Dokumentasi  39-55 

4.  PELAPORAN PENGGUNAAN TEKNIK PEMIKIRAN  4-55 
KOMPUTASIONAL BAGI SETIAP FASA PEMBANGUNAN 
ATUR CARA 

5.  PENGHASILAN PRODUK  56 

6.  CADANGAN PENAMBAHBAIKAN  57 

7.  PENUTUP  58 

8.  LAMPIRAN  59-63 

PENDAHULUAN 

  

S​ aya Pang Kam Ching yang bersekolah di Tingkatan 3, Sekolah SMK TUN 
HAJI ABDUL MALEK telah menjalankan projek ASK ini. Saya menjalankan tajuk 
tentang Sistem Bayaran Jualan See Hup Bakery Di Cheng Perdana. 
 

Tempoh membuat projek ASK ini ialah dari Mac hingga December. 
Tempoh ini lebih daripada empat bulan dan memadai untuk saya menyiapkan 
projek ini. 

 

 
CARTA GANTT 

 

TEKNIK  FASA 1 : Analisis Masalah 
LERAIAN   

1. Masalah Besar 
 
Sistem Bayaran Jualan SEE HUP BAKERY Di Cheng Perdana 

2. Bahagian Kecil / Masalah Kecil 
 
(i) Pengiraan jumlah bayaran  
● Roti  
● Kek 
● Minuman 
 

(ii) Pengiraan baki bayaran 

 

 

FASA 2 : Reka Bentuk Atur Cara 
 

TEKNIK  Persamaan  Perbezaan 
PENGECAMAN 
CORAK  1. Harga roti , kek dan minuman  1. Harga 
menggunakan unit RM.  ● Roti 
  ● Kek 
● Minuman 
 

2. Kuantiti roti , kek dan 
minuman yang dibeli adalah 
berbeza. 
 

TEKNIK  Penentuan aspek-aspek penting terdiri daripada : 
PENISKALAAN 
 

1. Pengiraan jumlah harga roti = Bilangan roti * Harga roti 
 

2. Pengiraan jumlah harga kek = Bilangan kek * Harga kek 
 

3. Pengiraan jumlah harga minuman = Bilangan minuman * Harga 
minuman 
 

4. Pengiraan jumlah bayaran = Jumlah harga roti + Jumlah harga kek 
+ Jumlah harga minuman 
 

5. Pengiraan baki bayaran = Wang yang dibayar oleh pelanggan 
-Jumlah bayaran 

TEKNIK  Algoritma dalam bentuk pseudokod seperti di bawah: 
PENGITLAKAN 
  Algoritma dalam bentuk carta alir seperti di bawah: 

Algoritma dalam bentuk GUI seperti di bawah: 

 

PSEUDOKOD : 

 

MULA 
ISYTIHAR ​pemboleh ubah jumlah bayaran = RM0 
PAPARKAN​ menu 
PAPARKAN​ mesej ”Sila masukkan nombor roti , kek dan minuman yang anda dipilih” 

J​ IKA​ anda masukkan nombor = 1 
P​ APARKAN​ “Roti Kelapa” 
​ KIRAKAN​ harga roti kelapa * bilangan roti kelapa 
yang dimasukkan 

J​ IKA​ anda masukkan nombor = 2 
P​ APARKAN​ “Roti Kaya” 
K​ IRAKAN​ harga roti kaya * bilangan roti kaya yang 
dimasukkan 

​ JIKA​ anda masukkan nombor = 3 
P​ APARKAN ​“Roti Kacang Merah” 
K​ IRAKAN​ harga roti kacang merah* bilangan roti 
kacang merah yang dimasukkan 

​ JIKA​ anda masukkan nombor = 4 
P​ APARKAN​ “Butter Chocolate Bread” 
K​ IRAKAN​ harga butter chocolate bread * bilangan 
butter chocolate bread yang dimasukkan 

​ JIKA ​anda masukkan nombor = 5 
P​ APARKAN​ “Cheese Bread” 
K​ IRAKAN​ harga cheese bread * bilangan cheese bread 
yang dimasukkan 

​ JIKA​ anda masukkan nombor = 6 
P​ APARKAN​ “Fruit Cake” 
K​ IRAKAN​ harga fruit cake * bilangan fruit cake yang 
dimasukkan 

​ JIKA​ anda masukkan nombor = 7 
P​ APARKAN​ “Mocha Cake” 
K​ IRAKAN​ harga mocha cake* bilangan mocha cake 
yang dimasukkan 

​ JIKA​ anda masukkan nombor = 8 
P​ APARKAN​ “Blueberry Cake” 
K​ IRAKAN​ harga blueberry cake * bilangan blueberry 
cake yang dimasukkan 

​ JIKA​ anda masukkan nombor = 9 
P​ APARKAN​ “Chiffon Cake” 

K​ IRAKAN​ harga chiffon cake * bilangan chiffon cake 
yang dimasukkan 
​ JIKA​ anda masukkan nombor = 10 
P​ APARKAN​ “Butter Marble Cake” 
K​ IRAKAN​ harga butter marble cake * bilangan butter 
marble cake yang dimasukkan 
​ JIKA​ anda masukkan nombor = 11 
P​ APARKAN ​“Hundred plus” 
K​ IRAKAN​ harga Hundred plus * bilangan hundred 
plus yang dimasukkan 
​ JIKA ​anda masukkan nombor = 12 
P​ APARKAN​ “Cocacola” 
K​ IRAKAN​ harga cocacola * bilangan cocacola yang 
dimasukkan 
​ JIKA​ anda masukkan nombor = 13 
P​ APARKAN​ “Air Mineral” 
K​ IRAKAN​ harga air mineral * bilangan air mineral 
yang dimasukkan 
​ JIKA ​anda masukkan nombor = 14 
P​ APARKAN ​“Ice Lemon Tea” 
K​ IRAKAN​ harga ice lemon tea * bilangan ice lemon tea 
yang dimasukkan 
​ JIKA ​anda masukkan nombor = 15 
P​ APARKAN​ “Soya Bean” 
K​ IRAKAN​ harga soya bean * bilangan soya bean yang 
dimasukkan 
​ JIKA​ anda masukkan nombor = 16 
​ TAMBAHKAN​ jumlah bayaran 
P​ APARKAN​ jumlah bayaran 
J​ IKA​ wang tunai dibagikan dengan cukup 
Wang tunai dimasukkan=jumlah bayaran 
C​ ARI​ bakinya 
J​ IKA​ wang tunai dibagikan dengan tidak cukup 
P​ APARKAN​ “wang tunai yang tidak cukup” 
P​ APARKAN​ “Sila bagi wang tunai yang cukup” 
T​ AMAT JIKA 

TAMAT 

 
 
 
 
 

CARTA ALIR : 
 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 
 
 
 
 
 
 
 
 

REKA BENTUK GUI : ​[Copy teks ke python untuk memeriksa jawapannya.] 
 

from tkinter import*
import random
import time;
import datetime
from tkinter import Tk, StringVar, ttk

root=Tk()
root.geometry("1350x750+0+0")
root.title("SEE HUP BAKERY DI CHENG PERDANA")

Tops = Frame (root, width = 1350 , height=100, bd= 12, relief="raise")
Tops.pack(side=TOP)
lblTitle = Label(Tops, font=('arial', 50, 'bold'), text="SEE HUP DI CHENG
PERDANA")
lblTitle.grid(row =0, column=0)

BottomMainFrame = Frame (root, width = 1350 , height=100, bd= 12,
relief="raise")
BottomMainFrame.pack(side=BOTTOM)

f1 = Frame (BottomMainFrame, width = 450 , height=650, bd= 12,
relief="raise")
f1.pack(side=LEFT)
f2 = Frame (BottomMainFrame, width = 450 , height=650, bd= 12,
relief="raise")
f2.pack(side=LEFT)
f2TOP = Frame (f2, width =450 , height=350, bd= 4, relief="raise")
f2TOP.pack(side=TOP)
f2BOTTOM = Frame (f2, width =450 , height=300, bd= 4, relief="raise")
f2BOTTOM.pack(side=BOTTOM)

f3 = Frame (BottomMainFrame, width = 450 , height=650, bd= 12,
relief="raise")
f3.pack(side=RIGHT)

var1=IntVar()
var2=IntVar()
var3=IntVar()
var4=IntVar()
var5=IntVar()
var6=IntVar()
var7=IntVar()

var8=IntVar()
var9=IntVar()
var10=IntVar()
var11=IntVar()
var12=IntVar()
var13=IntVar()
var14=IntVar()
var15=IntVar()
var16=StringVar()

var1.set(0)
var2.set(0)
var3.set(0)
var4.set(0)
var5.set(0)
var6.set(0)
var7.set(0)
var8.set(0)
var9.set(0)
var10.set(0)
var11.set(0)
var12.set(0)
var13.set(0)
var14.set(0)
var15.set(0)
var16.set("")

varRoti_Kelapa =StringVar()
varRoti_Kaya =StringVar()
varRoti_Kacang_Merah =StringVar()
varButter_Chocolate_Bread =StringVar()
varCheese_Bread =StringVar()

varFruit_Cake =StringVar()
varMocha_Cake =StringVar()
varBlueberry_Cake =StringVar()
varChiffon_Cake =StringVar()
varButter_Marble_Cake =StringVar()

varHundred_Plus =StringVar()
varCocacola =StringVar()
varAir_Mineral =StringVar()
varIce_Lemon_Tea =StringVar()
varSoya_Bean =StringVar()

varChange= StringVar()
varTotal= StringVar()
varPayment= IntVar()

varRoti_Kelapa.set("0")
varRoti_Kaya.set("0")
varRoti_Kacang_Merah.set("0")
varButter_Chocolate_Bread.set("0")
varCheese_Bread.set("0")

varFruit_Cake.set("0")
varMocha_Cake.set("0")
varBlueberry_Cake.set("0")
varChiffon_Cake.set("0")
varButter_Marble_Cake.set("0")

varHundred_Plus.set("0")
varCocacola.set("0")
varAir_Mineral.set("0")
varIce_Lemon_Tea.set("0")
varSoya_Bean.set("0")

varChange.set("0")
varTotal.set("0")

def Reset():
var1.set(0)
var2.set(0)
var3.set(0)
var4.set(0)
var5.set(0)
var6.set(0)
var7.set(0)
var8.set(0)
var9.set(0)
var10.set(0)
var11.set(0)
var12.set(0)
var13.set(0)
var14.set(0)
var15.set(0)
var16.set(0)

varRoti_Kelapa.set("0")

varRoti_Kaya.set("0")
varRoti_Kacang_Merah.set("0")
varButter_Chocolate_Bread.set("0")
varCheese_Bread.set("0")
varTotal.set("0")

varFruit_Cake.set("0")
varMocha_Cake.set("0")
varBlueberry_Cake.set("0")
varChiffon_Cake.set("0")
varButter_Marble_Cake.set("0")

varHundred_Plus.set("0")
varCocacola.set("0")
varAir_Mineral.set("0")
varIce_Lemon_Tea.set("0")
varSoya_Bean.set("0")

varChange.set("0")
varTotal.set("0")
varPayment.set(" ")

txtRoti_Kelapa.configure(state =DISABLED)
txtRoti_Kaya.configure(state =DISABLED)
txtRoti_Kacang_Merah.configure(state =DISABLED)
txtButter_Chocolate_Bread.configure(state =DISABLED)
txtCheese_Bread.configure(state =DISABLED)
txtFruit_Cake.configure(state =DISABLED)
txtMocha_Cake.configure(state =DISABLED)
txtBlueberry_Cake.configure(state =DISABLED)
txtChiffon_Cake.configure(state =DISABLED)
txtButter_Marble_Cake.configure(state =DISABLED)
txtHundred_Plus.configure(state =DISABLED)
txtCocacola.configure(state =DISABLED)
txtAir_Mineral.configure(state =DISABLED)
txtIce_Lemon_Tea.configure(state =DISABLED)
txtSoya_Bean.configure(state =DISABLED)
#txtPayment.configure(state =DISABLED)
txtChange.configure(state =DISABLED)
txtTotal.configure(state =DISABLED)
var8.get() == 0

def chkRoti_Kelapa():
if (var1.get() == 1):
txtRoti_Kelapa.configure(state = NORMAL)

varRoti_Kelapa.set("")
elif(var1.get() == 0):

txtRoti_Kelapa.configure(state = DISABLED)
varRoti_Kelapa.set("0")

def chkRoti_Kaya():
if (var2.get() == 1):
txtRoti_Kaya.configure(state = NORMAL)
varRoti_Kaya.set("")
elif(var2.get() == 0):
txtRoti_Kaya.configure(state = DISABLED)
varRoti_Kaya.set("0")

def chkRoti_Kacang_Merah():
if (var3.get() == 1):
txtRoti_Kacang_Merah.configure(state = NORMAL)
varRoti_Kacang_Merah.set("")
elif(var3.get() == 0):
txtRoti_Kacang_Merah.configure(state = DISABLED)
varRoti_Kacang_Merah.set("0")

def chkButter_Chocolate_Bread():
if (var4.get() == 1):
txtButter_Chocolate_Bread.configure(state = NORMAL)
varButter_Chocolate_Bread.set("")
elif(var4.get() == 0):
txtButter_Chocolate_Bread.configure(state = DISABLED)
varButter_Chocolate_Bread.set("0")

def chkCheese_Bread():
if (var5.get() == 1):
txtCheese_Bread.configure(state = NORMAL)
varCheese_Bread.set("")
elif(var5.get() == 0):
txtCheese_Bread.configure(state = DISABLED)
varCheese_Bread.set("0")

def chkFruit_Cake():
if (var6.get() == 1):
txtFruit_Cake.configure(state = NORMAL)
varFruit_Cake.set("")
elif(var6.get() == 0):
txtFruit_Cake.configure(state = DISABLED)
varFruit_Cake.set("0")

def chkMocha_Cake():
if (var7.get() == 1):
txtMocha_Cake.configure(state = NORMAL)
varMocha_Cake.set("")
elif(var7.get() == 0):
txtMocha_Cake.configure(state = DISABLED)
varMocha_Cake.set("0")

def chkBlueberry_Cake():
if (var8.get() == 1):
txtBlueberry_Cake.configure(state = NORMAL)
varBlueberry_Cake.set("")
elif(var7.get() == 0):
txtBlueberry_Cake.configure(state = DISABLED)
varBlueberry_Cake.set("0")

def chkChiffon_Cake():
if (var9.get() == 1):
txtChiffon_Cake.configure(state = NORMAL)
varChiffon_Cake.set("")
elif(var9.get() == 0):
txtChiffon_Cake.configure(state = DISABLED)
varChiffon_Cake.set("0")

def chkButter_Marble_Cake():
if (var10.get() == 1):
txtButter_Marble_Cake.configure(state = NORMAL)
varButter_Marble_Cake.set("")
elif(var10.get() == 0):
txtButter_Marble_Cake.configure(state = DISABLED)
varButter_Marble_Cake.set("0")

def chkHundred_Plus():
if (var11.get() == 1):
txtHundred_Plus.configure(state = NORMAL)
varHundred_Plus.set("")
elif(var11.get() == 0):
txtHundred_Plus.configure(state = DISABLED)
varHundred_Plus.set("0")

def chkCocacola():
if (var12.get() == 1):
txtCocacola.configure(state = NORMAL)
varCocacola.set("")
elif(var12.get() == 0):

txtCocacola.configure(state = DISABLED)
varCocacola.set("0")

def chkAir_Mineral():
if (var13.get() == 1):
txtAir_Mineral.configure(state = NORMAL)
varAir_Mineral.set("")
elif(var13.get() == 0):
txtAir_Mineral.configure(state = DISABLED)
varAir_Mineral.set("0")

def chkIce_Lemon_Tea():
if (var14.get() == 1):
txtIce_Lemon_Tea.configure(state = NORMAL)
varIce_Lemon_Tea.set("")
elif(var14.get() == 0):
txtIce_Lemon_Tea.configure(state = DISABLED)
varIce_Lemon_Tea.set("0")

def chkSoya_Bean():
if (var15.get() == 1):
txtSoya_Bean.configure(state = NORMAL)
varSoya_Bean.set("")
elif(var15.get() == 0):
txtSoya_Bean.configure(state = DISABLED)
varSoya_Bean.set("0")

def costofall():
roti1 = float(varRoti_Kelapa.get())
roti2 = float(varRoti_Kaya.get())
roti3 = float(varRoti_Kacang_Merah.get())
roti4 = float(varButter_Chocolate_Bread.get())
roti5 = float(varCheese_Bread.get())
roti6 = float(varFruit_Cake.get())
roti7 = float(varMocha_Cake.get())
roti8 = float(varBlueberry_Cake.get())
roti9 = float(varChiffon_Cake.get())
roti10 = float(varButter_Marble_Cake.get())
roti11 = float(varHundred_Plus.get())
roti12 = float(varCocacola.get())
roti13 = float(varAir_Mineral.get())
roti14 = float(varIce_Lemon_Tea.get())
roti15 = float(varSoya_Bean.get())

iTotal1=((roti1 * 1.00) + (roti2 * 1.00) + (roti3 * 1.00) + (roti4 *
2.00))

iTotal2=((roti5 * 2.50) + (roti6 * 35.00) + (roti7 * 40.00) + (roti8 *
38.00))

iTotal3=((roti9 * 7.50) + (roti10 * 7.50) + (roti11 * 2.00 ) + (roti12
* 2.00))

iTotal4=((roti13 * 1.00) + (roti14 * 2.00) + (roti15 * 1.50))

if (var16.get() == "Cash"):
iChange = float(varPayment.get())
iCost = (iTotal1 + iTotal2 + iTotal3 +iTotal4 )

iTotalq="RM", str('%.2f'%((iCost)))
varTotal.set(iTotalq)
cChange = (iChange - iCost)
cChangeq = "RM", str('%.2f'%(cChange))
varChange.set(cChangeq)

#=======================================================================Fr
ame
1=========================================================================
===#
lblRoti = Label(f1, font=('arial', 18, 'bold'), text="Roti")
lblRoti.grid(row =0, column=0)

Roti_Kelapa =Checkbutton(f1, text="Roti Kelapa\t RM1.00",

variable=var1, onvalue =1, offvalue=0,

font=('arial', 15, 'bold'),

command=chkRoti_Kelapa).grid(row=1, column=0, sticky=W)

txtRoti_Kelapa = Entry(f1,font=('arial',18,'bold'),textvariable

=varRoti_Kelapa, width = 5, justify='left', state =DISABLED)

txtRoti_Kelapa.grid(row =1 , column =1)

Roti_Kaya =Checkbutton(f1, text="Roti Kaya\t RM1.00",

variable=var2, onvalue =1, offvalue=0,

font=('arial', 15,

'bold'),command=chkRoti_Kaya).grid(row=2, column=0, sticky=W)

txtRoti_Kaya = Entry(f1,font=('arial',18,'bold'),textvariable

=varRoti_Kaya, width = 5, justify='left', state =DISABLED)

txtRoti_Kaya.grid(row =2 , column =1)

Roti_Kacang_Merah =Checkbutton(f1, text="Roti Kacang Merah
RM1.00", variable=var3, onvalue =1, offvalue=0,

font=('arial', 14,
'bold'),command=chkRoti_Kacang_Merah).grid(row=3, column=0, sticky=W)
txtRoti_Kacang_Merah = Entry(f1,font=('arial',18,'bold'),textvariable
=varRoti_Kacang_Merah, width = 5, justify='left', state =DISABLED)
txtRoti_Kacang_Merah.grid(row =3 , column =1)

Butter_Chocolate_Bread =Checkbutton(f1, text="Butter Chocolate Bread
RM2.00", variable=var4, onvalue =1, offvalue=0,

font=('arial', 14,
'bold'),command=chkButter_Chocolate_Bread).grid(row=4, column=0, sticky=W)
txtButter_Chocolate_Bread = Entry(f1,font=('arial',18,'bold'),textvariable
=varButter_Chocolate_Bread, width = 5, justify='left', state =DISABLED)
txtButter_Chocolate_Bread.grid(row =4 , column =1)

Cheese_Bread =Checkbutton(f1, text="Cheese Bread\t RM2.50",

variable=var5, onvalue =1, offvalue=0,

font=('arial', 15,

'bold'),command=chkCheese_Bread).grid(row=5, column=0, sticky=W)

txtCheese_Bread = Entry(f1,font=('arial',18,'bold'),textvariable

=varCheese_Bread, width = 5, justify='left', state =DISABLED)

txtCheese_Bread.grid(row =5 , column =1)

#=======================================================================Fr
ame
2=========================================================================
===#
lblKek = Label(f2TOP, font=('arial', 18, 'bold'), text="Kek")
lblKek.grid(row =0, column=0)

Fruit_Cake =Checkbutton(f2TOP, text="Fruit Cake\tRM35.00", variable=var6,
onvalue =1, offvalue=0,

font=('arial', 15, 'bold'),command=chkFruit_Cake
).grid(row=1, column=0, sticky=W)
txtFruit_Cake = Entry(f2TOP,font=('arial',18,'bold'),textvariable
=varFruit_Cake, width = 6, justify='right', state =DISABLED)
txtFruit_Cake.grid(row =1 , column =1)

Mocha_Cake =Checkbutton(f2TOP, text="Mocha Cake\tRM40.00", variable=var7,
onvalue =1, offvalue=0,

font=('arial', 15, 'bold'),command=chkMocha_Cake
).grid(row=2, column=0, sticky=W)
txtMocha_Cake = Entry(f2TOP,font=('arial',18,'bold'),textvariable
=varMocha_Cake, width = 6, justify='right', state =DISABLED)
txtMocha_Cake.grid(row =2 , column =1)

Blueberry_Cake =Checkbutton(f2TOP, text="Blueberry Cake\tRM38.00",
variable=var8, onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkBlueberry_Cake ).grid(row=3, column=0, sticky=W)
txtBlueberry_Cake = Entry(f2TOP,font=('arial',18,'bold'),textvariable
=varBlueberry_Cake, width = 6, justify='right', state =DISABLED)
txtBlueberry_Cake.grid(row =3 , column =1)

Chiffon_Cake =Checkbutton(f2TOP, text="Chiffon Cake\t RM7.50",
variable=var9, onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkChiffon_Cake).grid(row=4, column=0, sticky=W)
txtChiffon_Cake = Entry(f2TOP,font=('arial',18,'bold'),textvariable
=varChiffon_Cake, width = 6, justify='right', state =DISABLED)
txtChiffon_Cake.grid(row =4 , column =1)

Butter_Marble_Cake =Checkbutton(f2TOP, text="Butter Marble Cake RM7.50",
variable=var10, onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkButter_Marble_Cake ).grid(row=5, column=0, sticky=W)
txtButter_Marble_Cake = Entry(f2TOP,font=('arial',18,'bold'),textvariable
=varButter_Marble_Cake, width = 6, justify='right', state =DISABLED)
txtButter_Marble_Cake.grid(row =5 , column =1)

#=======================================================================Fr
ame
3=========================================================================
===#
lblMinuman = Label(f3, font=('arial', 18, 'bold'), text="Minuman")
lblMinuman.grid(row =0, column=0)

Hundred_Plus =Checkbutton(f3, text="Hundred Plus\tRM2.00", variable=var11,
onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkHundred_Plus).grid(row=1, column=0, sticky=W)
txtHundred_Plus = Entry(f3,font=('arial',18,'bold'),textvariable
=varHundred_Plus, width = 5, justify='right', state =DISABLED)
txtHundred_Plus.grid(row =1 , column =1)

Cocacola =Checkbutton(f3, text="Cocacola\t\tRM2.00", variable=var12,
onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkCocacola).grid(row=2, column=0, sticky=W)
txtCocacola = Entry(f3,font=('arial',18,'bold'),textvariable =varCocacola,
width = 5, justify='right', state =DISABLED)

txtCocacola.grid(row =2 , column =1)

Air_Mineral =Checkbutton(f3, text="Air Mineral\tRM1.00", variable=var13,
onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkAir_Mineral).grid(row=3, column=0, sticky=W)
txtAir_Mineral = Entry(f3,font=('arial',18,'bold'),textvariable
=varAir_Mineral, width = 5, justify='right', state =DISABLED)
txtAir_Mineral.grid(row =3 , column =1)

Ice_Lemon_Tea =Checkbutton(f3, text="Ice Lemon Tea\tRM2.00",
variable=var14, onvalue =1, offvalue=0,

font=('arial', 15,
'bold'),command=chkIce_Lemon_Tea ).grid(row=4, column=0, sticky=W)
txtIce_Lemon_Tea = Entry(f3,font=('arial',18,'bold'),textvariable
=varIce_Lemon_Tea, width = 5, justify='right', state =DISABLED)
txtIce_Lemon_Tea.grid(row =4 , column =1)

Soya_Bean =Checkbutton(f3, text="Soya Bean\tRM1.50", variable=var15,
onvalue =1, offvalue=0,

font=('arial', 15, 'bold')
,command=chkSoya_Bean).grid(row=5, column=0, sticky=W)
txtSoya_Bean = Entry(f3,font=('arial',18,'bold'),textvariable
=varSoya_Bean, width = 5, justify='right', state =DISABLED)
txtSoya_Bean.grid(row =5 , column =1)

#=======================================================================Fr
ame 2
BOTTOM====================================================================
=#
lblPayment_Method = Label(f2BOTTOM , font=('arial',14,'bold'),
text="Payment Method", bd=10, width= 16, anchor='w')
lblPayment_Method.grid(row=0,column=0)

lblChange = Label(f2BOTTOM , font=('arial',14, 'bold'), text="Change",
bd=10, width =6, anchor='w')
lblChange.grid(row=1,column=1)
txtChange = Entry(f2BOTTOM,font=('arial',16, 'bold'), textvariable
=varChange, width =9, justify='right', state =DISABLED)
txtChange.grid(row=1,column=2)

cmbPayment = ttk.Combobox(f2BOTTOM , textvariable = var16,
state='readonly', font=('arial',10, 'bold'), width= 20)
cmbPayment['value']=('Cash')
cmbPayment.current(0)

cmbPayment.grid(row=1,column=0)
txtPayment = Entry(f2BOTTOM,font=('arial',18, 'bold'), textvariable
=varPayment, width =6, justify='right')#,state =DISABLED)
txtPayment.grid(row=2 , column=0)
lblTotal = Label(f2BOTTOM , font=('arial',14, 'bold'), text="Total",
bd=10, width=6,anchor='w')
lblTotal.grid(row=2,column=1)
txtTotal = Entry(f2BOTTOM,font=('arial',16, 'bold'), textvariable
=varTotal, width =9,justify='right', state =DISABLED)
txtTotal.grid(row =2 , column=2)
#===============================================================Frame 2
Button====================================================================
=========#
btnTotal=Button(f2BOTTOM,padx=16,pady=1, bd=4, fg="black",font=('arial',
16,'bold'), width=5,

text="Total ",command = costofall).grid(row=4, column=0)
btnReset=Button(f2BOTTOM,padx=16,pady=1, bd=4, fg="black",font=('arial',
16,'bold'), width=5,

text="Reset", command =Reset).grid(row=4, column=1)
lblspace=Label( f2BOTTOM, text="\n\n\n\n\n\n\n")
lblspace.grid(row =5, column=0)
root.mainloop()

 

CARTA IPO : 

  PROSES  OUTPUT 

INPUT  (a)Bilangan roti * Harga  (a)Harga roti , kek dan 
1. Harga  roti=Jumlah harga roti  minuman 
● Roti     
● Kek 
● Minuman  (b)Bilangan kek * Harga  (b)Kuantiti roti , kek dan 
  kek=Jumlah harga kek  minuman 
2. Kuantiti     
● Roti 
● Kek  (c) Bilangan minuman * Harga  (c) Jumlah harga roti 
● Minuman  minuman=Jumlah harga    
minuman 
    (d)Jumlah harga kek 
 
  (d)Jumlah harga roti + Jumlah 
  harga kek + Jumlah harga  (e)Jumlah harga minuman 
minuman=Jumlah bayaran   
 
(f) Jumlah bayaran 
(e)Wang yang dibayar oleh   
pelanggan - Jumlah 
bayaran=Baki bayaran  (g)Baki bayaran 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

TEKNIK   FASA 3 : Pengekodan  Masalah Kecil 
LERAIAN 
   
 
  Masalah Besar 
 
  1. Mengira jumlah  1. Pengisytiharan pemboleh ubah dan 
  harga   pemalar 
 
  ● Roti   
● Kek 
● Minuman   2. Input 
 
 
3. Proses 
2. Mengira jumlah 
bayaran   

  4. Output 

3. Mengira baki 
bayaran 

TEKNIK  (i) Pengisytiharan  Pemboleh ubah untuk menyimpan nilai 
PENGECAMAN  pemboleh ubah dan 
CORAK  pemalar 

(ii) Input  1. Harga 
● Roti 
● Kek 
● Minuman 

 

2. Kuantiti 
● Roti 
● Kek 
● Minuman 

(iii) Proses  1. KIRA jumlah harga roti 
=harga roti * bilangan roti 

 

2. KIRA jumlah harga kek 
=harga kek * bilangan kek 

 

3. KIRA jumlah harga minuman 
=harga minuman * bilangan minuman 

 

4. KIRA jumlah bayaran 
=jumlah harga roti + jumlah harga kek + 
jumlah harga minuman 

 

5. KIRA baki bayaran 
=Wang yang dibayar oleh pelanggan - 
jumlah bayaran 

(iv) Output  (a)Paparkan jumlah harga roti , kek dan 

minuman 

 

(b)Paparkan jumlah bayaran 
 

(c) Paparkan baki bayaran 

TEKNIK  Penentuan aspek-aspek penting terdiri daripada: 
PENISKALAAN 
(i) Pengisytiharan  1. Pemboleh ubah untuk menyimpan nilai: 
pemboleh ubah dan   
pemalar 
● Harga  
-Roti 
-Kek 
-Minuman 

 

2. Semua pemboleh ubah yang terlibat 
diisytihar sebagai i​ nteger.​  

(ii) Input  Kod arahan mesej dorongan {p​ rompt message​} :  

 

1. jumlah harga roti = float(input 
(" harga roti * bilangan yang dimasukkan :")) 

 

2. jumlah harga kek = float(input 
(" harga kek * bilangan yang dimasukkan :")) 

 

3. jumlah harga minuman = float(input 
(" harga minuman * bilangan yang 

dimasukkan :")) 

(iii) Proses  Kod arahan mengira jumlah bayaran dan baki 
bayaran:  

 

1. jumlah bayaran = jumlah harga roti + 
jumlah harga kek + jumlah harga 
minuman 

 

2. baki bayaran = wang yang dibayar oleh 
pelanggan - jumlah bayaran 

(iv) Output  Kod arahan memaparkan nilai jumlah bayaran 
dan baki bayaran:  
 
   
 
print("jumlah bayaran ialah:RM", jumlah 
bayaran) 

 

print("baki bayaran ialah:RM", baki bayaran) 

 

TEKNIK  FASA 4 : Pengujian dan Penyahpepijatan 
LERAIAN 
 

1. Masalah Besar 
Mengenal pasti dan membaiki ralat pada keseluruhan atur cara 

2. Bahagian-bahagian kecil 
 
(i) Menguji pengiystiharan pemboleh ubah dan pemalar 
 
(ii) Menguji kod input 
 
(iii) Menguji kod proses 
 
(iv) Menguji kod input 

TEKNIK  (i) Menguji pengisytiharan  Berdasarkan mesej ralat dan cara atur 
PENGECAMAN  pemboleh ubah dan pemalar  cara bertindak semasa pengujian, 
CORAK  (ii) Menguji kod input  jenis-jenis ralat dapat dikenal pasti, 
iaitu:  
(iii) Menguji kod proses 
 
(iv) Menguji kod input 
● Ralat Sintaks 
 

● Ralat Masa Larian 
 

● Ralat Logik 

  Punca Ralat  Kesalahan 

Jenis Ralat 

Ralat Sintaks  Kesalahan   
ketinggalan   
tanda petik. 

​Tiada tanda petik (”) 

sebelum tanda kurung. 

Ralat Masa  Kesalahan   
Larian  penggunaan 
pemboleh 
ubah.   
 Kesalahan menggunakan pemboleh 

ubah bilangan kek dan harga kek.

Ralat Logik  Kesalahan   
penggunaan 
operator. 

 
​  Kesalahan menggunakan operator “*”.

 

TEKNIK  Penentuan aspek-aspek penting terdiri daripada:  
PENISKALAAN 

(i) Menguji pengisytiharan  Semua pemboleh ubah diisytiharkan dengan 
pemboleh ubah dan  betul dari segi: 
pemalar 
● Jenis data 
● Kesesuaian nama dan nama dieja 

dengan betul 
● Diberikan nilai permulaan ​(initialised) 

(ii) Menguji kod arahan  Pastikan pemboleh ubah bilangan roti , kek 
input  dan minuman digunakan untuk menyimpan 
(iii) Menguji kod arahan  nilai yang dimasukkan oleh pengguna 
proses 
 

● Formula yang digunakan adalah betul 
● Logik/susunan adalah betul 

(iv) Menguji kod arahan  ● Output yang dipaparkan adalah tepat 
output  dan betul 

● Format output adalah seperti yang 
dikehendaki 

TEKNIK  Menghasilkan satu senarai semak yang dapat digunakan semasa pengujian 
PENGITLAKAN  dan penyahpepijatan sesuatu atur cara. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Atur cara yang telah dibetulkan dan disemak : 
 

 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 
 
 
 
 
 
 
 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 

 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

FASA 5 : Dokumentasi 

  1. Masalah besar 
 
TEKNIK  dokumentasi 
Menyediakan
LERAIAN 

2. Bahagian-Bahagian kecil 
 

(i) Dokumentasi dalaman 
 

(ii) Dokumentasi luaran 
 

● Dokumen pustaka 
 
● pengguna 
Panduan

TEKNIK  (a) Dokumentasi dalaman  Maklumat penting tentang atur cara 
PENGECAMAN  merupakan corak yang telah dicamkan. 
Komen tentang tujuan dan fungsi 
CORAK  dilakukan oleh setiap bahagian/barisan kod 
arahan. 

 

(b) Dokumentasi luaran  Maklumat teknikal tentang atur cara untuk 

(Dokumentasi Pustaka)  tujuan rujukan, penyelenggaraan dan 
penambahbaikan. 

(c) Dokumentasi luaran  Maklumat tentang cara menggunakan atau 

(Panduan Pengguna)  melaksanakan arahan. 

TEKNIK  Penentuan aspek-aspek penting terdiri daripada:  
(a) Dokumentasi dalaman  Penulisan komen untuk menerangkan 
PENISKALAAN 
fungsi setiap bahagian atau sesuatu baris 
kod arahan. 

(b) Dokumentasi luaran  Maklumat yang diperlukan oleh seorang 
(Dokumen Pustaka)  pengatur cara:  

● Tarikh 
● Nama pengatur cara 
● Tujuan/kegunaan atur cara 
● Keperluan sistem pengendalian 
● Keperluan perkakasan 
● Keperluan perisian 
● Algoritma ​(pseudokod dan carta alir) 
● Kod arahan ​(source code) 

(c) Dokumentasi luaran  Maklumat yang diperlukan oleh seorang 

(Panduan Pengguna)  pengguna seperti:  
● Nama dan tujuan atur cara 
● Keperluan sistem pengendalian, 
perkakasan dan perisian 
● Cara penggunaan 

TEKNIK  Menghasilkan dokumentasi dalaman dan dokumentasi luaran 
PENGITLAKAN  berdasarkan aspek-aspek penting yang dikenal pasti. 
 

 

DOKUMEN PUSTAKA (LIBARY DOCUMENTATION) 

Keperluan Sistem Pengendalian  Windows 8 Pro 

Keperluan Perisian  Python 3.8.0 

Keperluan Ingatan  Minimum 2GB 

PSEUDOKOD 

 

MULA 
ISYTIHAR ​pemboleh ubah jumlah bayaran = RM0 
PAPARKAN​ menu 
PAPARKAN​ mesej ”Sila masukkan nombor roti , kek dan minuman yang anda dipilih” 

J​ IKA​ anda masukkan nombor = 1 
P​ APARKAN​ “Roti Kelapa” 
​ KIRAKAN​ harga roti kelapa * bilangan roti kelapa 
yang dimasukkan 

J​ IKA​ anda masukkan nombor = 2 
P​ APARKAN​ “Roti Kaya” 
K​ IRAKAN​ harga roti kaya * bilangan roti kaya yang 
dimasukkan 

​ JIKA​ anda masukkan nombor = 3 
P​ APARKAN ​“Roti Kacang Merah” 
K​ IRAKAN​ harga roti kacang merah* bilangan roti 
kacang merah yang dimasukkan 

​ JIKA​ anda masukkan nombor = 4 
P​ APARKAN​ “Butter Chocolate Bread” 
K​ IRAKAN​ harga butter chocolate bread * bilangan 
butter chocolate bread yang dimasukkan 

​ JIKA ​anda masukkan nombor = 5 
P​ APARKAN​ “Cheese Bread” 
K​ IRAKAN​ harga cheese bread * bilangan cheese bread 

yang dimasukkan 
​ JIKA​ anda masukkan nombor = 6 

P​ APARKAN​ “Fruit Cake” 
K​ IRAKAN​ harga fruit cake * bilangan fruit cake yang 
dimasukkan 
​ JIKA​ anda masukkan nombor = 7 
P​ APARKAN​ “Mocha Cake” 
K​ IRAKAN​ harga mocha cake* bilangan mocha cake 
yang dimasukkan 
​ JIKA​ anda masukkan nombor = 8 
P​ APARKAN​ “Blueberry Cake” 
K​ IRAKAN​ harga blueberry cake * bilangan blueberry 
cake yang dimasukkan 
​ JIKA​ anda masukkan nombor = 9 
P​ APARKAN​ “Chiffon Cake” 
K​ IRAKAN​ harga chiffon cake * bilangan chiffon cake 
yang dimasukkan 
​ JIKA​ anda masukkan nombor = 10 
P​ APARKAN​ “Butter Marble Cake” 
K​ IRAKAN​ harga butter marble cake * bilangan butter 
marble cake yang dimasukkan 
​ JIKA​ anda masukkan nombor = 11 
P​ APARKAN ​“Hundred plus” 
K​ IRAKAN​ harga Hundred plus * bilangan hundred 
plus yang dimasukkan 
​ JIKA ​anda masukkan nombor = 12 
P​ APARKAN​ “Cocacola” 
K​ IRAKAN​ harga cocacola * bilangan cocacola yang 
dimasukkan 
​ JIKA​ anda masukkan nombor = 13 
P​ APARKAN​ “Air Mineral” 
K​ IRAKAN​ harga air mineral * bilangan air mineral 
yang dimasukkan 
​ JIKA ​anda masukkan nombor = 14 
P​ APARKAN ​“Ice Lemon Tea” 
K​ IRAKAN​ harga ice lemon tea * bilangan ice lemon tea 
yang dimasukkan 
​ JIKA ​anda masukkan nombor = 15 
P​ APARKAN​ “Soya Bean” 
K​ IRAKAN​ harga soya bean * bilangan soya bean yang 
dimasukkan 
​ JIKA​ anda masukkan nombor = 16 

​ TAMBAHKAN​ jumlah bayaran 
P​ APARKAN​ jumlah bayaran 
J​ IKA​ wang tunai dibagikan dengan cukup 
Wang tunai dimasukkan=jumlah bayaran 
C​ ARI​ bakinya 
J​ IKA​ wang tunai dibagikan dengan tidak cukup 
P​ APARKAN​ “wang tunai yang tidak cukup” 
P​ APARKAN​ “Sila bagi wang tunai yang cukup” 
T​ AMAT JIKA 

TAMAT 

CARTA ALIR 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

KOD ARAHAN   
 
   
 
   
   
   
   
   
   
   
   
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 

 
 
 
 
 
 
 
 
 
 
 


Click to View FlipBook Version