Apa sih OOP (Object Oriented Programming) ?
terkadang kita sering denger..
sering pake tuh singkatan tapi secara konkrit ga paham maksudnya..
oke lah sekarang di blog ini kami coba jelaskan secara sederhana tentang
definisi OOP dan implementasi OOP tersebut pada bahasa pemrograman.
dimulai dari pertanyaan pertama :
1. Apa yang dimaksud OOP ?
2. elemen/komponen apa aja sih yang ada di OOP ?
3. Apa kelebihan OOP dari yang BUKAN OOP ?
Oke segitu dulu, daripada kebanyakan pertanyaan dan jawab nya panjang lebar tapi ujung2nya malah bingung.. mending dikit2 nanya nya dan jawab satu per satu :
untuk nomor 1 :
ilustrasi nya begini..
Roda sudah ditemukan bertahun2 yang lalu, walaupun kita melakukan modifikasi dari berbagai macam hal kaya bentuk nya warna nya bahannya dan lain sebagainya. sedangkan "Roda" nya itu sendiri ngga perlu didefinisikan ulang atau ditemukan ulang, ya ngga ?!!
berikut adalah beberapa hal yang akan kita (manusia) lakukan dan pikirkan ketika menghadapi atau menanggapi sesuatu
1) kita seringkali membagi2 sesuatu kedalam kategori dan perbandingan: "yang ini lebih besar dari yang itu", "yang ini lebih mahal dari yang itu", dan lain lain.
2) kita biasanya ngga mau repot :"iye gw tau, klo ini mobil dengan mesin V8 dengan liquid cooled turbo, cuma gw kan ngga perlu tau mengenai detail itu klo gw cuma mau nyalain nih mobil, iya kan?".
3) kita biasanya menamai, mendefinisikan, atau menstandarisasikan sesuatu:"segitiga, lingkaran dan persegi akan kita sebut dengan sebutan BANGUN RUANG dan mereka semua mempunyai KELILING dan LUAS".
4) kita seneng meniru: "gw suka ma knalpot mobil lw, bisa ngga ya gw pasang di motor bebek gw?"
5) kita sering membuat rancangan kasar: "sekarang gw blom punya duitnya
atau waktunya atau persetujuannya, tapi nanti gw mau nih rumah ada pintunya, kamarnya, atapnya, jendelanya, dan pastinya ada temboknya".
6) kita juga seringkali melindungi sesuatu: "nih gw kasih tau harga total nya aja, tapi markup nya brapa ga gw liatin ya ".
7) kita tentunya suka berkomunikasi dengan lainnya: "gw mau supaya gw bisa ngakses rekening gw lewat HP, komputer, atm, burung merpati danlain-lain".
Untuk Nomer 2 dan 3:
istilah2 yang dikenal di OOP berikut penjelasannya adalah sebagai berikut:
Class : Mendefinisikan Objek mentah yang akan kita buat secara umum, berikut karakter dari objek tersebut(atribut, properties) dan prilaku objek tersebut (apa aja yang bisa dilakuin oleh objek tsb, cara2 bagaimana objek tersebut memproses sesatu, atau mungkin fitur2 yang dimiliki objek tersebut). bisa juga diistilahkan sebagai rancangan dasar (blue print). contoh: sebuah objek KAMBING akan mempunya semua hal secara umum untuk seekor KAMBING, seperti warna kulit (karakteristik), suaranya mbeee (prilaku).
Object : jika class dari KAMBING mendefinisikan semua kemungkinan jenis KAMBING dari segi karaktekistik dan prilaku, misal ada objek KAMBING dengan nama BANDOT, maka si BANDOT adalah salah satu KAMBING (diatas disebut bahwa class KAMBING punya karakteristik warna kulit) dengan warna kulit HITAM.
Instance : si BANDOT adalah sebuah instance dari class KAMBING. BANDOT sebagai seekor KAMBING mampu mengembeee, jadi mengembee() adalah salah satu method yang dimiliki oleh BANDOT
Message passing : misal ada objek lain yang diberinama PENGEMBALA trus katakanlah si pengembala mau bilang ke BANDOT untuk mengembeee dengan cara memanggil method mengembee()
Inheritance : "Subclass" adalah jenis class yang lebih spesifik, dimana para subclasses ini mempunyai semua atribut, karakteristik, prilaku yang dimiliki oleh class nya (parent), dan bisa mempunyai atribut, karakteristik, prilaku khusus sendiri.
Abstraction : dimana sebuah class dapat diperlakukan berbeda2 tergantung siapa yang memanggilnya, contoh BANDOT si KAMBING mungkin akan selalu dianggap seekor kambing, namun si BANDOT juga bisa dibilang BINATANG, ketika misalkan sedang dilakukan perhitungan mengenai jumlah BINATANG peliharaan si GEMBALA.
Encapsulation : class KAMBING kan punya method mengembee(). didalam method ini dijelaskan semua proses yang terjadi agar terjadi sebuah embee-an (tarik_napas(), buang_napas_bareng_suara(), pada tingkat suara tertentu). BANDIT, temennya si BANDOT ngga perlu tau detailnya bagaimana si BANDOT mengembee. karena mengembee() dienkapsulasi
dari penjelasan ini, kaya nya bisa ditarik kesimpulan sendiri deh mengenai bedanya ma bahasa2 yang dulu dan mengenai kelebihan pengunaan pendekatan OO dibanding dengan yang lain
selanjutnya, pengetahuan tentang OOP akan dibahas di lain waktu..
Wassalam,
Tidak ada komentar:
Posting Komentar