Senin, 25 September 2017

KONSEP OOP (OBJECT ORIENTED PROGRAMMING)

Pemrograman Berorientasi Objek atau yang dikenal dengan istilah Object Oriented Programming (OOP)merupakan pemrograman yang berorientasikan kepada objek.
Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.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.

Ada beberapa contoh konsep dari pemrograman orientasi Objek (Object Oriented Programmingyaitu sebagai berikut:
1.    Kelas atau Class
Dalam object oriented programming, class (kelas) adalah blueprint atau prototype, yang mendefinisikan variabel dan method-method pada seluruh object tertentu  untuk membuat anggota dirinya sendiri mengarah kepada class instance, class object, instance object atau simply object. Suatu class (kelas) mendefinisikan unsur anggota yang memungkinkan contoh class (kelas) ini memiliki perilaku dan kemampuan khusus sendiri.
Class (Kelas) adalah struktur data yang berisi data-data (konstanta-konstanta dan field-field), fungsi-fungsi (method, property,event, indexer, operator, constructor,destructor,dan static constructor) dan class dalam class.
Class (Kelas) adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class (kelas)  adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Class (kelas)  merupakan sarana pengkapsulan  kumpulan data dan kumpulan method java, class (kelas) digunakan untuk membuat objek, dan berperan sebagai  tipe data dari objek.
Sebuah class (kelas) 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 ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. Sebuah class merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi object.
Jika diilustrasikan hubungan antara class dan object seperti pada gambar dibawah ini :  

Hasil gambar untuk class object program
Suatu class dapat berisi property,field,method dan event dari suatu object, gabungan dari property,field,method dan event dari suatu object biasanya member dari class.
Penamaan suatu class mempunyai aturan umum :
a. Tidak menggunakan spasi atau menggunakan spasi dengan diganti “_” (misal class Sarjana_Mipa)
b. Tidak menggunakan kata-kata yang telah dipakai oleh compiler (reserved Word, lihat bab sebelumnya)

Modifier saat deklarasi kelas adalah :
            a. Tidak ditentukan (default) Kelas tersebut dapat diakses oleh kelas lain dalam satu package. 
      b. Public

    Ø Main Class/ Class Induk
          Modifier1 Class Namaclass modifier2 {
//tipedata namaatribut/variable
Public static void main (String[ ] args){
//character yang akan di tampilkan
}
}

}
Contoh sederhana dari deklarasi sebuah class :

Class Mahasiswa {
            String nim;                 //deklarasi variabel atau atribut
String nama;               //deklarasi variabel atau atribut
}

2.  Object
Object adalah elemen dasar dari konsep pemrograman, merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat dianggap sebagai sebuah object.Rumah, mobil, sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki dua karakteristik yang utama yaitu, atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut.

3. Abstraksi
Abstraksi adalah pengabstrakan atau penyembunyian kerumitan dari suatu proses. Sebagai contoh, orang tidak perlu berpikir bahwa mobil adalah kumpulan dari puluhan atau ribuan bagian-bagian kecil (mesin, kabel, baut, roda, rem, dsb). Orang hanya perlu berpikir bahwa mobil adalah sebuah objek yang telah memiliki prilaku spesifik, yang dapat digunakan sebagai alat transportasi, sehingga dia/mereka tinggal menggunakannya atau mengendarainya tanpa harus mengetahui kerumitan proses yang terdapat di dalam mobil tersebut. ini artinya, si pembuat mobil telah menyembunyuikan semua kerumitan-kerumitan proses yang terdapat didalam mobil dan pengguna tidak perlu mengetahui bagaimana sistem mesin , transmisi, dan rem berkerja. Konsep seperti inilah yang dinamakan dengan abstraksi.
Cotoh abstraksi dalam model pemrograman berorientasi objek,  kita sebagai programmer atau pengembang program tidak perlu tahu secara detail bagaimana cara membuat sebuah tombol, yang perlu kita ketahui adalah bagaimana cara menggunakan objek tombol yang sudah ada (baik data/propeti maupun method-nya). Dalam kasus ini, si pembuat objek telah mengabstraksikan semua proses yang berkaitan dengan pembuatan tombol.

Contoh Abstraksi:
·    Contoh berikut akan menjelaskan penggunaan class abstrak dalam pemrograman Objek dalam Java. Kelas abstrak yang dibuat adalah kelas Animal, kemudian dengan dua jenis variabel, jumlah kaki dan warna. Ditambahkan method berdasarkan cara jalan dan suaranya  :
public abstract class Hewan { 
private int jmlKaki; 
private Color warna; 
public abstract void jalan(); 
public abstract void suara();
{

4. Pembungkusan (Encapsulation)
Secara kode program, proses abstraksi yang telah kita bicarakan tadi diatas dapat dilakukan dengan cara membungkus semua kode dan data yang berkaitan ke dalam satu entitas tunggal yang disebut dengan objek, dengan kata lain sebenarnya proses pembungkusan itu sendiri merupakan cara atau mekanisme untuk melakukan abstraksi.
Dalam pemrograman tradisional, proses semacam ini dinamakan dengan penyembunyian informasi (information Hidding). Dalam melakukan pembungkusan kode dan data didalam java, terdapat 3 tingkat akses, yaitu :
·   Tingkat Akses Private, Dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka data dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Ini berarti data dan method tersebut tidak boleh diakses atau digunakan oleh kelas-kelas lain yang terdapat di dalam program. Untuk mendeklarasikan suatu data atau method dengan tingkat akses pivate, gunakan kata kunci ”private “.
Private : Memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
·   Tingkat Akses Protected, Suatu data maupun method, yang di deklarasikan dengantingkat akses protected dapat diakses oleh kelas yang memilikinya dan juga oleh kelas–kelas yang masih memiliki hubungan turunan.Sebagai contoh, apabila terdapat kelas B yang merupakan turunan dari kelas A, dan data X terdapat pada kelas A, maka kelas B diizinkan untuk mengakses data tersebut, tetapi apabila ada kelas lain (kelas C) yang bukan merupakan turuna dari kelas A, maka kelas C tersebut tidak diizinkan untuk mengakses data x yang terdapat pada kelas A. Untuk mendeklarasikan suatu data atau method dengan tingkat akses protected, gunakan kata kuci ”protected“.
Protected : Memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
·      Tingkat Akses Public, merupakan kebalikan dari tingkat akses private, Data maupun method yang bersifat publik dapat diakses oleh semua bagian di dalam program. Dengan kata lain , data-data maupun method-method yang dideklarasikan dengan tingkat akses public akan dikenali atau dapat diakses oleh semua kelas yang ada didalam program, baik yang merupakan kelas turunan maupaun yang tidak memiliki hubungan sama sekali. Untuk mendeklarasikan suatu data atau method dengan tingkat akses public, gunakan kata kunci “public“.
Public : Memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.

5. Pewarisan (Inherintance)
Inheritance adalah proses pewarisan data dan method dari suatu kelas kepada kelas yang lain. Pewarisan ini bersifat menyeluruh, sehingga semua data dan method yang dimiliki oleh kelas asalnya akan diturunkan kepada kelas baru. Kelas yang mewarisi disebut kelas “SUPER (super class)” dan kelas yang diwarisi disebut “SUBKELAS (sub class)”.
Manfaat penggunaan konsep pewarisan antara lain:
·    pertama, kita dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.
·         Kedua, kita dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas. Kelas semacam ini disebut kelas abstrak, karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret, mengimplementasikan behaviour abstrak tersebut sesuai dengan kebutuhan masing-masing.
Sedikit penjelasan mengenai kelas abstrak, kelas ini bisa memiliki hanya satu atau lebih metode abstrak.Subkelas dari kelas ini bertanggung jawab untuk memberikan implementasi untuk metode-metode abstrak tersebut.Sebagai akibat dari keberadaan metode abstrak ini, kelas abstrak tidak dapat diinstanskan (dibuatkan instansnya) atau digunakan untuk menciptakan sebuah objek dari kelas tersebut.
           
Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass.Sepeda gunung termasuk subclass.Hal ini dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda.

Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.


Tidak ada komentar:

Posting Komentar

KONSEP OOP (OBJECT ORIENTED PROGRAMMING)

Pemrograman Berorientasi Objek atau yang dikenal dengan istilah Object Oriented Programming (OOP)merupakan pemrograman yang berorientasikan...