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
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 />