f3031 : object oriented programming

24
F3031 : OBJECT ORIENTED PROGRAMMING Pengenalan Kepada Orientasi Objek Prepared by : Suzila Yusof

Upload: urvi

Post on 31-Jan-2016

109 views

Category:

Documents


0 download

DESCRIPTION

F3031 : OBJECT ORIENTED PROGRAMMING. Pengenalan Kepada Orientasi Objek Prepared by : Suzila Yusof. PENGATURCARAAN BERSTRUKTUR. Aturcara dipecah-pecahkan kepada modul-modul atau prosedur Setiap modul mempunyai data dan fungsinya sendiri yang boleh dicapai oleh fungsi lain - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: F3031 : OBJECT ORIENTED PROGRAMMING

F3031 : OBJECT ORIENTED PROGRAMMING

Pengenalan Kepada Orientasi Objek

Prepared by : Suzila Yusof

Page 2: F3031 : OBJECT ORIENTED PROGRAMMING

PENGATURCARAAN BERSTRUKTUR• Aturcara dipecah-pecahkan kepada modul-modul atau prosedur• Setiap modul mempunyai data dan fungsinya sendiri yang boleh dicapai oleh fungsi lain• Rajah 1.1 menggambarkan bentuk pengaturcaraan berstruktur di mana ac dipecahkan

kpd fungsi-fungsi• Setiap fungsi mempunyai datanya sendiri disamping berkongsi data global.• Fungsi-fungsi yg menggunakan data global ini boleh mengubah data tersebut tanpa

sebarang kekangan• Bagi ac yg besar, adalah agak sukar utk mengenal pasti fungsi-fungsi yg mencapai data

global. • Ini mengakibatkan seandainya sesuatu struktur data global perlu diubahsuai, fungsi-

fungsi yang menggunakannya perlu juga dikaji samada perlu diubahsuai akibat dari perubahan ke atas data tersebut.

• Masalah ini blh mengakibatkan berlakunya ralat dlm ac dan proses penyenggaraan agak sukar dilakukan.

• Oleh itu, pengaturcaraan berstruktur terbukti gagal dalam penyelesaian masalah dalam krisis perisian.

Page 3: F3031 : OBJECT ORIENTED PROGRAMMING

PENGATURCARAAN BERSTRUKTURMAIN PROGRAM

FUNCTION 3FUNCTION 2

GLOBAL DATA

FUNCTION 5FUNCTION 4

FUNCTION 1

Rajah 1.1

Page 4: F3031 : OBJECT ORIENTED PROGRAMMING

PERMASALAHAN DALAM PEMBANGUNAN PERISIAN BERSTRUKTUR

Krisis yg biasa berlaku dalam pembangunan perisian menggunakan pengaturcaraanberstruktur adalah :• Projek tidak dpt disiapkan pd tarikh yg ditetapkan• Pembangunan projek melebihi anggaran kos• Perisian yg dihasilkan tidak menepati kehendak pengguna dan ini menjadikan

perisian tersebut tidak dpt digunakan oleh pengguna• Proses penyenggaraan perisian agak sukar. Akibatnya jangka hayat sistem adalah

pendek• Keperluan pengguna yang sentiasa berubah-ubah menjadikan pembangunan ac

agak sukar• Teknik pembangunan perisian yang digunakan tidak menggambarkan operasi

dunia sebenar.Pengaturcaraan berorientasikan objek seterusnya dihasilkan bagi mengatasi masalahyg tlh disebutkan di atas. Teknik pengaturcaraan ini mula digunakan dengan

meluasnyapada tahun 1990an.

Page 5: F3031 : OBJECT ORIENTED PROGRAMMING

PENGATURCARAAN BERORIENTASIKAN OBJEK

• Satu organisasi perisian yang terdiri dr sekumpulan objek yang bekerjasama di antara satu sama lain.

• Setiap objek merupakan instant kpd sesuatu kelas dan kelas-kelas pula merupakan ahli kpd satu hirarki dlm hub pewarisan.

• Cara pengaturcaraan terbaru yg cuba meniru keadaan dunia sebenar dengan menggunakan objek-objek.

• Ia masih menggunakan konsep ac berstruktur yang digabungkan dengan bentuk pengaturcaraan baru.

• Rajah 1.2 menggambarkan organisasi data dan fungsi di dlm pengaturcaraan berorientasikan objek. Setiap objek mempunyai data dan fungsinya sendiri dan objek-objek berkomunikasi di antara satu sama lain dengan menghantar mesej.

Page 6: F3031 : OBJECT ORIENTED PROGRAMMING

PENGATURCARAAN BERORIENTASIKAN OBJEK

Object 1 Object 2

Data

Function

Data

Function

Object 3

Data

Function

Rajah 1.2 : Objek-objek dalam pengaturcaraan OO

Page 7: F3031 : OBJECT ORIENTED PROGRAMMING

PENGATURCARAAN BERORIENTASIKAN OBJEK

Pelanggan

NamaNoAkaunBaki

Akaun

JenisAkaunJenisTransaksi

PekerjaBank

NamaJawatanGajiTugas

bukaAkaun) (

kemaskiniMaklumat) ( urusAkaun) (

Rajah 1.3 Rajah kelas yang menggambarkan hubungan di anatara Pelanggan, Akaun dan PekerjaBank

Page 8: F3031 : OBJECT ORIENTED PROGRAMMING

PENGATURCARAAN BERORIENTASIKAN OBJEK

• Rajah 1.3 merupakan satu rajah kelas yg terdiri dr objek Pelanggan, Akaun dan PekerjaBank.

• Setiap objek mempunyai data dan kelakuannya sendiri• Objek2 berkomunikasi dgn menghantar mesej• Contoh :

- pelanggan menghantar mesej bukaAkaun() kpd Akaun dan ini mengakibatkan objek Akaun bertindakbalas terhadap mesej tersebut dgn menghasilkan akaun bg Pelanggan tersebut.

Page 9: F3031 : OBJECT ORIENTED PROGRAMMING

Kelebihan OOP :• Fasa analisa & rekabentuk sistem lbh mudah krn corak pengaturcaraan cuba

meniru keadaan dunia sebenar dgn menggunakan objek sbg fokus utamanya.• Membenarkan kod digunakan semula• Penyenggaraan sistem lbh mudah, kerana pengubahsuaian hanya mengambil kira

objek-objek yg terlibat shj• Mengurangkan pembinaan kod yg berulang krn kod yang tlh dihasilkan blh diguna

semula• Aturcara yg dihasilkan lbh selamat.

PENGATURCARAAN BERORIENTASIKAN OBJEK

Page 10: F3031 : OBJECT ORIENTED PROGRAMMING

PERBEZAAN ANTARA PENGATURCARAAN BERSTRUKTUR Dan OOP

PENGATURCARAAN BERSTRUKTUROOP

• Penekanan ialah pada fungsi(algoritma)

• Data dan fungsi-fungsi adalah disimpan berasingan.• Reka bentuk tidak kemas, sukar untuk faham dan sukar untuk dilaksanakan.

• Menggunakan pendekatan dari atas ke bawah.

• Penekanan ialah kepada data daripada prosedur• Data dan fungsi-fungsi dikumpulkan dalam kelas• Reka bentuk keseluruhan sistem mudah difahami oleh orang lain (walaupun tidak mempunyai latar belakang pada komputer sains)•Menggunakan pendekatan dari bawah ke atas dalam reka bentuk atur cara

Page 11: F3031 : OBJECT ORIENTED PROGRAMMING

KONSEP-KONSEP ORIENTASI OBJEK

Konsep-konsep penting OO terdiri drp :• Kelas (Class)• Objek (Object)• Pengabstrakan Data (Data Abstraction)• Pengkapsulan Data (Encapsulation)• Polimorfisma ( Polymorphism)• Pewarisan (Inheritance)

Page 12: F3031 : OBJECT ORIENTED PROGRAMMING

KELAS: KONSEP-KONSEP ORIENTASI OBJEK

• Objek yg mempunyai struktur data & kelakuan yg sama dikumpulkan dalam satu kelas.

• Kelas tidak mempunyai nilai bg data/attribut• Setiap objek merupakan instant kpd kelasnya• Contoh kelas : kenderaan, perenggan, syarikat , masa, haiwan• Drpd kelas terhasillah objek atau instant• Instant : objek unik yg mempunyai nilai data/atributnya yg tersendiri ttp

berkongsi nama attribut dan operasi dengan instant dr kelas yg sama.• Contoh instant : - Kereta Honda Civic, WNF3318

- Perenggan pertama dalam dokumen cuba.doc - Buku Pengaturcaraan OO : Pendekatan C++

Page 13: F3031 : OBJECT ORIENTED PROGRAMMING

• Mempunyai pengenalan, kelakuan dan attribut.• Boleh berupa konkrit atau konsep• Jadual 1.1 menyenaraikan contoh objek konkrit dan objek konsep

• Identiti – Ciri sesuatu objek yg membezakannya dr objek lain

OBJEK: KONSEP-KONSEP ORIENTASI OBJEK

Objek KonkritObjek Konsep

KerusiBolaPekerja di sebuah syarikatImej dalam dokumen

PolisiUndang-undangMasaJadual kuliah

Page 14: F3031 : OBJECT ORIENTED PROGRAMMING

• Attribute – merupakan data atau maklumat yg dipunyai oleh sesuatu objek. Data yg dipunyai oleh sesuatu objek membezakannya dengan objek lain. Attribute sesuatu objek bertukar apabila datanya bertukar.

• Contoh attribute sesuatu objek :- panjang perenggan : 20 perkataan- Tahap kemahiran pekerja : sederhana- tarikh perlaksanaan polisi : 20hb Jun 2010

• Method – merujuk kpd bagaimana sesuatu objek bertindak dan bertindakbalas terhadap perubahan sesuatu keadaan ataupun terhadap penerimaan mesej dr objek lain. Dikenali juga sebagai fungsi.

• Contoh method bagi kelas perenggan : Pamer perenggan, taip perenggan, kemaskini perenggan

• Contoh method bagi kelas polisi : ubah polisi, analisa polisi, laksana polisi

OBJEK: KONSEP-KONSEP ORIENTASI : OBJEK samb…

Page 15: F3031 : OBJECT ORIENTED PROGRAMMING

• Konsep di mana ianya memfokus kpd aspek penting dan mustahak kpd satu entiti manakala aspek yg tidak penting dan tidak berkaitan diabaikan

• Pengguna hanya perlu tahu ciri-ciri yang dipunyai oleh sesuatu kelas dan methodnya tanpa perlu mengetahui bagaimana method tersebut dilaksanakan.

• Rajah 1.4 menggambarkan perlaksanaan konsep pengabstrakan data

OBJEK: KONSEP-KONSEP ORIENTASI : PENGABSTRAKAN DATA samb…

Pelajar

Pelajar

NamaNoPendHPNMKursus

Belajar( )LayarInternet( )HadirKuliah( )

Abstrak kepada

Rajah 1.4 : Pengabstrakan data bagi Pelajar

Page 16: F3031 : OBJECT ORIENTED PROGRAMMING

• Dikenali sbg penyembunyian maklumat • Satu konsep di mana data dan fungsi dikumpul dalam satu unit• Dengan pengumpulan data dan fungsi dalam satu unit, data tdk boleh

dicapai oleh objek luaran yg lain• Data tersebut hanya blh dicapai oleh fungsi yg terkandung dlm objek

tersebut• Konsep ini memastikan bahwa data tidak blh diubah oleh objek lain dgn

sewenang-wenangnya

OBJEK: KONSEP-KONSEP ORIENTASI : PENGKAPSULAN DATA

Page 17: F3031 : OBJECT ORIENTED PROGRAMMING

• Merupakan kebolehan sesuatu objek mewarisi ciri-ciri superclassnya berdasarkan kpd satu hubungkait hirarki

• Dlm perwarisan, kelas pd awalnya didefinisikan secara kasar atau secara umum dan ciri-ciri yg lbh spesifik bg sesuatu kelas kemudiannya diperincikan bg membentuk subclass.

• Superclass mewariskan ciri-cirinya kpd subclass manakala subkelas mewarisi semua ciri-ciri superclassnya disamping mempunyai ciri-ciri uniknya yang tersendiri.

• Rajah 1.5 menggambarkan konsep pewarisan di mana kelas kenderaan mempunyai atribut dan kelakuannya sendiri. Subclassnya pula mewarisi semua ciri pada kenderaan disamping mempunyai cirinya yg tersendiri.

• Penggunaan semula kod yg menjadi kekuatan teknik orientasi objek boleh dilaksanakan melalui konsep perwarisan.

OBJEK: KONSEP-KONSEP ORIENTASI : PERWARISAN

Page 18: F3031 : OBJECT ORIENTED PROGRAMMING

• Objek yg berlainan jenis boleh memberi tindakbalas yg berbeza terhadap operasi yg sama.

• Konsep ini blh dilaksana melalui method limpahan (overloading method) atau overridding method

Overloading Method- merupakan metod dlm kelas yg sama yg mempunyai nama yg sama ttp dibezakan drsegi jenis pulangan, bil parameter dan jenis parameter- Contoh : operasi umpukData ke atas seorang pelajar boleh dilaksana dgn beberapacara berbeza sebagaimana berikut:

umpukData(string nama);umpukData(string nama, int kredit, float cpa);umpukData(string noID, char Gred);

OBJEK: KONSEP-KONSEP ORIENTASI : POLIMORFISMA

Page 19: F3031 : OBJECT ORIENTED PROGRAMMING

Overridding method- objek-objek dr kelas yg berbeza ttp mempunyai method yg sama dan bertindakbalas

dgn cara berlainan. - Walaubagaimanapun objek-objek ini mestilah mempunyai hubungan dlm satu hirarki

perwarisan- Contoh :

- Operasi Bergerak : bagi objek kenderaan, kereta bergerak adalah adalah berbeza dgn cara keretapi bergerak- Operasi Terbang : bagi objek yg boleh terbang, jet terbang adalah berbeza dgn cara kapalterbang terbang

Bagi polimorfisma, setiap objek beroperasi dgn caranya yg tersendiri. Rajah 1.6menunjukkan bagaimana polimorfisma dilaksanakan ke atas ops dipandu( ) pd kelaskenderaan. Subkelas kpd kenderaan iaitu kereta, kapalterbang dan keretapi setiap satunyamempunyai operasi dipandu( ) ttp bagaimana setiap kenderaan tersebut dipandu adalahberbeza di antara satu kelas dgn kelas lain.

OBJEK: KONSEP-KONSEP ORIENTASI : POLIMORFISMA

Page 20: F3031 : OBJECT ORIENTED PROGRAMMING

Kenderaan

ModelTahunKeluaranBilPenumpang

Dipandu( )

OBJEK: KONSEP-KONSEP ORIENTASI : PERWARISAN samb…

Kapalterbang

Ketinggian

Dipandu( )Terbang( )

Kereta

AdaStereng

Dipandu( )

Keretapi

BilGerabak

Dipandu( )

Superclass

subclass

Rajah 1.6: Pewarisan dan perlaksanaan polimorfisma ke atas operasi dipandu

Page 21: F3031 : OBJECT ORIENTED PROGRAMMING

OBJEK: KONSEP-KONSEP ORIENTASI : AGGREGATION

• Atribut bg sesuatu objek x semestinya terdiri dr data primitif shj ttp blh berjenis objek.

• Ini berlaku kerana adakalanya komponen sesuatu objek terdiri dr objek lain• Konsep ini dikenali svg aggregation• Contoh : Komputer – terdiri drp pemproses, RAM, monitor, papankekunci dan

tetikus Syarikat - terdiri drp pelbagai jawatan

• Rajah 1.7 menggambarkan konsep aggregation di mana, syarikat komputer yang terdiri dari jabatan pengurusan, jabatan penyelidikan dan jabatan kewangan.

Page 22: F3031 : OBJECT ORIENTED PROGRAMMING

OBJEK: KONSEP-KONSEP ORIENTASI : AGGREGATION

Syarikata Komputer

Jabatan Kewangan

Jabatan Penyelidikan

Jabatan Pengurusan

Page 23: F3031 : OBJECT ORIENTED PROGRAMMING

Bahasa Berorientasikan Objek• Bahasa objek terbahagi kpd 2 : bahasa berasaskan objek dan bahasa

berorientasikan objek• Bahasa berasaskan objek merupakan bahasa yg mempunyai konsep enkapsulasi

data dan juga mempunyai konsep kelas dan instant.• Contoh bahasa berasaskan objek ialah Ada• Sesuatu bahasa komputer dikatakan sbg bahasa berorientasikan objek jika ia

memenuhi syarat berikut : Boleh enskapsulasi data Mempunyai konsep kelas dan instant Boleh melaksanakan konsep perwarisan Boleh melaksanakan konsep polimorfisma• Bahasa berorientasikan objek yg digunakan sekarang terbahagi kpd 2 : bahasa

orientasi objek asli dan bahasa hibrid

Page 24: F3031 : OBJECT ORIENTED PROGRAMMING

• Bahasa hibrid merupakan satu bahasa yg agak fleksibel di mana pengaturcara blh menulis aturcara samada secara berstruktur atau berorientasikan objek.

• Bahasa orientasi objek asli hanya membenarkan pengaturcara menulis aturcara secara berorientasikan objek shj.

• Contoh bahasa berorientasikan objek asli : Smalltalk, Simula, Eiffel, Actor dan Java

• Contoh bahasa hibrid : C++, Objective-C, Object-Pascal dan CLOS

Bahasa Berorientasikan Objek samb…