The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Module dan Tutorial C Programming BM v3

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by sekolah-142, 2021-04-09 10:52:10

Module C Programming BM v3

Module dan Tutorial C Programming BM v3

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

Soalan:
Apakah nilai output bagi aturcara C berikut:
a) printf(“%c”,nama[2]);
b) printf(“%c”,nama[3]);

4. Mempaparkan nilai tatasusun satu dimensi menggunakan pernyata for.

1. Anda masih ingat pernyata for ? Format penulisan pernyataan for adalah seperti berikut :

for(awalan,ujian,pengemaskinian)
{

ungkapan
}

Contoh:

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

ungkapan
}

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

3. Contoh aturcara C adalah seperti berikut :

indeks +1 +1 +1

[0] [1] [2] [3]
abc d

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

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

Soalan :

Tuliskan aturcara output menggunakan pernyata for untuk memaparkan huruf a dan c di
dalam Compiler C

51

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

5. Menginput nilai tatasusun satu dimensi menggunakan pernyata for.

Menginput 5 nilai integer : Pembolehubah i adalah wakil nilai
gelungan nombor indek
#include<stdio.h>
void main() Ulang 1: Masukkan nilai elemen ke-1
{ dalam indek [0] (nilai index i=0)

int nombor[5],i,j; Ulang2: Masukkan nilai elemen ke-2
// untuk arahan input ulangan 5 kali dalam indek [1] (nilai index i=1)

for (i=0; i<5; i++) Ulang 3: Masukkan nilai elemen ke-3
{ dalam indek [2] (nilai index i=2)

printf (“masukkan nombor: “); Ulang 4: Masukkan nilai elemen ke-4
scanf (“%d”, & nombor [i]); dalam indek [3] (nilai index i=3)
}
// untuk paparan nombot yang telah Ulang 5: Masukkan nilai ke-5 dalam
dimasukan 5 kali indek [4] (nilai index i=4)
for (j=0; j<5; j++)
{
printf (“%d”, nombor [j]);
}
}

6. Tatasusun satu dimensi melibatkan pengiraan

void main ()
{

int nombor [5], i;
int jumlah=0;

//ulang untuk arahan input 5 kali dan disimpan nilai nombor di dalam
tatasusun nombor yang bersaiz 5
for (i=0; i<5; i++)
{

printf ("masukkan nombor: ");
scanf ("%d”, &nombor[i]);
}

//ulang untuk memaparkan nilai nombor yang disimpan di dalam
tatasusun nombor yang bersaiz 5
for (i=0; i<5; i++)
{

printf ("%d", nombor[i]);
jumlah=jumlah+nombor[i];
}
printf ("PURATA: %d”, jumlah/5);
}

Soalan:

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

52

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

Latihan

1. Kaji aturcara di bawah ini.

#include<stdio.h> //baris1

void main () //baris2

{ //baris3

int nilai [6], i; //baris4

//baris5

for (i=0; i<6; i++) //baris6

{ //baris7

printf ("Masukkan nombor untuk Elemen ke- %d “, i+1); //baris8

scanf ("%d”, &nilai[i]); //baris9

} //baris10

printf ("Nilai Elemen ke-5: %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-8
c) Apakah output bagi baris ke-11.

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

e) Gantikan pernyataan for dengan pernyataan do….while.
f) Tuliskan ungkapan aturcara untuk mengira jumlah semua nilai yang dimasukkan.
7. 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 jumPel=0, jumL=0, jumP=0, i;
for(i=0;i<5;i++)
{

jumPel=jumPel+1;

if(jantina[i]=='L')
jumL=jumL + 1;

else
jumP=jumP+kaunter;

}//tamat for
printf ("Jumlah Pelajar: %d\n”, jumPel);
printf ("Jumlah Pelajar Lelaki: %d\n”, jumL);
printf ("Jumlah Pelajar Perempuan: %d\n”, jumP);
}//tamat main

53

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

B) TATASUSUN 2 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]

baris (row) Lajur (column)

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

01 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.

a) Mengumpuk nilai dalam tatasusun 2 dimensi melibatkan nombor

1. Nilai awal boleh ditetapkan seperti berikut :

int nombor [4][2]={ {1,2}, atau int nombor [4][2]={ {1,2},{3,5},{6,7},{8,9}}
{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)
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.

54

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

3. 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]);
}
b) Mengumpuk nilai dalam tatasusun 2 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 :

0123456789

0J o hn K o n g \0

1Am i n a h J o \0

2H 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?.

c) Menginput nilai mengunakan tatasusun 2 dimensi

1. Contoh aturcara C : perlu guna pernyataan for

#include<stdio.h>
void main ()
{

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

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

for (y=0; y<2; y++) //untuk lajur(column)
{

printf ("Masukkan Nombor: ");
scanf ("%d”, &nombor[x][y]);
}
}
printf ("%d”, nombor [1][1]);
}

55

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

d) Mempaparkan nilai tatasusun 2 dimensi

#include<stdio.h>
void main ()
{

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

//ulangan untuk input tatasusun 2 dimensi
for (x=0; x<4; x++) // baris
{

for (y=0; y<2; y++) //lajur
{

printf ("Masukkan Nombor: ");
scanf ("%d”, &nombor[x][y]);
}
}

//ulangan untuk paparan tatasusun 2 dimensi
for (x=0; x<4; x++)// baris
{

for (y=0; y<2; y++)//lajur
{

printf ("%d”, nombor[x][y]);
}
}
}

e) Tatasusun dua dimensi yang melibatkan “string” (rentetan)
i) 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]);
}
ii) 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]);
}

56

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

C) Isihan Sisipan (Insertion Sorting) dan Isihan Gelembung (Bubble Sorting)

1. Isihan data bermakna menyusun data secara menial atau menurun.
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)

i) 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
Laluan 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
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

57

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

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)

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

58

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

ii) 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 (Unsur 1 & 2 dibandingkan/dikekalkan)
ACB, ADB, ABC, AAC, AAA (Unsur 2 & 3 dibandingkan/Tukarganti)
ACB, ADB, ABC, AAC, AAA (Unsur 3 & 4 dibandingkan/Tukarganti)
ACB, ABC, ADB, AAC, AAA (Unsur 4 & 5 dibandingkan/Tukarganti)
ACB, ABC, AAC, ADB, AAA (Tiada unsur untuk dibandingkan/Ulang)
ACB, ABC, AAC, AAA, ADB

Laluan 2 (Unsur 1 & 2 dibandingkan/Tukarganti)
ACB, ABC, AAC, AAA, ADB (Unsur 2 & 3 dibandingkan/Tukarganti)
ABC, ACB, AAC, AAA, ADB (Unsur 3 & 4 dibandingkan/Tukarganti)
ABC, AAC, ACB, AAA, ADB (Unsur 4 & 5 dibandingkan/Dikekalkan)
ABC, AAC, AAA, ACB, ADB (Tiada unsur untuk dibandingkan/Ulang)
ABC, AAC, AAA, ACB, ADB

Laluan 3 (Unsur 1 & 2 dibandingkan/Tukarganti)
ABC, AAC, AAA, ACB, ADB (Unsur 2 & 3 dibandingkan/Tukarganti)
AAC, ABC, AAA, 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)
AAC, AAA, ABC, ACB, ADB

Laluan 4 (Unsur 1 & 2 dibandingkan/Tukarganti)
AAC, AAA, 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)
AAA, AAC, ABC, ACB, ADB

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
a) isihan sisipan
b) isihan gelembung

59

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

Kod Sumber untuk Isihan Sisipan

#include <stdio.h>

int main ()
{ int i, j, key, a[5]={5,2,3,4,1};

for (i=1; i<5; i++)
{ key=a[i];

while(i>0 && a[i-1]>key)
{ j=a[i];

a[i]=a[i-1];
a[i-1] =j;
--i;
}
}

int k;
for (k=0; k<5; k++)
{ printf ("%d ", a[k]);}

printf("\n");
}
}

Kod Sumber untuk Isihan Gelembung

#include <stdio.h>

int main ()
{

int i, j, x, a [5] = {5,2,3,4,1};

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

{ if(a[i]>a[j])
{ x=a[i];
a[i]=a[j];
a[j]=x;

}
}
}

int k;
for (k=0; k<5; k++)
{

printf ("%d “, a[k]);
}
printf("\n");
}

60

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

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);
}

61

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

14 KONSEP DAN PERNYATAAN DATA STRUKTUR

A) Konsep Data Struktur

1. Apa itu Data Struktur?

Struktur adalah satu kumpulan pembolehubah yg dikumpulkan & dirujuk di bawah satu nama
@ pencam.
Struktur ialah jenis data yang ditakrif oleh pengguna
Data struktur terdiri dari jenis yang berlainan yang membentuk maklumat mengenai sesuatu
data
Berbeza dengan tatasusun yang terdiri dari jenis data yang sama

2. Binaan Data yang disimpan dalam bentuk lajur dan setiap lajur akan menghasilkan satu rekod.

2020 Chew 6 AS 2 18 Kuala Lumpur

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

B) Pengisytiharan Struktur Data

1. Cara Pengisytiharan struktur data adalah seperti berikut:

struct Pekerja
{

int noPekerja;
char nama [20];
char jantina;
float gaji;
};

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

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

Cara 1: struct Pekerja Acer; **Acer mewakili pembolehubah pekerja syarikat Acer.

Cara 2:

struct Pekerja
{

int noPekerja;
char nama [20];
char jantina;
float gaji;
} Acer;

62

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

4. Penyisytiharan di atas akan mengarahkan komputer menyediakan ruangan memori untuk
menyimpanan markah untuk chong seperti berikut:

Penyimpanan data dalam data struktur:

Acer.noPekerja Acer.nama Acer.jantina Acer.gaji

C) Umpukan Nilai Awalan Kepada Struktur Data

Untuk memasukkan nombor kad pengenalan nama, jantina dan gaji untuk kelas siber adalah seperti
berikut:

Cara 1: umpukan niai secara set kumpulan

struct Pekerja Acer = {1112, “Chew Jenn Lih”,’L’,4500.00};

Cara 2: umpukan nilai secara satu-satu

strpcpy (Acer.nama,” Chew Jenn Lih”);
**penggunaan fungsi strcpy () perlu mengiytiharkan #include<string.h>. Nama Chew Jenn Lih perlu

menggunakan tanda “ “.

Acer.jantina = ’L’; **huruf L perlu menggunakan tanda ‘ ‘ sebab jenis data aksara

Acer.noPekerja = 1112;

Acer.gaji = 4500.00

D) Menginput Data Kepada Struktur Data

Cara input data kepada struktur data adalah seperti berikut:

printf (“No Pekerja:\n”);
scanf (“%d”, & Acer.noPekerja);

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

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

printf (“Gaji:\n”);
scanf (“%f”, &Acer.gaji);

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

63

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

E) Paparan Hasil Output Struktur Data

Cara memaparkan hasil output data dalam struktur adalah seperti berikut:

printf (“No Pekerja: %d”, Acer.noPekerja);
printf (“Nama: %s”, Acer.nama);
printf (“Jantina: %d”, Acer. jantina);
printf (“Gaji: %f”, Acer.gaji);

F) Struktur Data Melipatkan Tatasusun (Array)

1. Jika kita ingin membina satu data struktur bagi menyimpan maklumat pekerja untuk memasukan
makulmat 3 orang pekerja, maka kita perlu menggunakan struktur data yang melipatkan
tatasusun (array).

2. Cara pengisytiharan adalah seperti berikut:

Cara 1:

struct Pekerja
{

int noPekerja;
char nama [20];
char jantina;
float gaji;
} Acer [3];

Cara 2:

struct Pekerja Acer [3];

3. Penyisytiharan di atas akan mengarahkan komputer menyediakan ruangan memori untuk
menyimpanan maklumat pekerja untuk 3 orang pekerja secara tatasusun seperti berikut:

Penyimpanan data dalam data struktur secara tatasusun:

Acer [0]. noPekerja Acer [0]. nama Acer [0]. jantina Acer [0]. gaji
Acer [1]. noPekerja Acer [1]. nama Acer [1]. jantina Acer [1]. gaji
Acer [2]. noPekerja Acer [2]. nama Acer [2]. jantina Acer [2]. gaji

4. Mengumpuk nilai awalan kepada struktur data.

Cara 1:

struct Pekerja Acer [3] = {{1112, “Chew Jenn Lih”,’L’,4500.00},
{1113, “Helen Ai”,’P’,3200.00},
{1114, “Aminah T”,’P’, 4500.00}};

64

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

**Perhatian Nama Chew Jenn Lih akan disimpan dalam memori berindekkan “Acer [0]. nama”.
Apakah alamat indek bagi nama Helen Ai?

Cara 2:

Acer [0]. noPekerja = 1112;
strcpy (Acer [0]. nama,"Chew Jenn Lih");
Acer [0]. jantina = 'L';
Acer [0]. gaji = 4500.00;

Indek [0] adalah indek rujukan untuk maklumat pekerja Chew Jenn Lih. Cara 1 adalah lebih
berkesan dan tidak memerlukan penulisan kod aturcara yang panjang.

5. 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 for digunakan
sekiranya tahu bilangan pekerja yang ingin disimpan maklumatnya.

Berikut merupakan contoh penginputan data menggunakan kenyataan for.

struct Pekerja Acer [3];
int i;

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

printf ("\n\n No Pekerja ke-%d: ", i+1);
scanf ("%d”, &Acer[i]. noPekerja);

printf ("\n Nama: ");
gets (Acer[i]. nama);

printf ("\n Jantina (L/P): ");
scanf ("%c”, &Acer[i]. jantina);

printf ("\n Gaji: ");
scanf ("%f”, &Acer[i]. gaji);
}

6. Memaparkan hasil output berdasarkan struktur data secara tatasusun.

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

printf ("\n\n Maklumat Pekerja: \n");
printf ("\n *********************\n");

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

65

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

printf ("\n\n No Pekerja ke-%d: %d”, i+1, Acer[i]. noPekerja);
printf ("\n Nama : %s", Acer[i]. nama);
printf ("\n Jantina : %c ",Acer[i].jantina);
printf ("\n Gaji : %.2f", Acer[i]. gaji);
}

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

struct Pekerja Acer [3] = {{1112, “Chew Jenn Lih”,’L’,4500.00},
{1113, “Helen Ai”,’P’,3200.00},
{1114, “Aminah T”,’P’, 4500.00}};

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

Acer [0]. noPekerja Acer [0]. nama Acer [0]. jantina Acer [0]. gaji
1112 Chew Jenn Lih L 4500.00

Acer [1]. noPekerja Acer [1]. nama Acer [1]. jantina Acer [1]. gaji
1113 Helen Ai P 3200.00

Acer [2]. noPekerja Acer [2]. nama Acer [2]. jantina Acer [2]. gaji
1114 Aminah T P 4500.00

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

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

Alamat indek
nama Chew Jenn
Lih

**Kita hanya perlu merujuk kepada alamat indek sesuatu output yang perlu kita cetak.
**Jadi apakah aturcara kod untuk memaparkan gaji Aminah T?

Penggunaan kenyataan while dan do while digunakan sekiranya tidak mengetahui bilangan
pekerja yang ingin disimpan maklumatnya dan sesuai untuk pilihan menu berhenti atau teruskan.

Contoh atucara menggunakan do while kod C:
#include<stdio.h>
#include<ctype.h>

struct Pekerja int noPekerja;
{ char nama [20];
char jantina;
}; float gaji;

66

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

int main ()
{

struct Pekerja Acer [10];
int i = 0, j;

do
{

printf ("\n No Pekerja ke-%d (0 untuk tamat): “, i+1);
scanf ("%d", &Acer[i]. noPekerja);

if (Acer[i]. noPekerja == 0)
break;

fflush (stdin);

printf ("\n Nama: ");
gets (Acer[i]. nama);

Mesej1:
fflush (stdin);
printf ("\n Jantina (L/P): ");
scanf ("%c", &Acer[i]. jantina);

Acer[i]. jantina = toupper (Acer[i]. jantina);

if ((Acer[i]. jantina! = 'L’) &&(Acer[i]. jantina! = 'P'))
{ printf ("\n Maaf salah kod jantina.");

goto Mesej1;
}

printf ("\n Gaji: ");
scanf ("%f", &Acer[i]. gaji);

i++;

} while (Acer[i]. noPekerja > 0);

printf ("\n\n Maklumat Pekerja Acer \n");
printf ("\n **********************\n");

for (j =0; j < i; j++)

{

printf ("\n\n No Pekerja ke-%d : %d",j+1, Acer[j]. noPekerja);

printf ("\n Nama : %s", Acer[j]. nama);

printf ("\n Jantina : %c ",Acer[j].jantina);

printf ("\n Gaji : %.2f", Acer[j]. gaji);

}

return 0;

}

67

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

Contoh atucara menggunakan while kod C:
#include<stdio.h>
#include<ctype.h>

struct Pekerja int noPekerja;
{ char nama [20];
char jantina;
}; float gaji;

int main ()
{

struct Pekerja Acer [10];
int i = 0, j, kod = 1;

68

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2

while (kod > 0)
{

printf ("\n No Pekerja ke-%d: 11“, i+1);
scanf ("%d", &Acer[i]. noPekerja);

fflush (stdin);
printf ("\n Nama: ");
gets (Acer[i]. nama);

Mesej1:
fflush (stdin);
printf ("\n Jantina (L/P): ");
scanf ("%c", &Acer[i]. jantina);

Acer[i]. jantina = toupper (Acer[i]. jantina);

if ((Acer[i]. jantina! = 'L’) &&(Acer[i]. jantina! = 'P'))
{printf ("\n Maaf salah kod jantina.");
goto Mesej1;
}

printf ("\n Gaji: ");
scanf ("%f", &Acer[i]. gaji);

i++;

printf ("\n 0 untuk tamat dan tekan mana-mana nombor selain 0 untuk
teruskan: “, i+1);

scanf ("%d", &kod);
}

printf ("\n\n Maklumat Pekerja Acer \n");
printf ("\n **********************\n");

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

printf ("\n\n No Pekerja ke-%d : %d",j+1, Acer[j]. noPekerja);

printf ("\n Nama : %s", Acer[j]. nama);

printf ("\n Jantina : %c ",Acer[j].jantina);

printf ("\n Gaji : %.2f", Acer[j]. gaji);

}

return 0;
}

69

MODUL PENGATURCARAAN KOMPUTER BAHASA C SEMESTER 2
70


Click to View FlipBook Version