Download presentation
Presentation is loading. Please wait.
1
Paradigma Pengaturcaraan
Bab 4 Paradigma Pengaturcaraan
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,
3
4.2.1.Prinsip Rekabentuk Komponen-kompnen utama yang digunakan dalam pengaturcaraan berorientasikan-objek: Objek Kelas Mesej Metod
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)
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
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.
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?
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.
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
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(); };
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;
12
Contoh Implementasi Kelas dan Objek dalam Java
Definisi 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();
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
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
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.
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)
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
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
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
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
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
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
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.
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.
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.
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
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.