BAB DUA PENYELESAIAN MASALAH by gfi17626

VIEWS: 726 PAGES: 13

									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

								
To top