Perancangan Sistem
Perancangan Sistem
Berorientasi Objek
Berorientasi Objek
Dengan UML
Dengan UML
(Unified Modelling
(Unified Modelling
Yang akan dipelajari
Yang akan dipelajari
1.
1. Pengenalan UMLPengenalan UML
2.
2. Sejarah Singkat UMLSejarah Singkat UML
3.
3. Bagian-bagian UML.Bagian-bagian UML.
View.View. DiagramDiagram
4.
1. Pengenalan UML
1. Pengenalan UML
a.
a. Apa yang dimaksud dengan UMLApa yang dimaksud dengan UML
b.
4
4
A. Apa itu UML?
A. Apa itu UML?
sebuah bahasa standard untuk pengembangan sebuah bahasa standard untuk pengembangan
sebuah software yang dapat menyampaikan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan model yang seharusnya dibuat yang merupakan
sala
salah h satu proses implementasi pengembangan satu proses implementasi pengembangan
B. Tujuan UML
B. Tujuan UML
Memberikan model yang siap pakai, bahasa Memberikan model yang siap pakai, bahasa
pemodelan visual yang ekspresif untuk
pemodelan visual yang ekspresif untuk
mengembangkan dan saling menukar model dengan mengembangkan dan saling menukar model dengan
mudah dan dimengerti secara umum mudah dan dimengerti secara umum
Memberikan bahasa pemodelan yang bebas dari Memberikan bahasa pemodelan yang bebas dari
berbagai bahasa pemrograman dan proses rekayasa berbagai bahasa pemrograman dan proses rekayasa
Menyatukan praktek-praktek terbaik yang terdapat Menyatukan praktek-praktek terbaik yang terdapat
2. SEJARAH UML
2. SEJARAH UML
Pendekatan analisa & rancangan dengan Pendekatan analisa & rancangan dengan
menggunakan model OO mulai
menggunakan model OO mulai
diperkenalkan sekitar pertengahan 1970 diperkenalkan sekitar pertengahan 1970
hingga akhir 1980 hingga akhir 1980
pada saat itu aplikasi software sudah pada saat itu aplikasi software sudah
Jumlah yang menggunakaan metoda OO Jumlah yang menggunakaan metoda OO
mulai diuji cobakandan diaplikasikan antara mulai diuji cobakandan diaplikasikan antara
1989 hingga 1994, seperti halnya oleh 1989 hingga 1994, seperti halnya oleh
Grady Booch dari
Grady Booch dari Rational Software Co., Rational Software Co., dikenal
dikenal dengan OOSE (dengan OOSE (Object-Oriented Object-Oriented Software Engineering), serta James
Software Engineering), serta James Rumbaugh
Rumbaugh dari dari General Electric, dikenal General Electric, dikenal
Kelemahan adalah tidak adanya standar Kelemahan adalah tidak adanya standar
penggunaan model yang berbasis OO, penggunaan model yang berbasis OO,
Boch, Rumbaugh, Ivar Jacobson dari Boch, Rumbaugh, Ivar Jacobson dari
Objectory mengadopsi masing-masing Objectory mengadopsi masing-masing
pendekatan metoda OO untuk membuat pendekatan metoda OO untuk membuat
suatu model bahasa. suatu model bahasa.
Bahasa yang uniform / seragam yang Bahasa yang uniform / seragam yang
disebut UML (
Bangunan Dasar UML
Bangunan Dasar UML
1.
1. Sesuatu (Things)Sesuatu (Things)
2.
2. Relasi (Relationship)Relasi (Relationship)
3.
Things
Things
Ada 4 Macam Things dalam UML : Ada 4 Macam Things dalam UML :
a.
a. Structural ThingsStructural Things
b.
b. Behavioral ThingsBehavioral Things
c.
c. Grouping ThingsGrouping Things
d.
A. Structural Things
A. Structural Things
Merupakan Bagian yang bersifat statis Merupakan Bagian yang bersifat statis
dalam model UML dalam model UML
Dapat berupa elemen-elemen yang Dapat berupa elemen-elemen yang
bersifat fisik maupun konseptual bersifat fisik maupun konseptual
Ada 7 macam structural things, yaitu Ada 7 macam structural things, yaitu
Kelas, Antarmuka, Kolaborasi, Use Case, Kelas, Antarmuka, Kolaborasi, Use Case,
7 macam structural things (1)
7 macam structural things (1)
Kelas Kelas
- Himpunan dari objek-objek yang berbagi - Himpunan dari objek-objek yang berbagi
atribut serta operasi yang sama atribut serta operasi yang sama
- Digambarkan dengan - Digambarkan dengan empat-persegi-
empat-persegi-panjang yang memuat nama, atribut, serta panjang yang memuat nama, atribut, serta
7 macam structural things (2)
7 macam structural things (2)
Antarmuka (Interfaces) Antarmuka (Interfaces)
- Kumpulan dari operasi-operasi yang menspesifikasi layanan (service) suatu - Kumpulan dari operasi-operasi yang menspesifikasi layanan (service) suatu kelas atau komponen/objek
kelas atau komponen/objek
- Mendeskripsikan perilaku yang tampak dari luar dari suatu elemen - Mendeskripsikan perilaku yang tampak dari luar dari suatu elemen - Jarang berdiri sendiri.
- Jarang berdiri sendiri.
- Biasanya dilampirkan pada kelas atau komponen yang merealisasikan - Biasanya dilampirkan pada kelas atau komponen yang merealisasikan antarmuka
antarmuka
- secara grafis digambarkan dengan lingkaran kecil dengan namanya didahului - secara grafis digambarkan dengan lingkaran kecil dengan namanya didahului dengan garis tegak (|)
7 macam structural things (3)
7 macam structural things (3)
Kolaborasi (Collaboration) Kolaborasi (Collaboration)
- Mendefinisikan interaksi aturan-aturan dan elemen lain yang
- Mendefinisikan interaksi aturan-aturan dan elemen lain yang
bekerjasama untuk menyediakan perilaku yang lebih besar dari
bekerjasama untuk menyediakan perilaku yang lebih besar dari
jumlah dari elemen-elemennya (sinergi)
jumlah dari elemen-elemennya (sinergi)
- Merepresentasikan pola implementasi yang memperbaiki sistem
- Merepresentasikan pola implementasi yang memperbaiki sistem
- secara grafis digambarkan dengan elipsi bergaris putus-putus
- secara grafis digambarkan dengan elipsi bergaris putus-putus
yang memuat nama kolaborasi itu.
7 macam structural things (4)
7 macam structural things (4)
Use Case Use Case
- Deskripsi dari urutan aksi-aksi yang ditampilkan sistem - Deskripsi dari urutan aksi-aksi yang ditampilkan sistem
yang menghasilkan suatu hasil yang terukur bagi suatu yang menghasilkan suatu hasil yang terukur bagi suatu
actor actor
- Digunakan untuk menstrukturkan perilaku pada suatu - Digunakan untuk menstrukturkan perilaku pada suatu
model model
7 macam structural things (5)
7 macam structural things (5)
Kelas Aktif (Active Class) Kelas Aktif (Active Class)
- Kelas dimana Objek-objek yang dimilikinya memiliki satu atau lebih
- Kelas dimana Objek-objek yang dimilikinya memiliki satu atau lebih
proses dan lebih jauh menginisialisasi suatu objek kendali.
proses dan lebih jauh menginisialisasi suatu objek kendali.
- Merupakan kelas biasa namun objek-objek yang dimilikinya
- Merupakan kelas biasa namun objek-objek yang dimilikinya
menampilkan elemen-elemen yang memiliki perilaku konkuren.
menampilkan elemen-elemen yang memiliki perilaku konkuren.
- secara grafis digambarkan seperti kelas biasa tetapi dengan batas yang
- secara grafis digambarkan seperti kelas biasa tetapi dengan batas yang
lebih tebal
7 macam structural things (6)
7 macam structural things (6)
Komponen (Component) Komponen (Component)
-Bagian fisik dan bagian yang dapat digantikan pada -Bagian fisik dan bagian yang dapat digantikan pada suatu sistem.
suatu sistem.
- Secara grafis digambarkan dengan - Secara grafis digambarkan dengan empat-persegi- empat-persegi-panjang seperti kelas tetapi ditambahi tab.
7 macam structural things (7)
7 macam structural things (7)
Simpul (Node) Simpul (Node)
- Elemen fisik yang eksis saat aplikasi dijalankan dan - Elemen fisik yang eksis saat aplikasi dijalankan dan
mencerminkan suatu sumber daya komputasi. mencerminkan suatu sumber daya komputasi.
- Kumpulan komponen mungkin hadir dalam simpul dan mungkin - Kumpulan komponen mungkin hadir dalam simpul dan mungkin
juga berpindah-pindah dari suatu simpul ke simpul yang lain. juga berpindah-pindah dari suatu simpul ke simpul yang lain.
B. Behavioral Things
B. Behavioral Things
- Merupakan bagian yang dinamis pada Merupakan bagian yang dinamis pada
model UML model UML
- Mencerminkan perilaku sepanjang ruang Mencerminkan perilaku sepanjang ruang
dan waktu. dan waktu.
- Ada 2 macam behavioral things :Ada 2 macam behavioral things :
1. Interaksi 1. Interaksi
Behavioral Things
Behavioral Things
Interaksi Interaksi
- Suatu perilaku yang mencakup himpunan pesan-Suatu perilaku yang mencakup himpunan
pesan-pesan yang diperlukan untuk menyelesaikan suatu pesan yang diperlukan untuk menyelesaikan suatu
fungsi tertentu fungsi tertentu
- Terdiri dari pesan-pesan, urutan aksi (perilaku Terdiri dari pesan-pesan, urutan aksi (perilaku
yang dihasilkan oleh sebuah pesan), link yang dihasilkan oleh sebuah pesan), link
(hubungan antar objek-objek) (hubungan antar objek-objek)
- Secara grafis, pesan digambarkan dengan tanda Secara grafis, pesan digambarkan dengan tanda
Behavioral Things
Behavioral Things
StateState
-- Perilaku yang menspesifikasi unsur kedudukan suatu Perilaku yang menspesifikasi unsur kedudukan suatu objek atau interaksi-interaksi sepanjang waktu dalam
objek atau interaksi-interaksi sepanjang waktu dalam
menanggapi event-event yang terjadi.
menanggapi event-event yang terjadi.
- Penggambaran suatu state memuat beberapa unsur yaitu Penggambaran suatu state memuat beberapa unsur yaitu state itu sendiri, transisi (perubahan dari suatu state ke
state itu sendiri, transisi (perubahan dari suatu state ke
state lainnya), event (suatu keadaan yang memicu
state lainnya), event (suatu keadaan yang memicu
sebuah transisi, serta aktivitas (tanggapan terhadap
sebuah transisi, serta aktivitas (tanggapan terhadap
transisi)
transisi)
- Digambarkan sebagai empat-persegi-panjang yang sudut-Digambarkan sebagai empat-persegi-panjang yang sudut-sudutnya melengkung, yang memuat namanya (serta
sudutnya melengkung, yang memuat namanya (serta
substate didalamnya, jika ada)
C. Grouping Things
C. Grouping Things
- Bagian pengorganisasi dalam UMLBagian pengorganisasi dalam UML
- Dalam penggambaran model UML yang Dalam penggambaran model UML yang
rumit kadang diperlukan penggambaran rumit kadang diperlukan penggambaran
paket yang menyederhanakan model paket yang menyederhanakan model
- Paket berguna bagi pengelompokkan Paket berguna bagi pengelompokkan
sesuatu, misalnya model-model serta sesuatu, misalnya model-model serta
D. Annotational Things
D. Annotational Things
- Bagian yang memperjelas model UMLBagian yang memperjelas model UML
- Dapat berupa komentar yang memperjelas Dapat berupa komentar yang memperjelas
fungsi serta ciri-ciri tiap elemen dalam fungsi serta ciri-ciri tiap elemen dalam
RELATIONSHIP
RELATIONSHIP
- Hubungan-hubungan yang terjadi Hubungan-hubungan yang terjadi
antarelemen dalam UML antarelemen dalam UML
- Ada 4 macam relationship dalam UML, Ada 4 macam relationship dalam UML,
yaitu Dependency, Asosiasi, Generalisasi, yaitu Dependency, Asosiasi, Generalisasi,
Dependency (Kebergantungan)
Dependency (Kebergantungan)
- Hubungan dimana perubahan yang terjadi Hubungan dimana perubahan yang terjadi
pada suatu elemen independen (mandiri) pada suatu elemen independen (mandiri)
akan mempengaruhi elemen yang akan mempengaruhi elemen yang
bergantung padanya (elemen yang tidak bergantung padanya (elemen yang tidak
mandiri – independen). mandiri – independen).
- Secara grafis digambarkan dengan tanda Secara grafis digambarkan dengan tanda
Asosiasi
Asosiasi
- Menghubungkan antara objek satu dengan Menghubungkan antara objek satu dengan
objek yang lainnya; bagaimana hubungan
objek yang lainnya; bagaimana hubungan
suatu objek dengan objek lainnya.
suatu objek dengan objek lainnya.
- Suatu bentuk asosiasi adalah agregasi yang Suatu bentuk asosiasi adalah agregasi yang
menampilkan hubungan suatu objek
menampilkan hubungan suatu objek
dengan bagian-bagiannya.
dengan bagian-bagiannya.
- Secara grafis digambarkan dengan garis Secara grafis digambarkan dengan garis
tegas tanpa tanda panah.
Generalisasi
Generalisasi
- Hubungan dimana objek anak (descendent) Hubungan dimana objek anak (descendent)
berbagi perilaku dan struktur data dari objek yang berbagi perilaku dan struktur data dari objek yang
ada diatasnya (objek induk – ancestor). ada diatasnya (objek induk – ancestor).
- Arah dari atas ke bawah (dari objek induk ke Arah dari atas ke bawah (dari objek induk ke
objek anak disebut spesialisasi) objek anak disebut spesialisasi)
- Arah dari bawah ke atas disebut generalisasiArah dari bawah ke atas disebut generalisasi
- Secara grafis digambarkan sebagai garis yang Secara grafis digambarkan sebagai garis yang
ujungnya berkepala panah (atau bentuk segitiga) ujungnya berkepala panah (atau bentuk segitiga)
Realisasi
Realisasi
- Operasi yang benar-benar dilakukan oleh Operasi yang benar-benar dilakukan oleh
suatu objek suatu objek
- Secara grafis digambarkan dengan tanda Secara grafis digambarkan dengan tanda
panah bergaris putus-putus dengan kepala panah bergaris putus-putus dengan kepala
Diagram
Diagram
Ada 9 jenis diagram, yaitu : Ada 9 jenis diagram, yaitu :
1.
1. Diagram KelasDiagram Kelas
2.
2. Diagram ObjekDiagram Objek
3.
3. Use Case Diagram Use Case Diagram
4.
4. Sequence DiagramSequence Diagram
5.
5. Collaboration DiagramCollaboration Diagram
6.
6. Statechart DiagramStatechart Diagram
7.
7. Activity DiagramActivity Diagram
8.
8. Component DiagramComponent Diagram
9.
Diagram Kelas
Diagram Kelas
- Bersifat StatisBersifat Statis
- Memperlihatkan himpunan kelas-kelas, Memperlihatkan himpunan kelas-kelas,
antarmuka-antarmuka, antarmuka-antarmuka,
Diagram Objek
Diagram Objek
- Bersifat statisBersifat statis
- Memperlihatkan objek-objek serta relasi-Memperlihatkan objek-objek serta
relasi-relasi antarobjek. relasi antarobjek.
- Memperlihatkan instantiasi statis dari Memperlihatkan instantiasi statis dari
segala sesuatu yang dijumpai pada segala sesuatu yang dijumpai pada
Use-Case Diagram
Use-Case Diagram
- Bersifat statisBersifat statis
- Memperlihatkan himpunan use case dan Memperlihatkan himpunan use case dan
aktor-aktor (suatu jenis khusus dari kelas). aktor-aktor (suatu jenis khusus dari kelas).
- Berfungsi mengorganisasi dan Berfungsi mengorganisasi dan
memodelkan perilaku dari suatu sistem memodelkan perilaku dari suatu sistem
yang dibutuhkan dan diharapkan yang dibutuhkan dan diharapkan
Sequence Diagram
Sequence Diagram
- Bersifat dinamisBersifat dinamis
- Diagram yang menekankan pada Diagram yang menekankan pada
pengiriman pesan dalam suatu waktu pengiriman pesan dalam suatu waktu
Collaboration Diagram
Collaboration Diagram
- Bersifat dinamisBersifat dinamis
- Diagram interaksi yang menekankan Diagram interaksi yang menekankan
organisasi struktural dari objek-objek yang organisasi struktural dari objek-objek yang
Statechart Diagram
Statechart Diagram
- Bersifat dinamisBersifat dinamis
- Memperlihatkan state-state pada sistem; Memperlihatkan state-state pada sistem;
memuat state, transisi, event, serta memuat state, transisi, event, serta
aktivitas. aktivitas.
- Memperlihatkan sifat dinamis dari Memperlihatkan sifat dinamis dari
antarmuka, kelas, kolaborasi dan terutama antarmuka, kelas, kolaborasi dan terutama
penting pada pemodelan sistem-sistem penting pada pemodelan sistem-sistem
Activity Diagram
Activity Diagram
- Bersifat dinamisBersifat dinamis
- Memperlihatkan aliran dari suatu aktivitas Memperlihatkan aliran dari suatu aktivitas
ke aktivitas lainnya dalam suatu sistem. ke aktivitas lainnya dalam suatu sistem.
- Memodelkan fungsi-fungsi dalam suatu Memodelkan fungsi-fungsi dalam suatu
sistem dan memberi tekanan pada aliran sistem dan memberi tekanan pada aliran
Component Diagram
Component Diagram
- Bersifat statisBersifat statis
- Memperlihatkan organisasi serta Memperlihatkan organisasi serta
kebergantungan pada kebergantungan pada
komponen-komponen yang telah ada sebelumnya komponen yang telah ada sebelumnya
Deployment Diagram
Deployment Diagram
- Bersifat statisBersifat statis
- Memperlihatkan konfigurasi saat aplikasi Memperlihatkan konfigurasi saat aplikasi
dijalankan (saat runtime).
dijalankan (saat runtime).
- Memuat node beserta komponen-komponen Memuat node beserta komponen-komponen
yang ada didalamnya
yang ada didalamnya
- Berhubungan dengan diagram komponen Berhubungan dengan diagram komponen
dimana deployment diagram memuat satu
dimana deployment diagram memuat satu
atau lebih komponen-komponen
Langkah-langkah
Langkah-langkah
Penggunaan UML (1)
Penggunaan UML (1)
Buatlah daftar business process dari level tertinggi untuk Buatlah daftar business process dari level tertinggi untukmendefinisikan aktivitas dan proses yang mungkin muncul. mendefinisikan aktivitas dan proses yang mungkin muncul.
Petakan use case untuk tiap business process untuk mendefinisikan Petakan use case untuk tiap business process untuk mendefinisikan
dengan tepat fungsionalitas yang harus disediakan oleh sistem. dengan tepat fungsionalitas yang harus disediakan oleh sistem.
Kemudian perhalus use case diagram dan lengkapi dengan Kemudian perhalus use case diagram dan lengkapi dengan
requirement, constraints dan catatan-catatan lain. requirement, constraints dan catatan-catatan lain.
Buatlah deployment diagram secara kasar untuk mendefinisikan Buatlah deployment diagram secara kasar untuk mendefinisikan
arsitektur fisik sistem. arsitektur fisik sistem.
Definisikan requirement lain (non-fungsional, security dan Definisikan requirement lain (non-fungsional, security dan
sebagainya) yang juga harus disediakan oleh sistem. sebagainya) yang juga harus disediakan oleh sistem.
Langkah-langkah
Langkah-langkah
Penggunaan UML (2)
Penggunaan UML (2)
Definisikan objek-objek level atas (package atau domain) dan buatlah Definisikan objek-objek level atas (package atau domain) dan buatlah
sequence dan/atau collaboration diagram untuk tiap alir pekerjaan. Jika
sequence dan/atau collaboration diagram untuk tiap alir pekerjaan. Jika
sebuah use case memiliki kemungkinan alir normal dan error, buatlah satu
sebuah use case memiliki kemungkinan alir normal dan error, buatlah satu
diagram untuk masing-masing alir.
diagram untuk masing-masing alir.
Buarlah rancangan user interface model yang menyediakan antarmuka bagi Buarlah rancangan user interface model yang menyediakan antarmuka bagi
pengguna untuk menjalankan skenario use case.
pengguna untuk menjalankan skenario use case.
Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap
package atau domain dipecah menjadi hirarki class lengkap dengan atribut
package atau domain dipecah menjadi hirarki class lengkap dengan atribut
dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit test
dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit test
untuk menguji fungsionalitas class dan interaksi dengan class lain.
untuk menguji fungsionalitas class dan interaksi dengan class lain.
Setelah class diagram dibuat, kita dapat melihat kemungkinan Setelah class diagram dibuat, kita dapat melihat kemungkinan
pengelompokan class menjadi komponen-komponen. Karena itu buatlah
pengelompokan class menjadi komponen-komponen. Karena itu buatlah
component diagram pada tahap ini. Juga, definisikan tes integrasi untuk
component diagram pada tahap ini. Juga, definisikan tes integrasi untuk
setiap komponen meyakinkan ia berinteraksi dengan baik.
Langkah-langkah
Langkah-langkah
Penggunaan UML (3)
Penggunaan UML (3)
Perhalus deployment diagram yang sudah dibuat. Detilkan Perhalus deployment diagram yang sudah dibuat. Detilkankemampuan dan requirement piranti lunak, sistem operasi, jaringan, kemampuan dan requirement piranti lunak, sistem operasi, jaringan,
dan sebagainya. Petakan komponen ke dalam node. dan sebagainya. Petakan komponen ke dalam node.
Mulailah membangun sistem. Ada dua pendekatan yang dapat Mulailah membangun sistem. Ada dua pendekatan yang dapat
digunakan digunakan
- Pendekatan use case, dengan meng-assign setiap use case - Pendekatan use case, dengan meng-assign setiap use case
kepada tim pengembang tertentu untuk mengembangkan unit code kepada tim pengembang tertentu untuk mengembangkan unit code
yang lengkap dengan tes. yang lengkap dengan tes.
- Pendekatan komponen, yaitu meng-assign setiap komponen - Pendekatan komponen, yaitu meng-assign setiap komponen
kepada tim pengembang tertentu. kepada tim pengembang tertentu.
Lakukan uji modul dan uji integrasi serta perbaiki model berserta Lakukan uji modul dan uji integrasi serta perbaiki model berserta
codenya. Model harus selalu sesuai dengan code yang aktual codenya. Model harus selalu sesuai dengan code yang aktual
Latihan
Latihan
1. Apakah yang dimaksud dengan interaksi dalam 1. Apakah yang dimaksud dengan interaksi dalam
UML? UML?
2. Apakah yang dimaksud dengan state dalam 2. Apakah yang dimaksud dengan state dalam
UML? UML?
3. Fungsi dari usecase diagram adalah? 3. Fungsi dari usecase diagram adalah?
4. Apa yang dimaksud dengan statechart diagram?4. Apa yang dimaksud dengan statechart diagram?
5. Diagram apakah yang menekankan pada aliran 5. Diagram apakah yang menekankan pada aliran
Latihan
Latihan
6. Apa yang dimaksud dengan depedency?6. Apa yang dimaksud dengan depedency?
7. Gambarkan simbol depedency!7. Gambarkan simbol depedency!
8. Apa yang dimaksud dengan generalisasi 8. Apa yang dimaksud dengan generalisasi
dalam UML? dalam UML?
9. Apakah yang dimaksud dengan sequence 9. Apakah yang dimaksud dengan sequence
diagram? diagram?
10. Apa yang dimaksud dengan Component 10. Apa yang dimaksud dengan Component