Perancangan Berorientasi Objek (Object Oriented Analysis & Design)
Keuntungan dari OO Merupakan konsep yang umum yang dapat digunakan untuk memodel hampir semua phenomena dan dapat dinyatakan dalam bahasa umum (natural language) Noun menjadi object atau class Verb menjadi behaviour Adjective menjadi attributes Memberikan informasi yang jelas tentang context dari system Mengurangi biaya maintenance Memudahkan untuk mencari hal yang akan diubah Membuat perubahan menjadi local, tidak bepengaruh pada modul yang lainnya
Object dan Class Object adalah suatu entitas yang memiliki identitas, state, dan behaviour Contoh : Hasan, Mariam, Badu Meja, Kursi, Papan tulis, spidol, penghapus whiteboard Pensil, kertas, Penghapus, pen Prajurit, Tank, Senapan, Meriam Class Merupakan kumpulan dari object yang mempunyai struktur, behaviour pattern dan attributes yang sama. Pada sebuah rumah makan, Hasan, Mariam, Badu merupakan object yang dikelompokan sebagai waitress. Identitas dari mereka adalah nama mereka yaitu Hasan, Mariam dan Badu, sedangkan state mereka adalah sedang bertugas atau sedang Off (tidak bertugas). Meja, Kursi, Papan tulis, Spidol, Penghapus whiteboard merupakan object yang ada didalam kelas. Masing masing object mempunyai identitas yaitu Meja, Kursi, Papan tulis, Spidol dan Penghapus whiteboard. Didalam kelas biasanya terdapat banyak meja, disini kalau kita sebut meja sebagai object, maka kita tidak mengenal satuan meja lagi, melainkan sekelompok meja. Bila meja tersebut kita beri nomor A1, A2, A3, B1, B2 … dst, maka kita dapat menyebut objectnya adalah meja nomor A1, Meja nomor A2 dan seterusnya. Maka state dari masing-masing meja yang mempunyai nomor tersebut juga dapat berbeda, seperti meja A1 berisi (diduduki), A2 berisi, B3 kosong, B4 kosong… dst. Behaviour merupakan sifat yang dapat dilakukan oleh object seperti waitress dapat menerima order pesanan makanan, mengantar makanan. Sedangkan kursi dapat diduduki, papan tulis dapat ditulis Jelaskan perbedaan konsep dari object dan kelas, misalnya kenapa beras merupakan object, bukan class. Karena bila beras dibuat class, maka objectnya adalah butir butir beras yang tidak dapat diidentifikasi satu sama lain, artinya tidak memenuhi kriteria object yang harus memiliki identitas. Berikan beberapa contoh seperti class dari binatang, class dari kelas SAD. Bedakan antara class dan object dari masing masing contoh tersebut diatas, sehing mahasiswa dapat mengerti konsep class dan object, serta perbedaannya secara jelas. Struktur merupakan susunan dari Attribute dari suatu waitress seperti umur, alamat, jenis kelamin dimana setiap object mempunyai attribute yang sama, tetapi isi dari attribute berbeda-beda
Karakteristik Pengembangan Berorientasi Objek Berorientasi Objek berarti mengorganisasi perangkat lunak sebagai kumpulan dari objektertentuyang memiliki struktur data dan perilakunya. 3 karakteristik utama: Encapsulation dasar pembatasan ruang lingkup program terhadap data yang diproses Inheritance menyatakan bahwa anak dari objek mewarisi data/atribut dan metoda dari induknya Polymorphism menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda
4 Aktivitas Utama dalam OOAD Problem Domain analysis Classes Structure Behavior Application Domain analysis Usage Functions Interface Event Table Class diagram Statechart diagram Actor table Actor Specification Use-case diagram Use-case Specification Statechart diagram Function List Windows List Print-out List Navigation Diagram Window Diagram Sequence Diagram Component design Criteria Components Processes Class diagram Deployment diagram Component Specification Class diagram Statechart diagram Sequence diagram Operation diagram Architecture Design Model Component Function Component Connected Components
Problem Domain Analysis Ada 3 kegiatan Mencari elemen dari Problem Domain yaitu Objects, classes, dan events Buat model berdasarkan hubungan struktural antara class dan objects yang dipilih Interaksi antar object dan class serta behaviour dari object dan class Prinsip Analisa dari Problem Domain Memodel “The Real World” seperti yang akan dilihat user nantinya Lihat secara keseluruhan terlebih dahulu, baru diberikan detilnya
Analisis Problem Domain System Definition Behaviour Classes Iterate Structure Model
Analisis Problem Domain
Events Dimana menemukan Events? Kata kerja di dalam penjelasan atau wawancara Daftar event yang umum atau typikal type dari event Sistem komputer yang sejenis Literatur teknis di dalam problem domain CONTOH :
Association Anywhere from one to many Ownership Anywhere from Car Person 0..* 1..* Ownership Anywhere from zero to many Name is optional, but recommended
Aggregation Anywhere from four to many One and Assembly side only one 4..* 1..* 1 Body Motor Wheel Cam Shaft Cylinder Car 2..* Anywhere from four to many One and only one Assembly side Component side (min and max)
Generalisation Group under one generalisation Class without objects Passenger Car Private Car Taxi Group under one generalisation Account Loan Checking Bank book Service Taxi “is a” passenger car or Taxis are a subset of passenger cars Class without objects Multiple inheritance Person Employee Customer
Clusters «cluster» Cars «cluster» People Car Owner Motor Passenger Car Clerk Cylinder Taxi
Behaviour Event Trace Behavioural Pattern Attribute Urutan dari event yang terjadi pada suatu objek Behavioural Pattern Daftar kemungkinan event traces yang terjadi pada semua objek di dalam class Attribute Keterangan property dari class atau event