Definisi Pemrograman Berorientasi Objek
Pemrograman berorientasi objek (PBO) atau dalam bahasa Inggris disebut Object Oriented Programming (OOP) merupakan paradigma pemrograman yang menggunakan "objek" untuk merancang aplikasi dan program komputer. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Ini menggunakan beberapa teknik dari paradigma yang ditetapkan sebelumnya, termasuk warisan, modularitas, polimorfisme, dan enkapsulasi. Saat ini, ada banyak bahasa pemrograman populer yang mendukung PBO seperti Ada, C++, Delphi, Java, Lisp, SmallTalk, Perl, PHP, Python, Ruby, VB.Net, Visual FoxPro, and Visual Prolog.
Konsep dasar dari Pemrograman Berorientasi Objek
- Class (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. Sebagai contoh, kelas anjing akan terdiri dari sifat-sifat yang dimiliki oleh semua anjing, misalnya untuk berkembang biak, warna bulu, dan kemampuan untuk menggonggong. 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. - Object (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. Sebuah contoh dari kelas tertentu, kelas anjing mendefinisikan semua anjing mungkin dengan daftar karakteristik yang mereka miliki, objek Lassie adalah salah satu anjing tertentu, dengan versi karakteristik tertentu. Anjing memiliki bulu, Lassie berbulu coklat-putih. Dalam jargon programmer, objek Lassie adalah instance dari kelas Dog. Himpunan nilai-nilai dari atribut objek tertentu disebut state. - Method (Metode)
Tingkah laku dari suatu objek atau kelas, jika bersifat static berarti tingkah laku semua objek dalam kelas tersebut. Method diletakkan di dalam classbody (sebaiknya tidak diletakkan dalam method lain). Sebagai contoh Lassie wujudnya Anjing, memiliki kemampuan untuk menggonggong. Jadi menggogngong () adalah salah satu metode Lassie. Dia mungkin memiliki metode lain juga, misalnya duduk () atau makan (). Dalam program ini, menggunakan metode hanya akan mempengaruhi satu objek tertentu, semua Anjing mengonggong, tetapi Anda membutuhkan satu anjing tertentu untuk melakukan menggonggong. - Message passing
Proses di mana suatu benda mengirimkan data ke objek lain atau meminta objek lain untuk memohon sebuah metode. - 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. Sebagai contoh, anjing Lassie dapat diperlakukan sebagai anjing yang memiliki banyak waktu, Collie ketika diperlukan untuk mengakses atribut Collie atau perilaku tertentu, dan sebagai Hewan (mungkin kelas induk Anjing) ketika menghitung hewan peliharaan Timmy. - Inheritance (Warisan)
Dalam beberapa kasus, kelas akan memiliki "subclass," versi yang lebih khusus dari kelas. Sebagai contoh, kelas Anjing mungkin memiliki sub-kelas sebut saja Collie , Chihuahua, dan GoldenRetriever. Dalam kasus ini, Lassie akan menjadi sebuah instance dari subclass Collie. Subclass mewarisi atribut dan perilaku dari kelas induknya, dan dapat memperkenalkan mereka sendiri. Misalkan kelas anjing mendefinisikan sebuah metode yang disebut menggonggong () dan sifat yang disebut furColor. Setiap sub-kelas (Collie, Chihuahua, dan GoldenRetriever) akan mewarisi anggota, yang berarti bahwa programmer hanya perlu sekali menulis kode untuk mereka. Masing-masing subclass dapat mengubah sifat-sifat yang diwariskan. Jadi, misalnya, kelas Collie mungkin menetapkan bahwa default furColor untuk collie adalah cokelat dan putih. Subclass Chihuahua dapat menentukan bahwa metode menggonggong () ini secara default bernada tinggi. Subclass juga dapat menambahkan anggota baru. Subclass Chihuahua dapat menambahkan metode yang disebut gemetar (). Jadi contoh individu chihuahua akan menggunakan menggonggong bernada tinggi () dari subclass Chihuahua, yang pada gilirannya mewarisi menggonggong biasa () dari Anjing. Objek chihuahua juga memiliki metode gemetar (), tetapi Lassie tidak, karena dia adalah Collie, bukan Chihuahua. Pada kenyataannya, warisan adalah sebuah hubungan : Lassie adalah suatu Collie. Collie adalah Anjing. Jadi, Lassie mewarisi anggota kedua Collies dan Anjing. Ketika sebuah obyek atau kelas yang mewarisi ciri dari lebih dari satu kelas leluhur, dan tidak satupun dari nenek moyang adalah nenek moyang dari yang lain, maka itu disebut multiple inheritance. - Encapsulation (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. Jadi, misalnya, kelas Anjing memiliki metode menggonggong (). Kode untuk metode menggonggong () mendefinisikan persis bagaimana gonggongan terjadi (misalnya, dengan menghirup () dan kemudian buang napas (), dengan nada dan volume tertentu). Timmy, teman Lassie, bagaimanapun, tidak perlu tahu persis bagaimana dia menggonggong. Enkapsulasi dapat dicapai dengan menetapkan kelas-kelas menggunakan anggota dari sebuah objek. Hasilnya adalah bahwa setiap objek dihadapkan untuk setiap antarmuka kelas tertentu yang diakses anggota kelas. Alasan untuk enkapsulasi adalah untuk mencegah klien dari sebuah antarmuka dari tergantung pada bagian-bagian dari pelaksanaan yang mungkin berubah di masa depan, sehingga memungkinkan perubahan-perubahan yang akan dibuat lebih mudah, yaitu, tanpa perubahan kepada klien. Sebagai contoh, sebuah antarmuka dapat memastikan bahwa anak anjing hanya dapat ditambahkan ke sebuah objek dari kelas anjing oleh kode di kelas itu. Anggota seringkali ditentukan sebagai publik, dilindungi atau swasta, menentukan apakah mereka yang tersedia untuk semua kelas, sub-kelas atau hanya mendefinisikan kelas. Beberapa bahasa melangkah lebih jauh: Java menggunakan kata kunci yang dilindungi untuk membatasi akses juga untuk kelas-kelas dalam paket yang sama, dan C + + memungkinkan seseorang untuk menentukan kelas yang dapat mengakses setiap anggota. - Polymorphism (Polimorfisme)
Polimorfisme adalah kemampuan perilaku untuk bervariasi berdasarkan pada kondisi di mana perilaku dipanggil, yaitu dengan dua atau lebih metode. Bahasa orientasi objek dapat mengirim pesan, metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan 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.







0 comments:
Post a Comment