1 bab 4 paradigma pengaturcaraan. 2 4.2.pengaturcaraan berorientasikan-objek suatu bahasa...

27
1 Bab 4 Paradigma Pengaturcaraan

Post on 22-Dec-2015

306 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

1

Bab 4

Paradigma Pengaturcaraan

Page 2: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

2

4.2. Pengaturcaraan Berorientasikan-Objek

Suatu bahasa pengaturcaraan berorientasikan-objek harus menyokong konsep-konsep berikut: jenis data niskala pewarisan pengikatan dinamik

sebagai tambahan, beberapa elemen dan konsep juga digunakan : penghantaran mesej – menyokong konsep

jenis data niskala polimofisma – menyokong pewarisan,

Page 3: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

3

4.2.1.Prinsip Rekabentuk

Komponen-kompnen utama yang digunakan dalam pengaturcaraan berorientasikan-objek:ObjekKelasMesejMetod

Page 4: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

4

Objek Suatu bentuk modul yang mengandungi pembolehubah yang

terlindung dan koleksi operasi bagi pembolehubah tersebut Pembolehubah ini hanya boleh dicapai menggunakan koleksi

operasi yang diekspot Objek juga boleh dianggap sebagai suatu pasangan perlakuan

dan keadaan: Perlakuan suatu komponen adalah set tindakan yang

boleh dilakukan, dan penerangan lengkap tentang kesemua perlakuan suatu komponen kadangkala dirujuk sebagai protokol

Keadaan suatu komponen mewakilkan semua maklumat yang terkandung di dalamnya, maklumat ini tidak statik dan boleh berubah (dinamik)

Page 5: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

5

Objek Keadaan diwakilkan oleh pemboleubah instance, manakala

perlakuan diwakilkan oleh metod Suatu objek dalam pengaturcaraan berorientasikan-objek

sebenarnya adalah seperti konsep objek data Perbezaan utama antara keduanya; objek dalam o-o bersifat

aktif, manakala objek data bersifat pasif suatu operasi boleh menggunakan objek sebagai argumennya dan mengembalikan suatu obejk sebagai hasil operasi

Suatu objek berkomunikasi dengan objek lain melalui proses penghantaran mesej, yang merupakan permintaan kepada suatu objek untuk melaksanakan salah satu operasinya

Mesej adalah suatu panggilan prosedur yang memanggil suatu metod yang dipunyai oleh suatu objek

Page 6: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

6

Objek

Pengikatan nama dan lokasi bagi suatu objek adalah sama seperti pengikatan nama dan lokasi bagi suatu objek data.

Pengikatan nilai bagi suatu objek adalah pengikatan objek tersebt kepada keadaan setempatnya (local state).

Pengikatan jenis bagi objek digantikan dengan konsep kelas.

Page 7: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

7

Kelas Kelas adalah suatu templat (acuan) untuk

objek-objek dan mengandungi: Penerangan tentang tindakan yang boleh

dilakukan oleh suatu objek Definisi (takrifan) struktur bagi suatu objek

Dengan kata lain, suatu kelas harus mengandungi maklumat berikut tentang suatu objek: Apakah data yang dimiliki? Apa yang boleh dilakukan? Bagaimana melakukannya?

Page 8: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

8

Kelas Suatu kelas juga boleh dianggap sebagai suatu objek

mempunyai keadaan dan set tindakannya sendiri Satu tindakan yang boleh dilakukan oleh semua kelas adalah

mencipta suatu objek yang merupakan suatu instance kepada kelas tersebut

Kelas mencipta objek-objek mengikut acuan yangelah ditakrifkan kadangkala dirujuk sebagai kilang objek

Kelas wujud dalam struktur hirarki yang membolehkan pewarisan berlaku

Secara asasnya, jika suatu kelas adalah subkelas kepada suatu kelas yang lain, ia akan mewarisi stuktur keadaan dan tindakan dalaman kelas tersebut.

Page 9: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

9

Kelas Kelas boleh dikategorikan mengikut pengkelasan berikut:

Kelas pengurus data – kelas yang mana tanggung jawab utamanya adalah untuk menyelenggarakan maklumat data atau keadaan.

Kelas sumber data – entiti yang menjana data seperti penjana data rawak. Berbeza dengan kelas pengurus data, ia tidak menyimpan data, tetapi hanya menjana atau memprosesnya apabila diminta

Kelas pemerhati atau view– suatu bahagian penting dalam kebanyakan aplikasi, memaparkan maklumat pada suatu peranti output seperti paparan skrin.

Kelas pembantu atau fasilitator – entiti yang menyelenggara hanya sedikit maklumat tentang kelas itu sendiri, tetapi membantu aplikasi dengan tugas yang kompleks. Contohnya, kelas untuk melukis garisan atau menulis teks pada peranti paparan

Page 10: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

10

Contoh Implementasi Kelas dan Objek dalam C++Definisi kelas Age :

class Age

{

private:

int childage, motherage, fatherage;

public:

Age();

void init (int, int, int);

int getChild();

int getMother();

int getFather();

};

Page 11: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

11

Contoh Implementasi Kelas dan Objek dalam C++Penciptaan objek menggunakan pengikatan

statik:

Age a;

Penciptaan objek menggunkaan pengikatan dinamik:

Age *a;

a = new Age;

Objek ini boleh dihapuskan dengan:

delete a;

Page 12: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

12

Contoh Implementasi Kelas dan Objek dalam JavaDefinisi kelas Time1

Public class Time1 {Private int hour;Private int minute;Private int second;Public Time1() {

SetTime( 0, 0, 0 ); }Public void setTime( int h, int m, int s ) {

Hour = ( ( h >= 0 && h < 24 ) ? h : 0 );Minute = ( ( m >= 0 && m < 60 ) ? m : 0 );Second = ( ( s >= 0 && s < 60 ) ? s : 0 );

}}

Penciptaan objek :T = new Time1();

Page 13: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

13

Mesej Boleh dikatakan kesemua pengiraan dan pemprosesan dalam

pengaturcaraan berorientasikan-objek dilakukan menggunakan mesej

Mesej adalah suatu permintaan yang dihantar dari satu objek ke satu objek yang lain supaya objek yang menerima mesej menghasilkan keputusan yang diharapkan

Ungkapan mesej mengandungi dua bahagian: Spesifikasi objek yang akan menerima mesej Mesej itu sendiri

Mesej itu sendiri perlu menyatakan pilihan kemasukan atau metod yang akan digunakan dalam objek yang menerima mesej, dan mungkin satu atau lebih parameter

Page 14: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

14

Mesej

Umumnya, suatu mesej adalah mirip kepada panggilan prosedur yang mana kedua-duanya mengandungi nama dan parameter

Yang berbeza, suatu panggilan prosedur dihantar oleh suatu prosedur kepada suatu prosedur yang lain

Data yang digunakan oleh objek yang menerima mesej adalah parameter yang dihantar bersama mesej, dan data dalaman dalam struktur data objek itu sendiri

Page 15: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

15

Metod

Metod mengandungi operasi yang bakal dilakukan oleh suatu objek apabila ia menerima mesej.

Hubungan satu-dengan-satu di antara metod dan mesej akan berlaku apabila suatu mesej diterima oleh suatu objek.

Page 16: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

16

4.2.2. Implementasi Pengaturcaraan Berorientasikan-Objek

Aspek yang paling penting dalam pengaturcaraan ini adalah teknik rekabentuknya yang berdasarkan kepada penentuan dan delegasi tanggungjawab

Umumnya, pengaturcaraan berorientasikan objek menyokong kriteria ini: Peniskalaan data (data abstraction) Pengurungan (encapsulation) – information hiding Polimorfisma (message passing)

Bahasa pengaturcaraan berorientasikan-objek juga menyokong criteria ini: Pewarisan (inheritance) Pengikatan dinamik (dynamic binding)

Page 17: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

17

Peniskalaan Data Jenis data niskala ditakrifkan sebagai suatu koleksi

struktur data dan operasi yang diabstrakkan kepada jenis data yang mudah

Jenis data niskala bukan nama lain bagi struktur data Struktur data adalah suatu binaan dalam aturcara yang

menyimpan suatu koleksi data Peniskalaan data pula hanya mengandungi properties

yang penting untuk suatu tujuan tertentu, dan yang lainnya akan disorokkan pengaturcara hanya perlu memikirkan tentang apa yang hendak dilakukan dengan data, tanpa perlu memikirkan bagaimana hendak melakukannya

Page 18: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

18

Peniskalaan Data Di antara bentuk peniskalaan data adalah:

jenis data prosedur, modul, objek

Suatu bahasa menyokong peniskalaan dalam dua bentuk: Menyediakan set peniskalaan yang boleh dianggap sebagai

features bahasa tersebut Menyediakan kemudahan yang boleh membantu

pengaturcara membina peniskalaan

Page 19: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

19

Encapsulation Encapsulation atau information hiding merujuk

kepada konsep mengumpulkan atau mempakejkan maklumat ke dalam suatu unit aturcara.

Apabila maklumat dikurung (encapsulated) dalam suatu peniskalaan, ini bermakna pengguna yang menggunakan peniskalaan tersebut: Tidak perlu mengetahui maklumat yang disorokkan

untuk menggunakan peniskalaan tersebut Tidak dibenarkan menggunakan atau memanipulasi

secara langsung maklumat yang disorokkan Encapsulation adalah kriteria penting dalam

peniskalaan

Page 20: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

20

Encapsulation Information hiding merujuk kepada proses dimana terdapatnya

hunbungan yang terikat di antara data dan operasi yang berkaitan dengannya, supaya operasi yang berlaku di luar unit yang dikurung (encapsulated unit) tidak boleh mempengaruhi maklumat yang terkandung di dalam unit.

Dalam C++ yang menyokong mekanisma information-hiding, bahagian antaramuka public boleh dicapai di luar kelas, manakala bahagian private hanya boleh dicapai dari dalam kelas itu sendiri.

Dalam kes ini, hanya member functions yang diisytiharkan untuk kelas tersebut yang boleh melakukan operasi ke atas ahli private

Page 21: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

21

Polimorfisma Istilah yang berasalkan dari perkataan Greek ini

membawa maksud “many forms” pelbagai bentuk Dalam aspek pengaturcaraan berorientasikan-objek,

merujuk kepada keupayaan untuk bertindakbalas dalam bentuk yang berbeza terhadap mesej yang sama, walaupun berada dalam hirarki pewarisan yang sama.

Polimorfisma boleh dikelaskan kepada dua kategori: Polimorfisma tulin Polimorfisma ad-hoc

Page 22: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

22

Polimorfisma Tulin

Polimorfisma tulin (pure polymorphism) – berlaku apabila terdapat satu fungsi yang boleh digunakan untuk menerima pelbagai jenis argumen satu aturcara dikatakan menggunakan konsep polimorfisma apabila member functions dalam kelas yang berbeza menggunakan signature yang sama tetapi berbeza dari segi terjemahannya dalam badan fungsi

Page 23: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

23

Polimorfisma Ad-hoc

Polimorfisma ad hoc – juga kadangkala dirujuk sebagai overloading, berlaku apabila terdapat beberapa fungsi yang berbeza yang menggunakan nama yang sama berlawanan dengan polimorfisma tulin. Polimorfisma ini membenarkan pengoperasi mensfesifikasikan tindakannya tanpa mengetahui jenis operan yang terlibat. Contohnya, operasi aritmetik penambahan dan penolakan.

Page 24: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

24

Polimorfisma Perbezaan utama di antara kedua kategori polimorfisma ini

adalah, operasi overloading hanya boleh dilakukan ke atas suatu set atau jenis tertakrif yang telah diketahui lebih awal.

Jenis polimorfisma yang sering digunkan dalam pengaturcaraan berorientasikan-objek adalah berkait dengan konsep pewarisan.

Apabila suatu mesej dihantar kepada suatu objek, dan penghnatar menspesifikasikan penerima adalah suatu objek kelas A, penerima dalah boleh jadi sebarang kelas yang menjadi waris kepada kelas A di dalam hirarki kelas. Penerima ini bertindakbalas kepada mesej menggunakan metod yang dipunyai oleh dirinya sendiri, dan bukanlah yang dipunyai oleh A.

Page 25: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

25

Pewarisan Satu lagi kriteria penting dalam pengaturcaraan

berorientasikan-objek kerana ia menyokong ‘guna-semula’ (reusability).

Contohnya, jika kelas A dikatakan mewarisi kelas B, kelas A adalah subkelas kepada B, dan B adalah superkelas keapda A. Apa yang diwarisi oleh A adalah keadaan dalaman, mesej dan metod kelas B.

Kelas A juga boleh mempunyai definisi tambahan kepada struktur keadaan dalaman, mesej dan metod.

Kebaikan konsep pewarisan ini adalah ia membenarkan penggunaan semula banyak daripada fitur yang telah dispesifikasikan dalam superkelasnya tanpa perlu menspesifikasikan semula.

Page 26: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

26

Pewarisan Setiap subkelas juga boleh menghapus dan

memodifikasi fitur yang diwarisi ini secara selective Pewarisan boleh terjadi dalam dua bentuk; tunggal

(single), sekiranya kelas itu hanya mempunyai satu parent, dan multiple sekiranya suatu kelas itu mempunyai lebih dari satu parent.

Pewarisan tunggal membentuk struktur kelas yang berbentuk pokok suatu metod diwarisi dari kelas ancestor yang terdekat

Multi-pewarisan membentuk struktur kelas seperti graf acyclic berarah

Sesetengah bahasa membenarkan suatu kelas mewarisi banyak superkelas

Page 27: 1 Bab 4 Paradigma Pengaturcaraan. 2 4.2.Pengaturcaraan Berorientasikan-Objek Suatu bahasa pengaturcaraan berorientasikan- objek harus menyokong konsep-konsep

27

Pengikatan Dinamik Apabila suatu mesej dihantar dan dihubungkan kepada suatu

metod, suatu pengikatan berlaku Sekiranya sistem menentukan ikatan ini semasa kompilasi

pengikatan statik berlaku Sebaliknya, sekiranya ikatan ini dilewatkan sehingga semasa

mesej dihantar (masa larian) pengikatan dinamik Suatu bahasa pengaturcaraan berorientasikan-objek biasanya

melaksanakan pengikatan statik, tetapi mesti menyokong pengikatan dinamik.

Pengikatan dinamik membolehkan objek dicipta dan dihapuskan jika perlu ruang ingatan digunakan dengan lebih efisen