Sunday, October 29, 2017

√ Perbedaan (Bahasa) Pemrograman Terstruktur Dan (Bahasa) Pemrograman Berorientasi Objek


Artikel ini sebagai pengingat dan catatan pribadi saya di blog ini, artikel ini saya kutip eksklusif (tanpa ada penambahan kata atau kalimat) dari: http://rpl.if.its.ac.id/perbedaan-pemrograman-terstruktur-dan-pemrograman-berorientasi-objek/ semua kredit diberikan pada penullis orisinil yang tertera pada url tersebut.

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 kebijaksanaan pemrograman terstruktur. Setiap objek sanggup mendapatkan pesan, memproses data, dan mengirim pesan ke objek lainnya.
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 Terstruktur
Pemrograman Terstruktur yaitu suatu proses untuk mengimplementasikan urutan langkah untuk menuntaskan suatu duduk masalah dalam bentuk program. Selain pengertian diatas Pemrograman Terstruktur yaitu suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun menurut algoritma yang sederhana dan gampang dipahami. Prinsip dari pemrograman terstruktur yaitu Jika suatu proses telah hingga pada suatu titik / langkah tertentu , maka proses selanjutnya dihentikan 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

Sifat-sifat pemrograman terstruktur:
- Memuat teknik pemecahan duduk masalah yang logis dan sistematis
- Memuat algoritma yang efisien, efektif dan sederhana
- Program disusun dengan kebijaksanaan yang gampang dipahami
- Tidak memakai perintah GOTO
- Biaya pengujian kegiatan relatif rendah
- Memiliki dokumentasi yang baik
- Biaya perawatan dan dokumentasi yang diharapkan relatif rendah

Perbedaannya
Dari pengertian pemrograman terstruktur dan pemrograman berorientasi objek itu sendiri kita sanggup 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 kebijaksanaan pemrograman terstruktur. Setiap objek sanggup mendapatkan pesan, memproses data, dan mengirim pesan ke objek lainnya, Sedangkan untuk pemrograman terstruktur yaitu 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 kegiatan yang simpel/sederhana biasanya memakai pemrograman terstruktur alasannya yaitu masih gampang dan tidak banyak dilakukan perubahan yang berarti, sedangkan untuk line lebih dari 100 atau sanggup dikatakan rumit, maka dipakai pemrograman berorientasi objek. Pemrograman Terstruktur terdiri dari pemecahan duduk masalah yang besar menjadi duduk masalah yang lebih kecil dan seterusnya, sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan aba-aba dengan data yang mana setiap objek berfungsi secara independen sehingga untuk setiap perubahan aba-aba tidak tergantung pada aba-aba 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 klarifikasi diatas, sangat terperinci bahwa pemrograman tersktruktur unggul dalam melaksanakan pemrograman sederhana alasannya yaitu lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat kegiatan itu sendiri (contohnya saat dlakukan tracing program).

Keuntungan pemrograman berorientasi objek
Maintenance; kegiatan lebih gampang dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan kegiatan hanya dengan mengijinkan rincian yang diharapkan untuk programmer.
Pengubahan kegiatan (berupa penambahan atau pembatalan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan pembatalan dalam suatu database kegiatan misalnya.
Dapat digunakannya obyek-obyek sesering yang diinginkan, kita sanggup menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang sanggup disisipkan kedalam aba-aba yang gres dengan sedikit perubahan atau tanpa perubahan pada aba-aba tersebut.
Jadi, sangat terperinci bahwa pemrograman berorientasi objek sangat cocok sekali dipakai dalam masalah pembuatan software yang rumit dan kompleks alasannya yaitu menawarkan banyak sekali fasilitas kepada pemrogram ibarat yang telah disebutkan diatas.
Permodelan yang mana yang lebih bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat yaitu tujuan dari pemodelan itu sendiri, yang mana biar pada simpulan proyek sistem sanggup diperoleh sistem informasi yang memenuhi kebutuhan pemakai, sempurna waktu dan sesuai anggaran, serta gampang digunakan, dimengerti dan dipelihara.

Perbedaan fundamental antara OOP dan pemrograman terstruktur:
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 duduk masalah yang sempurna dan benar, mempunyai algoritma pemecahan duduk masalah yang sederhana, standar dan efektif, penulisan kegiatan mempunyai struktur kebijaksanaan yang benar dan gampang dipahami, kegiatan hanya mempunyai 3 struktur dasar, yaitu : Struktur berurutan, struktur seleksi, dan struktur pengulangan, Menghindari penggunaan pernyataan GOTO, Memiliki dokumentasi yang baik.
UML yaitu pola salah satu bahasa pemrograman yang berkonsepkan OOP, sedangkan DFD dan ERD yaitu pola bahasa pemrograman yang berkonsepkan pemrograman secara terstruktur.
Dengan memakai OOP maka dalam melaksanakan pemecahan suatu duduk masalah kita tidak melihat bagaimana cara menuntaskan suatu duduk masalah tersebut (terstruktur) tetapi objek-objek apa yang sanggup melaksanakan pemecahan duduk masalah tersebut. Sedangkan untuk pemrograman terstruktur, memakai prosedur/tata cara yang teratur untuk mengoperasikan data struktur

Untuk tata nama, keduanya pun mempunyai tatanan yang sama walaupun mempunyai pengertian tersendiri:
Object oriented memakai “method” sedangkan terstruktur memakai “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 mempunyai tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.


Kelebihan dan Kekurangan Pemograman Berorientasi Objek dengan Pemograman Terstruktur

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 hingga kesudahannya sanggup dipakai dalam dunia nyata. Perancangan ini bertujuan untuk menciptakan model SOLUSI terhadap PROBLEM yang sudah dimodelkan secara lengkap pada tahap analisis terstruktur.

Kelebihan:
- Milestone diperlihatkan dengan terperinci yang memudahkan dalam administrasi proyek
- SSAD merupakan pendekatan visual, ini menciptakan metode ini gampang dimengerti oleh pengguna atau programmer.
- Penggunaan analisis grafis dan tool ibarat DFD mengakibatkan SSAD mengakibatkan cantik untuk digunakan.
- SSAD merupakan metode yang diketahui secara umum pada banyak sekali industry.
- SSAD sudah diterapkan begitu usang sehingga metode ini sudah matang dan layak untuk digunakan.
- SSAD memungkinkan untuk melaksanakan validasi antara banyak sekali kebutuhan
- SSAD relatif simpel dan gampang dimengerti.

Kekurangan:
- SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional.
- Sedikit sekali administrasi eksklusif 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, alasannya yaitu sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru).
- Selain dengan memakai desain logic dan DFD, tidak cukup tool yang dipakai untuk mengkomunikasikan dengan pengguna, sehingga sangat sliit bagi pengguna untuk melaksanakan evaluasi.
- Pada SAAD sliit sekali untuk tetapkan saat ingin menghentikan dekomposisi dan mliai menciptakan sistem.
- SSAD tidak selalu memenuhi kebutuhan pengguna.
- SSAD tidak sanggup memenuhi kebutuhan terkait bahasa pemrograman berorientasi obyek, alasannya yaitu 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 melaksanakan pendekatan terhadap duduk masalah dari perspektif obyek, tidak pada perspektif fungsional ibarat pada pemrograman terstruktur. Akhir-akhir ini penggunakan OOAD meningkat dibandingkan dengan pengunaan metode pengembangan software dengan metode tradisional. Sebagai metode gres 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 gampang dipakai dalam pembangunan sistem
Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) aba-aba kegiatan 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 simpulan pembangunan sistem.
Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain sanggup diformliasikan yang sanggup dikonfirmasi dengan banyak sekali lingkungan eksekusi.
Relasi obyek dengan entitas (thing) umumnya sanggup di mapping dengan baik ibarat kondisi pada dunia aktual 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 duduk masalah menjadi pecahan-pecahan duduk masalah dan bagian-bagian yang dimanage secara terpisah. Kode kegiatan sanggup dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga sanggup segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan gampang 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 ibarat pada SSAD.
- Pada OOAD tidak gampang untuk mendefinisikan class dan obyek yang diharapkan sistem.
- Sering kali pemrogramam berorientasi obyek dipakai untuk melaksanakan anlisisis terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
- OOAD merupakan jenis administrasi proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih usang untuk berpindah ke OOAD, alasannya yaitu mereka sudah memakai SSAD dalam waktu yang usang ( Hantos, 2005).
- Metodologi pengembangan sistem dengan OOAD memakai konsep reuse. Reuse merupakan salah satu laba utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa mekanisme yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).

Sumber http://farihinmuhamad.blogspot.com