Minggu, 27 November 2011

KEBERSAMAAN


PERBEDAAN OOP DAN SISTEM TERSTRUKTUR


2.1       OOP (Object Oriented Programming)
            2.1.1    Pengertian OOP
OOP (Object Oriented Programming) adalah suatu program yang mengarah pada suatu objek yang bisa disebut juga Paradigma Pemrograman. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas – kelas atau objek – objek. 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.\

2.1.2    Konsep Dasar OOP
Konsep dasar dari OOP menekankan pada beberapa hal adalah sebagai berikut ini :
a.    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.

b.   Objek
Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
c.    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.

d.   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.

e.    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.

2.1.3    Bahasa Pemrograman
Bahasa Pemrograman yang mendukung OOP adalah sebagai berikut :
a.       Visual Foxpro
b.      Java
c.       C++
d.      Pascal
e.       VB.Net
f.       SIMULA
g.      Smalltalk
h.      Ruby
i.        Python
j.        PHP
k.      C#
l.        Delphi
m.    Eiffel
n.      Perl
o.      Adobe Flash AS 0.3

2.2       Pemrograman Terstruktur
2.2.1    Pengertian 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. 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).

2.2.2    Sifat – Sifat Pemrograman Terstruktur
Pemrograman terstruktur mempunyai sifat – sifat sebagai berikut ini :
a.       Memuat teknik pemecahan masalah yang logis dan sistematis
b.      Memuat algoritma yang efisien, efektif dan sederhana
c.       Program disusun dengan logika yang mudah dipahami
d.      Tidak menggunakan perintah GOTO
e.       Biaya pengujian program relatif rendah
f.       Memiliki dokumentasi yang baik
g.      Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

2.2.3    Bahasa Pemrograman
Bahasa Pemrograman yang mendukung pemrograman terstruktur adalah sebagai berikut :
a.       COBOL
b.      TURBO PROLOG

2.3       Perbedaan dan Persamaan Antara OOP dan Pemrograman Terstruktur
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. 
                                                                                                                                      
Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.
Persamaan kedua pemrograman ini adalah adalah keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.

2.4     Perbedaan software OOP dangan software terstruktur

Perbedaan software OOP dangan software terstruktur adalah Software yang dibuat secara OOP makan Software tersebut besifat Reusable yaitu Prinsip pemrograman OOP:
·         Membuat kode yang ditulis sebisa mungkin dapat dipergunakan lagi (reusable)
·         Supaya dapat dipakai dalam banyak aplikasi dan situasi –supaya tidak perlu lagi mengimplementasi ulang, walaupun hanya ada perbedaan sedikit saja dari yang sudah dikerjakan sebelumnya
Reusability
·         Kunci reusability adalah mendaftar (dalam library atau database) obyek di mana di antaranya mungkin ada yang sesuai dengan user requirements
·         Proses pencarian semacam ini membutuhkan cara yang kuat dan efisien
Sifat dari software OOP
Objek
·         Enkapsulasi: menyembunyikan implementasi dengan hanya menyediakan interface
·         Enkapsulasi melindungi bagian implementasi dari tindakan yang tidak diinginkan dan akses yang tidak disengaja
·         Dalam SI: atribut (data dan stru-dat) dan operasi dienkapsulasi dalam membuat obyek dengan perilaku tertentu.
Sehingga membuatnya Aman dari Virus karena terenkapsulasi dari kelas-kelasnya. Sedangkan tersetruktur tidak jika ingin ada perubahan maka hal ini harus lah di ubah dari awal karena ada yang namanya variable global dan variable local. Itu juga dapat menimbulkan kesulitan dalam mencari eror(kesalahan).
2.5                                    Beberapa Keuntungan Pemrograman Berorientasi Objek
1.      Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
2.      Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
3.      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.
Jadi, sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.
3.1       Kesimpulan
Baik OOP maupun pemrograman terstruktur 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. Karena Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii code.
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 OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
REFENSI