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:
- 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.
- 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.
- 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.
- 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.
- 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:
- Visual Foxpro
- Java
- C++
- Pascal (bahasa pemrograman)
- Visual Basic.NET
- SIMULA
- Smalltalk
- Ruby
- Python
- PHP
- C#
- Delphi
- Eiffel
- Perl
- 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
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.
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.
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.
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.
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