Apa perbedaan teknik pemrograman terstruktur dan yang berorientasi objek

Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun suatu 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. Ada banyak teknik pemrograman dalam membuat program. Apa perbedaan antara teknik pemrograman terstruktur dan yang berorientasi objek?

Perancangan Terstruktur adalah aktivitas mentransformasikan suatu hasil analisis ke dalam suatu perencanaan untuk dapat diimplementasikan (diotomasikan).
Perancangan berorientasi objek adalah Suatu teknik atau cara pendekatan baru dalam melihat permasalahan dan sistem (sistem perangkat lunak. Sistem informasi, atau sistem lainnva). Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata.

Kelebihan Pemrograman Terstrukutur :

  • 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 Pemrograman Terstruktur :

  • 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 sulit bagi pengguna untuk melakukan evaluasi.
  • Pada SAAD sulit 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.

Kelebihan Pemrograman Berorientasi Objek :

  • 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.
  • 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.
  • Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks.
  • 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 Pemrograman Berorientasi Objek :

  • 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 sistem, 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.
  • 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.

Perbedaan teknik pemrograman procedural dengan pemrograman berorientasi objek :

  1. Pemrograman prosedural adalah metode pemrograman yang mengeluarkan perintah yang akan dieksekusi oleh komputer. Dan biasanya berupa baris baris program yang dieksekusi secara urut mulai dari baris atas hingga bawah. Pada model Pemrograman tradisional atau prosedural (disebut process-oriented model), semua data dan kode digabung menjadi satu bagian dalam satu program.

    Pemrograman berorientasi objek adalah merupakan sebuah metode yang digunakan untuk mendapatkan solusi dari suatu masalah melalui perspektif object. Dalam pemrograman berorientasi objek, setiap objek akan memiliki datmethod (perilaku atau kemampuan melakukan sesuatu, berupa fungsi). Objek dapat didefinisikan sebagai suatu entitas yang memiliki data dan method.

  2. Bahasa pemrograman procedural diantaranya Cobol Turbo Prolog, C, Pascal, Delphi, dan Borland Delphi.

    Bahasa pemrograman berorientasi objek diantaranya Visual Foxpro, Java, C++, Pascal (bahasa pemrograman), Visual Basic.NET, SIMULA, Smalltalk, Ruby, Python, PHP, C#, Delphi, Eiffel, Perl, dan Adobe Flash AS 3.0

  3. Kelebihan pemrograman procedural :

    • Memiliki algoritma pemecahan masalah yanag sederhana, standar dan efektif.
    • Penulisan program memiliki struktur logika yang benar dan mudah dipahami
    • Program hanya terdiri dari 3(tiga) struktur dasar, yaitu struktur berurutan, struktur seleksi dan struktur perulangan.
    • Memiliki dokumentasi yang baik.
    • Menghindari penggunaan pernyataan GOTO, yang akan menjadikan program tidak terstruktur dengan baik.

    Kelebihan pemrograman berorientasi objek :

    • Dalam menggunakan sebuah class cukup sekali tidak perlu dituis berkali-kali.
    • Dapat menambahkan fitur pada class tanpa mengedit class asal.
    • Menggunakan objek tanpa harus tahu teknis yang ada didalamnya.
    • Data yang digunakan dalam bentuk private hanya bisa di akses oleh fungsi lokasi, sehingga tidak perlu khawatir untuk berpengaruh pada fungsi lainnya.
    • Dalam pembuatan library sangat mudah dalam penggunaan. Library java kian bertambah karena meningkatnya dalam pembangunan aplikasi sehingga library juga ikut meningkat untuk memudahkan programer dalam pembangunan aplikasi. Serta tampilan yang cukup rapi.
    • Memiliki sintak seperti bahasa C maupun C++.
    • Dapat mengatur memori secara langsung tanpa programer mengatur memori secara manual.
  4. Kekurangan pemrograman procedural :

    • Program cukup sulit untuk proses perawatan
    • Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.
    • Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models.
    • Mungkin dapat bekerja dengan baik pada saat terisolasi tapi tidak pada saat terintegrasi dengan sistem lain.

    Kekurangan pemrograman berorientasi objek :

    • Memiliki memori lebih besar dibandingkan dengan program terstruktur.
    • Mudah mengembalikan kode jadi menjadi kode sumber sehingga algoritma yang digunakan pun sulit untuk disembunyikan dan mudah dibajak.