oop pengaturcaraan berstruktur

Download Report

Transcript oop pengaturcaraan berstruktur

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
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, fungsifungsi 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.
PENGATURCARAAN BERSTRUKTUR
MAIN PROGRAM
FUNCTION 1
FUNCTION 4
FUNCTION 2
FUNCTION 3
FUNCTION 5
Rajah 1.1
GLOBAL DATA
PERMASALAHAN DALAM PEMBANGUNAN
PERISIAN BERSTRUKTUR
Krisis yg biasa berlaku dalam pembangunan perisian menggunakan pengaturcaraan
berstruktur 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 masalah
yg tlh disebutkan di atas. Teknik pengaturcaraan ini mula digunakan dengan meluasnya
pada tahun 1990an.
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.
PENGATURCARAAN BERORIENTASIKAN OBJEK
Object 2
Object 1
Data
Data
Function
Function
Object 3
Data
Function
Rajah 1.2 : Objek-objek dalam pengaturcaraan OO
PENGATURCARAAN BERORIENTASIKAN OBJEK
Pelanggan
Nama
NoAkaun
Baki
Akaun
bukaAkaun( )
JenisAkaun
JenisTransaksi
urusAkaun( )
kemaskiniMaklumat( )
PekerjaBank
Nama
Jawatan
Gaji
Tugas
Rajah 1.3 Rajah kelas yang menggambarkan hubungan di anatara
Pelanggan, Akaun dan PekerjaBank
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.
PENGATURCARAAN BERORIENTASIKAN OBJEK
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.
PERBEZAAN ANTARA PENGATURCARAAN
BERSTRUKTUR Dan OOP
PENGATURCARAAN BERSTRUKTUR
OOP
• Penekanan ialah pada fungsi(algoritma)
• 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
• Data dan fungsi-fungsi adalah disimpan
berasingan.
• Reka bentuk tidak kemas, sukar untuk
faham dan sukar untuk dilaksanakan.
• Menggunakan pendekatan dari atas ke
bawah.
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)
KONSEP-KONSEP ORIENTASI OBJEK : KELAS
•
•
•
•
•
•
•
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++
KONSEP-KONSEP ORIENTASI OBJEK : OBJEK
•
•
•
Mempunyai pengenalan, kelakuan dan attribut.
Boleh berupa konkrit atau konsep
Jadual 1.1 menyenaraikan contoh objek konkrit dan objek konsep
Objek Konkrit
Kerusi
Bola
Pekerja di sebuah syarikat
Imej dalam dokumen
•
Objek Konsep
Polisi
Undang-undang
Masa
Jadual kuliah
Identiti – Ciri sesuatu objek yg membezakannya dr objek lain
OBJEK :KONSEP-KONSEP ORIENTASI : OBJEK
samb…
•
•
•
•
•
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 :
PENGABSTRAKAN DATA samb…
•
•
•
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
Pelajar
Pelajar
Abstrak kepada
Nama
NoPend
HPNM
Kursus
Belajar( )
LayarInternet( )
HadirKuliah( )
Rajah 1.4 : Pengabstrakan data bagi Pelajar
OBJEK :KONSEP-KONSEP ORIENTASI :
PENGKAPSULAN DATA
• 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 :
PERWARISAN
•
•
•
•
•
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 :
POLIMORFISMA
•
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 dr
segi jenis pulangan, bil parameter dan jenis parameter
- Contoh : operasi umpukData ke atas seorang pelajar boleh dilaksana dgn beberapa
cara berbeza sebagaimana berikut:
umpukData(string nama);
umpukData(string nama, int kredit, float cpa);
umpukData(string noID, char Gred);
OBJEK :KONSEP-KONSEP ORIENTASI :
POLIMORFISMA
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.6
menunjukkan bagaimana polimorfisma dilaksanakan ke atas ops dipandu( ) pd kelas
kenderaan. Subkelas kpd kenderaan iaitu kereta, kapalterbang dan keretapi setiap satunya
mempunyai operasi dipandu( ) ttp bagaimana setiap kenderaan tersebut dipandu adalah
berbeza di antara satu kelas dgn kelas lain.
OBJEK :KONSEP-KONSEP ORIENTASI :
PERWARISAN samb…
Kenderaan
Model
TahunKeluaran
BilPenumpang
Superclass
Dipandu( )
subclass
Kapalterbang
Kereta
Keretapi
Ketinggian
AdaStereng
BilGerabak
Dipandu( )
Terbang( )
Dipandu( )
Dipandu( )
Rajah 1.6: Pewarisan dan perlaksanaan polimorfisma ke atas operasi dipandu
KONSEP-KONSEP :OBJEK
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.
KONSEP-KONSEP :OBJEK
ORIENTASI : AGGREGATION
Syarikata Komputer
Jabatan
Pengurusan
Jabatan
Penyelidikan
Jabatan
Kewangan
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
Bahasa Berorientasikan Objek
samb…
• 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