You are on page 1of 48

BAB 2 : Penyelesaian Masalah

& Pengenalan kepada


Pengaturcaraan

1
Pengenalan
 Aturcara komputer ?
 Set arahan yang diberikan kepada
komputer utk melaksanakan sesuatu
‘tugas’.
 Pengaturcaraan ?
 Proses membina aturcara.
 Mengapa aturcara dibina?
 Utk selesaikan masalah
2
Penyelesaian Masalah?
 Prosidur utk menentukan penyelesaian sesuatu
masalah dan menyatakannya kpd bentuk yg jelas

 Proses pembangunan perisian yang menggunakan


kaedah penyelesaian kejuruteraan dan sains =>
KEJURUTERAAN PERISIAN

3
Penyelesaian Masalah dgn
Komputer
 Ciri-ciri masalah yg boleh diselesaikan
oleh komputer:
 Boleh diwajarkan – mudahkan kerja,
jimatkan kos, tambah pengetahuan.
 Boleh didefinasikan – Penyelesaiannya
terhingga, jelas
 Berulang – masalah rutin (kira gaji pekerja)
 Data yang banyak – data pekerja

4
Langkah Penyelesaian
Masalah oleh Kejuruteraan
Perisian
1. Spesifikasi keperluan
2. Analisa masalah
3. Rekabentuk
4. Pengkodan & pelaksanaan
5. Penentusahan & Pengujian
6. Penyelenggaraan

5
Spesifikasi Keperluan
 Memahami masalah & persekitaran
masalah yg hendak diselesaikan.
 Tentukan keperluannya
 Andaian2 juga perlu dilakukan utk
memastikan skop masalah.
 Contoh masalah : membuat kopi

6
Analisa Masalah
 Mengkaji/menganalisa spesifikasi
masalah dgn terperinci.

 3 elemen utama yg perlu di kenal pasti:


 input masalah
 Output masalah
 proses

7
Analisa Masalah
 Input Masalah
 Tentukan data/ maklumat yg diperlukan
bagi menyelesaikan masalah tersebut.
 Tentukan formatnya – input melalui apa?
Keyboard, fail atau hasil pengiraan

8
Analisa Masalah
 Output Masalah
 Tentukan apakah output/ hasil yang
dikehendaki daripada aturcara.
 Tentukan formatnya

9
Analisa Masalah
 Proses
 Analisa apakah proses yang dilalui oleh
input utk menghasilkan output
 Kekangan dan andaian
 Contoh – formula, teknik

10
Rekabentuk
 2 tugas utama :
 memilih struktur yg sesuai utk menyusun &
menyimpan data dalam proses penyelesaian
masalah.
 Jujukan, pilihan, gelung
 merekabentuk algoritma utk memproses input
& mengeluarkan output.
 Algoritma – set langkah2/ prosedur bagaimana proses
utk menyelesaikan masalah dilaksanakan

11
Pengkodan & Perlaksanaan
 Proses melaksanakan algoritma yg
direkabentuk ke dlm bahasa
pengaturcaraan tertentu (dlm kelas ini
bhs C).
 Perlu tahu sintaks sesuatu bahasa

12
Penentusahan & Pengujian
 Utk menentukan aturcara yg dihasilkan betul.
 Pengujian perlu dilakukan dgn memberi input
& memeriksa output sama ada output yg
betul dikeluarkan dari aturcara yg ditulis.
 3 jenis ralat yang boleh dikenalpasti:
 Ralat rekabentuk: berlaku dalam fasa2 sebelum
 Ralat sintaks: dikesan semasa proses
pengkompilan (compilation)
 Ralat masa larian (run-time error): dikesan
semasa aturcara dilaksanakan oleh komputer

13
Penyelenggaraan
 Melibatkan perubahan/pengubahsuaian
aturcara bila sesuatu keperluan atau
syarat berubah.
 2 jenis:
 Sedikit pengubahsuaian
 Banyak pengubahsuaian => perlu aturcara
baru => lakukan semula dari langkah 1.

14
Algoritma & bagaimana
menghasilkannya
 Algoritma
 Cara dan langkah yang perlu dilakukan bagi
menyelesaikan masalah.
 Dalam fasa rekabentuk.
 Tiada algoritma tiada aturcara  tiada
penyelesaian.
 Tidak bergantung kepada bahasa
pengaturcaraan.

15
Algoritma & bagaimana
menghasilkannya
 Apa yg perlu ada dalam algoritma
 input
 output
 tidak mengelirukan/ringkas/mudah
 dlm bentuk umum - boleh difahami semua
golongan pembaca yg berkeperluan
 tepat utk menyelesaikan masalah
 terhingga - ada kesudahan
 cekap

16
Kaedah mengungkap
algoritma

 Carta alir
 Kod Pseudo
 Gambarajah N-S
 Jadual aksi
 Mesin keadaan terhingga

17
Kaedah Kod Pseudo
 Jujukan langkah yg ditulis menggunakan
bhs tabii
 Setiap baris kod pseudo mewakili satu
langkah yang dilaksanakan sekali shj.
 2 jenis
 Kenyataan bahasa
 Kenyataan bahasa yg menyerupai bahasa
pengaturcaraan.

18
Kod Pseudo 1– Kenyataan
bahasa
 dlm bahasa tabii & tidak mempunyai peraturan yg
khusus.
 Nombor diberikan kepada jujukan langkah => tertib
perlaksanaan langkah2 mengikut nombor yg ditulis.
 Contoh : algoritma untuk menyediakan secawan kopi
1. masak air
2. masukkan kopi dalam cawan
3. jika perlu gula
3.1 tambahkan gula
4. jika perlu krim
4.1 tambahkan krim
5. masukkan air panas ke dalam cawan

19
Kod Pseudo 1– Kenyataan
bahasa
 Sesuai utk masalah yg mudah krn tiada jujukan &
struktur yg kompleks.
 A) struktur jujukan B) struktur pilihan
1. Mula n. jika syarat
2. Langkah_1 n.1. Langkah_n.1
: :
n. Langkah_n n.n. Langkah_n.n
n+1. tamat
 C) sturktur ulangan D) struktur lompat
n. pergi langkah sblm n n. pergi langkah slps n
20
Kod Pseudo 2– Kenyataan
bahasa menyerupai bhs
pengaturcaraan
 dlm bahasa Inggeris mudah yg hampir
menyerupai bahasa pengaturcaraan
 Tertib perlaksanaan langkah2 mengikut
aturan langkah2 itu ditulis.
 Tertib perlaksanaan langkah2 boleh dikawal
dgn menggunakan beberapa struktur
kawalan.

21
Kod Pseudo 2– Kenyataan
bahasa menyerupai bhs
pengaturcaraan
 Kata-kunci digunakan utk menjelaskan struktur2 kawalan ini.
 A) struktur jujukan B) struktur pilihan
begin if syarat then
Langkah_1 bahagian benar
: else
Langkah_n bahagian tak benar
Endendif
 C) sturktur ulangan
While syarat do
Bahagian yg perlu diulang
Atau
Repeat n kali
Bahagian yg perlu diulang

22
Kod Pseudo 2– Kenyataan
bahasa menyerupai bhs
pengaturcaraan
 Kod pseudo menyediakan secawan kopi
 masak air
 masukkan kopi dalam cawan
 if perlu_gula then
 tambahkan gula
 endif
 if perlu_krim then
 tambahkan krim
 endif
 masukkan air panas ke dalam cawan

23
Penghalusan berlangkah
algoritma
 Algoritma ditulis bermula dari langkah-langkah
umum.
 langkah2 umum ini dihalusi sedikit demi sedikit
sehingga menghasilkan langkah2 yg lebih spesifik.
 Contoh (langkah masak air )
 Masak air  isi air ke dlm cerek
nyalakan api
repeat
tunggu
until air_mendidih

24
Kaedah Carta alir
 Carta alir terdiri dari kotak/simbol berbagai bentuk
yang menunjukkan operasi yg perlu dilakukan dan
anak-panah yg menyatakan jujukan operasi
tersebut.
 Simbol cartalir
 terminal (mula, tamat)
 proses (umpuk nilai, operasi
aritmetik dan sebarang proses)
 Input/ output

25
Kaedah Carta alir
 Cetakan dokumen

 Keputusan

 Gelung (FOR)

 Penyambungan pd muka ssama

 Penyambungan pd muka lain

 Subrutin/ fungsi
26
Contoh Carta alir (membuat
kopi)

disediakan oleh Pn Suriati bte


Sadimon, GMM, FSKSM, UTM
2005 27
Carta alir vs kod pseudo2
Struktur jujukan :-
Langkah 1 Langkah 2
Begin
Langkah 1
Langkah 2
End
Struktur pemilihan :-
If syarat then tidak ya
syarat
bahagian_benar
Else
bahagian_salah Bhg_salah Bhg_benar
endif

28
Carta alir vs kod pseudo2
Struktur ulangan ya
 while syarat do syarat Bhg yg diulang
 bhg_yg_perlu diulang tidak
 Endwhile

 repeat Bhg yg diulang


 bhg_yg_perlu diulang
 until syarat ya
syarat

tidak

29
Contoh Penyelesaian masalah
& Algoritma
 Bina aturcara yg menerima sepasang
nombor dan mencetak mesej “SAMA” jika
dua nombor tersebut mempunyai nilai yang
sama, mesej “NO. PERTAMA LEBIH BESAR”
jika nombor pertama lebih besar daripada
nombor kedua dan mesej “NO. KEDUA
LEBIH BESAR”, jika nombor kedua lebih
besar daripada nombor pertama.
30
Contoh Penyelesaian masalah
& Algoritma
 Fasa : Analisa masalah
 Input
 Media : keyboard
 Data : 2 nombor -> no1 dan no2
 Output
 Media : skrin
 Hasil : “SAMA”, “NO PERTAMA LEBIH BESAR”,
“NO KEDUA LEBIH BESAR”.
 Proses
 bandingkan 2 nonbor & tentukan output

31
Contoh Penyelesaian masalah
& Algoritma
 Fasa : Rekabentuk
 Kod Pseudo 1
 1. Mula
 2. Baca nom1, nom2
 3. Jika nom1=nom2
 3.1. cetak mesej "SAMA"

 3.2. pergi ke langkah 6

 4. Jika nom1>nom2
 4.1. cetak mesej "NOMBOR PERTAMA LEBIH BESAR"

 4.2. pergi ke langkah 6

 5. Jika nom1<nom2
 5.1. cetak mesej "NOMBOR KEDUA LEBIH BESAR"

 5.2. pergi ke langkah 6

 6. Tamat

32
Contoh Penyelesaian masalah
& Algoritma
 Fasa : Rekabentuk
 Kod Pseudo 2
Begin
Baca nom1, nom2
if nom1=nom2 then
cetak mesej "SAMA"
Else
if nom1>nom2 then
cetak mesej "NOMBOR PERTAMA LEBIH BESAR"
else
cetak mesej "NOMBOR KEDUA LEBIH BESAR"
end

33
Contoh Penyelesaian masalah
& Algoritma
 Fasa : Rekabentuk
 Carta alir

disediakan oleh Pn Suriati bte


Sadimon, GMM, FSKSM, UTM
2005 34
Proses menyediakan aturcara
 Langkah 1 : Definisi masalah dan spesifikasi
keperluan

 Daripada jejari yang diberikan, kira luas bulatan dan ukur


lilit bulatan tersebut.

35
Proses menyediakan aturcara
 Langkah 2 : Analisa Masalah
 Input

 Media : papan kekunci

 Data : jejari

 Output

 Media : skrin

 Data : luas, ukurlilit

 Proses

 Formula luas = PIx Jejari 2

 Formula ukurlilit = 2 x PI x Jejari

 PI = 3.14

36
Proses menyediakan aturcara
 Langkah 3 : Rekabentuk
 Kod pseudo

1. Mula

2. Baca jejari bulatan

3. Kira luas bulatan, PI x jejari x jejari

4. Kira ukurlilit bulatan, 2 x PI x jejari

5. Cetak luas dan ukurlilit bulatan

6. tamat

37
Proses menyediakan aturcara
 Langkah 3 : Rekabentuk
 Carta alir

disediakan oleh Pn Suriati bte


Sadimon, GMM, FSKSM, UTM
2005 38
Proses menyediakan aturcara
 Sblm ke langkah 4, uji cartalir /algoritma dgn
beberapa contoh data --- utk mengelakkan ralat
logik
 Langkah 4 : Pengkodan dan perlaksanaan

Langkah 5 & 6 : Taip aturcara dan uji aturcara


serta lakukan perubahan 39
Contoh-contoh lain

40
Contoh 1
Masalah :
Tuliskan aturcara untuk mengira luas
segiempat

PENYELESAIAN:
Fasa spesifikasi keperluan
- hardware, software
- persekitaran masalah.

41
Contoh 1
Fasa analisa masalah:
 Input : -
 Media – keyboard
 Data – panjang, lebar.
 Output:-
 Media – skrin
 Data – luas.
 Proses –
 Darabkan panjang dengan lebar

42
Contoh 1
Fasa rekabentuk:
Algoritma – kod pseudo:
1. Mula
2. Baca 2 nilai - Panjang, Lebar
3. Luas = Panjang * Lebar
4. Cetak Luas
5. Tamat
43
Contoh 1
Fasa rekabentuk:
mula
Algoritma – cartalir:
Panjang, lebar

Luas = panjang x lebar

luas

tamat
44
Contoh 2
 SOALAN:
Tulis aturcara yang akan menerima input
markah 2 orang pelajar dan mencetak
mesej “SAMA” jika 2 markah tersebut
mempunyai markah yang serupa, mesej
“LULUS” jika markah lebih besar dari 50
dan mesej “GAGAL” jika markah kurang
dari 50.

45
FASA : ANALISA MASALAH
Input:
Media : papan kekunci
data :
Markah pertama (mark1) &
Markah kedua (mark2)
Output:
Media : skrin
data :
“SAMA" , “LULUS"
“GAGAL"
Proses:
Bandingkan 2 markah & tentukan output

46
FASA: REKABENTUK
Kod pseudo I Kod pseudo II
1. Mula
2. Baca mark1, mark2 begin
3. Jika mark1=mark2 Baca mark1, mark2
3.1. cetak mesej "SAMA" if mark1=mark2 then
cetak mesej "SAMA"
4. Jika mark1>50 if mark1>50
4.1. cetak mesej “LULUS" cetak mesej “LULUS"
4.2. pergi ke langkah 6 else
5. Jika mark1<50 cetak mesej “GAGAL"
5.1. cetak mesej “GAGAL" endif
5.2. pergi ke langkah 6 if mark2>50
6. Jika mark2>50 cetak mesej “LULUS"
6.1. cetak mesej “LULUS" else
6.2. pergi ke langkah 8 cetak mesej “GAGAL"
7. Jika mark2<50 endif
7.1. cetak mesej “GAGAL" endif
7.2. pergi ke langkah 8 end
8. Tamat
47
BEGIN

CARTA READ MARK1,


MARK2
ALIR
YA
“SAMA” MARK1=MARK2

TIDAK
YA
“LULUS” MARK1>50 “GAGAL”
TIDAK

YA MARK2>50
“LULUS” “GAGAL”
TIDAK

END

48

You might also like