Teori Metodologi Berbasis Object
Teori Metodologi Berbasis Object
MATERI 1
PENGANTAR MODOLOGI BERORIENTASI OBJEK
Melihat laju perkembangan teknologi informatika yang demikian pesat
dewasa ini, maka pendekatan berarah objek diperkirakan akan menggantikan
pendekatan Struktural dalam merancang sistem di masa yang akan datang. Hal
ini dikarenakan pendekatan berarah objek memiliki beberapa kelebihan
diantaranya:
Aplikasi yang akan dibangun didukung oleh perkembangan teknologi
Software Engineering yang baru menuju ke konsep Object Oriented.
1. Tehnologi dengan pendekatan object-oriented ini memungkinkan
komponen dari program dapat dipakai ulang sehingga mempermudah dalam pengembangan sistem selanjutnya serta program yang
dihasilkan pun makin berkualitas baik.
2. Aplikasi yang dibangun dengan pendekatan ini mudah dalam
perawatan
karena
strukturnya
mengalami
proses
inheritance.
dapat
didefinisikan
sebagai
suatu
encapsulation
atau
berarah
objek
dibangun
sebagian
besar
diatas
konsep
Page 3 of 38
pengetahuan (konsep yang mempunyai basis yang baku dan pengertian prinsipprinsip untuk menangani kerumitan).
Dari model Informasi secara analogi mengambil bentuk attribute,
instance connection, generalize-specification dan whole-part. Dari bahasa
pemrograman berarah objek dan sistem berbasis pengetahuan secara analogi
mengambil bentuk pembungkusan dari atribut dan service, communication with
massages, gen-spec dan inheritance.
Entity
Relationship
Diagrams
Semantic
Data
Modeling
y
y
y
y
Attributes
Instance Connections
Generalization-Specialization
Whole-Part
Object
Oriented
Analysis
(Information Modeling)
y
y
y
y
Object-Oriented
Programming Languages &
Knowledge-Based Systems
proses
dan
data
didalam
suatu
objek
dikenal
sebagai
pengoperasian
yang
menggunakan
type
tersebut
dengan
informasi
kerja
secara
pasti.
Pembungkusan
membantu
7. Skala (Scale)
Skala adalah suatu prinsip yang menerapkan whole-part untuk membantu
menghubungkan sesuatu yang berukuran besar tanpa perlu meliputi
semuanya.
8. Klasifikasi Tingkah Laku (Behavior Classification)
Jenis klasifikasi tingkah laku yang digunakan secara umum yaitu:
a. Berdasarkan kepada kebutuhan yang mendesak
b. Berdasarkan perjalanan waktu (historis)
c. Berdasarkan fungsi
Page 6 of 38
MATERI 2
ANALISIS BERORIENTASI OBJEK
Pendekatan analisa berarah objek terdiri dari lima pokok aktivitas, yaitu:
a.
b.
c.
d.
e.
objek
adalah
suatu
abstraksi
dari
suatu
lingkup
Class
Attribute
Service
objek
tunggal
dengan
kelasnya.
Contoh:
ketika
tiap
objek
menggambarkan sesuatu yang berhubungan dengan "meja" maka nama kelas-&objeknya: "anggota_meja". Tiap objek minimal mempunyai satu item.
2.2. Identifikasi Lapisan Struktur
Struktur adalah suatu ekspresi dari lingkup permasalahan yang komplek,
berhubungan dengan tanggungjawab terhadap sistem. Istilah struktur digunakan
sebagai sebuah istilah yang menggambarkan struktur generalisasi-spesialisasi
(gen-spec) dan struktur keseluruhan dan bagiannya (whole-part).
Struktur gen-spec termasuk kebagian "perbedaan antar kelas" dalam tiga
aspek dasar metode pengorganisasian. Struktur gen-spec dikenal sebagai
struktur "is a" atau "is a kind of".
Generalization
Attribute
Service
Specialization 1
Specialization 2
Attribute
Attribute
Service
Service
Whole
Attribute
Service
1,m
1,m
Part 1
Part 2
Attribute
Attribute
Service
Service
1. Subject1
Class-&-Object1
Class-&-Object2
2. Subject2
Class-&-Object3
Class-&-Object4
proses
yang
harus
dilakukannya.
Instance
connection
Periksa hasil analisis pada permasalahan yang sama. Untuk setiap objek,
tambahkan garis koneksi. Tambahkan subjek-bahan pemetaan (subject-matter
mappings) diantara objek, perhatikan keterhubungan dengan struktur gen-spec.
Class
Attribute 1
Attribute 2
Service
Service
Service
Attribute
Service
Class
Attribute
Attribute
Service 1
Service 2
Service 1
Service 2
Page 11 of 38
Sender
Receiver
Attribute
Attribute
Service
Service
Page 12 of 38
MATERI 3
PERANCANGAN BERARAH OBJEK
Didalam perancangan berarah objek, prinsip whole-part diterapkan ke
dalam empat komponen utama, yaitu:
a. Komponen Lingkup Permasalahan (Problem Domain Component)
b. Komponen Interaksi Manusia (Human Interaction Component)
c. Komponen Manajemen Kerja (Task Management Component)
d. Komponen Manajemen Data (Data Management Component)
Hubungan empat aktifitas utama dalam perancangan berarah objek
dengan lima aktifitas dalam analisis dapat dilihat dalam gambar berikut:
Subject layer
Class & object
layer
Human
Problem
Interaction Domain
Structure
Component Component
layer
Task
Managemen
t
Component
Data
Management
Component
Attribute layer
Service layer
Gambar 3.1 Hubungan Analisis dengan Perancangan
Empat komponen utama tersebut berhubungan dengan empat aktifitas
utama dalam perancangan berarah objek, yaitu:
a. Perancangan Lingkup Permasalahan (Problem Domain Design)
b. Perancangan Interaksi Manusia (Human Interaction Design)
c. Perancangan Manajemen Kerja (Task Management Design)
d. Perancangan Manajemen Data (Data Management Design)
3.1. Perancangan Lingkup Permasalahan
Dalam perancangan berarah objek, hasil analisis berarah objek dimasukkan kedalam komponen lingkup permasalahan. Hasil analisis secara menyeluruh
merupakan bagian dari model perancangan. Dengan langkah ini, penelusuran
dari analisis, perancangan sampai pemrograman menjadi jelas sehingga setiap
kegiatan diorganisasikan sebagai lingkup permasalahan itu sendiri. Hal ini
Page 13 of 38
Peningkatan performansi
fungsi-fungsi
dari
sistem,
pada
semua
kasus
manusia
Page 14 of 38
Page 15 of 38
MATERI 4
PEMROGRAMAN BERORIENTASI OBJEK
Definisi [Meyer-97]
Sebuah sistem yang dibangun berdasarkan metoda berorientasi objek adalah
sebuah sistem yang komponennya di-enkapsulasi menjadi kelompok data
dan fungsi, yang dapat mewarisi atribut dan sifat dari komponen lainnya,
dan komponen-komponen tersebut saling berinteraksi satu sama lain.
Beberapa definisi lain
Object orientation:
1.a.
1.b.
inheritance
[Jacobson]
2.
Object adalah abstraksi dari sesuatu yang mewakili sesuatu pada dunia
nyata. Pada pemrograman berorientasi objek, Objek adalah entitas pada saat
run time . Objek mempunyai siklus hidup : diciptakan, dimanipulasi,
dihancurkan. Sebuah objek dapat diacu lewat namanya atau lewat
referensinya (addressnya)
Class adalah kumpulan objek yang mempunyai atribut yang sama. Class
adalah definisi statik dari entitas.
Entitas :
Entitas adalah salah satu dari berikut ini:
- atribut kelas
- variabel lokal
- parameter formal
- hasil fungsi
Page 16 of 38
abstraksi
enkapsulasi
pewarisan (inheritance)
reuseability
spesialisasi
generalisasi
polymorphisme
produktifitas
kecepatan pengembangan
kemudahan pemeliharaan
Page 17 of 38
Catatan : pada kuliah ini sangat dibedakan aspek statik dan aspek dinamik
(program pada saat run time)
Dinamika kehidupan objek : lahir (diciptakan), dimanipulasi/memanipulasi,
mati
(dihancurkan)
Objek merupakan model eksekusi
Objek mengalamai dynamic creation
-
Page 18 of 38
atribut (data, konstanta, properti). Nilai atribut pada saat run time
menyatakan
keadaan (state) dari objek yang merupakan instans dari kelas ybs.
Beberapa bahasa pemrograman mendefinisikan atribut harus sebuah Kelas,
atau beberapa bahasa memperbolehkan atribut dideklarasi sebagai kelas
atau type dasar
(numerik: integer/float, character, boolean)
method (service, prosedur, fungsi). Pada saar run time, method akan
dieksekusi sesuai dengan kode programnya, atas permintaan (lewat pesan,
message) objek lain. Method mempunyai spesifikasi, signature (nama dan
parameter), dan mempunyai body (kode program yang akan dieksekusi).
Signature adalah informasi bagi kelas yang akan menggunakan kelas ini,
sedangkan body merupakan kode program yang akan dieksekusi.
Sebenarnya body tidak perlu diketahui oleh kelas pemakai asalkan
spesifikasinya jelas. Spesifikasi : Prekondisi
(initial state), post kondisi (Final State) dan proses apa yang akan
dikerjakan ketika mehod dieksekusi. Prekondisi dan Post kondisi dapat
dituliskan sebagai asersi (pada beberapa bahasa), sedangkan proses
dinyatakan dalam komentar. Parameter prosedur/fungsi dalam OOP
selalu parameter input, tidak pernah ada parameter output atau
parameter input/output:
selalu
Class Point
// atribut
x,y : integer
End class Point
Lingkup akses terhadap Feature didefinisikan mulai dari yang umum sampai
dengan yang sangat restriktif:
Controller
bertugas
untuk
mengatur
interaksi
dan
aliran
Boundary entity
Domain entity
Controller
interaksi,
domain
entity
merepresentasi
persoalan
yang
Domain problem
Interface
CLASS
Page 21 of 38
Interface
Client wajib
beberapa
konsekuensi
berbahaya,
maka
sedikit
sekali
Page 22 of 38
visibility
dalam
sebuah
kelas
("scope"
dalam
pemrograman prosedural):
public, feature yang "visible", dapat dipakai oleh semua kelas lain
(Client, turunan).
terhadap prinsip
B
Multiple inheritance :sebuah kelas turunan mewarisi lebih dari satu kelas
bapak (Join)
B
konflik nama
C
D
Page 24 of 38
sudah
dimodifikasi
Sangat sedikit bahasa yang mensupport repeated inheritance.
Replicated repeated inheritance : Sebuah feature yang diwarisi dari
common anscestor dengan nama yang sama menjadi lebih dari satu buah
feature dalam Current Class. Jadi dalam hal ini, feature yang diwarisi muncul
lebih dari satu kali. Dalam beberapa bahasa, permogram harus mengubah
nama sehingga feature menjadi unik. Shared repeated inheritance (virtual
inheritance) : Sebuah feature yang diwarisi dari common anscestor dengan
nama yang sama menjadi hanya satu buah feature dalam Current Class. Jadi
dalam hal ini, feature yang diwarisi muncul hanya satu kali, dan dipakai
bersama.
Pemakaian inheritance perlu dikaji secara baik, dan dirancang dari awal.
Perancangan inheritance
yang
tambal
sulam
dan
tidak
tepat
akan
objek superkelasnya.
Contoh
reptil
adalah
binatang.
Perhatikanlah instans dari kelas tsb: seekor cicak adalah reptile, tetapi
belum tentu semua reptile adalah cicak. Demikian pula dengan kelas :
reptile termasuk binatang, tidak semua binatang adalah reptile. Hubungan
Page 25 of 38
has-a
(mempunyai)
merefleksikan
keseluruhan
dengan
member
dari
kelas
Mobil.
Hubungan
is
-implemented-using
sebuah
Daftar
Nomor
Telpon
(TelponList)
diimplementasi
Page 26 of 38
MATERI 5
UNIFIED MODELING LANGUAGE
Page 27 of 38
Rumbaugh
Booch
Jacobson
OMG
Odell
Meyer
Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang
merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan
mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi
objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak
tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management
Group (OMG http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan
saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch,
Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun
1999 [7] [8] [9]. Sejak saat itulah UML telah menjelma menjadi standar bahasa
pemodelan untuk aplikasi berorientasi objek.
Konsepsi Dasar UML
Dari berbagai penjelasan rumit yang terdapat di dokumen dan buku-buku UML.
Sebenarnya konsepsi dasar UML bisa kita rangkumkan dalam gambar dibawah.
Page 28 of 38
Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic
behavior, dan model management, bisa kita pahami dengan mudah apabila kita
melihat gambar diatas dari Diagrams. Main concepts bisa kita pandang sebagai
term yang akan muncul pada saat kita membuat diagram. Dan view adalah
kategori dari diagaram tersebut.
Lalu darimana kita mulai ? Untuk menguasai UML, sebenarnya cukup dua hal
yang harus kita perhatikan:
1. Menguasai pembuatan diagram UML
2. Menguasai langkah-langkah dalam analisa dan pengembangan dengan UML
Tulisan ini pada intinya akan mengupas kedua hal tersebut.
Seperti juga tercantum pada gambar diatas UML mendefinisikan diagramdiagram sebagai berikut:
use case diagram
class diagram
statechart diagram
activity diagram
sequence diagram
collaboration diagram
component diagram
deployment diagram
5.1
Page 29 of 38
Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya
sendiri.
Sementara hubungan generalisasi antar use case menunjukkan bahwa use case
yang satu merupakan spesialisasi dari yang lain.
5.2
Class Diagram
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak
yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan,
tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian
interface mendukung resolusi metoda pada saat run-time.
Page 31 of 38
5.3
Statechart Diagram
Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan
berwarna setengah.
Contoh statechart diagram :
Page 32 of 38
5.4
Activity Diagram
Page 33 of 38
5.5
Sequence Diagram
Page 34 of 38
5.6
Collaboration Diagram
Page 35 of 38
5.7
Component Diagram
5.8
Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana komponen dideploy 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
Page 36 of 38
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.
Contoh deployment diagram :
5.9
Berikut ini adalah tips pengembangan piranti lunak dengan menggunakan UML:
1. Buatlah daftar business process dari level tertinggi untuk mendefinisikan
aktivitas dan proses yang mungkin muncul.
2. Petakan use case untuk tiap business process untuk mendefinisikan
dengan tepat fungsionalitas yang harus disediakan oleh sistem.
Kemudian perhalus use case diagram dan lengkapi dengan requirement,
constraints dan catatan-catatan lain.
3. Buatlah deployment diagram secara kasar untuk mendefinisikan
arsitektur fisik sistem.
4. Definisikan requirement lain (non-fungsional, security dan sebagainya)
yang juga harus disediakan oleh sistem.
Page 37 of 38
Page 38 of 38