Definisi dan Perbedaan antara Pemrograman Terstruktur dan Pemrograman Berbasis Objek

Sebelum menjabarkan lebih lanjut tentang definisi dan perbedaan antara Pemrograman Terstruktur dan Pemrograman Berorientasi Objek, ada baiknya dulu kami mendefinisikan dulu apa itu pemrograman.

A. Definisi Pemrograman 

Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau ‘pekerjaan’ sesuai dengan keinginan si pemrogram. Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, dan bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika. Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman. Apakah memprogram perangkat lunak lebih merupakan seni, ilmu, atau teknik telah lama diperdebatkan. Pemrogram yang baik biasanya mengkombinasikan tiga hal tersebut, agar dapat menciptakan program yang efisien, baik dari sisi waktu berjalan (running time), atau memori.

B. Definisi Pemrograman Terstruktur

Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Untuk program yang simple / sederhana biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak banyak dilakukan perubahan yang berarti, sedangkan untuk line lebih dari 100 atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi objek. Pemrograman Terstruktur terdiri dari pemecahan masalah yang besar menjadi masalah yang lebih kecil dan seterusnya, sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan kode dengan data yang mana setiap objek berfungsi secara independen sehingga untuk setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih dikenal dengan modular. Terdapat juga perbedaan secara spesifik antara Pemrograman Berorientasi Objek dengan Pemrograman Terstruktur, yaitu pada kelas dan objek. Pada pemrograman terstruktur tidak terdapat kelas dan objek.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
  • Cobol Turbo Prolog
  • C
  • Pascal
  • Delphi
  • Borland Delphi
Dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
  • Memuat teknik pemecahan masalah yang logis dan sistematis.
  • Memuat algoritma yang efisien, efektif dan sederhana.
  • Program disusun dengan logika yang mudah dipahami.
  • Tidak menggunakan perintah GOTO.
  • Biaya pengujian program relatif rendah.
  • Memiliki dokumentasi yang baik.
  • Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah.

Berdasarkan penjelasan diatas, pemrograman terstruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih sulit untuk dipahami.

C. Definisi Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:

  • Kelas — 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.
  • Objek – membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program; objek merupakan dasar dari  modularitas dan struktur dalam sebuah program komputer berorientasi objek.
  • Abstraksi – Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi – Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • 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. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri. Pemrograman berorientasi objek sangat cocok digunakan dalam kasus pembuatan software yang rumit dan kompleks.

Bahasa pemrograman yang mendukung OOP antara lain:

  • Visual Foxpro
  • Java
  • C++
  • Pascal (bahasa pemrograman)
  • Visual Basic.NET
  • SIMULA
  • Smalltalk
  • Ruby
  • Python
  • PHP
  • C#
  • Delphi
  • Eiffel
  • Perl
  • Adobe Flash AS 3.0
Pemrograman berorientasi objek memliki beberapa keuntungan seperti :
  • Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
  • Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
  • Dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
D. Perbedaan antara Pemrograman Terstruktur dan Pemrograman Berbasis Objek
  • Dengan menggunakan PBO 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.
  • Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri: PBO menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di PBO sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ”modules”. Begitu pula halnya dengan “message” pada PBO dan “argument” pada terstruktur. “attribute” pada PBO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.
  • Pemrograman berorientasikan objek dikatakan lebih baik apabila model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung PBO mengklaim bahwa PBO lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan PBO lebih mudah dikembangkan dan dirawat.
Dari penjelasan di atas kami menyimpulkan, jika ingin membuat program yang panjang dan rumit lebih baik menggunakan Pemrograman Berorientasi Objek, namun apabila ingin membuat program dalam skala yang lebih kecil lebih baik menggunakan Pemrograman Terstruktur. Demikian penjabaran kami. Apabila ada yang kurang berkenan mohon dimaafkan. Terima kasih.

Disusun Oleh :

Akbar Imanulrachman

Noordian Singgih ( http://meongngedip.blogspot.com )

Kelas 2IA14

Tugas 2 Pemrograman Berbasis Objek

Sumber :

http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek

http://java.lyracc.com/belajar/java-untuk-pemula/bab-vi-pemrograman-berorientasi-objek

http://astrobo-yeah.blogspot.com/2010/09/pemrograman-berorientasi-objek.html

http://shandy-06shihab.blogspot.com/2010/10/pemrograman-terstruktur.html

http://id.wikipedia.org/wiki/Pemrograman_terstruktur

http://jkw1.wordpress.com/bsi-kuliah/pemrograman-terstruktur/http://hilda_kamaruddin.students-blog.undip.ac.id/tag/pemrograman-terstruktur/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s