Page 1

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, objekobjek 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 JSM, FSKTM, UPM

10


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 JSM, FSKTM, UPM

11


Penyelesaian Masalah Penyelesaian maslah berikut boleh digambarkan dengan:

Input (16)

Proses (formula)

output (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 Aliran

Terminal

Input/Output

Proses

Keputusan Penghubung

Penerangan Menghubungkan antara simbol dan menunjukan aliran aktiviti Menunjukan Mula dan Tamat bagi sesuatu aktiviti

Menunjukan operasi Input (memasukan data) atau Output (mempamerkan hasil) Menunjukan operasi aritmetik dan manipulasi data dilaksanakan Menunjukan operasi logik atau perbandingan. Mempunyai 1 aliran masuk dan 2 aliran keluar (iaitu Benar/Salah) Menggabungkan aliran yang berlainan

Offpage Penghubung

Menunjukan carta aliran bersambung di muka surat 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 JSM, FSKTM, UPM

12


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 JSM, FSKTM, UPM

13


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 JSM, FSKTM, UPM

14


Penyelesaian Masalah Carta Hirarki

Carta hirarki juga dikenali sebagai Carta Struktur, Carta HIPO (Hierarchy plus Input-ProcessOutput), 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

Proses Pengiraan

Baca Input

Kira Bil Setem

Mohd Farid Jaafar JSM, FSKTM, UPM

Papar Output

Julatkan Nilai

15


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

Dapatkan gred

Mohd Farid Jaafar JSM, FSKTM, UPM

Pamerkan purata gred

Pengiraan

Kira jumlah gred

Kira jumlah pelajar

Kira purata gred pelajar

16


Penyelesaian Masalah Carta Aliran

Mula Setkan Pembilang -> 0 Jumlah -> 0

Yes

Ada lagi data?

No

Gred berikutnya

Tambah Bilangan Pembilang + 1

Tambah jumlah gred Jumlah + Gred

Akhir

Setkan purata Jumlah / Pembilang

Paparkan purata gred

Akhir

Mohd Farid Jaafar JSM, FSKTM, UPM

17


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 JSM, FSKTM, UPM

18


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 JSM, FSKTM, UPM

19


Penyelesaian Masalah 8. Tukarkan carta alir di bawah kepada kod pseudo. a)

A T IF X > 100

X=0

F T IF Y > 250

X=0

F

B

b)

A T

F IF Age < 16

F

Charge = 5

T IF Age < 65

Charge = 7

Charge = 10

B

Mohd Farid Jaafar JSM, FSKTM, UPM

20


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 JSM, FSKTM, UPM

21

Bab2