730 likes | 840 Views
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.
E N D
Understanding OOP & UML Oleh: IbnuAkil, M.Kom
Apakah UML? Unified Modeling Language (UML) adalahbahasapemodelan visual yang digunakanuntukmenspesifikasikan, memvisualisasikan, membangun, danmendokumentasikanrancangandarisuatusistemperangkatlunak.
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].
MetodologiBerorientasiObjekvsTerstruktur/Fungsi Strategiutamauntukmenanganikompleksitaspembangunanperangkatlunakadalahdekomposisipermasalahanmenjadibagian-bagiankecil yang dapatdikelola. • Padametodeberorientasifungsiatau (DFD), dekomposisipermasalahandilakukanberdasarkanfungsiatauprosessecarahirarki, mulaidarikontekssampaiproses yang paling kecil. • Semetarapadametodeberorientasiobjek, dekomposisipermasalahandilakukanberdasarkanobjek-objek yang adadalamsistem.
KonsepDasar OOP • Object • Objeksecarasederhanadijelaskansebagaisesuatu yang mempunyai status, tingkahlaku, danidentitas, dansebagaisesuatu yang dapatdiidentifikasibaikituabstrakmaupunkonkritdenganbatasanperanandalampermasalahanutama. (Armstrong, 2006). • Dalamduniapemrogramanobjekadalahinstansiasidarikelas. Sedangkantingkahlakumenjadimetode-metodedariobjek yang berupafungsiatauprosedur.
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).
Encapsulation • Pembungkusanberfungsiuntukmelindungisuatuobjekdaridunialuar, sehinggaseseorangtidakakanmampumerusakobjek yang terbungkus. Objek yang terbungkusdalamsuatukelasbaik data maupunfungsinyatidakbisaterlihatapalagidirubahpadasaatobjekdigunakan.
Polymorphism • Polymorphismdapatdiartikansebagaikemampuansuatubahasapemrogramanuntukmemilikifungsi-fungsiataumetode yang bernamasamatetapiberbedadalam parameter danimplementasikodenya (overloading). Kelasturunandapatmenggunakanfungsi yang adapadakelaspewarisnyadandapatmengimplementasikankode yang berbedadarifungsipewarisnyainidinamakanoverriding.
Inheritance • Class dapatmenurunkanmetode-metodedanproperti-properti yang dimilikinyapada class lain. Class yang mewarisi metode dan properti dari objek lain dinamakan class turunan. Class turunaninimampumengembangkanmetodesendiri.
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
Has: SegiTiga Tinggi Alas What do you want it to do? HitungLuas HitungKeliling
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; } }
Has: Name Hair Color Complexion What do you want it to do? Show Description Sing
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(){ } }
Has: What do you want it to do? Type Show Description Merck Run Color Year
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(){ } }
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
EMPLOYEE Has NIP Nama Jabatan Things to do createNew getSalary
Do you think they have the same salary? Tetap Kontrak Honorer
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(){ } }
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.
Class Attribute public class Account { private float balance = 0; private float limit; public Account(){ } }
Class Operation public class Account { private float balance = 0; private float limit; public Account(){ } public void deposit(float amount){ } public void withdraw(float amount){ } }
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(){ } }
Associations public class A { public B b; public A(){ } } public class B { public B(){ } }
Multiplicity public class Customer{ public List<Accounts> accounts = new ArrayList<Accounts>(); public Customer() { Accounts defaultAccount = new Accounts(); accounts.add(defaultAccount); } }
Aggregation And Composition Composition terdiridariobjek-objek yang tidakbisadibagiatauditukardanhidupselama composite objekhidup. Aggregation terbuatdariobjek-objek yang bisadibagiatauditukar
Generalization public class Person { public Person(){ } } public class Employee extends Person { public Employee(){ } }
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(){ } }
Package Diagram • Package diagram adalahkumpulandarikelas-kelas yang relevandalamsuatusistem. • Package bisaberupa folder yang berisikelas-kelas.
Top Level Package Sub Package Physical Package
Component Diagram • Component diagram adalahbagaimanabagian-bagiandarisistem yang diuraikanmenjadisubsistem-subsistemataumodul-modul yang lebihkecildanketergantunganantarmoduldigambarkan. • Component biasanyabagian yang bersifatfisikdarisistem.
Deployment Diagram • Deployment diagram menunjukkan layout bagaimanakomponen-komponenditempatkanpadamesin-mesinatau hardware yang disebut node tertentusebagaisatusistem yang terintegrasi.
Use Case Diagram • Usecasedigunakanuntukmenangkapkebutuhanfungsionaldarisistem. Usecasebekerjadenganmenjelaskaninteraksi-interaksi yang berarti (transaksional) antarapenggunaatauaktordengansistem, danmenyediakannarasibagaimanasuatusistemdigunakan.
Notation • Usecasedigambarkansebagai ellipse yang berisinamausecase. Namausecaseadalahkatakerjadandapatditampilkandibawah ellipse. • Usecasedapatdigambarkandidalam boundary sistematautanpa boundary. • Actor digambarkansebagaioranglidi.
Requirements • Requirements mendefinisikankebutuhan-kebutuhanfungsional formal yang harusdisediakanusecasekepadapengguna. Sebuahkebutuhanadalahkontrakatauhasil yang didapatkandariusecaseketikamenjalankansuatutindakankepadasistem.
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.
Scenarios • Sebuah scenario adalahdeskripsi formal darialurkejadian-kejadian yang terjadiselamaeksekusiusecase. Scenario menjelaskanurutan yang spesifikdarikejadian-kejadianantarsistemdan actor.