mau nambahin, mgk bisa membantu

jawaban saya mgk lebih cenderung ke "apa sih motivasi kita belajar oop dan
kenapa harus oop".

menurut saya,

Setiap kali coding pasti ada proses pemahaman (meskipun udah paham) dan ada
proses belajar, proses mengimajinasikan, memodelkan suatu problem, dan
proses mengingat.

Dengan menggunakan paradigma oop kita (seharusnya) bisa lebih cepat utk
coding (ini pun pada skala tertentu).

bagi saya, dengan oop, proses koding bisa lebih cepat, karena dengan oop
kita bisa dengan mudah membuat model dari permasalahan didunia nyata
dibandingin dengan prosedural.

contohnya untuk menjalankan mobil kita tinggal bilang mobil.jalan();
utk mundur mgk bisa mobil.mundur().

Beda dengan prosedural, mgk kita memodelkan mobil dengan variabel integer x.
menjalankan mobil mungkin bisa dengan x = x + 1;
dan mundul dengan x = x - 1;

apabila kode ini dita beri ke orang lain, maka orang lain itu pun (idealnya)
langsung mengerti apa yang sedang terjadi,
tanpa kita harus menjelaskan panjang lebar lewat komentar.

contoh lagi :

program menghitung luas segitiga

*prosedural*

int alas = bacaInputan();
int tinggi = bacaInputan();
int luas = hitungLuasSegitiga(alas,tinggi);
tampilkan(luas);

disana kita menggunakan fungsi hitungLuasSegitiga. secara intuisi mgk kita
bisa menebak, bakal ada fungsi hitungLuasPersegi, hitungLuasLingkaran.
karena berupa fungsi, ada banyak sekali yang perlu diingat, (dengan catatan
gak buka dokumentasi ya.. :) )


*oop*
untuk menghitung luas segitiga yang hanya perlu kita lakukan adalah tanya
lah pada segitiga.
disini kita sudah memanfaatkan *layanan dari sebuah object*.

disini kita minta bantuan class Segitiga.
kenapa minta bantuan class Segitiga?
karena hanya segitigalah yang tahu cara menghitung luas dirinya sendiri.
bagaimana prosesnya?
kita tidak perlu tahu karena itu sudah diurus oleh class Segitiga
(enkapsulasi) dan kita tinggal pakai saja, tak perlu tahu cara kerjanya.

int alas = bacaInputan();
int tinggi = bacaInputan();
Segitiga s = new Segitiga(alas, tinggi);
int luas = s.getLuas();
tampilkan(luas);


ketika kita akan menghitung luas persegi maka yang kan kita lakukan adalah

kita akan panggil class persegi panjang

PersegiPanjang p = new PersegiPanjang(panjang, lebar);

karena sebelumnya kita sudah pernah menghitung luas segitiga, maka intuisi
kita kan mengatakan utk mendapatkan luas persegi kita masih menggunakan
method yang sama yang kita gunakan pada segitiga (sehingga proses mengingat
jadi lebih diminimalisir, proses belajar jadi lebih cepat)

p.getLuas();

hanya ada satu method getLuas utk semua object bentuk. Disini learning curve
bisa lebih rendah karena kita gak perlu belajar method lain lagi.

bandingkan dengan prosedural, mgk utk menghitung luas persegipanjang, bakal
ada banyak fungsi
luasPersegiPanjang(); luasLingkaran(); kelilingSegitiga(); dan lain2.

begitu juga dengan proses komunikasi dua object atau lebih, lebih mudah
dimodelkan dengan oop dibandingkan dengan struktural.

sebenarnya pemilihan dari kedua paradigma pemrograman itu tergantung
kebutuhan.
tidak ada yang lebih baik.
Gunakan prosedural jika lebih mementingkan performansi
Gunakan OOP jika menginginkan proses development yang ingin lebih cepat.


*doh semangat banget jelasinnya, sorry aj kalo ad yg salah.. :p

Kirim email ke