Friday, November 13, 2015

Teori Dasar Pemrograman Berorientasi Object | PBO

Sebelum temen - temen mengenal lebih dalam tentang Pemrograman Berientasi Object atau disingkat (PBO) atau englishnya (OOP) Object Oriented Programming, alangkah lebih baiknya kita lihat penjelasan Pemrograman  Berorientasi Object berikut:


Diambil dari Wikipedia.org:
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:


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.

Bahasa pemrograman yang mendukung OOP antara lain:

  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. SIMULA
  6. Smalltalk
  7. Ruby
  8. Python
  9. PHP
  10. C#
  11. Delphi
  12. Eiffel
  13. Perl
  14. Adobe Flash AS 3.0

Penjelasan Konsep Dasar dari Sumber lainnya:

Object
Dalam konteks “Pemrograman Berorientasi obyek” Obyek adalah orang, tempat, benda, kejadian atau konsep - konsep yang ada di dunia nyata yang penting bagi suatu aplikasi (perangkat lunak dan / atau sistem informasi).
Pemahaman obyek memiliki dua fungsi, yaitu :
  1. Memudahkan untuk mempelajari secara seksama hal - hal di dunia nyata.
  2. Menyediakan suatu dasar yang kuat dalam implementasi ke dalam sistem terkomputerisasi.
Class
Kelas adalah kumpulan/himpunan obyek yang memiliki kesamaan  dalam atribut/properti, perilaku(operasi), serta cara berhubungan dengan obyek lain.
Kelas membungkus (encapsulation) obyek- obyek.

Enkapsulasi
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain.

Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu - waktu, sekaligus menjaga program tersebut.

Pewarisan
Inheritance adalah salah satu konsep utama dalam Pemrograman Berorientasi Objek. Inheritance memperbolehkan penggunaan kembali kode -kode yang ada pada Base Class nya untuk diturunkan pada Derived Class.

Inheritance adalah pewarisan sifat dari superclass ke subclass, yang mewarisi attribute dan method yang masih sejenis beserta attribute dan method tambahan yang merupakan sifat khusus subclass.

Keuntungan dari inheritance adalah programmer  dapat menggunakan coding dari superclass yang nantinyan digunakan secara berulang ulang pada subclass tanpa harus menulisnya berulang kali juga.

Polimorphisme
Polimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda. 
Secara harfiah, "poli" berarti banyak sementara “morph” berarti bentuk.


Perbandingan Pemrograman Berorientasi Object dengan Prosedural

Prosedural
Prosedural Membagi  – bagi proses yang dilakukan program menjadi prosedur – prosedur atau fungsi  – fungsi yang dibuat berdasarkan pembagian proses yang dibutuhkan oleh program.

Berorientasi Object
Membagi – bagi kode program menjadi kelas –kelas yang dibuat berdasarkan objek –objek yang terlibat dalam pengembangan program.

Untuk memahami dan Implementasi mengenai Pemrograman Berorientasi Object dengan Java Tentang Pembahasan Kelas dan Object Dapat di Klik Disini



No comments: