Cara mudah belajar pemrograman komputer

Senin, 16 Maret 2015

Pengertian Object Oriented Programming (OOP)

Object Oriented Programming (OOP)



Mahluk apa sih ini OOP?
Object oriented programming adalah sebuah metode atau pendekatan atau bisa juga kita katakan cara pandang programmer dalam membuat program komputer. Apa pula maksudnya ini.
Banyak sekali pengertian dari object oriented programming ini, namun saya lebih memilih untuk mengartikan object oriented programming ini sebagai sebuah cara pandang atau konsep dalam pemrograman yang memandang segala hal sebagai class dan object. Selain tentu saja tidak mengabaikan segala bentuk kelebihan object oriented programming itu sendiri seperti inheritance, encapsulation, Polimorfism, dan abstraction. Yup kita tidak perlu mengerti apa benda-benda ini terlebih dahulu pada tahap ini, tetapi kita akan membahas terlebih dahulu apa itu class dan apa itu object.

Seperti kebanyakan orang mengatakan class adalah sebuah blue print. Lantas apa maksudnya class sebagai blue print?
Saya akan memberikan sebuah penggambaran goBlog untuk hal satu ini.
Bayangkan anda seorang kontraktor perumahan, dimana anda menjual berbagai tipe rumah entah itu 45 58 dll dll.
Untuk tujuan tersebut anda membuat beberapa rancangan atau gambar untuk rumah tipe 45, nah gambar rancangan ini bisa kita katakan sebagai blue print.
Dari blue print ini kita bisa membuat puluhan bahkan ratusan rumah yang sama berdasarkan rancangan gambar blue print kita tadi ini. Nah gambar itu yang kita sebut blue print, sedangkah rumah yang dibangun berdasarkan rancangan tersebut yang kita namakan object.
Nah selain object dan class ada satu mahluk yang perlu kita ketahui yang berhubungan erat dengan mereka berdua ini. Pada contoh diatas kita memiliki berbagai macam tipe rumah untuk membangun sebuah perumahan, dan tentunya kita memiliki lebih dari satu class atau blue print rumah, bisa tipe 45 bisa tipe 38 dll dll dll. Nah kumpulan dari blue print- blue print ini bisa kita sebut sebagai modul. Jadi mahluk satu ini yang bernama modul bisa kita artikan sebagai kumpulan beberapa class yang saling terhubung untuk membentuk sebuah applikasi, well atau dalam contoh diatas kumpulan beberapa gambar rancangan rumah untuk membentuk suatu perumahan.

Nah kalau sudah sedikit tergambar di otak kita apa itu object apa itu class apa itu modul dan sudah kita mengerti --walaupun sedikit-- tentang bagaimana mahluk mahluk itu saling berkaitan, maka selanjutnya kita akan membahas tentang kelebihan yang ada pada object oriented programming ini.

1. Inheritance
Inhritance adalah sebuah kemampuan untuk memperluas class yang sudah ada. Maksudnya begini katakanlah kita memiliki sebuah rancangan rumah untuk tipe 36 yang memiliki 2 kamar dan satu kamar mandi. Sedang kita ingin membuat tipe rumah yang sama namun memiliki 2 kamar dan 2 kamar mandi. Maka kita bisa menurunkan sifat rancangan yang telah ada tadi untuk menjadi sebuah class baru atau tipe rumah baru. Dalam object orinted programming, class yang menjadi acuan disebut sebagai parent class dan class yang menuruni sifat sifat dari class parent ini disebut sebagai child class. Jadi kesimpulanya adalah inheritance dapat diartikan sebagai kemampuan untuk menurunkan sifat dari class induk ke class anak.

Contoh lain agar kita lebih mengerti konsep dari inherintance ini adalah sebagai berikut.
Bangkan kita memiliki sebuah class bernama manusia dan kita tahu bahwa sifat atau kemampuan dari manusia adalah seperti berbicara, makan, minum, berjalan, dan memiliki beberapa properti seperti kaki, tangan, nama.
Nah kita akan membuat sebuah class turunan yang akan mempunyai semua sifat dan kemampuan serta atribut dari class manusia ini dengan berbagai penambahan sifat dan kemampuan serta atribut. Katakanlah class anakan ini kita namakan mahasiswa.
Mahaiswa merupakan turunan dari class manusia yang memiliki nama, bisa makan, bisa berjalan, bisa berbicara dan bisa minum, serta memiliki atribut sama seperti manusia tangan kaki dll.
Tetapi dalam kasus ini kita memiliki atribut tambahan selain nama, yaitu NPM dan semester.
Serta seorang mahasiswa ini tidak hanya bisa berbicara, berjalan, makan, minum tetapi juga memiliki kemampuan tambahan misalkan mengerjakan tugas.
Untuk membuat class mahasiswa dengan kemampuan seperti diatas, kita tidak perlu menulis ulang apa yang dimiliki class manusia, tetapi kita tinggal menurunkan sifat sifat dan atribut dari class manusia ke class mahasiswa dengan penambahan sifat dan atribut yang tidak dimiliki oleh class manusia.

2. Encapsulation
Mahluk apa pula ini..
en-capsul-ation, pengartian goBlog nya pengkapsulan. Bayangkan sebuah kapsul ehh atau tabung emm atau kotak nasi deh :D.
Yup seperti kotak nasi, encapsulasi adalah sebuah metode atau konsep untuk membungkus kumpulan property dan kemampuan (behavior) dari sebuah class dan menjaganya untuk tetap menjadi sebuah satu kesatuan yang utuh, lebih dari itu encapsulation bertujuan untuk melindungi hal hal tersebut. Melindungi dari apa? Katakanlah kita memiliki sebuah class yang berisi behavior dan property yang tidak ingin sembarang class dari program kita untuk mengakses datanya, kita bisa menambahkan proteksi atau perlindungan terhadap property dan behavior ini dengan memanfaatkan kemampuan dari object oriented yang kita sebut sebagai encapsulation ini.

3. Polymorphism
Polymorphism dari segi bahasa bisa kita artikan sebagai banyak bentuk. Well, lantas apa hubunganya dengan pemrograman? lebih spesifik lagi apa hubunganya dengan object oriented programming??
Ok bayangkan seperti ini.
Sebuah operasi penjumlahan angka 3 + 4
Secara otomatis program akan mengerti dan menjumlahkan angka ini dan memberikan hasilnya.
Sekarang bayangkan jika angka tadi kita ganti dengan tulisan misal nama+saya
Duh gimana cara menjumlahkan tulisan? well hasilnya bukan dijumlahkan melainkan digabungkan menjadi namasaya. Nah beda kan bentuknya. Lah ini mah di bahasa pemrograman yang bukan object oriented juga bisa kali...
itu tadi tujuanya untuk penggambaran seperti apa sih yang namanya banyak bentuk itu.
Sekarang ingat di penjelasan diatas disebutkan soal inheritance? nah dengan memanfaatkan poplymorphism ini kita bisa merubah sebuah sifat atau kemampuan atau behavior dari class induk dengan metode override, jadi konsepnya kita menurunkan sifat dari parent class tetapi juga merubah sedikit perilakunya ketika pada child class, sehingga hasilnya meskipun class anak atau child ini menuruni sifat bapaknya tetapi dia memiliki kemampuan yang berbeda dari bapaknya.

4.Abstraction
Weh mahluk apa pula ini??? Mahluk gaib maksudnya astral?
Abstraction adalah sebuah penggambaran umum dari object. hah apa kamsudnya?
Begini, ketika saya mengatakan "saya menulis diatas meja"
Anda bisa mengerti dan membayangkan sendiri saya sedang menulis diatas meja. Tetepi meja yang saya gunakan mungkin berbeda dengan apa yang anda bayangkan, apakah mejanya bulat? kotak? kakunya empat? atau kakinya satu di tengah? meja plastik atau meja kayu?
Tidak penting seperti apa bentuk meja yang saya gunakan, yang terpenting anda tahu saya menulis diatas sebuah meja dan saya yakin anda sudah sering melihat berbagai bentuk meja. Nah inti yang ingin saya sampaikan tentang abstraction ini adalah mengambil sebuah intisari berdasarkan esensi tanpa memperdulikan ketidak sesuaian yang tidak berguna, penting meja ngapain berdebat tentang berapa kakinya atau bagaimana bentuknya. Jadi abstraction bisa kita katakan sebagai sebuah penggambaran umum tentang ide dasar tanpa mempertimbangkan sesuatu yang tidak relefan atau tidak penting terhadap ide dasar tersebut.

Tertarik ingin tahu seperti apa pengamplikasian OOP pada pemrograman php? Cek tulisan sebelumnya tentang Object Oriented Programming (oop) di php pada artikel ini.
Oke sobat, itulah tadi sebuah gambaran umum tentang pengertian object oriented programming.

Jika anda sependapat dengan saya atau merasa tercerahkan oleh tulisan ini, jangan ragu untuk berbagi pengetahuan kepada sesama dengan membagikan tulisan ini melalui tombol media sosial dibawah ini.
Dan apabila anda memiliki pemikiran atau penjelasan yang berbeda dengan cara yang saya tuliskan, jangan pernah ragu untuk meninggalkan jejak anda pada kolom komentar dibawah ini.

0 komentar:

Posting Komentar

Popular Posts

Recent Posts

Unordered List

Pages

Kunjungan

Diberdayakan oleh Blogger.