STM 1033 : ASAS PENGATURCARAAN
Rajah 7 Format fungsi dalam fail aturcara
140 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Format untuk mengisytiharkan fungsi ialah :
Format untuk definisi penuh fungsi pula ialah :
i. Jenis_nilai_dipulangkan ialah jenis data kepada keputusan yang
dipulangkan oleh fungsi itu. Fungsi tidak memulangkan sebarang
keputusan jika perkataan void digunakan. Jika tiada sebarang jenis
dinyatakan maka pengkompil bahasa C++ akan mengandaikan jenis
integer dipulangkan.
ii. Nama_fungsi boleh merupakan sebarang pengecam yang sah.
iii. Senarai parameter ialah senarai yang mengandungi pengisytiharan
parameter. Setiap satu parameter dipisahkan oleh koma. Argumen
yang dihantar kepada fungsi diterima melalui parameter ini. Fungsi
tidak akan menerima sebarang nilai jika senarai parameter adalah 0
(iaitu tiada) atau dinyatakan sebagai jenis void. Jenis integer akan
digunakan jika kita tidak menyatakan jenis kepada parameter yang
digunakan.
iv. Pengisytiharan_pemboleh ubah dan penyataan badan fungsi yang
terkandung dalam simbol “{“ dan “}” membentuk badan fungsi.
Badan fungsi juga boleh dirujuk sebagai blok yang terdiri daripada
pengisytiharan dan penyataan majmuk.
141 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Apabila fungsi dipanggil, kawalan atur cara dipindahkan ke
fungsi tersebut. Terdapat 3 cara untuk memulangkan semula,
kawalan ke tempat di mana fungsi dipanggil.
i) Jika fungsi itu tidak memulangkan sebarang nilai, maka
kawalan dipulangkan apabila simbol “}” yang menutup
badan fungsi itu ditemui.
ii) Perlaksanaan penyataan return.
iii) Jika fungsi yang dipanggil itu memulangkan nilai,
penyataan return ungkapan;
akan memulangkan nilai ungkapan itu kepada
pemanggilnya.
Apabila dipanggil, sesuatu fungsi boleh menerima atau
tidak menerima nilai. Sesuatu fungsi juga boleh
memulangkan atau tidak memulangkan apa-apa nilai
setelah habis perlaksanaannya. Gabungan dari kedua-dua
ciri ini maka fungsi boleh dibahagikan kepada 4 jenis iaitu :
i) Fungsi yang menerima nilai dan memulangkan nilai.
ii) Fungsi yang menerima nilai tetapi tidak memulangkan
nilai.
iii) Fungsi yang tidak menerima nilai dan tidak
memulangkan nilai.
iv) Fungsi yang tidak menerima nilai tetapi memulangkan
nilai.
142 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Semasa membina fungsi, jenis yang akan dibuat bergantung
kepada penggunaannya.
[A] Fungsi [C] dan Parameter fungsi
[B] Nama Fungsi
[F] Pengiraan untuk dipulangkan
Rajah 8 : Penerangan elemen-elemen sebuah fungsi
143 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
[A] ← Tugas fungsi gajipekerja ini ialah mengira dan memulangkan gaji
seorang pekerja. Gaji selalunya dinyatakan dengan nombor nyata. Oleh
itu jenis data pulangan ditetapkan sebagai float. Bagi fungsi yang tidak
memulangkan apaapa nilai, perkataan void diletakkan di sini.
[B] ← Nama gajipekerja dipilih bagi fungsi ini untuk melambangkan
tugasnya. Cara menamakan fungsi sama dengan syarat menamakan
pengecam dalam bahasa C++.
[C ] dan [D] ← Parameter fungsi diletakkan dalam kurungan selepas
nama fungsi. Untuk dan membina fungsi ini 2 parameter diperlukan.
Fungsi ini sepatutnya menerima kadar sejam dan jamkerja. Jamkerja
sesuai dinyatakan dengan nombor bulat (integer) manakala kadar
sejam boleh dinyatakan dengan nombor nyata. 3 perkara ini perlu
diberi perhatian semasa menyenaraikan parameter fungsi iaitu :
a) bilangan parameter
b) susunan parameter
c) jenis parameter
[E] ← Fungsi ini perlu memulangkan suatu nilai yang memaparkan hasil
pengiraan. Hasil pengiraan perlu diumpukkan ke dalam pemboleh ubah
dan pemboleh ubah tersebut perlu diisytiharkan dari jenis float.
[F] ← Setelah pengiraan dibuat dan jawapan telah diperolehi, jawapan
tersebut dipulangkan semula ke tempat di mana fungsi dipanggil (lihat
Rajah 8). Dalam bahasa C++, nilai dipulangkan dengan penyataan
return yang mempunyai format :
return (<nilai kembali>);
Sekiranya fungsi tidak memulangkan apa-apa nilai, penyataan return;
(iaitu tanpa kurungan) digunakan untuk mengembalikan kawalan atur
cara kepada pemanggil fungsi.
144 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Rajah 9 menunjukkan aturcara lengkap yang menggunakan
fungsi tersebut bagi mengira gaji pekerja
Rajah 9 Aturcara lengkap menggunakan fungsi
145 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.1.3 Parameter-parameter dalam
fungsi
Fungsi terbahagi kepada 2 iaitu:
a) Fungsi Tanpa Parameter
b) Fungsi Dengan Parameter
Bina Fungsi Tanpa Parameter
146 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh Masalah
Analisa Masalah
147 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Algoritma
148 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
149 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh :
150 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Rajah 10 Aturcara lengkap menggunakan fungsi tanpa parameter
151 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Bina Fungsi Dengan Parameter
Analisa Masalah
152 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Algoritma
153 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
154 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Rajah 11 Aturcara lengkap menggunakan fungsi dengan parameter
155 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh 1:
Keratan aturcara fungsi kiraLuas() yang
menggunakan fungsi parameter
156 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh 2 :
Aturcara lengkap fungsi kiraLuas() yang
menggunakan fungsi parameter
#include <istream>
using namespace std;
int
cout<<” Luas bulatan 1:\n” <<luasBulatan1;
cout<<” Masukkan nilai jejari:” ;
cin>>j;
cout<<” Luas bulatan 2:\n” <<luasBulatan2;
157 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.1.4 Panggilan dan pulangan fungsi
Memanggil fungsi
– Untuk melakukan sesuatu tugas,
fungsi perlu dipanggil
– Terdapat tiga perkara perlu
diketahui sebelum fungsi dapat
dipanggil :
1) Nama fungsi
2) Parameter yang diperlukan
3) Nilai yang akan dipulangkan
158 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Nama fungsi
– Fungsi dapat dipanggil dengan
menulis kembali nama fungsi yang
hendak dipanggil
– Selepas itu, diikuti dengan
bilangan data yang diperlukan
dengan urutan yang betul
Contoh:
– luas_segiempat (void);
– luas_segiempat (4, 4);
159 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Data yang dihantar kepada fungsi perlu
terdiri daripada jenis yang sama seperti
yang telah ditakrifkan pada senarai
fungsi
Bilangan data dan urutan juga perlu
sama seperti dalam takrifan fungsi
Data-data yang dihantar akan
digunakan sebagai nilai parameter
fungsi yang dipanggil
160 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh panggilan fungsi luas_segiempat:
161 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh cetakan segiempat ‘*’:
cetak_segiempat ( 4, 5, ‘*’)
void cetak_segiempat ( int panjang, int lebar, char simbol)
{
for ( int x = 1; x <= panjang; x++)
{
cout<<endl;
for ( int y = 1; y<= lebar; y++)
cout<<simbol;
}
}
162 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh:
1.cetak_segiempat (3, 6, ‘*’)
2.cetak_segiempat (6, 3, ‘*’)
3.cetak_segiempat (‘*’, 3, 6)
163 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Pemulangan nilai berlaku apabila
fungsi bukan dari jenis void
Nilai yang dipulangkan perlu
diuruskan dengan betul oleh
pengaturcara
– Memproses
– Menyimpan
– Mencetak
164 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh pengunaan:
• Menyimpan nilai
– luas = luas_segiempat(4, 4);
• Mencetak nilai
– cout<<luas_segiempat(4,4);
• Memproses nilai
– if (luas_segiempa(4,4)==0)
cout<<“Satu titik”;
else
cout<<“Segiempat”;
165 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.1.5 Penghantaran nilai kepada fungsi
Penghantaran nilai kepada fungsi
1) Penghantaran nilai sebenar
2) Penghantaran alamat nilai
166 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.1.6 Penghantaran nilai sebenar
Penghantaran nilai sebenar
Pemalar
Contoh: luas_segiempat(2, 2)
Pembolehubah
Contoh: luas_segiempat( x, y)
Ungkapan
Contoh: luas_segiempat((x-2), (y-4))
167 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.1.7 Penghantaran alamat nilai iaitu skop
pembolehubah dan prototaip fungsi
Menentukan kawasan di mana sesuatu
pembolehubah boleh digunakan.
Konsep ini penting untuk menentukan
perkongsian pembolehubah.
Skop pembolehubah dan fungsi
ditentukan oleh tempat dimana
pembolehubah dan fungsi berada.
Terdapat dua jenis skop:
– Setempat
– Sejagat
168 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
169 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
170 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
171 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Skop fungsi terdiri daripada:
1) Prototaip sejagat
2) Prototaip setempat
172 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh :
Rajah 12 Aturcara lengkap menggunakan prototaip fungsi
173 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.2 Pengenalan kepada tatasusunan
Satu struktur data yang boleh digunakan untuk
menyimpan senarai nilai daripada jenis data
tertentu.
Merupakan teknik yang amat sesuai untuk
mencetak atau membaca data yang lebih
daripada satu.
Sebagai contoh: Markah bagi 100 orang pelajar
dapat dicetak dan dibaca dengan mudah
dengan hanya menggunakan satu
pembolehubah.
Lebih cepat dan memudahkan kerja
berbanding dengan cara biasa di mana sesuatu
nilai data disimpan menggunakan satu
pembolehubah.
174 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Tatasusunan (array) dalam C++ merujuk
kepada suatu koleksi jujukan nilai yang:
– Mempunyai jenis data yang sama
– Menggunakan nama pembolehubah
yang sama; yakni satu pembolehubah
– Mempunyai saiz yang tertentu
– Mempunyai subskrip/indeks
i. Subskrip merupakan lokasi
ingatan yang diperuntukan oleh
ingatan komputer untuk sesuatu
data.
ii. Subskrip bermula dengan nilai 0.
175 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
KONSEP TATASUSUNAN
Tatasusunan ialah sekumpulan pemboleh ubah yang boleh menyimpan
beberapa nilai dari jenis data yang sama. Dengan menggunakan
tatasusunan, kita boleh merujuk kepada mana-mana ahli dalam
tatasusunan tersebut dengan menggunakan nama yang sama.
Tatasusunan diperlukan dalam penyelesaian masalah yang memerlukan
banyak data disimpan dalam tempat yang bersebelahan. Beberapa
contoh keperluan penggunaan tatasusunan ialah:
i) Katakan pelajar ingin mengira purata untuk 5 nombor. Rajah 13 ini
menunjukkan konsep penyimpan data menggunakan tatasusunan.
Terdapat 5 nombor yang boleh disimpan dalam dalam sebuah
tatasusunan
Rajah 13 Sebuah tatasusunan 5 elemen
176 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
ii) Seorang pensyarah hendak memasukkan markah peperiksaan 8
pelajar cemerlang di Kolej Komuniti. Rajah 14 ini menunjukkan konsep
penyimpan data menggunakan tatasusunan. Terdapat 8 markah yang
boleh disimpan dalam dalam sebuah tatasusunan.
Rajah 14 Sebuah tatasusunan 8 elemen
177 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
iii) Koperasi Kolej Komuniti yang menyimpan 10 data jenis
barang yang terdapat dalam koperasi Kolej Komuniti.
Rajah 15 ini menunjukkan konsep penyimpan data
menggunakan tatasusunan. Terdapat 10 jenis barang yang
boleh disimpan dalam dalam sebuah tatasusunan.
Rajah 15 Sebuah tatasusunan 10 elemen
Daripada 3 contoh di atas, kita terpaksa menggunakan
banyak pemboleh ubah dan atur cara menjadi sangat
panjang dan tidak praktikal. Untuk mengatasi masalah ini,
kita boleh menggunakan tatasusunan yang boleh
menyimpan beberapa nilai dari jenis data yang sama.
Bentuk tatasusunan yang biasa digunakan adalah
tatasusunan satu dimensi
178 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Elemen Yang Terdapat DalamTatasusunan
Rajah 16 menunjukan elemen yang terdapat
dalam tatasusunan. Elemen yang terdapat dalam
tatasusunan ialah nama tatasusunan yang diberi,
kedudukan nombor dalam tatasusunan dan data yang
dimasukkan.
Rajah 16 Elemen tatasusunan
179 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.3 Mengisytihar dan merujuk
tatasusunan satu dimensi
TATASUSUNAN 1 DIMENSI
Tatasusunan satu dimensi mempunyai hanya satu baris atau
satu lajur sahaja.
Pengisytiharan Tatasusunan
Tatasusunan satu dimensi diisytiharkan dengan menyatakan
jenis data, nama tatasusunan serta saiz tatasusunan. Saiz
tatasusunan dinyatakan di dalam simbol “[]” dan nilai saiz ini
mestilah suatu pemalar integer atau ungkapan yang
ditakrifkan nilainya. Format pengisytiharan tatasusunan 1
dimensi
jenis_data nama_tatasusunan[saiz];
i) jenis_data akan menentukan jenis bagi data yang hendak
disimpan.
ii) nama_tatasusunan merupakan nama pengecam yang
merujuk kepada tatasusunan.
iii) saiz adalah nilai bagi saiz tatasusunan. Nilai ini akan
menentukan bilangan data yang boleh disimpan oleh
tatasusunan.
180 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Perhatikan contoh pengisytiharan tatasusunan berikut.
int markah[50];
Ini bermaksud suatu tatasusunan bernama markah dengan
saiz 50 daripada jenis int telah diisytihar. Pengisytiharan ini
akan mengarahkan pengkompil supaya memperuntukkan 50
sel ingatan yang berjujukan kepada pemboleh ubah bernama
markah. Sel-sel ingatan ini juga dipanggil sebagai unsur
tatasusunan. Sel ini hanya boleh menyimpan data berjenis int.
Ini dapat diilustrasikan oleh Rajah 17 yang berikut.
Rajah 17 Gambaran lokasi ingatan bagi pengisytiharan int markah[50]
181 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Indeks / subskrip suatu tatasusunan sentiasa bermula
dengan 0 dan berakhir dengan saiz tatasusunan ditolak
dengan 1. Dalam contoh di atas, indeks tatasusunan markah
bermula dengan 0 hingga 49. Oleh itu unsur-unsur dalam
tatasusunan markah boleh dirujuk sebagai markah[0],
markah[1], markah[2], markah[3]…..markah[49]. Nilai dalam
[] dikenali sebagai indeks atau subskrip tatasusunan. Berikut
ialah beberapa contoh pengisytiharan tatasusunan daripada
pelbagai jenis data.
Kita juga boleh mengisytiharkan lebih daripada 1
tatasusunan dalam satu baris pengisytiharan sekiranya
kesemua tatasusunan tersebut daripada jenis data yang
sama. Kita juga boleh menggabungkan pengisytiharan
tatasusunan dan pemboleh ubah daripada jenis data yang
sama. Perhatikan contoh berikut.
182 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
MEMPROSES TATASUSUNAN
Perlu menggunakan indeks
Indeks merupakan suatu pemalar, pembolehubah
atau ungkapan yang bernilai integer yang
menyatakan unsur manakah di dalam tatasusunan
yang hendak dicapai :
– Pemalar markah[1];
– Pembolehubah markah[i];
– Ungkapan markah[n-1];
183 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
184 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.3.1 Memberi nilai awal
Terdapat dua cara untuk menilai awalkan tatasusunan
1) Semasa proses pengisytiharaan tatasusunan
2) Semasa di dalam badan aturcara
Sintaks Sintaks pengumpukan pengumpukan nilai awal
tatasusunan tatasusunan semasa pengisytiharaan adalah:
jenis_data nama_pembolehubah[saiz] = { senarai data };
Contoh pengumpukan nilai awal tatasusunan semasa
pengisytiharaan:
int markah[5]={20, 10, 15, 18, 25};
char gred[3]={‘a’, ‘b’, ‘c’};
Saiz tatasusunan dapat diabaikan apabila pengumpukan
nilai berlaku semasa proses pengisytiharaan.
char bangsa[ ]={‘m’, ‘c’, ‘i’, ‘L’};
185 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Pengumpukan nilai awal tatasusunan juga boleh
berlaku untuk sebahagian data sahaja.
Contoh:
int umur[5]={18, 19, 20};
char huruf[3]={‘a’};
Bagi unsur yang tiada umpukan nilai, pengkompil
akan mengumpukan nilai 0 untuk jenis data int dan
float, sementara null untuk char.
Contoh :
int umur[5]={16, 17, 18};
186 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Sintaks pengumpukan nilai awal
tatasusunan dalam badan aturcara pula
adalah:
nama_pembolehubah[subskrip]=nilai;
Pengumpukan nilai berlaku secara satu-
persatu untuk semua elemen tatasusunan
Contoh:
Markah[0]=20;
Markah[1]=15;
Markah[2]=25;
Markah[3]=10;
Markah[4]=5;
187 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
Contoh mengisytihar tatasusunan nombor
integer bernama nom sebanyak 4 elemen.
//isytihar tatasusunan dan saiz
int nom[4];
//umpukan nilai dalam tatasusunan
nom[0] = 10;
nom[1] = 20;
nom[2] = 30;
nom[3] = 40;
Atau
int nom[4] = { 10, 20, 30, 40 };
188 Sijil Teknologi Maklumat
STM 1033 : ASAS PENGATURCARAAN
3.3.2 Membaca nilai
//isytihar, tentukan saiz dan
umpukan nilai dalam tatasusunan
int nom[4] = { 10, 20, 30, 40 };
//baca nilai setiap elemen dalam
tatasusunan
cout<<nom[0]<<endl;
cout<<nom[1]<<endl;
cout<<nom[2]<<endl;
cout<<nom[3]<<endl;
189 Sijil Teknologi Maklumat