tugas pertemuan 9
PERTEMUAN 9
PERANCANGAN
BERORIENTASI OBJEK
MATERI PEMBAHASAN
1. Identifikasi Kelas Objek
2. Istilah dalam Objek Oriented
3. Hubungan Antara Objek dan Kelas
4. Karakteristik Objek
5. Kelas Perancangan
6. Pendekatan Pemrograman Terstruktur
7. Pendekatan Berorientasi Objek
1. PENDAHULUAN
▪ Sistem berorientasi objek terdiri dari objek yang
berinteraksi yang mempertahankan keadaan (state)
lokal dan menyediakan operasi pada state tersebut.
▪ Representasi state bersifat pribadi dan tidak dapat
diakses langsung dari luar objek.
▪ Proses desain berorientasi objek melibatkan
perancangan kelas objek dan hubungan antara
kelas-kelas tersebut.
▪ Mengubah implementasi suatu objek atau
menambahkan metode atau operasi tidak
mempengaruhi objek lain dalam sistem.
▪ Hal-hal yang diperhatikan dalam desain berorientasi
objek:
1. Memahami dan mendefinisikan konteks dan
interaksi eksternal dengan sistem.
2. Desain arsitektur sistem.
3. Identifikasi objek utama dalam sistem.
4. Kembangkan model desain.
5. Tentukan antarmuka.
PENDAHULUAN - Lanjutan
▪ Desain berorientasi objek biasanya
diimplementasikan dengan bahasa pemrograman
berorientasi objek.
▪ Keuntungan utama dari desain OO adalah:
a. Sistem Analis dapat menghemat waktu dan
menghindari kesalahan dengan menggunakan objek
secara modular.
b. Programer dapat menerjemahkan desain ke dalam
kode. Objek yang baru dapat dibuat tanpa mengubah
kode yang sudah ada.
c. Bekerja dengan modul program yang dapat digunakan
kembali (reuse) yang telah diuji dan diverifikasi.
PENDAHULUAN - Lanjutan
A. IDENTIFIKASI KELAS OBJEK
▪ Tujuan mengidentifikasi kelas objek dalam sistem
berorientasi objek:
1. Gunakan analisis gramatikal dari deskripsi bahasa alami.
Objek dan atribut adalah kata benda; operasi atau layanan
adalah kata kerja.
2. Gunakan entitas nyata (benda) dalam domain aplikasi
seperti mobil, peran seperti manajer atau dokter, acara
seperti permintaan, interaksi seperti pertemuan, lokasi
seperti kantor, unit organisasi seperti perusahaan.
3. Gunakan analisis berbasis skenario dimana berbagai
skenario penggunaan sistem diidentifikasi dan dianalisis
secara bergantian.
B. Istilah dalam Objek Oriented
1. OBJEK (Object)
▪ Objek adalah konsep atau abstraksi tentang sesuatu
yang memiliki arti untuk aplikasi yang akan
dikembangkan
▪ Objek diwakili dengan kata benda
▪ Objek dapat berupa:
✓ Objek orang/manusia: Karyawan, Mahasiswa
✓ Objek tempat: Kantor, Gedung, Toko
✓ Objek abstrak: Transaksi, Jadwal, Peminjaman
✓ Objek organisasi: Divisi-IT, HRD
✓ Objek peralatan/benda: Mobil, Buku, Baju
2. ATRIBUT (Attribute)
▪ Suatu objek memiliki atribut tertentu yang merupakan
karakteristik yang menggambarkan objek.
▪ Suatu atribut dapat mengambil sebuah nilai yang
ditentukan berdasarkan domain yang dihitung.
▪ Domain merupakan satu himpunan nilai-nilai spesifik.
▪ Contoh: kelas MOBIL memiliki sebuah atribut WARNA.
Domain nilai untuk warna adalah {putih, hitam, perak,
abu-abu, biru, merah, kuning, hijau}.
▪ Objek dapat memiliki atribut khusus yang disebut state.
Keadaan suatu objek adalah kata sifat yang
menggambarkan status objek saat ini.
▪ Misalnya rekening bank dapat aktif, tidak aktif, tertutup,
atau dibekukan
3. METODE (Method)
▪ Suatu metode mendefinisikan tugas-tugas spesifik
yang dapat dilakukan oleh suatu objek.
▪ Metode dituliskan dengan kata kerja yang
menggambarkan apa dan bagaimana suatu objek
melakukan sesuatu.
▪ Misalnya: objek PELANGGAN dapat melakukan
tugas-tugas tertentu seperti melakukan pemesanan,
membayar tagihan, dan mengubah alamatnya.
4. PESAN (Message)
▪ Pesan (Message) adalah perintah yang memberi
tahu suatu objek untuk melakukan metode tertentu.
▪ Misalnya: pesan TAMBAHKAN SISWA mengarahkan
kelas SISWA untuk menambahkan nomor siswa,
nama, dan data lain tentang siswa itu. Demikian
pula, pesan bernama HAPUS SISWA memberi tahu
kelas SISWA untuk menghapus instance Siswa.
▪ Pesan yang sama untuk dua objek berbeda dapat
menghasilkan hasil yang berbeda.
CONTOH PESAN
▪ Objek INSTRUCTOR mengirim pesan ENTER GRADE
ke instance kelas STUDENT RECORD.
▪ Objek INSTRUCTOR dan kelas STUDENT RECORD
dapat digunakan kembali dengan sedikit modifikasi,
di sistem informasi sekolah lain dimana banyak
atribut dan metode akan serupa
CONTOH PESAN
▪ Kelas adalah deskripsi umum yang menggambarkan
sebuah kumpulan berisi objek-objek yang sama.
▪ Semua objek dalam kelas berbagi atribut dan metode yang
sama, sehingga kelas seperti blue print, atau template
untuk semua objek di dalam kelas.
▪ Superclass adalah generalisasi dari satu himpunan kelaskelas yang berhubungan.
▪ Subclass adalah spesialisasi dari superclass.
▪ Contoh: superclass kendaraanBermotor adalah
generalisasi dari kelas Truk, SUV, Minibus dan Car. Subclass
Minibus mewarisi semua atribut kendaraanBermotor,
tetapi juga menggabungkan atribut tambahan yang
spesifik hanya untuk Minibus.
5. KELAS (Class)
CONTOH KELAS DAN SUBKELAS
Berorientasi Objek?
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki, Mata
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Rem, Pedal Gas,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute → Variable(Member)
Behavior → Method(Fungsi)
C. Hubungan Antara Objek dan Kelas
▪ Hubungan (relationship) memungkinkan objek untuk
berkomunikasi dan berinteraksi ketika mereka
melakukan fungsi bisnis dan transaksi yang diperlukan
oleh sistem.
▪ Hubungan menggambarkan apa yang perlu diketahui
objek satu sama lain, bagaimana objek merespon
perubahan pada objek lain, dan efek keanggotaan dalam
kelas, superclass, dan subclass.
▪ Beberapa hubungan lebih kuat dari pada yang lain
(seperti hubungan antara anggota keluarga lebih kuat
dari satu hubungan antara kenalan biasa). Hubungan
terkuat disebut warisan.
Perbedaan Class dan Object
• Class: konsep dan deskripsi dari sesuatu
– Class mendeklarasikan method yang dapat digunakan
(dipanggil) oleh object.
• Object: instance dari class, bentuk (contoh)
nyata dari class
– Object memiliki sifat independen dan dapat digunakan
untuk memanggil method.
• Contoh Class dan Object:
– Class: mobil.
– Object: mobilnya pak Joko, mobilku, mobil berwarna
merah.
Perbedaan Class dan Object
▪ Satu class dapat memiliki banyak object, dan
setiap object tersebut mempunyai sifat yang sama
persis seperti yang didefinisikan dalam class
tersebut.
▪ Contoh Class dan Object:
– Class: Fruit
– Object: Pisang, Mangga, Apel
Perbedaan Class dan Object
▪ 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).
KARAKTERISTIK OBJEK
A. Enkapsulasi (Encapsulation)
▪ Data dan prosedur/fungsi dikemas bersama-sama dalam
suatu objek, sehingga prosedur/fungsi lain dari luar
tidak dapat mengaksesnya.
▪ Data terlindung dari prosedur atau objek lain kecuali
prosedur yang berada dalam objek tersebut.
▪ Merupakan pembatasan ruang lingkup program
terhadap data.
▪ Enkapsulasi memungkinkan objek untuk digunakan
sebagai komponen modular di mana saja dalam sistem,
karena objek mengirim dan menerima pesan tetapi tidak
mengubah metode internal objek lain.
ENCAPSULATION
• Mekanisme menyembunyikan suatu proses dan data
dalam sistem untuk menghindari interferensi, dan
menyederhanakan penggunaan proses itu sendiri
– Tongkat transmisi (gigi) pada mobil
– Tombol on/off/pengaturan suhu pada AC
• Class access level (public, protected, private) adalah
implementasi dari konsep encapsulation
• Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable(memiliki nilai yang
berbeda di setiap objek) sebagai private
2. mendeklarasikan method yang sifatnya public untuk
mengakses variable tersebut
Contoh Enkapsulasi
ACCESS MODIFIER
Modifier Dalam Class
yang Sama
Dalam
Package yang
Sama
Dalam
SubClass
Dalam
Package Lain
private ✓
tanpa
tanda
✓ ✓
protected ✓ ✓ ✓
public ✓ ✓ ✓ ✓
B. Pewarisan (Inheritance)
▪ Pewarisan adalah salah satu pembeda utama antara
sistem konvensional dan sistem berbasis objek.
▪ Subkelas Y mewarisi semua atribut dan operasioperasi yang terkait dengan superkelas X. Ini berarti
semua struktur dan algoritma data yang secara
orisinal dirancang dan diimplementasikan untuk X
segera tersedia untuk Y
▪ Perubahan apa pun pada atribut-atribut atau
operasi-operasi yang dimuat ke dalam sebuah
superkelas, akan diwarisi oleh semua subkelas.
Pewarisan (Inheritance)
▪ Suatu class dapat
mewariskan atribut dan
method kepada class lain
(subclass), serta
membentuk class hierarchy
▪ Penting untuk Reusability
▪ Java Keyword:
extends
▪ VB.Net Keyword:
Inherits
Pewarisan (Inheritance) di Java
▪ Nama_Class_Turunan, adalah nama class yang
akan dibuat sebagai class turunan atau subclass.
▪ Class_Induk, adalah class yang ditunjuk sebagai
SuperClass untuk class turunan.
Inheritance (Pewarisan) di VB.Net
▪ Inheritance dalam VB.NET dilakukan dengan
menggunakan keyword Inherits.
CONTOH PEWARISAN
C. Polimorfis (Polymorphism)
▪ Merupakan konsep yang menyatakan bahwa sesuatu
yang sama dapat mempunyai bentuk dan perilaku
berbeda.
▪ Polimorfis juga mempunyai arti bahwa operasi yang
sama mungkin mempunyai perbedaan dalam kelas
yang berbeda.
▪ Polimorfis sangat mengurangi usaha yang
diperlukan untuk memperluas perancangan sistem
berorientasi objek
Polymorphism
▪ Kemampuan untuk memperlakukan object
yang memiliki perilaku (bentuk) yang berbeda
▪ Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggunakan nama
yang sama untuk beberapa method yang berbeda
parameter (tipe dan atau jumlah).
2. Overriding: Kemampuan subclass untuk menimpa
method dari superclass, yaitu dengan cara
menggunakan nama dan parameter yang sama pada
method.
CONTOH POLIMORFIS
KELAS-KELAS PERANCANGAN
▪ Model kebutuhan menentukan serangkaian kelas-kelas
analisis yang masing-masing kelas menggambarkan
beberapa elemen masalah yang fokus pada masalah yang
dilihat oleh pengguna.
▪ Himpunan kelas-kelas perancangan adalah
1. Memperhalus kelas-kelas analisis dengan menyediakan
detail perancangan yang memungkinkan kelas-kelas bisa
diimplementasikan.
2. Menciptakan suatu himpunan kelas-kelas perancangan
yang baru, yang mengimplementasikan suatu
infrastruktur perangkat lunak yang mendukung solusi
bisnis.
Kelas perancangan yang merepresentasikan
lapisan berbeda dari perancangan arsitektur
a. Kelas-kelas antarmuka. Pengguna menentukan semua abstraksi
yang diperlukan untuk interaksi manusia dengan komputer
b. Kelas-kelas bisnis. Kelas-kelas mengidentifikasi atribut dan
operasi/metode yang dibutuhkan untuk mengimplementasikan
beberapa elemen ranah bisnis.
c. Kelas-kelas proses. Mengimplementasikan abstraksi bisnis yang
levelnya lebih rendah untuk sepenuhnya mengelola kelas-kelas
ranah bisnis.
d. Kelas-kelas persisten. Merepresentasikan data store yang akan
terus ada setelah eksekusi perangkat lunak.
e. Kelas-kelas sistem. Mengimplementasikan manajemen
Perangkat Lunak dan mengendalikan fungsi-fungsi agar mampu
mengoperasikan sistem dan berkomunikasi dengan dunia luar
A. Karakteristik Kelas Perancangan
a. Lengkap dan cukup
✓ Suatu kelas perancangan seharusnya menjadi
enkapsulasi lengkap dari semua atribut dan metode
yang dapat layak diharapkan.
✓ Cukup berarti memastikan bahwa kelas perancangan
berisi hanya metode-metode yang cukup untuk
mencapai tujuan kelas.
✓ Contoh: kelas Scene adalah lengkap hanya jika kelas ini
berisi semua atribut dan metode yang dapat layak
diasosiasikan dengan pembuatan suatu scene video.
b. Sederhana
▪ Metode-metode yang dihubungkan dengan
sebuah kelas perancangan harus fokus ke
pencapaian satu fungsi spesifik pada kelas.
▪ Contoh: kelas VideoClip memiliki atribut
StartPoint dan EndPoint untuk mengindikasikan
titik awal dan titik akhir.
Karakteristik Kelas Perancangan - Lanjut
c. Kohesi tinggi
▪ Kelas perancangan kohesif adalah single minded.
Artinya kelas ini memiliki satu kumpulan kecil
tanggung jawab yang fokus dan menerapkan
atribut dan metode untuk menjalankan tanggung
jawab tersebut.
▪ Contoh: kelas VideoClip dapat berisi satu
kumpulan metode-metode untuk mengedit klip
video. Kohesi dijaga asalkan setiap metode fokus
semata-mata pada atribut-atribut yang
diasosiasikan dengan klip video.
Karakteristik Kelas Perancangan - Lanjut
d. Keterhubungan rendah
▪ Jika sebuah model perancangan memiliki keterhubungan
tinggi (semua kelas perancangan berkolaborasi dengan
semua kelas perancangan lainnya), sistem menjadi sulit
diimplementasikan, diuji, dan dipelihara.
▪ Kelas perancangan pada subsistem memiliki hanya
pengetahuan terbatas tentang kelas-kelas lain.
▪ Pembatasan ini dinamakan Law of Demeter yang
menyatakan bahwa suatu metode seharusnya hanya
mengirim pesan ke metode-metode pada kelas-kelas yang
berdekatan.
Karakteristik Kelas Perancangan - Lanjut
PENDEKATAN
PEMROGRAMAN TERSTRUKTUR
Karakteristik Pendekatan Berorientasi Prosedur/Fungsi:
a. Penekanan pada sesuatu yang harus dikerjakan
(algoritma pemecahan masalah)
b. Program berukuran besar dipecah menjadi programprogram yang lebih kecil
c. Kebanyakan fungsi/prosedur berbagi data global
d. Data bergerak secara bebas dalam sistem dari satu fungsi
ke fungsi yang lain yang terkait
e. Fungsi-fungsi mentransformasi data dari satu bentuk ke
bentuk yang lain
f. Menggunakan pendekatan top-down
Struktur Umum Pemrograman
Terstruktur
Hubungan Data dan Fungsi pada
Pemrograman Terstruktur
PENDEKATAN BERORIENTASI OBJEK
Karakteristik Pada Pendekatan Berorientasi Objek:
✓ Pendekatan lebih kepada data (bukan fungsi/prosedur)
✓ Program besar dibagi menjadi beberapa objek
✓ Struktur data dirancang dan menjadi karakteristik dari
objek-objek
✓ Fungsi-fungsi yang mengoperasikan data tergabung dalam
suatu objek yang sama
✓ Data tersembunyi dan terlindung dari fungs/prosedur yang
ada di luar
✓ Objek-objek dapat saling berkomunikasi dengan saling
mengirim message satu sama lain
✓ Menggunakan pendekatan bottom-up
Pengorganisasian Data dan Metode (Fungsi) pada
Pendekatan Berorientasi Objek
6. Pemrograman Terstruktur vs
Pendekatan Berorientasi Objek
A. PEMROGRAMAN TERSTRUKTUR
✓ Permasalahan dilihat sebagai urutan sesuatu yang harus
dikerjakan, seperti input – proses – output.
✓ Fokus utamanya pada fungsi atau prosedur
✓ Data global pada program yang sangat besar, sangat sulit
untuk dilacak. Jika merevisi data global maka merevisi setiap
fungsi yang menggunakan data global.
✓ Tidak menggambarkan kasus nyata dengan baik, karena
fungsi-fungsi berorientasi pada aksi dan tidak berhubungan
langsung dengan permasalahan.
✓ Kurang sempurna dalam menangkap kebutuhan reusable
components, karena tidak ada standarisasi modul
B. PENDEKATAN BERORIENTASI OBJEK
✓ Penekanan pada “apa” yang dapat dilakukan oleh objek
✓ Pendekatan lebih kepada data
✓ Perubahan pada struktur data internal tidak
mempengaruhi struktur data objek yang lain
✓ Penggunaan bersama untuk beberapa tingkat yang
berbeda, seperti penggunaan bersama untuk disain dan
kode
✓ Menggunakan pendekatan bottom-up
✓ Fungsi/prosedur berbagi data global
Komentar
Posting Komentar