6.07.2011

PEMODELAN BERORIENTASI OBJEK


A. Pemodelan Sebagai Teknik Desain
Teknik pemodelan objek menggunakan tiga macam model untuk menggambarkan sistem, yaitu model objek, model dinamik, dan model fungsional. Model objek menggambarkan objek dalam sistem dan relasinya, model dinamik menggambarkan interaksi antara objek dalam sistem, sedangkan model fungsional menggambarkan transformasi data dalam sistem. Setiap pemodelan dapat dilakukan selama tahap pengembangan dan rincian kebutuhan implementasi sebagai kemajuan pengembangan. Uraian yang lengkap dari kebutuhan sistem membutuhkan tiga macam model tersebut.
Model objek menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya. Model objek berisi diagram objek. Diagram objek adalah graph di mana node-nya adalah kelas yang mempunyai relasi antara kelas.

Model dinamik menggambarkan aspek dari sistem yang berubah setiap saat. Model dinamik dipergunakan untuk menyatakan aspek kontrol dari sistem. Model dinamik berisi state diagram. State diagram adalah graph di mana node-nya adalah state dan arc adalah transisi antara state yang disebabkan oleh event.
Model fungsional menggambarkan transformasi nilai data di dalam sistem. Model fungsional berisi data flow diagram (diagram alir data). Diagram alir data adalah suatu graph di mana node-nya adalah proses dan arc-nya adalah aliran data.
Sebuah model adalah abstraksi yang perlu dipahami sebelum membangunnya. Karena sebuah model menghilangkan rincian yang tidak penting, hal ini membuat lebih mudah untuk dimanipulasi dari pada entitas. Pengembangan sistem perangkat keras dan perangkat lunak berarti membangun sistem yang kompleks, pengembang harus membuat abstraksi dalam berbagai pandangan yang berbeda dari sistem, membangun model dengan menggunakan notasi yang tepat, meneliti kembali model tersebut untuk menegaskan kebutuhan sistem dan secara garis besar menambahkan rincian untuk mentransformasikan model ke dalam suatu aplikasi.

1. Penggunaan Pemodelan
Pemodelan memerlukan abstraksi, dengan tujuan membatasi aspek yang penting untuk beberapa kebutuhan dan mengabaikan aspek yang tidak penting. Abstraksi harus selalu dapat dipergunakan untuk banyak kebutuhan, karena kebutuhan membedakan hal yang penting dan tidak penting.
Semua abstraksi adalah tidak lengkap dan tidak akurat. Semua kata yang dipergunakan oleh manusia dan bahasa adalah abstraksi-deskripsi tidak lengkap dari dunia nyata. Model yang baik menangkap aspek krusial dari masalah dan menghilangkan yang lain. Sebagian besar bahasa komputer, sebagai contoh, merupakan alat yang miskin untuk memodelkan algoritma karena menekankan pada spesifikasi dari rincian implementasi yang tidak relevan pada algoritma.
Desainer membuat banyak macam model untuk berbagai kebutuhan sebelum membangun seuatu. Suatu contoh pemodelan, model pesawat terbang untuk testing aliran angin, sketsa dengan pensil untuk komposisi dari lukisan cat minyak, blueprint dari bagian mesin, storyboard dari iklan dan outline dari buku. Model menyajikan berbagai kebutuhan, di antaranya:

Testing entitas sebelum dibangun
Kemajuan komputasi memperbolehkan simulasi dari banyak struktur fisik tanpa harus membuat model secara fisik. Tidak hanya simulasi yang memerlukan biaya murah, tetapi dilengkapi dengan informasi yang tidak mungkin diakses atau diukur dari model fisik.

Komunikasi dengan kustomer
Arsitek dan desainer produk membuat model untuk memperlihatkan kepada kustomernya. Model tiruan memperlihatkan produk yang menyerupai keadaan sebenarnya.

Visualisasi
Storyboard dari film televisi memperlihatkan kepada customer bagaimana gagasan penulis digambarkan sebagai aliran tampilan yang akan dibuat.

Reduksi dari kompleksitas
Model mengurangi kompleksitas dengan membedakan sejumlah sedikit dari yang penting.

2. Teknik Pemodelan
Model mempunyai dua dimensi – suatu pandangan tentang sistem (model objek, model dinamik, atau model fungsional) dan tahapan dari pengembangan (analisa, desain atau implementasi).

Model objek
Tujuan dari pembuatan model adalah menangkap konsep dari dunia nyata yang penting ke dalam aplikasi. Dalam pemodelan masalah engineering, model objek harus dapat mudah dikenal oleh engineer, dalam pemodelan tentang masalah bisnis, mengacu pada istilah bisnis, dalam pemodelan user interface digunakan istilah domain aplikasi. Model desain menjelaskan bagaimana memecahkan masalah dan mungkin berisi pembangunan komputer.
Model objek digambarkan secara grafik dengan diagram objek yang berisi objek dan kelas. Kelas-kelas diatur dalam hirarki yang dapat menggunakan bersama struktur dan perilaku umum yang berhubungan dengan kelas lain. Kelas menentukan nilai atribut yang dibawa oleh setiap objek (instance) dan operasi di mana objek melakukannya.

Model dinamik
Model dinamik menggambarkan aspek dari sistem yang berhubungan dengan waktu serta sekuens dari operasi. Model dinamik menangkap kontrol, dimana aspek dari sistem digambarkan serta sekuens dari operasi yang terjadi tanpa memperhatikan operasi apakah yang dikerjakan, terhadap apa operasi dilakukan, atau bagaimana diimplementasikan.

Model dinamik digambarlan secara grafik dengan state diagram. Setiap state diagram memperlihatkan sekuens state dan event diperbolehkan dalam sistem untuk satu kelas dari objek. State diagram juga menunjuk pada model lain. Aksi dalam state diagram berhubungan dengan model fungsional, event dalam state diagram menjadi operasi pada obyek dalam model obyek.

Model fungsional
Model fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai-fungsi, pemetaan, batasan dan ketergantungan fungsional. Model fungsional menangkap apakah yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan dikerjakan.
Model fungsional digambarkan dengan diagram alir data. Diagram alir data memperlihatkan ketergantungan antara nilai dan perhitungan nilai output dari nilai input dan fungsi, tanpa memperhatikan kapan dan bila fungsi tersebut dieksekusi. Fungsi meminta suatu aksi dalam model dinamik dan diperlihatkan sebagai operasi pada objek dalam objek model.

Hubungan antara model
Setiap model menggambarkan satu aspek dari sistem, tetapi mengandung hubungan dengan model lain. Model objek menggambarkan struktur data dimana model dinamik dan fungsional melakulkan operasi terhadapnya. Operasi dalam model objek berhubungan dengan event pada model dinamik dan fungsi pada model fungsional. Model dinamik menggambarkan struktur kontrol terhadap model objek. Hal ini menunjukkan keputusan yang tergantung pada nilai objek dan yang mana menyebabkan aksi yang menyebabkan berubahnya nilai objek dan meminta fungsi. Model fungsional menggambarkan fungsi yang meminta operasi pada model objek dan aksi pada model dinamik.

B. Model Berorientasi Objek
Sebuah model objek menangkap struktur statis dari sistem dengan menggambarkan objek dalam sistem, hubungan antara objek, serta atribut dan operasi yang merupakan karakteristik setiap kelas dan objek. Model objek adalah hal yang paling penting dari ketiga model. Model berorientasi objek lebih mendekati keadaan nyata, dan dilengkapi dengan penyajian grafik dari sistem yang sangat bermanfaat untuk komunikasi dengan kustomer dan pembuatan dokumentasi struktur dari sistem.


1. Objek dan Kelas
Objek
Tujuan dari pemodelan objek adalah menggambarkan objek, sebagai contoh, Joe Smith, Simplex company, proses nomor 7648 adalah objek. Suatu objek adalah sesuatu yang sederhana yang membuat pengertian dalam konteks aplikasi.
Objek didefinisikan sebagai konsep, abstraksi atau benda dengan dengan batasan dan arti untuk suatu masalah. Objek menjelaskan dua tujuan, yaitu pengertian dunia nyata dan dilengkapi dengan dasar praktek untuk implementasi komputer. Dekomposisi dari suatu masalah ke dalam objek tergantung pada keputusan dan kenyataan dari masalah tersebut. Tak ada sesuatu penyajian yang sempurna.
Semua objek mempunyai identitas yang berbeda dengan lainnya. Dua apel dengan warna, permukaan dan tekstur yang sama adalah tetap sebagai individual apel. Seseorang dapat makan satu dan makan yang lainnya. Hal yang sama, kembar identik merupakan dua orang yang berbeda, walaupun mereka nampak seperti sama. Istilah identitas berarti bahwa objek dibedakan oleh sifat yang melekat dan bukan dengan uraian sifat yang dimilikinya.
Kadang-kadang objek berarti suatu barang, pada saat lain menunjuk pada suatu kelompok barang yang sama. Bila kita menginginkan untuk menunjuk dengan tepat suatu barang, maka digunakan istilah object instance, dan object class untuk menunjukkan satu grup dari barang yang sama.

Kelas
Suatu object class menggambarkan kumpulan dari objek yang mempunyai sifat (atribut), perilaku umum (operasi), relasi umum dengan objek lain dan semantik umum. Orang, perusahaan, binatang, proses dan window adalah objek. Setiap orang mempunyai umur, IQ dan mungkin pekerjaan. Setiap proses mempunyai pemilik, prioritas, list dari sumber daya yang dibutuhkan. Objek dan object classes sering sama sebagai benda dalam deskripsi masalah.
Istilah Kelas sering digunakan dari pada Kelas-objek. Objek dalam kelas mempunyai atribut dan pola perilaku yang sama. Sebagian besar objek diturunkan sifatnya dari perbedaan nilai atributnya dan relasi dengan objek lain. Bagaimanapun juga, terdapat kemungkinan adanya objek dengan nilai atribut dan relasi yang identik.
Setiap objek mengetahui kelasnya. Sebagian besar bahasa pemrograman berorientasi objek dapat menentukan kelas yang dimiliki oleh objek dalam run time-nya. Bila objek difokuskan pada pemodelan objek, bagaimana dengan kelas? Dengan mengumpulkan objek ke dalam kelas, kita membuat abstraksi suatu masalah. Abstraksi memberikan pemodelan yang mempunyai kehandalan untuk membuat generlisasi dari beberapa hal yang spesifik menjadi suatu yang lebih umum. Definisi umum (seperti nama kelas dan nama atribut) cenderung untuk disimpan sekali dalam kelas dari pada dalam objek. Operasi dapat ditulis sekali untuk setiap kelas, sehingga semua objek dalam kelas dapat memperoleh keuntungan dengan penggunaan kembali.

2. Diagram Objek
Diagram objek melengkapi notasi grafik untuk pemodelan objek, kelas dan relasinya dengan yang lain. Diagram objek bermanfaat untuk pemodelan abstrak dan membuat perancangan program. Diagram objek sederhana, mudah dipahami dan bekerja dengan baik dalam praktek. Terdapat dua macam diagram objek, yaitu diagram kelas dan diagram instance.
Diagram kelas adalah skema, pola, atau template untuk menjelaskan banyak kemungkinan data dari instance. Diagram kelas menjelaskan kelas-objek.
Diagram instance menjelaskan bagaimana satu set objek tertentu berhubungan dengan yang lainnya. Diagram instance menggambarkan object instance. Diagram instance bermanfaat untuk membuat dokumentasi dari suatu kasus.
Diagram objek dipergunakan mulai fase analisa, desain dan implementasi. Beberapa notasi untuk objek di antaranya adalah notasi Coad/Yourdon, notasi Rumbaugh, notasi Booch dan notasi Firesmith. Menurut Coad/Yourdon notasi untuk diagram objek adalah sebagai berikut :

Kelas dan Objek
Konsep fundamental dalam analisa berorientasi objek adalah objek itu sendiri. Sebuah objek adalah sebuah entitas yang mencakup data dan metode.
Sebelum menentukan Kelas dan Objek, terlebih dulu dimulai dengan menentukan arti dari “Kelas” dan “Objek”. Objek adalah abstraksi dari suatu problem, menggambarkan kemampuan dari sistem untuk menyimpan informasi tentang objek tersebut. Objek merupakan pembungkusan (encapsulation) antara atribut dengan metode. Metode yang biasa disebut juga service dapat berupa fungsi atau prosedur.
Kelas merupakan satu atau lebih objek dengan persamaan atribut dan metode, sedangkan Kelas dan Objek adalah kelas dengan satu atau lebih objek di dalamnya. Nama Kelas adalah kata benda tunggal, atau kata sifat dan kata benda. Nama dari Kelas dan Objek harus dapat menjelaskan Objek tunggal dari suatu Kelas. Contohnya, bila setiap Objek menjelaskan sesuatu yang dikirimkan, maka menggunakan "Item Pengiriman" (setiap Objek adalah satu item), lebih baik dari pada menggunakan nama "Pengiriman". (dimana dapat berarti cara pengiriman misalnya pengiriman menggunakan pesawat atau kapal). Nama Kelas dan Objek sebaiknya mudah dibaca, seperti penggunaan huruf kapital dan huruf kecil pada umunya. Notasi untuk Kelas dan Objek dapat dilihat pada Gambar 4.



Gambar 4. Notasi untuk Kelas dan Kelas dan Objek (Coad, 1991)

Struktur Objek dan Hirarki Kelas
Setelah menentukan Kelas maka langkah berikutnya adalah menyusunnya sehingga merupakan suatu hirarki, yang selanjutnya sangat menentukan penerapan dari inheritance. Whole-Part Structure memperlihatkan hirarki dari suatu kelas sebagai komponen dari kelas lain yang juga disebut sub objek. Notasi untuk Whole-Part Structure seperti dalam Gambar 5.
Gen-Spec Structure memperlihatkan kelas sebagai spesialisasi dari kelas di atasnya. Kelas yang mempunyai sifat umum disebut Generalization, Super-class atau Top-class, sedangkan kelas yang mempunyai sifat khusus disebut Spezialization. Notasi untuk Gen-Spec Structure seperti dalam Gambar 6.



Gambar 5. Notasi untuk whole-part structure



Gambar 6. Notasi untuk gen-spec structure

Atribut
Atribut menggambarkan data yang dapat memberikan informasi mengenai kelas atau objek di mana atribut tersebut berada. Seperti terlihat pada Gambar 7, dalam notasi untuk kelas dan objek ditempatkan daftar dari atribut.



Gambar 7. Notasi untuk atribut



Metode
Metode (method) disebut juga service atau operator adalah prosedur atau fungsi seperti yang terdapat dalam bahasa Pascal pada umumnya, tetapi cara kerjanya agak berlainan. Metode adalah subprogram yang tergabung dalam objek bersama-sama dengan atribut. Metode dipergunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut.
Metode tidak perlu mempunyai nama yang unik, dapat digunakan beberapa metode dengan nama yang sama untuk mengakses beberapa objek yang berbeda dan juga pada hirarki yang berbeda. Penulisan nama untuk metode dapat juga dibuat berbeda. Pada dasarnya sistem akan mengetahui metode yang mana dapat mengakses suatu objek, yaitu metode yang terdapat di dalam objek itu sendiri.
Banyak cara yang dapat digunakan untuk menjelaskan detail metode antara lain penggunaan bahasa umum, pseudocode dan decision tree. Beberapa metode dapat digambarkan dengan menuliskan daftar seperti pada Gambar 8.



Gambar 8. Notasi untuk metode

Penggunaan bahasa umum lebih sesuai untuk menjelaskan detail proses atau menjelaskan diagram alir data, tetapi tidak sesuai untuk menjelaskan proses secara detail. Pseudocode dapat dipergunakan untuk menjelaskan metode pada pemrograman berorientasi objek. Karena satu objek memiliki beberapa metode, penulisan pseudocode harus menyebutkan metode dan objeknya.
Decision tree digunakan untuk menjelaskan aturan bisnis yang kompleks yang sulit dijelaskan dengan pseudocode.

Message
Message (pesan) merupakan cara untuk berhubungan antara satu objek dengan objek lain. Suatu pesan dikirimkan oleh suatu objek kepada objek tertentu dapat digambarkan sebagai anak panah, seperti pada Gambar 9. Objek pengirim mengirimkan pesan kepada objek penerima supaya objek penerima melaksanakan salah satu metode yang dimilikinya.



Gambar 9. Notasi untuk message

No comments: