Kamis, 19 April 2012

INHERITANCE DAN POLIMORFISME


Sebagai manusia kita sebenarnya terbiasa untuk melihat objek yang berada disekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan cirri atau sifat dari class tersebut.
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga Anjing, kucing dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.
Inheritance (pewarisan) proses pewarisan data dan method dari suatu kelas kepada kelas lain. Pewarisan bersifat menyeluruh. Semua data dan method milik kelas asalnya diturunkan ke kelas baru. Kelas yang mewariskan Super Class atau Kelas Induk. Kelas yang diwariskan Sub Class atau Kelas Anak.
Contoh program inheritance :

/* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} class Induk { private String var1; //hak akses private berarti tidak dapat diakses oleh kls anak public int var2; //hak akses public berarti dapat diakses oleh kls anak //konstruktor Induk (){ } //method public void cetakData() { } } class Anak extends Induk{ private String dataAnak; //variabel //konstruktor Anak () { } public void cetak() { cetakData();//method milik Induk // ada jg yang memanggil dgn super.cetakData() } } class DemoPewarisan { public static void main(String args[]) { Anak anak = new Anak(); anak.cetak(); anak.cetakData(); System.out.println("Demo Pewarisan"); System.out.println("isi var 2="+anak.var2); } } /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} Output : /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} Logika : Pada logika pada progam inheritance dan polimorfisme ini kita dapat menemukan perbedaan pada masing - masing program. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Yang pertama adalah class Induk { itu digunakan untuk mennjukan kelas yang akan dipakai pada program tersebut.lalu private String var1; dan public int var2; digunakan untuk memberikan suatu ruan public dalam kelas di dalam suatu variabel. Selanjutnya class Anak extends Induk yang digunakan untuk membedakan suatu program yang terdapat di inheritance. Dan pada program inheritance dapat ditemukan suatu keuntungan jika memakai program tersebut. Keuntungan Pewarisan : Bersifat reusable Tidak harus menyalin semua data dan method dari suatu kelas jika akan menggunakannya lagi Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama. Untuk memodifikasi suatu data atau method untuk semua subkelas / kelas anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak melainkan hanya pada kelas induk saja. Pengertian polimorfisme Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi. Polimorfisme sesuatu yang memiliki banyak bentuk. Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda sehingga listing code implementasinya juga berbeda. Contoh program polimorfisme : /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} Output : /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} Logika : Kata kunci pada program polimorfisme adalah munculnya method – method yang terdapat pada program. Untuk mencegah suatu method agar tidak dapat di override oleh kelas – kelas turunan. Contohnya pada method public void bersuara() { //overriding method. Method – method semacam ini biasanya bersifat pasti. Artinya, kelas turunan sudah tidak perlu mengimplementasikan lagi isi dari method tersebut. Demikianlah apa itu yang disebut inheritance dan polimorfisme dalam versi saya. Bagaimana dengan versi anda ?
 Sumber : http://dewiqsweets.blogspot.com/2009/06/pengertian-inheritance-pewarisan-dan.html http://novyta.blogspot.com/2009/06/pengertian-inheritance-beserta-contoh.

Link : http://ayufitriyanti.blogspot.com/ 

Rabu, 11 April 2012

Enkapsulasi


Pembahasan pada blog saya ini tentang enkapsulasi . Sebenarnya apa siih yang di maksud dengan enkapsulasi ? bagaimana dengan programnya . Pembahasan blog saya kali ini yaitu tentang enkapsulasi semiga ini sebagai media sharing tentang hal tersebut . J
Definisi enkapsulasi sendiri yaitu Pembungkusan variabel dan method dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut.
Selain itu Enkapsulasi  dapat di definisikan sebagai pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain.
Macam-macam enkapsulasi yaitu:
a. private = tidak bisa diakses oleh sembarang class
b. public = bisa diakses oleh siapapun, semua default method, class atau variable itu public       jika tidak diberi enkapsulasi
c. protected
Fungsi atau kegunaan dari enkapsulasi. Ada beberapa alasan, diantaranya :

1. Membuat struktur program semakin gamblang. Pemrogram dan orang yang membaca dokumentasinya (seandainya suatu saat programnya terbuka kodenya/open source) tidak akan kebingungan lagi dalam melakukan analisis terhadap kode yang jumlahnya ratusan hingga jutaan.

2. Mengurangi kesulitan terhadap proses debugging. Dengan menerapkan konsep enkapsulasi berarti telah mendukung modularitas seutuhnya. Program besar dapat dipecah menjadi subprogram. Berbeda dengan prosedural(dulu pernah merasakan pertama kali belajar pemrograman semester satu make bahasa c++), sepertinya mudah di awal. Tetapi ketika muncul bugs, baru kita pontang-panting mencarinya. Apalagi saat menambahkan fitur, susahnya minta ampun ketika programnya mau dibongkar-pasang. Inilah keunggulan modularitas OOP, yang mengusung enkapsulasi.

3. Tidak terjadi tumpang tindih(misal penggunaan variable di satu method atau kelas, yang namanya bisa aja sama dengan variable yang ada di method atau kelas lain) antara satu dengan lainnya.

4. Kita tidak perlu tahu bagaimana para perancang program membuat programnya secara teliti dan rinci/detail. Misalnya, Anda ingin membeli mobil. Otomatis Anda tidak harus tahu dulu bagaimana mobil tersebut di buat, menggunakan mesin arsitektur apa, penjelasan tentang mengapa kursi dipasang dengan posisi sedemikian, bagaimana cara mobil mengaliri tenaga listrik ke seluruh tubuhnya(secara detail, semenjak mesin dihidupkan) dan segenap kerumitan lain. Yang harus anda tahu hanyalah, prosedur pembelian mobil, cara menyetir mobil, dan beberapa argumen lain yang lebih mengedepankan fungsionalitas dari barang yang kita beli. Ketika ditransformasi di dunia pemrograman, hukum yang sama berlaku. Kita tidak harus tahu bagaimana sulitnya programmer merancang algoritma, mengetik kode sumber, mengcompile program, melakukan debugging, hingga menjadi program utuh. Belum lagi ketika masih dalam versi beta, sehingga proses maintenance masih dijalankan pada program.

contoh:
1.       pertama buat file enkapulasi sederhana.

class belajar{

public String x =”Pintar”;

private String y = “Java”;

}
simpan dalam belajar.java
disini kita membuat class yang bernama belajar lalu didalam class terserbut ada beberapa pendeklarasian suatu object yaitu x dan y yang bertipe data string dan  berisi sebuah string “Pintar” pada x dan “Java” pada x. file ini dimaksudnya untuk enkapulasi, nanti akan dipanggil  pada program utama yang akan dibuat. Pada variabel x dan y harus dibuat public, jika dibuat private di program utama tidak akan bisa diakses. Karena jika diberi private berarti variable tersebut hanya bisa digunakan pada file itu sendiri.
2.       Buat file program utamanya

public class pintar{

public static void main(String[]args){

belajar  panggil = new belajar();

System.out.println(“Panggil X : “+panggil.x);

System.out.println(“Panggil Y : “+panggil.y);

}}
simpan dalam pintar.java

Pembuatan variabel “panggil” dengan menghubungkan nya dengan file enkapulasi “belajar” yang telah kita buat tadi. Lalu cara memanggil objek yang berada di file enkapulasi seperti yang ada diatas yaitu : (variabel yang telah disesuaikan dengan file yang duhbungkan ex:panggil).(variabel yang ingin diambil). Contoh diatas panggil.x, variabel yang telah dihubungkan dengan file enkapulasinya dalah “panggil” lalu yang ingin variabel object yang akan dipanggil adalah “x” yang berisi string “Pintar. Untuk menjalankan program, file yang di compile adalah file enkapulasinya dan file utama, tapi yang akan di run cukup file utamanya karena di file utama akan memanggil file enkapulasinya. Begini outputnya : 



Java Source code : http://synaptic-uii.or.id/forum/viewthread.php?thread_id=12

Link : http://ayufitriyanti.blogspot.com/ 

Rabu, 04 April 2012

Mengetahui Perbedaan Pemrograman terstruktur dengan Pemrograman Berorientasi Objek

Sebelum kita mengulas apa itu perbedaan pemrograman terstruktur dengan pemrograman berorientasi objek. Terlebih dahulu kita mengetahui masing – masing dari arti pemrograman terstruktur dan pemrograman berorientasi objek itu sendiri.......
OOP (Object-Oriented Programming)
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.
Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl
  15. Adobe Flash AS 3.0
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).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
  1. Cobol Turbo Prolog
  2. C
  3. Pascal
  4. Delphi
  5. Borland Delphi
Dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
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
Perbedaannya ........
Dari pengertian pemrograman terstruktur dan pemrograman berorientasi objek itu sendiri kita dapat menyimpulkan, apa perbedaan dari pemrograman terstruktur dan pemrograman berorientasi objek itu.
Pemrograman berorientasi objek (Object-Oriented Programming atau 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, Sedangkan untuk pemrograman terstruktur adalah kebalikan dari pemrograman berorientasi objek yaitu sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman dengan yang lainnya berhubungan. Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular.
Untuk program yang simpel/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.
berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program ).
Sementara itu pemrograman berorientasi objek memliki beberapa keuntungan seperti :
  1. maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
  1. pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
  2. 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 sekali 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.
Permodelan yang mana yang lebh bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara.
Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:
Sistem pemrograman berorientasi objek, bentuk pemodelan programnya diorientasikan dalam bentuk objek objek, sedangkan Sistem pemrograman terstruktur pemodelan programnya diuraikan dan diorganisasikan secara lebih detail.
Konsep dasar pemrograman berorientasi objek dikelompokkan kedalam kelas, objek, abstraksi, enkapulasi dan Polimorfisme melalui pengiriman pesan, sedangkan konsep dasar pemrograman terstruktur harus mengandung teknik pemecahan masalah yang tepat dan benar, memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif, penulisan program memiliki struktur logika yang benar dan mudah dipahami, program hanya memiliki 3 struktur dasar, yaitu : Struktur berurutan, struktur seleksi, dan struktur pengulangan, Menghindari penggunaan pernyataan GOTO, Memiliki dokumentasi yang baik.
UML adalah contoh salah satu bahasa pemrograman yang berkonsepkan OOP, sedangkan DFD dan ERD adalah contoh bahasa pemrograman yang berkonsepkan pemrograman secara terstruktur.
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.
Kelebihan dan Kekurangan Pemograman Berorientasi Objek dengan Pemograman Terstruktur
Berikut adalah Kelebihan dan Kekurangan Kedua Metode Tersebut :
METODE TERSTRUKTUR
Perancangan Terstruktur (Structured Analisys and Design / SSAD)
Metode ini diperkenalkan pada tahun 1970, yang merupakan hasil turunan dari pemrograman terstruktur. Metode pengembangan dengan metode terstruktur ini terus diperbaiki sampai akhirnya dapat digunakan dalam dunia nyata. Perancangan ini bertujuan untuk membuat model SOLUSI terhadap PROBLEM yang sudah dimodelkan secara lengkap pada tahap analisis terstruktur.
Kelebihan
· Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek
· SSAD merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer.
· Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD menjadikan bagus untuk digunakan.
· SSAD merupakan metode yang diketahui secara umum pada berbagai industry.
· SSAD sudah diterapkan begitu lama sehingga metode ini sudah matang dan layak untuk digunakan.
· SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan
· SSAD relatif simpel dan mudah dimengerti.
Kekurangan
· SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional.
· Sedikit sekali manajemen langsung terkait dengan SSAD
· Prinsip dasar SSAD merupakan pengembangan non-iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses.
· Interaksi antara analisis atau pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru).
· Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk mengkomunikasikan dengan pengguna, sehingga sangat sliit bagi pengguna untuk melakukan evaluasi.
· Pada SAAD sliit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan mliai membuat sistem.
· SSAD tidak selalu memenuhi kebutuhan pengguna.
· SSAD tidak dapat memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, karena metode ini memang didesain untuk mendukung bahasa pemrograman terstruktur, tidak berorientasi pada obyek (Jadalowen, 2002).
METODE BERORIENTASI OBYEK
Perancangan Berbasis Objek (Object-oriented Analysis and Design / OOAD)
Metode OOAD melakukan pendekatan terhadap masalah dari perspektif obyek, tidak pada perspektif fungsional seperti pada pemrograman terstruktur. Akhir-akhir ini penggunakan OOAD meningkat dibandingkan dengan pengunaan metode pengembangan software dengan metode tradisional. Sebagai metode baru dan sophisticated bahasa pemrograman berorientasi obyek diciptakan, hal tersebut untuk memenuhi peningkatan kebutuhan akan pendekatan berorientasi obyek pada aplikasi bisnis
Kelebihan
· Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem
· Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000).
· Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.
· Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi.
· Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain (Sommerville, 2000).
· Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007).
· Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
· OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.
· Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.
Kekurangan
· Pada awal desain OOAD, sistem mungkin akan sangat simple.
· Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD.
· Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD.
· Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem.
· Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
· OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005).
· Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).
Demikianlah penjelasan kami tentang perbedaan antara terstruktur dengan pemrograman berorientasi objek. Semoga bisa membantu kalian untuk belajar. Terima kasih ........
Sumber :


Link : http://ayufitriyanti.blogspot.com/