FOLIO ASK 2020
Nama Mata Pelajaran:ASK
Tajuk:Sistem Pengiraan Bayaran Jualan P emborong
Alat Tulis Dengan Diskaun
Nama Sekolah:Sekolah Tun Haji Abdul Malek
Nama Murid:Soo Jun Xuan
Nama Penilai:Puan Hoo Meow Lin
1
KANDUNGAN MS
3
Bil. Aktiviti 4
1. Pendahuluan 4
2. Carta Gantt 4
3. Situasi 5
4. Soalan 5
5. Pembangunan Atur Cara 6
6. Fasa Analisis Masalah 7
7. Fasa Reka Bentuk Atur Cara 8
8. Pseudokod 9,10
9. Carta Alir 11-13
10. Fasa Pengekodan 14
11. Kod Kalkulator 15,16
12. Fasa Pengujian dan Penyahpepijatan 17
13. Fasa Dokumentasi
14 Tamat
2
Pendahuluan
Saya menjalankan kajian ini bagi memenuhi kerja projek KSSM
Asas Sains Komputer Pentaksiran Tingkatan 3 bagi tahun 2020.
Projek yang saya lakukan berkaitan dengan pembinaan atur cara
yang mengira bayaran jualan pemborong alat tulis dengan
Diskaun.Atur cara ini akan memaparkan kategori berat berdasarkan
kiraan diskaun dan juga memaparkan harga selepas diskaun.
Pengiraan bayaran jualan pemborong alat tulis dengan
diskaun merupakan kandungan pelajaran yang terdapat dalam
mata pelajaran Matematik 2. Sistem dapat membantu membuat
pengiraan harga dengan diskaun dengan mudah, cepat dan tepat.
Tempoh masa yang diberi untuk menyempurnakan kerja projek
ini ialah tiga bulan. Saya telah menggunakan tempoh 4 minggu
pertama untuk mencari maklumat dan 6 minggu yang seterusnya
untuk proses pendokumentasian.
3
Carta Gantt
Situasi
Pemborong alat tulis sedang membuat promosi untuk
mempromosikan Pembelian membeli alat tulis.
Soalan
Pembelian yang mempunyai Kad Ahli baru mempunyai diskaun.
Jika tak ada, bayar jumlah harga tanpa diskaun. Jika pembelian
membeli jumlah harga melebihi RM250, mempunyai promosi
25%.Jika pembelian membeli jumlah harga melebihi RM200,
mempunyai promosi 20%.Jika pembelian membeli jumlah harga
melebihi RM150, mempunyai promosi 15%.Jika pembelian
4
membeli jumlah harga melebihi RM100, mempunyai promosi
15%.Jika Pembelian membeli Jumlah Harga mengurang daripada
RM100, tiada diskaun .
Pembangunan Atur Cara
Terdapat 5 fasa dalam pembangunan atur cara iaitu :
i) Fasa Analisis Masalah
ii) Fasa Reka Bentuk Atur Cara
iii) Fasa Pengekodan
iv) Fasa Pengujian dan Penyahpepijat
v) Fasa Dokumentasi
FASA ANALISIS MASALAH
Teknik Leraian
Dengan menggunakan teknik leraian, masalah yang besar akan
dipecahkan kepada masalah yang lebih kecil. Masalah diselesaikan
daripada pecahan bahagian-bahagian kecil.
5
FASA REKA BENTUK ATUR CARA
Teknik Pengecaman Corak
Dengan menggunakan teknik pengecaman corak,mempunyai kad ahli dan cara
kiraan jualan harga selepas diskaun.
Teknik Peniskalaan
Dengan menggunakan teknik peniskalaan , aspek penting yang perlu diambil kira ialah
syarat yang perlu diambilkira dalam kiraan gaji dan komisen.
Teknik Pengitlakan
Dengan menggunakan teknik pengitlakan, menghasilkan algoritma dalam bentuk
pseudokod dan carta alir.
6
Pseudokod
MULA
Isytihar pemboleh ubah Kad Ahli, Jumlah Harga Benda
Masukkan Pembelian Benda Harga
Paparkan “Adakah anda ada kad ahli?”
Semakkan Kad Ahli
Jika Ada
Mengira Jumlah Harga Dengan Promosi
Jika Jumlah Harga melebihi daripada RM250
Diskaun 30%daripada Jumlah Harga
Paparkan Jumlah Jualan
Jika Jumlah Harga melebihi daripada RM 200
Diskaun 25% daripada Jumlah Harga
Paparkan Jumlah Jualan
Jika Jumlah Harga melebihi daripada RM150
Diskaun 20% daripada Jumlah Harga
Paparkan Jumlah Jualan
Jika Jumlah Harga melebihi daripada RM100
Diskaun 15% daripada Jumlah Harga
Paparkan Jumlah Jualan
Jika Tidak
Mengira Jumlah Harga Tanpa Diskaun
Paparkan Jumlah Jualan
TAMAT JIKA
Jika Tidak
Mengira Jumlah Harga Tanpa Promosi
Paparkan Jumlah Jualan
TAMAT JIKA
TAMAT
7
Carta Alir
8
Fasa Pengekodan
Teknik Leraian
(a) Masalah Besar
Mengekod algoritma, Mengira Harga diskaun dan menentukan Harga selepas Diskaun.
(b) Bahagian-bahagian kecil:
(i) Pengisytiharan pemboleh ubah dan pemalar
(ii) Input
(iii) Proses
(iv) Output
Teknik Pengecaman Corak
1. Corak yang dapat dicamkan bagi setiap bahagian kecil ialah penggunaan jenis data float dan
string.
i. Pengisytiharan
- Pemboleh ubah untuk mengira Harga.
ii. Input
- Pengguna memasukkan satu nilai numerik untuk mengira jumlah Harga Dengan
diskaun
iii. Proses
- Kira jumlah Harga Dengan diskaun= Jumlah Harga *diskaun
iv. Output
- Papar Jumlah Harga
Dengan Pengiraan diskaun
Teknik Peniskalaan
1. Penentuan aspek-aspek penting terdiri daripada :
i. Pengisytiharan pemboleh ubah dan pemalar
▪ P emboleh ubah untuk menyimpan nilai :
o K ad Ahli
9
o J umlah harga
▪ P emboleh ubah yang terlibat diisytihar sebagai float dan string
ii. Input
Kad Ahli=str(input(“Adakah anda Kad Ahli :”))
berat=float(input(“Masukkan jumlah harga(RM) :”))
iii. Proses
Kad Ahli_Ya=Mengira dengan diskaun
Kad Ahli tidak=Paparkan Jumlah harga
Diskaun_1=Jumlah_harga/30%
Diskaun_2=Jumlah_harga/25%
Diskaun_3=Jumlah_harga/20%
Diskaun_4=Jumlah_harga/10%
Jumlah Harga>RM250=Diskaun_1
Harga>RM200=Diskaun_2
Harga>RM150=Diskaun_3
Harga>RM100=Diskaun_4
iv. Output
print(“Jumlah Harga anda ialah:”Diskaun_1)
print(“Jumlah Harga anda ialah:”Diskaun_2)
print(“Jumlah Harga anda ialah:”Diskaun_3)
print(“Jumlah Harga anda ialah:”Diskaun_4)
10
Kod Kalkulator
from tkinter import *
win = Tk()
win.geometry("600x600")
win.resizable(0, 0)
win.title("Kalkulator Pemborong Alat Tulis Diskaun")
def btn_click(item):
global expression
expression = expression + str(item)
input_text.set(expression)
def bt_clear():
global expression
expression = ""
input_text.set("")
def bt_equal():
11
global expression
result = str(eval(expression))
input_text.set(result)
expression
expression = ""
input_text = StringVar()
input_frame = Frame(win, width=312, height=50, bd=0, highlightbackground="black", highlightcolor="black", highlightthickness=2)
input_frame.pack(side=TOP)
input_field = Entry(input_frame, font=('arial', 38, 'bold'), textvariable=input_text, width=50, bg="#eee", bd=0, justify=RIGHT)
input_field.grid(row=0, column=0)
input_field.pack(ipady=10)
btns_frame = Frame(win, width=312, height=272.5, bg="grey")
btns_frame.pack()
clear= Button(btns_frame, text = "C", fg = "black", width = 64, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command = lambda:
bt_clear()).grid(row = 0, column = 0, columnspan = 3, padx = 1, pady = 1)
bahagi= Button(btns_frame, text = "/", fg = "black", width = 20, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command = lambda:
btn_click("/")).grid(row = 0, column = 3, padx = 1, pady = 1)
tujuh= Button(btns_frame, text = "7", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(7)).grid(row = 1, column = 0, padx = 1, pady = 1)
lapan= Button(btns_frame, text = "8", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(8)).grid(row = 1, column = 1, padx = 1, pady = 1)
12
sembilan= Button(btns_frame, text = "9", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(9)).grid(row = 1, column = 2, padx = 1, pady = 1)
darab= Button(btns_frame, text = "*", fg = "black", width = 20, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command = lambda:
btn_click("*")).grid(row = 1, column = 3, padx = 1, pady = 1)
empat= Button(btns_frame, text = "4", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(4)).grid(row = 2, column = 0, padx = 1, pady = 1)
lima= Button(btns_frame, text = "5", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(5)).grid(row = 2, column = 1, padx = 1, pady = 1)
enam= Button(btns_frame, text = "6", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(6)).grid(row = 2, column = 2, padx = 1, pady = 1)
tolak= Button(btns_frame, text = "-", fg = "black", width = 20, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command = lambda:
btn_click("-")).grid(row = 2, column = 3, padx = 1, pady = 1)
satu= Button(btns_frame, text = "1", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(1)).grid(row = 3, column = 0, padx = 1, pady = 1)
dua= Button(btns_frame, text = "2", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(2)).grid(row = 3, column = 1, padx = 1, pady = 1)
tiga= Button(btns_frame, text = "3", fg = "black", width = 20, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(3)).grid(row = 3, column = 2, padx = 1, pady = 1)
tambah= Button(btns_frame, text = "+", fg = "black", width = 20, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command = lambda:
btn_click("+")).grid(row = 3, column = 3, padx = 1, pady = 1)
kosong= Button(btns_frame, text = "0", fg = "black", width = 42, height = 6, bd = 3, bg = "#fff", cursor = "hand2", command = lambda:
btn_click(0)).grid(row = 4, column = 0, columnspan = 2, padx = 1, pady = 1)
titik= Button(btns_frame, text = ".", fg = "black", width = 20, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command = lambda:
btn_click(".")).grid(row = 4, column = 2, padx = 1, pady = 1)
sama_dengan= Button(btns_frame, text = "=", fg = "black", width = 20, height = 6, bd = 3, bg = "#eee", cursor = "hand2", command =
lambda: bt_equal()).grid(row = 4, column = 3, padx = 1, pady = 1)
win.mainloop()
13
Fasa Pengujian dan Penyahpepijatan
Ralat
Tidak dapat mengira jumlah nombor
Cara Selesai
Menambah kod bt_equal
14
Fasa Dokumentasi
Arahan Manual
Sebelum menggunakan kalkulator ini,pengguna perlu ada aplikasi Python.Jika anda
tiada aplikasi Python,arahan manual di bawah akan menunjukkan cara untuk muat
turun aplikasi Python:
Muat Turun Python
1)Buka google dan search “Python download”
15
2)Tekan dan search python download atau tekan link di
tepi==>h ttps://www.python.org/downloads/
3)Tekan download dan python akan muat turun automatik.
Penutup
Dalam perjalanan membuat kerja ini,saya dapat mengetahui ilmu yang banyak
pengekodan tentang kalkulator dan (GUI)semasa membuat kalkulator ini.Saya
berharap kalkulator ini dapat biarkan pengguna menggunakan dengan gembira.
16
17