OOP vs Procedural

oop

Pernah mendengar procedural programming?

Atau pernah mendengar Object Oriented Programming?

Procedural Programming ataupun Object Orienterd Programming (OOP) merupakan bentuk struktur data dari algoritma pemrograman. Object Oriented Programming (OOP) adalah suatu metode pemrograman yang berbasiskan pada objek, secara singkat pengertian dari OOP adalah koleksi objek yang saling berinteraksi dan saling memberikan informasi satu dengan yang lainnya. Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.

Jadi apa bedanya?

Procedural programming itu berorientasi pada aksi, berbanding terbalik dengan OOP yang berorientasi terhadap objek.

Nicklaus wirth, seorang ilmuwan komputer dari Swiss, yang telah merancang berbagai bahasa pemrograman, seperti Algol W, Pascal, Modula, Modula-2, dan Oberon, memberikan judul bukunya Algorithms + Data Structures = Programs. Dari judulnya, secara tidak langsung beliau mengatakan bahwa algoritma dahulu, struktur data kemudian.

Menurut Nicklaus wirth, pada awalnya pikirkan dahulu bagaimana memanipulasi data, baru kemudian menentukan struktur data apa yang tepat digunakan agar manipulasinya menjadi mudah. OOP membalik urutan tersebut dengan merancang struktur data diawal, baru kemudian mencari algoritma terbaik untuk memanipulasi data.

Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur.

Kalau di procedural ada “function”, di OOP ada “method”. Kalau di procedural ada “modules”, di OOP ada “objects”. Kalau di procedural ada “argument”, di OOP ada “message”. Begitu juga dengan “variabel” yang ada di prosedural, di OOP lebih dikenal dengan nama “atribut”.

Kelebihan OOP

  • data dan fungsi dibungkus dalam kelas – kelas atau objek – objek
  • efektif digunakan untuk menyelesaikan masalah besar, karena OOP terdiri dari class-class yang memisahkan setiap code program menjadi kelompok-kelompok kecil, sesuai dengan fungsinya.
  • Fungsi-fungsi algoritma yang terbagi menjadi beberapa class dapat memudahkan kita dalam memahami program, begitu juga ketika ada bug pada program, kita bisa lebih mudah menemukan penyebab errornya dibanding ketika menggunakan prosedural programming.
  • object dan class dapat digunakan berkali-kali, sehingga dapat menghemat space memori.

Kekurangan OOP

  • programmer yang telah terbiasa membuat program dengan konsep prosedural sering merasa kesulitan ketika dihadapkan dengan OOP. Biasanya “mereka” bingung dengan banyaknya istilah-istilah dalam OOP.

Kelebihan Prosedural

  • efektif digunakan untuk menyelesaikan masalah kecil
  • memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana

Kekurangan Prosedural

  • Tidak cocok untuk menyelesaikkan masalah yang rumit, karena nantinya akan kesulitan menemukan solusi permasalahan ketika terjadi eror.

Pada dasarnya pemrograman berorientasi objek maupun prosedural tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur. Tapi sebenarnya struktur pemrograman apapun yang digunakan, kembali lagi kepada programmernya sendiri. Ketika seorang programmer telah terbiasa dengan bahasa prosedural, ia tidak bisa dipaksa menggunakan OOP.

Referensi:
http://blog.neotelemetri.com/index.php/programmming/8-oop-vs-prosedural

Leave a Reply

Your email address will not be published. Required fields are marked *