SlideShare a Scribd company logo
1 of 17
OOP in
Software Design
Review OOP
• What is Class, Object & Method?
• What is Abstraction and Inheritance?
• What is Overloading and Overriding in Polymorphism?
7/26/2023 OOP IN SOFTWARE DESIGN 2
OOP Essentials
 1st step in OOP development is to identify the object and
establish relationship among them
 Type of relationship
 Association
 Aggregation
 Inheritance
7/26/2023 OOP IN SOFTWARE DESIGN 3
Association
 Represent general binary relationship that describes an
activity between two classes.
 Illustrated using solid lines
 May have role name for each class involved which
describes the role played by the class in the relationship.
 Each class involved may specify multiplicity. It could be a
number or interval, describes the number of object being
involved in the relationship
7/26/2023 OOP IN SOFTWARE DESIGN 4
Association
 Example:
7/26/2023 OOP IN SOFTWARE DESIGN 5
Association
 Association may exist between objects of the same class.
 Association is usually represented as a data field in the
class.
7/26/2023 OOP IN SOFTWARE DESIGN 6
Association
public class Student {
private Course[] courseList;
// data field, constructor
// method
}
public class Course {
// data field, constructor
// method
}
public class Faculty {
private Course[] courseList;
// data field, constructor
// method
}
7/26/2023 OOP IN SOFTWARE DESIGN 7
public class Employee {
private Employee supervisor;
// data field
// constructor
// method
}
Association Team Discussion
 A small software house in Bandung has a rule that limiting
one project manager’s responsibility only to one project
while he/she can lead at least one or more small team
related to software modules for the project.
 Determine the relationship between Project Manager, The
Project and the Team, please write the class relationship.
7/26/2023 OOP IN SOFTWARE DESIGN 8
Aggregation
 Special form of association that represents an ownership
between two classes
 Models relationship like : has-a, owns, part-of, employed-
by…
 An object may be owned by several other aggregated
objects.
 If an objects is exclusively owned by an aggregated
object, the relationship is referred to as composition.
7/26/2023 OOP IN SOFTWARE DESIGN 9
Aggregation
public class FinanceConsultant {
private Broker[] brokerList;
//data field
//constructor
//method
}
7/26/2023 OOP IN SOFTWARE DESIGN 10
public class Share {
private Broker broker;
//data field
//constructor
//method
}
Class Design Guidelines
 Class should describe a single entity or a set of similar
operations.
 Single entity with too many responsibilities can be broken
to several classes to separate responsibilities.
 Classes are designed for reuse.
 Provide a public default constructor and override the
equals and toString method whenever possible.
 Follow standard Java programming style and naming
conventions.
7/26/2023 OOP IN SOFTWARE DESIGN 11
Inheritance vs Composition
 Inheritance representing is-a relationship.
 Composition representing has-a relationship.
 Use Inheritance if polymorphism is desirable.
 Use Composition if you don’t care about polymorphism
and wants more flexibility to your design.
7/26/2023 OOP IN SOFTWARE DESIGN 12
Inheritance vs Composition
public class Person {
public Person() { }
private String name;
// getter and setter method
}
public class Mahasiswa extends Person {
public Mahasiswa() { }
private String npm;
// getter and setter method
}
7/26/2023 OOP IN SOFTWARE DESIGN 13
public class ProjectManager {
public ProjectManager() { }
private String firstName;
private String lastName;
// getter and setter method
}
public class Project {
public Project() { }
private String projectName;
private ProjectManager projectManager;
// getter and setter method
}
Inheritance
 Models the is-a relationship between two classes.
 Strong is-a relationship
 Describes a direct inheritance relationship between two classes.
Represented using extends.
 Example : public class Mahasiswa extends Person { }
 Weak is-a relationship
 Describes that a class has certain properties. Can be
represented using interfaces
 Example : public class Purchase implements Transaction { }
7/26/2023 OOP IN SOFTWARE DESIGN 14
Inheritance vs Abstract
 Strong is-a relationship better use abstract class.
 Weak is-a relationship better use interfaces.
 Interfaces are more flexible than abstract class, subclass
can only extends one superclass but may implement
many interfaces.
 Interfaces doesn’t have concrete methods.
 Both can be combined. ex. Set or List in Java Collection
Framework.
7/26/2023 OOP IN SOFTWARE DESIGN 15
Discussion
A small CD rental wants to build a database system so they
can manage their CDs collection. The objects involved in the
system are Customer (anyone who borrow CDs), Employee
(anyone who runs the rental’s management), and the CD
itself. Create the classes and their relationship.
7/26/2023 OOP IN SOFTWARE DESIGN 16
Thank you
Bayu Rimba Pratama, ST, M.Kom

More Related Content

Similar to Slide Presentasi Teknik OO pada Desain Software

Similar to Slide Presentasi Teknik OO pada Desain Software (20)

Java OOPS Concept
Java OOPS ConceptJava OOPS Concept
Java OOPS Concept
 
Lecture 12
Lecture 12Lecture 12
Lecture 12
 
Lecture 18
Lecture 18Lecture 18
Lecture 18
 
Seminar
SeminarSeminar
Seminar
 
SEMINAR
SEMINARSEMINAR
SEMINAR
 
Sda 7
Sda   7Sda   7
Sda 7
 
OOP in java
OOP in javaOOP in java
OOP in java
 
Java 06
Java 06Java 06
Java 06
 
Jedi slides 2.1 object-oriented concepts
Jedi slides 2.1 object-oriented conceptsJedi slides 2.1 object-oriented concepts
Jedi slides 2.1 object-oriented concepts
 
Concepts of oops
Concepts of oopsConcepts of oops
Concepts of oops
 
General oops concepts
General oops conceptsGeneral oops concepts
General oops concepts
 
docsity-p1-examine-the-characteristics-of-the-object-orientated-paradigm-as-w...
docsity-p1-examine-the-characteristics-of-the-object-orientated-paradigm-as-w...docsity-p1-examine-the-characteristics-of-the-object-orientated-paradigm-as-w...
docsity-p1-examine-the-characteristics-of-the-object-orientated-paradigm-as-w...
 
Rbce
Rbce Rbce
Rbce
 
Structural pattern 3
Structural pattern 3Structural pattern 3
Structural pattern 3
 
Java ocjp level_2
Java ocjp level_2Java ocjp level_2
Java ocjp level_2
 
Top 30 Technical interview questions
Top 30 Technical interview questionsTop 30 Technical interview questions
Top 30 Technical interview questions
 
MCA NOTES.pdf
MCA NOTES.pdfMCA NOTES.pdf
MCA NOTES.pdf
 
UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptx
 
oopsinvb-191021101327.pdf
oopsinvb-191021101327.pdfoopsinvb-191021101327.pdf
oopsinvb-191021101327.pdf
 
Oops in vb
Oops in vbOops in vb
Oops in vb
 

More from Bayu Rimba

Slide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar FlowchartSlide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar FlowchartBayu Rimba
 
Slide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan PemrogramanSlide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan PemrogramanBayu Rimba
 
Slide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection FrameworkSlide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection FrameworkBayu Rimba
 
Slide Latihan JDBC bagian 2
Slide Latihan JDBC bagian 2Slide Latihan JDBC bagian 2
Slide Latihan JDBC bagian 2Bayu Rimba
 
Slide Latihan JDBC
Slide Latihan JDBCSlide Latihan JDBC
Slide Latihan JDBCBayu Rimba
 
Presentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGPresentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGBayu Rimba
 

More from Bayu Rimba (6)

Slide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar FlowchartSlide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar Flowchart
 
Slide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan PemrogramanSlide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan Pemrograman
 
Slide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection FrameworkSlide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection Framework
 
Slide Latihan JDBC bagian 2
Slide Latihan JDBC bagian 2Slide Latihan JDBC bagian 2
Slide Latihan JDBC bagian 2
 
Slide Latihan JDBC
Slide Latihan JDBCSlide Latihan JDBC
Slide Latihan JDBC
 
Presentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGPresentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWING
 

Recently uploaded

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Slide Presentasi Teknik OO pada Desain Software

  • 2. Review OOP • What is Class, Object & Method? • What is Abstraction and Inheritance? • What is Overloading and Overriding in Polymorphism? 7/26/2023 OOP IN SOFTWARE DESIGN 2
  • 3. OOP Essentials  1st step in OOP development is to identify the object and establish relationship among them  Type of relationship  Association  Aggregation  Inheritance 7/26/2023 OOP IN SOFTWARE DESIGN 3
  • 4. Association  Represent general binary relationship that describes an activity between two classes.  Illustrated using solid lines  May have role name for each class involved which describes the role played by the class in the relationship.  Each class involved may specify multiplicity. It could be a number or interval, describes the number of object being involved in the relationship 7/26/2023 OOP IN SOFTWARE DESIGN 4
  • 6. Association  Association may exist between objects of the same class.  Association is usually represented as a data field in the class. 7/26/2023 OOP IN SOFTWARE DESIGN 6
  • 7. Association public class Student { private Course[] courseList; // data field, constructor // method } public class Course { // data field, constructor // method } public class Faculty { private Course[] courseList; // data field, constructor // method } 7/26/2023 OOP IN SOFTWARE DESIGN 7 public class Employee { private Employee supervisor; // data field // constructor // method }
  • 8. Association Team Discussion  A small software house in Bandung has a rule that limiting one project manager’s responsibility only to one project while he/she can lead at least one or more small team related to software modules for the project.  Determine the relationship between Project Manager, The Project and the Team, please write the class relationship. 7/26/2023 OOP IN SOFTWARE DESIGN 8
  • 9. Aggregation  Special form of association that represents an ownership between two classes  Models relationship like : has-a, owns, part-of, employed- by…  An object may be owned by several other aggregated objects.  If an objects is exclusively owned by an aggregated object, the relationship is referred to as composition. 7/26/2023 OOP IN SOFTWARE DESIGN 9
  • 10. Aggregation public class FinanceConsultant { private Broker[] brokerList; //data field //constructor //method } 7/26/2023 OOP IN SOFTWARE DESIGN 10 public class Share { private Broker broker; //data field //constructor //method }
  • 11. Class Design Guidelines  Class should describe a single entity or a set of similar operations.  Single entity with too many responsibilities can be broken to several classes to separate responsibilities.  Classes are designed for reuse.  Provide a public default constructor and override the equals and toString method whenever possible.  Follow standard Java programming style and naming conventions. 7/26/2023 OOP IN SOFTWARE DESIGN 11
  • 12. Inheritance vs Composition  Inheritance representing is-a relationship.  Composition representing has-a relationship.  Use Inheritance if polymorphism is desirable.  Use Composition if you don’t care about polymorphism and wants more flexibility to your design. 7/26/2023 OOP IN SOFTWARE DESIGN 12
  • 13. Inheritance vs Composition public class Person { public Person() { } private String name; // getter and setter method } public class Mahasiswa extends Person { public Mahasiswa() { } private String npm; // getter and setter method } 7/26/2023 OOP IN SOFTWARE DESIGN 13 public class ProjectManager { public ProjectManager() { } private String firstName; private String lastName; // getter and setter method } public class Project { public Project() { } private String projectName; private ProjectManager projectManager; // getter and setter method }
  • 14. Inheritance  Models the is-a relationship between two classes.  Strong is-a relationship  Describes a direct inheritance relationship between two classes. Represented using extends.  Example : public class Mahasiswa extends Person { }  Weak is-a relationship  Describes that a class has certain properties. Can be represented using interfaces  Example : public class Purchase implements Transaction { } 7/26/2023 OOP IN SOFTWARE DESIGN 14
  • 15. Inheritance vs Abstract  Strong is-a relationship better use abstract class.  Weak is-a relationship better use interfaces.  Interfaces are more flexible than abstract class, subclass can only extends one superclass but may implement many interfaces.  Interfaces doesn’t have concrete methods.  Both can be combined. ex. Set or List in Java Collection Framework. 7/26/2023 OOP IN SOFTWARE DESIGN 15
  • 16. Discussion A small CD rental wants to build a database system so they can manage their CDs collection. The objects involved in the system are Customer (anyone who borrow CDs), Employee (anyone who runs the rental’s management), and the CD itself. Create the classes and their relationship. 7/26/2023 OOP IN SOFTWARE DESIGN 16
  • 17. Thank you Bayu Rimba Pratama, ST, M.Kom