Anda di halaman 1dari 81

MODUL PROGRAMMING SEMESTER 2

01. PENGENALAN KEPADA PENGATURCARAAN (PROGRAMMING)


A) Apa itu program computer (computer program)

- Program computer juga dikenali sebagai perisian.


- Ia merupakan satu siri arahan untuk mengarah computer menlaksanakan sesuatu tugasan.

Contoh : Perisian Microsoft word merupakan satu contoh program computer – yang
berfungsi untuk pengeditan teks atau penulisan teks.

Latihan :
Dengan contoh yang sesuai, terangkan apa yang anda faham dengan program computer.

**********************************************************************************
***

B) Perbezaan antara lima Generasi Bahasa pengaturcaraan (programming Language )

 Apa itu bahasa aturcara ?


o Bahasa yang digunakan untuk menulis arahan-arahan komputer untuk mengarah
komputer melakukan sesuatu tugasan.
 Bahasa aturcara ini ditulis oleh pengaturcara (programmer), juga dipanggil sebagai
pembangun sistem atau program.
 Kepentingan bahasa pengaturcaraan
o Membolehkan pengaturcara berkomunikasi dengan arahan komputer.
o Membolehkan pengaturcara mengawal operasi komputer.
o Membolehkan pengaturcara mengarah komputer melaksanakan sesuatu tugas
 Bahasa pengaturcaraan boleh dibahagi kepada :
o Bahasa pengaturcaraan aras rendah
o Bahasa pengaturcaraan aras tinggi.
 Semakin rendah suatu aras bahasa pengaturcaraan semakin sukar untuk dipelajari.
 Bahasa pengaturcaraan rendah terbahagi kepada dua generasi bahasa iaitu bahasa aturcara
generasi pertama dan kedua manakalan bahasa aturcara aras tinggi terdiri daripada bahasa
aturcara generasi ketiga, keempat dan kelima.

1
MODUL PROGRAMMING SEMESTER 2

Aras Bahasa Keterangan Contoh


Bahasa Generasi  Bahasa Mesin adalah  Contoh Binari kod :
Pertama bahasa aturcara generasi 1100100010001100
pertama yang di tulis
dalam bentuk kod binari
(binary code)
 Setiap pernyataan
bertanggungjawab
melaksanakan satu
tidakan mesin.
 Susah di baca oleh
manusia, hanya mereka
yang tahun tentang
bahasa aturcara bahasa
mesin.

Bahasa Generasi  Bahasa aturcara generasi


Kedua kedua adalah bahasa
himpunan (assembly
language).
 Bahasa aturcara yang
boleh dibaca oleh
manusia untuk bahasa
nesin yang digunakan
untuk mengawal operasi
komputer yang khusus.
 Menggunakan tatatanda
(notasi)
 Menggunakan arahan
dalam bentuk simbolik
yang meringkaskan
makna dan untuk tujuan
diingat.
 Program penghimpunan
digunakan untuk
menterjemahkan bahasa
himpunan kepada bahasa
mesin.

2
MODUL PROGRAMMING SEMESTER 2

Bahasa Generasi  Bahasa aturcara generasi


ketiga ketiga menggunakan
bahasa prosedural
(procedural language)
 Di kategori dalam bahasa
aras tinggi.
 Menggunakan satu seri
bahasa inggeris seperti
perkataan,
 Kesan : mengatasi
masalah manusia susah
menulis bahasa aturcara.
 Bahasa ini membolehkan
bahasa aturcara yang
komplek senang dibaca ,
ditulis dan diselenggara
oleh pengaturcara.
 Bahasa ini perlu di
tukarkan menjadi bahasa
mesin menggunakan
kaedah Kompilan atau
interpreter (pentaksiran).  Contoh Bahasa 4GL : Pascal, fortran,
 Di kategorikan dalam Basic, Cobol, C and C++
bahasa aturcara aras
tinggi.
 Perlu diterjemah ke
dalam bahasa mesin.

Bahasa Generasi  Bahasa aturcara arah


Kemepat tinggi.
 Bahasa bukan bahasa
prosedural (non-
procedural)
 Membolehkan pengguna
mencapai data dalam
pangkalan data.
 Bahasa ini terhad kepada
aplikasi khusus yang
menggunakan sintak yang
tidak digunakan oleh
bahasa aturcara lain.
 Contoh bahasa ini : SQL, NOMAD
and FOCUS.

3
MODUL PROGRAMMING SEMESTER 2

Bahasa Generasi  Membekal antara muka


Kelima visual, menyenangkan
penggunanya.
 Membolehkan manusia
tidak perlu mengingat
arahan-arahan komputer.
 Pengguna tidak perlu
mengingat simbol2 atau
arahan aturcara
 Menggunakan bahasa
semulaja (Natural
language) seperti bahasa
inggeris biasa untuk
menulis aturcara.

Contoh Perisian : prolog dan Mercury

**********************************************************************************
***

C) Perbezaan di antara bahasa penterjemahan ( language translators) : Himpunan (assemblers)


Kompiler (compilers) and Pentaksiran (interpreters)

-Terdapat tiga jenis bahasa penterjemahan (language translators), iaitu

a. Himpunan
 Menterjemah bahasa himpunan terus kepada bahasa mesin

b. Kompiler
 Kompiler adalah program komputer (perisian Komputer) yang menterjemah
tulisan dalam bentuk teks ke dalam bahasa mesin.
 Kompiler (Pengkompilan) menterjemahkan bahasa aras tinggi kepada bahasa
aras rendah seperti bahasa mesin atau bahasa himpunan.
 Menukarkan keseluruhan sumber kod program ke dalam bahasa mesin sebelum
dilaksanakan.
 Menterjemah keseluruhan kod sumber pada satu masa sebelum ia dilaksanakan.
 Hasil pengkompilan adalah bahasa mesin dan kod objek akan terhasil.
 Kelebihan: Program yang dihasil dilarikan dengan sangat cepat.

4
MODUL PROGRAMMING SEMESTER 2

c. Pentaksiran

 Menukarkan bahasa aturcara aras tinggi kepada bahasa aturcara aras rendah.
 Menterjemahkan dan malaksanakan kod sumber satu baris demi baris dalam
masa yang berbeza.
 Tiada kod Objek disimpan/dihasilkan semasa proses pentaksiran.
 Kelemahan : Lambat.

5
MODUL PROGRAMMING SEMESTER 2

02 ASAS BAHASA PENGATURCARAAN C


A) PERSEKITARAN PEMBANGUNAN PROGRAM C (C Program Development Environment )

-Persekitaran Pembangunan program C boleh terbahagi kepada enam fasa; iaitu


a. Fasa Edit
b. Fasa Pra-proses (pre-process)
c. Fasa pengkompianl (compile)
d. Fasa pempautan (link)
e. Fasa pemuat an(load)
f. Fasa Laksana (execute)

-Fasa-Fasa Persekitaran Pembangunan Program C.

Fasa Keterangan
Fasa Edit  Proses menggunakan perisian penyunting (Editor)
seperti Turbo C untuk menaip kod aturcara dan
menghasilkan program C.
 Aturcara yang ditulis akan disimpan dalam storan
terutamanya storan skunder seperti hardisk.
 Aturcara ini disimpan dengan nama yang sesuai dan
penghujungnya disambung dengan .c
 Contoh : kira.c
Fasa Pra-proses  Fasa ini dilaksanakan sebelum fasa pengkompilan.
(pre-process)  fasa dimana program memproses kod aturcara
sebelum di hantar ke proses pengkompilan.
 Operasi ini dikawal oleh perintah-perintah dan arahan-
arahan khas prapemprosesan.
 Arahan-arahan prapemprosesan akan menggantikan
kod sumber sebelum dihantar ke fasa pengkompilan.
 Arahan prapemprosesan akan mengikut peraturan
sintaks khas pengaturcaraan C.

Fasa pengkompianl  mengkompil aturcara yang ditulis dalam fasa satu


(compile) kepada bahasa yang boleh dibaca oleh CPU.
 Hasil fasa 2 iaitu fasa prapemprosesan akan dikompil
iaitu diterjemahkan bahasa aturcara C (bahasa
aturcara aras tinggi) kepada bahasa mesin.
 Hasil pengkompilan akan menghasilkan kod objek
Fasa pempautan (link)  Fasa keempat dippanggil sebagai pempautan.
 Program C lazimnya mengandungi rujukan-rujukan
yang berfungsi mengenalpasti definisi seperti yang
terdapat dalam piawaian perpustakaan.
 Pempautan akan mempautkan fungsi-fungsi yang
terlibat dalam kod objek

6
MODUL PROGRAMMING SEMESTER 2

Fasa pemuat an(load)  Fasa kelima adalah fasa pemuat.


 Sebelum program dilaksanakan. Program perlu
ditempatkan dalam memori komputer.
 Pemuat akan mengambil kod objek dalam disk dan
transfer ke dalam memori.
Fasa Laksana (execute)  Fasa pelaksanaan arahan demi arahan oleh komputer
di bawah kawalan CPU.

B) JENIS RALAT DALAM PENGETURCARAAN (TYPES OF PROGRAMMING ERROR)

-terdapat tiga jenis ralat dalam pengaturcaraan C. iaitu :

a. Ralat masa lari (runtime error)


b. Ralat Sintak (Syntax Error)
c. Ralat Logik (Logic Error)

-Ralat Runtime
 Merujukkan ralat yang berlaku semasa melaksanakan suatu program aturcara.
 Ralat ini mungkin disebab tidak cukup memori dalam system semasa
melaksanakan proses kompilan.
-Ralat Sintak
 Merujuk kepada ralat yang berlaku disebabkan kesalahan kod ejaan dan
penggunaan simbol-simbol.
 Contoh : pritf à printf atau Printf à printf

-Ralat Logik

 Merujuk ralat yang berlaku disebabkan penggunan operasi atau logik yang salah
atau silap.
 Operasi yang dimaksud ialah operasi matematik dalam aturcara C.
 Contoh : dalam pengiraan purata
o Purata=a+b+c/3 à purata=(a+b+c)/3
o Umur<34

7
MODUL PROGRAMMING SEMESTER 2

C. STRUKTUR PROGRAM C

• Struktur Program C boleh dibahagikan kepada

– Komen/Tajuk

– Arahan Prapemproses (preprocessor directives)

– Pengisytiharaan. (Global dan Local)

– Blok Fungsi Utama

– Block Sub-sub Fungsi lain

//Nama : Chee Yeong Shing


Komen/tajuk
/* Kelas : 6 Atas Siber */

#include<stdio.h> Arahan Pra-pemproses

int purata; Penyisytiharan (Pembolehubah global)


void main()
{
int a,b;

a=30; Penyisytiharan (Pembolehubah local (setempat))


Blok
Fungsi b=40;
Utama
kiraPurata(a,b);

printf(“PURATA = %d”,purata);

Int kiraPurata(int a,int b)

{
Blok
Sub purata=(a+b)/2
Fungsi
return purata

8
MODUL PROGRAMMING SEMESTER 2

• Komen/Tajuk

– Merujuk kepada pendokumentasian dalaman

– Digunakan untuk mencatat nama pembangun, tujuan projek, formula-formula yang


digunakan dan untuk rujukkan pengaturcara yang lain.

– Komen ini akan diabaikan semasa proses pengkompilan.

• Arahan Prapemproses (preprocessor directives)

– Merujuk kepada arahan pra pemproses yang perlu dilaksanakan sebelum


dikompilkan.

– Biasanya terdapat dua arahan pra-pemproses yang selalu digunakan :

• Arahan #include

• Arahan #define

• Pengisytiharaan. (Pembolehubah Global dan Local)

– Penyisytiharan pembolehubah boleh dibahagikan kepada pemboleh ubah global dan


pemboleh ubah setempat.

– Pembolehubah global ialah pembolehubah yang boleh diguna oleh semua blok
fungsi.

– Pemboleh ubah setempat ialah pemboleh ubah yang hanya digunakan untuk blok
fungsi tersebut sahaja.

• Blok Fungsi Utama

– Merujuk kepada fungsi utama suatu aturcara.

– Bermula dengan main() dan diikuti dengan { dan }.

– Anatara { dan } terdapatnya isi kandungan aturcata.

• Block Sub-sub Fungsi lain

– Merujuk blok fungsi lain yang dibina oleh pengguna.

– Bermula dengan nama fungsi() dan diikuti dengan { dan }.

– Sub fungsi ini boleh dipanggil dalam fungsi utama.

9
MODUL PROGRAMMING SEMESTER 2

D. ARAHAN PRA-PEMPROSES (PRE-PROCESS DIRECTIVES)


 Masih ingatkah arahan pra-pemproses ini berada pada fasa mana dalam fasa pembangunan
persekitaran pengeturcaraan C. Ya…fasa yang kedua iaitu fasa pra-pemprosesan.
 Dalam fasa ini, arahan-arahan pra-pemproses akan dilaksanakan sebelum proses pengkompilan
kod sumber dilaksanakan.
 Arahan-arahan pra-pemproses ini terdiri daripada :
o Arahan #include<fail kepala>

 digunakan untuk menggabungkan fail luaran ke dalam satu


aturcara sumber/punca dgn memanggil fail pengepala (namafail.h)

 format penulisan arahan #include adalah seperti berikut :

#include<fail pengepala>

Contoh : #include<stdio.h> **stdio.h merujuk kepada fail


kepala (header file) .

**bila kita isytiharkan #include<stdio.h> semasa proses pra-


pemprosesan arahan pra-pemproses #include akan
mendapatkan fail kepala “stdio.h” daripada perpukataan C,
kemudian memasukkannya ke dalam fail perantara aturcara C.
fail kepada “stdio.h” diperlu untuk kegunaan fungsi printf() atau
scanf().

 Terdapat dua jenis fail kepada; iaitu fail kepada standard yang terdapat
dalam perpustakana C (Library C) dan fail kepala yang ditulis oleh
pengguna.

10
MODUL PROGRAMMING SEMESTER 2

o Arahan #define namaMakro/Fungsi pemalar/rentetan/formula


 Format penulisan adalah seperti berikut :

#define namaMakro/Fungsi pemalar/rentetan/formula

 Fungsi:

 untuk mengisytiharkan pemalar

o contoh: #define faedah 0.15

 untuk pentakrifan fungsi yang mudah

o contoh : #define kiraLuasSegiempat(L,P) L*P

 untuk penukaran rentetan

o contoh : #define ayat1 “MALAYSIA”

 Perhatian : tanda “;” tidak perlu ditambah pada akhir pemalar.

o Contoh :

Kod Aturcara C Hasil Output

#include<stdio.h>
#define teks “LUAS SEGIEMPAT : %d”
#define luas(L,P) L*P

int main()
{
int luas;
int panjang=12;
int lebar=10;

luas=luas(panjang,lebar);

printf( teks,luas); LUAS SEGIEMPAT : 120

return 0;
}

11
MODUL PROGRAMMING SEMESTER 2

E.PERKATAAN SIMPANAN BAHASA C ( C language Reserved Words


)
 Kata simpanan adalah kata yang mempunyai makna khas dalam bahasa C dan tidak boleh
digunakan untuk tujuan lain. Contohnya kita tidak boleh mengisytiharkan pembole ubah
menggunakan kata simpanan.
 Semua kata simpanan muncul dalam huruf kecil.
 Contoh-contoh kata simpanan yang terdapat dalam bahasa C :

char , int, float, double, case, auto, continue, default, do, else, if, entry, enum, extern, for
goto, long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned,
void, while

F. JENIS-JENIS DATA DALAM BAHASA C.


 Terdapat tiga jenis data dalam bahasa aturcara C, iaitu
o Jenis Data integer (int)
o Jenis Data Aksara (char)
o Jenis Data Nyata
 Jenis Data Integer
o Jenis data integer ini menggunakan simbol “int”.
o Jenis data integer ini terdiri daripada nombor negetif (contoh : -77,-90) dan nombor
positif (contoh : 78,123).
o Saiz sel ingatan bagi jenis data “int” adalah berbeza bergantung kepada system
computer.
 Jenis Data Aksara
o Jenis data ini menggunakan symbol “char”.
o Jenis data aksara digunakan untuk mewakili aksara seperti:
 Huruf (contoh : huruf kecil a…..z atau huruf besar A…..Z).
 Digit (contoh : 102 nombor bilik, 0138937110 nombor telefon) ** digit tidak
mempunyai nilai, ia berbentuk symbol sahaja. Nombor mempunyai nilai.
 Simbol khas seperti %, # , @ dan lain-lain.
o Aksara boleh ditukar kepada suatu nilai integer.
o Kita juga boleh melakukan perbandingan symbol aksara dengan menggunakan
operator sama dengan (= =) atau tidak sama dengan (! = ).
 Jenis Data Nyata
o ANSI C (American national Standard Institute) menakrifkan tiga jenis data yang boleh
digunakan untuk menipulasi nombor nyata, iaitu
 float
 double
 long double
o Jenis data ini boleh menyimpan nilai nyata seperti 0.001, 2.0 dan 3.14159.
o Pilihan penggunaan jenis data bergantung kepada julat nombor yang ingin diwakili.
o Jenis data float saiz bait = 4, double saiz bait 8 dan long double saiz bait = 16.

12
MODUL PROGRAMMING SEMESTER 2

PENGISYTIHARAN PEMBOLEHUBAH (VARIABLE DECLARATION)

a) Nama Pembolehubah
 Pemboleh ubah adalah satu contoh pengecam.
 Untuk mengisytihar pembolehubah perlu kenalpasti nama dan jenis data yang
diwakili.
 Pemboleh ubah yang sebagai pengecam boleh ditakrifkan oleh pengguna.
 Nama pembolehubah yang diisytihar perlu :
i. Sesuai (makna sesuai dengan apa yang diwakili olehnya. Contoh kalau
pembolehubahnya berkaitan dengan panjang mesti pilih nama yang sesuai
untuk mewakili panjang)
ii. Mudah difahami
 Nama ini digunakan untuk menamakan ruang ingatan yang menyimpan
pembolehubah tersebut.

Panjang

Ruang Ingatan komputer

b) Peraturan Menamakan Pembolehubah


 Adalah seperti berikut :
i. Nama pembolehubah terdiri daripada huruf, digit dan aksara simbol
ii. Nama pembolehubah tidak boleh mula dengan digit.

6panjang; - tidak boleh digunakan sebab mula dengan digit.

iii. Kata simpanan C tidak boleh digunakan sebagai nama pemboleh ubah.

Contoh kata simpanan C yang tidak boleh digunakan : int, float, double…dll
 Panjang Nama pembolehubah hanya boleh sehingga 31 aksara sahaja. Jika panjang
lebih daripada 31, maka aksara ke 32 ke atas tidak lagi diambil kira.
 Contoh-contoh nama pembolehubah yang sah/betul adalah seperti berikut :

Jumlah1 jumlah_purata jumlahPurata _jumlah

13
MODUL PROGRAMMING SEMESTER 2

 Bagi menamaka pembolehubah yang menggunakan dua perkataan. Cara berikut


boleh digunakan : contoh menamakan luas segitiga :

luasSegitiga luas_segitiga

 Huruf pada nama pembolehubah adalah kes sensitif maknanya huruf besar dan
huruf kecil yang digunakan adalah dianggap berbaza

Contoh : a berbeza dengan A jumlah berbeza dengan JUMLAH


Jumlah Jumlah JUMLAH jumLah JumlaH

c) Jenis-jenis Pembolehubah
 Pembolehubah boleh mewakili berbagai jenis data.
 Jenis data yang digunakan akan menentukan jenis pembolehubahnya.
 Jadual dibawah menunjukkan jenis data asas yang digunakan dalam bahasa C:

Jenis Data Tafrifan

Aksara char

Integer int

Nombor Nyata float

Nombor Nyata dengan double


kepersisan tinggi

 Apabila suatu pembolehubah mempunyai jenis data integer, bermakna


pembolehubah tersebut akan mewakili data jenis integer.
 Terdapat juga jenis data tambahan yang menggunakan penerang (qualifier).
Biasanya penarang ini disimpan di depan jenis data .
 Contoh penerang yang digunakan adalah unsigned, signed, short, long, unsigned
short, signed short dan sebagainya;

signed short int

penerang jenis data

d) Pengisytiharan Pembolehubah

 Fungsi pembolehubah adalah untuk digunakan untuk menyimpan data input dan
hasil pengiraan atau manipulasi logik.
 Nilai yang simpan boleh berubah sepanjang pelaksanaan aturcara.
 Format pengisytiharan pemboleh ubah adalah seperti berikut :
i. Jenis data + pembolehubah + ;

Int panjang;

14
MODUL PROGRAMMING SEMESTER 2

ii. Penerang + jenis data + pembolehubah + ;

Long int panjang;

 Contoh pengisytiharan pembolehubah jenis integer

Int panjang; int luas_segiempat

 Contoh pengisytiharan pembolehubah jenis nombor nyata

float tinggi;

 Contoh prngytiharan pembolehubah jenis data akasara

char huruf;

 Contoh pengisytiharan jenis data rentetan

char namaMurid[20];

JENIS DATA

1. Saiz Sel Dan Penerang


 Saiz sel merujuk kepada saiz ingatan yang disediakan pada ingatan komputer.
 Saiz sel ini diungkap dalam unit yang dipanggit bait. (1 bait sama dengan 8 bit).
 Saiz sel ini bergantung kepada jenis data masing-masing.
 Jadual dibawah ini menunjukkan pengisytiharan pembolehubah dengan saiz sel
ingatannya :

Pengisytiharan Pembolehubah Dalam ingatan Bilangan Bait

Int jauh; jauh 2 bait (16 bit)

float tinggi tinggi 4 bait (32 bit)

long int jauh jauh 4 bait (32 bit)

 Penggunaan penarang akan menambahkan saiz sel ingatan pembolehubah.


Contoh : rujuk jadual di atas, bila kita tambah penarang long pada int , saiz sel
ingatan akan bertambah dari 2 bait kepada 4 bait.

2. Jenis DataNombor Integer


 Jenis data integer menggunakan “int” untuk mewakili nombor integer positif dan
negatif.
 Contoh -23, -90, -67 , 78, 3, 607

15
MODUL PROGRAMMING SEMESTER 2

 Saiz sel integer bergantuung kepada jenis sistem komputer yang digunakan.

3. Jenis Data Aksara


 Jenis data aksara (character) menggunakan “char” untuk mewakili akasara
seperti huruf, digit atau simbol.
 Jenis data ini mewakili huruf besar dan huruf kecil.
 Juga mewakili digit nombor seperti 0,1,2,3,4….,9 (bezakan digit dengan nombor)

4. Jenis Data Nombor Nyata


 American National Standard Institute (ANSIC) menakrifkan tiga jenis data
menggunakan float , double dan long double untuk mewakili nombor nyata yang
mempunyai titik perpuluhan.
 Contoh : 0.0001, 2.0, 3.1234

PENGISYTIHARAN PEMALAR (CONSTANT)

 Pemalar merujuk kepada suatu nilai yang tetap dan tidak boleh berubah sepanjang
pelaksanaan atur cara.
 Pemalar boleh dikategorikan bebrapa jenis berdasarkan jenis datanya.

a) Pemalar Integer
 Merujuk kepada nilai nombor integer yang tetap.
 Cara pengisytiharan seperti berikut :

const int jumlah = 12;

** Nilai pembolehubah jumlah tidak akan berubah sepanjang pelaksanaan aturcara.

b) Pemalar Nyata
 Merujuk kepada nilai nombor nyata yang tetap.
 Cara pengisytiharan seperti berikut :

const float pai=3.14;

c) Pemalar Aksara
 Merujuk kepada nilai aksara yang tetap.
 Cara pengisytiharan seperti berikut :

const char a=’A’;

d) Pemalar rentetan
 Merujuk kepada nilai rentetan yang tetap.
 Cara pengisytiharan seperti berikut :

const char[7]=”KELUAR”;

16
MODUL PROGRAMMING SEMESTER 2

PENGISYTIHARAN DATA STRUKTUR (STRUCTURE DATA )

a) Data struktur
 Merujuk kepada satu koleksi data yang berlainan jenis.

b) Pengisytiharan Data struktur


 Kaedah pengisytiharan adalah seperti berikut :

struct student {

char firstName[20];

char lastName[20];

char SSN[9];

float gpa;

};

OPERATOR DAN UNGKAPAN

Pengenalan Operator.

1. Simbol matematik yang kita guna seperti +, -, x, < dan > dan lain-lain adalah dikenali sebagai
operator.
2. Simbol operator ini digunakan untuk memanipulasi data.

Operator Aritmetik

1. Untuk membolehkan aturcara kita memlakukan pengiraan aritmetik, maka kita perlu
operator ritmetik.
2. Operator aritmetik bahasa C sama dengan operator aritmetik dalam matematik.
3. Berikut merupakan simbol operator untuk aritmetik matematik.

17
MODUL PROGRAMMING SEMESTER 2

Simbol operator Makna Ungkapan Hasil

+ Tambah 25 + 8 33

- Tolak 120-64 56

* Darab 3*7 21

/ Bahagi 66/6 11

% Modulo – cari baki 68%6 2


bahagi

4. Perhatian simbol darab adalah * dan bukannya x. dan simbol bahagi adalah / bukannya \.
5. Untuk mancari baki pembahagi suatu nombor, kita guna simbol % . Cara adalah seperti
berikut :

23 % 10 = hasilnya ialah 3 manakala 23/10 = hasilnya ialah 2.

6. Paras keutamaan Aritmetik Operator :

Keutamaan Operasi Makna

Maknanya mula kira *,/ atau


Tinggi *, / , % % dahulu berbanding dengan
operasi + dan -

Kira kemudian, selepas


Rendah +,-
pengiraan operator *,/ dan %

7. Walaubagaimana pun, jika terdapat kurungan () maka pengiraan akan mendahulukan


pengiraan pada kurungan. Contoh seperti di bawah :

7.5 * (2.0 – 4.52) = <- pengiraan akan mendahului 2.0 – 4.52

8. Menulis ungkapan aritmetik dalam bahasa C. contoh –contoh adalah seperti dibawah :

16 - = boleh ditulis dalam bahasa C seperti berikut : 16 – 8 / 2

boleh ditulis sebagai (15+5+7) / 2

18
MODUL PROGRAMMING SEMESTER 2

boleh ditulis sebagai 16 * 16

9. Operator + dan – juga boleh dilaksanakan seperti berikut

Contoh : a++;  disimpan di belakang suatu nilai pembolehubah

a++ sama juga dengan persamaan berikut a = a + 1

a-- sama juga dengan persamaan berikut a =a – 1

a+=1 sama juga dengan persamaan berikut a=a+1

a-=1 sama juga dengan persamaan berikut a=a-1

Operator logikal

1. Operator Logik juga dikenali sebagai operator Mantik.


2. Bahasa C menyediakan tiga jenis operator logik dan seperti jadual dibawah.

Operator Logik Makna Contoh ungkapan Makna ungkapan

&& dan A && B A dan B

|| atau A || B A atau B

! Tidak A != B A tidak sama B

3. Keterangan mengenai operator && (dan)

Benar && Benar = benar

19
MODUL PROGRAMMING SEMESTER 2

Palsu && Benar = Palsu

Benar && Palsu = Palsu

Palsu && Palsu = Palsu

Untuk jadi benar kedua-dua mesti benar, jika terdapat satu palsu maka hasilnya adalah
palsu.

4. Keterangan menegnai operator || (atau)

Benar || Benar = Benar

Benar || Palsu = Benar

Palsu || Benar = Benar

Palsu || Palsu = Palsu

Untuk hasil Benar, sekurang-kurangnya satu adalah benar. Jika kedua-dua palsu maka
hasilnya adalah palsu.

5. Ketarangan menegnai operator ! (Tidak/bukan)

! Benar = Palsu

!Palsu = Benar

6. Kesimpulannya operator logik akan memberi dua keputusan sahaja iaitu Benar atau Palsu.
Dalam bahasa C, Benar diwakili dengan 1 dan Palsu diwakili dengan 0.

Contoh soalan operator logik

Jika diberi a =2, b=7 dan c=9. Tentukan ungkapan berikut benar atau palsu

a * b && c + 5

20
MODUL PROGRAMMING SEMESTER 2

(2 * 7) && (9+5)

14 && 14

1 && 1  (Jika nilai sama dengan 1 atau lebih daripada 1 . logiknya 1)

= Benar (1)

Jawapan : ungkapan adalah Benar.

Operator Hubungan (Relational Operator)

1. Bahasa C menyediakan operator hubungan untuk membanding data.

2. Bahasa C menyediakan enam jenis operator hubungan :

Operator Makna Ungkapan

< Lebih kecil daripada 6<9

<= Lebih kecil atau sama 12 <=13


dengan

> Lebih besar daripada 7 > 10

>= Lebih besar daripada 9 >=5


atau sama dengan

== Sama dengan 7 == 5

!= Tidak sama dengan 6 != 5

21
MODUL PROGRAMMING SEMESTER 2

Contoh soalan yang melibatkan operator hubungan dan operator logikal

1. Tentukan ungkapan berikut Benar atau Salah. Jika diberi a=1, b=5, c=15 dan d = 25.

(c >= (b * 3)) || (a == 3)

(15 >=(5*3)) || (1 ==3)

(15 >=15) || 0

1 || 0

1 (benar) Jawapan : Ungkapan di atas adalah Benar.

DATA INPUT DAN OUTPUT

 Terdapat pelbbagai fungsi dalam perpustakaan C yang digunakan untuk aktiviti input data
dan output data.
 Dua fungsi yang ingin diterangkan disini ialah
1. printf()

2. scanf()

 Fungsi printf() – digunakan untuk memaparkan aksara/rentetan/ dalam peralatan output


seperti monitor/LCD.
 Fungsi scanf() – digunakan untuk membaca/ menginput/ menangkap(capturing) aksara/
rentetan dari peralatan input; seperti papan kekunci.

DATA OUTPUT

Fungsi printf()

 Secara am format penulisan fungsi printf terdapat beberapa cara:

Cara1: terdiri daripada satu parameter.

printf(“ Paparan teks atau format nilai output pembolehubah “);

22
MODUL PROGRAMMING SEMESTER 2

contoh : printf(“MALAYSIA MAJU”);

Cara 2: terdiri daripada dua parameter atau lebih.

printf(“Paparan teks atau format nilai Output pembolehubah”, nilai atau pembolehubah)

Contoh 1 : printf(“Nama saya ialah %s”,”Helen Kong”);

Contoh 2 : printf(“Nama saya ialah %s dan berumur %d”,”Ahmad”,21);

Contoh 3 :

int umur=17;

printf(“Umur saya ialah %d tahun”,umur);

 Format output
• format yang akan dipaparkan mengikut format yang telah ditentukan.
• Biasanya dimula dengan tanda “ dan akhir dengan “
• Boleh di masukkan format output nilai pembolehubah.

Contoh : printf(“Harga baju = RM %.2f”,17.3);

Paparan Output : Harga baju = RM17.30

 Nilai atau pemboleubah


 Terdiri daripada nilai aksara/rentetan atau nilai pembolehubah yang akan di hantar
ke dalam format output nilai pembolehubah.

Contoh : printf(“Nama saya %s dan berumur %d”, “Kong Li”, 23);

 Senarai Format nilai output pembolehubah adalah seperti berikut :

 %s untuk paparan format rentetan (string)

23
MODUL PROGRAMMING SEMESTER 2

Contoh : printf(“%s”,”Malaysia”)  Output: Malaysia

 %c untuk paparan format aksara (charater)

Contoh : printf(“%c %c”,’A’,’C’);  Output : A C

 %d untuk paparan format integer

Contoh : printf(“%d ”, 21);  Output : 21

 %f untuk paparan format numbor perpuluhan (float atau double)

Contoh : printf(“%.2f”,21.2); Output : 21.20


Contoh : printf(“%.2f”,17.236);  Output : 17.24

 %e untuk paparan format nombor perpuluhan (notasi sainstifik)

Contoh : printf(“%e”,16.2356789);  Output : 1.623568e+001

Contoh : printf(“%.2e”,16.2356789);  Output : 1.62e+001

 Fungsi printf() dengan format nilai output %s.

Contoh 1 : printf(“Nama saya %s”,”Gan Hock Jin”);  Output : Nama saya Gan Hock Jin

Contoh 2 : char nama[13]=”Gan Hock Jin”;

printf(“Nama saya %s”,nama);  Output : Nama saya Gan Hock Jin

 Fungsi printf() dengan format nilai output %c.

Contoh 1 : printf(“Huruf - %s”,’Y’);  Output : Huruf - Y

Contoh 2 : char a=’Y’;


char b=’A’;

printf(“Huruf- %c dan %c ”,a , b);  Output : Huruf – Y dan A

24
MODUL PROGRAMMING SEMESTER 2

 Fungsi printf() dengan format nilai output %d.

Contoh 1 : printf(“Umur saya ialah %d tahun”,17); Output : Umur saya ialah 17 tahun

Contoh 2 : printf(“Hasil tambah 15 dan 67 ialah %d”,15+67);  Output : Hasil tambah 15 dan 67 ialah
82

Contoh 3 : int no1=15;

int no2=67;

printf(“Hasil tambah 15 dan 67 ialah %d”,no1+no2);  Output : Hasil tambah 15 dan 67


ialah 82

 Fungsi printf() dengan format nilai %f.

Contoh 1 : printf(“BM = %.2f ”,73.4); Output : BM = 73.40

Contoh 2 : printf(“Hasil tambah 15.5 dan 67.5 ialah %f”,15+67);

 Output : Hasil tambah 15.5 dan 67.5 ialah 83

Contoh 3 : float no1=15.6;

float no2=67.5;

printf(“Hasil tambah 15.6 dan 67.5 ialah %.2f”,no1+no2);

25
MODUL PROGRAMMING SEMESTER 2

 Output : Hasil tambah 15.6 dan 67.5 ialah 83.10

 Format Output (Tambahan)

 Apakah perbezaan di antara printf(“%6d”,123); dan printf(“%6d”,-123);

“%6” dalan fungsi printf() akan mengarah computer menyediakan 6 runagan kosong
pada device output seperti berikut:

123 dan -123 pada fungsi printf() membezakan dari segi kedudukan nombor itu di
tempatkan. 123 adalah nilai positif,kedudukannya akan ditempatkan di kanan petak
kosong; manakala -123 adalah nilai negative kedudukannya akan ditempatkan di kiri
petak ruangan kosong. Kedudukan kedua-dua boleh digambarkan seperti rajah di
bawah

** printf(“%6d”,123);

1 2 3

**printf(“%6d”,-123);

1 2 3

26
MODUL PROGRAMMING SEMESTER 2

 apakah perbezaan di antara printf(“%6.2f”,3.4) dan printf(“%6.1f”,3.4).

Kedua-dua format output akan menyediakan 6 petak kepada hasil output.


Bezanya dari segi bilangan tempat titik perpuluhan yang disediakan. Bagi
printf(“%6.2f,3.4) format output akan menyediakan dua tempat titik
perpuluhan seperti di bawah:

printf(“%6.2d”,3.4);

3 . 4 0

Bagi printf(“%6.1f”,3.4) format output akan disediakan satu tempat titik


perpuluhan seperti di bawah.

printf(“%6.1f”,3.4);

3 . 4

DATA INPUT

Fungsi Scanf()

 Penulisan format untuk fungsi scanf() adalah seperti berikut :

scanf( format input, pemboleubah);

 format Input memanggil fungsi tentang format data yang akan diinputkan.
 format Input dimula dengan “ dan akhir dengan “.
 format Input boleh terdiri daripada beberapa nilai format input,contoh seperti
begitu:

Contoh : scanf(“%d %d %d”,&no1,&no2,&no3);  terdiri daripada 3 nilai format


input.

 Pembolehubah ialah data yang diinput dalam memori/ingatan computer.


 Pengguna perlu menginput (Key in) data berdasarkan format input

 Fungsi scanf () dengan format input %c

27
MODUL PROGRAMMING SEMESTER 2

printf(“Masukkan satu huruf : “);  Output : Masukkan satu huruf : _


scanf(“%c”,&huruf);

**Untuk format input aksara (charater) – depan pembolehubah mesti simpan tanda &

 Fungsi scanf() dengan format input %d

printf(“Masukkan satu nombor : “);  Output : Masukkan satu nombor : _


scanf(“%c”,&no);

**Untuk format input integer – depan pembolehubah mesti simpan tanda &

 Fungsi scanf() dengan format input %f

printf(“Masukkan satu nombor perpuluhan : “);


scanf(“%f”,&no);

 Output : Masukkan satu nombor perpuluhan : _

**Untuk format input float– depan pembolehubah mesti simpan tanda &

 Fungsi scanf() dengan format input %s

printf(“Masukkan nama anda : “);


scanf(“%c”,nama);

printf(“\nNama anda ialah %s”,nama);

**Untuk format input rentetan (string) – depan pembolehubah tidak perlu simpan tanda &

 Output : Masukkan nama anda : Faridah Ahmad

Nama anda ialah Faridah

** Perhatikan output; bila kita masukkan nama “Faridah Ahmad” paparan hanya kepada
perkataan “Faridah” sahaja. Ini disebabkan fungsi scanf() hanya memaparkan perkataan
pertama sesuatu ayat sahaja.
**Untuk mengatasi masalah ini kita perlu menggunakan fungsi gets() sebagai ganti kepada
fungsi scanf().

28
MODUL PROGRAMMING SEMESTER 2

 Fungsi gets() dengan format input %s

printf(“Masukkan nama anda : “);


gets(nama);

printf(“\nNama anda ialah %s”,nama);

 Output : Masukkan nama anda : Faridah Ahmad

Nama anda ialah Faridah Ahmad

LANGKAH-LANGKAH PENYELESAIAN MASALAH DALAM PENGATURCARAAN

 Terbahagi kepada lima langkah:


1. program clarification
2. program design
3. program code
4. program test
5. program documentation and maintenance

29
MODUL PROGRAMMING SEMESTER 2

LANGKAH 1 : KETERANGAN PROGRAM

 Menilai masalah – mengkaji masalah dalam suatu situasi


 Mengambil maklumat yang penting daripada masalah tersebut.
 Bahagikan masalah tersebut kepada bahagian-bahagian yang kecil,tujuan menyenangkan
penyelesaian.
 Kenalpasti penyelsaian- cadangkan beberapa penyelsaian
 Pilih penyelesaian yang paling baik.

LANGKAH 2 : REKABENTUK PROGRAM

 Reke bentuk algoritma berdasarkan cadangan penyelesaian yang terbaik di langkah 1.


 Reke bentuk algoritma ini boleh terdiri daripada Carta Alir atau Kod Psuedo

LANGKAH 3 : KOD PROGRAM

 Menterjemahkan reke bentuk algoritma yang dibuat dalam langkah 2 ke dalam bentuk kod
aturcara atau kod sumber C.

LANGKAH 4 : UJI PROGRAM

 Setelah selesainya pengekodan program, program tersebut perlu diuji supaya ia bebas
daripada sebarang ralat.
 Ralat program mungkin terdiri daripada ralat runtime, ralat logikal dan ralat sintaks.
 Jika terdapatnya ralat. Pengaturcara akan melaksanakan Nyahpijatkan (Debug) untuk
membentulkan kesalahan tersebut.

LANGKAH 5 : DOKUMENTASI DAN PENYELENGARAAN

Dokumentasi Program

1. Dokumentasi Dalaman
2. Dokumentasi Luaran

 Dokumentasi Dalaman merujuk kepada dokumentasi teknikal yang ditulis dalam program ;
mengenai komen/penerangan suatu pernyataan kod.

30
MODUL PROGRAMMING SEMESTER 2

 Tujuan Dokumentasi dalaman ini adalah untuk rujukkan pengaturcara atau pengaturcara baru
yang akan mengambil alih tugas pengubahsuai program.
 Dokumentasi dalaman ini sangat berguna kepada pengaturcara kerana dokumentasi ini

- Merupakan dokumentasi rujukan untuk tujuan penyelenggaran


- membolehkan pengaturcara merujuk semula aturcara
- memudahkan pengeturcara mengesan kesilapan aturcara.

 Dokumentasi Luaran merujuk kepada Manual Penggunaan tentang program yang telah dibina.
 Manual Penggunaan ini termasuklah penerangan tentang tujuan system, cara-cara penggunaan
dan carta aliran kerja Manual Penggunaan sangat penting kepada pengguna system

Penyelenggaraan Program :

 Merujuk kepada penambahbaikan ,pembetulan dan penaiktarafan program.

STRUKTUR KAWALAN (CONTROL STRUCTURE)

1. Terbahagi kepada tiga jenis struktur kawalan:

a) Struktur Kawalan jujukan (sequential control structure)


b) Struktur Kawalan Pilihan (Selection control structure)
c) Struktur Kawalan ulangan (repetition control structure)

STRUKTUR KAWALAN JUJUKAN

1. merujuk kepada suatu program (aturcara) dilaksanakan secara berurutan.

2. Contoh Carta Alir dan kod psuedo:

Mula
Kod pseudo:

31 Mula
Input panjang dan lebar

Input panjang dan lebar


Kira luas=
Panjang x lebar
Cetak luas

Tamat MODUL PROGRAMMING SEMESTER 2

3. Ciri-ciri sruktur kawalan jujukan :

a) Aturcara dilaksanakan secara urutan.


b) Tidak mempunyai kenyataan pilihan; contoh kenyataan if atau switch.
c) Tidak mmepunyai kenyataan ulangan; contoh kenyataan while (selagi), for (untuk)

STRUKTUR KAWALAN PILIHAN (SELECTION CONTROL STRUCTURE)

1. Juga dikenali sebagai struktur kawalan bersyarat atau conditional control structure.

2. Merujuk kepada satu program dilaksanakan dengan adanya pilihan-pilihan yang ditetapkan.

3. Ciri-ciri structure kawalan pilihan :

a) Program dilaksanakan dengan terdapatnya pilihan-pilihan yang ditetapkan.


b) Program tidak dilaksanakan secara urutan.
c) Program tidak dilaksanakan secara ulangan.

4. Terdapat 5 jenis pernyataan kawalan struktur pilihan,iaitu :

a) Kenyataan if
b) Kenyataan if……else
c) Kenyataan if …..else if …..else
d) Kenyataan if tersarang (If bersarang)
e) Kenyataan switch…case

32
MODUL PROGRAMMING SEMESTER 2

a) Pernyataan if.

1. Digunakan untuk satu atau lebih daripada satu pilihan.


2. Contoh satu pilihan :

#include<stdio.h>

void main()
{

char jantina;

printf(“Masukkan Jantina anda (L atau P) : \n\n“);


scanf(“%c”,jantina);

if(pilihan !=’L’ || pilihan !=’P’)


printf(“Sila Masukkan P atau L sahaja”);

3. Contoh Carta alir dan kod pseudo untuk aturcara di atas.

Mula
KOD PSUEDO:

Mula
Input Jantina
Input Jantina

Jika jantina tidak sama dengan ‘L’


atau jantina tidak sama dengan ‘P’
Jan !=
Cetak (“Sila Masukkan P atau L sahaja” maka
’L’ atau ‘P’

Cetak “Sila Masukkan P atau L


sahaja”

Tamat
Tamat

4. Contoh lebih daripada satu pilihan

33
MODUL PROGRAMMING SEMESTER 2

#include<stdio.h>

void main()
{

char jantina;

printf(“Masukkan Jantina anda (L atau P) : \n\n“);


scanf(“%c”,jantina);

if(jantina==’L’)
printf(“Anda adalah lelaki.”);

if(jantina==’P’)
printf(“Anda adalah Perempuan”);

5. Contoh Carta alit dan pseudo untuk aturcara di atas.

Mula

Input Jantina KOD PSUEDO:

Mula

Jan= Input Jantina


’L’ Cetak Lelaki
Jika jantina sama dengan ‘L’ maka
Cetak “Anda adalah lelaki.”
Jan=
’P’ Cetak Perempuan Jika jantina sama dengan ’P’ maka
Cetak “Anda adalah perempuan”

Tamat

Tamat

b) Pernyataan if …else

1. Digunakan untuk melibatkan dua pilihan sahaja.


2. Contoh :

#include<stdio.h>

void main()

34
MODUL PROGRAMMING SEMESTER 2

char jantina;

printf(“Masukkan Jantina anda (L atau P) : \n\n“);


scanf(“%c”,jantina);

if(pilihan==’L’)
printf(“Anda adalah lelaki.”);

else

printf(“Anda adalah Perempuan”);

3. Contoh Carta Alir dan pseudo kod bagi aturcara di atas:

Mula

KOD PSUEDO:
Input Jantina
Mula

Input Jantina
Jan=
’L’ Cetak Lelaki Jika jantina sama dengan ‘L’ maka
Cetak “Anda adalah lelaki.”

sebalik
Cetak Perempuan Cetak “Anda adalah perempuan”

Tamat

Tamat

35
MODUL PROGRAMMING SEMESTER 2

c) Pernyataan if …else if …else

1. Digunakan untuk melibatkan dua pilihan atau lebih.

2. Contoh :

#include<stdio.h>

void main()
{

int pilihan;

printf(“Sila masukkan 1 hingga 4 sahaja: \n\n“);


scanf(“%c”,pilihan);

if(pilihan==1)
printf(“Anda memdapat sebuah kereta”);

else if (pilihan==2)
printf(“Anda mendapat sebuah motorsikal”);

else if (pilihan==3)
printf(“Anda mendapat sebuah meja”);

else if (pilihan==4)
printf(“Anda mendapat sebuah kerusi”);

else
printf(“Sila masukkan 1 hingga 4 sahaja”);

36
MODUL PROGRAMMING SEMESTER 2

3. carta alir dan pseudo kod untuk aturcara di atas :

Mula

Input pilihan

Pilihan=1

Cetak ..Kereta
KOD PSUEDO:

Mula

Pilihan=2
Input pilihan
Cetak ..motorsikal
Jika pilihan sama dengan 1 maka
Cetak “Anda memdapat sebuah kereta”

Jika sebalik pilihan sama dengan 2 maka


Pilihan=3
Cetak “Anda mendapat sebuah
Cetak …meja motorsikal”

Jika sebalik pilihan sama dengan 3 maka


Cetak “Anda mendapat sebuah kerusi”

Pilihan=4
sebalik
Cetak …kerusi Cetak Sila masukkan 1 hingga 4 sahaja”

Tamat

Cetak ……4sahaja

Tamat

37
MODUL PROGRAMMING SEMESTER 2

d) Pernyataan If tersarang

1. Makna dalam if ada if.

2. formatnya adalah seperti berikut :

If(pilihan==1)

If(nama==’chee’)
printf(“……..”);
else
printf(“…..”)

else
printf(“……”)

e) Pernyataan switch….case

1. melibatkan lebih daripada dua pilihan.


2. contoh aturcara adalah seperti berikut :

#include<stdio.h>

void main()
{
int pilihan;

printf(“Masukkan 1 – 3 sahaja : “);


scanf(“%d”,pilihan);

switch(pilihan)
{
Case 1:
printf(“1”);
break;
Case 2:
printf(“2”);
break;
Case 3:
printf(“3”);
break;

Default :
printf(“4”);
}

38
MODUL PROGRAMMING SEMESTER 2

3. Contoh Carta Alir dan pseudo kod bagi aturcara di atas.

Mula

Input pilihan
KOD PSUEDO:

Mula
case 1

Cetak 1 Input pilihan


break
Kes 1 :
Cetak1
Berhenti
case2

Cetak 2 Kes2 :
break Cetak 2
Berhenti

Kes 3 :
case3
Cetak 3
Cetak 3 break Berhenti

Default :
Cetak 4

Cetak 4 Tamat

Tamat

** Kenyataan switch adalah sama dengan penggunaan kenyataan if…else if…else

STRUKTUR KAWALAN ULANGAN (REPETITION CONTROL STRUCTURE)

1. Struktur kawalan yang program akan diulangi selagi syarat tidak dipenuhi.

39
MODUL PROGRAMMING SEMESTER 2

2. Ciri-ciri struktur kawalan ini

a) Terdapatnya kenyataan berulang dan ia akan tamat jika syarat dipenuhi.


b) Terdapat kenyataan “while”
c) Mempunyai pengemakinian pembilang yang mengawal bilangan ulangan.

3. Struktur kawalan ini terbahagi kepada 3 jenis kenyataan:

a) Kenyataan while
b) Kenyataan do…while
c) Kenyataan for

KENYATAAN “while”

1. Format umum penulisan kenyataan while adalah seperti di bawah

ujian
while( ujian )
{
Kenyataan
badan
pengemaskini
}

2. terbahagi kepada dua bahagian utama; kepada dan badan

ujian satu kompenan yang menentukan berapa kali kenyataan

dalam badan hendak diulang.Bila ujian tersebut memenuhi syarat maka ulangan

tersebut akan tamat.

Badan  terdiri daripada satu atau lebih kenyataan C dan pengemaskini

3. Contoh aturcara mennggunakan kenyataan while :

int i=0;
int jumlah=0;

while(i<6)

40
MODUL PROGRAMMING SEMESTER 2

{
printf(“%d”,jumlah)
jumlah +=1;
i++;
}

4. Contoh Carta Alit dan psuedo kod untuk aturcara di atas.

mula

Isytihar
Int i=0
Jumlah=0

Kemaskini
i++

Kemaskini
I<6 Cetak jumlah Jumlah +=1

Tamat

Kod Psuedo :

Mula

Set i kepada 0, jumlah kepada 0

Selagi i lebih kecil daripada 6 maka

Cetak jumlah
Kemaskini jumlah +=1
Kemaskini i ++

41
MODUL PROGRAMMING SEMESTER 2

Tamat selagi

Tamat

KENYATAAN do…while

1. kenyataan ini seakan-akan sama dengan kenyataan while. Yang terdiri daripada ujian dan badan.

2. Beza antara kenyataan do..while dan while ialah do..while akan melaksanakan kenyataan dalam
badan dahulu kemudian baru uji ujian bersyarat manakala kenyataan while akan membuat ujian
bersyarat kemudian baru melaksanakan kenyataan dalam badan.

3. Format penulisan umum kenyataan do…while adalah seperti berikut :

do {
badan
kenyataan

} while(ujian); ujian

3. Contoh aturcara yang mengguna kenyataan do..while

int i=0;
int jumlah=0;

do {
printf(“%d”,jumlah)
jumlah +=1;
i++;
} while(i<6);

4. Contoh Carta alir dan kod psuedo untuk aturcara di atas

42
MODUL PROGRAMMING SEMESTER 2

mula

Isytihar
Int i=0
Jumlah=0

Cetak jumlah

Kemaskini
Jumlah +=1

Kemaskini
i++

I<6

Tamat

KOD PSUEDO

Mula

Isytihar int i=0, int jumlah=0

Laksana Selagi i lebih kecil daripada 6

Cetak jumlah
Kemaskini jumlah +=1
Kemaskini i ++

Tamat laksana

43
MODUL PROGRAMMING SEMESTER 2

Tamat

KENYATAAN “FOR”

1. Satu contoh pernyataan ulangan (loop statement)

2. Bentuk umum for adalah seperti berikut :

for(awalan,ujian,pengemaskinian)

Ungkapan

3. Berdasarkan contoh di atas, pernytaan for terdapat tiga ungkapan; iaitu awalan, ujian dan
pengemaskinian.

4. Awalan merujuk kepada nilai awal perlaksanaan sebelum gelung pertama.

5. Ujian menentukkan sama ada ulangan terus dilakukan atau sebaliknya.

6. pengemaskinian merujuk nilai pembolehubah selepas setiap gelung dilaksanakan.

7. Contoh aturcara C adalah seperti berikut:

#include<stdio.h>

void main()
{ Awalan: Tetapan nilai awalan
int x; untuk pembolehubah

for(x=1;x>11;x++)
Ujian: Menentukkan berapakali
hendak diulang. (10 kali ulang)
printf(“&”);

} pengemaskinian: mengemaskini
nilai x untuk setiap kali ualangan

Berdasarkan aturcara di atas :

a) berapa kali ulangan akan dilakukan?

b) apakan output yang akan dicetak?

44
MODUL PROGRAMMING SEMESTER 2

8. Tentukan apakah output yang akan dihasilkan daripada aturcara for berikut:

for(x=10;x>0;x--)

printf(“%d”,x);

CARTA ALIR DAN KOD PSUEDO UNTUK ATURCARA DI ATAS.

Mula

Set Awalan
X=10
KEMASKINI
X=X-1

X>0
Cetakan x

Tamat

KOD PSUEDO:
45
Mula

Untuk x =0 kepada x lebih besar daripada 0


Cetak x
MODUL PROGRAMMING SEMESTER 2

KENYATAAN YANG LAIN

PERNYATAAN “break”

1. Pernyataan break adalah satu contoh pernyataan kawalan ulangan (loop control statement).

2. Mempunyai dua fungsi :

a. untuk menamatkan pernyataan “case” yang terdapat dalam pernyataan switch. Ini bermakna ia

boleh menghalang melaksanakan “case” seterusnya.

b. untuk menamatkan pernyataan perintah loop (for, while, do…while) secara paksaan.

PERNYATAAN “continue”

1. Pernyataan continue adalah satu contoh pernyataan kawalan ulangan (loop control statement).

2. Fungsinya ialah mengembalikan suatu ulangan (loop) kembali semula ke kedudukan mengujian.

46
MODUL PROGRAMMING SEMESTER 2

FUNGSI (FUNCTION)
APA ITU FUNGSI

1. Fungsi ialah blok-blok kod yang menjalankan beberapa perintah-perintah ditakrifkan sebelum mencapai


sesuatu yang hasil.
2. Biasanya fungsi terdiri daripada satu fungsi utama dan sub-sub fungsi yang lain.
3. Fungsi biasanya terdiri daripada :

a) Definisi (Takrifan) Fungsi (Function Definition)


b) Prototaip Fungsi.
c) Pemanggil Fungsi

DEFINISI FUNGSI (FUNCTION DIFINITION)

1. Merupakan blok kod yang terdiri daripada jenis fungsi, nama fungsi ,parameter dan kenyataan difinisi
(takrifan).
2. Format Definisi fungsi adalah seperti berikut :

Jenis Fungsi
void KiraLuasSegiempat(int panjang,int lebar)
Nama Fungsi

parameter
{

int luas; pernyataaan


Definisi

luas=panjang * lebar ;
Jenis Fungsi :

47
MODUL PROGRAMMING SEMESTER 2

 Merujuk kepada Jenis nilai kembali fungsi tersebut. Jenis fungsi contoh di atas ialah void.
 Jika guna “void” ia tidak mengembalikan nilai, nilai akan dicetak dalam fungsi tersebut juga.
 Jika guna jenis fungsi “int” ia akan mengembalikan nilai. Contoh seperti di bawah akan
mengembalikan jenis nilai int.

int KiraLuasSegiempat(int panjang,int lebar)

{
int luas;

luas=panjang * lebar ;

return luas;

Nama Fungsi : Nama yang ditetapkan untuk fungsi, mesti guna nama yang sesuai.

Parameter : Nilai pembolehubah dari fungsi utama akan dihantar dari fungsi uatama ke fungsi untuk
tujuan mengiraan

PROTOTAIP FUNGSI
 Merujuk kepada pengisytiharan fungsi yang tidak mempunyai badan fungsi tetapi
mengandungi jenis fungsi, nama fungsi dan bahagian parameter terdiri daripada jenis
pembolehubah.
 Fungsi Prototaip fungsi adalah untuk memberitahu compiler jenis nilai yang akan
dikembalikan ke fungsi utama, jumlah parameter menunjukkan berapa jenis nilai yang akan
diterima.
 Format penulisan prototaip fungsi adalah seperti berikut:

void kiraLuasSegiempat(int, int);

SOALAN :
1. Apakah jenis data prototaip fungsi di atas? Jwp: void – tidak kembali nilai
2.Apakah Jenis data yang akan diterima oleh fungsi dari fungsi utama? Jwp : jenis
integer.
3. Berapa jenis nilai yang akan diterima. Jwp: dua.

PEMANGGIL FUNGSI

 Merujuk kepada pengisytiharan fungsi yang terdiri daripada nama fungi dan parameter
fungsi yang terdiri daripada pembolehubah yang di isytihar daam fungsi utama; tanpa
mengandungi jenis fungsi.
 Fungsi Pemanggil fungsi adalah untuk menghantar nilai dari fungsi ke sub fungsi atau
menerima nilai yang dikembalikan dari sub fungsi.
 Format penulisan pemanggil fungsi adalah seperti berikut :

kiraLuasSegiemapat( panjang, lebar);

48
MODUL PROGRAMMING SEMESTER 2

 Terdapat tiga cara mencetak nilai yang dikembalikan daripada sub fungsi.

o Cara 1 : Jika tiada nilai yang dikembalikan dari sub fungsi

kiraLuasSegiempat(panjang,lebar);

o Cara 2:

int luas;
luas=kiraLuasSegiempat(panjang,lebar);
printf(“%d”,luas);

o Cara 3:

printf(“%d”, kiraLuasSegiempat(panjang,lebar);

FORMAT ATURCARA FUNGSI

#inclued<stdio.h>

void kiraLuasSegiempat(int, int); Prototaip Fungsi

void main()
{
int panjang,lebar;

printf(“Masukkan panjang = “);


scanf(“%d”,&panjang);

printf(“Masukkan lebar = “);


scanf(“%d”,&lebar);

kiraLuasSegiempat(panjang,lebar); Pemanggil Fungsi

void KiraLuasSegiempat(int panjang,int lebar)


{
int luas;

luas=panjang * lebar ; Denifisi Fungsi

printf(“Luas Segiempat = %d”,luas);

}
49
MODUL PROGRAMMING SEMESTER 2

MENGAPA PERLUNYA FUNGSI?.

 Struktur mudah diurus dan mengesan ralat.

Aturcara menjadi lebih mudah dibaca dan difahami kerana kumpulan


suruhan2 yg melakukan kerja tertentu dikumpulkan dlm beberapa bahagian
yg dipanggil fungsi. Ia juga memudahkan proses penyahpepijat.(pembetulan
ralat aturcara)

 Jimat masa/ruang & Guna semula


o Jujukan suruhan yg berulang2 dlm sesuatu aturcara boleh dijadikan fungsi.
Fungsi ini hanya perlu ditulis sekali shj & boleh digunakan berulang 2 dgn
memanggil nama fungsi tersebut. Contohnya fungsi printf yg panjangnya
beratus baris hanya ditulis sekali oleh pembekal pengkompil, tetapi boleh
digunakan berulang2 dlm aturcara kita.
o
 Menggalakkan aturcara bermodular
o Masalah yg besar dipecahkan kpd masalah yg kecil (pendekatan atas-bawah)
& skop masalah yg kecil tersebut diselesaikan satu persatu.

JENIS-JENIS FUNGSI

1. Fungsi boleh dibahagikan kepada dua :

a) Fungsi piawai perpustakaan C (C library) :

b) Fungsi Takrifan Pengguna

FUNGSI PIAWAIAN PERPUSTAKAAN C ( FUNCTION STANDARD LIBRARY C )

 merupakan fungsi binaan dalam perpustakaan C.


 Contoh seperti printf(),scanf(), gets(); dan lain-lain lagi.

50
MODUL PROGRAMMING SEMESTER 2

FUNGSI DEFINISI (TAKRIFAN) PENGGUNA

 Merujuk kepada fungsi yang dibina oleh programmer/pengeturcara sendiri.


 Fungsi takrifan pengguna ini boleh dibahagikan kepada :

a) penglibatan fungsi yang tidak mengahantar nilai ke sub fungsi dan tidak mengembalikan nilai ke
fungsi utama.

 Ciri-Ciri fungsi ini :


o Tidak mempunyai parameter
o Penggunaan jenis data “void” pada fungsi (contoh void luasSegitiga)
o Tidak menghantar nilai (pass value)
o Tidak mengembalikkan nilai (return nilai)

 Contoh aturcara seperti di bawah ini.

#include<stdio.h> OUTPUT ATURCARA :

int luasSegiempat(int,int)
MENU UTAMA
void main()
{ 1. LELAKI
int pilihan; 2. PEREMPUAN

menuPilihan(); Sila buat pilihan (1 atau 2) :_

printf(“Sila buat pilihan (1 atau 2) : “);


scanf(“%d”,&pilihan);

void luasSegiempat()
{
printf(“MENU UTAMA\n\n”);

printf(“1. LELAKI\n”);
printf(“2. PEREMPUAN\n”);

51
MODUL PROGRAMMING SEMESTER 2

b) penglibatan fungsi yang menghantar nilai daripada fungsi utama tetapi tidak mengembalikkan
nilai
ke fungsi utama.

 Ciri-Ciri fungsi ini :


o mempunyai parameter
o Penggunaan jenis data “void” pada fungsi (contoh void luasSegitiga)
o menghantar nilai (pass value)
o Tidak mengembalikkan nilai (return nilai)

 Contoh aturcara seperti di bawah ini.

#include<stdio.h>

void luasSegiempat(int,int)

void main()
{
int panjang,lebar;

printf("Masukkan panjang = ");


scanf("%d",&panjang); Perhatikan ..

printf("Masukkan lebar = ");


scanf("%d",&lebar);
Nilai Luas tidak dikembalikkan ke fungsi utama
lusSegiempat(panjang,lebar);
untuk dicatak. Nilai luas dicetak/dipapar terus
}
pada sub fungsi tersebut juga.
void luasSegiempat(int panjang,int lebar)
{
int luas;
luas=panjang * lebar ;
printf(“LUAS = %d”, luas);
}

52
MODUL PROGRAMMING SEMESTER 2

c) penglibatan fungsi yang menghantar nilai daripada fungsi utama dan mengembalikkan nilai
ke fungsi utama.

 Ciri-Ciri fungsi ini :


o mempunyai parameter
o menghantar nilai (pass value)
o mengembalikkan nilai (return nilai)

 Contoh aturcara seperti di bawah ini.

#include<stdio.h>

int luasSegiempat(int,int);

void main()
{
int panjang,lebar;
int luas; Perhatikan ..

printf("Masukkan panjang = "); Nilai Luas dikembalikkan ke fungsi


scanf("%d",&panjang); utama. Nilai luas dicetak/dipapar
printf("Masukkan lebar = ");
pada fungsi utama.
scanf("%d",&lebar);

luasSegiempat(panjang,lebar);

printf(“LUAS = %d”, luas);

int luasSegiempat(int panjang,int lebar)


{ Perhatikan ..
int luas;
luas=panjang * lebar ;
return luas;
} Nilai Luas dikembalikkan ke fungsi
utama.

53
MODUL PROGRAMMING SEMESTER 2

PERTUKARAN ANTARA KOD SUMBER KE CARTA ALIR FUNGSI

Mula

Isystihar prototaip

int luasSegiempat(int,int)
Isystihar pembolehubah
#include<stdio.h> int panjang,lebar,luas

void luasSegiempat(int,int);
Input Panjang
int main()
{
int panjang,lebar; Input lebar

int luas;
luasSegiempat(panjang,lebar)
printf("Masukkan panjang = ");
scanf("%d",&panjang);
Mula
printf("Masukkan lebar = ");
scanf("%d",&lebar);

luasSegiempat(panjang,lebar);
luasSegiempat(panjang,lebar)
}

void luasSegiempat(int panjang,int lebar) Isystihar pembolehubah


{ int panjang,lebar,luas
int luas;
luas=panjang * lebar ;
Kira Luas=
printf(“LUAS = %d”, luas); Panjang x lebar
}

Cetak Luas

Balik Ke Fungsi Utama

CARA PENCERAKINAN KOD DARI FUNGSI UTAMA KE SUB FUNGSI

54
MODUL PROGRAMMING SEMESTER 2

1. Kod-kod dalam fungsi utama boleh dipecahkan. Untuk membentuk sub fungsi supaya fungsi
utama
Lebih kemas dan kodnya tidak terlalu panjang.

2. Dibawah merupakan satu aturcara yang lengkap untuk mencari hasil penambahan dua nilai
nombor.
Katakan kod fungsi utama ini akan dipecahkan untuk membentuk satu sub fungsi yang bernama :

int kiraJumlah(int a, int b);

Lihat cara bagaimana dipecahkan kepada sub fungsi :

#include<stdio.h>

int kiraJumlah(int,int);
int kiraJumlah(int a,int b)
{
void main()
Int jumlah;
{
int no1,no2,jumlah;
jumlah= a + b;
printf("Masukkan Nombor Pertama :");
printf("JUMLAH : %d",jumlah);
scanf("%d",&no1);
}
printf("Masukkan Nombor Kedua :");
scanf("%d",&no2);

kiraJumlah(no1,no2);

jumlah=no1+no2;

printf("JUMLAH : %d",jumlah); Setelah


} dipecahkan

#include<stdio.h> Int kiraJumlah(int a,int b)


{
void main() Int jumlah;
{
Int no1,no2;
jumlah= a + b;
printf("Masukkan Nombor Pertama :");
scanf("%d",&no1); printf("JUMLAH : %d",jumlah);

printf("Masukkan Nombor Kedua :"); }


scanf("%d",&no2);

kiraJumlah(no1,no2);

LATIHAN KENDIRI 1

Di bawah ini menunjukkan satu fungsi utama sebuah aturcara C. Aturcara dibangunkan untuk mencari purata tiga nombor.

55
MODUL PROGRAMMING SEMESTER 2

#include<stdio.h>

int main()
{
int no1,no2,no3;
int purata;

printf(“Masukkan No 1 : “);
scanf(“%d”,&no1);

printf(“Masukkan No 2 : “);
scanf(“%d”,&no2);

printf(“Masukkan No3 : “);


scanf(“%d”,&no3);

purata=(no1 + no2 + no3) / 3;

printf(“PURATA = %d”,purata);

a) Asingkan fungsi utama ini kepada sub fungsi “void purataTigaNo(int a,int b,int c)”. Tulis segmen kod untuk sub fungsi
tersebut.

void purataTigaNo(int a,int b,int c)


{
Int purata;

purata=(no1 + no2 + no3) / 3;

printf(“PURATA = %d”,purata);

b) Tulis segmen kod untuk fungsi utama setelah proses pengasingan tersebut.

int main()
{
int no1,no2,no3;

printf(“Masukkan No 1 : “);
scanf(“%d”,&no1);

printf(“Masukkan No 2 : “);
scanf(“%d”,&no2);

printf(“Masukkan No3 : “);


scanf(“%d”,&no3);

purataTigaNo(no1,no2,no3);

FUNGSI PIAWAIAN (STANDARD FUNCTION) DALAM PERPUSTAKAAN C (LIBRARY C)

 Merujuk kepada fungsi yang bukan dibina oleh programmer dan ia merupakan fungsi dalaman yang disimpan
dalam perpustakaan C.
 Fungsi piawaian yang selalu kita guna adalah fungsi input/output,seperti :

printf( ) – untuk paparan output.


scanf( ) - untuk input data.

56
MODUL PROGRAMMING SEMESTER 2

 Fungsi lain adalah seperti gets( ), puts( ), strcpy( ) dan lain-lain lagi.
 Dalam bahagian ini, kita akan berbincang tentang fungsi yang berasaskan matematikal
 Fungsi matematikal ini, perlu diisytiharkan header files “math.h” seperti berikut #include<math.h>

a) sqrt( )

o Untuk mencari punca kuasa dua suatu nilai.


o Nilai yang hendak dipunca kuasa dua haruslah diisytiharkan kepada jenis data float atau double.
o √
Contoh 16
o Contoh aturcara :

#include<math.h>
Hasil Output :
int main()
{
float x = 16; 4.000000

printf(“%f”,sqrt(x) );
}

b) log( )

o Merupkan fungsi logaritma semula jadi.


o Contoh aturcara

#include<math.h>
Hasil Output :
int main()
{
float x = 8.0;
2.079442

printf(“%f”,log(x) );
}

c) log10( )

o Merupakan fungsi logaritma yang berasakan 10.


o Contoh aturcara

#include<math.h>
Hasil Output :
int main()
{
float x = 8.0;
0.903090

printf(“%f”,log10(x) );
}

d) pow( )

o Untuk mencari nilai kuasa bagi satu nilai, contoh 82


y
o Format nilai kuasa suatu nilai adalah seperti berikut : X
o Cara penggunaan fungsi ini adalah seperti berikut :

pow(double x,double y);

o Contoh aturcara

#include<math.h>
Hasil Output :
57
8.114653
MODUL PROGRAMMING SEMESTER 2

int main()
{
float x = 3.2;
float y=1.8;

printf(“%f”,pow(x,y) );
}

e) hypot( )

o Untuk mencari nilai hipotenus suatu segitiga tepat


o Cara penggunaan fungsi ini adalah seperti berikut :

hypot(double x,double y);

o Contoh aturcara

#include<math.h>
Hasil Output :
int main()
{
float x = 8.0;
10.000000
float y=6.0;

printf(“%f”,hypot(x,y) );
}

f) floor( )

o Merupakan fungsi yang akan mengembalikkan nilai integer terbesar yang tidak melebihi x.
o Contoh aturcara

#include<math.h>
Hasil Output :
int main()
{
float x = 8.3;
8.000000

printf(“%f”,floor(x) );
}

g) ceil ( )

o Merupakan fungsi yang akan mengembalikkan nilai integer terbesar yang tidak melebihi x.
o Contoh aturcara

#include<math.h>
Hasil Output :
int main()
{
float x = 8.3;
9.000000

printf(“%f”,ceil(x) );
}

h) exp ( )

58
MODUL PROGRAMMING SEMESTER 2

o Merupakan fungsi eksponen


o Contoh aturcara

#include<math.h>
Hasil Output :
int main()
{
float x = 8.3;
2980.957987

printf(“%f”,exp(x) );
}

CONTOH SOALAN

Tukarkan √ ac−d 2 kepada ungkapan aturcara C.


Jawapan :

sqrt( [ (a*c) – (d*d) ] );

atau

x= [ (a*c) – (d*d) ]

sqrt(x)

TATASUSUN (ARRAY)

1. Tatasusun merupakan sejenis maklumat yang berstruktur terutamanya digunakan untuk


mengumpukan pembolehubah sama jenis dan mewakilinya dengan satu nama.

2. Indeks tatasusun akan dignakan untuk menuding ke maklumat dalam tatasusun yang ingin dicapai.

JENIS TATASUSUN

1. Tatasusun boleh dibahagi kepada :

a. tatasusun satu dimensi


b. tatasusun dua dimensi

TATASUSUN SATU DIMENSI

a) Pengisytiharan Tatasusun 1 dimensi

59
MODUL PROGRAMMING SEMESTER 2

1. Penggunaan tatasusun sama dengan pembolehubah lain, iaitu ia mesti diisytiharkan terlebih
dahulu sbelum boleh digunakan.

2. Format pengisytiharan tatasusun satu dimensi adalah seperti berikut :

Jenis data Nama pembolehubah [saiz]

Contoh : int nombor[5]

3. Dalam bahasa C, indeks bagi elemen pertama masti bermula dengan 0.

4. Pengisytiharan tatasusun “int nombor[5]” . Memori komputer akan menyediakan ruangan seperti
dibawah ini :

alamat indek

Indek [0]
Indek [1]
Indek [2]
Indek [3]
Indek [4]

CONTOH ATURCARA TATASUSUN SATU DIMENSI – MELIBATKAN NOMBOR DAN AKSARA

1. Mengumpuk nilai awal (nombor) untuk tatasusun satu dimensi dan cara mencapai nilai
tersebut.

#include<stdio.h>

Cara penetapan nilai awal.


void main() Saiz indek adalah saiz 4,maka 4 nilai
{ saja boleh dimasukkan.

int nombor[4]={3,4,5,6}; 3 Indek[0]


4 Indek[1]
printf(“%d”,nombor[0]); 5 Indek[2]
6 Indek[3]
}
Output : 3 sebab pegang nilai indek[0]

SOALAN :

60
MODUL PROGRAMMING SEMESTER 2

Apakah nilai output bagi aturcara C berikut :

a) printf(“%d”,nombor[1]);
B) printf(“%d”,nombor[3]);

2. Mengumpuk nilai awal (aksara) untuk tatasusun satu dimensi dan cara mencapai nilai tersebut.

#include<stdio.h>
Cara penetapan nilai awal.
void main() Saiz indek adalah saiz 4,maka 4 nilai
{ saja boleh dimasukkan.
Tanda’’ digunakan untuk setiap aksara
char huruf[4]={‘a’,’b’,’c’,’d’};
a Indek[0]
printf(“%c”,huruf[0]); b Indek[1]
c Indek[2]
} d Indek[3]

Output : a sebab pegang nilai indek[0]

SOALAN :
Apakah nilai output bagi aturcara C berikut :

a) printf(“%c”,huruf[2]);
B) printf(“%c”,huruf[3]);

3. Mengumpuk nilai awal ( rentetan(string) ) untuk tatasusun satu dimensi dan cara mencapai nilai
tersebut.

#include<stdio.h>

Cara penetapan nilai awal.


void main() Saiz indek adalah saiz 10,maka 10 ruangan
{ akan disediakan dalam memeori termasuk
rungan kosong antara perkataan John dan
char nama[10]=”John Kong”; Kong dan 1 tempat untuk \0 dipenghujung
perkataan.
printf(“%s”,nama); Tanda” ” digunakan untuk setiap rentetan
0 1 2 3 4 5 6 7 8 9
} J o h n K o n g \0

Output : John Kong

SOALAN :
Apakah nilai output bagi aturcara C berikut :

a) printf(“%c”,nama[2]);
B) printf(“%c”,nama[3]);

61
MODUL PROGRAMMING SEMESTER 2

4. Mempaparkan Nilai tatasusun satu dimensi menggunakan pernyata for.

1. Anda masih ingin pernyata for ? Format penulaisan pernyataan for adalah seperti berikut :

for(awalan,ujian,pengemaskinian)
{
Ungkapan
}

Contoh :

For(a=0;a<4;a++)
{
ungkapan
}

2. Penggunaan pernyata dalam for adalah untuk mengemakini nilai indek melalui cara perulangan
kawalan.

3. contoh aturcara C adalah seperti berikut :

** contoh dibawah adalah untuk mempaparkan semua huruf dari a hingga ke d

#include<stdio.h>

Ulang 1 : huruf[a]=huruf[0] sebab nilai


void main() a=0
{
Ulang2 : huruf[a]=huruf[1] sebab nilai
char huruf[4]={‘a’,’b’,’c’,’d’}; a=1 (nilai a pada ulang 1 telah
int a; tambah1, a=0+1)
for(a=0;a<4;a++)
{ Ulang 3 : huruf[a]=huruf[2] sebab nilai
printf(“%c”,huruf[a]); a=2 (nilai a pada ulang 2 telah
} tambah1, a=1+1)

} Ulang 4 : huruf[a]=huruf[3] sebab nilai


a=3 (nilai a pada ulang 3 telah
tambah1, a=2+1)
SOALAN :

Tuliskan aturcara output menggunakan pernyata for untuk memaparkan huruf a dan c.

4. Menginput Nilai tatasusun satu dimensi menggunakan pernyata for.

62
MODUL PROGRAMMING SEMESTER 2

1. Menginput 5 nilai integer :

#include<stdio.h>
Ulang 1 : Masukkan nilai ke-1 dalam
void main()
{ indek[0]-nilai a=0

int nombor[5]; Ulang2 : Masukkan nilai ke-2 dalam


int a,b; indek[1]-nilai a=1
for(a=0;a<5;a++)
{
Ulang 3 : Masukkan nilai ke-3 dalam
printf(“masukkan nombor : “); indek[2]-nilai a=2
scanf(“%d”,& nombor [a]);
} Ulang 4 : Masukkan nilai ke-4 dalam
indek[3]-nilai a=3
for(b=0;b<5;b++)
{
printf(“%d”, nombor [b]); Ulang 5 : Masukkan nilai ke-5 dalam
} indek[4]-nilai a=4
}

5.Tatasusun satu dimensi melibatkan pengiraan

void main()
{

int nombor[5];
int a,b;
int jumlah=0;

for(a=0;a<5;a++)
{
printf("masukkan nombor : ");
scanf("%d",&nombor[a]);
}

for(b=0;b<5;b++)
{
printf("%d", nombor[b]);

jumlah=jumlah+nombor[b];
}

printf("PURATA : %d",jumlah/5);

63
MODUL PROGRAMMING SEMESTER 2

SOALAN :

Buat satu aturcara lengkap untuk memasukkan 4 nilai nombor dan paparkan jumlah lima
nilai
nombor tersebut.

LATIHAN

1. Kaji aturcara di bawah ini.

#include<stdio.h> //baris1

void main() //baris2


{ //baris3

int nilai[6]; //baris4


int i; //baris5

for(i=0;i<6;i++) //baris6
{ //baris7
printf("Masukkan Nilai ke- %d ",i+1); //baris8
scanf("%d",&nilai[i]); //baris9
} //baris10

printf("Nilai : %d",nilai[4]); //baris11

} //baris12

a) Berapakah bilangan nilai yang boleh dimasukkan dalam aturcara di atas?

b) Apakah output yang akan dipaparkan bagi ulangan “pernyataan for” yang pertama untuk baris ke
baris ke 8

c) Apakah output bagi baris ke 11.

d) Ubah ungkapan aturcara baris ke 11, untuk mempaparkan semua nilai yang diinputkan.

64
MODUL PROGRAMMING SEMESTER 2

e) Gantikan pernyataan for dengan pernyataan do….while.

f) Tuliskan ungkapan aturcata untuk mengira jumlah semua nilai yang dimasukkan.

MENGIRA JUMLAH LELAKI DAN PEREMPUAN MENGUNAKAN PERNYATAAN FOR DAN IF

Contoh Soalan:
Buat satu aturcara lengkap untuk mengira jumlah pelajar,jumlah pelajar lelaki dan jumlah pelajar
perempuan yang diinputkan.

#include<stdio.h>

void main()
{

char jantina[5]={'L','P','P','L','L'};
int kaunter=0;
int jumPel=0;
int jumL=0;
int jumP=0;
int i;

for(i=0;i<5;i++)
{

if(jantina[i]=='L')
{
kaunter=1;
jumL=jumL+kaunter;
}
else
{
kaunter=1;
jumP=jumP+kaunter;
}

kaunter=1;

65
MODUL PROGRAMMING SEMESTER 2

jumPel=jumPel+kaunter;

}//Tamat for

printf("Jumlah Pelajar : %d\n",jumPel);


printf("Jumlah Pelajar Lelaki : %d\n",jumL);
printf("Jumlah Pelajar Perempauan : %d\n",jumP);

}//tamat main

TATASUSUN DUA DIMENSI

1. Tatasusun dua dimensi merupakan pengembangan tatasusun satu dimensi.


2.Tatasusun dua dimensi adalah dalam bentuk matrik.
3. Cara pengisytiharan tatasusun dua dimensi adalah seperti dibawah :

int nombor [3][4] lajur

baris
4. Setelah pengisytiharan selesai,bahasa C akan menyimpan ruangan tatasusun2 dimesi dalam
memori seperti berikut :

0 1 2 3
0 (0,0) (0,1) (0,2) (0,3)
1 (1,0) (1,1) (1,2) (1,3)
2 (2,0) (2,1) (2,2) (2,3)

5. Setiap ruangan mempunyai indek rujukan.

MENGUMPUK NILAI DALAM TATASUSUN DUA DIMENSI MELIBATKAN NOMBOR

1. Nilai awal boleh ditetapkan seperti berikut :

int nombor [4][2]={ {1,2},


{3,5},
{6,7},
{8,9}};

2. Komputer akan menyimpan nilai dalam memori komputer seperti berikut :

0 1
0 1 (0,0) 2 (0,1)
1 3 (1,0) 5 (1,1)

66
MODUL PROGRAMMING SEMESTER 2

2 6 (2,0) 7 (2,1)
3 8 (3,0) 9 (3,1)

Latihan

1. Apakah Nilai bagi beralamat nombor[1][1]?


2. Dibawah menunjukkan satu tatasusun dua dimensi.

Nilai[5][4]

a) Tatasusun di atas terdapat berapa baris?


b) Tatasusun di atas terdapat berapa lajur?
c) Berapa nilai yang boleh dimasukkan dalam tatasusun di atas?
d) Tetap nilai awalan untuk tatasusun di atas.

4. contoh aturcara lengkap :

#include<stdio.h>

void main()
{

int nombor[4][2]={ {1,2},


{3,5},
{6,7},
{8,9}};

printf("%d",nombor[1][1]);

67
MODUL PROGRAMMING SEMESTER 2

MENGUMPUK NILAI DALAM TATASUSUN DUA DIMENSI MELIBATKAN RENTETAN

1. Nilai awal boleh ditetapkan seperti berikut :

int nama[3][10]={ “John Kong”,”Aminah Jo”,”Helen Ai”};

2. Komputer akan menyimpan nilai dalam memori komputer seperti berikut :

0 1 2 3 4 5 6 7 8 9
0 J o h n K o n g \0
1 A m i n a h J o \0
2 H e l e n A i \0

3. Untuk paparan nama “John Kong”, kod aturcara yang perlu ditulis adalah seperti berikut :

printf(“%s”,nama[0]);

Apakah kod aturcara untuk memaparkan nama “Helen Ai”?

4. Untuk memaparkan huruf ”K” pada nama John Kong, kod aturcara berikut perlu ditulis.

printf(”%c”,nama[0][5]);

Apakah kod aturcara untuk memaparkan huruf ”J” pada nama Aminah Jo?.

68
MODUL PROGRAMMING SEMESTER 2

MENGINPUT NILAI MENGUNAKAN TATASUSUN DUA DIMENSI

1. Contoh aturcara C : perlu guna pernyataan for

#include<stdio.h>

void main()
{

int nombor[4][2];
int x,y;

for(x=0;x<4;x++) //untuk baris


{
for(y=0;y<2;y++) //untuk lajur
{
printf("Masukkan Nombor : ");
scanf("%d",&nombor[x][y]);
}
}

printf("%d",nombor[1][1]);

MEMPAPARKAN NILAI TATASUSUN DUA DIMENSI

#include<stdio.h>

void main()
{
int nombor[4][2];
int x,y;

for(x=0;x<4;x++)
{
for(y=0;y<2;y++)
{
printf("Masukkan Nombor : ");
scanf("%d",&nombor[x][y]);
}
}
for(x=0;x<4;x++)
{
for(y=0;y<2;y++)
{
printf("%d",nombor[x][y]);
}
}

69
MODUL PROGRAMMING SEMESTER 2

TATASUSUN DUA DIMENSI YANG MELIBATKAN “STRING” (RENTETAN)

a) Melibatkan penetapan nilai awalan

#include <stdio.h>

void main()
{

char arr[3][14]= { "Rose", "India", "technologies" };

printf("Array of String is = %s,%s,%s\n",arr[0],arr[1],arr[2]);

b) Tidak Melibatkan penetapan nilai awalan

#include <stdio.h>

void main()
{

char arr[3][14];
int i;

for(i=0;i<3;i++)
{
printf("Masukkan Nama anda : ");
scanf("%s",arr[i]);
}

printf("Array of String is = %s,%s,%s\n",arr[0],arr[1],arr[2]);

}
ISIHAN SISIPAN ( INSERTION SORTING ) DAN ISIHAN GELEMBUNG (BUBBLE SORTING)

1. Isihan data bermakna menyusun data secara menial atau menurun.

70
MODUL PROGRAMMING SEMESTER 2

2. Isihan secara menaikan bermakna menyusun data-data dari nilai yang terkecil kepada nilai yang
terbesar.

Contoh : 23,33,43,53,63 atau A,B,B,D,E,F atau chee, chong, chung, chye

3. Isihan secara menurun pula bermakna menyususn data-data dari nilai terbesar kepada nilai
terkecil.

Contoh : 63,53,43,33,23 atau F,E,D,C,B,A atau chye, chung, chong, chee

4. Terdapat dua kaedah pengisihan data; iaitu :

a) Isihan sisipan (Insertion sorting)


b) Isihan gelembung (Bubble Sorting)

ISIHAN SISIPAN

1. Isihan sisipan menggunakan konsep semak dari mula hingga akhir dan kemudian sisip.

2. Contoh Isihan sisipan untuk jujukan nombor di bawah ini secara isihan menaik.

56 34 78 29

Laluan 1

56 34 78 29
56 34 78 29
56 34 78 29
56 34 78 29
29 56 34 78 29 disisip pada kedudukan ke 1

Lalauan 2

29 56 34 78
29 56 34 78
29 56 34 78
29 56 34 78
29 34 56 78 34 disisip pada kedudukan ke 2

Laluan 3

29 34 56 78
29 34 56 78
29 34 56 78
29 34 56 78
29 34 56 78 56 dikekalkan pada kedudukan ke 3

Laluan 4

29 34 56 78

71
MODUL PROGRAMMING SEMESTER 2

29 34 56 78
29 34 56 78
29 34 56 78
29 34 56 78 78 dikekalkan pada kedudukan ke 4

Maka isihan secara menaik bagi nombor di atas adalah 29 34 56 78

3. Contoh Isihan sisipan yang melibatkan teks.

ACB, ADB, ABC, AAC, AAA

Laluan 1(Path1)
ACB, ADB, ABC, AAC, AAA
ACB, ADB, ABC, AAC, AAA        Periksa unsur dari mula-akhir
ACB, ADB, ABC, AAC, AAA
ACB, ADB, ABC, AAC, AAA
ACB, ADB, ABC, AAC, AAA
AAA, ACB, ADB, ABC, AAC ( AAA ialah unsur pertama/dipindahkan)
 
Laluan 2
AAA, ACB, ADB, ABC, AAC
AAA, ACB, ADB, ABC, AAC        Periksa unsur dari mula-akhir
AAA, ACB, ADB, ABC, AAC
AAA, ACB, ADB, ABC, AAC
AAA, ACB, ADB, ABC, AAC
AAA, AAC, ACB, ADB, ABC ( AAC ialah unsur kedua/dipindahkan)

Laluan 3
AAA, AAC, ACB, ADB, ABC
AAA, AAC, ACB, ADB, ABC
AAA, AAC, ACB, ADB, ABC        Periksa unsur dari mula-akhir
AAA, AAC, ACB, ADB, ABC
AAA, AAC, ACB, ADB, ABC
AAA, AAC, ABC, ACB, ADB (ABC ialah unsur ketiga/dipindahkan)
 
Laluan 4
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB        Periksa unsur dari mula-akhir
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB (ACB ialah unsur keempat/dikekalkan)

Laluan 5
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB        Periksa unsur dari mula-akhir
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB
AAA, AAC, ABC, ACB, ADB (ADB ialah unsur kelima/dikekalkan)
 

72
MODUL PROGRAMMING SEMESTER 2

Maka,
AAA, AAC, ABC, ACB, ADB        (Susunan Secara Menaik Terhasil)

ISIHAN GELEMBUNG

1. Isihan gelembung ini menggunakan konsep perbandingan iaitu perbandingan di antara dua data.
2. Contoh Isihan gelembung bagi jujukan teks di bawah secara menaik adalah seperti berikut :

ACB, ADB, ABC, AAC, AAA


 
Laluan 1
ACB, ADB, ABC, AAC, AAA         (Unsur 1 & 2 dibandingkan/dikekalkan)
ACB, ADB, ABC, AAC, AAA         (Unsur 2 & 3 dibandingkan/Tukarganti)
ACB, ABC, ADB, AAC, AAA         (Unsur 3 & 4 dibandingkan/Tukarganti)
ACB, ABC, AAC, ADB, AAA         (Unsur 4 & 5 dibandingkan/Tukarganti)
ACB, ABC, AAC, AAA, ADB         (Tiada unsur untuk dibandingkan/Ulang)
 
Laluan 2
ACB, ABC, AAC, AAA, ADB         (Unsur 1 & 2 dibandingkan/Tukarganti)
ABC, ACB, AAC, AAA, ADB         (Unsur 2 & 3 dibandingkan/Tukarganti)
ABC, AAC, ACB, AAA, ADB         (Unsur 3 & 4 dibandingkan/Tukarganti)
ABC, AAC, AAA, ACB, ADB         (Unsur 4 & 5 dibandingkan/Dikekalkan)
ABC, AAC, AAA, ACB, ADB         (Tiada unsur untuk dibandingkan/Ulang)
 
Laluan 3
ABC, AAC, AAA, ACB, ADB         (Unsur 1 & 2 dibandingkan/Tukarganti)
AAC, ABC, AAA, ACB, ADB         (Unsur 2 & 3 dibandingkan/Tukarganti)
AAC, AAA, ABC, ACB, ADB         (Unsur 3 & 4 dibandingkan/Dikekalkan)
AAC, AAA, ABC, ACB, ADB         (Unsur 4 & 5 dibandingkan/Dikekalkan)
AAC, AAA, ABC, ACB, ADB         (Tiada unsur untuk dibandingkan/Ulang)
 
Laluan 4
AAC, AAA, ABC, ACB, ADB         (Unsur 1 & 2 dibandingkan/Tukarganti)
AAA, AAC, ABC, ACB, ADB         (Unsur 2 & 3 dibandingkan/Dikekalkan)
AAA, AAC, ABC, ACB, ADB       (Unsur 3 & 4 dibandingkan/Dikekalkan)
AAA, AAC, ABC, ACB, ADB       (Unsur 4 & 5 dibandingkan/Dikekalkan)
AAA, AAC, ABC, ACB, ADB       (Tiada unsur untuk dibandingkan/Tamat)
 
Maka, AAA, AAC, ABC, ACB, ADB (Susunan Secara Menaik Terhasil)
PERBANDINGAN ANTARA ISIHAN SISIPAN DAN ISIHAN GELEMBUNG

Daripada dua kaedah isihan yang ditunjuk di atas, kesimpulan yang dapat dibuat ialah isiahan
gelembung adalag kaedah yang lebih berkesan dan cepat dalam isihan data-data.

LATIHAN :

1. Isihankan jujukan nombor dibawah ini secara menurun menggunakan kaedah :

56, 89, 23, 90, 45

73
MODUL PROGRAMMING SEMESTER 2

a) isihan sisipan
b) isihan gelembung

Kod Sumber untuk Isihan Sisipan


1. #include <stdio.h>
2. main()
3. {
4. int i,j,key;
5. int a[5]={5,2,3,4,1};
6. for(i=1;i<5;i++)
7. {
8. key=a[i];
9. while(i>0 && a[i-1]>key) {
10. j=a[i];
11. a[i]=a[i-1];
12. a[i-1]=j;
13. --i;
14. }
15. }
16. int k;
17. for(k=0;k<5;k++)
18. {printf("%d ", a[k]);}
19. printf("\n");
20. }

Kod Sumber untuk Isihan Gelembung


1. #include <stdio.h>
2. main()
3. {
4. int i,j,x;
5. int a[5]={5,2,3,4,1};
6. for(i=0;i<5;i++) {
7. for(j=i+1;j<5;j++) {
8. if(a[i]>a[j]) {
9. x=a[i];
10. a[i]=a[j];
11. a[j]=x;
12.

74
MODUL PROGRAMMING SEMESTER 2

13. }
14. }
15. }
16. int k;
17. for(k=0;k<5;k++) {printf("%d ",a[k]);} printf("\n");
18. }

CARIAN LINEAR (LINEAR SEARCH)

 Dalam Sains Komputer, Carian Linear (linear search) adalah algoritma carian secara carian
secara jujukan atau urutan
 Sesuai untuk mencari satu set data.
 Cara operasinya ialah menyemak setiap elemen dalam senarai secara perbandingan
sehingga padan dengan item yang hendak dicari.
 Contoh Aturcara carian secara linear

#include<stdio.h>
#include<stdlib.h>
int main()
{
int no[5]={1,3,5,7,9};
int noDicari=9;
int i=0;

for (i=0;i<5;i++)
{
printf("No %d ",no[i]);

if(noDicari==no[i])
{
printf("No %d dapat dicari",noDicari);
return 0; //tamat
}
}
printf("No %d dapat dapat dicari",noDicari);
KONSEP DAN PERNYATAAN DATA STRUKTUR

A) KONSEP DATA STRUKTUR

1. Apa itu struktur Data?

 Struktur adalah satu kumpulan pembolehubah yg dikumpulkan & dirujuk di bawah satu nama @
pencam.
 Struktur ialah jenis data yang ditakrif oleh pengguna
 data terdiri dari jenis yang berlainan yang membentuk maklumat mengenai sesuatu data
 berbeza dengan tatasusunan yang terdiri dari jenis data yang sama
2. Binaan Data yang disimpan dalam bentuk lajur dan setiap lajur akan menghasilkan satu rekod.

7501 salimah 6 Lotus 17 kudat

3. kaedah penyimpanan data adalah seperti penyimpanan rekod dalam bahasa Pascal (bentuk
jadual).

75
MODUL PROGRAMMING SEMESTER 2

B) PENGISYTIHARAN STRUKTUR DATA

1. Cara Pengisytiharan struktur data adalah seperti berikut :

struct butirMarkah
{
char nama[20];
char jantina;
int BI;
int BM;
int SNS;
float purata;
};

2. Arahan struct memberitahu pengkompilan bahasa C bahwa aturcara telah menakrifkan satu data
berstruktur yang dinamakan markah.

3. Jika kita ingin memasukan butiran markah untuk pelajar kelas Siber, kita perlu isytiharkan satu
pembolehubah seperti berikut :

Cara 1:

struct butirMarkah pelSiber; **pelSiber mewakili pemboleubah pelajar siber.

Cara 2:

struct butirMarkah
{
char nama[20];
char jantina;
int BI;
int BM;
int SNS;
float purata;
}pelSiber;

4. Penyisytiharan di atas akan mengarahkan komputer menyediakan ruangan memori untuk


menyimpanan markah untuk chong seperti berikut :

Penyimpanan data dalam data struktur :

pelSiber.nam pelSiber.jantin pelSiber.B pelSiber.B pelSiber.SN pelSiber.purat


a a I M S a

76
MODUL PROGRAMMING SEMESTER 2

C ) UMPUKAN NILAI AWALAN KEPADA STRUKTUR DATA.

1. Untuk memasukkan nama,jantina dan markah BM,BI ,SNS dan purata untuk kelas siber adalah
seperti berikut :

Cara 1: umpukan niai secara set kumpulan

struct butirMarkah pelSiber ={“Helen John”,’P’,78,56,78,70.7};

Cara 2: umpukan nilai secara satu-satu

strpcpy(pelSiber.nama,”Helen John”);
**penggunaan fungsi strcpy() perlu mengiytiharkan #include<string.h> .Nama Helen John perlu
menggunakan tanda “ “.

pelSiber.jantina=’L’; **huruf L perlu menggunakan tanda ‘ ‘ sebab jenid data aksara

pelSiber.BI=78;

pelSiber.BM=56;

pelSiber.SNS=78;

pelSiber.purata=70.7;

D) MENGINPUT DATA KEPADA STRUKTUR DATA.

1. Cara input data kepada struktur data adalah seperti berikut :

printf(“Nama :\n”);
gets(pelSiber.nama);

printf(“Jantina :\n”);
scanf(“%c”,& pelSiber.jantina);

printf(“BI :\n”);
scanf(“%c”,& pelSiber.BI);

printf(“BM :\n”);
scanf(“%c”,& pelSiber.BM);

printf(“SNS :\n”);
scanf(“%c”,& pelSiber.SNS);

printf(“PURATA :\n”);
scanf(“%c”,& pelSiber.purata);
E) PAPARAN HASIL OUTPUT STRUKTUR DATA.

77
MODUL PROGRAMMING SEMESTER 2

1. Cara memaparkan hasil output data dalam struktur adalah seperti berikut :

printf(“KELAS : %s”, pelSiber.nama);


printf(“JANTINA : %c”, pelSiber.jantina);
printf(“MARKAH BI : %d”, pelSiber .BI);
printf(“PURATA : %f”, pelSiber.purata);

***Jika berlakunya kes ‘skip’ sila guna “fflush(stdin);”.

E) STRUKTUR DATA MELIPATKAN TATASUSUN (ARRAY)

1. Jika kita ingin membina satu data struktur bagi menyimpan butiran Markah Ujian untuk
memasukan butiran 3 orang pelajar,maka kita perlu menggunakan struktur data yang melipatkan
tatasusun (array).

2. Cara pengisytiharan adalah seperti berikut :

Cara 1:

struct butirMarkah
{

char nama[20];
char jantina;
int BI;
int BM;
int SNS;
float purata;

}pelSiber[3];

Cara 2:

struct butirMarkah pelSiber[3];

*** Perhatian data struktur di atas. Berapa bilangan markah ujian pelajar yang boleh dimasukkan?

78
MODUL PROGRAMMING SEMESTER 2

3. Penyisytiharan di atas akan mengarahkan komputer menyediakan ruangan memori untuk


menyimpanan markah untuk pelSiber[3] secara tatasusun seperti berikut :

Penyimpanan data dalam data struktur secara tatasusun :

pelSiber[0].nama pelSiber[0]..jantina pelSiber[0]..BI pelSiber[0].BM pelSiber[0].SNS pelSiber[0].purata


pelSiber[1].nama pelSiber[1].jantina pelSiber[1].BI pelSiber[1].BM pelSiber[1].SNS pelSiber[1].purata
pelSiber[2].nama pelSiber[2].jantina pelSiber[2].BI pelSiber[2].BM pelSiber[2].SNS pelSiber[2].purata

4. Mengumpuk nilai awalan kepada struktur data.

Cara 1:

struct butirMarkah pelSiber[3]={ {“Ah Chong”,’L’,78,45,67,34.5},


{“Helen Ai”,’P’,23,23,23,23.0},
{“Aminah T”,’P’,50,50,45,45.6}};

**Perhatian Nama ah chong akan disimpan dalam memori berindekkan “pelSiber[0].nama”.


Apakah alamat indek bagi nama Helen Ai?

Cara 2:

strcpy(pelSiber[0].nama,"Ah Chong");
pelSiber[0].jantina='L';
pelSiber[0].BI=78;
pelSiber[0].BM=56;
pelSiber[0].SNS=78;
pelSiber[0].purata=70.7;

** kod di atas hanya mengumpuan butiran markah Ah Chong Sahaja. Indek [0] adalah indek rujukan
untuk butiran markah Ah Chong. Cara 1 adalah lebih berkesan dan tidak memerlukan penulisan kod
aturcara yang panjang.

4. Input data kepada struktur data bentuk tatasusun (Array)

- struktur data secara tatasusun memerlukan penginputan data secara berulang-ulang. Maka
bagi memasukkan data secara berulang ini. Penggunaan kenyataan “while”,”do..while” dan
“for” perlu digunakan.
- Berikut merupakan contoh penginputan data mengguakan kenyataan for.

struct rekodUjian kelasSiber[3];

int i;

for(i=0;i<3;i++)
{
printf("\n\nSila Masukkan data ujian berikut : \n\n");

79
MODUL PROGRAMMING SEMESTER 2

fflush(stdin);
printf("Nama : ");
gets(kelasSiber[i].nama);

printf("\nmarkah BM : ");
scanf("%d",&kelasSiber[i].markBM);

printf("\nmarkah BI : ");
scanf("%d",&kelasSiber[i].markBI);

printf("\nmarkah SN : ");
scanf("%d",&kelasSiber[i].markSN);

printf("\nPurata : ");
scanf("%f",&kelasSiber[i].purata);

5. Memaparkan hasil output berdasarkan struktur data secara tatasusun.

- Berdasarkan penginput data di atas, data-data tersebut boleh dipapar semula melalui cara
berikut :

for(i=0;i<3;i++)
{
printf("Nama : %s\n",kelasSiber[i].nama);
printf("BM : %d\n",kelasSiber[i].markBM);
printf("BI : %d\n",kelasSiber[i].markBI);
printf("SN : %d\n",kelasSiber[i].markSN);
printf("Purata : %.1f\n\n",kelasSiber[i].purata);

6. Contoh di atas adalah paparan untuk semua data kelasSiber secara tatasusun. Bagaimana pula
cara kita hendak paparkan nama seseorang itu. Katakan kita ada satu pengisytiharan seperti begitu :

struct butirMarkah pelSiber[3]={ {“Ah Chong”,’L’,78,45,67,34.5},


{“Helen Ai”,’P’,23,23,23,23.0},
{“Aminah T”,’P’,50,50,45,45.6}};

Kompiler akan mengarah computer di simpan secara bertatasusun dalam memori computer
berdasarkan indek seperti berikut :

pelSiber[0].nama pelSiber[0].jantina pelSiber[0].BI pelSiber[0].BM pelSiber[0].SNS pelSiber[0].purata

AhChong L 78 45 67 34.5
pelSiber[1].nama pelSiber[1].jantina pelSiber[1].BI pelSiber[1].BM pelSiber[1].SNS pelSiber[1].purata

Helen Ai P 23 23 23 23.0
pelSiber[2].nama pelSiber[2].jantina pelSiber[2].BI pelSiber[2].BM pelSiber[2].SNS pelSiber[2].purata

80
MODUL PROGRAMMING SEMESTER 2

Aminah T P 50 50 45 45.6

Jadi untuk paparkan nama ah chong, penulisan aturcara adalah seperti berikut :

printf(“%s”,pelSiber[o].nama);

Alamat
indek nama
Ah Chong

**Kita hanya perlu merujuk kepada alamat indek sesuatu output yang perlu kita cetak.

**Jadi apakah aturcara kod untuk memaparkan markah BM Aminah T?

81

Anda mungkin juga menyukai