Selasa, April 14, 2015
0

Analisis dan Design Berorientasi Objek
(OOAD)
1. Pengertian OOAD
OOAD adalah metode analisis yang memerikasa requirements dari sudut pandang kelas kelas dan objek yang ditemui dalam ruang lingkup permasalahan yang mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek system atau subsistem. OOAD merupakan cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek,yang merupakan
 kombinasi antara struktur data dan perilaku dalam satu entitas.

2. Konsep Dasar OOAD
OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaiut analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memerika requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Sedangkan OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
Terdapat beberapa konsep dalam OOAD, yaitu :
1. Kelas (Class)

kumpulan objek-objek dengan karakter yang sama. Sebuah kelas mempunyai sifat(atribut),kelakuan (operasi/metode),hubungan (relationship) dan arti. Suatu kelas dapat diturunkan dari kelas yang lain,dimana atribut dan kelas semula dapat diwariskan ke kelas yang baru. Kelas adalah sebuah struktur tertentu dalam pembuatan perangkat lunak. Kelas merupakan bentuk struktur pada kode program yang menggunakan metodologi berorientasi objek.

2. Objek (Object)
Abstraksi dan sesuatu yang mewakili dunia nyata. Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan.
3. Metode (Method)

operasi atau metode pada kelas hampir sama dengan fungsi atau prosedur pada metodologi terstruktur. Operasi merupakan fungsi atau transformasi yang dapat dilakukan terhadap objek atau dilakukan objek.
4. Atribut

variabel global yang dimiliki kelas. Atribut dapat berupa nilai atau elemen – elemen data yang dimiliki oleh objek dalam kelas. Atribut dipunyai secara individu oleh suatu objek misalnya berat,jenis.
5. Abstraksi

prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi suatu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan masalah.
6. Enskapsulasi

pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerjanya.
7. Pewarisan

mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh dan objek lain sebagai bagian dari dirinya.
8. Antar muka

biasanya digunakan agar kelas yang lain tidak mengakses langsung ke suatu kelas.

9. Reusability
pemanfaatan kembali objek yang sudah didefenisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.
10. Generalisasi & spesialisasi

menunjukan hubungan antar kelas dan objek yang umum dengan kelas dan objek yang khusus.
11. Komunikasi Antar Objek

dilakukan lewat pesan (message) yang dikirim dari satu objek ke objek lainnya.
12. Polimorfisme

kemampuan suatu objek untuk digunakan di banyak tujuan yang berbeda dengan nama yang sama sehingga menghemat program.
13. Package

sebuah kontainer atau kemasan yang dapat digunakan untuk mengelompok kelas-kelas yang bernama sama disimpan dalam package yang berbeda.
3. Metedologi pengembangan sistem berbasis object

Metodologi adalah cara systematis untuk mengerjakan analisys and design. Dengan metodologi, pihak yang membangun system software dapat merencanakan dan mengulangi pekerjaan dilain waktu. Metodologi juga menghilangkan perbedaan notasi untuk suatu hal yang sama karena setiap oarng akan berbicara dalam bahasa yang sama. Metodologi yang paling banyak dalam OOAD, yaitu : Object Modeling Technique (OMT) dari Rumbaugh, Object Oriented Booch, Responsibility-Driven Design/ Class Responsibility Calloboration (RDD/CRC) dari Wirf-Broock, Metodologi Coad/ Yourdan dan Jacobson Object Oriented Software Enginering
(OOSE).

1) Object Modeling Technique (OMT)
Dikembangkan oleh James Rumbaugh sebagai metode untuk mengembangkan sistem berorientasi objek dan untuk mendukung pemograman berorientasi objek

2) Object Oriented Booch
Dikembangkan oleh Grady Booch terdiri dari diagram kelas,objek,transisi status, interaksi, modul dan proses.

3) Class Resposibility Calloboration (CRC)
Merupakan bagian dari Object-Oriented Programming,System,Languages And Application(OOPSLA). Dibuat untuk menjadi kelas yang akan dianalisis.

4) Metodologi Coad/ Yourdan
Menyediakan sebuah diagram kelas, pembuatannya dengan langkah-langkah berkut :
1. Mendefenisikan kelas dan objek
2. Mengidentifikasi struktur kelas dan objek.
3. Mendefenisikan subjek nama kelas.
4. Mendefenisikan atribut.
5. Mendefenisikan operasi/layanan (service).

5) Object Oriented Software Enginering (OOSE)
Dikembangkan oleh Ivar Jacobson adalah metode disain berorientasi objek yang melibatkan use case.


4. Teknik pemodelan yang ada pada OOAD
a) Model Objek :
 Model objek Menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya
Model objek berisi diagram objek. Diagram objek adalah graph dimana nodenya adalah kelas yang mempunyai relasi antar kelas.
b) Model Dinamik
 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 dimana nodenya adalah state dan arc adalah tarnsisi antara state yang disebabkan oleh event.
c) Model Fungsional
 Model fungsional menggambrakan transformasi nilai data di dalam sistem.
 Model fungsional berisi data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data .



Unified Modelling Language (UML)
A. Definisi UML

Unified Modeling Language (UML) merupakan satu kumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yangterkait dengan objek (Whitten L. Jeffery et al, 2004). Sementara menurut Henderi (2007: 4) Unified Modeling Language (UML) adalah sebuah bahasa pemodelan yang telah menjadistandar dalam industri software untuk visualisasi, merancang, dan mendokumentasikansistem perangkat lunak. Bahasa Pemodelan UML lebih cocok untuk pembuatan perangkatlunak dalam bahasa pemrograman berorientasi objek (C++, Java, VB.NET), namundemikian tetap dapat digunakan pada bahasa pemrograman prosedural (Ziga Turck, 2007)
Unified Modeling Language (UML) biasa digunakan untuk (Henderi, 2007 :11)
1. Menggambarkan batasan sistem dan fungsi-fungsi sistem secara umum, dibuat denganuse case dan actor
2. Menggambarkan kegiatan atau proses bisnis yang dilaksanakan secara umum, dibuatdengan interaction diagrams
3. Menggambarkan representasi struktur statik sebuah sistem dalam bentuk class diagrams
4. Membuat model behavior ”yang menggambarkan kebiasaan atau sifat sebuah sistem”dengan state transition diagrams
5. Menyatakan arsitektur implementasi fisik menggunakan component and developmentdiagrams
6. Menyampaikan atau memperluas fungsionality dengan stereotypes (Ziga Turck, 2007)

UML merupakan salah satu alat bantu yang sangat handal dalam bidang pengembangan sistem berorientasi objek karena UML menyediakan bahasa pemodelan visual yang memungkinkan pengembang sistem membuat blue print atas visinya dalam bentuk yang baku. UML berfungsi sebagai jembatan dalam mengkomunikasikan beberapa aspek dalam sistem melalui sejumlah elemen grafis yang bisa dikombinasikan menjadidiagram. UML mempunyai banyak diagram yang dapat mengakomodasi berbagai sudut pandang dari suatu perangkat lunak yang akan dibangun. Diagram-diagram tersebut digunakan untuk (Henderi et al, 2008:71):
1. Mengkomunikasikan ide2.
2. Melahirkan ide-ide baru dan peluang-peluang baru
3. Menguji ide dan membuat prediksi
4. Memahami struktur dan relasi-relasinya



C. Diagram Dasar dalam Unified Modeling Language (UML)
Penjelasan :
1. Structure
kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.

Dalama Structure diagram terdapat beberapa jenis model diagram lagi, yaitu :
a. Class Diagram
Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment , pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok :
1. Nama (dan stereotype)
2. Atribut
3. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :
 Private, tidak dapat dipanggil dari luar class yang bersangkutan
 Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
 Public, dapat dipanggil oleh siapa saja

b. Object Diagram

Object diagram merupakan sebuah gambaran tentang objek-objek dalam sebuah sistem pada satu titik waktu. Karena lebih menonjolkan perintah-perintah 29 daripada class, object diagram lebih sering disebut sebagai sebuah diagram perintah.
c. Component Diagram

Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan ( dependency ) di antaranya. Komponen piranti lunak adalah modul berisi code , baik berisi source code maupun binary code , baik library maupun executable , baik yang muncul pada compile time, link time , maupun run time.
d. Composite Structure Diagram

Diagram struktur komposit adalah diagram yang menunjukkan struktur internal classifier, termasuk poin interaksinya ke bagian lain dari sistem. Hal ini menunjukkan konfigurasi dan hubungan bagian, yang bersama-sama melakukan perilaku classifie. Diagram struktur komposit merupakan jenis diagram struktur statis dalam Unified Modeling Language (UML), yang menggambarkan struktur internal kelas dan kolaborasi.
e. Package Diagram

Diagram objek melengkapi notasi grafik untuk pemodelan objek, kelas dan relasinya dengan yang lain. Diagram objek bermanfaat untuk pemodelan abstrak dan membuat perancangan program. Untuk mengatur pengorganisasian diagram Class yang kompleks, dapat dilakukan pengelompokan kelas-kelas berupa package (paket-paket). Package adalah kumpulan elemen-elemen logika UML.
f. Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal Sebuah node adalah server, workstation , atau piranti keras lain yang digunakan untuk men- deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.
2. Behavior Diagram
yaitu kumpulan diagram yang dgunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan pada sebuah sistem.
a. Use Case Diagram
Use case adalah abstraksi dari interaksi antara system dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah system dipakai.
b. Activity Diagram
Activity diagram memiliki pengertian yaitu lebih fokus kepada menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Memiliki struktur diagram yang mirip flowchart atau data flow diagram pada perancangan terstruktur.
c. State Machine Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima.
3. Interaction Diagram
yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar sub sistem pada suatu sistem.
a. Sequence Diagram
Menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Dalam menggambarkan diagram ini harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode- metode yang dimiliki kelas.
b. Communication Diagram
Merupakan penyederhanaan dari Diagram Kolaborasi . Menggambarkan interaksi antar objek/bagian dalam bentuk urutan pengiriman pesan. Diagram ini merepresentasikan informasi yang diperoleh dari diagram kelas. Dalam Diagram ini yang dituliskan adalah operasi/metode yang dijalankan antar objek.
c. Timing Diagram

Timing Diagram adalah bentuk lain dari interaction diagram, dimana fokus utamanya lebih ke waktu. Timing diagram sangat berdaya guna dalam menunjukkan faktor pembatas waktu diantara perubahan state pada objek yang berbeda.
d. Interaction Overview Diagram

Bentuk Diagram Aktivitas yang setiap titik merepresentasikan diagram interaksi. Notasi pada Interaction Overview Diagram sama dengan Diagram Aktivitas.
Langkah-Langkah Membuat UML

Dalam membuat UML, setiap orang biasanya mempunyai gayanya masing-masing. Langkah pembuatannya tidak selalu sama. Setelah ane searching ke berbagai sumber di internet, berikut adalah salah satu langkah membuat UML yang mantap :
1.      Membuat Functional requirement
Pertama kita buat dulu tulisan yang bercerita tentang sistem apa yang akan kita buat. Tulisan ini tidak harus format dan memiliki format tertentu, kita tulis aja program yang akan kita buat maunya seperti apa sesuai dengan kebutuhannya dilapangan.

2.    Membuat Use Case Diagram
Kita buat aktor-aktor yang berperan dalam system. Aktor-aktor disini maksudnya siapa saja orang yang akan berperan di dalam system, contoh : pegawai, pembeli, manager, supplier. Nah kita gambarkan apa saja yang bisa dilakukan aktor-aktor tersebut di dalam system.

3.    Membuat Scenario
Kita membuat scenario berdasarkan use case diagram yang telah kita buat sebelumnya. Setelah kita membuat use case tentang apa saja yang dilakukan aktor terhadap system, kita jabarkan setiap langkahnya. Penjabaran langkah-langkah ini disebut scenario. Jadi misalnya berdasarkan use case diagram kita mempunyai 3 scenario : 1. Transaksi online : kita jabarkan langkah-langkah pegawai dalam melakukan pelayanan transaksi online. 2. Transaksi offline: kita jabarkan juga langkah-langkahnya. 3. Registrasi pengunjung : kita jabarkan langkah-langkah pegawai dalam melayani registrasi pengunjung.

4.    Membuat Class Diagram
Kita buat class-class yang ada di dalam system. Kita tentukan attribute-attributenya. Class-class ini adalah class yang nantinya akan digunakan dalam kodingan program. Nanti kita tentukan juga method untuk tiap-tiap classnya. Tetapi penentuan method kita lakukan setelah tahap selanjutnya yaitu membuat sequence diagram.

5.     Membuat Sequence Diagram.
Langkah selanjutnya adalah membuat Sequence diagram berdasarkan scenario yang telah kita buat. Tiap-tiap scenario harus dibuat sequence diagramnya, contoh, misalkan kita punya 3 skenario : 1. Scenario transaksi online 2. Scenario transaksi offline 3. Scenario registrasi. Naah kita buat 3 sequence diagram berdasarkan 3 scenario tersebut. Tujuan dari membuat sequence diagram adalah untuk menentukan method-method dari class-class yang ada di class diagram. Setelah kita selesai membuat Sequence Diagram kita balik lagi ke class diagram untuk mengisi method-method dan menyempurnakan class diagram tersebut.

6.    Membuat Activity Diagram.
Langkah terakhir adalah membuat activity diagram. Activity diagram ini mirip dengan flow chart. Jadi setelah kita buat 5 hal diatas sekarang kita bisa menggambarkan bagaimana system bekerja secara keseluruhan. Naah sekarang saatnya kita buat diagramnya, diagram tentang bagaimana system bekerja secara keseluruhan.


Dalam artikel ini ane bahas konsep dan langkahnya dulu, untuk selanjutnya Insha Allah nanti ditambahin contohnya langkah perlangkah berdasarkan yang udah dibahas barusan sampe jadi suatu system yang siap buat jadi acuan pembuatan aplikasi OOP. semoga bermanfaat.



0 komentar:

Posting Komentar