Materi 1 Pengenalan Object oriented Analyst And Design
OBJECT ORIENTED
ANALYST AND DESIGN
Defri Kurniawan
defri.kurniawan@dsn.dinus.ac.id
Content
• Pengenalan Analisis dan Desain Berorientasi Objek
• Perbedaan Kelas dan Objek
• Konsep Analisis dan Desain Berorientasi Objek
• Keuntungan dan Kerugian Pengembangan Berorientasi
Objek
INTRODUCTION OBJECT
ORIENTED ANALYST AND
DESIGN
What’s Object Oriented? [1]
• Object Oriented Paradigm saat ini merupakan
pendekatan yang populer dalam menganalisa,
desain, mengembangkan aplikasi khususnya
pada skala besar
Object Oriented?
• Suatu perspektif yang melihat element-elemen
yang diberikan oleh suatu situasi dengan cara
memecahnya ke dalam objek-objek dan
hubungannya
What’s is Object Oriented Development? [1]
• Pandangan Tradisional program komputer:
• Membuat code dari eksekusi suatu form
• Menjalankan sebagai urutan operasi
• Baik sebagai pengenalan pemrograman, namun
tidak untuk pengembangan sistem yang besar
• Pandangan Tradisional program komputer
memiliki kesulitan: Perilaku (Behaviour) sulit
digambarkan dalam bentuk suatu proses
What’s is Object Oriented Development? [1]
• Pengembangan berorientasi objek
memungkinkan pengembang aplikasi untuk
menentukan behaviour dengan
memberikan method terhadap objek yang
bersangkutan
What’s is Object Oriented Development?
• OOAD merupakan cara baru dalam memikirkan
suatu masalah dengan menggunakan model
yang dibuat menurut konsep sekitar dunia nyata
• Pada dasarnya terdiri dari 2 :
• OOA (Object Oriented Analysis)
• OOD(Object Oriented Design)
• Sedangkan OOP berkaitan dengan meralisasikan OOD
menggunakan bahasa pemrograman OO seperti Java
atau C++
Object Oriented Analyst Vs Design
• OOA Mempelajari domain permasalahan bisnis
untuk merekomendasikan perbaikan dan
menentukan kebutuhan sistem untuk
menyelesaikan permasalahan
• OOD Menentukan solusi teknis atau
rancangan/computer-based dimana solusi ini
berdasarkan kebutuhan sistem yang telah
diidentifikasi pada proses analisis
Why OOAD?
• Memudahkan pemanfaatan ulang code dan
arsitektur
• Lebih mencerminkan dunia nyata
• Kestabilan
• Perubahan kecil dalam requirement tidak berarti
perubahan yang signifikan dalam sistem yang sedang
dikembangkan
• Lebih mudah disesuaikan dengan perubahan
When should we use OO?
• Jika perangkat lunak (PL) yang dibangun cukup
kompleks
• Jika PL yang dibangun diperkirakan akan tumbuh
makin kompleks di masa mendatang
• Jika kita ingin membangun PL yang:
• Berdasar pada komponen yang telah pernah
ada sebelumnya (daur ulang)
• Dapat dipergunakan kembali di masa
mendatang (reusable) dan mungkin, kapanpun
dan di manapun
Benefit and Drawbacks of OO Development
• Benefit / Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem
aplikasi, ini yang membuat designer gampang membuat
kelas
• Membantu meningkatkan produktivitas, karena
kemampuan re-use software yang ada
• Lebih mudah untuk mengakomodasi perubahan,
fleksibel. Contoh: meskipun ada perubahan requirement
• Mengurangi resiko dalam system development
Benefit and Drawbacks of OO Development
• Drawbacks / Kerugian
• Pada sistem yang kompleks, dengan banyaknya objects
creation dan destruction serta objek yang berinteraksi
dengan cara yang kompleks, mengakibatkan poor
memory access times
• Susahnya mempelajari dan menggunakan OO
principles serta nyaman dengan konsep ini, khususnya
yang belum mengenal (terpaku dengan konsep
struktural)
CLASS VS OBJECT
Class vs Object [2]
Perbedaan Class dengan Object
• Sebuah class merupakan definisi abstract dari sebuah
object
• Obyek merupakan hasil instansiasi dari class Obyek
disebut juga dengan instance.
• Example:
• Class seperti cetakan kue, dimana kue yg dihasilkan dari
cetakan kue itu adalah object
• Warna kue bisa bermacam-macam meskipun berasal
dari cetakan yang sama (object memiliki sifat
independen)
Class vs Object [2]
Perbedaan Class dengan Object
• Class mendefinisikan struktur dan behaviour dari
masing-masing object di dalam sebuah class
• Class bertugas sebagai template untuk
pembuatan Object
• Class: konsep dan deskripsi dari sesuatu
• Object: instance dari class, bentuk (contoh)
Class vs Object [2]
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki, Mata
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Class vs Object [2]
Attribute (State):
Ban, Stir, Pedal Rem, Pedal
Gas,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute
Implementation of Class
Bagian-bagian Class Diagram
Implementation of Class
Contoh Implementasi Code dari Class Diagram
Classes of Object
• How many classes do you see?
Attribute
• Variable yang mengitari class, dengan nilai
datanya bisa ditentukan di object
• Variable digunakan untuk menyimpan nilai yang
nantinya akan digunakan pada program
• Variable memiliki jenis (tipe), nama dan nilai
• Name & age adalah atribute (variabel) dari class
Person
Method
• Method merupakan hal-hal yang bisa dilakukan oleh
obyek dari suatu class
• Method biasa dikaitkan dengan Behaviour / Perilaku
• Yang bisa dilakukan oleh method
– Merubah nilai atribut suatu obyek
– Menerima informasi dari obyek lain
– Mengirim informasi ke obyek lain untuk melakukan
sesuatu
Class = Method + Variable
Class
gir
Sepeda
kecepatan
variable
tampilkan kecepatan
ubah gir
metho
d
Object = Method + Variable yg Memiliki Nilai
Object
Sepedaku
gir = 3
instance variable
kecepatan = 10km/jam
tampilkan kecepatan ()
kecepatan = 10 km/jam
ubah gir (2)
gir = 5
instanc
e
method
Example Employee Class And Object
OBJECT ORIENTED
ANALYST AND DESIGN
CONCEPT
Key Concepts of Object-Oriented Design [1]
1. Central Role of Object
2. The Notion of A Class
3. Abstract specification of functionality
4. A Language To Define The System
5. Standard Solution
6. An Analysis Process To Model A System
7. The Notions Of Extendability And Adaptability
Key Concepts of Object-Oriented Design [1]
1. Central Role of Object
• Object sebagai inti dari desain perangkat lunak
bukan proses
• Proses rentan terhadap perubahan dan sebagian
sistem lama tidak dapat digunakan kembali (re-usable)
2. The Notion of A Class
• Kelas-kelas mengijinkan perancang software
untuk melihat object sebagai jenis entitas yang
berbeda
Key Concepts of Object-Oriented Design [1]
3. Abstract Specification of Functionality
• Dalam proses perancangan kita biasanya
menentukan properti-properti dari object
• Spesifikasi adalah abstrak bahwa hal itu tidak menempatkan
pembatasan pada bagaimana fungsi tersebut tercapai.
4. A Language To Define The System
• Unified Modelling Language (UML) telah terpilih
sebagai alat standar untuk menggambarkan
produk akhir dari kegiatan desain
Key Concepts of Object-Oriented Design [1]
5. Standard Solution
• Adanya struktur objek memfasilitasi
mendokumentasikan standar solution, disebut
pola desain / design pattern.
6. An Analysis Process To Model A System
• Object oriented menyediakan kita dengan cara
yang sistematis untuk menerjemahkan spesifikasi
fungsional ke desain konseptual
Key Concepts of Object-Oriented Design [1]
7. The Notions Of Extendability And
Adaptability
• Software memiliki fleksibilitas yang tidak biasanya
ditemukan dalam perangkat keras,
memungkinkan kita untuk memodifikasi entitas
yang ada dengan cara-cara kecil untuk membuat
yang baru.
• Inheritance atau pewarisan merupakan contoh
dari konsep ini.
Other Related Concept
• Tidak cukup hanya memahami konsep kunci
perancangan berorientasi objek. Terdapat
konsep terkait lain yang diperlukan untuk
memahami object oriented:
• Modular design and encapsulation
• Cohesion and coupling
Modular Design And Encapsulation [1]
• Modularity / modularitas mengacu pada
gagasan menyusun sistem besar dengan
mengembangkan sejumlah komponen yang
berbeda secara independen dan kemudian
mengintegrasikannya untuk menyediakan
fungsionalitas yang diperlukan.
• Modularity ketika digunakan dengan tepat akan
membuat modul individu relatif lebih sederhana
dan sistem lebih mudah dipahami
Modular Design And Encapsulation [1]
• Encapsulation / enkapsulasi mengacu pada
penyembunyian detail modul dari
implementasinya terhadap pihak external.
• Mekanisme menyembunyikan suatu proses dan
data dalam sistem untuk menghindari
interferensi, dan menyederhanakan penggunaan
proses itu sendiri
• Class access level (public, protected, private) adalah
implementasi dari konsep encapsulation
Cohesion And Coupling [1]
• Salah satu konsep OOP yang cukup penting
adalah low coupling dan high cohesion
• Coupling berhubungan dengan seberapa besar
ketergantungn class dengan class yang lain
• Cohesion berhubungan dengan responsibility
sebuah class.
Cohesion And Coupling [1]
• Semakin spesifik (tinggi) suatu responsibility
class, maka semakin rendah tingkat
ketergantungannya, begitu juga sebaliknya
• Tujuan utama dari konsep ini adalah, fleksibilitas
sebuah class, artinya class yang didesain dengan
low coupling dan high cohesion, akan mudah di
modifikasi
• Contoh Responsibility
pada suatu Class
BENEFIT AND DRAWBACKS
OF OO DEVELOPMENT
Benefit and Drawbacks of OO Development
• Benefit / Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem
aplikasi, ini yang membuat designer gampang membuat
kelas
• Membantu meningkatkan produktivitas, karena
kemampuan re-use software yang ada
• Lebih mudah untuk mengakomodasi perubahan,
fleksibel. Contoh: meskipun ada perubahan requirement
• Mengurangi resiko dalam system development
Benefit and Drawbacks of OO Development
• Drawbacks / Kerugian
• Pada sistem yang kompleks, dengan banyaknya objects
creation dan destruction serta objek yang berinteraksi
dengan cara yang kompleks, mengakibatkan poor
memory access times
• Susahnya mempelajari dan menggunakan OO
principles serta nyaman dengan konsep ini, khususnya
yang belum mengenal (terpaku dengan konsep
struktural)
TERIMA KASIH
ANALYST AND DESIGN
Defri Kurniawan
defri.kurniawan@dsn.dinus.ac.id
Content
• Pengenalan Analisis dan Desain Berorientasi Objek
• Perbedaan Kelas dan Objek
• Konsep Analisis dan Desain Berorientasi Objek
• Keuntungan dan Kerugian Pengembangan Berorientasi
Objek
INTRODUCTION OBJECT
ORIENTED ANALYST AND
DESIGN
What’s Object Oriented? [1]
• Object Oriented Paradigm saat ini merupakan
pendekatan yang populer dalam menganalisa,
desain, mengembangkan aplikasi khususnya
pada skala besar
Object Oriented?
• Suatu perspektif yang melihat element-elemen
yang diberikan oleh suatu situasi dengan cara
memecahnya ke dalam objek-objek dan
hubungannya
What’s is Object Oriented Development? [1]
• Pandangan Tradisional program komputer:
• Membuat code dari eksekusi suatu form
• Menjalankan sebagai urutan operasi
• Baik sebagai pengenalan pemrograman, namun
tidak untuk pengembangan sistem yang besar
• Pandangan Tradisional program komputer
memiliki kesulitan: Perilaku (Behaviour) sulit
digambarkan dalam bentuk suatu proses
What’s is Object Oriented Development? [1]
• Pengembangan berorientasi objek
memungkinkan pengembang aplikasi untuk
menentukan behaviour dengan
memberikan method terhadap objek yang
bersangkutan
What’s is Object Oriented Development?
• OOAD merupakan cara baru dalam memikirkan
suatu masalah dengan menggunakan model
yang dibuat menurut konsep sekitar dunia nyata
• Pada dasarnya terdiri dari 2 :
• OOA (Object Oriented Analysis)
• OOD(Object Oriented Design)
• Sedangkan OOP berkaitan dengan meralisasikan OOD
menggunakan bahasa pemrograman OO seperti Java
atau C++
Object Oriented Analyst Vs Design
• OOA Mempelajari domain permasalahan bisnis
untuk merekomendasikan perbaikan dan
menentukan kebutuhan sistem untuk
menyelesaikan permasalahan
• OOD Menentukan solusi teknis atau
rancangan/computer-based dimana solusi ini
berdasarkan kebutuhan sistem yang telah
diidentifikasi pada proses analisis
Why OOAD?
• Memudahkan pemanfaatan ulang code dan
arsitektur
• Lebih mencerminkan dunia nyata
• Kestabilan
• Perubahan kecil dalam requirement tidak berarti
perubahan yang signifikan dalam sistem yang sedang
dikembangkan
• Lebih mudah disesuaikan dengan perubahan
When should we use OO?
• Jika perangkat lunak (PL) yang dibangun cukup
kompleks
• Jika PL yang dibangun diperkirakan akan tumbuh
makin kompleks di masa mendatang
• Jika kita ingin membangun PL yang:
• Berdasar pada komponen yang telah pernah
ada sebelumnya (daur ulang)
• Dapat dipergunakan kembali di masa
mendatang (reusable) dan mungkin, kapanpun
dan di manapun
Benefit and Drawbacks of OO Development
• Benefit / Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem
aplikasi, ini yang membuat designer gampang membuat
kelas
• Membantu meningkatkan produktivitas, karena
kemampuan re-use software yang ada
• Lebih mudah untuk mengakomodasi perubahan,
fleksibel. Contoh: meskipun ada perubahan requirement
• Mengurangi resiko dalam system development
Benefit and Drawbacks of OO Development
• Drawbacks / Kerugian
• Pada sistem yang kompleks, dengan banyaknya objects
creation dan destruction serta objek yang berinteraksi
dengan cara yang kompleks, mengakibatkan poor
memory access times
• Susahnya mempelajari dan menggunakan OO
principles serta nyaman dengan konsep ini, khususnya
yang belum mengenal (terpaku dengan konsep
struktural)
CLASS VS OBJECT
Class vs Object [2]
Perbedaan Class dengan Object
• Sebuah class merupakan definisi abstract dari sebuah
object
• Obyek merupakan hasil instansiasi dari class Obyek
disebut juga dengan instance.
• Example:
• Class seperti cetakan kue, dimana kue yg dihasilkan dari
cetakan kue itu adalah object
• Warna kue bisa bermacam-macam meskipun berasal
dari cetakan yang sama (object memiliki sifat
independen)
Class vs Object [2]
Perbedaan Class dengan Object
• Class mendefinisikan struktur dan behaviour dari
masing-masing object di dalam sebuah class
• Class bertugas sebagai template untuk
pembuatan Object
• Class: konsep dan deskripsi dari sesuatu
• Object: instance dari class, bentuk (contoh)
Class vs Object [2]
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki, Mata
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Class vs Object [2]
Attribute (State):
Ban, Stir, Pedal Rem, Pedal
Gas,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute
Implementation of Class
Bagian-bagian Class Diagram
Implementation of Class
Contoh Implementasi Code dari Class Diagram
Classes of Object
• How many classes do you see?
Attribute
• Variable yang mengitari class, dengan nilai
datanya bisa ditentukan di object
• Variable digunakan untuk menyimpan nilai yang
nantinya akan digunakan pada program
• Variable memiliki jenis (tipe), nama dan nilai
• Name & age adalah atribute (variabel) dari class
Person
Method
• Method merupakan hal-hal yang bisa dilakukan oleh
obyek dari suatu class
• Method biasa dikaitkan dengan Behaviour / Perilaku
• Yang bisa dilakukan oleh method
– Merubah nilai atribut suatu obyek
– Menerima informasi dari obyek lain
– Mengirim informasi ke obyek lain untuk melakukan
sesuatu
Class = Method + Variable
Class
gir
Sepeda
kecepatan
variable
tampilkan kecepatan
ubah gir
metho
d
Object = Method + Variable yg Memiliki Nilai
Object
Sepedaku
gir = 3
instance variable
kecepatan = 10km/jam
tampilkan kecepatan ()
kecepatan = 10 km/jam
ubah gir (2)
gir = 5
instanc
e
method
Example Employee Class And Object
OBJECT ORIENTED
ANALYST AND DESIGN
CONCEPT
Key Concepts of Object-Oriented Design [1]
1. Central Role of Object
2. The Notion of A Class
3. Abstract specification of functionality
4. A Language To Define The System
5. Standard Solution
6. An Analysis Process To Model A System
7. The Notions Of Extendability And Adaptability
Key Concepts of Object-Oriented Design [1]
1. Central Role of Object
• Object sebagai inti dari desain perangkat lunak
bukan proses
• Proses rentan terhadap perubahan dan sebagian
sistem lama tidak dapat digunakan kembali (re-usable)
2. The Notion of A Class
• Kelas-kelas mengijinkan perancang software
untuk melihat object sebagai jenis entitas yang
berbeda
Key Concepts of Object-Oriented Design [1]
3. Abstract Specification of Functionality
• Dalam proses perancangan kita biasanya
menentukan properti-properti dari object
• Spesifikasi adalah abstrak bahwa hal itu tidak menempatkan
pembatasan pada bagaimana fungsi tersebut tercapai.
4. A Language To Define The System
• Unified Modelling Language (UML) telah terpilih
sebagai alat standar untuk menggambarkan
produk akhir dari kegiatan desain
Key Concepts of Object-Oriented Design [1]
5. Standard Solution
• Adanya struktur objek memfasilitasi
mendokumentasikan standar solution, disebut
pola desain / design pattern.
6. An Analysis Process To Model A System
• Object oriented menyediakan kita dengan cara
yang sistematis untuk menerjemahkan spesifikasi
fungsional ke desain konseptual
Key Concepts of Object-Oriented Design [1]
7. The Notions Of Extendability And
Adaptability
• Software memiliki fleksibilitas yang tidak biasanya
ditemukan dalam perangkat keras,
memungkinkan kita untuk memodifikasi entitas
yang ada dengan cara-cara kecil untuk membuat
yang baru.
• Inheritance atau pewarisan merupakan contoh
dari konsep ini.
Other Related Concept
• Tidak cukup hanya memahami konsep kunci
perancangan berorientasi objek. Terdapat
konsep terkait lain yang diperlukan untuk
memahami object oriented:
• Modular design and encapsulation
• Cohesion and coupling
Modular Design And Encapsulation [1]
• Modularity / modularitas mengacu pada
gagasan menyusun sistem besar dengan
mengembangkan sejumlah komponen yang
berbeda secara independen dan kemudian
mengintegrasikannya untuk menyediakan
fungsionalitas yang diperlukan.
• Modularity ketika digunakan dengan tepat akan
membuat modul individu relatif lebih sederhana
dan sistem lebih mudah dipahami
Modular Design And Encapsulation [1]
• Encapsulation / enkapsulasi mengacu pada
penyembunyian detail modul dari
implementasinya terhadap pihak external.
• Mekanisme menyembunyikan suatu proses dan
data dalam sistem untuk menghindari
interferensi, dan menyederhanakan penggunaan
proses itu sendiri
• Class access level (public, protected, private) adalah
implementasi dari konsep encapsulation
Cohesion And Coupling [1]
• Salah satu konsep OOP yang cukup penting
adalah low coupling dan high cohesion
• Coupling berhubungan dengan seberapa besar
ketergantungn class dengan class yang lain
• Cohesion berhubungan dengan responsibility
sebuah class.
Cohesion And Coupling [1]
• Semakin spesifik (tinggi) suatu responsibility
class, maka semakin rendah tingkat
ketergantungannya, begitu juga sebaliknya
• Tujuan utama dari konsep ini adalah, fleksibilitas
sebuah class, artinya class yang didesain dengan
low coupling dan high cohesion, akan mudah di
modifikasi
• Contoh Responsibility
pada suatu Class
BENEFIT AND DRAWBACKS
OF OO DEVELOPMENT
Benefit and Drawbacks of OO Development
• Benefit / Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem
aplikasi, ini yang membuat designer gampang membuat
kelas
• Membantu meningkatkan produktivitas, karena
kemampuan re-use software yang ada
• Lebih mudah untuk mengakomodasi perubahan,
fleksibel. Contoh: meskipun ada perubahan requirement
• Mengurangi resiko dalam system development
Benefit and Drawbacks of OO Development
• Drawbacks / Kerugian
• Pada sistem yang kompleks, dengan banyaknya objects
creation dan destruction serta objek yang berinteraksi
dengan cara yang kompleks, mengakibatkan poor
memory access times
• Susahnya mempelajari dan menggunakan OO
principles serta nyaman dengan konsep ini, khususnya
yang belum mengenal (terpaku dengan konsep
struktural)
TERIMA KASIH