Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Pengaturcaraan berorientasi objek - Wikipedia

Pengaturcaraan berorientasi objek

Dari Wikipedia bahasa Melayu

Pengaturcaraan berorientasikan objek atau OOP (bahasa Inggeris: Object-oriented Programming) ialah paradigma pengaturcaraan komputer.

OOP sering dipanggil sebagai "paradigma", dan bukan hanya gaya atau jenis pengaturacaraan. Ini adalah untuk menekankan yang OOP boleh mengubah cara perisian dibangunkan.

Jadual isi kandungan

[Sunting] Pengenalan

Aspek permulaan bagi Pengaturcaraan Berorientasikan Objek ialah, sebuah aturcara Komputer yang terdiri daripada sekumpulan unit-unit atau objek. Untuk membolehkan perkomputeran berlaku, setiap objek berupaya untuk menerima dan menghantar mesej (pesanan) kepada objek lain. Dengan cara ini, mesej dapat ditangani oleh sebahagian daripada kod, tetapi boleh juga ditangani oleh blok kod yang lain secara lancar.

Dalam OOP, objek adalah mudah, serba lengkap (self-contained), dan mudah dikenalpasti.

Sesungguhnya, Pengaturcaraan Berorientasikan Objek dimulakan dengan melakarkan situasi masalah. Seterusnya, dengan proses memasukkan objek, atau pembolehubah (sebagai kata-nama), metod (sebagai kata kerja), dan atribut (sebagai kata sifat/adjektif), rangka-kerja bagi aturcara dihasilkan, yang dimodelkan untuk situasi tersebut.

Majoriti daripada penulis aturcara bersetuju bahawa OOP merupakan langkah ke depan yang besar, berbanding metod berasaskan prosedur yang begitu kompleks sebelum ini. OOP memberi faedah besar dalam projek besar di mana metod berprosedur yang diguna menghasilkan banyak loop bersyarat serta cabang-cabang yang rumit, sehingga sukar hendak difahami dan diselenggara.

[Sunting] Konsep asas

  • 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).
  • 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.
  • 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 atur cara, penggunaan satu kaedah hanya berkesan pada objek yang ditentukan sahaja, semua Kucing boleh mengiau, tetapi anda mesti ada seekor sahaja untuk mengiau.
  • 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'.
  • Pengkapsulan (encapsulation) — Mengasingkan pelaksanaan (implementasi) daripada antaramuka
  • Pengabstrakan (abstraction)
  • Polimorfisme (polymorphism) — Menggunakan nama yang sama untuk memulakan operasi yang berlainan pada objek yang menggunakan jenis data berbeza.

[Sunting] Sejarah

Konsep Pengaturcaraan Berorientasikan Objek pertama kali muncul di dalam Simula 67, suatu bahasa pengaturcaraan yang direkabentuk untuk menjalankan simulasi. Ianya dicipta oleh Ole-Johan Dahl dan Kristen Nygaard, dari Norwegian Computing Centre di Oslo.

Menurut laporan tertentu mereka sedang mengusahakan program simulasi untuk kapal, dan mendapati yang jenis-jenis kapal boleh digabung kepada beberapa kelas objek. Di mana setiap kelas objek berperanan menakrif datanya sendiri, termasuk perlakuannya.

Konsep ini kemudiannya digunakan dalam Smalltalk, yang dibangunkan di Simula, Xerox PARC. Bagaimanapun, ianya direkabentuk sebagai sistem yang dinamik penuh, di mana objek boleh dicipta dan diubahsuai dengan mudah, dan bukan hanya sistem yang berpandukan program statik.

Pengaturcaraan Berorientasikan Objek berkembang sebagai metodologi pengaturcaraan yang dominan pada pertengahan 1980an. Ini terutamanya dipengaruhi oleh kemunculan C++, iaitu Bahasa lanjutan daripada Bahasa Pengaturcaraan C. Pengaruhnya semakin luas dengan kepopularan Antaramuka Grafik(GUI), yang sesuai dibangunkan dengan Pengaturcaraan Berorientasikan Objek. Aliran perubahan ini, mengubah fokus pengguna daripada penggunaan antaramuka berdasarkan teks yang mengguna arahan berjujukan, kepada memanipulasi komponen secara dinamik. Contoh penggunaan pustaka GUI(antaramuka Grafik) yang dinamik, dan Bahasa Pengaturcaraan Berorientasikan Objek, boleh didapati dalam rangka kerja Cocoa pada Mac OS X. Ianya ditulis di dalam Objective C, iaitu Bahasa Berorientasikan Objek, berdasarkan Smalltalk.

Di ETH ZUrich, Nikalus Wirth dan rakan-rakannya telah mengkaji beberapa topik seperti pengabstrakan data dan Pengaturcaraan Modular. Kedua-dua konsep ini termasuk di dalam Modula-2, dan rekabentuk mereka yang seterusnya, iaitu Oberan mengguna pendekatan yang lebih unik terhadap pengorientasi objek, class, dan sebagainya. Pendekatan mereka adalah berbeza dengan Smalltalk dan C++.

Ciri-ciri Pengaturcaraan Berorientasikan Objek telah dimuatkan dalam pelbagai Bahasa Pengaturcaraan pada masa itu. Ini termasuk Ada, BASIC, Lisp, Pascal, dan banyak lagi. Disebabkan bahasa-bahasa ini pada dasarnya bukan berkonsepkan OOP(pengaturcaraan Berorientasikan Objek), maka timbulnya masalah kompatibiliti(kesesuaian), dan penyelenggaraan Kod. Bahasa Pengaturcaraan Berorientasikan Objek yang "tulen" pula, kurang ciri-ciri yang sering digunakan oleh Juruaturcara. Dalam mengurangkan jurang perbezaan ini, beberapa percubaan telah dibuat untuk mencipta bahasa baru yang berdasarkan kaedah OOP, di samping membenarkan sifat Pengaturcaraan Berstruktur secara "selamat". Bahasa Pengaturcaraan Eiffel yang dibangunkan oleh Bertrand Meyer adalah bahasa terawal dicipta berdasarkan matlamat ini.

Dalam dekad akhir ini, Java telah berkembang secara meluas. Ini disebabkan sintaks penulisannya yang serupa dengan C/C++. Namun Java yang menarik minat golongan pengaturcara, ialah penggunaan Mesin Maya, yang bertujuan untuk menjalankan kod dalam pelantar komputer yang berbeza. Microsoft .Net dibangunkan dengan objektif yang sama, di samping memberi sokongan terhadap bahasa pengaturcaraan yang baru.

Pada masa terkini, sejumlah bahasa baru telah muncul yang berorientasikan objek, tetapi juga sesuai dengan metodologi pengaturcaraan berprosedur. Ini termasuk Python, dan Ruby. Selain daripada Bahasa Pengaturcaraan Java, bahasa berorientasikan objek lain yang popular secara komersil, adalah VB.NET dan C#(C sharp) yang direkabentuk untuk platform Microsoft .NET.

Kaedah rekabentuk Perisian Berorientasikan Objek telah menyumbang kepada penggunaan Corak Rekabentuk(design pattern), rekabentuk secara kontrak(design by contract), dan Bahasa Permodeling (modelling languages) seperti UML.

[Sunting] OOP dengan bahasa pengaturcaraan berstruktur

Dalam bahasa pengaturcaraan berprosedur, OOP digunakan dalam bentuk di mana jenis data dikembangkan untuk menyerupai objek dalam OOP. Ianya serupa dengan jenis data abstrak dengan tambahan seperti perwarisan. Setiap metod merupakan aturcara bawahan (subprogram) yang secara sintatiknya terikat kepada class.

[Sunting] Takrifan rasmi

Definisi OOP sering didebatkan. Secara umumnya, OOP merujuk kepada konsep bahawa perisian memanipulasikan objek, dan bukannya aksi yang dijalankan. Ini berbeza dengan paradigma pengaturcaraan seperti Pengaturcaraan Fungsi(Functional Programming) dan Pengaturcaraan Berprosedur (Procedural), di mana fokus utama adalah terhadap aksi.

[Sunting] Pengaturcaraan berorientasi objek sebagai sebuah paradigma baru

[Sunting] Model Berasaskan Class

Model OOP yang popular ialah model berasaskan class, bertentangan dengan model berasaskan objek. Dalam model ini, objek adalah entiti yang menggabungkan keadaan(state) (seperti, data) dan perlakuan(behaviour) (seperti, prosedur atau metod). Satu objek didefinisikan oleh satu class. Class ialah definisi, bagi kesemua objek dengan jenis tertentu. Suatu objek perlu dicipta berdasarkan suatu class. Objek yang dicipta dianggap ahli kepada class. Suatu objek adalah serupa dengan satu Struktur, tetapi dengan tambahan lain, seperti penunjuk metod, kawalan capaian ahli, dan ahli data yang merujuk kepada lokasi objek di dalam hirarki class.

[Sunting] Perwarisan

Suatu data objek dan/atau fungsi boleh berdasarkan kepada data objek dan/atau fungsi bagi objek lain. Objek itu dikatakan mewarisi sifat objek lain. Sifat ini membenarkan suatu objek dicipta dan diguna berulangkali. Perwarisan juga boleh termasuk subtyping, di mana suatu jenis objek ditakrif lebih khusus daripada objek yang asal. (lihat Prinsip Penggantian Liskov).

[Sunting] Model Berdasarkan Prototaip

Satu contoh Bahasa Pengaturcaraan Berorientasikan Objek yang mengguna model ini ialah SELF, yang dibangunkan oleh Sun Microsystems.

[Sunting] Model Berdasarkan Objek

Teknik ini termasuk konsep bagi suatu objek, iaitu pengkapsulan dan pengabstrakan, tetapi tidak termasuk perwarisan.

[Sunting] Contoh aturcara

Menulis perisian dalam bahasa pengaturcaraan berorientasi objek adalah lebih kepada cara menulis kod berbanding cara menulis prosedur khas.

Secara tradisi, pengaturcaraan diajar sebagai pendekatan bawah-ke-atas. Model ini baik untuk pengaturcaraan prosedur, walaupun dengan bahasa bukan modular, seperti Fortran dan Basic. Konsep berorentasikan-objek, bagaimanapun perlu dipelajari dan digunakan dalam pendekatan atas-ke-bawah, bermula dari objek medel dan interaksi objek.

Walaupun sesetengah bahasa berorentasikan objek mengikut object metaphor sehingga aras kenyataan statement level, seperti Smalltalk, bahasa yang paling meluas digunakan masa kini. C++, Pascal dan Java mengikut hampir-hampir catatan prosedure.

Dengan itu, untuk menulis perisian berorentasi objek yang baik, seseorang perlu membentuk model yang baik dan kemudian melaksanakan model dalam bahasa yang dipilih.

import javax.swing.*;
class Character { public static void main(String a[]) { String input; char charac0; char charac1; char charac2; char charac3; char charac4;
// Prompt user to input five characters and assign it into variable "input" input=JOptionPane.showInputDialog("Enter five characters: ");
// Extract 1st character from variable "input". // NOTE THAT the 1st character is at location zero (0) NOT location one(1). charac0=input.charAt(0);
// Extract 2nd character from variable "input" charac1=input.charAt(1);
// Extract 3rd character from variable "input" charac2=input.charAt(2);
// Extract 4th character from variable "input" charac3=input.charAt(3);
// Extract 5th character from variable "input" charac4=input.charAt(4);
// We also can extract the 1st character of input inserted by the user // using this statement char gred = JOptionPane.showInputDialog("Enter a character: ").charAt(0);
// Output statement grouping into one variable that is "out" type of String. String out="Character"; out+="\nIndex 0: "+charac0; out+="\nIndex 1: "+charac1; out+="\nIndex 2: "+charac2; out+="\nIndex 3: "+charac3; out+="\nIndex 4: "+charac4; out+="\nGred: "+gred;
JOptionPane.showMessageDialog(null,out);
System.exit(0);

} }

[Sunting] Bacaan Tambahan

  • Booch, Grady. (1993) ISBN 0805353402 Object-Oriented Analysis and Design with Applications (Second Edition). Addison-Wesley.
  • Gamma, Erich, Richard Helm, Ralph Johnson, John Vlissides. (1995) ISBN 0201633612 Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley.
  • Meyer, Bertrand. (1997) ISBN 0136291554 Object-Oriented Software Construction (Second Edition). Prentice Hall.
  • Rumbaugh, James, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen. (1991) ISBN 0136298419 Object-Oriented Modeling and Design. Prentice Hall.
  • Jacobsen, Ivar. (1994) ISBN 0201544350 Object-Oriented Software Engineering: A Use Case-Driven Approach. Addison-Wesley.
  • Abelson, Harold, Gerald Jay Sussman with Julie Sussman. (1996) ISBN 0262011530 Structure and Interpretation of Computer Programs (Second edition). The MIT Press

[Sunting] Lihat juga

  • Komponen Perisian
  • Bahasa Pemerian Pengantara (Interface description language)
  • Pengaturcaraan Berdasarkan Objek
  • Bahasa Pengaturcaraan Berorientasikan Objek
  • Pengaturcaraan Fungsi
  • Pengaturcaraan Prosedur
  • Pengaturcaraan Berstruktur
  • Pengaturcaraan Pasca-objek
  • Glossari kata Pengaturcaraan Berorientasikan Objek

[Sunting] Pautan Luar

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu