29.01.2015 Views

1.0 Nota Penyelesaian Masalah - Md Yazid Mohd Saman

1.0 Nota Penyelesaian Masalah - Md Yazid Mohd Saman

1.0 Nota Penyelesaian Masalah - Md Yazid Mohd Saman

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Penyelesaian</strong> <strong>Masalah</strong> & Pengaturcaraan Komputer<br />

NOTA<br />

PEMBANGUNAN ALGORITMA & ARAHAN ASAS BAHASA C<br />

<strong>1.0</strong> PEMBANGUNAN ALGORITMA<br />

Dalam penyelesaian sesuatu masalah untuk komputer, pengaturcara perlulah menjalankan<br />

analisis dengan memahami kehendaknya @ keperluannya (requirement). Ini termasuk<br />

mengkaji apakah:<br />

a) data yang akan diolah<br />

b) proses (atau tindakan) penyelesaiannya.<br />

Data yang perlu dikenalpasti untuk penyelesaian terdiri dari data input dan data output.<br />

Kemudian, satu susunan tindakan langkah demi langkah (step by step actions) yang perlu<br />

diambil untuk menyelesaikan masalah tersebut perlu diperincikan. Analisis ini dilaksanakan<br />

sebelum pengaturcara mula menulis kod aturcara.<br />

Takrif: Algoritma (yang diserap dari nama Pemikir Islam bernama Alkhawarizmi) ialah<br />

satu penyelesaian masalah umum yang terdiri dari satu jujukan langkah atau tindakan.<br />

Setelah menjalankan analisis terhadap masalah yang sedang diselesaikan, pengaturcra akan<br />

membina penyelesaian yang umum dalam bentuk algoritma. Algoritma boleh dibina dalam<br />

dua kaedah:<br />

a) kod-pseudo (pseudo-code) : kod arahan untuk tindakan yang mirip kepada @<br />

menyerupai bahasa percakapan biasa (dan bukan arahan bahasa pengaturcaraan) yang<br />

menunjukkan aliran tindakan untuk menyelesaikan masalah.<br />

b) carta-alir (flow-chart) : satu rajah yang menunjukkan aliran tindakan untuk<br />

menyelesaikan masalah.<br />

Bentuk am kod-pseudo bagi algoritma yang akan digunakan dalam dokumen ini adalah seperti<br />

berikut.<br />

Algoritma<br />

Data input: <br />

Data output: <br />

Mula algoritma<br />

…<br />

<br />

…<br />

Akhir algoritma<br />

© <strong>Md</strong> <strong>Yazid</strong> <strong>Mohd</strong> <strong>Saman</strong> UMT 2010 1


<strong>Penyelesaian</strong> <strong>Masalah</strong> & Pengaturcaraan Komputer<br />

Berikut adalah beberapa contoh arahan kod-pseudo umum yang pengaturcara boleh gunakan.<br />

Ini mewakili tindakan utama yang komputer akan laksanakan.<br />

(i)<br />

(ii)<br />

(iii)<br />

(iv)<br />

(v)<br />

(vi)<br />

Pamer @ outputkan (Output)<br />

Baca @ inputkan (Input)<br />

Kira @ Proses (Proses)<br />

Jika syarat benar Proses (Pilih)<br />

Ulang Proses sebanyak N kali (Ulang-for)<br />

Ulang Proses sehingga syarat tidak benar (Ulang-while)<br />

Contoh algoritma untuk mengira dan mempamerkan hasil dharab dua nombor:<br />

Data input: dua nombor integer (n1, n2)<br />

Data output: hasil dharab<br />

Mula algoritma:<br />

i. Pamer @ cetak arahan@prompt untuk 2 nilai nombor (n1, n2)<br />

ii. Set nilai hasil = 0<br />

iii. Kira @ proses hasil = n1 * n2<br />

iv. Pamer @ cetak hasil<br />

v. Pamer @ cetak mesej akhir aturcara<br />

Akhir algoritma.<br />

<strong>Nota</strong>: Pencam hasil ialah satu pencam pembolehubah sementara (temporary variable) yang<br />

digunakan untuk pengolahan data.<br />

2.0 ARAHAN ASAS BAHASA C<br />

Bahasa C menyediakan beberapa arahan asas untuk pengaturcara membina aturcara C.<br />

Takrif: Aturcara ialah satu jujukan arahan untuk dilaksanakan oleh komputer<br />

secara otomatik.<br />

Setiap aturcara C++ terdiri dari satu koleksi fungsi. Salah satu fungsi yang mesti ada dalam<br />

setiap aturcara C++ dipanggil fungsi utama yang bernama main. Ia diikuti dengan<br />

tatatanda kurungan '()'. Ini kemudian diikuti dengan blok yang mengandungi pernyataan<br />

(atau arahan) untuk yang akan dilaksanakan oleh komputer. Blok pernyataan ini dikurungi<br />

dengan tatatanda ’{’ dan ’}’ (juga dinamakan pernyataan majmuk). Contoh:<br />

#include // fungsi library<br />

#include <br />

main()<br />

{<br />

Printf("Assalamu alaikum\n");<br />

printF("dan salam sejahtera untuk semua");<br />

}<br />

2.1 ARAHAN UMPUKAN<br />

© <strong>Md</strong> <strong>Yazid</strong> <strong>Mohd</strong> <strong>Saman</strong> UMT 2010 2


<strong>Penyelesaian</strong> <strong>Masalah</strong> & Pengaturcaraan Komputer<br />

Takrif: Arahan umpukan (assignment statement) adalah merupakan satu arahan<br />

asas untuk memberikan sesuatu nilai kepada sesuatu pencam.<br />

Aturcara C++ yang dibina oleh pengaturcara akan mengolah data yang tersimpan dalam ruang<br />

ingatan atau memori komputer. Dalam aturcara, data ini diwakili oleh pencam (identifier).<br />

Arahan umpukan akan memberikan sesuau nilai kepada sesuatu pencam. Contoh:<br />

a. jumlah = 0; // pencam jumlah diberi nilai 0<br />

b. terbesar = nos1; // pencam terbesar diberi nilai yang dipegang oleh pencam nos1<br />

c. kounter = kounter + 1; // setara dengan arahan: kounter++;<br />

d. potongan_harga = harga_asal - (harga1 + harga2)*0.2;<br />

2.2 ARAHAN INPUT & OUTPUT<br />

Contoh:<br />

Takrif: Pernyataan output (bernama printf) membolehkan sebarang nilai data<br />

dipamirkan (atau dicetak) sama ada di skrin komputer, pencetak atai lain-lain<br />

media untuk bacaan pengguna.<br />

i) printf("Selamat berpuasa");<br />

ii) printf("\nNilai x ialah %d", x);<br />

iii) printf("\nPurata bagi %d nombor = %f", bil, purata);<br />

Contoh:<br />

Takrif: Arahan input (bernama scanf) akan membolehkan sesuatu nilai dibaca<br />

(atau perolehi) dari media luar untuk sesuatu pencam dalam aturcara.<br />

i) scanf("%d", &bilData); // input nilai int<br />

ii) scanf("%d %d %d", &mar1, &mar2, &mar3); // input 3 data int<br />

iii) scanf("%d %f", &bilJam, &kadarSeJam); // input satu nilai int & satu float<br />

2.3 ARAHAN PILIHAN BERSYARAT (CONDITIONAL SELECTION STATEMENT)<br />

Takrif: Arahan pilihan bersyarat if membolehkan komputer memilih arahan<br />

yang perlu dilaksanakan dan ini bergantung kepada satu syarat.<br />

Selain dari arahan if, arahan switch juga disediakan oleh Bahasa C. Contoh :<br />

a. // laksana arahan jika nombor bernilai 1000<br />

// jika tidak abaikan dan tidak dilaksanakan<br />

if (nombor == 1000) // syarat – jika nilai nombor ialah 1000<br />

bil = bil + 1; // jika benar, laksana arahan ini<br />

b. // jika x lebih besar dari 100, laksana arahan pertama<br />

// jika tidak laksana arahan kedua<br />

if (x > 100) // syarat<br />

© <strong>Md</strong> <strong>Yazid</strong> <strong>Mohd</strong> <strong>Saman</strong> UMT 2010 3


<strong>Penyelesaian</strong> <strong>Masalah</strong> & Pengaturcaraan Komputer<br />

printf("\nNilai x ialah %d", x); // arahan pertama<br />

else<br />

y = y + x; // arahan kedua<br />

c. if (kounter < 10) // syarat<br />

{ // satu blok arahan<br />

kounter = kounter + 10;<br />

bil++; /* sama dengan bil = bil + 1; */<br />

}<br />

2.4 ARAHAN ULANGAN (LOOPING)<br />

Dalam penyelesaian sesuatu masalah, terdapat operasi yang perlu diluang. Terdapat dua arahan<br />

ulangan yang asas: for dan while<br />

Takrif: Arahan ulangan memberikan keupayaan untuk komputer mengulang<br />

satu atau lebih arahan berkali-kali.<br />

(i) Arahan for digunakan bagi pemprosesan yang mempunyai bilangan ulangan yang tetap<br />

(fixed loop). Contoh arahan ulangan.<br />

// cetak jadual ganda-2 dan ganda-3<br />

for (i = 1; i


<strong>Penyelesaian</strong> <strong>Masalah</strong> & Pengaturcaraan Komputer<br />

2. Pejabat Agama Islam Negeri memohon bantuan anda untuk mengira zakat simpanan wang<br />

sekumpulan orang. <strong>Nota</strong>: Zakat ialah cukai harta dalam Islam. Jika penyimpan telah menyimpan<br />

wang melebihi hadnya, iaitu berjumlah lebih (ini satu anggaran) RM 3000.00 selama sekurangkurangnya<br />

setahun, maka zakatnya ialah 2.5% dari jumlah wang yang tersimpan.<br />

3. Bina satu algoritma dan aturcara C untuk mengira nombor faktorial bagi sebarang nombor.<br />

Nombor faktorial bagi N ditakrifkan sebagai:<br />

Faktorial(N) = 1 x 2 x 3 x ... x (N-2) x (N-1) x N<br />

Contoh: Nilai faktorial 5 ialah 1 x 2 x 3 x 4 x 5 = 120. Jadi, apakah nilai faktorial bagi 3, 4 dan<br />

10 Katakan nilai N = 5, sampel outputnya ialah:<br />

Taip nilai N : 5<br />

Nilai faktorial 5 ialah = 120.<br />

4. Tuliskan satu aturcara C untuk membilang berapa kali nombor pertama di dalam satu senarai<br />

nombor berulang. Contohnya, jika diberikan data input:<br />

input: 3 8 7 1 3 3 0<br />

output: Nombor 3 berulang 2 kali.<br />

Pastikan algoritma anda memeriksa kaadaan apabila tiada data yang diberikan dengan<br />

mengeluarkan mesej yang sepatutnya. Gunakan satu nombor penutup (yang bukan data)<br />

sebagai data pengakhir senarai nombor input.<br />

5. Rujuk Soalan (4) di atas. Tuliskan satu aturcara untuk membilang berapa nombor yang<br />

LEBIH BESAR dan LEBIH KECIL dari nombor pertama dalam satu senarai input (seperti di<br />

dalam Soalan (6) di atas).<br />

6. Rekabentuk satu aturcara C yang akan membilang dan menjumlahkan nombor-nombor<br />

negatif dan nombor-nombor positif di dalam satu senarai nombor. Baca bilangan data terlebih<br />

dahulu. Contoh data ialah:<br />

Data input: bilangan data = 7<br />

3 -1 -2 1 4 5 -4<br />

Data output: Jumlah 3 nombor negatif ialah = -7<br />

Jumlah 4 nombor positif ialah = 13<br />

7. Anda mungkin pernah berjumpa dengan formula matematik berikut (dengan nilai x = 1 ke N):<br />

1 1 1 1 1 1 1<br />

y = ∑ --- = - + - + - + - + ... + ----- + -<br />

x 1 2 3 4 (N-1) N<br />

Tuliskan satu aturcara C untuk mengira nilai y bagi sebarang nilai N (nilai N perlu dibaca<br />

terlebih dahulu).<br />

© <strong>Md</strong> <strong>Yazid</strong> <strong>Mohd</strong> <strong>Saman</strong> UMT 2010 5


<strong>Penyelesaian</strong> <strong>Masalah</strong> & Pengaturcaraan Komputer<br />

8. Ubahsuai penyelesaian masalah anda untuk Soalan 1(c) untuk mengira potongan harga bagi<br />

satu jujukan harga barangan di Kedai MYZUN Sdn Bhd seperti berikut. Bilangan data diinputkan.<br />

Harga semasa % potongan<br />

< RM10.00 10%<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!