dari concept map ke class diagram - rehat with … sistem harus terdiri dari modul yang dibungkus...
TRANSCRIPT
CLASS MODEL
- Sebuah CLASS menjelaskan tentang sekumpulan objek yang mempunyai fungsi yang sama dalam sebuah sistem
- Setiap objek terbuat dari CLASS- CLASS adalah benda-benda di dunia nyata: Projek, Nilai
- CLASS adalah fungsi: Pegawai, Pegawai Paruh Waktu- CLASS adalah kejadian: Pengalokasian, Penilaian
- CLASS adalah interaksi: Rapat, Diskusi
CLASS MODEL YANG BAGUS
- Membangun sebuah sistem secepat dan semurah mungkin untuk memenuhi keperluan saat ini
- Setiap sifat dan tingkah laku yang diperlukan oleh sistem harus disediakan oleh objek-objek yang diikutkan
- Membangun sistem yang mudah untuk diperbaiki dan beradaptasi terhadap keperluan masa depan
- Sistem harus terdiri dari modul yang dibungkus (enkapsulasi) dengan tingkat coupling yang rendah dan cohesion yang tinggi. (Coupling: ukuran seberapa jauh suatu modul/fungsi tergantung pada modul/fungsi yang lainnya, Cohesion: seberapa kuatnya
hubungan antar modul/fungsi yang ada)
ATTRIBUTE
- Suatu ATTRIBUTE adalah sebuah nilai data logical dari suatu object
-ATTRIBUTE dalam suatu CLASS MODEL haruslah ATTRIBUTE sederhana atau pure data values, seperti: Boolean, Date,
Number, String (tipe ATTRIBUTE) atau Name, Address, Colour, Size, Status (typical ATTRIBUTE)
- ATTRIBUTE tidak boleh berupa FOREIGN KEY
ASSOCIATION- ASSOCIATION terkait dengan KATA KERJA
- Mengekspresikan hubungan antar class- LINKS merupakan suatu contoh dari ASSOCIATION
- CLASS A dan CLASS B terasosiasi apabila:a. Suatu objek CLASS A mengirim pesan kepada objek CLASS B
b. Suatu objek CLASS A membuat objek CLASS Bc. Suatu objek CLASS A mempunyai ATTRIBUTE yang nilanya
adalah objek CLASS B atau COLLECTION objek CLASS Bd. Suatu objek CLASS A menerima pesan dengan objek CLASS B
sebagai ARGUMENT
SUBTYPES/SUPERTYPES
- Suatu definisi SUPERTYPE adalah lebih umum daripada suatu definisi SUBTYPE- Semua instances (objek) dari suatu
SUBTYPE adalah merupakan instances dari himpunan SUPERTYPE-nya
- Contoh: Seorang PEGAWAI PARUH WAKTU juga merupakan seorang PEGAWAI
Pegawai Paruh Waktu
Pegawai
SUBTYPES/SUPERTYPES- Membuat suatu SUBTYPE dari suatu SUPERTYPE bila:
a. SUBTYPE mempunyai ATTRIBUTE tambahan yang diperlukanb. SUBTYPE mempunyai ASSOCIATION tambahan yang
diperlukanc. CONCEPT SUBTYPE dioperasikan, dihandle, bereaksi pada,
atau dimanipulasi secara berbeda dari SUPERTYPE atau SUBTYPE yang lain, yang memang perlu mendapat perhatian
d. SUBTYPE merepresentasikan objek dinamis yang bertingkah laku berbeda dari SUPERTYPE atau SUBTYPE yang lain- Hal-hal di atas harus dipikirkan dalam konteks domain
permasalahan
CLASS ABSTRACT- Apabila setiap anggota/bagian dari suatu SUPERTYPE CLASS adalah merupakan anggota/bagian dari SUBTYPE di bawahnya, maka SUPERTYPE CLASS tersebut disebut dengan CLASS TIPE
ABSTRACT
Pegawai Paruh Waktu
Pegawai
Pegawai Full Time
MULTIPLICITIES
- Multiplicities mengilustrasikan seberapa banyak instances (objek) suatu CLASS yang dapat diasosiasikan dengan satu
instance (objek) CLASS yang lainnya, pada suatu waktu tertentu- Contoh: suatu objek CLASS PROJEK dapat dialokasikan pada
beberapa objek CLASS PEGAWAI PARUH WAKTU
Pegawai Paruh Waktu Projek
* 1dialokasikan
AGGREGATION- Aggregation adalah suatu tipe asosiasi untuk pemodelan
hubungan menyeluruh (whole-part)- Aggregation adalah cara untuk mencatat bahwa suatu objek
merupakan suatu bagian dari objek CLASS yang lain
- Sebagai catatan, suatu objek dapat juga secara simultan merupakan bagian dari beberapa objek yang lain.
Projek Sub Projek
1 1..*
Projek Sub Projek
1..* *
COMPOSITION- Composition merupakan suatu tipe khusus dari Aggregation- Dalam sebuah composition, bagian induk (whole) memiliki
keseluruhan anak (bagian)-nya. Kalau objek whole dikopi atau di-delete, semua bagiannya juga dikopi atau di-delete
- Multiplicity pada whole end-nya haruslah 1 atau 0..1, yang artinya suatu bagian tidak bisa menjadi bagian lebih dari satu
whole secara Composition- Composition diperlihatkan seperti Aggregation, kecuali bagian
diamonnya terisi
Projek Sub Projek
1 *
ATURAN KONVERSI
Aturan-aturan dalam mengkonversi CONCEPT MAP menjadi CLASS DIAGRAM:
- Aturan 1: Petakan CONCEPT ke CLASS- Aturan 2: Petakan CONCEPT ke ATTRIBUTE CLASS
- Aturan 3: Petakan LINK ke ASSOCIATION- Aturan 4. Petakan LINK ke HIRARKI GENERALIZATION –
SPECIALIZATION- Aturan 5: Petakan CONCEPT ke SUPERTYPE ATTRIBUTE- Aturan 6: Petakan LINK ke REFLECTIVE ASSOCIATION
COMPLETE CONCEPT MAP
CASE STUDY: Complete CONCEPT MAP untuk melakukan pengalokasian PROJEK pada PEGAWAI PARUH WAKTU
Perusahaan
Pegawai
Nama No Pegawai
mengelola data
has has
Projek
Nama No Projek
mengelola data
has has
Pegawai Paruh Waktu
is-a-type-of
Nama No Pegawai
has has
Upah per Jam
has
ditugasiAlokasi Projek
deadline
has
mengelola data
dialokasikan
ATURAN 1Petakan CONCEPT ke CLASS
Perusahaan
Pegawai
mengelola dataPerusahaan
Link LabelAttribute Knows/hasGeneralization - Specialization Is/is-a-type-a/is-a-kind-of/is-a
ATURAN 2Petakan CONCEPT ke ATTRIBUTE CLASS
Link LabelAttribute Knows/hasGeneralization - Specialization Is/is-a-type-a/is-a-kind-of/is-a
Pegawai
Nama No Pegawai
has has -Nama-No Pegawai
Pegawai
ATURAN 3
Petakan LINK ke ASSOCIATIONPerusahaan
-Nama-No Pegawai
Pegawai
mengelola data
Perusahaan
Pegawai
Nama No Pegawai
mengelola data
has has
Link LabelAttribute Knows/hasGeneralization - Specialization Is/is-a-type-a/is-a-kind-of/is-a
ATURAN 4Petakan LINK ke HIRARKI GENERALIZATION -
SPECIALIZATIONPegawai
Pegawai Paruh Waktu
Pegawai
Pegawai Paruh Waktu
is-a-type-of
Link LabelAttribute Knows/hasGeneralization - Specialization Is/is-a-type-a/is-a-kind-of/is-a
ATURAN 5Petakan CONCEPT ke SUPERTYPE ATTRIBUTE
Pegawai
Nama No Pegawai
has has
Pegawai Paruh Waktu
is-a-type-of
Nama No Pegawai
has has
Upah per Jam
has
-Nama-No Pegawai
Pegawai
-Upah per JamPegawai Paruh Waktu
Link LabelAttribute Knows/hasGeneralization - Specialization Is/is-a-type-a/is-a-kind-of/is-a
ATURAN 6Petakan LINK ke REFLECTIVE ASSOCIATION
-Nama-No Pegawai
Pegawai
mengelola
Pegawai
Nama No Pegawai
has has
mengelola
Link LabelAttribute Knows/hasGeneralization - Specialization Is/is-a-type-a/is-a-kind-of/is-a
COMPLETE CLASS DIAGRAM
Complete CLASS DIAGRAM yang sudah
dilengkapi dengan Multiplicity
Perusahaan
-Nama-No Pegawai
Pegawai
-Upah per JamPegawai Paruh Waktu
-Nama-No Projek
Projek
-dialokasikan*
*
-mengelola
1 *
-mengelola1
*-mengelola 1
*
-deadlineAlokasi Projek
Notation: Class Diagram- Untuk menyatakan bahwa suatu class adalah suatu interface
ditandai dengan <<interface>> di atas nama interface- Untuk menyatakan bahwa suatu class adalah class abstract
ditandai dengan <<abstract>> di atas nama class- Untuk menandai bahwa suatu method dalam suatu class adalah
suatu constructor ditandai dengan <<constructor>> di depan deklarasi method
- Untuk menandai bahwa suatu method adalah suatu method abstract ditandai dengan <<abstract>> di depan deklarasi method
- Modifiers dilambangkan seperti berikut ini: public (+), protected (#), private (-), dan package (~)
Sebuah Class Diagram Lengkap
Satu contoh design class diagram lengkap dengan nama class, attribute (+ tipe
attribut dan modifiers) dan method
(+parameter & tipenya, return type,
dan modifiers)
+AlokasiProjek()+AlokasiProjek(in aProject : Projek, in aPegawai : Pegawai)+setPegawai(in aPegawai : Pegawai)+setProjek(in aProject : Projek)+setDeadline(in aDeadline : Date)+getPegawai() : Pegawai+getProject() : Projek+getDeadline() : Date
-pegawai : Pegawai-projek : Projek-deadline : Date
AlokasiProjek
CASE STUDY I
Admin bermaksud melakukan input data evaluasi penyelesaian projek pegawai paruh waktu dalam hal waktu penyelesaian projek dan kualitas hasil pengerjaan projek. Admin juga menginputkan note (catatan) terhadap hasil evaluasi yang dilakukan. Proses
input data dilakukan dengan memanfaatkan data pegawai (termasuk pegawai paruh waktu), data projek, dan pengalokasian
projek yang telah dilakukan sebelum proses ini dilakukan.
CASE STUDY IISeorang pegawai paruh waktu bermaksud melakukan input data timesheet harian projek yang menjadi tanggung jawabnya. Data timesheet mencakup jam mulai kerja, jam selesai kerja, diskripsi pekerjaan hari yang bersangkutan, dan % progress pengerjaan
projek dari perspektif pegawai tersebut. Dalam proses ini, sistem juga secara otomatis mengisi data % progress pengerjaan projek yang dihitung dari jumlah waktu pengerjaan yang telah dilalui dibandingkan dengan DEADLINE pengerjaan projek yang telah ditambahkan pada data projek. Proses input data dilakukan
dengan memanfaatkan data pegawai (termasuk pegawai paruh waktu), data projek, dan pengalokasian projek yang telah
dilakukan sebelum proses ini dilakukan.