Visual Basic merupakan bahasa yang Object-Based
(komponen-komponen program dibuat dalam bentuk objek), sedangkan VB.NET adalah
Object Oriented, hal ini berarti bahwa VB.NET merupakan bahasa yang benar-benar
berorientasi object dengan mendukung empat pilar utama dari OOP yaitu Polymorphism,
Inheritance, Abstraction dan Encapsulation.
Kalau anda adalah programmer yang terbiasa dengan pendekatan
procedural terstruktur, maka anda akan baru dengan beberapa istilah OOP yang
kita sebutkan diatas, dan memang hal tersebut senantiasa menjadi masalah bagi
programmer yang berasal dari VB dan ingin beralih ke VB.NET.
Lalu timbul pertanyaan, apakah pada kita harus menguasai dan
memahami semua istilah diatas baru dapat membuat program aplikasi dengan VB.NET ? Tentu saja jawabannya tidak,
tetapi sebagai programmer VB.NET yang baik, maka konsep dari OOP tidak dapat
diabaikan.
Mengapa harus pendekatan OOP?
Tujuan utama dari pengembangan pendekatan berorientasi objek (OOP) adalah untuk menghilangkan beberapa kelemahan yang terdapat pada pendekatan procedural. Pada OOP data diperlakukan sebagai elemen yang penting dan tidak boleh mengalir secara bebas dalam program. Data yang terikat kepada function dan harus dilindungi terhadap kemungkinan perubahan dari luar function.
Tujuan utama dari pengembangan pendekatan berorientasi objek (OOP) adalah untuk menghilangkan beberapa kelemahan yang terdapat pada pendekatan procedural. Pada OOP data diperlakukan sebagai elemen yang penting dan tidak boleh mengalir secara bebas dalam program. Data yang terikat kepada function dan harus dilindungi terhadap kemungkinan perubahan dari luar function.
Catatan
:
Anda dapat melihat konsep OOP seperti suatu
objek Televisi, dimana sebagai pemakai kita tidak perlu terlalu pusing dengan
komponen apa saja yang bekerja didalam televise tersebut, tetapi sebagai
pemakai kita cukup mengerti bagaimana menghidupkan, memilih channel, mengubah
volume suara, dan beberapa setting dasar.
|
OOP memungkinkan untuk pemecahan masalah
kedalam sejumlah entitas yang disebut sebagai objek dan kemudian mengembangkan
data dan fungsi disekitar objek tersebut. Salah satu manfaat yang terpenting
dari OOP adalah pemanfaatan kembali.
Beberapa kemampuan utama dari OOP adalah sebagai berikut :
Beberapa kemampuan utama dari OOP adalah sebagai berikut :
- Menekankan pada data dari pada procedure
- Program terbagi kedalam objek-objek
- Data disembunyikan dari akses oleh function-function eksternal
- Objek dapat berkomunikasi satu dengan yang lain melalui function
- Data baru dan function dapat dengan mudah ditambahkan pada saat dibutuhkan.
- Mengikuti pendekatan buttom up.
Konsep dari OOP:
- Objects
- Classes
- Data Abstraction dan Encapsulation
- Inheritance
- Polymorphism
Objek merupakan dasar dari entitas run-time dalam suatu sistem berorientasi objek. Masalah pada pemrograman adalah menganalisa dalam arti objek dan komunikasi alamiah diantara mereka. Ketika suatu program dijalankan, objek berinteraksi satu dengan yang lain dengan saling mengirim message. Objek-objek yang berbeda berinteraksi satu dengan yang lain tanpa mengetahui detail data dari masing-masing data ataupun koding.
Class
Suatu class adalah suatu koleksi dari objek-objek yang bertipe sama. Setelah suatu class telah didefinisikan, sejumlah dari objek-objek dapat dibuat berdasarkan class tersebut.
Catatan : Istilah Class dan Objek sering dicampuradukan, pada objek merupakan instance dari suatu class pada saat runtime, jadi pada saat design, class merupakan cetak biru bagi objek-objek yang akan dibuat pada saat runtime. Anda dapat mengasosiasikan class dengan gambar denah dari rancangan rumah, dan selanjutnya berdasarkan denah ini akan dibangun rumah-rumah (objek) sebenarnya. |
Data Abstraction dan Encapsulation
Abstraction mengacu pada usaha untuk menampilkan hal-hal yang penting tanpa mengikutsertakan detail latarbelakang ataupun penjelasan. Class-class menggunakan konsep dari abstraksi dan mendefinsikannya sebagai suatu daftar dari atribut-atribut abstrak.
Catatan : Sebagaimana contoh sebelumnya bahwa TV merupakan gambaran dari Abstraksi, dimana yang perlu ditonjolkan pada pemakai adalah hal-hal penting bagaimana menghidupkan dan mematikan serta berbagai setting dasar, sedangkan permasalahan teknis yang berada didalam kotak TV seperti rangkaian elektronik disembunyikan dari pemakai. Jadi dalam hal ini TV dianggap suatu black box. |
Inheritance
Inheritance adalah proses yang mana objek-objek dapat mengusahakan member dari objek class lain. Pada OOP inheritance menyediakan pemakaian kembali, seperti, menambah kemampuan baru pada class yang telah ada dengan tanpa melakukan modifikasi langsung terhadap class tersebut. Hal ini dilakukan dengan menurunkan suatu class baru dari yang class telah ada. Class baru tersebut memiliki kombinasi dari keduanya.
Catatan : Pendekatan inheritance dapat dipahami sebagai pengembangan produk, dimana engineer tidak perlu merancang produk dari awal, tetapi dengan melakukan modifikasi terhadap produk yang telah ada untuk menghasilkan suatu produk baru. |
Polymorphism
Polymorphism adalah kemampuan untuk memiliki lebih dari satu bentuk. Suatu operasi dapat menunjukan prilaku yang berbeda pada instance yang berbeda. Prilaku tersebut tergantung kepada tipe data yang digunakan dalam operasi. Polymorphism secara ekstensif digunakan dalam implementasi Inheritance.
Dengan polymorphism kita dapat membuat beberapa fungsi dengan nama yang sama tetapi memiliki daftar argument yang berbeda baik dari segi jumlah maupun tipe datanya (Overloading), sehingga dalam implementasinya fungsi akan dioperasikan berdasarkan argumen yang diberikan, sehingga program dapat bereaksi secara tepat sesuai dengan jenis tipe data dan jumlah argument.
Kemudian polymorphism juga memiliki fungsi dimana pemanfaatan variable dengan tipe base class untuk menampung instance dari class turunannya dan menjalankan metoda class turunannya.
Keunggulan dari OOP
OOP memiliki keunggulan berikut diatas pendekatan konvensional:
- OOP menyediakan struktur modular yang jelas untuk program, yang mana cocok untuk mendefinisikan tipe data abstrak yang merupakan detail dari implementasi disembunyikan serta unit memiliki interface yang telah didefinisikan dengan jelas.
- OOP memudahkan maintenance dan modifikasi terhadap kode yang telah sebagai objek baru yang dapat dibuat dengan perubahan yang minimal
- OOP menyediakan suatu kerangka kerja yang baik untuk kode library yang mana menyediakan komponen software yang secara mudah dapat disesuaikan dan dimodifikasi oleh programmer. Hal ini khususnya sangat berguna untuk pengembangan user interface secara grafik.
Catatan :
Setelah anda membaca uraian tersebut diatas, awalnya anda
akan merasa kesulitan untuk memahami dan menerapkan beberapa konsep-konsep
diatas pada program anda, dan hal tersebut adalah wajar.
Untuk mentransformasi gaya pemrograman anda dari pendekatan
procedural terstruktur menjadi OOP membutuhkan waktu dan usaha. Sebab pada
pendekatan procedural terstruktur focus programmer langsung kepada logika dan
koding untuk pencapaian hasil, sedangkan pada OOP kita harus melakukan
abstraksi terhadap data dan fungsi yang berkaitan menjadi class, dan
selanjutnya class-class tersebut berinteraksi dengan message untuk mencapai
tujuan akhir.
Untuk membantu pengertian dan menunjukan keunggulan konsep
OOP, penulis akan memberikan beberapa contoh keunggulan pemanfaatan OOP pada
bagian-bagian selanjutnya.
|