31
BAB 1 Pengenalan E 4162 Programming 2 Object Oriented Programming C++ kepada 4

bab1-Pengenalan OOP

Embed Size (px)

Citation preview

Page 1: bab1-Pengenalan OOP

BAB 1Pengenalan

E 4162

Programming 2

Object Oriented Programming C++kepada

4

Page 2: bab1-Pengenalan OOP

Pengaturcaraan BerstrukturC

C++

Pengaturcaraan Berorientasikan Objek

Rajah 1.1: Menunjukkan C++ merupakan superset kepada C

* APAKAH C++?

* KEPERLUAN C++ :

• Peningkatan program yg semakin kompleks

• Penggunaan yang meluas – industri perkilangan, perlainan dan rekabentukpersekitaran Unix

5

Page 3: bab1-Pengenalan OOP

Contoh keratan aturcara C Contoh keratan aturcara C++#include <stdio.h>

void EnterData();void EnterData(){

char name[30];printf (“Name:”);gets(name);

}:::

#include<iostream.h>#include<string.h>

class Person{private:

char name[30];public:void EnterData();};void Person::EnterData(char*a){ cout<<”Name: “;

cin.getline(name,30)}:

6

Page 4: bab1-Pengenalan OOP

Perbezaan C dan C++Item C C++

Header file #include <stdio.h> #include<iostream.h>

Input function scanf() cin>>

Output Function

printf() cout<<

Comment /* */ //

7

Page 5: bab1-Pengenalan OOP

Evolusi C++

• Pengaturcaraan C telah dicipta sewalam 1970 di Makmal Bell oleh Brian Kernighan and Dennis Ritchie.

8

Page 6: bab1-Pengenalan OOP

Evolusi C++

• Pengaturcaraan Bahasa C diubahsuai dari Bahasa B.• Bahasa C kemudiannya dikemaskini ke Bahasa C++ (“ C plus

plus”). • C++ telah dicipta oleh Bjarne Stroustrup di makmal yang

sama Bell Labs seawal tahun 1980.

9

Page 7: bab1-Pengenalan OOP

* Pengaturcaraan berorientasikan objek (OOP)1.0 Konsep berorientasikan objek

Satu jenis pengaturcaraan di mana pengaturcara mentakrifkan

jenis data bagi struktur data dan mentakrifkan jenis operasi yang

akan dilaksanakan pada struktur data.

Suatu pendekatan menulis perisian di mana data dan kelakuan objek

dipakejkan bersama di dalam kelas. Objek merupakan ahli bagi suatu

kelas.

Strukturdata

Contoh:Data Jenis data

No.pelajar IntegerMarkah Perpuluhan

Jenis operasi:No.pelajar : Menyusun senarai pelajar berdasarkan No.pelajar.

Markah : Mengira markah. 10

Page 8: bab1-Pengenalan OOP

Pelajar

No.pelajarMarkah

Mewarisi

Pelajar perempuan Pelajar lelaki

2.0 Objek dan Kelas

• Istilah yang digunakan untuk menerangkan pelbagai benda.

• Mengandungi data dan method.

• Apakah DATA? – Data adalah…..

OBJEK

11

Page 9: bab1-Pengenalan OOP

Ciri-ciri (properties) sesuatu objek dikenali sebagai data. Didalam dunia nyata ciri-ciriboleh dibahagikan kepada dua bahagian:

1. Boleh dilihat seperti objek manusia mempunyai sepasang tangan.2. Tidak boleh dilihat seperti manusia mempunyai nama.

• Apakah METOD? – Metod adalah…..

Method ialah suatu set fungsi yang memanipulasikan data, seperti method MenentukanStatus() boleh menentukan keputusan peperiksaan objek pelajar.

Contoh 1 : Objek Pelajar dengan data danmetod

Objek : PelajarData : nama, alamat, nokadpengenalan, id, markah, statusMetod : MenentukanStatus()

SatuObjek

Objek : KotakData : tinggi, kedalaman, lebarMethod : MengiraIsipadu()

SatuObjek

Contoh 2 : Objek Kotak dengan data danmetod

12

Page 10: bab1-Pengenalan OOP

KELAS

• Satu set objek yang mempunyai ciri-ciri dan method yang hampir sama.

• Dengan menggunakan konsep kelas, atribut dan method sesuatukelas boleh digunakan oleh setiap objek daripada kelas tersebut.

• Contoh1 - kelas Pelajar. Pelajar mempunyai ciri-ciri seperti nama, alamat, status dan sebagainya.

Begitu juga dengan method iaitu perlu menentukan status pelajar sama ada lulus atau tidak.

• Contoh2 - kelas Kotak. Setiap kotak boleh mempunyai ciri-ciri am iaitu panjang, lebar

dan kedalaman. Method yang perlu ialah untuk mengira luas dan isipadu kotak.

13

Page 11: bab1-Pengenalan OOP

Contoh 1 : Mendefinisikan Kelas Pelajar

class Student{ String name, address, status;

int icno, sid; double marks;

char DetermineStatus(){ if marks >= 40

status = “Pass”;else

status = “Fail”; }

};

Kelas / Class

data

method

class Box{ double width, height, depth;

double ComputeVolume(){ return( width * height * depth );}

double ComputeArea(){ return( width * height ); }

};Kelas / Class

data

method

Contoh 2 : Mendefinisikan Kelas Kotak 14

Page 12: bab1-Pengenalan OOP

4.0 KITAR HAYAT PEMBANGUNAN PROGRAM BERORIENTASIKAN OBJEK

• Kitar hayat pembangunan program berorientasikanobjek

mengandungi 3 fasa utama iaitu:

1. Analisa berorientasikan objek(Object Oriented Analysis - OOA)

2. Rekabentuk berorientasikan objek(Object Oriented Design - OOD)

3. Pengaturcaraan berorientasikan objek(Object Oriented Programming - OOP)

15

Page 13: bab1-Pengenalan OOP

4.0 KITAR HAYAT PEMBANGUNAN PROGRAM BERORIENTASIKAN OBJEK

1. Analisa berorientasikan objek (OOA):

Fasa ini merupakan proses menentukan keperluan sistem dan mengenalpasti kelas-kelas dan hubungan di antara kelas.

Kita juga boleh mengenalpasti atribut penting bagi objek-objek ini dan menentukan tingkahlaku serta interaksi objek-objek ini.

16

Page 14: bab1-Pengenalan OOP

4.0 KITAR HAYAT PEMBANGUNAN PROGRAM BERORIENTASIKAN OBJEK

2. Rekabentuk berorientasikan objek(OOD):

Fasa ini merupakan fasa untuk merekabentuk kelas-kelas yang dikenalpasti semasa fasa analisa dan antaramuka pengguna.

17

Page 15: bab1-Pengenalan OOP

4.0 KITAR HAYAT PEMBANGUNAN PROGRAM BERORIENTASIKAN OBJEK

3. Pengaturcaraan berorientasikan objek (perlaksanaan) -OOP.

Fasa ini akan menterjemahkan rekabentuk yang dibuat kepada kodyang sebenar.

Analisa berorientasikan objek dan rekabentuk berorientasikan objekmerupakan disiplin yang berlainan tetapi ia boleh saling dihubungkaitkan.

18

Page 16: bab1-Pengenalan OOP

Analisa berorientasikan objek

Rekabentuk berorientasikan objek

Pengaturcaraan berorientasikan objek(Perlaksanaan)

Rajah 1.8: Kitar hayat pembangunan program berorientasikan objek

19

Page 17: bab1-Pengenalan OOP

Pengaturcaraan berorientasikan objek ini menawarkan beberapa kelebihan. Antaranya ia dapat mengatasi masalah kerumitan perisian dan juga meningkatkanproduktiviti. Berikut adalah beberapa kelebihan yang boleh digariskan:

5.0 KELEBIHAN PENGATURCARAANBERORIENTASIKAN OBJEK

I. Kod boleh ditambahKemampuan untuk menambah pada kod yang telah wujud dan diselaraskan mengikut keperluan. Ia lebih sesuai dengan perisian baru. Contoh: pengawal automatik VCR berfungsi dengan cara yang sama dengan VCR baru yang bakal digunakan di masa hadapan.

II. Kod boleh digunakan berulangkaliKod yang sedia ada telah diuji terlebih dahulu serta boleh diwarisi dari modul yang terdahulu.Ia akan menjimatkan kos dan masa yang diperlukan untuk membangunkan sesuatu perisian. Dengan cara ini ia akan meningkatkan produktiviti pengaturcara.

III. Menggambarkan dunia sebenarDengan penggunaan konsep pengaturcaraan berorientasikan objek, ia memudahkanpengaturcara memodulkan masalah kerana data-data yang digunakan adalah menggambarkansituasi sebenar. Oleh itu kerumitan dan kesukaran dalam membangunkan perisian dapat dikurangkan.

IV. Keselamatan dataPenggunaan konsep pengkapsulan telah menjadikan data-data lebih selamat dari gangguandan penyalahgunaan dari pihak luar.

20

Page 18: bab1-Pengenalan OOP

5.0 PERBEZAAN PENGATURCARAAN BERSTRUKTUR DAN PENGATURCARAAN BERORIENTASIKAN OBJEK

6.0 CONTOH ATURCARA PERTAMA C++ PENGATURCARAAN BERORIENTASIKAN OBJEK

//Aturcara pertama dalam C++

#include <iostream.h>

int main(){

cout<<”Hello!”<<endl;

return 0;}

(1)

(2)

(3)

(5)

(6)

(4)

Komen

Pra pemrosesdirektif

Kepala fungsi

Arahan mencetak

Return value

Badan fungsi main ( )

21

Page 19: bab1-Pengenalan OOP

1) KomenKomen digunakan untuk memudahkan program dibaca.

2) Prapemproses direktifSatu komponen dalam pengkompil C++ yang akan mengarahkanprapemproses memasukkan kandungan fail iostream.h ke dalam aturcara.

3) Kepala fungsiMengandungi nilai yang dipulangkan (di dalam contoh diatas ialah int).Merupakan fungsi yang pertama yang akan dilaksanakan oleh pengkompil.

22

Page 20: bab1-Pengenalan OOP

4) Badan fungsi main().Tanda kurungan sebelah kiri { menunjukkan permulaansetiap fungsi dan sebelah kanan }untuk menamatkan fungsitersebut.Di antara tanda kurungan tersebut adalahsemua penyataan di dalam fungsi C++ yang dipanggil blok.

5) Sintak untuk mengarahkan aturcara untuk mencetak perkataanHello! yang terletak di antara “ dan “. Katakunci endl digunakan untuk mengakhirkan cetakan dengan baris baru.

6) Nilai sifar dipulangkan pada sistem bagi menandakan bahawa aturcara ini telah berjayaTidak dimestikan untuk menyertakannya di dalam aturcara anda. Walau bagaimanapunamaran akan dikeluarkan oleh pengkompil jika tidak menyertakannya.

RINGKASAN BAB123

Page 21: bab1-Pengenalan OOP

3.0 KONSEP-KONSEP UTAMA PENGATURCARAAN BERORIENTASIKAN OBJEK

1.0 Pengabstrakan data

2.0 Pengkapsulan data

3.0 Pewarisan data

4.0 Polimorfisma

CONTOH program yang mengandungi 4 konsep OOP24

Page 22: bab1-Pengenalan OOP

B. STRUKTUR PEMPROGRAMAN VISUAL C++

- ASAS(REVIEW)

1. Penggunaan aliran input dan outputPenggunaan cin dan cout

- Pengawal input (Console input)Untuk memasukkan data melalui pengawal sistem (papan kekunci).cin mengawal input.

>> operator pengarahan semula atau penyelitan. Contoh :

//pengistiharan pembolehubahint w; //integerfloat x; //titik perpuluhanchar y; //hurufchar z[15]; //stringcin>>w; // nilai inputcin>>x>>y; //nilai 2 inputcin>>x>>y>>z; //nilai 3 input

25

Page 23: bab1-Pengenalan OOP

- Pengawal output(console output)Menghantar output kepada pengawal sistem (monitor).

cout mengawal output.

<< operator ‘indirection’ atau ‘extraction’.

Contoh:

cout<<w; //cetak tanpa labelcout<< “ The value of x is “<<x<<endlcout<<”Coordinate(x,y)=(“<<x<<”,”<<y<<”)\n”;

26

Page 24: bab1-Pengenalan OOP

/* Program ini mengandungi pengiraan bagi jumlah 2 nombor */

#include <iostream.h> /* Ini merupakan prapemproses yang mengandungi arahan */

main ( ){

int x.y,sum;cout<<”\nEnter first number :”; /* Bahagian ini perlu dimasukkan oleh

pengguna */cin>>x;count<<” \nEnter second number:”;cin>>y;sum=x + y; /* menambah x dan y */cout<<endl<<”Sum=”<<sum;return 0; /* menunjukkan program telah

diakhiri dengan jayanya */}

27

Page 25: bab1-Pengenalan OOP

#include <iostream.h>void main()

{cout<<”C++ is with Classes”;

}

Struktur program

Teknik-teknik pengaturcaraan

Jenis-jenis data- Data 2kategori data•Berubah (variable) – Nilai boleh ditukar semasa pelaksanaan program.•Tetap (constant) – Nilai tetap ditetapkan.

Setiap pembolehubah mesti ada :i. Namaii. Jenisiii Nilai yang dipegang yang telah anda umpukkan.

28

Page 26: bab1-Pengenalan OOP

Peraturan memberi nama pembolehubah :

• Mesti dimulakan dengan huruf abjad tetapi selepas huruf pertama ia bolehmengandungi :-- Huruf : A...Z, a...z- Nombor : 0…9- Underscore : _10• Panjang pembolehubah- Panjang minima : 1 huruf- Panjang maksima : 30 huruf (bergantung kepada pengkompil)• Jenis data pembolehubah- Jenis data pembolehubah boleh dibahagikan kepada 4

subkategori utama :

1. Hurufchar, unsigned char, singed char2. Integer3. Nombor titik perpuluhan4. String-Tiada jenis string dalam C++**Gunakan tatasusunan huruf atau penunjuk untuk mengistiharkan pembolehubah

29

Page 27: bab1-Pengenalan OOP

NOTA:-

!!!! Terdapat 2 cara yang boleh digunakan untukmengumpukkan nilai kepada pembolehubah.

Penyataan pengumpukanContoh : length = 25;

Penyataan input Contoh : cin>>length;

30

Page 28: bab1-Pengenalan OOP

Operator- Operator ialah simbol yang “mengendalikan” satu atau lebih ungkapan, menghasilkannilai yang boleh diumpukkan kepada pembolehubah. Terdapat 5 jenis operator iaitu :

SimbolSymbol

MaknaMeaning

ContohExample

Keputusan jika a=5, b=3

Result if a=5, b=3

+ Tambahan / Additional y= a + b y = 8

- Penolakan / Subtraction y= a - b y = 2

* Pendaraban / Multiply y= a * b y = 15

/ Bahagi / Division y= a / b y = 1.667

& Modulus y= a & b y = 2

i. Operator Matematik

31

Page 29: bab1-Pengenalan OOP

ii. Operator logikal- Digunakan untuk membandingkan DATA

SimbolSymbol

MaknaMeaning

= = Sama dengan / Equal to

!= Tidak sama / Not equal to

< Lebih besar / Greater than

> Lebih kurang / Less then

<= Lebih besar atau sama / Greater than or equal to

>= Lebih kurang atau sama / Less than or equal to

32

Page 30: bab1-Pengenalan OOP

Operator logikal

SimbolSymbol

MaknaMeaning

&& DAN / AND

|| ATAU / OR

! TIDAK / NOT

Pengumpukan majmuk- Kombinasi operator matematik dan pengumpukan

SimbolSymbol

Pengumpukan MajmukCompound Assignment

PengumpukanNormal

Normal Assignment

+ = a+ = 1; a = a +1;

- = a- = 1; a = a -1;

* = a* = 1; a = a *1;

/ = a/ = 1; a = a /1;

% = a% = 1; a = a %1;33

Page 31: bab1-Pengenalan OOP

Struktur kawalanUntuk mengawal keputusan, C++ menyediakan struktur kawalan ( dikenali juga dengan nama penyataan kawalan )

BerjujukanPelaksanaan penyataan dalam susunan yang khusus ( sesuatu arahan akan dilaksanakan selepas arahan sebelumnya telah dibuat )

penyataan1;penyataan2;……..……..penyataan3;

Arahan pertama

Arahan akhir

Sintaks:

- Arahan di dalam program ini dilaksanakan secara berjujukan satupersatu, bermula daripada arahan yang pertama dan diakhiri dengan arahanterakhir.

S1Masuk S2 S3 S4 Keluar

Carta alir

34