Prosedural vs OO (Part 1)
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.
Brad …
Apa2 saja object yg ada dalam program ini ? siapa2 saja yg terlibat ? Oke. Bentuk Image atau The Shape. Juga ada object lain seperti User, Sound, Clicking Event. Tapi ga yg itu ga usah dibangun lagi dari awal. Udah ada kok librarynya. Jadi kita fokus ke Shape saja.
Kemudia kedua programmer tersebut pun mulai coding.
Code prosedural Larry
void rotate(shapeNum) { // putar shape tersebut 360 // kelihatannya di sini make array karena dan shapeNum adalah // indexnya .... } void playSound(shapeNum) { if (shapeNum == 1) playSoundFileNum1(); else if (shapeNum == 2) playSoundFileNum2(); .... }
code oo dari Brad
class Square { void rotate() { // code untuk memutar Square } void playSound() { // mainkan mp3 sound yg sesuai untuk square } } class Circle { void rotate() { // code untuk memutar Circle } void playSound() { // mainkan mp3 sound yg sesuai untuk circle } } class Triangle { void rotate() { // code untuk memutar Triangle } void playSound() { // mainkan mp3 sound yg sesuai untuk Triangle } }
bersambung …