Anda di halaman 1dari 17

MODUL 3 OBJECT ORIENTED DESIGN (OOD) Tujuan Pembelajaran : 1. Memahami proses perancangan suatu sistem. 2.

Mampu merancang sistem dan merepresentasikannya secara grafis ke dalam bentuk UML Diagram. 3. Mampu 4. Dapat memahami Memahami dan dan menggambarkan menggambarkan Activity Sequence Diagram, diagram, serta serta menjelaskan alir aktivitas dalam sistem yang sedang dirancang menjelaskan interaksi antar objek di dalam dan di sekitar sistem. 5. Dapat mengilustrasikan kelas, interface, dan hubungannya ke dalam Class Diagram. 6. Dapat menggambarkan sebuah sistem pada sebuah sudut pandang waktu tertentu menggunakan Object Diagram. 7. Mampu memahami dan menggambarkan Deployment Diagram I. Landasan Teori Perancangan sistem informasi yang akan dilakukan akan memberikan gambaran rancang bangun yang representatif dari aplikasi sistem yang akan dibuat, sehingga nantinya dapat menjadi pedoman atau referensi dalam pengembangan aplikasi. Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar, namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam sistem. Perancangan sistem yang aplikatif dibuat dengan mempertimbangkan analisis sistem yang telah dilakukan sebelumnya. Perancangan untuk semua komponen sistem informasi yang terkomputerisasi (hardware, software, data, prosedur dan manusia) dilakukan secara iterasi sesuai dengan spesifikasi kebutuhan sistem. Dalam perancangan ini, informasi-informasi dalam suatu model sistem direpresentasikan secara grafis dalam bentuk diagram. UML terdiri atas

23

pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 9 diagram, yaitu; use-case, class, object, state, sequence, collaboration, activity, component, dan deployment diagram. 1.1. Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. 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 prosesproses 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.

Contoh aktifitas Paralel : Aliran kerja perakitan komputer: Siapkan case

24

Siapkan motherboard Install motherboard Install driver Install video card, sound card dan modem

Untuk menyatakan aktifitas paralel dalam activity diagram, gunakan fork dan join.

Gambar 1 Activity Diagram (Aktifitas Paralel) Contoh activity diagram tanpa swimlane:

Gambar 2 Activity Diagram tanpa Swimlane Contoh aktifitas yg memakai swimline :

25

Gambar 3 Activity Diagram menggunakan Swimlane 1.2. Sequence Diagram Sequence Diagram merupakan salah satu tipe diagram interaksi. Sequence Diagram digunakan untuk memodelkan interaksi objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan Sequence diagram memiliki 2 komponen utama, yaitu active objects dan komunikasi antara active objects. Active object merupakan semua objek yang berperan di dalam sistem baik berupa instansi objek maupun aktor. Messages pada sequence diagram berfungsi untuk memperlihatkan aliran antara objek, interaksi antar objek dan kondisi-kondisi apa saja yang bisa mengubah aliran tersebut.

Elemen-elemen pada sequene diagram :

26

1. Action Menggambarkan aksi yang dilakukan oleh aktor, objek atau unit

Gambar 4 Elemen Action 2. Lifeline Menggambarkan daur hidup sebuah obyek. Notasi untuk Lifeline adalah garis putus-putus vertikal yang ditarik dari sebuah obyek.

Gambar 5 Elemen Lifeline 3. Activation Suatu titik waktu dimana sebuah obyek mulai berpartisipasi didalam sebuah sequence. Ditandai dengan sebuah bar.

Gambar 6 Elemen Activation 4. Time Merupakan elemen penting dalam sequence diagram, konteksnya adalah urutan, bukan durasi. 5. Asynchronous Message Digunakan ketika aliran tidak perlu diganggu sebelum selesai.

Gambar 7 Elemen Asynchronous Message 6. Destroy Element Destruksi header element

Gambar 8 Elemen Destroy

7. Destroy Message

27

Destruksi header element sebagai lanjutan prosedur dari elemen lain.

Gambar 9 Elemen Destroy Message 8. Message Message sederhana antar elemen.

Gambar 10 Elemen Message 9. Return Message Merupakan suatu hasil kembalian sebuah operasi. Operasi mengembalikan hasil, tetapi boleh tidak ditulis jika tidak ada perbedaan dengan Getter-nya

Gambar 11 Elemen Return Message Cara memodelkan sequence diagram Tahap-tahap untuk membuat sequence diagram adalah sebagai berikut : 1. Tentukan aliran kerja (workflow) yang akan dimodelkan. 2. Layout objects (atur letak objek) dari kiri ke kanan. 3. Tambahkan message dan kondisi (condition) pada setiap aliran kerja (worflow) Contoh : 1. Tentukan workflow Langkah pertama dalam memodelkan sequence diagram adalah menentukan workflow yang akan dimodelkan. Pada contoh ini, model yang akan dibuat berasal dari use case kegiatan View Grades (melihat nilai) pada Grading System (sistem penilaian). Dalam hal ini, kemungkinan pada workflow yang dimodelkan adalah Guru dapat melihat nilai para siswa

2. Layout objects

28

Tahap selanjutnya adalah menggambarkan aktor dan objek yang ada secara berurutan dari kiri ke kanan.

Gambar 12 Layout objects

3. Menambahkan messages dan condition Gambarkan setiap workflow sebagai diagram-diagram yang terpisah. Mulai dengan workflow utama, dimana Teacher dapat melihat nilai siswa dengan sukses. Sequence diagram-nya dapat dilihat pada gambar berikut.

Gambar 13 Penambahan message & condition

1.3. Class Diagram

29

Class Diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah obyek dan merupakan inti dari pengembangan dan desain berorientasi obyek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan object beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Sebuah Class memiliki tiga area pokok : 1. Nama, merupakan nama dari sebuah kelas
2. Atribut, merupakan peroperti dari sebuah kelas. Atribut melambangkan

batas nilai yang mungkin ada pada obyek dari class


3. Operasi, adalah sesuatu yang bisa dilakukan oleh sebuah class atau yang

dapat dilakukan oleh class lain terhadap sebuah class. 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. Package, hanya dapat dipanggil oleh instance sebuah class pada paket yang

sama. Berikut adalah notasi notasi yang ada pada class diagram : Tabel 1 Notasi Class Diagram Class Class adalah blok - blok pembangun pada pemrograman berorientasi obyek. Sebuah class digambarkan sebagai sebuah kotak yang terbagi atas 3 bagian. Bagian atas adalah bagian nama dari class. Bagian tengah mendefinisikan property/atribut class. Bagian akhir mendefinisikan methodmethod dari sebuah class. Sebuah asosiasi merupakan sebuah relationship

Assosiation

30

Composition

Dependency

Aggregation

Generalizati on

paling umum antara 2 class, dan dilambangkan oleh sebuah garis yang menghubungkan antara 2 class. Garis ini bisa melambangkan tipe-tipe relationship dan juga dapat menampilkan hukum-hukum multiplisitas pada sebuah relationship (Contoh: One-to-one, one-to-many, many-to-many). Jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka class tersebut memiliki relasi Composition terhadap class tempat dia bergantung tersebut. Sebuah relationship composition digambarkan sebagai garis dengan ujung berbentuk jajaran genjang berisi/solid. Kadangkala sebuah class menggunakan class yang lain. Hal ini disebut dependency. Umumnya penggunaan dependency digunakan untuk menunjukkan operasi pada suatu class yang menggunakan class yang lain. Sebuah dependency dilambangkan sebagai sebuah panah bertitik-titik. Aggregation mengindikasikan keseluruhan bagian relationship dan biasanya disebut sebagai relasi mempunyai sebuah atau bagian dari. Sebuah aggregation digambarkan sebagai sebuah garis dengan sebuah jajaran genjang yang tidak berisi/tidak solid. Sebuah relasi generalization sepadan dengan sebuah relasi inheritance pada konsep berorientasi obyek. Sebuah generalization dilambangkan dengan sebuah panah dengan kepala panah yang tidak solid yang mengarah ke kelas parent-nya/induknya.

31

Gambar 14 Contoh Class Diagram Diagram diatas mempunyai 2 kelas, yaitu kelas binatang dan kelas manusia. Masing-masing kelas memiliki atribut dan operasi. Selain itu pada gambar 2.14 juga terdapat konsep inheritansi kelas, yaitu pada kelas binatang, yang inheritansinya diterapkan kepada kucing dan burung. 1.3.1 Relasi pada Class Diagram Relasi atau relationship merupakan keterhubungan antar kelas yang muncul pada saat sebuah kelas berinteraksi dengan kelas-kelas lainnya. Didalam class diagram, setiap kelas pasti akan berinteraksi dengan baik satu maupun lebih kelas. Relasi yang muncul pada setiap keterhubungan antar kelas juga akan memiliki atribut-atribut yang akan lebih menjelaskan definisi dari sebuah relasi yang terjadi.
a. Association (asosiasi).

Kita menggunakan pemahaman asosiasi adalah pada saat beberapa kelas saling terhubung satu sama lain secara konseptual. Sebagai contoh, misalkan seorang pegawai bekerja pada sebuah perusahaan. Maka bekerja merupakan sebuah asosiasi antara kelas pegawai dan kelas perusahaan. Contoh yang lain kita misalkan seorang mahasiswa mendaftar sebuah kursus, maka jelas sekali disini bahwa asosiasi yang muncul adalah mendaftar. Selanjutnya bisa kita simpulkan bahwa sebuah asosiasi bisa merupakan sebuah bentuk kata kerja yang merelasikan kelas yang satu dengan kelas yang lainnya. Gambar 2.15 berikut menunjukkan bagaimana visualisasi sebuah asosiasi.

Gambar 15. Contoh sebuah asosiasi Asosiasi juga dapat menjadi lebih kompleks pada saat beberapa class terhubung ke satu class, seperti yang terlihat pada gambar 2.16 berikut.

32

Gambar 16. Contoh asosiasi lebih dari 2 class b. Multiplicity. Multiplicity atau multiplisitas adalah jumlah banyaknya obyek sebuah class yang berelasi dengan sebuah obyek lain pada class lain yang berasosiasi dengan class tersebut. Untuk menyatakan multiplisitas anda dapat meletakkannya diatas garis asosiasi berdekatan dengan class yang sesuai. Anda dapat melihat contohnya pada gambar 2.17. Ada banyak multiplisitas yang mungkin untuk dipakai. Tabel berikut menjabarkan multiplisitas yang dapat digunakan. Tabel 2 Multiplicity

Gambar 17. Asosiasi dengan multiplisitas 1.3.2 Generalization & Inheritance. Sebuah class (child class atau subclass) dapat mewarisi atribut-atribut dan operasioperasi dari class lainnya (parent class atau super class) dimana parent class bersifat lebih umum daripada child class.

33

Generalisasi pada konsep Object Oriented digunakan untuk menjelaskan hubungan kesamaan diantara class. Dengan menggunakan generalisasi bisa dibangun struktur logis yang bisa menampilkan derajat kesamaan atau perbedaan diantara class-class. Manfaat lain dari struktur hirarkis juga memungkinkan untuk penambahan subclass (child class) baru tanpa harus merubah struktur yang sudah ada.

Gambar 18. Generalisasi dengan 3 subclass Inheritance adalah sebuah mekanisme pengimplementasian generalisasi dan spesialisasi. Aturan inheritance dapat secara umum bisa diklasifikasikan sebagai berikut

Subclass selalu mewarisi semua sifat dari superclass-nya. Definisi subclass selalu mencakup paling tidak satu detil yang tidak diturunkan dari superclass-nya. Inheritance sangat dekat dengan asosiasinya dengan generalisasi.

Generalisasi menjelaskan hubungan logis antar elemen-elemen yang mempunyai karakteristik yang sama. Sedangkan inheritance menerangkan mekanisme agar bagi pakai (sharing) bisa terjadi. 1.3.3 Agregasi Didalam UML, ada relasi dengan perlakukan khusus yang disebut dengan bagian dari (part of) yang menangani antar obyek-obyek dimana salah satunya

34

adalah bagian dari yang lain. Dengan kata lain sebuah obyek terdiri atas obyekobyek yang lain. Hal seperti ini di dalam UML disebut Agregasi. Sebuah agregasi adalah kasus khusus dari asosiasi. Agregasi disimbolkan dengan jajaran genjang yang diletakkan pada class yang mengandung obyek.

Gambar 19. Agregasi 1.4. Object Diagram Object diagram adalah diagram yang memberikan gambaran model instanceinstance dari sebuah class. Diagram ini digunakan untuk menggambarkan sebuah sistem pada sebuah sudut pandang waktu tertentu. Dengan menggunakan diagram ini anda dapat memeriksa keabsahan kelas-kelas diagram berikut aturan-aturan multiplisitasnya dengan real data dan mengujinya dengan skenario-skenario tertentu. Notasi diagramnya dapat anda lihat pada tabel 2.3. Tabel 3. Notasi Object Diagram Obyek Obyek-obyek diidentifikasikan dengan cara meletakkan nama instance-nya kemudian diikuti oleh tanda titik dua didepan nama class-nya. Nilai Property /atribut dituliskan berpasangan seperti nama_atribut=nilai. Sedangkan notasi sebuah obyek digambarkan segi empat yang terbagi atas 2 bagian. Association Object diagram juga dapat mengandung asosiasi. Biasanya constraint, detil relationship, multiplisitas yang ada di class diagram tidak disertakan dalam object diagram sebagai upaya memfokuskan perhatian hanya terhadap obyek dan property/atributnya. Asosiasi antar 2 obyek biasanya dinotasikan dengan sebuah

35

garis yang menghubungkan kedua obyek. Berikut adalah contoh sebuah object diagram dari relasi antar class

Gambar 20. Contoh Object Diagram Tabel 4 Perbedaan Class dan Object Diagram Class Diagram Object Diagram Class memiliki 3 bagian : nama, atribut, Object hanya memiliki 2 bagian : nama dan operasi dan atribut Nama class berdiri sendiri didalam Format untuk nama objecy adalah nama bagian nama class object, titik dua, nama class (1234:Order), dengan semua ekspresi digarisbawahi. Kamu akan menemukan notasi ini dalam digram-diagram lain yang memodelkan objek-objek daripada kelas-kelas. Bagian atribut class mendefinisikan Object hanya mendefinisikan nilai property dari atribut sekarang dari setiap atribut untuk di tes atau contoh untuk dijadikan model Operasi-operasi di-list di dalam class Operasi tidak termasuk dalam object karena object akan menjadi serupa untuk setiap object dari class yang sama Class dihubungkan dengan asosiasi Object dihubungkan dengan sebuah link dengan sebuah nama, multiplicity, yang memiliki nama dan tidak memilki constraint, dan roles. Class mewakili multiplicity. Object mewakili kesatua sebuah klasifikasi dari object, jadi (entity) tunggal. Semua link adalah oneclass dibutuhkan untuk menentukan to-one, jadi multiplicity tidak relevan. berapa banyak yang berpatisipasi dalam asosiasi. Perbedaan lain antara Class diagram dan Object diagram Object diagram digunakan untuk menganalisis object dalam ruang lingkup masalah untuk menentukan kebutuhan definisi class.
Setelah Class diagram telah dikembangkan, Object diagram digunakan

untuk menguji Class diagram


Object diidentifikasi dengan nama dalam bentuk nama-object: nama-class.

Nama object dapat dihilangkan untuk mengindikasi object tanpa nama.

36

Ikon object terdiri dari 2 bagian, satu untuk nama dan satu lagi untuk

atribut. Atribut dideskripsikan dengan nama dan nilai sekarang.


Operasi tidak terdapat pada object karena setiap object dari class yang sama

akan memiliki operasi yang serupa, menciptakan redundancy pada model.


Object dihubungkan dengan sebuah link yang memiliki nama dan tidak

memilki multiplicity. Object mewakili kesatuan (entity) tunggal. Semua link adalah one-to-one, jadi multiplicity tidak relevan 1.5. Deployment Diagram Deployment diagram menunjukkan tata letak sebuah sistem secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware yang digunakan untuk mengimplementasikan sebuah sistem dan keterhubungan antara komponen-komponen hardware tersebut. Deployment diagram dapat digunakan pada bagian-bagian awal proses perancangan sistem untuk mendokumentasikan arsitektur fisik sebuah sistem. Berikut adalah notasi-notasi yang digunakan pada deployment diagram : Tabel 5. Notasi Deployment Diagram Component Pada deployment diagram, komponen-komponen yang ada diletakkan didalam node untuk memastikan keberadaan posisi mereka. Node Node menggambarkan bagianbagian hardware dalam sebuah sistem. Notasi untuk node digambarkan sebagai sebuah kubus 3 dimensi. Sebuah association digambarkan sebagai sebuah garis yang menghubungkan dua node yang mengindikasikan jalur komunikasi antara elementelemen hardware.

Association

37

Berikut adalah contoh sebuah deployment diagram :

Gambar 21. Contoh Deployment Diagram 1.6. User Interface User interface adalah cara program dan user berkomunikasi. Istilah user interface atau interface kadang-kadang digunakan sebagai pengganti istilah HCI (Human Computer Interaction). UserInterface berfungsi untuk menghubungkan atau penterjemah informasi antara pengguna dengan ssstem operasi, sehingga komputer dapat digunakan. Berikut contoh dari User Interface.

Gambar 22. Contoh User Interface II. Kegiatan Kelompok 1. Buat Activity dan Sequence Diagram setiap use case berdasarkan use case diagram yang telah dibuat pada modul sebelumnya. 2. System yang diamati. Tentukan Class dan Object berdasarkan Scenario

38

3. beserta hubungannya. 4. yang telah dirancang. 5. diamati. 6.

Rancang Class Diagram pada sistem yang diamati

Buat Object Diagram berdasarkan class diagram

Tentukan deployment diagram untuk sistem yang

Rancang User Interface untuk sistem yang diamati.

39