Metodologi Berorientasi Objek
Metodologi Berorientasi Objek
MATERI 1
PENGANTAR MODOLOGI BERORIENTASI OBJEK
Istilah “objek” telah digunakan dalam cara yang berbeda dari dua
disiplin ilmu yang berbeda.
1. Dari permodelan Informasi adalah:
“suatu representasi dari beberapa dunia nyata dan sejumlah kejadian”; dan
2. Dari bahasa pemrograman berarah objek adalah:
“suatu runtime beberapa proses dan nilai yang ditentukan dengan deskripsi
yang disebut kelas”.
Page 3 of 38
pengetahuan (konsep yang mempunyai basis yang baku dan pengertian prinsip-
prinsip 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.
Page 6 of 38
MATERI 2
ANALISIS BERORIENTASI OBJEK
Pendekatan analisa berarah objek terdiri dari lima pokok aktivitas, yaitu:
a. Menentukan Kelas-&-Objek (finding class-&-objects)
b. Identifikasi Struktur (identifying structures)
c. Identifikasi Subjek (identifying subject)
d. Pendefinisian Atribut (defining attributes)
e. Pendefinisian Service (defining services)
Class
Attribute
Service
Attribute
Service
Generalization
Attribute
Service
Specialization 1 Specialization 2
Attribute Attribute
Service Service
Service
1,m 1,m
1 1
Part 1 Part 2
Attribute Attribute
Service Service
1. Subject1
Class-&-Object1
Class-&-Object2
2. Subject2
Class-&-Object3
Class-&-Object4
Page 9 of 38
Penggambaran dari simbol diatas dengan lapisan yang berbeda dapat
dilihat dalam gambar dibawah ini.
1 1 2 2
1 1 2 2
Page 10 of 38
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.
Attribute 1 Attribute 1
Atribute 2 Attribute 2
Service Service
Attribute 0, m 1 Attribute
Service Service
Attribute Attribute
Service 1 Service 1
Service 2 Service 2
Page 11 of 38
Message connection adalah model yang memproses ketergantungan dari
sebuah objek, indikasi yang diperlukan untuk service dalam melaksanakan
pekerjaan yang berhubungan dengan "tanggungjawabnya".
Sender Receiver
Attribute Attribute
Service Service
Page 12 of 38
MATERI 3
PERANCANGAN BERARAH OBJEK
Page 13 of 38
mengacu kepada keseimbangan yang diperlukan untuk pengorganisasian
analisis, perancangan, pemrograman setiap saat.
Keseimbangan adalah kunci utama untuk pemakaian kembali (reuse)
hasil analisis, perancangan dan pemrograman yang berkaitan dengan lingkup
per-masalahan. Keseimbangan dalam analisis dan perancangan memberikan
dasar yang benar-benar cocok dalam mengajukan perubahan secara sistematik.
Dalam perancangan lingkup permasalahan ini, mengikuti langkah-langkah
berikut:
Page 14 of 38
cepat dengan menjalankan dan menerapkan aplikasi yang dibangun. Tahap
perancangan HIC dapat dilihat dalam pembahasan berikut.
3.2.1. Klasifikasi Pemakai
Langkah-langkah untuk mengklasifikasikan pemakai:
1. Tempatkan diri kitasebagai pemakai sistem
2. Klasifikasikan berdasarkan level keahlian
3. Klasifikasikan berdasarkan level organisasi
4. Klasifikasikan berdasarkan keanggotaan pada group yang berbeda
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.
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
Tujuh langkah untuk mendapatkan hasil (SW) yang memuaskan [Meyer-97]:
1. Object based modular structure, sistem dimodularisasi berdasarkan
struktur objek
2. Data abstraction, objek harus dideskripsikan sebagai implementasi dari
ADT
3. Automatic memory management , objek yang sudah tidak dibutuhkan
lagi harus di-dealokasi oleh sistem pemroses bahasa tanpa perlu
intervensi pemrogram
4. Classes, setiap type yang tidak sederhana adalah sebuah modul,
setiap modul adalah type tingkat tinggi
5. Inheritance, sebuah Class dapat didefinisikan berdasarkan ekstensi atau
restriksi dari kelas lain
6. Polymorphism and dynamic binding, entitas program harus dimungkinkan
untuk mengacu kepada lebih dari satu kelas dan operasi harus
dimungkinkan untuk lebih dari satu kelas
7. Multiple and repeated inheritance, harus dimungkinkan untuk membuat
deklarasi kelas sebagai pewaris dari banyak kelas, dan lebih dari satu jika
pewarisnya sebuah kelas
Page 17 of 38
Catatan : pada kuliah ini sangat dibedakan aspek statik dan aspek dinamik
(program pada saat run time)
Page 18 of 38
Untuk menciptakan (menghidupkan) objek, diperlukan konstruktor. Untuk
mematikan
(menghancurkan) objek, diperlukan destruktor
Kelas mempunyai:
· 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:
Deklarasi Kelas
Class Point
// atribut
x,y : integer
End class Point
Lingkup akses terhadap Feature didefinisikan mulai dari yang umum sampai
dengan yang sangat restriktif:
· public : dapat diakses/dipakai kelas apapun
· friend, hanya kelas tertentu yang boleh mengakses
· private : hanya kelas yang bersangkutan yang boleh memakai
Penentuan lingkup akses terhadap feature merupakan bagian yang harus
dirancang. Sebenarnya, dalam perancangan yang murni OO, sebaiknya “friend”
tidak digunakan
Klasifikasi kelas
Model program berorientasi objek yang termasuk paling “lama” dan mendasar
adalah model MVC dari Smalltalk, dimana setiap aplikasi dipandang terdiri
dari tiga jenis kelas : M (Modeler), V (Viewer), C( Controller) dengan
hubungan sebagai berikut:
Page 20 of 38
objek ke antarmuka pengguna (misalnya di lingkungan GUI : layar/windows),
sedangkan Controller bertugas untuk mengatur interaksi dan aliran
data/pesan antara Modeler dan Viewer. Objek dilahirkan berdasarkan definisi
kelas, dan ketika eksekusi program akan
“hlang”. Jika objek harus dapat disimpan secara permanen, maka modeler
juga harus merepresentasi persistent objek (pada pemrograman prosedural
menjadi arsip eksternal, external file) .
Hubungan Client-Supplier
Pada hubungan Client-Suplier, sebuah kelas Client memakai kelas Supplier.
Hubungannya adalah hubungan “kontrak”. Supplier menyediakan sejumlah
services yang dapat dipakai oleh Client, dan menjanjikan akan memenuhi
“kontrak”, yaitu memenuhi prekondisi yang ditentukan. Client wajib
mentaati aturan (prekondisi) yang tertulis sebelum memakai services yang
disediakan oleh Supplier.
Hubungan yang lebih simple, sederhana ini lebih disarankan untuk dipakai!
Definisi :
Kelas A adalah Client dari kelas B dan B adalah Supplier dari Kelas A jika A
Mengandung definisi Entitas e: B Entitas adalah :
- atribut
- argumen formal dari rutin
- hasil evaluasi fungsi
Hubungan inheritance
Pada hubungan Inheritance, sebuah kelas turunan (descendant, heir,
child,…) mewarisi kelas leluhur (parent, …). Karena mewarisi, maka
“semua” atribut dan method kelas bapak akan “dibawa”, secara intrinsik
menjadi bagian dari kelas anak. Dalam beberapa keadaan, membawa secara
intrinsik semua atribut dan method tidak dikehendaki. Maka pemroses
bahasa menyediakan sarana untuk:
· menambah feature baru,
· mengubah atau menggantikan feature yang diwarisi ,
· menghapus feature yang diwarisi,
· menentukan feauture yang masih deferred (belum terdefinisi)
Ini menimbulkan persoalan yang tidak sederhana. Karena penghapusan
menimbulkan beberapa konsekuensi berbahaya, maka sedikit sekali
Page 22 of 38
metodologi/bahasa yang membolehkan penghapusan feature yang diwarisi.
Jenis inheritance :
Single inheritance : sebuah kelas turunan merupakan turunan dari sebuah
kelas bapak. Jika simbol lingkaran/elips merupakan simbol sebuah kelas,
Page 23 of 38
maka hubungan inheritance digambarkan sebagai berikut [Meyer-97]. Arti
dari gambar tersebut: B mewarisi A. B adalah turunan dari A.
Multiple inheritance :sebuah kelas turunan mewarisi lebih dari satu kelas
bapak (Join)
B A
B C
D
Page 24 of 38
Repeated inheritance menimbulkan beberapa persoalan :
· Konflik pada D, seperti halnya multiple inheriance.
· konflik pada D, jika ternyata beberapa feature di B dan C sudah
dimodifikasi
Pemakaian inheritance perlu dikaji secara baik, dan dirancang dari awal.
Perancangan inheritance yang tambal sulam dan tidak tepat akan
menimbulkan banyak kesulitan pada saat implementasi. Pada “top level”
inheritance, biasanya dibuat kelas abstrak, yang merupakan spesifikasi dari
kelas-kelas turunannya. Makin ke “bawah”, definisi kelas menjadi makin
spesifik, dan dapat diinstansiasi menjadi objek yang “jelas”.
[Meyer-97] bahkan mendefinisikan hubungan inheritance dalam beberapa
tipologi. Buku [Webster-95] menyebutkan tiga macam hubungan antar kelas,
yaitu : has, is-a, is-implemented-using. Hubungan has dan is-implemented-
using sering dikacaukan menjadi hubungan inheritance.
Page 26 of 38
MATERI 5
UNIFIED MODELING LANGUAGE
Dengan menggunakan UML kita dapat membuat model untuk semua jenis
aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti
keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa
pemrograman apapun. Tetapi karena UML juga menggunakan class dan
operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti
lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau
VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling
aplikasi prosedural dalam VB atau C.
Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui
puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia.
Diantaranya adalah: metodologi booch [1], metodologi coad [2], metodologi
OOSE [3], metodologi OMT [4], metodologi shlaer-mellor [5], metodologi wirfs-
brock [6], dsb. Masa itu terkenal dengan masa perang metodologi (method war)
dalam pendesainan berorientasi objek. Masing-masing metodologi membawa
notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita
bekerjasama dengan group/perusahaan lain yang menggunakan metodologi
yang berlainan.
Page 27 of 38
Rumbaugh
Booch Jacobson
Odell OMG
(Object Management Group)
Gamma
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.
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
Use case diagram dapat sangat membantu bila kita sedang menyusun
requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan
merancang test case untuk semua feature yang ada pada sistem.
Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian
dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-
include akan dipanggil setiap kali use case yang meng-include dieksekusi secara
normal.
Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga
duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar
fungsionalitas yang common.
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.
Class diagram menggambarkan struktur dan deskripsi class, package dan objek
beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan
lain-lain.
Page 31 of 38
5.3 Statechart Diagram
satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari
class tertentu (satu class dapat memiliki lebih dari satu statechart
diagram).
membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar state
sebagai akibat dari event tertentu dituliskan dengan diawali garis miring.
Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan
berwarna setengah.
Page 32 of 38
5.4 Activity Diagram
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan proses yang berjalan, sementara use case menggambarkan
bagaimana aktor menggunakan sistem untuk melakukan aktivitas.
Sama seperti state, standar UML menggunakan segiempat dengan sudut
membulat untuk menggambarkan aktivitas. Decision digunakan untuk
menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan
proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat
berupa titik, garis horizontal atau vertikal.
Activity diagram dapat dibagi menjadi beberapa object swimlane untuk
menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.
Page 33 of 38
5.5 Sequence Diagram
Page 34 of 38
Contoh sequence diagram :
Page 35 of 38
5.7 Component Diagram
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. Umumnya komponen terbentuk dari
beberapa class dan/atau package, tapi dapat juga dari komponen-komponen
yang lebih kecil.
Komponen dapat juga berupa interface, yaitu kumpulan layanan yang
disediakan sebuah komponen untuk komponen lain.
Page 36 of 38
Sebuah node adalah server, workstation, atau piranti keras lain yang
Berikut ini adalah tips pengembangan piranti lunak dengan menggunakan UML:
Page 37 of 38
5. Berdasarkan use case diagram, mulailah membuat activity diagram.
11. Mulailah membangun sistem. Ada dua pendekatan yang dapat digunakan
:
• Pendekatan use case, dengan meng-assign setiap use case kepada
tim pengembang tertentu untuk mengembangkan unit code yang
lengkap dengan tes.
• Pendekatan komponen, yaitu meng-assign setiap komponen
kepada tim pengembang tertentu.
12. Lakukan uji modul dan uji integrasi serta perbaiki model berserta
codenya. Model harus selalu sesuai dengan code yang aktual.
Page 38 of 38