Pengantar Analisa dan Desain Berbasis Objek


Ketika pemrograman berorientasi obyek ditemukan, pada 1990-an, pengembang menciptakan metodologi berorientasi objek, lebih cocok untuk gaya pemrograman berorientasi objek. Metodologi berorientasi objek awal menyertakan metode Booch [Booch 93], Objectory [Jacobson et al. 92] dan OMT [Rumbaugh et al. 91]. Hari-hari ini, salah satu metodologi yang memimpin pasar adalah Rational Unified Process (RUP) [Jacobson et al. 99], yang dimiliki oleh IBM (www.rational.com). Secara kasar, RUP adalah konvergensi Objectory, Booch dan OMT. Metodologi lain yang mulai populer adalah extreme programming (XP) [Beck 99], yang disebut metodologi ‘agile‘ – dalam konteks pengembangan perangkat lunak, agile berarti Responsif. Pada postingan selanjutnya, saya akan membahas Apa Itu RUP.

Apakah Objek Itu?

Objek adalah suatu benda, entitas, kata benda, sesuatu yang Anda dapat ambil atau tendang, raba, apa pun yang dapat Anda bayangkan yang memiliki identitasnya sendiri. Beberapa benda hidup, ada juga yang tidak. Contoh dari dunia nyata termasuk mobil, manusia, rumah, meja, anjing, tanaman pot, buku cek atau jas hujan.

Semua objek memiliki atribut: misalnya, mobil memiliki produsen, nomor model, warna dan harga; anjing memiliki jenis, usia, warna dan mainan favorit. Objek juga memiliki perilaku: mobil dapat berpindah dari satu tempat ke tempat lain dan anjing mengonggong.

objek

Objek

Dalam perangkat lunak berorientasi objek, objek dunia nyata bermigrasi ke kode. Dalam istilah pemrograman, objek kita menjadi modulyang berdiri sendiri dengan pengetahuan dan perilakunya sendiri (data dan proses). Ini umum untuk memikirkan objek perangkat lunak sebagai robot, binatang, atau orang kecil: setiap objek memiliki pengetahuan tertentu, dalam bentuk atribut, dan tahu bagaimana melakukan operasi tertentu untuk kepentingan seluruh program. Sebagai contoh, sebuah objek orang mungkin tahu judulnya, nama depan, nama belakang, tanggal lahir dan alamat; akan mampu mengubah namanya, pindah ke alamat baru, memberitahu kita berapa usianya, dan sebagainya.

Identik atau Sama?

Benda memiliki eksistensi independen mereka sendiri. Pertimbangkan memegang pena biru di tangan kiri Anda dan pena biru di tangan kanan Anda. Anda memegang pena terpisah: mereka ada secara independen dan masing-masing memiliki identitasnya sendiri. Tapi pena dapat memiliki atribut yang sama: tinta biru, setengah penuh, produsen yang sama, model yang sama, dll .. Dalam hal atributnya, pena yang dipertukarkan – jika Anda menulis sesuatu di selembar kertas, tidak akan mampu membedakan mana pena Anda yang telah digunakan. Pena yang sama tetapi tidak identik.

Ini merupakan perbedaan penting dalam perangkat lunak, serta dalam kehidupan nyata.

Identik atau Sama?

Identik atau Sama?

Enkapsulasi

Enkapsulasi mengacu pada objek yang menyembunyikan atributnya dibalik operasi (merupakan segel atribut dalam kapsul, dengan operasi di tepi). Atribut tersembunyi dikatakan private. Beberapa bahasa pemrograman (misalnya, Smalltalk) secara otomatis membuat atribut pribadi dan beberapa bahasa (misalnya, Java) dapat ditetapkan sendiri oleh programmer.

Enkapsulasi adalah salah satu cara bahasa pemrograman yang melindungi programmer dari dirinya sendiri: jika programmer bisa melewati operasi, mereka akan menjadi tergantung pada atribut yang digunakan untuk mewakili pengetahuan objek. Ini kemudian akan jauh lebih sulit untuk mengubah representasi internal objek di masa depan, karena harus menemukan semua potongan kode yang mengakses atribut secara langsung dan mengubahnya juga. Tanpa enkapsulasi kita akan kehilangan kesederhanaan dan lokalitas.

 

Asosiasi dan Agregasi

Ketika kita memodelkan objek-objek, kita dapat menghubungkannya dalam dua cara utama: asosiasi atau agregasi. Kadang-kadang sulit untuk menemukan perbedaan antara keduanya, tapi di sini adalah beberapa ide.

  • Asosiasi adalah bentuk lemah dari koneksi: obyek dapat menjadi bagian dari kelompok, atau keluarga, benda tapi mereka tidak sepenuhnya tergantung pada satu sama lain. Sebagai contoh, perhatikan mobil, sopir, penumpang, dan penumpang lain. Ketika pengemudi dan dua penumpang di dalam mobil, mereka terkait: mereka semua pergi ke arah yang sama, mereka menempati volume yang sama dalam ruang, dan sebagainya. Tapi asosiasi longgar: pengemudi bisa menurunkan salah satu penumpang untuk pergi jalan terpisah mereka, sehingga penumpang tidak lagi berhubungan dengan benda-benda lainnya. Gambar berikut menunjukkan bagaimana kita dapat menarik sebuah asosiasi pada diagram objek-atribut dan operasi telah dihilangkan di sini untuk menekankan struktur.
Asosiasi

Asosiasi

  • Agregasi berarti menempatkan benda bersama-sama untuk membuat objek yang lebih besar. Item yang diproduksi biasanya membentuk agregasi: misalnya, microwave terdiri dari kabinet, pintu, panel indikator, tombol, motor, piring kaca, magnetron, dan sebagainya. Agregasi biasanya membentuk hierarki bagian-keseluruhan. Agregasi menyiratkan ketergantungan yang dekat, setidaknya dari keseluruhuhan ke bagian terkecil; misalnya, magnetron masih magnetron jika Anda membawanya keluar dari microwave, tetapi microwave akan sia-sia tanpa magnetron, karena tidak akan mampu untuk memasak apa pun.
Agregasi

Agregasi

 

Bagaimana Program Berorientasi Objek Bekerja

Sebuah program berorientasi objek bekerja dengan menciptakan benda, menghubungkannya bersama-sama dan membuatnya berkolaborasi dengan mengirimkan pesan satu sama lain. Tapi siapa yang akan mendapatkan guliran bola? Yang menciptakan objek pertama dan yang mengirim pesan pertama? Untuk mengatasi masalah ini, semua program berorientasi objek memiliki titik masuk. Misalnya, Java membutuhkan penemuan sebuah operasi yang disebut utama pada sebuah objek yang dinamai pengguna ketika mereka meluncurkan program. Semua petunjuk dalam operasi utama dieksekusi, satu demi satu, dan program berhenti ketika yang utama telah selesai.

Setiap instruksi pada bagian utama dapat membuat sebuah objek, menghubungkan objek bersama-sama atau mengirim pesan ke objek. Ketika sebuah objek mengirim pesan, objek yang menerima pesan mengeksekusi operasi. Operasi ini juga dapat membuat sebuah objek, menghubungkan objek bersama-sama atau mengirim pesan ke objek. Dengan demikian, kita harus menghargai bahwa mekanisme ini memungkinkan kita untuk bebas melakukan apa pun yang kita mungkin ingin lakukan.

Program Berbasis Objyek yang sedang berjalan

Program Berbasis Objyek yang sedang berjalan

Referensi

Barclay, K., & Savage, J. (2004). Object-Oriented Design with UML and Java. Oxford: Elsevier Butterworth-Heinemann.

Larman, C. (2004). Applying UML and Patterns – An Introduction to Object Oriented Analysis and Design and the Unified Process, 3 Edition. Prentice Hall.

O’Docherty, M. (2005). Object-Oriented Analysis and Design – Understanding System Development with UML 2.0. West Sussex: John Wiley & Sons Ltd.

 

Previous Post
Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: