1 / 73

Understanding OOP & UML

Understanding OOP & UML. Oleh : Ibnu Akil , M.Kom. Apakah UML?. Unified Modeling Language (UML) adalah bahasa pemodelan visual yang digunakan untuk menspesifikasikan , memvisualisasikan , membangun , dan mendokumentasikan rancangan dari suatu sistem perangkat lunak.

zion
Download Presentation

Understanding OOP & UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Understanding OOP & UML Oleh: IbnuAkil, M.Kom

  2. Apakah UML? Unified Modeling Language (UML) adalahbahasapemodelan visual yang digunakanuntukmenspesifikasikan, memvisualisasikan, membangun, danmendokumentasikanrancangandarisuatusistemperangkatlunak.

  3. BeberapaMetodeBerorientasiObjek • Object Oriented Analysis (OOA) dan Object Oriented Design (OOD) dari Peter Coaddan Edward Yourdon [1990]. • Object Modeling Technique (OMT) dari James Rumbaughdankawan-kawan[1991]. • Object Oriented Software Engineering (OOSE) dariIvar Jacobson [1992]. • Booch Method dari Grady Booch [1994]. • Syntropydari Steve Cook dan John Daniels [1994] • Unified Modeling Language (UML) dari James Rumbaugh, Ivar Jacobson dan Grady Booch [1997].

  4. MetodologiBerorientasiObjekvsTerstruktur/Fungsi Strategiutamauntukmenanganikompleksitaspembangunanperangkatlunakadalahdekomposisipermasalahanmenjadibagian-bagiankecil yang dapatdikelola. • Padametodeberorientasifungsiatau (DFD), dekomposisipermasalahandilakukanberdasarkanfungsiatauprosessecarahirarki, mulaidarikontekssampaiproses yang paling kecil. • Semetarapadametodeberorientasiobjek, dekomposisipermasalahandilakukanberdasarkanobjek-objek yang adadalamsistem.

  5. ObjekvsFungsi

  6. KonsepDasar OOP • Object • Objeksecarasederhanadijelaskansebagaisesuatu yang mempunyai status, tingkahlaku, danidentitas, dansebagaisesuatu yang dapatdiidentifikasibaikituabstrakmaupunkonkritdenganbatasanperanandalampermasalahanutama. (Armstrong, 2006). • Dalamduniapemrogramanobjekadalahinstansiasidarikelas. Sedangkantingkahlakumenjadimetode-metodedariobjek yang berupafungsiatauprosedur.

  7. Class • Kelasdijelaskansebagaisebuahstruktur dan kumpulandari data dan metode. Metodeadalahsebuahfungsi yang ada pada kelas yang menjelaskansebagiandaritingkahlakuobject yang merupakaninstansiasidarikelas (Detienne, 2000). Sementara orangmendeskripsikankelassebagaibentukpembungkusan data dan prosedurataufungsi yang bisa di-instansiasisebagaisejumlahobjek (Jiping & Dershem, 1995).

  8. Encapsulation • Pembungkusanberfungsiuntukmelindungisuatuobjekdaridunialuar, sehinggaseseorangtidakakanmampumerusakobjek yang terbungkus. Objek yang terbungkusdalamsuatukelasbaik data maupunfungsinyatidakbisaterlihatapalagidirubahpadasaatobjekdigunakan.

  9. Polymorphism • Polymorphismdapatdiartikansebagaikemampuansuatubahasapemrogramanuntukmemilikifungsi-fungsiataumetode yang bernamasamatetapiberbedadalam parameter danimplementasikodenya (overloading). Kelasturunandapatmenggunakanfungsi yang adapadakelaspewarisnyadandapatmengimplementasikankode yang berbedadarifungsipewarisnyainidinamakanoverriding.

  10. Inheritance • Class dapatmenurunkanmetode-metodedanproperti-properti yang dimilikinyapada class lain. Class yang mewarisi metode dan properti dari objek lain dinamakan class turunan. Class turunaninimampumengembangkanmetodesendiri.

  11. Abstraction: creating classes to simplify aspects of reality using distinctions inherent to the problem. Class: a description of the organization and action shared by one or more similar objects. (Armstrong, 2006) Abstraction&Class

  12. Has: SegiTiga Tinggi Alas What do you want it to do? HitungLuas HitungKeliling

  13. public class SegiTiga { private int Alas; private intTinggi; public SegiTiga(){ } public void finalize() throws Throwable { } public intgetAlas(){ return Alas; } public intgetTinggi(){ return Tinggi; } public inthitungKeliling(){ return 0; } public inthitungLuas(){ return 0; } public void setAlas(intnewVal){ Alas = newVal; } public void setTinggi(intnewVal){ Tinggi = newVal; } }

  14. Has: Name Hair Color Complexion What do you want it to do? Show Description Sing

  15. public class Girl { private String Complexion; private String HairColor; private String Name; public Girl(){ } public void finalize() throws Throwable { } public String getComplexion(){ return Complexion; } public String getHairColor(){ return HairColor; } public String getName(){ return Name; } public void setComplexion(String newVal){ Complexion = newVal; } public void setHairColor(String newVal){ HairColor = newVal; } public void setName(String newVal){ Name = newVal; } public void showDescription(){ } public void sing(){ } }

  16. Has: What do you want it to do? Type Show Description Merck Run Color Year

  17. public class Car { private String Color; private String Merck; private String Type; private String Year; public Car(){ } public void finalize() throws Throwable { } public String getColor(){ return Color; } public String getMerck(){ return Merck; } public String getType(){ return Type; } public String getYear(){ return Year; } public void run(){ } public void setColor(String newVal){ Color = newVal; } public void setMerck(String newVal){ Merck = newVal; } public void setType(String newVal){ Type = newVal; } public void setYear(String newVal){ Year = newVal; } public void showDescription(){ } }

  18. Inheritance: the data and behavior of one class is included in or used as the basis for another class. Polymorphism: different classes may respond to the same message and each implement it appropriately. Inheritance&Polymorphism

  19. EMPLOYEE Has NIP Nama Jabatan Things to do createNew getSalary

  20. Do you think they have the same salary? Tetap Kontrak Honorer

  21. public class ContractEmployee extends Employee { public ContractEmployee(){ } public void finalize() throws Throwable { super.finalize(); } public void getSalary(){ } } public class HonorerEmployee extends Employee { public HonorerEmployee(){ } public void finalize() throws Throwable { super.finalize(); } public void getSalary(){ } }

  22. Class Diagram • Class diagram adalahdasaratauintidaripemodelanberorientasiobjek. Tanpaadanya class diagram, diagram-diagram lain yang bergantungkepadanya (Object Diagram, Component Diagram, Sequence Diagram, State Machine Diagram dan Communication Diagram) tidakakanbisadigambarkan. • Class diagram menjelaskanstrukturstatisdarisistematau object yang terlibatdalamsistemsertaketerkaitanataurelasiantarmasing-masing object tersebut. Kelas-kelas yang relevandapatdigabungkandalamsatu package.

  23. Class Attribute public class Account { private float balance = 0; private float limit; public Account(){ } }

  24. Class Operation public class Account { private float balance = 0; private float limit; public Account(){ } public void deposit(float amount){ } public void withdraw(float amount){ } }

  25. Attribute Visibility public class Account { private float balance = 0; public float limit; intdatabaseId; protected int id; public Account(){ } public void deposit(float amount){ } public void withdraw(float amount){ } protected void getAvailableFunds(){ } void getDatabaseId(){ } }

  26. Associations public class A { public B b; public A(){ } } public class B { public B(){ } }

  27. Multiplicity public class Customer{ public List<Accounts> accounts = new ArrayList<Accounts>(); public Customer() { Accounts defaultAccount = new Accounts(); accounts.add(defaultAccount); } }

  28. Aggregation And Composition Composition terdiridariobjek-objek yang tidakbisadibagiatauditukardanhidupselama composite objekhidup. Aggregation terbuatdariobjek-objek yang bisadibagiatauditukar

  29. Generalization public class Person { public Person(){ } } public class Employee extends Person { public Employee(){ } }

  30. Realization public interface Person { public Person(){ } public void create(); public void remove(); } public class Employee implements Person { public Employee(){ } public void create(){ } public void remove(){ } }

  31. Package Diagram • Package diagram adalahkumpulandarikelas-kelas yang relevandalamsuatusistem. • Package bisaberupa folder yang berisikelas-kelas.

  32. Top Level Package Sub Package Physical Package

  33. Component Diagram • Component diagram adalahbagaimanabagian-bagiandarisistem yang diuraikanmenjadisubsistem-subsistemataumodul-modul yang lebihkecildanketergantunganantarmoduldigambarkan. • Component biasanyabagian yang bersifatfisikdarisistem.

  34. Deployment Diagram • Deployment diagram menunjukkan layout bagaimanakomponen-komponenditempatkanpadamesin-mesinatau hardware yang disebut node tertentusebagaisatusistem yang terintegrasi.

  35. Web Server

  36. Database Server

  37. Use Case Diagram • Usecasedigunakanuntukmenangkapkebutuhanfungsionaldarisistem. Usecasebekerjadenganmenjelaskaninteraksi-interaksi yang berarti (transaksional) antarapenggunaatauaktordengansistem, danmenyediakannarasibagaimanasuatusistemdigunakan.

  38. Notation • Usecasedigambarkansebagai ellipse yang berisinamausecase. Namausecaseadalahkatakerjadandapatditampilkandibawah ellipse. • Usecasedapatdigambarkandidalam boundary sistematautanpa boundary. • Actor digambarkansebagaioranglidi.

  39. Relationship

  40. Requirements • Requirements mendefinisikankebutuhan-kebutuhanfungsional formal yang harusdisediakanusecasekepadapengguna. Sebuahkebutuhanadalahkontrakatauhasil yang didapatkandariusecaseketikamenjalankansuatutindakankepadasistem.

  41. Constraints • Sebuah constraint adalahbahwausecasebekerjaberadadibawahkondisiataubatasantertentu, dantermasuk pre, post, dan invariant darikondisi-kondisi. Sebuah precondition menspesifikasikankondisi-kondisi yang harusterpenuhisebelumusecaseberproses. Post-condition digunakanuntukmendokumentasikanperubahandidalamkondisi yang harustercapaisetelaheksekusiusecase. Invariant menspesifikasikanproses-prosesalternatif yang akandijalankanapabilaprosesutamatidakterpenuhi.

  42. Scenarios • Sebuah scenario adalahdeskripsi formal darialurkejadian-kejadian yang terjadiselamaeksekusiusecase. Scenario menjelaskanurutan yang spesifikdarikejadian-kejadianantarsistemdan actor.

More Related