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