Bab2 penyelesaian masalah

3,545 views
3,214 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,545
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
128
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bab2 penyelesaian masalah

  1. 1. BAB DUA: PENYELESAIAN MASALAHPENYELESAIAN MASALAH DIDALAM KEHIDUPAN SEHARIANManusia membuat keputusan setiap hari untuk menyelesaikan masalah yang berkaitan dengankehidupan seharian mereka. Setiap masalah yang dihadapi adalah berbeza-beza mengikutsituasi dan penyelesaiannya juga berlainan. Satu perkara yang sama ialah bagaimana masalahtersebut diselesaikan.Kitaran Pembangunan AturcaraUntuk membangunkan satu aturcara yang baik dan berkesan, kita hendaklah mengikutilangkah-langkah yang betul di dalam pembangunan aturcara. Enam langkah berikut merupakanasas dalam mereka bentuk aturcara yang dapat membantu menghasilkan output/hasil yangdikehendaki 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.
  2. 2. Penyelesaian Masalah3. 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 10JSM, FSKTM, UPM
  3. 3. Penyelesaian MasalahKAEDAH PENGATURCARAANTerdapat 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 MasalahApabila hendak menghantar surat, bilangan setem ditentukan berdasarkan bilangan jumlahsurat yang dihantar. Katakan, bagi setiap 5 pucuk surat, bilangan setem yang diperlukanialah 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 11JSM, FSKTM, UPM
  4. 4. Penyelesaian MasalahPenyelesaian maslah berikut boleh digambarkan dengan: Input Proses output (16) (formula) (4)Carta AliranCarta aliran mengandungi simbol geometrik yang dihubungkan oleh anak panah. Bagisimbol mewakili aktiviti bagi langkah yang akan dilaksanakan oleh program. Aktiviti akandilaksanakan 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 12JSM, FSKTM, UPM
  5. 5. Penyelesaian MasalahKekurangan:  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 AkhirPseudocodePseudocode ini lebih menyerupai aturcara daripada carta aliran dan bahasanya mudahdifahami kerana menggunakan bahasa pertuturan. Apabila Pseudocode ini siap, ianya lebihmemudahkan tugas untuk menterjemahkannya ke dalam bahasa Visual Basic. Berikut adalahcontoh Pseudocode:Mohd Farid Jaafar 13JSM, FSKTM, UPM
  6. 6. Penyelesaian MasalahProgram: 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:MULADO 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 invoisEND DOENDMohd Farid Jaafar 14JSM, FSKTM, UPM
  7. 7. Penyelesaian MasalahCarta HirarkiCarta hirarki juga dikenali sebagai Carta Struktur, Carta HIPO (Hierarchy plus Input-Process-Output), Carta Atas-Bawah atau Carta VTOC (Visual Table of Contents). Ia menggambarkanstruktur program secara keseluruhan, di mana Carta ini dipecahkan ke modul-modul. Carta hirarkiperlu dibaca bermula daripada atas ke bawah serta daripada ke kanan.Kebaikan:Apabila program yang besar dipecahkan kepada modul-modul, masalah dapat dilihat secaramenyeluruh. Modul ini kemudiannya akan diperincikan dengan menggunakan kaedah CartaAliran 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 NilaiMohd Farid Jaafar 15JSM, FSKTM, UPM
  8. 8. Penyelesaian MasalahContoh:Tajuk : Mengira purata gred pelajar bagi kursus SAK1110.AlgoritmaMasalah: 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 PelajarProses: 1) Mengira jumlah gred dan bilangan pelajar 2) Mengira purata gred: Jumlah gred / Bilangan PelajarOutput: Purata GredCarta Hirarki Mengira Purata Gred Pelajar Baca input Pengiraan Pamerkan purata gred Dapatkan Kira jumlah Kira jumlah Kira purata gred gred pelajar gred pelajarMohd Farid Jaafar 16JSM, FSKTM, UPM
  9. 9. Penyelesaian MasalahCarta 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 AkhirMohd Farid Jaafar 17JSM, FSKTM, UPM
  10. 10. Penyelesaian MasalahKod PseudoProgram: 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 purataContoh 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 tersebut2. 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 atas3. 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 18JSM, FSKTM, UPM
  11. 11. Penyelesaian Masalah4. 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 kepingMohd Farid Jaafar 19JSM, FSKTM, UPM
  12. 12. Penyelesaian Masalah8. 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 BMohd Farid Jaafar 20JSM, FSKTM, UPM
  13. 13. Penyelesaian Masalah9. 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 = .1b) 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 21JSM, FSKTM, UPM

×