Prosedural vs OOP
Dalam dunia pemrograman, biasanya kita dihadapkan pada dua jenis metode pemrograman, yaitu pemrograman prosedural (procedural) dan pemrograman berorientasi objek (object oriented).
Apa perbedaan kedua metode tersebut? Bagaimana pemrograman berorientasi
objek itu dilakukan? Apa saja konsep-konsep OOP yang harus dikuasai?
Tulisan ini akan menjelaskan pertanyaan-pertanyaan tersebut.
Pemrograman prosedural merupakan suatu metode menulis program yang didasarkan pada "serangkaian tugas yang diselesaikan dalam bentuk fungsi atau prosedur".
Cara pandang pemrograman prosedural yaitu sebuah program adalah suatu
urutan instruksi. Programmer harus mem-break down suatu problem/masalah
menjadi sub problem yang lebih sederhana. Fokus utama metode prosedural
ini adalah fungsi dan prosedur, dimana keduanya digunakan untuk
memanipulasi data. Dalam hal ini data bersifat pasif.
Lain halnya dengan pemrograman
berorientasi objek (OOP), fungsi dan data bukan menjadi dua hal yang
terpisah. Fungsi dan data menjadi satu kesatuan yang disebut sebagai
objek aktif. Cara pandang OOP ini yaitu sebuah program merupakan serangkaian objek yang bekerjasama untuk menyelesaikan suatu problem.
Dengan kata lain, metode prosedural
berfokus pada cara komputer menangani tugas, sedangkan metode OOP
berfokus pada tugas yang kita kembangkan untuk dieksekusi komputer.
Kedua jenis metode pemrograman tersebut dapat digunakan untuk menangani
masalah yang sama, asalkan bahasa pemrograman yang digunakan mendukung
metode-metode tersebut. Contoh bahasa pemrograman yang mendukung OOP
diantaranya : Java, C++, Pascal, Visual Basic .NET, Ruby, Python, PHP,
C#, Delphi, Perl, dsb. Selain itu masih banyak bahasa lain yang termasuk
ke dalam bahasa prosedural, atau bahkan bisa mendukung kedua metode
pemrograman tersebut.
Istilah-Istilah OOP
1. Objek
Untuk mempermudah pemahaman, maka disini
akan dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi
dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda,
motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki
atribut sebagai status (state) dan tingkah laku sebagai behavior.
Contoh objek : Motor. Maka atribute
(state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda.
Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik,
kecepatan menurun, dan perpindahan gigi motor.
Analogi pemrograman berorientasi objek
sama dengan penggambara pada dunia nyata seperti contoh di atas. Dalam
OOP, state disimpan pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis OOP, Objek
berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit
dalam sebuah program komputer. Objek merupakan dasar dari modularitas
dan struktur dalam sebuah program komputer berorientasi objek.
2. Class
Definisi class yaitu template untuk
membuat objek. Class merupakan prototipe atau blue prints yang
mendefinisikan variabel-variabel dan method-method secara umum. Objek
merupakan hasil instansiasi dari suatu class. Proses pembentukan objek
dari suatu kelas disebut sebagai instantiation. Objek disebut juga
sebagai instances.
Dalam bahasa teoretis OOP, class
merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit
untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu
unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang
menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class
adalah dasar dari modularitas dan struktur dalam pemrograman
berorientasi object.
Sebuah class 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 seperti
ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun
sebaliknya.
3. Attributes
Atribut adalah data yang membedakan antara objek satu dengan yang lainnya.
Contoh Objek : VolcanoRobot ( a volcanic exploration vehicle), mempunyai atribut sebagai berikut:
- Status ~> exploring, moving, returning home
- Speed ~> in miles per hour
- Temperature ~> in Fahrenheit degrees
Dalam class, atribut sering disebut
sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance
Variable dan Class Variable.
Instance variable adalah atribut untuk
tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan
nilai atributnya sendiri. Jadi, tiap objek dari class yang sama bokeh
mempunyai nilai yang sama atau berbeda.
Class Variable adalah atribut untuk
semua objek yang dibuat dari class yang sama. Semua objek mempunyai
nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai
hanya satu nilai yang value nya sama.
4. Behavior
Behavior/tingkah laku adalah hal-hal
yang bisa dilakukan oleh objek dari suatu class. Behavior dapat
digunakan untuk mengubah nilai atribut suatu objek, menerima informasi
dari objek lain, dan mengirim informasi ke objek lain untuk melakukan
suatu tugas (task).
Contoh behavior untuk objek VolcanoRobot:
- check current temperature
- begin a survey
- report its current position
Dalam class, behavior disebut juga
sebagai methods. Methods sendiri adalah serangkaian statements dalam
suatu class yang menghandle suatu task tertentu. Cara objek
berkomunikasi dengan objek yang lain adalah dengan menggunakan method.
Tidak ada komentar:
Posting Komentar