OBJECT ORIENTED PROGRAMMING OOP Program Pascasarjana PPs Universitas
OBJECT ORIENTED PROGRAMMING (OOP) Program Pascasarjana (PPs) Universitas Putra Indonesia “YPTK” Dr. Ir. Sumijan, M. Sc soe@upiyptk. org / sumijan@upiyptk. ac. id
A. PENGERTIAN UML • • • UML = Unified Modelling Language Sebuah “Bahasa" yg menjadi standart untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak Membuat model untuk semua jenis aplikasi piranti lunak Aplikasi tersebut dapat berjalan pada semua perangkat keras, semua sistem operasi, jaringan serta dapat ditulis dalam semua bahasa pemrograman Karena UML menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek seperti PHP, C++, Java, C# atau VB. NET. UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam bahasa basic atau C.
B. DEFINISI UML • Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. • Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. • Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. • Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering).
C. SEJARAH UML (OMT) (OOD) (OOSE) Th 1994. Munculnya tokoh pelopor (Booch, Rumbough dan Jacobson) Th 1995. Direlease draft pertama UML (versi 0. 8) Th 1996. Pengkoordinasian oleh Object Management Group (OMG) Th 1997. Munculnya UML (versi 1. 1) Th 1999. Penyusunan 3 buku UML oleh (Booch, Rumbough dan Jacobson) Th 1999. UML menjadi standart bahasa permodelan berorientasi objek Th 2003. Direlease UML versi 1. 5 Th 2004 direlease UML Versi 2. 0 (masih dalam pengembangan)
D UML Versi 1. 5 Terdiri dari 9 diagram 1. Use case diagram 2. Class diagram 3. Object diagram 4. Statechart diagram 5. Activity diagram 6. Sequence diagram 7. Collaboration diagram 8. Component diagram 9. Deployment diagram UML Versi 2. 0 Masih dalam Pengembangan
E. Categories of UML Diagrams • Berdasarkan model, UML Logikal & Physical • Berdasarkan sifatnya, UML Static(structural) & Dinamic (Behaviour) Static (Structural) Dynamic Logical Model 1. Class Diagram 2. Object Diagram 1. 2. 3. 4. 5. Physical Model 1. Component Diagram 2. Deployment Diagram Use Case Diagram Sequence Diagram Collaboration Diagram State Chart Diagram Activity Diagram
F. Konsep class • • Mewakili sebuah benda atau barang ( kata benda) misalnya : mahasiswa, pelanggan, kendaraan Class Diagram Format and sample class: Package: : Class Person visibility attribute: Type= Default value - name: String - address: String visibility Operation (Parameter): Return Type +set. Address(address: String) +get. Address(): String +set. Name(name: String) +get. Name(): String Visibility + Public # Protected ˜ Package - Private : : Able to to access from any classes from same class and its inherited classes within same package from same class
G. Konsep Object What is Object is that Object: 1. Is Identical (because Object has own unique ID) 2. Has Behavior (because Object has Method) 3. Has State (because Object has instance parameter) Mobil Super class Kijang Parent class Kijang NX 2001 N 12345 Child class Object
H. Relationships of Object There three types of relationship : 1. Is-a (Generalization, Realization: Inheritance) 2. Has-a (Association) 3. Others (Association , Dependency) Association (Aggregation, Composition) Aggregation (One of associations) Composition (One of associations) Generalization Realization Dependency
USE CASE DIAGRAM A PENGERTIAN Menjelaskan urutan kegiatan yang dilakukan aktor dan sistem untuk mencapai tujuan tertentu Gambaran fungsionalitas yang diharapkan dari sebuah sistem menekankan pada “apa” bukan “Bagaimana” yg dibuat sistem Mempresentasikan interaksi antar aktor/pelaku dengan sistem Menyatakan suatu job/pekerjaan tertentu miasal : login ke sistem, create data penjualan, Tersusun dr elemen-elemen : aktor, case, dependency association, generalization Aktor merupakan suatu entitas yang berinteraksi dengan sistem untuk melakukan suatu pekerjaan
Manfaat Use case Membantu untuk : Menyusun requirement (syarat-syarat) sebuah sistem Mengkomunikasikan rancangan dengan klien Merancang test case untuk semua feature (performance) yang ada pada sistem
Keunggulan : • Dapat meng-include (memasukkan) fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. • dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. • Dapat meng-extend (memperpanjang) use case lain dengan behaviour-nya sendiri. • Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
Simbol Use Case Diagram Actor : Suatu entitas/ interface sbg pelaku yg berinteraksi dengan sistem case: peristiwa /job / pekerjaan file / data store : merepresentasikan sebuah data Note : untuk memberikan komentar tambahan Package/kontainer/wadah: kumpulan elemen 2 sistem Assosiation : relasi antara actor dengan Use case Generalization/inheritance Dependency Title informasi Link/exteded Dependency
Structural Relationship type UML Notation Example Depedency (uses) A Vehicle uses fuel Aggregration (has a) (one of assosiation) A vihicle has an engine. A car has axles A Restorant has employe Composit (has a) (one of assosiation) A Restorant has a table (must) Assosiation A vehicle is lecensed by the new jersey department of motor vehicle Generalization (is a) A car is a vehicle
UML Behavioral Relationships Symbol Example communicates An actor “customer” interacts or communicates with a use case rent vehicle Includes Extends Generalizes <Include> <extends> The use case “Verify credit card” and “check driver’s license” includes the common use case “Rent Vehicle” The use case “arrange for added insurance” extends the use case “Rent Vehicle” A “Regular customer” generalizes a “Gold card Customer”
Rent Vehicle Customer Communication Relationships Gold Card Customer Regular Customer Menyusun asuransi tambahan Generalizes Relationships
CONTOH USE CASE DIAGRAM
Relationship Assosiations • Digunakan untuk menghubungkan para actor dan use case di dalam suatau diagram. • asosiasi ini dapat dibuat / digambar dalam dua arah, tergantung dari kedudukan aktornya • jika aktornya adalah sebagai aktor utama (primery actor) maka arah relasinya adalah dari actor menuju use case. • Jika aktornya adalah sebagai aktor tambahan (secondary actor) maka arah relasinya dari use case menuju actor
Relationship Generalization • Menunjukkan hubungan antara elemen yang lebih umum ke elemen yang lebih spesifik • Class yang lebih spesifik (sub class) akan menurunkan atribute dan operasi dari class yeng lebih umum (superclass) • Merupakan pemodelan dari herarki class atau konsep inheritance • Contoh class pelanggan adalah superclass dan turunannya adalah pelanggan antar. • Pelanggan adalah gambaran atau abstraksi pelanggan secara umum • Pelanggan antar mengabstraksikan pelanggan yang memesan lewat telpon dan pelanggan yang pengambilan barang melalui pengiriman. Class pelanggan ini akan memiliki atribute dan operasi yang sama dengan class pelanggan dengan tambahan atribute biaya pengiriman
Relationship Dependency : • suatu hubungan semantik antara dua unsur-unsur modeling di dalam atau yang mana suatu perubahan satu elemen/unsur model ( unsur yang mengalir masuk) dapat mempengaruhi unsur modeling yang lain ( unsur yang dependent). • Relasi antara use case satu dengan use case yang lain • Relasi yang menunjukkan bahwa perubahan pada salah satu elemen akan memberikan pengaruh pada elemen yang lain • Terdapat 2 stereotype : Include dan Extend • Include menunjukkan bahwa suatu bagian dari elemen(yg ada di garis tanpa panah) memicu eksekusi bagian dari elemen lain (yg ada di garis dengan panah) contoh A---- > B (operasi di class A memicu dieksekusinya operasi di class B • Extend menunjukkan bahwa suatu bagian dari elemen digaris tanpa panah bisa disisipkan ke dalam elemen yang ada di garis dengan panah contoh A---- > B (suatu fungsi dari use case A bisa disisipkan ke dalam use case B dengan kata lain A optional untuk B
Use case Spesification Merupakan teks untuk menjelaskan urutan kegiatan use case tersebut: meliputi 1. 2. 3. 4. 5. 6. 7. Nama Use case Diskripsi singkat (Brief Description) Aliran Normal (Basic Flow) Aliran Alternatif (Alternate Flow) Special Requirement Pre-Condition Post-Condition
Use case spesification Nama Use case 1. • • Mencantumkan nama dari Use case yang bersangkutan. Sebaiknya diawali dengan kata kerja untuk menunjukkan suatu aktivitas. 2. Diskripsi singkat (Brief Description) • Menjelaskan secara singkat dalam waktu 1 atau 2 kalimat tentang tujuan dari use case ini. 3. Aliran Normal (Basic Flow) • • Ini adalah jantung dari use case. Menjelaskan interaksi antara actor dan sistem dalam kondisi normal, yaitu segala sesuatu berjalan dengan lancar, tiada halangan atau hambatan dalam mencapai tujuan dari use case.
Use case spesification 4. Aliran Alternatif (Alternate Flow) • Merupakan pelengkap dari Basic Flow karena tidak ada yang sempurna dalam setiap kali use case berlangsung. • Didalam Alternate Flow ini dijelaskan apa yang akan terjadi bila suatu halangan atau hambatan tejadi sewaktu use case berlangsung. • Ini berhubungan dengan error yang mungkin terjadi. 5. Special Requirement • Berisikebutuhan lain yang belum tercakup dalam aliran normal dan alternatif. • Dibedakan secara tegas bahwa basic flow dan alternate flow menangani kebutuhan fungsional dari use case. 6. Pre-Condition • Menjelaskan persyaratan yang harus dipenuhi sebelum use case dimulai. 7. Post-Condition • Menjelaskan kondisi yang berubah atau terjadi saat use case selesai dieksekusi.
Contoh : use case Rental VCD 1. Nama Use Case menerima pendaftaran pelanggan 2. Deskripsi Singkat Use Case ini untuk mencatat data pelanggan yang mendaftar sebagai anggota Rental VCD. Use case dimulai saat pelanggan datang untuk mendaftarkan diri. 3. Basic Flow : a. Penjaga rental mengisi data pelanggan. b. Setelah selesai mengisi semua data yang diperlukan, penjaga rental mengkonfirmasi untuk menyimpan data tersebut. c. Sistem menuliskan data pelanggan ke dalam database. d. Sistem memunculkan pesan bahwa proses pendaftaran sukses dilakukan.
Contoh : use case Rental VCD 4. Alternate Flow : a. Bila penulisan di database gagal : sistem memunculkan pesan bahwa proses pendaftaran gagal dilakukan, dan kembali ke langkah 3. b. b. Bila ada data yang diperlukan belum terisi : sistem meminta penjaga rental untuk mencetak isian kembali, kembali ke langkah 3. a. 5. Special Requirement : tidak ada 6. Pre-Condition : tidak ada 7. Post Condition : record pelanggan bertambah
Studi kasus : BCA ATM system Monitor Insert card Chard slot Chash despencer Account Holder Ambil uang Keypad Masuk pin Invoice despencer Acoount
Desain Use case System ATM BCA Account Holder Penarikan uang sukses Transfer uang Pembayaran telpon System boundary
Case scenario Untuk penarikan uang sukses • Keyword : Format teks S-V-O 1. Account Holder memasukkan kartu ATM 2. A. H memasukkan nomor pin 3. System mengecek nomor pin 4. System beri info kepada A. H untuk memasukkan jumlah uang yg ditarik 5. A. H memasukkan jumlah uang 6. System mengecek jumlah uang 7. System mengeluarkan uang untuk A. H 8. ATM mencetak Bukti traansaksi 9. ATM mengeluarkan kartu ATM
Mendefinisikan object • Key word : object adalah semua kata benda yang terlibat dalam system 1. 2. 3. 4. 5. 6. 7. 8. 9. Account Holder entity ATM Control Chard boundary Monitor boundary Chard slot boundary Chash despencer boundary Keyborad(keypad) boundary Invoice despencer boundary Account Entity
Stereo. Type • Boundary • Control • Entity
Object Diagram
CLASS DIAGRAM v Spesifikasi yang menghasilkan sebuah objek (inti dari pengembanganan desain berorientasi objek) v Menggambarkan struktur dan deskripsi class, package, object v Class memiliki tiga area pokok : v 1. Nama (dan stereotype) 2. Atribut 3. Metoda Sifat Atribut serta Metoda : – Private (tidak dapat dipanggil dari luar class ) – Protected ( dapat dipanggil oleh class yang bersangkutan dan yang mewarisinya) – Public (dapat dipanggil oleh siapa saja)
Hubungan Antar Class 1. Asosiation ( hubungan statis antar class , nama relasi : has a (mempunyai) dibedakan menjadi dua macam hubungan khusus : 1. Aggregation (pengumpulan) 1. hubungan yang menyatakan bagian satu atau lebih 2. Simbol : belah ketupat yang tidak diblok 2. Composite (Gabungan) 1. agrregration yg sangat kuat 2. Setiap komponen menyatakan bagian hanya satu) 3. Simbol : belah ketupat yang diblok 2. Generalisasi – Hubungan hirarkis antar class. – Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class. – Nama relasi : is a (adalah) 3. Realization : Hubungan antara sebuah class dengan interface
Assosiation Type 1. 2. 3. 4. Unary Assosiation (suatu class berhubungan dengan dirinya sendiri Binary Assosiaton (dua buah class saling berhubungan Ternary Assosiation : Tiga buah class saling berhubungan n-ary Assosiation : banyak kelas saling berhubungan Multiplicity (kardinalitas) • Jumlah relasi dimana sebuah object mengambil bagian dalam assosiasi • Jumlah relasi diindikasikan dengan dua nilai : pertama minimum relasi dan maksimum Multiplicity Explanation 1 One and only one 0. . * None or more 1. . * One or more 0. . 1 None or one n. . n A continuous range, such as 2 to 4
Assosiation Type 1. Unary Assosiation Employee 2. Benary Assosiation Class name Assosiation name atribute + manages Class name atribute Operations atribute Multiplicity Operations Class name Assosiatio n name Operations 3. Ternary Assosiation Class name atribute Operations
Class computer- Aggregation Keyboard CPU Box
Class Diagram: Composit, Generalization The Class Diagram illustrates how the object classes of a use case are related. It consists of Class, Interface, and Relationship : Restaurant Employee Table. Top • • • Leg Waiter(pelayan) Chef is-a employee (Generalization) Waiter is-a employee (Generalization) Restaurant has-a table (Composition) Restaurant has-a employee (Aggregation) Table has-a Table Top & Leg (composite) Chef (kepala Tukang masak)
Interface • adalah suatu pengaturan operasi (set of operations) yang menetapkan beberapa aspek/pengarah dari suatu perilaku kelas. • adalah suatu pengaturan operasi sebuah kelas menghadiahi ke kelas lain
Realization • Hubungan antara sebuah class dengan suatu interface • Menggunakan simbol garis putus-putus dan segtiga tidak di blok UML 1. 5 Symbol Washing Machine <<interface>> Person Control knob UML 2. 0 symbol Washing Machine Person
Class Diagram Format and association: Class Name Attributes Role name Association name 1 Role name 1. . * Class Name Navigability Attributes Operations (Methods) Multiplicity Notation 1 0. . * 1. . * 0. . 1 : : One and only one None or more One or more None or one
Class Diagram Format and sample class: Package: : Class Person visibility attribute: Type= Default value - name: String - address: String visibility Operation (Parameter): Return Type +set. Address(address: String) +get. Address(): String +set. Name(name: String) +get. Name(): String Visibility + Public # Protected ˜ Package - Private : : Able to to access from any classes from same class and its inherited classes within same package from same class
Class Diagram Association: Association name Work Company Person Name Direction Arrow Navigability: Order Navigability (Direction of association) Order Item
Class Diagram Aggregation : Aggregation Indicator Multiplicity 1 1 Company 1 Owner Person Role 1. . * Employee Company owner: Person employee[]: Person Detail of the class Person
Class Diagram Composition : Car 1 1 1 handle Handle 1 1 engine Engine Car handle: Handle engine[]: Engine tire[4]: Tire Detail of the class 4 tire Tire
DIAGRAM CLASS YANG TERDIRI ATAS PACKAGE
Kasus: System Pembelian alat elektronik Ketentuan : • Pembeli dapat memesan barang via telephone • Pembeli dapat langsung membeli ke toko • Pembayaran : transfer, kridit chard, kontan Tugas : • Buat Use case diagram • Finding object & buat object diagram • Buat class diagram.
Use Case Toko elektronik
Object Design
Object. Diagram Propertis
CONTOH CLASS DIAGRAM
State Diagram • Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimulus yang diterima. • Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram). • Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. • Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. • Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. • Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
State Diagram : Authentication Process
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. • Menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. • Menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. • Merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). • 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.
Activity Diagram • 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.
CONTOH ACTIVITY DIAGRAM TANPA SWIMLAND
SEQUENCE DIAGRAM Menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas: 1. Dimensi vertikal (waktu) 2. Dimensi horizontal (objek-objek yang terkait).
CONTOH SEQUENCE DIAGRAM
COLLABORATION DIAGRAM Menggambarkan interaksi antar objek dan lebih menekankan peran objek dan bukan pada waktu penyampaian message. CONTOH COLLABORATION DIAGRAM
COMPONEN DIAGRAM Menggambarkan struktur dan hubungan antar komponen piranti lunak Komponen piranti lunak berisi code yang meliputi: * Source code * Binary code * Library maupun executable
CONTOH COMPONEN DIAGRAM
DEPLOYMENT DIAGRAM Menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem. CONTOH DEPLOYMENT DIAGRAM
Ø LANGKAH-LANGKAH PENGGUNAKAN UML 1. Buatlah daftar business process 2. Petakan use case untuk tiap business process. 3. Buatlah deployment diagram untuk mendefinisikan arsitektur fisik sistem. 4. Definisikan requirement lain yang harus disediakan 5. Berdasarkan use case diagram, mulailah membuat activity diagram. 6. Definisikan objek (package atau domain) dan buatlah sequence/ collaboration diagram untuk tiap alir pekerjaan. 7. Buatlah rancangan user interface model untuk menjalankan skenario use case. 8. Buatlah class diagram.
9. Melihat kemungkinan pengelompokan class 10. Perhalus rancangan Deployment diagram 11. Mulailah membangun sistem. ( ada 2 pendekatan) yaitu • Pendekatan use case. • Pendekatan komponen 12. uji modul dan uji integrasi serta perbaiki model berserta codenya. 13. Piranti lunak siap dirilis.
Tool Yang Mendukung UML • Rational Rose (www. rational. com) • Together (www. togethersoft. com) • Object Domain (www. objectdomain. com) • Jvision (www. object-insight. com) • Objecteering (www. objecteering. com) • Magic. Draw (www. nomagic. com/magicdrawuml) • Visual Object Modeller (www. visualobject. com)
- Slides: 66