Object Oriented
Pendahuluan Pemodelan Sistem Berbasis
Objek
• Sejarah Object Oriented
Istilah-istilah Objek
2. Design
Fokus object design adalah perencanaan struktur data dan
algoritma yang diperlukan untuk implementasi setiap kelas.
Objek domain aplikasi dan objek domain komputer dijelaskan
dengan menggunakan konsep dan notasi berorientasi objek
yang sama.
Tahap-tahap metodologi berdasarkan Sistem
Development Life Cycle (SDLC), dengan
berorientasi objek dapat dijelaskan sebagai
berikut :
3. Implementasi
Kelas, objek dan relasinya dikembangkan dalam tahap
object design, akhirnya diterjemahkan ke dalam bahasa
pemrograman, basis data, dan implementasi perangkat
keras.
Karakteristiknya adalah:
Memiliki Identity (identitas)
Memiliki klasisfikasi
Memiliki state (kondisi/keadaan)
State sebuah objek dinyatakan dalam attribute/properties
Memiliki behavior (perilaku/method)
Perilaku suatu objek dinyatakan dalam operation.
Perilaku suatu objek adalah mendefinisikan bagaimana objek
tersebut bertindak dan memberikan reaksi.
CONTOH OBYEK
Atribut :
• Nomor Polisi
• Ban, Stir, Pedal Kopling/Gas/Rem,
• Warna, Tahun Produks
Behavior/Tingkah Laku :
• Cara Menghidupkan Mesin
• Cara Manjalankan Mobil
• Cara Memundurkan Mobil
Object : Mobil
Karakteristik Berorientasi Objek
Berorientasi objek mempunyai karakteristik sebagai berikut:
1. Encapsulation (pembungkusan)
• Pengkapsulan merupakan dasar untuk pembatasan ruang
lingkup program terhadap data yang diproses. Dengan
demikian objek atau prosedur dari luar tidak dapat
mengaksesnya. Data terlindung dari prosedur atau objek lain
kecuali prosedur yang berada dalam objek itu sendiri.
• Sebuah object yang terkapsulasi dapat dianggap sebagai
black box.
• Proses di dalamnya adalah tertutup bagi klien, yang hanya
memanggil metode yang menjadi interface.
• Dalam Java, dasar enkapsulasi adalah Class. Variabel atau
method sebuah class tidak dapat diakses dengan menjadikan
class tersebut private/protected.
CONTOH ENKAPSULASI
1. Penggunaan alat
Metodologi non objek menggunakan beberapa alat untuk
menggambarkan model seperti data flow diagram, entity
relationship diagram dan structure chart.
Sedangkan metodologi berorientasi objek menggunakan
satu jenis model dari tahap analisa sampai implementasi,
yaitu diagram objek.
Perbedaan Object Oriented dengan Non
Object
2. Data dan proses
Pada metodologi non objek, data dan proses dianggap
sebagai dua komponen yang berlainan
Sedangkan pada metodologi berorientasi objek, data dan
proses merupakan satu kesatuan, yaitu bagian dari objek.
3. Bahasa pemrograman
Metodologi non objek dipergunakan untuk melengkapi
pemrograman terstruktur pada bahasa generasi ketiga.
Sedangkan metodologi berorientasi objek dipergunakan
untuk pemrograman berorientasi objek dan bahasa
generasi keempat.
Pertemuan 2
UML
UML (Unified Modeling Language)
SEJARAH UML
b. Hubungan / Relationship
Staff PayRoll
Entry Data Lokasi Kerja
Staff HRD
Start
Component
Diagram
Composite
Structure Structure
Diagram Diagram
Deployment
Diagram
Object Diagram
Package
Diagram
Diagram
Sequence
Diagram
Activity
Diagram
Communication
Diagram
Interaction
Diagram
Behavior Interaction overview
Diagram Diagram
State Machine
Diagram
Timing Diagram
Use Case
Diagram
Artifact UML
Use-Case
Class Diagram State Diagram
Diagram add file
Writing
add file [ numberOffile= =MAX ] /
flag OFF
Openning
Use Case 1
close file
Actor A Actor B
close file
Closing
Reading
Use Case 2
<<entity>>
Customer
name
Domain Use Case 3
addr
receive()
withdraw() Deployment
Expert fetch()
send()
Diagram
UI
MF C
Class
DocumentApp
RogueW ave
global
¹®¼-°ü¸®
FileManager Ŭ ¶óÀ̾ðÆ®.EXE
¹®¼-°ü¸® ¾ÖÇø´
Package
L
Document Solaris
2: fetchDoc( )
¹®¼-°ü¸® ¿£Áø.EXE
Windows
NT
Diagram
user : »ç¿ëÀÚ GraphicFile
6: fillDocument ( )
File FileList
IBM
Mainframe
µ¥ÀÌŸº£À̽º¼-¹ö
5: readDoc ( )
document : Document
2: fetc hD oc( )
3: create ( )
4: create ( )
5: readD oc ( )
7: readFile ( )
8: fillFile ( )
Sequence Diagram
Executable System
Mekanisme Umum Pemodelan UML
Mekanisme pembangunan model, menggunakan:
specification : penjelasan rinci dari suatu model/elemen model
adornments : notasi yang menyediakan representasi visual dari
aspek-aspek penting lain
common divisions :
pembedaan antara kelas & objek
pemisahan antara interface & implementation
extensibility mechanisms : untuk mengembangkan model yang
ada:
- Stereotypes : unsur pembangun baru
- tagged values : menambah properti dari unsur pembangun
baru
- constraints :batasan-batasan antar entitas dalam model
Pertemuan 3
Activity Diagram
Activity Diagram
End Point
Activities
Fork (Percabangan)
Join (Penggabungan)
Decision
Penarikan
Uang dari
Account
Bank
Melalui ATM
Contoh Activity Diagram
Bagian Gudang Bagian Pembelian Supplier
Buat Terima
SPP SPP
Melakukan Konfirmasi
pembayaran pembayaran
Terima
pembayaran
Terima Buat
Kwitansi kwitansi
Contoh Activity Diagram
Contoh Activity Diagram
Proses
Absensi
Melakukan absen
harian
Ya Absen
Mencatat absen
Melakukan absen di
pegawai
form daftar hadir
Merekap absensi
berdasarkan form
daftar hadir
Contoh Activity Diagram
Pegawai TU
Proses
Rekap
Biodata
Pegawai Memberikan data
pegawai
Menerima data
pegawai
Proses
Pengola
han Memberikan data
Rekap Absen
daftar Menerima
rekap absen & data
pegawai
pegawai Membuat
daftar data pegawai
dan gaji
Menyerahkan Menerima
daftar data pegawai daftar data pegawai
dan gaji dan gaji
Menyetujui
daftar data pegawai
dan gaji
Contoh Activity Diagram
Kepala Sekolah Administrasi Pegawai
Proses
Pembuat
an
Menyerahkan Menerima
Laporan daftar data pegawai daftar data pegawai
dan gaji acc dan gaji acc
Membuat
Membuat
lap data pegawai dan
Slip gaji
lap gaji pegawai
Menerima
Lap data pegawai dan Menerima
lap gaji pegawai Slip gaji
Contoh Activity Diagram
Kepala Sekolah Administrasi Pegawai
Proses
Pembuat
an
Menyerahkan Menerima
Laporan daftar data pegawai daftar data pegawai
dan gaji acc dan gaji acc
Membuat
Membuat
lap data pegawai dan
Slip gaji
lap gaji pegawai
Menerima
Lap data pegawai dan Menerima
lap gaji pegawai Slip gaji
Contoh Activity Diagram
Procedure Berjalan (Acknowledgments Toeko triyanto)
Proses bisnis pelayanan pelanggan perubahan daya pada PT PLN
adalah sebagai berikut :
input pendaftaran
pelanggan
cetak formulir
pendaftaran
menyetujui formulir
pendaftaran
membuat surat
persetujuan
menyetujui surat
persetujuan
Jawaban :
Studi Kasus
2. Kasus pendaftaran siswa
Prosedur penerimaan siswa pada Madrasah abc saat ini masih
bersifat manual, adapun prosedurnya adalah sebagai berikut:
• Prosedur Pembelian Formulir
Dalam proses melakukan pendaftaran maka calon siswa
datang ke sekolah lalu menemui bagian pendaftaran dan
membeli formulir pendaftaran. Bagian pendaftaran mencatat
di buku pendaftaran.
• Prosedur Mengembalikan Formulir Pendaftaran
Setelah formulir diisi semuanya, calon siswa
mengembalikannya ke sekolah dan mendatangi bagian
pendaftaran. Bagian pendaftaran memberikan bukti
pendaftaran dan menyimpan.
Studi Kasus
2. Kasus pendaftaran siswa
Prosedur penerimaan siswa pada Madrasah abc saat ini
masih bersifat manual, adapun prosedurnya adalah sebagai
berikut:
• Prosedur Pembayaran
Calon siswa membawa bukti nomor pendaftaran lalu
mendatangi bagian tata usaha untuk melakukan
pembayaran. Bagian tata usaha memberikan kwitansi dan
menyimpan bukti pembayaran itu.
• Prosedur Laporan Penerimaan Siswa Baru
Setelah jadwal penerimaan siswa baru ditutup, maka
bagian pendaftaran membuat laporan kepada Bagian
Waka UR Kesiswaan.
• Buatlah diagram aktivity dari sistem diatas
Studi Kasus
3. Studi kasus pada koperasi
Usecase Diagram
Deskripsi USE CASE
Simbol actor :
USE CASE Diagram
Nasabah
Maintain curriculum
USE CASE Diagram
3. Generalization/inheritance antara use case
Generalization/inheritance digambarkan dengan sebuah garis
berpanah tertutup pada salah satu ujungnya yang
menunjukkan lebih umum
Nasabah Buka
Deposito
USE CASE Diagram
4. Generalization/inheritance antara actor
Gambarkan generalization/inheritance antara actors secara
vertical dengan inheriting actor dibawah base/parent use
case
USE CASE Diagram
Sequence Diagram
Sequence Diagram
Operator Keterangan
alt Alternatif dari banyak fragmen. Hanya yang kondisinya
true yang akan dijalankan
opt Optional; fragmen akan dijalankan jika kondisi yang
mendukungnya true
Looping, Syarat dan Like
Operator Keterangan
par Paralel; setiap fragmen dijalankan secara paralel
loop Looping, fragmen mungkin dijalankan berulang kali dan
guard menunjukkan basis iterasi
region Critical region; fragmen hanya dapat mempunyai satu
thread untuk menjalankannya
neg Negatif; fragmen menunjukkan interaction yang salah
ref Reference; menunjukkan ke sebuah interaction yang
didefinisikan pada diagram yang lain
sd Sequence diagram
Contoh kasus Penggajian
(Acknowledgments Evi Lutfi Muktar)
DIAGRAM INPUT
Kepala Sekolah
Input NIP
Input Data
Pegawai
Simpan ()
Display Data
Pegawai
Tambah ()
Edit ()
Batal ()
Keluar ()
SEQUENCE Open
Get NIP () Get NIP ()
INPUT DATA
PENDIDIKAN
Input Data
Pendidikan
Simpan ()
Display Data
Pendidikan
Tambah ()
Edit ()
Batal ()
Keluar ()
SEQUENCE Open
Get NIP () Get NIP ()
Display NIP,
KELUARGA
Keluarga
Simpan ()
Display Data
Keluarga
Tambah ()
Edit ()
Batal ()
Keluar ()
Class Diagram
Class Diagram
Contoh:
-name : string [1] = “untitled” {read only}
Properti, Atribut dan Asosiasi
Keterangan :
+/- = tanda visibility, + public / - private
name = atribut, bagaimana class tersebut mengacu pada
atribut
string = tipe dari atribut, menunjukkan sebuah batasan
tentang objek apa yang dapat diletakkan dalam atribut
tersebut
[1] = multiplicity
untitled = devault value, nilai objek yang baru dibuat jika
atribut tidak dispesifikasi selama pembuatannya
{property string}, memungkinkan untuk menunjuk properti
tambahan, misalnya read only yang berarti bahwa klien tidak
dapat mengubah properti tersebut
Properti, Atribut dan Asosiasi
Barang
+KodeBrg : String
+NamaBrg : String
+HargaBrg : Long
+StokBrg : Int
-TambahData() : void
-HapusData() : void
-UbahData() : void
-HitungStok() : void
Multiplicity
1 Hanya satu
1..* Lebih dari sama dengan satu
1..n Lebih dari sama dengan satu dimana n lebih dari satu
n..m Lebih dari sama dengan N dan kurang dari sama dengan M.
Dimana M dan N lebih dari satu.
Multiplicity
Mandatory
Menunjukkan sebuah batas bawah yang bernilai satu (1)
atau mungkin lebih
Multiplicity
Single-valued
Menunjukkan sebuah batas atas yang bernilai satu (1)
Multivalued
Menunjukkan sebuah batas atas yang bernilai lebih dari
satu (1) dan biasanya ditulis dengan tanda *
Asosiasi Bidireksional
pemilik
Orang Mobil
0..1 *
NIK
NAMA
ALAMAT
TGLLAHIR
Contoh dependency
Mobil
Entitas (Entity)
Relasi (Relationship)
Atribut (Attribute)
Kardinalitas (Kardinality)
Modalitas (Modality)
Komponen ERD
Entitas (Entity)
Relasi (Relationship)
Atribut (Attribute)
0..1 1..*
Departemen memiliki Pegawai
Metodologi ERD
Metode Keterangan
Metode Keterangan
9. Gambar ERD Mengatur ERD dari langkah 6
dengan atribut dengan menambahkan entitas
atau relasi yang ditemukan pada
langkah 8
10. Periksa hasil Apakah ERD sudah
menggambarkan system yang
akan dibangun?
Contoh Kasus:
1. Menentukan entitas
Entitasnya : pengawas, bagian, pegawai, proyek
Contoh Kasus:
1. Menentukan entitas
Entitasnya : pengawas, bagian, pegawai, proyek
• Sebuah perusahaan mempunyai beberapa
bagian. Masing-masing bagian mempunyai
pengawas dan setidaknya satu pegawai. Pegawai
ditugaskan paling tidak di satu bagian (dapat pula
dibeberapa bagian). Paling tidak satu pegawai
mendapat tugas di satu proyek. Tetapi seorang
pegawai dapat libur dan tidak dapat tugas di
proyek.
Contoh Kasus:
pengawas menjal
ankan
Proyek menggunakan
Contoh Kasus:
3. Gambar ERD sementara
Hubungkan entitas sesuai dengan matrik relasi yang dibuat
Ditugaskan ke
Ditugaskan ke
Ditugaskan ke
Ditugaskan ke
Atribut Entitas
Nama bagian Bagian
Buatlah ERD
Pertemuan 10
State
Initial State
Final State
Simbol
UML juga memberi pilihan untuk menambahkan detil ke
dalam simbol tersebut dengan membagi tiga area yaitu
nama state, variabel dan aktivitas.
NState Name
Variabel Name
Activity
2. Event Iteration
Event berulang pada state yang sama
/ event
3. Guard
Suatu kondisi atau keterangan
[guard]
State, Event dan Transition
Stop
Play Load
Stop Closed Stop
Load
Play
Initial dan Final State
Stop
Off
Play Load
Stop Closed Stop
Load
Play
Off
Guard Condition
Stop
Load
Stop
Play[ CD present]
Playing Open
Play[ CD present]
Stop
Play Load
Guard Condition
Play[no CD]
Play [no CD] /
Closed close drawer
Stop Load/ close drawer
Play[ CD present] Load/ open
drawer
Playing Play[ CD present] / close drawer Open
Load / Open drawer
Play
Stop
Entry dan Exit Action
Entry action dijalankan setiap saat jika state menjadi aktif,
segera setelah action transition selesai. Sebagai contoh jika CD
player dalam state open dan tombol play ditekan, drawer akan
menutup dan transition play akan dijalankan. Hasilnya state
playing menjadi aktif dan entry action pada state playing segera
dilakukan. Exit action akan dijalankan kapanpun saat sebuah
action ditinggalkan.
Playing
Entry/find start of track
Entry/lower head
Entry/raise head
Do/play track
Play
Completion Transition
Completion transition adalah transition yang tidak
mempunyai nama event. Ini bisa ditrigger ketika sebuah
state activity internal berhenti secara normal tanpa
interupsi oleh event dari luar. Ketika CD player dimainkan
user bisa menekan tombol play atau stop untuk interupsi.
Jika salah satu dari event ini terdeteksi maka track akan
berakhir. Dengan demikian calon transition yang harus
dijalankan tinggal completion transition. Yang terjadi
berikutnya tergantung pada apakah track yang baru saja
selesai adalah track terakhir atau bukan.
Completion Transition (lanjutan)
Completion transition mempunyai guard condition untuk
membedakan diantara dua kasus. Jika yang baru selesai adalah
track terakhir, transition pada state closed akan dijalankan dan
CD berhenti, tetapi jika tidak transition ke dirinya sendiri akan
dijalankan dan penhitung track akan naik, state playing akan
masuk kembali dan CD player akan menjalankan track
berikutnya.
Last track played
Playing
[no last track] / Entry/find start of track
increment track count Entry/lower head Closed
Entry/raise head
Do/play track
Stop
Play
Internal Transition
Internal transition ditulis didalam state yang diberi nama
dengan event yang menyebabkannya. Sebagai contoh
adalah informasi yang ditampilkan dalam CD player.
Playing
Entry/find start of track
Entry/lower head
Entry/raise head
Do/play track
Info/display time
Play
Composite State
Composite state mempunyai properties sebagai berikut:
1. Jika composite state active, salah satu dari sub state harus
aktif.
2. Jika sebuah event terdeteksi ketika sebuah obyek ada
didalam composite state, maka akan bisa mentrigger
transition keluar dari composite state itu sendiri maupun dari
sub state aktif saat itu.
Selesai
Reject
[Keluar/batal]
GettingUserName
[Ulangi, masukkan UserName&password]
[Submit]
[Not Valid]
[pindah kursor ke username]
Selesai
[valid] Validating GettingPassword
[submit]
Contoh soal
Collaboration Diagram
Component Diagram
Collaboration Diagram
• Collaboration diagram adalah perluasan dari obyek diagram (
obyek diagram menunjukkan obyek-obyek dan hubungannya
satu dengan yang lain). Collaboration diagram menunjukkan
message-message obyek yang dikirim satu sama lain.
Konsultan
1: startsearch
[found] 4.1 : open(file)
[not found] 4.2: new(file)
*[working 7 : useApps( )
[done]10 : closeAndStore ( )
2: Search ( )
GUI repository
3: Result ( )
13: store ( )
5: openAndSaveAs
(proposal)
8 : useApps( )
11: closeAndsave( ) MS Office Proposal
6: createFile( )
9: modify ( )
12: close ( )
Pembuatan sebuah Obyek
urutan skenarionya (modelnya) adalah
sebagai berikut :
1. Konsultan mencari proposal yang cocok untuk dipakai
kembali dari repository.
2. Jika proposal yang cocok ditemukan, file tersebut akan
dibuka dengan software office yang sesuai kemudian
disimpan dengan nama yang baru untuk proposal baru.
3. Jika tidak ada proposal yang cocok maka akan dibuat
file proposal baru dengan software office.
4. Ketika mengerjaan proposal, konsultan menggunakan
software office yang sesuai.
5. Setelah pengerjaan proposal selesai, maka file tersebut
akan diletakkan direpository.
Menunjukkan hasil operasi
Customer
1: totalPrice :=Computer(itemPrice, VAT)
calculator
Obyek Aktif
librarian 4:get(litle)
3:returninfo(title) pekerja
1: refernceRequest(title)
2:lookUp(title)
pekerja
patron
Obyek Aktif
1. component diagram merepresentasikan dunia riil item
yaitu component software.
Tipe-tipe component
1. deployment diagram
2. work product component
3. execution componen
Hubungan Component dg Class
1. Penjelasan gambar:
1. Komponen A bergantung pada komponen B. Terdapat
satu atau beberapa kelas di komponen A yang
bergantung pada satu atau beberapa kelas di komponen
B.
2. Dependensi memiliki implikasi kompilasi, dimana
komponen A tergantung pada komponen B. A tidak bisa
dikompilasi sampai B telah selesai dikompilasi.
Diagram component
Package Diagram
Deployment Diagram
Deployment Diagram
• Diagram Deployment menunjukkan tata letak sebuah sistem
secara fisik, menampakkan bagian-bagian software yang
berjalan pada bagian-bagian hardware.
SQL Server
oracle gateway test gateway
gateway
Pertemuan 13
Presentasi I
Tugas Kelompok
Pertemuan 14
Presentasi II
Tugas Kelompok