Bab2 penyelesaian masalah
-
Upload
anas-assayuti -
Category
Documents
-
view
1.980 -
download
8
Transcript of Bab2 penyelesaian masalah
BAB DUA: PENYELESAIAN MASALAH
PENYELESAIAN MASALAH DIDALAM KEHIDUPAN SEHARIAN
Manusia membuat keputusan setiap hari untuk menyelesaikan masalah yang berkaitan dengan
kehidupan seharian mereka. Setiap masalah yang dihadapi adalah berbeza-beza mengikut
situasi dan penyelesaiannya juga berlainan. Satu perkara yang sama ialah bagaimana masalah
tersebut diselesaikan.
Kitaran Pembangunan Aturcara
Untuk membangunkan satu aturcara yang baik dan berkesan, kita hendaklah mengikuti
langkah-langkah yang betul di dalam pembangunan aturcara. Enam langkah berikut merupakan
asas dalam mereka bentuk aturcara yang dapat membantu menghasilkan output/hasil yang
dikehendaki dan dapat merancang masa dengan efektif.
1. Analisa
Memahami dan mengenal pasti apakah output yang di kehendaki.
Jelas dan faham input yang diperlukan untuk menghasilkan output dan proses yang
terlibat di dalam penghasilannya.
2. Reka Bentuk
Algoritma (Algorithm) digunakan bagi menafsirkan masalah ke dalam bentuk yang
difahami.
Terdapat kaedah yang tertentu yang digunakan dalam merangka penyelesaian masalah.
3 kaedah popular: Carta Aliran, Kod Pseudo dan Carta Hirarki.
Kaedah ini menekankan pemecahan masalah yang besar kepada bentuk yang lebih
kecil.
Dengan ini, masalah akan diselesaikan mengikut pecahan-pecahan yang kecil terlebih
dahulu sehinggalah selesai keseluruhan masalah.
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
10
3. Membina Antara Muka
Setelah proses menentukan bagaimana input diperolehi dan output dihasilkan, objek-
objek akan dibina bagi proses menerima input dan mempamerkan output.
Objek ini dipangail antara muka (interface).
2 langkah bagi mereka bentuk antara muka pengguna ialah:
a) Rancang antara muka - proses ini melibatkan lakaran apa yang akan dipamerkan
kepada pengguna pada skrin komputer.
b) Rancang propeties - mengenalpasti properties bagi setiap objek. Contohnya:
mengenal pasti nama bagi setiap objek dan form, atribut
(attribute) lain bagi objek juga ditentukan; contoh – saiz,
perkataan/warna teks yang akan dipamerkan pada butang
arahan atau label dan sebagainya.
4. Pengekodan
Mentafsirkan algoritma/kod pseudo kepada bahasa pengaturcaraan.
5. Uji dan Debug
Pengujian adalah proses mencari ralat pada program, manakala Debug adalah proses
membetulkan ralat yang dijumpai semasa pengujian (Bug adalah ralat di dalam
program).
6. Dokumentasi
Merupakan penerangan terperinci yang menerangkan apakah yang dilakukan oleh
program dan bagaimana untuk menggunakan program tersebut.
Dikenali juga sebagai arahan manual yang dapat difahami oleh pengaturcara yang lain
untuk kegunaan pada masa akan datang.
Jenis dokumentasi lain ialah carta aliran, kod pseudo, dan carta hirarki yang digunakan
semasa mereka bentuk program.
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
11
KAEDAH PENGATURCARAAN
Terdapat 3 kaedah yang digunakan bagi menafsirkan algorithm kepada program iaitu:
1. Carta Aliran: Kaedah grafik yang menunjukan langkah-langkah bagi penyelesaian
masalah dan bagaimana ianya berhubung antara satu sama lain.
2. Pseudocode: Penggunaan ayat pertuturan dan beberapa kod Basic dalam
menunjukan langkah-langkah dan tugas.
3. Carta Hirarki: Menunjukan bahagian yang berlainan bagi sesuatu progarn
berhubung kait antara satu sama lain.
Contoh Masalah
Apabila hendak menghantar surat, bilangan setem ditentukan berdasarkan bilangan jumlah
surat yang dihantar. Katakan, bagi setiap 5 pucuk surat, bilangan setem yang diperlukan
ialah 1.
Berikut adalah algoritma bagi masalah di atas:
Katakan bilangan bagi setiap pucuk surat di panggil, Pucuk. (Input)
Bahagikan jumlah Pucuk dengan 5. (Proses)
Bundarkan nilai (2) kepada nilai tertingai. (Proses)
Hasilnya adalah jumlah bilangan Setem yang diperlukan. (Output)
Algoritma ini akan diuji bagi mencari penyelesaian berikut:
Berapakah jumlah setem yang diperlukan bagi 16 pucuk surat?
1. Katakan jumlah bilangan bagi surat, Pucuk = 16.
2. Bahagikan 16 kepada 5, 16/5 = 3.2
3. Bundarkan nilai 2 kepada nilai tertinggi, iaitu 4.
4. Hasilnya adalah jumlah bilangan Setem yang diperlukan = 4.
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
12
Penyelesaian maslah berikut boleh digambarkan dengan:
Carta Aliran
Carta aliran mengandungi simbol geometrik yang dihubungkan oleh anak panah. Bagi
simbol mewakili aktiviti bagi langkah yang akan dilaksanakan oleh program. Aktiviti akan
dilaksanakan mengikut turutan dari atas ke bawah.
Simbol Nama Penerangan
AliranMenghubungkan antara simbol dan menunjukan aliran
aktiviti
TerminalMenunjukan Mula dan Tamat bagi sesuatu aktiviti
Input/OutputMenunjukan operasi Input (memasukan data) atau Output
(mempamerkan hasil)
ProsesMenunjukan operasi aritmetik dan manipulasi data
dilaksanakan
KeputusanMenunjukan operasi logik atau perbandingan. Mempunyai
1 aliran masuk dan 2 aliran keluar (iaitu Benar/Salah)
Penghubung
Offpage
Menggabungkan aliran yang berlainan
PenghubungMenunjukan carta aliran bersambung di muka surat
seterusnya
Proses
predefine
Mewakili satu kumpulan penyataan yang melaksanakan
pemprosesan data.
Kebaikan:
Mudah difahami logik masalah.
Langkah penyelesaian lebih jelas dan teratur.
Input(16)
Proses(formula)
output(4)
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
13
Kekurangan:
Apabila melibatkan program yang besar. Carta Aliran akan memerlukan lebih
banyak muka surat. Ini akan menyukarkan untuk melihat program secara
keseluruhan dan membuat perubahan.
Berikut adalah gambarajah Carta Aliran bagi masalah yang di berikan:
Pseudocode
Pseudocode ini lebih menyerupai aturcara daripada carta aliran dan bahasanya mudah
difahami kerana menggunakan bahasa pertuturan. Apabila Pseudocode ini siap, ianya lebih
memudahkan tugas untuk menterjemahkannya ke dalam bahasa Visual Basic. Berikut adalah
contoh Pseudocode:
Mula
Akhir
Baca nilai helai
Pamir nilai Setem
SetSetem=Helai//5
Bulatkan nilai Setem dgn nilai
tertinggi
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
14
Program: Menentukan jumlah bilangan setem bagi surat.
Baca jumlah bilangan surat. (Input)
Set bilangan Setem = Helai / 5. (Proses)
Bulatkan jumlah bilangan Setem kepada nilai tertinggi. (Proses)
Pamerkan jumlah bilangan Setem yang diperlukan. (Output)
Kebaikan:
Padat dan tepat
Tidak memerlukan banyak muka surat.
Menyerupai kod aturcara dan boleh difahami oleh ramai pengaturcara.
Contoh:
MULA
DO WHILE selagi ada data
Baca penyata akaun pelanggan
IF tarikh hari ini lebih besar daripada 30 hari, daripada tarikh akhir pembayaran oleh
pelanggan
Kira jumlah yang dibayar
Kira 5% faedah ke atas jumlah yang dibayar
Tambah jumlah bunga dengan jumlah yang dibayar
Cetak invois (lambat bayar)
ELSE
Kira jumlah yang dibayar
ENDIF
Cetak invois
END DO
END
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
15
Carta Hirarki
Carta hirarki juga dikenali sebagai Carta Struktur, Carta HIPO (Hierarchy plus Input-Process-
Output), Carta Atas-Bawah atau Carta VTOC (Visual Table of Contents). Ia menggambarkan
struktur program secara keseluruhan, di mana Carta ini dipecahkan ke modul-modul. Carta hirarki
perlu dibaca bermula daripada atas ke bawah serta daripada ke kanan.
Kebaikan:
Apabila program yang besar dipecahkan kepada modul-modul, masalah dapat dilihat secara
menyeluruh. Modul ini kemudiannya akan diperincikan dengan menggunakan kaedah Carta
Aliran atau Pseudocode. Proses ini dipanggil pecah dan tawan (divide and conquer).
Contoh:
Program Kira Setem
Julatkan Nilai
Kira Bil Setem
Papar Output
Proses Pengiraan
Baca Input
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
16
Contoh:
Tajuk : Mengira purata gred pelajar bagi kursus SAK1110.
Algoritma
Masalah: Mengira dan mengeluarkan laporan purata Gred pelajar bagi kursus SAK
1110.
Penerangan: Purata Gred dikira berdasarkan jumlah ke sernua gred dibahagi dengan
jumlah bilangan pelajar. Di sini kita memerlukan satu proses ulangan yang
mana akan membaca Gred bagi setiap pelajar dan menjumlahkan setiap
bilangan gred tersebut. Sistem ini juga akan mengira jumlah bilangan
pelajamya.
Input: Gred Pelajar
Proses: 1) Mengira jumlah gred dan bilangan pelajar
2) Mengira purata gred:
Jumlah gred / Bilangan Pelajar
Output: Purata Gred
Carta Hirarki
Mengira Purata Gred Pelajar
Pamerkan purata gred
PengiraanBaca input
Dapatkan gred
Kira purata gred pelajar
Kira jumlah pelajar
Kira jumlah gred
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
17
Carta Aliran
Akhir
Mula
SetkanPembilang -> 0
Jumlah -> 0
TambahBilangan
Pembilang + 1
Tambah jumlah gred
Jumlah + Gred
Setkan purataJumlah /
Pembilang
Ada lagi data?
Gred berikutnya
Paparkan purata gred
Akhir
NoYes
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
18
Kod Pseudo
Program: Mencari purata gred pelajar
Pembilang = 0
Jumlah = 0
Selagi ada data
Dapatkan gred yang berikutnya
Jumlah = Jumlah + Gred
Pembilang = Pembilang + 1
Ulang
Purata = Jumlah / Pembilang
Pamer purata
Contoh tambahan:
1. Sebuah syarikat penjualan barangan sukan ingin mengadakan jualan tahunan dengan
memberi diskaun kepada pelanggannya. Jika pelanggan membeli barangan sukan di dalam
satu resit melebihi RM 100 maka pelanggan tersebut akan mendapat diskaun sebanyak 10%
dan jika melebihi RM 500 maka diskaun 50% akan diberikan.
a) Bina carta alir yang menggambarkan masalah di atas,
b) Tuliskan kod pseudo yang dapat menyelesaikan masalah tersebut
2. Syarikat Pembalakan XYZ memberikan diskaun 2% jika baki pembayaran sesuatu pembelian
dilakukan dalam masa 10 hari dari tarikh pembelian.
a) Lakarkan carta alir untuk masalah di atas
3. Seorang pekerja separuh masa berkerja selama 20 jam pada minggu pertama dan 15 jam pada
minggu kedua. Beliau dibayar berdasarkan kepada 40 jam bekerja seminggu. Bina carta
struktur yang menggambarkan perjalanan pengiraan gaji.
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
19
4. Sazly Anuar ingin menabung untuk masa depan anaknya. Beliau sedang mencari sebuah bank
yang dapat memberikan pulangan yang lumayan untuk simpanannya. Beliau mempunyai RM
2000 untuk dilaburkan di dalam akuan simpanan. Pengiraan biasa untuk mengira nilai
prinsipal dan faedah pada satu jangka satu masa ialah
Amount = P * (1 + I/M)^(N*M)
dimana P = Prinsipal (jumlah simpanan)
I = Interest (peratusan faedah yang diberikan bank)
N = Number of Years (jumlah tahun simpanan)
M = Compund Interval (jumlah masa bagi setiap tahun sesuatu faedah dikira dan
ditambah pada prinsipal)
5. Encik Azlan ingin mengecat tingkap rumah baru beliau. Cat yang dipilih beliau dapat
memenuhi 100 kaki per segi per gelen. Terdapat dua tingkap yang perlu untuk dicat. Tuliskan
kod pseudo yang membantu Encik Azlan.
6. Tuliskan kod pseudo dan lukiskan carta alir yang mencari purata umur bagi semua pelajar di
dalam sesebuah kelas.
7. Bangunkan satu penyelesaian yang mengembalikan syiling terkecil baki dari pembelian di
bawah RM 1. (50 sen, 20 sen, 10 sen, 5 sen dan 1 sen). Contoh:
Pembayaran : 63 sen
Baki : 37 sen
Syiling : 1 sen - 2 keping
: 5 sen - 1 keping
: 10 sen - 1 keping
: 20 sen - 1 keping
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
20
8. Tukarkan carta alir di bawah kepada kod pseudo.
a)
b)
A
B
IF X > 100
IF Y > 250
X = 0
X = 0
T
T
F
F
A
B
IF Age < 16
IF Age < 65
Charge = 5
Charge = 7
Charge = 10
T
F
F
T
Penyelesaian Masalah
Mohd Farid JaafarJSM, FSKTM, UPM
21
9. Gambarkan pseudo kod berikut kepada carta alir dan carta struktur.
a) IF SALES <= 2000THEN
COMMISSION = .02ELSE
IF SALES <= 4000THEN
COMMISSION = .04ELSE
IF SALES <= 6000THEN
COMMISSION = .07ELSE
COMMISION = .1
b) IF Purchase < 100THEN
IF Last Payment < 30THEN
IF Balance < 1000THEN
PRINT “Credit OK”ELSE
PRINT “Refer to credit dept”ELSE
IF Balance < 1000THEN
PRINT “Credit OK”ELSE
PRINT “Credit denied”ELSE
IF Balance < 1000THEN
PRINT “Refer to credit dept”ELSE
PRINT “Credit denied”