REKAYASA PERANGKAT LUNAK : PERANCANGAN BERORIENTASI OBJEK
Selamat siang, disini saya akan sedikit membahas mengenai “PERANCANGAN BERORIENTASI OBJEK” pada mata kuliah REKAYASA PERANGKAT LUNAK pertemuan 9. Apa saja sih yang akan saya bahas pada pertemuan 9 kali ini?. Materi yang terdapat pada pertemuan 9 kali ini yaitu :
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
Mari kita masuk ke
pembahasan dari materi materi di atas.
1.
Identifikasi Kelas Objek
Identifikasi Kelas
Objek pada sistem berorientasi objek memiliki beberapa tujuan, yaitu :
a.
Gunakan Analisis
Gramatikal dari deskripsi Bahasa alami. Objek dan atribut adalah kata benda;
operasi atau layanan adalah kata kerja.
b.
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.
c.
Gunakan analisis
berbasis skenario dimana berbagai skenario penggunaan sistem diidentifikasi dan
dianalisis secara bergantian.
2.
Istilah dalam Objek Oriented
Istilah-istilah
dalam Objek Oriented meliputi sebagai berikut :
a.
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
b.
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
c.
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.
d.
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 (1)
·
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(2)
e.
KELAS (Class)
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.
CONTOH KELAS DAN
SUBKELAS
3.
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.
4.
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.
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:
·
mendeklarasikan
instance variable(memiliki nilai yang berbeda di setiap objek) sebagai private
·
mendeklarasikan
method yang sifatnya public untuk mengakses variable tersebut
Contoh Enkapsulasi
ACCESS MODIFIER
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.
·
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:
·
Overloading:
Kemampuan untuk menggunakan nama yang sama untuk beberapa method yang berbeda
parameter (tipe dan atau jumlah).
·
Overriding:
Kemampuan subclass untuk menimpa method dari superclass, yaitu dengan cara
menggunakan nama dan parameter yang sama pada method.
CONTOH POLIMORFIS
5.
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 :
·
Memperhalus
kelas-kelas analisis dengan menyediakan detail perancangan yang memungkinkan
kelas-kelas bisa diimplementasikan.
·
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 computer
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
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.
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.
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.
6.
Pendekatan Pemrograman Terstruktur
Karakteristik
Pendekatan Berorientasi Prosedur/Fungsi:
·
Penekanan pada
sesuatu yang harus dikerjakan (algoritma pemecahan masalah)
·
Program berukuran
besar dipecah menjadi programprogram 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
mentransformasi data dari satu bentuk ke bentuk yang lain
·
Menggunakan
pendekatan top-down
Struktur Umum Pemrograman Terstruktur
Hubungan Data dan Fungsi pada Pemrograman Terstruktur
7.
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

Komentar
Posting Komentar