BAB DUA PENYELESAIAN MASALAH
Document Sample


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
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.
Mohd Farid Jaafar 10
JSM, FSKTM, UPM
Penyelesaian Masalah
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.
Mohd Farid Jaafar 11
JSM, FSKTM, UPM
Penyelesaian Masalah
Penyelesaian maslah berikut boleh digambarkan dengan:
Input Proses output
(16) (formula) (4)
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
Menghubungkan antara simbol dan menunjukan aliran
Aliran
aktiviti
Menunjukan Mula dan Tamat bagi sesuatu aktiviti
Terminal
Menunjukan operasi Input (memasukan data) atau Output
Input/Output
(mempamerkan hasil)
Menunjukan operasi aritmetik dan manipulasi data
Proses
dilaksanakan
Menunjukan operasi logik atau perbandingan. Mempunyai
Keputusan
1 aliran masuk dan 2 aliran keluar (iaitu Benar/Salah)
Penghubung Menggabungkan aliran yang berlainan
Offpage
Menunjukan carta aliran bersambung di muka surat
Penghubung
seterusnya
Proses Mewakili satu kumpulan penyataan yang melaksanakan
predefine pemprosesan data.
Kebaikan:
Mudah difahami logik masalah.
Langkah penyelesaian lebih jelas dan teratur.
Mohd Farid Jaafar 12
JSM, FSKTM, UPM
Penyelesaian Masalah
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:
Mula
Baca
nilai
helai
Set
Setem=Helai//5
Bulatkan nilai
Setem dgn nilai
tertinggi
Pamir
nilai
Setem
Akhir
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:
Mohd Farid Jaafar 13
JSM, FSKTM, UPM
Penyelesaian Masalah
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
Mohd Farid Jaafar 14
JSM, FSKTM, UPM
Penyelesaian Masalah
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
Baca Input Proses Papar
Pengiraan Output
Kira Bil Julatkan
Setem Nilai
Mohd Farid Jaafar 15
JSM, FSKTM, UPM
Penyelesaian Masalah
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
Baca input Pengiraan Pamerkan
purata gred
Dapatkan Kira jumlah Kira jumlah Kira purata
gred gred pelajar gred pelajar
Mohd Farid Jaafar 16
JSM, FSKTM, UPM
Penyelesaian Masalah
Carta Aliran
Mula
Setkan
Pembilang -> 0
Jumlah -> 0
Ada lagi
Yes No
data?
Gred
berikutnya
Tambah
Bilangan
Pembilang + 1
Tambah jumlah
gred
Jumlah + Gred
Akhir
Setkan purata
Jumlah /
Pembilang
Paparkan
purata
gred
Akhir
Mohd Farid Jaafar 17
JSM, FSKTM, UPM
Penyelesaian Masalah
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.
Mohd Farid Jaafar 18
JSM, FSKTM, UPM
Penyelesaian Masalah
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
Mohd Farid Jaafar 19
JSM, FSKTM, UPM
Penyelesaian Masalah
8. Tukarkan carta alir di bawah kepada kod pseudo.
a)
A
T
IF X > 100
X=0
F
T
IF Y > 250
F X=0
B
b)
A
T
F
IF
Age < 16
F T
Charge = 7
IF
Age < 65
Charge = 5 Charge = 10
B
Mohd Farid Jaafar 20
JSM, FSKTM, UPM
Penyelesaian Masalah
9. Gambarkan pseudo kod berikut kepada carta alir dan carta struktur.
a) IF SALES <= 2000
THEN
COMMISSION = .02
ELSE
IF SALES <= 4000
THEN
COMMISSION = .04
ELSE
IF SALES <= 6000
THEN
COMMISSION = .07
ELSE
COMMISION = .1
b) IF Purchase < 100
THEN
IF Last Payment < 30
THEN
IF Balance < 1000
THEN
PRINT “Credit OK”
ELSE
PRINT “Refer to credit dept”
ELSE
IF Balance < 1000
THEN
PRINT “Credit OK”
ELSE
PRINT “Credit denied”
ELSE
IF Balance < 1000
THEN
PRINT “Refer to credit dept”
ELSE
PRINT “Credit denied”
Mohd Farid Jaafar 21
JSM, FSKTM, UPM
Get documents about "