Archive

Posts Tagged ‘object oriented’

The Law of Demeter (LoD)

February 5, 2009 1 comment

Law of demeter merupakan style design di oop. Intinya adalah “principle of least knowledge”. Apaan tuh. Mengetahui sesedikit mungkin tentang object yg digunakan di dalam method. Contohnya

public class Project 
{
      public void doSomething() 
     {
          Employee e = new Employee();
          .....
     }
}

jadi kelas project harus mengetahui sesedikit mungkin mengenai kelas employee. Mengetahui apa ? Strukturnya tentu saja. Dengan cara apa emang kita tau struktur employee. Dengan cara kita ngakses property dari employee dan subpartnya. Subpart ini apa maksudnya ? Subpart dari employee. Maksudnya kita ngakses lagi property dari property si employee. Contohnya ….

public class Project 
{
      public void doSomething() 
     {
          Employee e = new Employee();
          String cityCode = e.Address.City.Code;
     }
}

Gitu maksudnya. Jadi subpartnya itu City dan diakses lagi Code. Itu ga boleh. Pantang. Haram hukumnya. Najis. Jijik. dll
Read more…

Categories: OO Programming Tags: , ,

IS-A dan HAS-A

January 29, 2009 Leave a comment

Ketika suatu kelas diturunkan dari kelas lain maka kita menyebutnya subclass extends superclass. Nah bagaimana kita menentukan suatu kelas adalah turunan dari kelas yang lain ? Testlah terlebih dahulu dengan IS-A

Segitiga IS-A Shape. Apakah segitiga itu bentuk ? . ya .. benar. Jadi kita dapat menextends Segitiga dari Shape. Read more…

Categories: OO Programming Tags: ,

Prosedural vs OO (Part 4)

January 27, 2009 2 comments

Jadi bagaimana dengan kedua programmer tersebut. Larry melihat ada celah pada code brad dan kemudian terjadi lah berdebatan.

Larry : Ada duplikasi code. Rotate procedure ada di keempat benda Shape.

Brad : Itu method bukan prosedur. Dan Itu kelas bukan benda.

Larry : Terserahlah. Ini disain yg bodoh. Kau harus maintain 4 rotate yg berbeda. Bagaimana itu bisa ??

Brad : Mmm… final designnya adalah sebagai berikut. Ini disebut inheritance. Read more…

Categories: OO Programming Tags: ,

Prosedural vs OO (Part 3)

January 27, 2009 Leave a comment

Kemudian sang project manager pun melihat pekerjaan larry dan brad.Wah.. bukan begini cara rotasi amuba…. Kedua programmer tersebut mengasumsikan bahwa poros rotasi dari amoeba adalah ditengah sama seperti ketiga bentuk yg lain. Padahal sebenarnya amoeba berputar pada satu ujungnya. Nah bagaimana kedua programmer menghadapi perubahan tersebut lagi.
Read more…

Categories: OO Programming Tags: ,

Prosedural vs OO (Part 1)

January 27, 2009 Leave a comment

seorang project manager menandingkan kedua programmernya dalam membangun sebuah aplikasi. Tentu saja akan memberikan hadiah kepada yg terbaik. Kedua programmer tersebut adalah Larry, programmer aliran prosedural dan Brad yg beraliran OO. Mereka sama2 anggap ini tugas yg mudah..

Ok.. Spesifikasi tugasnya adalah sebagai berikut ..

akan ada beberapa bentuk image yg akan ditampilkan di GUI. Persegi (bujur sangkar), lingkaran dan segitiga. Ketika user menclick image tersebut. Maka image tersebut akan berotasi sebesar 360 derajat dan mengeluarkan suara yg dari file .mp3 yg sesuai dengan bentuknya.

Nah kita akan melihat cara kedua programmer tersebut berpikir ..

Larry …
Apa ya … yg akan dilakukan program ini ? Prosedur apa yg dibutuhkannya ? Tentu saja rotasi dan memainkan suara. rotate and playSound. Nah dia kemudian langsung membuat kedua prosedur tersebut.
Read more…

Categories: OO Programming Tags: , ,

Divergent Change

January 25, 2009 Leave a comment

ini bahasa indonesianya apa ya ?? ya sudahlah untuk sementara gitu aja dulu.

Kita membuat software kita agar mudah diubah. Nah jadi cocok dengan software yg soft alias lembut. Jadi ketika ada suatu perubahan maka kita harus bisa menuju pada suatu titik pada sistem tersebut dan membuat perubahan di sana. Jadi klo misalnya ada penambahan fungsi financial baru .. kita hanya mengubah di satu tempat. Klo kita ga bisa seperti itu. Brarti ketergantungannya erat. perlu ada refactoring.

divergent change muncul ketika satu kelas berubah dengan cara yg berbeda dikarena alasan yg berbeda. Ingat sekali lagi bahwa pengaruh beberapa perubahan pada satu kelas. abstrak ya .. membingungkan … maksudnya apa ?
Read more…

Great Software

January 20, 2009 2 comments

Apa yg dimaksud dengan great software ?

Tergantung kepada siapa kita menanyakannya .

Kalau kita tanyakan kepada orang yang memiliki orientasi ke customer. maka great software adalah software yang selalu melakukan apa yg diinginkan customer. Jadi fokusnya adalah customer satisfaction.

Nah.. apa pendapat programmer ??
Read more…

Categories: OOAD Basic Tags: , ,