1.introduction
DESCRIPTION
Materi Kuliah Pemrograman Beorientasi Object (PBO) - Teknik Informatika Universitas Bengkulu @2013/2014 - Endina Putri Purwandari, S.T., M.Kom - by:akachopa [ www.akachopa.com ]TRANSCRIPT
![Page 1: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/1.jpg)
Object Oriented Programming Informatics – UNIB 2014
![Page 2: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/2.jpg)
S1 TI, Univ.Bengkulu – 2008 S2 Ilmu Komputer, Univ. Indonesia – 2011 Bidang: ◦ Pengolahan Citra Digital, Image Forgery, Audit SI
Penelitian: ◦ Pengembangan Teknik Pemprosesan Citra Berbasis Komputasi
Numerik, Hibah Pasca UI 2011 Publikasi: ◦ ”Detection of Duplicated Region Forgery in Digital Image Using
Singular Value Decomposition”. International Conference on Advanced Computer Science and Information Systems. UI. 2010
◦ ”Analisis Topologi dan Populasi Penduduk Pemukiman Miskin menggunakan Teknologi Remote Sensing” .Jurnal Sistem Informasi.Magister Teknologi Informasi (MTI – UI). 2010
Sertifikat ◦ CISA (Certified Information System Auditor). Universitas Indonesia.
◦
![Page 3: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/3.jpg)
Prestasi ◦ The Best Session Presentation, International Conference on
Advanced Computer Science and Information Systems. Bali, 20-23 November 2010
◦ Mahasiswa Lulusan Terbaik, Wisuda Fakultas Ilmu Komputer, Universitas Indonesia, Februari 2011 dan Universitas Bengkulu, Juni 2008
![Page 4: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/4.jpg)
References ◦ Bernd Bruegge & Allen H.Dutoit. Object Oriented
Software Engineering: Using UML , Pattern, and Java. Pearson Education. ◦ Deitel (2006), JAVA How to Program, 7thed,
Pearson Education, Inc., New Jersey, USA. ◦ Bruce Eckel, Thinking in Java 4th ed, Prentice Hall
/ Pearson Education. 2006 ISBN 0-13-187248-6
![Page 5: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/5.jpg)
UTS: 25%, UAS: 25%, Laboratory: 25%, Assignments: 20%, Participation: 5%
![Page 6: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/6.jpg)
Individual ◦ No Cheating ◦ work individually ◦ Sanksi: Nilai dibagi dengan sejumlah mahasiswa dengan tugas
yang sama
![Page 7: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/7.jpg)
Tugas Kelompok: ◦ No Plagiarism ◦ Collaborate in team not tend to work individually ◦ Each member have responsibility & contribution ◦ Group processing and reflection ◦ Send to email ◦ NO sucker and NO free-reader ◦ Sanksi: nilai tugas dikurangi
![Page 8: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/8.jpg)
Ujian: ◦ Dilarang keras melakukan plagiarism Copy & paste jawaban mahasiswa lain Menyalin dari hand-out, catatan, buku Absen kurang dari 70%, dilarang ikut UTS & UAS TIDAK ADA UJIAN SUSULAN dan UJIAN PERBAIKAN Sanksi: Tidak ada nilai ujian dipotong 50%
![Page 9: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/9.jpg)
Aturan Laporan ◦ Font Cambria, size 11, Spasi 1 ◦ Print bolak-balik atau Booklet Printing ◦ TIDAK DIJILID ◦ Kumpul tepat waktu, tidak ada tugas susulan ◦ Tugas terlambat, TIDAK dinilai
Isi Laporan Paper ◦ Bab 1. Uraian Materi ◦ Bab 2. Contoh Kasus (Case study) diambil dari
Internet webpage/ paper ◦ Bab 3. Solusi berdasarkan Materi
![Page 10: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/10.jpg)
Usin
g UM
L, P
atte
rns,
and
Java
O
bjec
t-O
rient
ed S
oftw
are
Engi
neer
ing Chapter 1: Introduction
![Page 11: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/11.jpg)
Understand System Modeling Learn UML (Unified Modeling Language) Learn different modeling methods:
Use Case modeling Object Modeling Dynamic Modeling Issue Modeling
Component-Based Software Engineering ◦ Learn how to use Design Patterns and Frameworks
![Page 12: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/12.jpg)
http://conceptdraw.com/en/products/cd5/ap_uml.php
![Page 13: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/13.jpg)
http://conceptdraw.com/en/products/cd5/ap_uml.php
![Page 14: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/14.jpg)
http://conceptdraw.com/en/products/cd5/ap_uml.php
![Page 15: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/15.jpg)
Subsystems
Structured By
class... class... class...
Source Code
Implemented By
Solution Domain Objects
Realized By
System Design
Object Design
Implemen- tation Testing
Application Domain Objects
Expressed in Terms Of
Test Cases
?
Verified By
class.... ?
Requirements Elicitation
Use Case Model
Analysis
...and their models
![Page 16: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/16.jpg)
OOP-EMD 19
Karakteristik Utama dalam Pendekatan Terstruktur : ◦ Penekanan pada sesuatu yang harus dikerjakan
(algoritma pemecahan masalah). ◦ Program berukuran besar dipecah-pecah menjadi
program-program yang lebih kecil. ◦ Kebanyakan fungsi & prosedur berbagi data global ◦ Data bergerak secara bebas dalam sistem, dari satu
fungsi ke fungsi yang lain yang terkait. ◦ Fungsi-fungsi mentransformasikan data dari satu
bentuk ke bentuk yang lain. ◦ Pendekatan adalah pendekatan top-down.
![Page 17: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/17.jpg)
OOP-EMD 20
Data Global Data Global
Fungsi-1 Data Lokal
Fungsi-3 Data Lokal
Fungsi-2 Data Lokal
Fungsi-4 Data Lokal
![Page 18: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/18.jpg)
OOP-EMD 21
Karakteristik yang menjadi ciri-ciri dari pendekatan berorientasi object adalah : ◦ Pendekatan lebih pada object itu sendiri yang
mengkombinasikan data dan fungsionalitas dan bukan hanya pada prosedur/fungsi saja.
◦ Program besar dibagi menjadi object-object ◦ Struktur data dirancang dan menjadi karakteristik dari
object-object. ◦ Fungsi-fungsi yang mengoperasikan data tergabung
dalam suatu object yang sama. ◦ Data tersembunyi dan terlindung dari fungsi/prosedur
yang ada di luar ◦ Object-object dapat saling berkomunikasi dengan saling
mengirim message (pesan) satu sama lain. ◦ Pendekatan adalah bottom-up.
![Page 19: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/19.jpg)
OOP-EMD 22
Data
Fungsi
Data
Fungsi
Fungsi
Data
![Page 20: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/20.jpg)
OOP-EMD 23
Suatu sistem yang dibangun dengan metode berorientasi object adalah : ◦ Sebuah sistem yang komponennya di-enkapsulasi menjadi
kelompok data dan fungsi, yang dapat mewarisi atribut dan sifat dari komponen lainnya dan komponen-komponen tersebut saling berinteraksi satu sama lain [Meyer,1997]
Object : ◦ Abstraksi dari sesuatu yang mewakili sesuatu pada dunia nyata.
Pada OOP, Object adalah entitas pada saat run time. Object mempunyai siklus hidup : diciptakan, dimanipulasi,dihancurkan saat eksekusi. Sebuah object dapat diacu lewat namanya atau lewat referensinya (addressnya).
Class : ◦ Kumpulan object yang mempunyai atribut dan perilaku yang
sama. Class adalah definisi statik dari himpunan object yang mungkin lahir/diciptakan yang merupakan instansiati dari Kelas.
Jadi pada saat runtime, yang kita punyai adalah OBJECT. Di dalam teks program, yang kita lihat hanyalah CLASS.
![Page 21: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/21.jpg)
Objek adalah konsep yg paling penting pada Pemrograman Berorientasi Objek
Ketika suatu program berbasis objek, program tersebut menciptakan objek yang saling berkolaborasi di dalam memori
Objek adalah sesuatu yg memiliki keadaan, perilaku dan identitas
Contoh: ◦ LCD proyektor di ruang 304 Informatika Unsyiah ◦ Mesin ATM Bank Mandiri di kantor cabang Mandiri
Unsyiah ◦ Mobil Ford Fiesta bernomor BL 792 JD
![Page 22: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/22.jpg)
Setiap objek memiliki ciri tertentu yg secara kolektif mewakili keadaan objek itu.
Ciri objek => atribut objek Ciri objek memiliki nilai. ◦ Nilai dinamis ◦ Nilai statis
![Page 23: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/23.jpg)
Mobil
“BL 792 JD”
silver
“Syah Jenar”
Warna
No plat
Pemilik
Mobil
“BL 792 JD”
orange
“Syah Jenar”
Warna
No plat
Pemilik
Dinamis
Statis
![Page 24: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/24.jpg)
Perilaku objek berupa reaksi suatu objek terhadap suatu operasi yang dilakukan kepadanya.
Reaksi dapat berupa: ◦ Perubahan keadaan ◦ Tindakan melakukan operasi terhadap objek lain
dengan cara mengirim pesan
jump
![Page 25: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/25.jpg)
Suatu objek hanya bereaksi terhadap pesan yang dipahaminya saja
fly ??
![Page 26: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/26.jpg)
Setiap objek memiliki identitasnya masing-masing yang membedakannya dengan objek lain
Triplets… but each of them has its own identity
![Page 27: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/27.jpg)
Identitas suatu objek sudah bawaan. Tidak perlu ada atribut khusus untuk membedakan setiap objek.
class Computer { private int computerID; private Date datePurchased; private Processor processor; … }
Redundant
![Page 28: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/28.jpg)
Keadaan sekarang suatu objek merupakan hasil perilaku objek ◦ Jumlah uang yang ada di mesin ATM saat ini hasil
dari perilaku penarikan uang oleh nasabah Keadaan objek mempengaruhi perilakunya ◦ Jika stok uang di mesin ATM sudah habis, maka
perilaku penarikan uang oleh nasabah tidak dapat dilakukan
![Page 29: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/29.jpg)
OOP-EMD 32
Karakteristik Utama dari Sistem Berorientasi Object, adalah : ◦ Abstraksi ◦ Enkapsulasi ◦ Pewarisan (inheritance) ◦ Reuseability ◦ Spesialisasi & Generalisasi ◦ Komunikasi Antar Object ◦ Polymorphisme
![Page 30: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/30.jpg)
OOP-EMD 33
Abstraksi pada dasarnya adalah ◦ menemukan hal-hal yang esensial pada suatu object dan
mengabaikan hal-hal yang sifatnya insidental ◦ Pada pengembangan sistem informasi, ini berarti memfokuskan
pada : Apa itu Objek Apa ciri-ciri yang dimiliki object itu (atribut) Apa yang bisa dilakukan oleh object itu (fungsi) sebelum memutuskan bagaimana ia diimplementasikan.
Object-object Poligon Abstraksi
Kelas Poligon Atribut/Data : Titik Sudut Warna Batas Warna Fill Operasi/Fungsi : Gambar Putar Hapus
Segi-4 Segi-3
Segi-5
![Page 31: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/31.jpg)
Enkapsulasi atau pembungkusan atau penyembunyian informasi (data hiding) berarti ◦ meninggalkan aspek eksternal dari object yang dapat
diakses oleh object lain dan memfokus diri pada implementasi internal suatu object.
Rincian implementasi internal suatu object agar tersembunyi dari object lain & terpisah dari implementasi eksternal adalah antarmuka (interface) satu object dengan object lainnya.
Konsekuensinya : ◦ Implementasi internal dapat diubah tanpa
mempengaruhi aplikasi yang menggunakannya asalkan perubahan internal ini tidak mengubah antarmuka yang digunakan object yang bersangkutan untuk berkomunikasi dengan object lainnya.
![Page 32: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/32.jpg)
Objek tidak seharusnya membuka lebar semua informasi mengenainya. Ada informasi yang harus ditutupi dari klien. ◦ Nasabah tidak perlu tahu proses di dalam mesin
ATM sewaktu penarikan Encapsulation adalah teknik mempaketkan
informasi dengan menyembunyikan segala hal yg harus disembunyikan dan menampakkan segala hal yang bisa ditampakkan.
![Page 33: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/33.jpg)
Informasi yg biasanya disembunyikan: Atribut objek Cara objek melakukan sesuatu di
dalam perilakunya
40
area()
attributes: width height … behaviour: area()
return width * height;
HIDDEN BY OBJECT
![Page 34: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/34.jpg)
OOP-EMD 37
Pewarisan (inheritance) pada dasarnya mengijinkan objek dari suatu kelas untuk mengakses data & fungsi yang termuat dalam kelas lebih dahulu terdefinisi tanpa harus mendefinisikan ulang.
Pewarisan memungkinkan kita untuk menciptakan kelas baru (kelas turunan) yang merupakan perluasan atau spesialisasi dari kelas lain yang telah ada (kelas dasar)
Kelas turunan akan mewarisi anggota-anggota suatu kelas yang berupa data (atribut) dan fungsi (operasi) & pada kelas turunan memungkinkan menambahkan data serta fungsi yang baru.
Kelas turunan juga boleh melakukan definisi ulang terhadap fungsi-fungsi yang telah didefinisikan pada kelas dasar (overloading)
Dengan kata lain, dengan pewarisan memungkinkan kita menggunakan kembali kelas yang sudah ada (reuseablitiy)
![Page 35: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/35.jpg)
OOP-EMD 38
Kelas 1
Kelas 4
Kelas 3 Kelas 2
Kelas 5 Kelas 6 Kelas 7
Gene
ralis
asi
Spes
ialis
asi
Spesialisasi & Generalisasi adalah masalah sudut pandang pada konsep Pewarisan. Konsep Pewarisan memunculkan konsep Polimorfisme, dimana mengijinkan
penyesesuaian berbagai code untuk memenuhi keadaan tertentu.
![Page 36: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/36.jpg)
Tidak semua pesan dimengerti oleh suatu objek.
Untuk mengetahui pesan-pesan yang dimengerti, kita perlu merujuk ke interface dari objek tersebut.
Interface objek berupa informasi umum dari suatu objek. Contoh: method public
Interface: seumpama menu bagi objek tersebut.
![Page 37: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/37.jpg)
Interaksi antar objek dengan saling berkirim pesan.
Pesan dikirim ke objek A agar objek A melakukan sesuatu.
Format pesan: namaPesan (parameter jika ada)
![Page 38: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/38.jpg)
Pesan yg diterima objek diimplementasi dgn perilaku dalam suatu method.
Method berisi detil implementasi bagaimana objek merespon suatu pesan.
40
area()
attributes: width height … behaviour: area()
return width * height;
message
method
![Page 39: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/39.jpg)
Kelas: satu set objek yang mempunyai atribut dan perilaku yang sama.
Objek dari suatu kelas merupakan anggota (instance) dr kelas tersebut.
Daria Jane Brittany Jodie
girl class object
![Page 40: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/40.jpg)
Kelas ◦ Tampak di dalam
source code ◦ Code tidak
terduplikasi
Objek ◦ Memiliki data sendiri ◦ Akan aktif jika
program sedang berjalan
◦ Menggunakan memori
◦ Memiliki kumpulan operasi yang diberikan oleh kelas
![Page 41: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/41.jpg)
Class BankAccount Balance InterestYTD Owner Account_number
Balance 500 InterestYTD Owner Account_number
Balance 10,000 InterestYTD Owner Account_number
Operasi
MakeDesposit
Transfer
WithDraw
GetBalance
![Page 42: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/42.jpg)
Objek diciptakan dari satu kelas
BankAccount myAccount;
myAccount = new BankAccount;
![Page 43: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/43.jpg)
Persegi
Segitiga Segiempat Banyaksegi
Lingkaran
Bentuk
![Page 44: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/44.jpg)
Hubungan “is-a” ◦ Persegi is-a bentuk ◦ Segiempat is-a persegi ◦ Segiempat is-a bentuk
Satu kelas dapat dispesifikkan menjadi sub-kelas.
Sub-kelas akan mewarisi atribut dan perilaku super-kelas.
Sub-kelas bisa memiliki atribut dan perilaku sendiri yang spesifik.
![Page 45: 1.introduction](https://reader038.vdocuments.net/reader038/viewer/2022110114/547e6dc5b4af9f5d778b47b5/html5/thumbnails/45.jpg)
Satu pesan, banyak perilaku. Berkaitan dengan pewarisan. Pada pewarisan, sub-kelas bisa override
perilaku (method) super-kelas. Method yang dioverride namanya tetap sama tapi perilakunya beda.
Method overloading.