hairulfadly 27 Report post Posted May 9, 2008 (edited) Mungkin korang semua tidak atau pernah dengar mengenai Object Oriented Programming.Atau dalam istilah melayunya pengaturcaraan berorientasikan objek atau OOP.Biar aku terangkan (Object-oriented Programming) ialah paradigma pengaturcaraan sesebuah komputer. Ia adalah untuk menekankan yang OOP boleh mengubah cara sesuatu perisian dibangunkan.Dalam membangunkan OOP terdapat beberapa konsep asas yang perlu diketahui iaitu :Konsep Asas1. Kelas (class) — sebuah kelas mentakrifkan ciri-ciri abstrak bagi sesuatu benda.Ini termasuklah sifat-sifat yang ada padanya dan peranannya. Contohnya, kelas Kucing akan terdiri dari sifat-sifat yang ada pada kucing (baka, bulu, jantina dan sebagainya).2. Objek (object) — tentuan (instance) bagi suatu kelas. Kelas Kucing memiliki semua sifat yang mungkin ada pada seekor kucing, manakala objek SiComel memiliki sifat-sifat yang tertentu sahaja. Kucing mempunyai bulu, SiComel mempunyai bulu putih bertompok hitam.3. Kaedah (method) — kebolehan bagi sebuah objek. SiComel, sebagai seekor Kucing, mempunyai kebolehan mengiau. Maka mengiau() ialah salah satu kaedah bagi SiComel. SiComel juga boleh memiliki kaedah lain, umpamanya makan() atau berlari(). Dalam sebuah aturcara, penggunaan satu kaedah hanya berkesan pada objek yang ditentukan sahaja, semua Kucing boleh mengiau, tetapi anda mesti ada seekor sahaja untuk mengiau.4. Pewarisan (inheritance) — Lazimnya sebuah kelas boleh memiliki "subkelas" yang mengkhususkan kelas tersebut. Contohnya, kelas Kucing boleh mempunyai subkelas KucingSiam, KucingBurma dan KucingParsi. Semua subkelas ini akan "mewarisi" segala sifat yang ada pada keturunannya; contohnya apabila kelas Kucing memiliki kaedah mengiau(), maka setiap subkelasnya (KucingSiam, KucingBurma dan KucingParsi) juga akan memiliki kaedah mengiau. Ini bermakna bahawa seorang pengaturcara akan menulis kaedah ini sekali sahaja. Subkelas boleh "mentakrifkan semula" (mengubah), menyekang atau menambah ciri-ciri yang tidak ada pada kelas asalnya. Contohnya Kucing memiliki sifat bulu, maka KucingSiam menentukan sifat bulu kepada 'licin dan berkilat'.5. Pengkapsulan (encapsulation) — Mengasingkan pelaksanaan (implementasi) daripada antaramuka6. Pengabstrakan (abstraction)7. Polimorfisme (polymorphism) — Menggunakan nama yang sama untuk memulakan operasi yang berlainan pada objek yang menggunakan jenis data berbeza.Setakat ni dulu. Kalau ada sebarang penambahan dari ahli puteranian amatlah dialu-alukan. Edited May 10, 2008 by hairulfadly Quote Share this post Link to post Share on other sites
SHiDi 0 Report post Posted May 9, 2008 (edited) Tambahan daripada aku. Kiranya salah harap sudi perbetulkan. Merujuk kepada nombor 6. Pengabstrakan (abstraction). Cara paling mudah menerangkan tentang abstract adalah mempunyai kepala tanpa badan. Bermakna apabila sesuatu class defined as abstract kesemua method dalam tu hanya mempunyai nama semata-mata, tiada logik dalamnya. Method didalam kelas tersebut mesti define sebagai abstract juga.public abstract class Contoh { public abstract String hello(); } Sebagaimana dapat dilihat, dalam class tersebut tiada logik dinyatakan. Apabila sesuatu class ingin menggunakannya maka class tersebut perlu extends: public class Guna extends Contoh { public String hello() { return "Hello World"; } } Itu daripada aku. Kiranya silap harap perbetulkan TAMBAHAN: Kalau dalam Java atau C++ polymorphism merupakan sesuatu yang mudah dilakukan. Tapi pada PHP developers, pernah terfikir macam mana nak buat polymorphism? Sedangkan dalam satu-satu class PHP setiap method tidak boleh menggunakan nama yang sama. Teknik yang digunakan adalah menyerupai overload: <?php public class HelloWorld { public greet($hello, $world) { return $hello." ".$world; } } ?> Itu merupakan kelas utamanya. Kita akan lakukan polymorphism dengan menggunakan extends: <?php public class Melayu extends HelloWorld { public greet($hello) { return parent::greet($hello, "Dunia"); } } ?> Memandangkan ada pelbagai cara orang kita menyebut Hello (hello, harlo, halluuu, allo) akan tetapi hanya satu untuk Dunia maka contoh ini aku gunakan. TAMBAHAN: Bila nak gunakan class PHP tersebut: <?php $hello = Melayu::greet("HaLLo"); echo $hello; ?>Ini akan menghasilkan HaLLo Duniap/s: @hairulfadly good thread. Keep it up and running Edited May 9, 2008 by SHiDi Quote Share this post Link to post Share on other sites
LanoV 22 Report post Posted May 10, 2008 Kalau korang buat flowchart or ilustration lagi senang paham kot. Nak baca2 konsep nie macam malas dan susah nak tangkap plak pasal OOP nie. Lagi pun bab2 teori nie kebanyakan orang mudah ngantuk.. hehehe. Just my opinion jer. Pasal kucing tu, memang bertepatan sekali konsep yang diterapkan... , senang nak imagine camner kucing punya sifat semua tu... hehehe. Quote Share this post Link to post Share on other sites
zeph 1 Report post Posted May 11, 2008 hak ah la.. tapi sifat kucing tak sama dgn sifat codes. sebab tu aku tak pernah faham c++ dari metaphor kucing. Quote Share this post Link to post Share on other sites
slier 28 Report post Posted June 12, 2008 (edited) aku rasa ada kesilapan dalam penerangan ko tentang abstraction class...ni aku rujuk oop dalam php la yerdalam php:abstraction class bermaksud class yang mempunya concrete method dan juga abstraction methodasbtraction class tidak boleh di instantiate(betul ke aku eja tu --kira x boleh create objek dari abstract class)abstract class mesti di extends oleh child classcontoh:abstract class user(){//abstract methodabstract function get_user_detail(){}//concrete methodpublic function create_user(){//ur logic goes here...//bla..bla.. }}kalau ko nak declare fully abstract baik ko guna interface jer..interface user{private create_user(){}private get_user_detail(){}}interface sama dgn abstract..iaitu ianya tidak boleh di instantiate..so kena extends..tapi cara extends x sama dgn abstract class..cth extends: class user_detail implemets user{//logic goes here}perhatian penggunaan keyword implemetes rather than the word extends...kebanyakan programmer lebih menggunakan interface drp abstract class adalah kerana php sendiri tidak menyokong multiple inheritance..tapi satu class boleh implements lebih dr satu interface Edited June 12, 2008 by slier Quote Share this post Link to post Share on other sites