You are here

Pengenalan OOP

OOP itu kepanjangan dari Object Oriented Programming, merupakan terobosan baru dalam pemrograman setelah pemrograman prosedural, pemrograman modular dan pemrograman abstraksi data. Ada tiga konsep utama yang ada di OOP.

  • Encapsulation yang selanjutnya nanti gua sebut enkapsulasi (penyembunyian informasi melaui private dan protected)
  • Inheritance yang selanjutnya gua sebut saja dengan inheriten (suatu kelas berasal dari turunan pertama atau lebih kelas lainnya)
  • Polymorphism yang selanjutnya ditulis dengan polimorpisme (kemampuan objek berubah menjadi objek yang lain)

Gua sengaja ngubah menjadi bahasa indonesia biar gampang ngetiknya :D. Dari tiga konsep di atas, berikut adalah beberapa kelebihan OOP (gua ambil dari buku yang dikarang Pak Widodo, menguasai Visual Basic .Net tingkat lanjut), yaitu: Pendekatan berorientasi masalah, segala sesuatu masalah bisa dimodelkan dengan objek

  • Penyembunyian informasi, hanya variabel-variabel tertentu saja yang bisa diakses sesuai dengan haknya
  • Reusability dan Ekstensibility, kode yang sudah ada bisa digunakan ulang, dan kemudahan dalam pengembangan kode
  • Meningkatkan maintenability, kesalahan atau kekurangan pada kode dapat langsung diperbaiki di blok kode tersebut.
  • Satu lagi yang ini gua tambahin, program bakal lebih terstruktur dan terorganisasi. Selain itu pengehematan penulisan kode program (kelebihan polimorpisme).

Sekarang kita bahas tentang tiga konsep itu, sebelumnya gua dikasih tau dulu yach bahwa OOP itu pasti menggunakan Class.

Enkapsulasi

Enkapsulasi atau pengkapsulan pada intinya adalah kita gak perlu tau apa sih yang ada dalam objek itu (class), yang kita butuhkan adalah apa kegunaan, bagaimana cara memakainya dan apa yang akan terjadi. Ilustrasinya adalah motor. Gimana cara ngidupin motor? masukin kunci, tekan tombol starter dan gas atau kalo gak ada dienkol aja. Mudah bukan? Kita gak perlu tahu apa sih yang terjadi sebenarnya pas kita mencet starter atau engkol, taunya motor idup trus bisa dijalankan. Ilustrasi lainnya adalah remote control tanpa kabel pada mobil-mobilan. Kalian kan gak perduli kerja remote control itu yang sebenarnya, yang penting begitu dihidupin dan dan stiknya digerakin ke atas dia bakal maju. Begitu digerakin ke kanan, dia bakal belok, dst.

Contoh terakhir adalah jam tangan. Ini juga penjelasan yang paling mudah dipahami. Taukan fungsi jam? betul, buat nunjukin waktu. Pas beli jam tangan kita hanya memilih tampilan dan kualitas yang bagus, itu yang terpenting. Masa bodo dengan cara mesin rangkaian digital yang bekerja di dalam jam itu.

Gimana ngertikan konsep enkapsulasi? intinya kita hanya perlu tau apa kegunaannya, gimana cara memakainya dan hasilnya apa.

Enheriten

Yang ini intinya adalah mengembangkan class yang sudah ada. Jadi kita gak perlu ngebentuk dari awal lagi, class yang sudah ada bisa dimodifikasi dan/atau ditambah fungsinya sesuai dengan kebutuhan. Ada yang bisa ditambah ada yang dimodifikasi. Sekarang ilustrasi yang ditambah dulu yach... Contohnya sama dengan enkapsulasi, dulu mobil remote kontrol tanpa kabel hanya ada satu tombol. bila dipencet mobilnya akan maju, dan kalo gak dipencet mobilnya muter-muter terus searah jarum jam. Sekarang bisa bergerak sesuai keinginan kita.

Contoh lain adalah tentang jam tangan. Dulu fungsi jam tangan hanya sebagai penunjuk waktu saja, tapi sekarang fungsinya sudah nambah, dari yang bisa nampilin tanggal sampe kalender.

Sekarang contoh yang dimodifikasi. Jika dulu perseneling mobil hanya manual sekarang sudah ada yang otomatis.

Jadi, dengan inheriten semua perubahan itu gak ngerubah bulat-bulat objek yang ada, tetapi hanya menambah dan memodifikasi dengan mempertahankan objek (class) awalnya.

Polimorpisme

Ini adalah inti dari OOP. Nilai yang gua berikan 50 untuk polimorpisme, 30 inheriten dan 20 enkapsulasi. Sebab dengan satu baris perintah kita bisa menggunakannya untuk berbagai keperluan, fungsi itu akan menyesuaikan sendiri ke pemanggilnya. Ilustrasinya adalah tombol play. Dimana-mana tombol play fungsinya sama, untuk menjalankan. Coba liat, padahal kan beda cara kerja tombol play di vcd dan radio.

Bagaimana? gak ngerti? Gua gak nyalahin kok, gua aja konsep terakhir ini yang paling bingung. Ngeliat diberbagai referensi pun gak ada yang ngasih contoh yang mudah dipahami. Hanya itu contoh klasik yang rada nyambung :D. Nanti bakal ngerti sendiri kok kalo udah paham dua konsep sebelumnya. Inti Polimorpisme adalah objek yang kita gunakan ini bisa berubah sesuai dengan kondisi yang terjadi. Jadi kita gak perlu nulisin kode program panjang-panjang.

Ok dech, itu teori yang bisa dikasih. Mudah-mudahan ada gambaran walaupun sedikit :D

Regards,

dj