Minggu, 20 November 2011

Tugas Ilmu Sosial Dasar (2)


Nama               :     Dana Kristiawan
NPM               :     11111703
Kelas               :     1KA27
Uraian             :     Tugas 2 Ilmu Sosial Dasar


PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman berorientasi objek ( Inggris: object oriented programming disingkat OOP ) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:
  • Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
  • Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
  • Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri. http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek
Pemograman adalah Suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu,dimana intruksi tersebut menggunakan bahasa yang dimengerti oleh komputer atau di kenal dengan bahasa pemograman.
Konsep Object Oriented sebenarnya bukanlah barang baru dalam dunia bahasa pemograman. Konsep ini sudah lama ada di mulai dari bahasa pemograman Small Talk,LISP,C++,dan beberapa bahasa pemogaran lainnya.
Pemrograman Object Oriented di maksudkan adalah membuat suatu program yang terdiri dari berbagai object yang saling berinteraksi. Dalam mebangun program yang masih sederhana konsep object oriented ini akan terasa sangat menyusahkan, akan tetapi ketika kita membuat Sebuah program yang ruaang lingkupnya luas konsep object oriented akan terasa sangat membantu karena akan terasa lebih mudah untuk mengorganisir program yang telah kita buat.
Dalam konsep object oriented akan kita temukan kata object class, class merupakan pola atau teamplate yang menggambarkan kumpulan object yang mempunyai sifat yang sama,perilaku,atu disebut dengan himpunan object sejenis. Sementara object adalah implementasi dari class. Sebagai contoh : dalam pembangunan suatu gedung tentunya seorang arsitek akaan menggunakan gambar desain gedung,dan kemudian akan di buat gedung nyatanya, Dalam contoh ini gambar desain gedung dapat kita kategorikan sebagai class dan gedungnyata sebagai implementasi dari gambar gedung yang dapat kita kata gorikan sebagai object. Dari suatu class dapat di buat beberapa object yang sama.
• OOP (Object oriented Programing)
Pemograman Object Oriented adalah membuat suatu program yang terdiri dari berbagai oject yang saling berinteraksi (dalam beberapa buku di artikan dengan bertukar pesan antar object). Ketika membuat Sebuah program yang ruang lingkupnya luas konsep object oriented akan terasa sangat membantu karna akan terasa lebih mudah untuk menggorganisir program yang telah kita buat,Dalam konsep object oriented terdapat 2 istilah yaitu objeck dan class,class merupakan pola atau template yang menggambarkan kumpulan object yang mempunyai sifat yang sama,perilaku, atau disebut dengan himpunan object sejenis. Sementara object adalah implementasi dari class.
Tujuan utama dari pengembngan perangkat lunak atau program berorientasi object adalah
1. Mempersingkat waktu dan menurunkan biaya pengembangan rekayasa perangkat lunak
2. Menurunkan biaya perwatan perangkat lunak
3. Pemograman beririentasi object memberikan landasan yang sangat berguna untuk pembuatan prototype system secara cepat.
Pedoman yang di sajikaan untuk menentukan object-object dalam suatu pemrograman:
  1. Correctness Sufficiency
Dalam mendesain proram sebaiknya kita memperhatikan bahwa object-object yang kita desain dapat menjamin kebenaran informasi dan juga kecukupan informasi yang di butuhkan.
  1. Robustness
Object-object yang kita desain sebaiknya dapat mebuat suatu program menjadi tangguh,dalam hal ini di harapkan program yang di buat meiliki error yang sedikit dan dapat bertahan dalam situasi yang sulit sekalipun.
  1. Flexibility
Object –object yang didesain sebaiknya mudah untuk di expand atau di kembangkan (bersifat flexbiliaty). Hal ini di butuh kan karena dalam perbuatan program sering kali kita harus merubah desain yang telah kita buat sebelumnya karena adanya perubahan desain yang di ingn kan oleh user atau pengguna.
  1. Reasbility
Kode-kde pogram yang telah kita buat,dapat kita gunakan kembali.Hal ini haruslah terpenuhi dalam mendesain program yang baik. Karena ketika kita menggunakan point ini maka kita akan lebih mudah untuk me-manage program yang kita buat.
  1. Efficiency
Desain yang kita buat sebaiknya efesien karena akan berkaitan dengan penggunaan resorce hardware yang kita gunakan. Baik itu dalam factor kecepatan maupun dalam factor penyimpanan data atau program.
Pemrograman berorientasi Object merupakan paradigma pemrograman yang menggunakan " objek "- struktur data yang terdiri dari bidang data dan metode bersama dengan interaksi mereka - untuk merancang aplikasi dan program komputer. Programming techniques may include features such as data abstraction , encapsulation , modularity , polymorphism , and inheritance . Pemrograman teknik dapat mencakup fitur seperti data abstraksi , enkapsulasi , modularitas , polimorfisme , dan warisan . Many modern programming languages now support OOP. Banyak modern bahasa pemrograman sekarang mendukung OOP.
Sebuah objek adalah bundel diskrit fungsi dan prosedur, seringkali berkaitan dengan konsep dunia nyata tertentu seperti pemegang rekening bank, pemain hoki, atau buldoser. Lain buah perangkat lunak dapat mengakses objek hanya dengan memanggil fungsi dan prosedur yang telah diizinkan untuk dipanggil oleh orang luar Sejumlah besar insinyur perangkat lunak setuju bahwa mengisolasi objek dengan cara ini membuat software mereka lebih mudah untuk mengelola dan melacak. Namun, sejumlah besar insinyur merasa kebalikannya mungkin benar: bahwa perangkat lunak menjadi lebih kompleks untuk mempertahankan dan dokumen, atau bahkan untuk insinyur dari awal Kondisi di mana OOP menang atas teknik alternatif (dan sebaliknya) sering tetap tak tertulis oleh salah satu pihak, bagaimanapun, pembahasan rasional dari topik yang sulit, dan sering menyebabkan perdebatan sengit [ rujukan? ] atas masalah.
Pemrograman berorientasi obyek memiliki akar yang dapat ditelusuri ke tahun 1960-an. Sebagai perangkat keras dan software menjadi semakin kompleks, pengelolaan sering menjadi perhatian. Para peneliti mempelajari cara untuk menjaga kualitas software dan pemrograman berorientasi objek yang dikembangkan sebagian untuk mengatasi masalah-masalah umum dengan sangat menekankan diskrit, unit dapat digunakan kembali logika. Teknologi ini berfokus pada data daripada proses, dengan program yang terdiri dari modul mandiri ("kelas"), setiap contoh yang ("objek") berisi semua informasi yang dibutuhkan untuk memanipulasi data struktur sendiri ("anggota"). Hal ini berbeda dengan yang ada pemrograman modular yang telah dominan selama bertahun-tahun yang difokuskan pada fungsi dari sebuah modul, bukan data spesifik, tetapi juga disediakan untuk penggunaan kembali kode , dan cukup dapat digunakan kembali unit-diri dari logika pemrograman, memungkinkan kolaborasi melalui penggunaan modul terkait ( subrutin ).. Pendekatan yang lebih konvensional, yang masih tetap, cenderung untuk mempertimbangkan data dan perilaku secara terpisah.
Istilah "benda" dan "berorientasi" dalam sesuatu seperti pengertian modern berorientasi objek pemrograman tampaknya membuat penampilan pertama mereka di MIT pada akhir 1950-an dan awal 1960-an "member functions Dalam lingkungan dari kecerdasan buatan kelompok, pada awal 1960, "objek" bisa merujuk ke item diidentifikasi ( LISP atom) dengan sifat (atribut); Alan Kay kemudian mengutip pemahaman rinci internal LISP sebagai pengaruh yang kuat pada pemikirannya pada tahun 1966. Contoh lain MIT awal Sketchpad diciptakan oleh Ivan Sutherland pada tahun 1960-1961, dalam glossary dari laporan teknis 1963 berdasarkan disertasi tentang Sketchpad, Sutherland didefinisikan pengertian dari "objek" dan "contoh" (dengan konsep kelas ditutupi oleh "master" atau "definisi"), walaupun khusus untuk interaksi grafis. [4] Juga, sebuah MIT ALGOL versi, AED-0, terkait struktur data ("plexes", di dialek) secara langsung dengan prosedur, pertanda apa yang kemudian disebut "pesan", "metode" dan "fungsi anggota".
Objek sebagai konsep formal dalam pemrograman diperkenalkan pada tahun 1960 di Simula 67, revisi utama dari Simula I, bahasa pemrograman yang dirancang untuk simulasi kejadian diskrit , diciptakan oleh Ole-Johan Dahl dan Kristen Nygaard dari Norwegia Computing Center di Oslo . [ 7] Simula 67 dipengaruhi oleh SIMSCRIPT dan Hoare's diusulkan "kelas merekam". [5] [8] Simula memperkenalkan gagasan kelas dan contoh atau benda (dan juga subclass, metode virtual, coroutines, dan simulasi kejadian diskrit) sebagai bagian sebuah paradigma pemrograman yang eksplisit. The language also used automatic garbage collection that had been invented earlier for the functional programming language Lisp . Bahasa ini juga digunakan otomatis pengumpulan sampah yang telah diciptakan sebelumnya untuk pemrograman fungsional bahasa Lisp . Simula yang digunakan untuk pemodelan fisik, seperti model-model untuk mempelajari dan meningkatkan pergerakan kapal dan isinya melalui pelabuhan kargo . Ide-ide Simula 67 dipengaruhi bahasa banyak kemudian, termasuk Smalltalk, turunan dari LISP ( CLOS ), Object Pascal , dan C + + .
The Smalltalk bahasa, yang dikembangkan di Xerox PARC (oleh Alan Kay dan lain-lain) pada 1970-an, memperkenalkan pemrograman berorientasi obyek istilah untuk mewakili penggunaan meresap objek dan pesan sebagai dasar untuk perhitungan. . Smalltalk pencipta dipengaruhi oleh ide-ide yang diperkenalkan dalam Simula 67, tapi Smalltalk dirancang untuk menjadi sistem yang dinamis sepenuhnya di mana kelas dapat dibuat dan dimodifikasi secara dinamis, bukan statis seperti dalam Simula 67. [9] Smalltalk dan dengan itu OOP diperkenalkan untuk khalayak yang lebih luas oleh Agustus 1981 edisi majalah Byte .
Pada 1970-an, Smalltalk karya tersebut Kay telah mempengaruhi masyarakat Lisp untuk menggabungkan teknik-teknik berbasis objek yang diperkenalkan untuk pengembang melalui mesin Lisp . . Eksperimen dengan berbagai ekstensi Lisp (seperti Loops dan Rasa memperkenalkan multiple inheritance dan mixin ), akhirnya mengarah pada Common Lisp Object System (CLOS, bagian dari berorientasi obyek bahasa pemrograman standar pertama, ANSI Common Lisp ), yang mengintegrasikan pemrograman fungsional dan pemrograman berorientasi obyek dan memungkinkan perpanjangan melalui protokol Meta-objek . the Linn Smart Rekursiv . Contoh termasuk iAPX Intel 432 dan Linn Smart Rekursiv .
Pemrograman berorientasi obyek yang dikembangkan sebagai metodologi pemrograman dominan di awal dan pertengahan 1990-an ketika bahasa pemrograman yang mendukung teknik menjadi tersedia secara luas. . Ini termasuk Visual FoxPro 3.0 C + + dan Delphi. dominasi semakin ditingkatkan oleh meningkatnya popularitas antarmuka pengguna grafis , yang sangat tergantung pada teknik pemrograman berorientasi-objek.. Sebuah contoh dari GUI dinamis perpustakaan erat kaitannya dan bahasa OOP dapat ditemukan di Kakao kerangka pada Mac OS X , ditulis dalam Objective-C , sebuah berorientasi, dinamis-ekstensi objek pesan ke C berdasarkan Smalltalk.. OOP toolkit juga meningkatkan popularitas pemrograman event-driven (walaupun konsep ini tidak terbatas pada OOP).. Beberapa merasa bahwa hubungan dengan GUI (nyata atau dianggap) adalah apa yang didorong OOP ke dalam arus pemrograman.
Niklaus Wirth dan rekan-rekannya juga telah menyelidiki topik seperti abstraksi data dan pemrograman modular (walaupun ini telah umum digunakan pada tahun 1960 atau sebelumnya). Modula-2 (1978) termasuk baik, dan berhasil desain mereka, Oberon , termasuk pendekatan khusus untuk objek orientasi, kelas, dan semacamnya Pendekatan ini tidak seperti Smalltalk, dan sangat tidak seperti C + +.
Obyek fitur telah ditambahkan ke banyak bahasa yang ada selama waktu itu, termasuk Ada , BASIC , Fortran , Pascal , dan lain-lain. Menambahkan fitur ini untuk bahasa yang awalnya tidak dirancang untuk mereka sering menyebabkan masalah dengan kompatibilitas dan rawatan kode.
Baru-baru ini, sejumlah bahasa telah muncul yang terutama berorientasi objek belum kompatibel dengan metodologi prosedural, seperti Python dan Ruby .. Mungkin komersial penting baru-baru ini bahasa berorientasi objek yang paling adalah Visual Basic.NET (VB.NET) dan C # , baik yang dirancang untuk Microsoft NET. platform, dan Jawa , yang dikembangkan oleh Sun Microsystems .kedua kerangka menunjukkan manfaat penggunaan OOP dengan membuat sebuah abstraksi dari implementasi dengan cara mereka sendiri.. VB.NET dan C # mendukung warisan lintas bahasa, kelas memungkinkan didefinisikan dalam satu bahasa ke bahasa subclass kelas didefinisikan dalam bahasa lain. Java berjalan dalam mesin virtual, sehingga memungkinkan untuk berjalan di semua sistem operasi yang berbeda.. VB.NET dan C # menggunakan pola Strategi untuk mencapai-bahasa warisan lintas, sedangkan Jawa memanfaatkan pola Adapter.
Sama seperti pemrograman prosedural menyebabkan perbaikan teknik seperti pemrograman terstruktur , desain perangkat lunak berorientasi objek metode modern meliputi perbaikan [ rujukan? ] seperti penggunaan pola desain , desain dengan kontrak , dan bahasa pemodelan (seperti UML ).

• Konsep dasar dan fitur
Sebuah survei oleh Deborah J. Armstrong hampir 40 tahun sastra komputasi mengidentifikasi sejumlah "quark", atau konsep mendasar, ditemukan dalam mayoritas kuat definisi dari OOP.
Tidak semua konsep-konsep ini dapat ditemukan dalam semua bahasa pemrograman berorientasi-objek, dan pemrograman berorientasi objek yang menggunakan kelas kadang-kadang disebut pemrograman berbasis kelas . tidak biasanya menggunakan kelas. Akibatnya, secara signifikan berbeda namun terminologi analog digunakan untuk mendefinisikan konsep objek dan contoh.
Cuire Benjamin Pierce dan beberapa peneliti lain melihat sebagai sia-sia setiap usaha untuk menyaring OOP untuk satu set minimal fitur Meskipun demikian, ia mengidentifikasi fitur fundamental yang mendukung gaya pemrograman OOP dalam bahasa berorientasi objek yang paling :
         Dynamic dispatch - ketika metode bisa dipanggil pada objek, obyek itu sendiri menentukan kode apa yang dijalankan dengan melihat metode pada waktu berjalan dalam sebuah tabel yang berhubungan dengan objek. Fitur ini membedakan objek dari suatu tipe data abstrak (atau modul), yang memiliki pelaksanaan (statis) tetap operasi untuk semua kasus. Ini adalah metodologi pengembangan program yang memberikan komponen modular sementara pada saat yang sama yang sangat efisien.
         Encapsulation (atau multi-metode , dalam hal ini negara disimpan terpisah)
         Subtipe polimorfisme
         Object inheritance (or delegation ) Objek warisan (atau delegasi )
         rekursi Buka - variabel khusus (sintaktis mungkin kata kunci), biasanya disebut this atau self, yang memungkinkan badan metode untuk memanggil metode tubuh lain objek yang sama Variabel ini akhir-terikat, yang memungkinkan sebuah metode yang didefinisikan dalam satu kelas untuk memanggil metode lain yang ditentukan kemudian, dalam beberapa subclass daripadanya.
Demikian pula, dalam bukunya 2003, Konsep-konsep dalam bahasa pemrograman, John C. Mitchell mengidentifikasi empat fitur utama: dinamis pengiriman, abstraksi , subtipe polimorfisme, dan pewarisan. Michael Lee Scott dalam Bahasa Pemrograman pragmatik hanya mempertimbangkan enkapsulasi, pewarisan dan dinamis pengiriman.
Kelas (ilmu komputer)
Kelas adalah template untuk suatu obyek, suatu datatype ditetapkan pengguna yang berisi variabel, properti, dan metode. kelas mendefinisikan karakteristik abstrak sesuatu (objek), termasuk karakteristiknya (atributnya, ladang atau properti ) dan hal-hal yang bisa dilakukan (perilaku, metode , operasi atau fitur. Orang mungkin mengatakan bahwa kelas adalah cetak biru atau pabrik yang menggambarkan sifat sesuatu Sebagai contoh, kelas Dog akan terdiri dari ciri-ciri yang dimiliki oleh semua anjing, seperti berkembang biak dan warna bulu (karakteristik), dan kemampuan untuk kulit dan duduk (perilaku). Kelas menyediakan modularitas dan struktur dalam sebuah program komputer berorientasi-objek.. kelas A biasanya harus dikenali oleh programmer non-akrab dengan masalah domain, yang berarti bahwa karakteristik kelas harus masuk akal dalam konteks. Selain itu, kode untuk kelas harus relatif self-contained (umumnya menggunakan enkapsulasi Secara kolektif, sifat dan metode yang didefinisikan oleh kelas disebut anggota.
Instance (ilmu komputer)
Satu dapat memiliki sebuah instance dari kelas; contoh adalah objek yang sebenarnya dibuat pada saat run-time Dalam programmer vernakular, yang Lassie objek merupakan instance dari Dog kelas. Set nilai dari atribut objek tertentu disebut nya negara . Objek ini terdiri dari negara dan perilaku yang didefinisikan di kelas objek.
Metode (ilmu komputer)
Metode adalah satu set pernyataan prosedural untuk mencapai hasil yang diinginkan.. Ia melakukan berbagai jenis operasi pada tipe data yang berbeda Dalam bahasa pemrograman, metode (terkadang disebut sebagai "fungsi") adalah verba. Lassie , menjadi Dog , memiliki kemampuan untuk kulit. So bark() is one of Lassie 's methods. Jadi bark() adalah salah satu Lassie metode s '. . Dia mungkin memiliki metode-metode lain juga, misalnya sit() atau eat() atau walk() atau save(Timmy) .. Dalam program tersebut, menggunakan metode biasanya mempengaruhi hanya satu objek tertentu; semua Dog s mengonggong, namun Anda hanya perlu satu anjing tertentu untuk melakukan menggonggong.
Message passing
"Proses di mana suatu objek mengirim data ke obyek lain atau meminta objek lain untuk memanggil sebuah metode." Juga dikenal dengan beberapa bahasa pemrograman interfacing. Sebagai contoh, objek yang disebut Breeder dapat memberitahu Lassie objek untuk duduk dengan melewati sebuah "duduk" pesan yang memanggil Lassie's "duduk" metode. Sintaks bervariasi antara bahasa, misalnya: [Lassie sit] di Objective-C. In Java, code-level message passing corresponds to "method calling". Di Jawa, kode-Tingkat kelulusan pesan sesuai dengan "metode panggilan". Beberapa bahasa dinamis menggunakan double-pengiriman atau multi-dispatch untuk menemukan dan lulus pesan.
Abstraksi (ilmu komputer)
Abstraksi mengacu pada tindakan yang merupakan fitur penting tanpa termasuk rincian latar belakang atau penjelasan. Classes use the concept of abstraction and are defined as a list of abstract attributes. Kelas menggunakan konsep abstraksi dan didefinisikan sebagai daftar atribut abstrak.
Encapsulation (pemrograman berorientasi obyek)
Enkapsulasi menyembunyikan rincian fungsional kelas dari objek yang mengirim pesan itu.  Sebagai contoh, Dog kelas memiliki bark() variabel metode, data Kode untuk mendefinisikan metode persis bagaimana kulit terjadi (misalnya, dengan inhale() dan kemudian, di sebuah lapangan tertentu dan volume). Timmy, teman s ', bagaimanapun, tidak perlu tahu persis bagaimana dia menyalak Enkapsulasi dicapai dengan menetapkan kelas dapat menggunakan anggota objek Hasilnya adalah bahwa setiap objek menghadapkan untuk setiap kelas tertentu antarmuka - para anggota dapat diakses oleh kelas tersebut. Alasan untuk enkapsulasi adalah untuk mencegah klien dari sebuah antarmuka dari tergantung pada bagian-bagian dari implementasi yang mungkin berubah di masa depan, sehingga memungkinkan perubahan tersebut akan dibuat lebih mudah, yaitu, tanpa perubahan untuk klien. Sebagai contoh, sebuah antarmuka dapat memastikan bahwa anak anjing hanya dapat ditambahkan ke sebuah objek dari kelas Dog oleh kode di kelas itu Anggota sering ditetapkan sebagai public, protected atau swasta, menentukan apakah mereka yang tersedia untuk semua kelas, sub-kelas atau hanya kelas mendefinisikan. Beberapa bahasa melangkah lebih jauh: Jawa menggunakan modifier akses standar untuk membatasi akses juga untuk kelas-kelas dalam paket yang sama, C # dan VB.NET cadangan beberapa anggota kelas-kelas dalam majelis yang sama menggunakan kata kunci internal (C #) atau Teman (VB.NET). Eiffel dan C + + membolehkan satu untuk menentukan kelas dapat mengakses setiap anggota.
Warisan (pemrograman berorientasi obyek)
Inheritance memungkinkan programmer untuk memperlakukan anggota kelas turunan seperti anggota kelas induk mereka. Jenis hubungan ini disebut anak-orang tua atau-hubungan"Subclass" adalah versi yang lebih khusus dari kelas, yang mewarisi atribut dan perilaku dari kelas orang tua mereka, dan bisa memperkenalkan mereka sendiri.
Sebagai contoh, kelas Dog mungkin memiliki sub-kelas yang disebut Collie , Chihuahua , dan GoldenRetriever. Dalam hal ini, akan menjadi sebuah instance dari Collie subclass. Misalkan Dog kelas mendefinisikan sebuah metode yang disebut bark() dan sifat yang disebut furColor . Masing-masing sub-kelas nya ( Collie , Chihuahua , dan GoldenRetriever ) akan mewarisi para anggota, yang berarti bahwa programmer hanya perlu menulis kode untuk mereka sekali.
Sebagai contoh, Collie subclass mungkin menetapkan bahwa default furColor untuk collie adalah coklat-putih.. The Chihuahua subclass mungkin menetapkan bahwa metode menghasilkan nada tinggi secara default.. The Chihuahua subclass dapat menambahkan metode yang disebut tremble() Jadi sebuah contoh chihuahua individu akan menggunakan bernada tinggi bark() dari Chihuahua subclass, yang pada gilirannya mewarisi biasa bark() dari Dog .. Objek chihuahua juga akan memiliki tremble() metode, tetapi Lassie tidak mau, karena dia adalah Collie , bukan Chihuahua Pada kenyataannya, warisan adalah "sebuah ... adalah" hubungan antara kelas, sedangkan instantiation adalah sebuah "adalah" hubungan antara suatu objek dan kelas: sebuah adalah Dog ("a ... adalah"), tetapi Lassie adalah Collie ("adalah"). Dengan demikian, objek bernama Lassie memiliki metode dari kedua kelas Collie dan Dog .
Beberapa warisan adalah warisan dari lebih dari satu kelas leluhur, baik dari nenek moyang menjadi seorang nenek moyang yang lain.. Sebagai contoh, kelas independen dapat mendefinisikan Dog s dan Cat s, dan Chimera objek dapat dibuat dari dua yang mewarisi semua multiple) perilaku (dari kucing dan anjing.. Ini tidak selalu didukung, karena akan sulit untuk melaksanakan.
Polimorfisme Subtipe
Polimorfisme adalah proses di mana kelas memiliki semua negara dan perilaku kelas lain. Lebih tepatnya, Polimorfisme dalam pemrograman berorientasi obyek adalah kemampuan benda milik berbagai jenis data untuk menanggapi panggilan dari metode dengan nama yang sama, masing-masing menurut sebuah perilaku tipe yang tepat.. Salah satu metode, atau operator seperti +, -, atau *, bisa abstrak diterapkan dalam berbagai situasi.. Jika Dog diperintahkan untuk) , hal ini dapat mendatangkan. Namun, jika suatu Pig diperintahkan untuk, hal ini dapat menimbulkan suatu Setiap subclass menimpa metode warisan dari orang tua kelas .
Decoupling memungkinkan untuk pemisahan interaksi objek dari kelas dan warisan ke lapisan yang berbeda dari abstraksi Penggunaan umum dari decoupling adalah untuk memisahkan polymorphically enkapsulasi, ] yang merupakan praktek menggunakan kode dapat digunakan kembali untuk mencegah modul kode diskrit dari berinteraksi satu sama lainNamun, dalam prakteknya sering melibatkan decoupling trade-offs yang berkaitan dengan pola-pola perubahan menguntungkan. Ilmu mengukur trade-off ini sehubungan dengan perubahan yang sebenarnya secara obyektif masih dalam masa pertumbuhan.
Definisi Formal
Ada beberapa upaya memformalkan konsep yang digunakan dalam pemrograman berorientasi obyek. Konsep berikut dan konstruksi telah digunakan sebagai interpretasi konsep OOP:
         datatypes coalgebraic
         abstract data types (which have existential types ) allow the definition of modules but these do not support dynamic dispatch tipe data abstrak (yang memiliki jenis eksistensial ) memungkinkan definisi modul tetapi ini tidak mendukung pengiriman dinamis
         recursive types records catatan menjadi dasar untuk memahami objek jika fungsi literal dapat disimpan dalam bidang (seperti dalam bahasa pemrograman fungsional), tetapi perlu bate sebenarnya jauh lebih kompleks untuk memasukkan fitur penting dari OOP. Beberapa ekstensi dari Sistem F <: yang berhubungan dengan objek bisa berubah telah dipelajari ini memungkinkan kedua polimorfisme subtipe dan polymorphism parametrik (generik).
Upaya untuk menemukan definisi konsensus atau teori di balik benda tidak terbukti sangat sukses (Namun, lihat Abadi & Cardelli untuk definisi formal konsep OOP banyak dan konstruksi), dan sering menyimpang secara luas. Sebagai contoh, beberapa definisi berfokus pada aktivitas mental, dan beberapa program hanya penataan .. Salah satu definisi sederhana adalah bahwa OOP adalah tindakan menggunakan struktur "peta" data atau array yang dapat berisi fungsi dan pointer ke peta lainnya dengan beberapa sintaktis dan gula scoping di atas. Warisan dapat dilakukan oleh kloning peta (kadang-kadang disebut "prototipeOBYEK: =>> Objek adalah entitas run time dalam suatu sistem berorientasi objek. Mereka mungkin mewakili orang, tempat, rekening bank, tabel data atau item apapun bahwa program tersebut telah untuk menangani.
Bahasa OOP
Daftar bahasa pemrograman berorientasi-objek
Simula (1967) secara umum diterima sebagai bahasa pertama yang memiliki fitur-fitur utama dari sebuah bahasa berorientasi objek. Organisasi ini dibentuk untuk membuat program simulasi, di mana apa yang kemudian disebut objek adalah informasi perwakilan paling penting. Smalltalk (1972-1980) ini bisa dibilang contoh kanonik, dan yang satu dengan yang banyak teori pemrograman berorientasi objek adalah dikembangkan.: Mengenai derajat orientasi objek, berikut perbedaan dapat dibuat:
         Bahasa disebut "murni" bahasa OO, karena segala isinya diperlakukan secara konsisten sebagai objek, dari primitif seperti karakter dan tanda baca, semua jalan sampai ke seluruh kelas, prototipe, blok, modul, dll Mereka dirancang khusus untuk memfasilitasi, bahkan menegakkan, metode OO. Examples: Smalltalk, Eiffel , Ruby , JADE . Contoh: Smalltalk, Eiffel , Ruby , JADE .
         Bahasa pemrograman yang dirancang terutama untuk OO, tapi dengan beberapa elemen prosedural. Examples: C++ , C# , Java , Python . Contoh: C + + , C # , Java , Python .
         Bahasa yang secara historis bahasa prosedural , tetapi telah diperpanjang dengan beberapa fitur OO. Examples: VB.NET (derived from VB), Fortran 2003 , Perl , COBOL 2002, PHP , ABAP . Contoh: VB.NET (berasal dari VB), Fortran 2003 , Perl , COBOL 2002, PHP , ABAP .
         Bahasa dengan sebagian besar fitur objek (kelas, metode, warisan, usabilitas), tetapi dalam bentuk jelas asli. Examples: Oberon (Oberon-1 or Oberon-2). Contoh: Oberon (Oberon-1 atau Oberon-2).
         Bahasa dengan tipe data abstrak dukungan, tetapi tidak semua fitur-orientasi obyek, kadang-kadang disebut bahasa berbasis objek. Contoh: Modula-2 (dengan enkapsulasi yang sangat baik dan menyembunyikan informasi), liat , CLU .
OOP dalam bahasa dinamis
Dalam beberapa tahun terakhir, pemrograman berorientasi objek telah menjadi sangat populer di bahasa pemrograman dinamis . Python , Ruby dan Groovy adalah bahasa dinamis dibangun di atas prinsip-prinsip OOP, sedangkan Perl dan PHP telah menambahkan fitur berorientasi objek sejak Perl 5 dan PHP 4, dan ColdFusion sejak versi 6.
The Document Object Model dari HTML , XHTML , dan XML dokumen di Internet telah binding ke populer JavaScript / ECMAScript bahasa.. JavaScript mungkin yang paling dikenal prototipe berbasis pemrograman bahasa, yang mempekerjakan kloning dari prototipe daripada mewarisi dari kelas. Lain bahasa scripting yang mengambil pendekatan ini Lua . Versi sebelumnya dari ActionScript (superset sebagian dari R3 ECMA-262, atau dikenal sebagai ECMAScript) juga menggunakan objek berdasarkan model-prototipe. Kemudian versi ActionScript menggabungkan kombinasi klasifikasi dan model obyek berbasis prototipe sebagian besar didasarkan pada spesifikasi-262 R4 ECMA saat ini tidak lengkap, yang berakar dalam 2 JavaScript Proposal awal.. Microsoft JScript.NET juga mencakup mash-up model obyek berdasarkan proposal yang sama, dan juga merupakan superset dari spesifikasi .   http://tekhpro.blogspot.com/2010/pengertian-oop-object-oriented.html
Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl
  15. Adobe Flash AS 3.0

PENGENALAN UML (Unified Modelling Language)
Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan terminologi yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi dinegoisasikan, dapat dikatakan kita berada pada tahap rancangan. Merancang adalah menemukan suatu cara untuk menyelesaikan masalah, salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented adalah UML.
Konsep Objek
Objek dalam ‘software analysis & design’ adalah sesuatu berupa konsep (concept), benda (thing), dan sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia, alarm dan lainlainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam sistem seperti tabel, database, event, system messages. Obyek dikenali dari keadaannya dan juga operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari suaranya. Ciriciri ini yang akan membedakan obyek tersebut dari obyek lainnya.
Alasan mengapa saat ini pendekatan dalam pengembangan software dengan object-oriented, pertama adalah scalability dimana obyek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua dynamic modeling, adalah dapat dipakai untuk permodelan sistem dinamis dan real time.
Teknik Dasar OOA/D (Object-Oriented Analysis/Design)
Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar, namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu permasalahan sudah tentu memiliki lebih dari satu solusi. Ada 3 (tiga) teknik/konsep dasar dalam OOA/D, yaitu pemodulan (encapsulation), penurunan (inheritance) dan polymorphism.
Pemodulan (Encapsulation)
Pada dunia nyata, seorang ibu rumah tangga menanak nasi dengan menggunakan rice cooker, ibu tersebut menggunakannya hanya dengan menekan tombol. Tanpa harus tahu bagaimana proses itu sebenarnya terjadi. Disini terdapat penyembunyian informasi milik rice cooker, sehingga tidak perlu diketahui seorang ibu. Dengan demikian menanak nasi oleh si ibu menjadi sesuatu yang menjadi dasar bagi konsep information hiding.
Penurunan (Inheritance)
Obyek-obyek memiliki banyak persamaan, namun ada sedikit perbedan. Contoh dengan beberapa buah mobil yang mempunyai kegunaan yang berbeda-beda. Ada mobil bak terbuka seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini dapat dikatakan sebagai obyek induk (parent). Sedangkan minibus dikatakan sebagai obyek anak (child), hal ini juga berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus.
Polymorphism
Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek mobil yang sama, namun memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus, hal ini juga berlaku pada obyek anak (child) melakukan metoda yang sama dengan algoritma berbeda dari obyek induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar lainnya adalah ruang lingkup / pembatasan. Artinya setiap Obyek mempunyai ruang lingkup kelas, atribut, dan metoda yang dibatasi. http://tekhpro.blogspot.com/2010/pengenalan-uml.html
IMPLEMENTASI OOP PADA PERANGKAT LUNAK PEMROGRAMAN
C++ adalah salah satu bahasa pemrograman komputer. Dibuat pada tahun 1980an oleh Bell Labs sebagai pengembangan dari Bahasa Pemrograman C. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah C++ medukung konsep pemrograman berorientasi objek (Object Oriented Language).
C++ merupakan bahasa pemrograman yang case sensitive. Contoh kompiler Produk dari Borland untuk kompiler C++ adalah Turbo C++, Borland C++, Borland C++ Builder. Sedangkan dari Microsoft adalah Ms. Visual C++.
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991.
Bahasa Pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. 
Java adalah bahasa pemrograman yang mirip dengan C/C++. Keunggulanya adalah Java dapat berjalan dibanyak flatform perangkat keras(Multy Flatform). Smalltalk adalah bahasa pemrograman berorientasi objek yang pertama kali populer. Smalltalk dikembangkan di Xerox PARC-Amerika serikat.
Ide dasar Smalltalk meliputi : Semua adalah objek. Objek bisa saling berkomunikasi melalui messages atau berita.  Semua tersedia untuk dimodifikasi. 
1.          Correctness and Sufficiency
        Dalam mendesain program sebaiknya kita memperhatikan bahwa object-object yang kita desain dapat menjamin kebenaran informasi dan juga kecukupan informasi yang dibutuhkan
2.          Robustness
Object-object yang kita desain sebaiknya dapat membuat suatu program menjadi tangguh, dalam hal ini diharapkan program yang dibuat memiliki error yang sedikit dan dapat bertahan dalam situasi yang sulit sekalipun. 
3.          Flexibility
Object-object yang didesain sebaiknya mudah untuk diexpand atau dikembangkan (bersifat flexibel). Hal ini dibutukan karena dalam pembuatan program sering kali kita harus merubah desain yang telah kita buat sebelumnya karena adanya perubahan desain yang diinginkan oleh user/pengguna.
4.          Reusability
Kode-kode program yang telah kita buat, dapat kita gunakan kembali. Hal ini haruslah terpenuhi dalam mendesain program yang baik. Karena ketika kita menggunakan point ini maka kita akan lebih mudah untuk me-manage program yang kita buat, apalagi disaat kita harus mengganti suatu informasi dalam program yang kita buat.
5.          Efficiency
Desain yang kita buat sebaiknya efisien karena akan berkaitan dengan penggunaan resource hardware yang kita gunakan. Baik itu dalam faktor kecepatan maupun dalam faktor penyimpanan data/program.
Beberapa hal diatas sangat penting untuk diterapkan agar program atau aplikasi yang kita bangun lebih tangguh, sebab menuliskan kode program tidak hanya sekadar mengetikkan perintah-perintah yang menginstruksikan aplikasi untuk mengerjakan sesuatu, tetapi dapat juga merupakan seni membangun struktur kode program dengan kaidah tertentu. http://tekhpro.blogspot.com/2010/implementasi-oop-pada-perangkat-lunak.html


Tidak ada komentar:

Posting Komentar