Laporan ini membahas 10 konsep perancangan utama dalam analisis dan perancangan berorientasi objek, yaitu abstraction, responsibility, dependency, abstract class, interface class, cohesion, coupling, layer, composition, dan factoring. Konsep-konsep tersebut dijelaskan dengan contoh-contoh nyata untuk memudahkan pemahaman.
CTU552 GROUP ASSIGNMENT (FALSAFAH ALAM SEKITAR).pdf
Design concept 33ti1_025_069
1. Konsep Perancangan Page 1
Laporan Praktikum Analisis Perancangan dan Pengembangan OO
Konsep Perancangan
Anggota Kelompok:
Gustina Malinda Simanjuntak 11113025
Putri Elisabeth Sibuea 11113069
Kelas : D3TI1
Institut Teknologi Del
Laguboti – Sumatera Utara
T.A 2015/2016
2. Konsep Perancangan Page 2
Pemahaman Konsep Perancangan
1. Abstraction
Abstraction adalah prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi
bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai
dengan masalah.
Contoh: Pada peminjaman buku di perpustakaan. Kegiatan-kegiatan nyata yang kita
lakukan dalam meminjam buku diterjemahkan dalam bentuk konsep yang lebih deskriptif.
2. Responsibility
Responsibility adalah hal-hal yang dikerjakan dan diketahui oleh class.
Contoh: Behavior dari suatu objek seperti method-method yang ada pada class tersebut.
Contoh pada class manusia, ada behavior berlari yang menjadi method run().
3. Dependency
Dependency adalah hubungan dimana perubahan yang terjadi pada suatu elemen
independent akan mempengaruhi elemen yang bergantung padanya.
Contoh: Client class mengakses nilai (konstan atau variabel) yang didefinisikan dalam
interface. Operasi-operasi dari client class meminta operasi-operasi dari interface.
Operasi-operasi dari client class memiliki tanda yang memberikan/mengembalikan class
atau argument yang merupakan instance dari interface.
4. Abstract Class
Abstract Class adalah Kelas murni (tanpa objek) dan tidak boleh memiliki objek (tidak
boleh ada instansiasi) serta method-method yang abstract harus disempurna-kan oleh kelas
turunannya melalui override.
Contoh: Kita akan membuat superclass bernama LivingThing. class ini mempunyai
method tertentu seperti breath, eat, sleep, dan walk. Akan tetapi, ada beberapa
method di dalam superclass yang sifatnya tidak dapat digeneralisasi. Kita ambil
contoh, method walk. Tidak semua kehidupan berjalan(walk) dalam cara yang sama.
Ambil manusia sebagai misal, kita manusia berjalan dengan dua kaki, dimana
kehidupan lainnya seperti anjing berjalan dengan empat kaki. Akan tetapi, beberapa
3. Konsep Perancangan Page 3
ciri umum dalam kehidupan sudah biasa, itulah kenapa kita inginkan membuat
superclass umum dalam hal ini.
5. Interface Classes
Interface adalah kelas yang paling abstract, yang berisi daftar deklarasi method (seluruh
method belum memiliki implementasi).
Contoh: Interface dapat dianalogikan sebagai kontrak/profesi/peran yang dipakai oleh
setiap kelas. Dalam kehidupan nyata dapat diketahui ada manusia yang bekerja sebagai
da’i, dosen, tentara, penyanyi, pengacara, dan sebagainya, tentunya manusia-manusia
tersebut selain harus memiliki method standard sebagai seorang manusia, juga harus
memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat
objek seorang budi bekerja sebagai dosen, harus dibuat kelas yang merupakan turunan
kelas manusia yang mengimplementasikan interface dosen.
6. Cohesion
Cohesion adalah ukuran tentang hubungan antara komponen suatu objek class. Setiap
operasi menyediakan fungsi untuk mengubah, melihat, atau menggunakan atribut objek
sebagai layanan dasar.
Contoh: 1 class Lampu memiliki 1 tanggung jawab untuk Lampu saja. Fungsi-fungsi
seperti turningOn, turningOff, changeColour, dll harus identik dengan tanggung jawab
terhadap prilaku lampu secara umum.
7. Coupling
Coupling adalah ketergantungan antar modul satu dengan modul lainnya. Bayangkan jika
anda mengubah 1 modul A tapi karena modul lain memiliki ketergantungan terhadap
modul A, maka efek perubahan ini mungkin saja punya impact terhadap modul lain.
Karena itu loose coupling sangat penting dalam perancangan software.
Contoh: Terdapat 1 modul Transaksi untuk Penjualan dan Pembelian. Karena Pembelian
dan Penjualan bisa dipisahkan (Pembelian adalah transaksi ke supplier, sedangkan
Penjualan adalah transaksi ke Customer) adalah suatu hal yang terpisah, maka modul
Transaksi dapat dibagi menjadi 2 modul terpisah yaitu modul Pembelian dan modul
Penjualan. Sehingga perubahan terhadap Penjualan tidak mempengaruhi Pembelian.
4. Konsep Perancangan Page 4
8. Layer
Layer adalah sebuah cara untuk mengembangkan model analisis sistem ke model desain
sistem.
9. Composition
Composition adalah sebuah hubungan yang memiliki sifat ‘part-of’, yang berarti sifat-sifat
yang dimiliki kelas parent dimiliki pula oleh kelas child. Jadi jika kelas parent dihapus,
maka kelas child juga akan dihapus.
Contoh: bila kita memodelkan sebuah mobil maka dapat dikatakan bahwa mesin adalah
bagian dari mobil Secara logis dapat dikatakan bahwa mesin adalah bagian dari mobil.
Mobil tidak dapat dipisahkan dari mesin. Bila mesin tidak ada di sebuah mobil maka itu
tidak akan berfungsi sebagai mobil.
10. Factoring
Factoring adalah proses memisahkan atau membuat class baru dari class yang sudah ada,
dengan aturan, class yang yang dipisahkan memiliki perbedaan yang significant.
Contoh: Jika class Karyawan belum teridentifikasi, kita mungkin bias mengidentifikasi
tahap ini dengan melakukan factoring terhadap method dan atribut yang mirip dengan
class Perawat, Staf Administrasi, dan class Dokter. Dalam hal ini, kita akan
menghubungkan class baru (Karyawan) ke class yang ada dengan menggunakan
hubungan generalisasi.