Object Oriented Analysis(OOA)
1. Sejarah Objct Oriented Analisi(OOA)
Object-oriented analysis (OOA) telah ada sejak 1988. orang yang telah memakai metode ini adalah Shlaer-Mellor, Jacobson, Coad-Yourdon, and Rumbaugh. Hasil sukses dalam penerapan metode ini dibuktikan di AT & T Bell Labs. AT & T Bell Labs menerapkan metode ini dalam project besar yang disebut Call Attempt Data Collection System (CADCS). Dari proyek tersebut didapat bahwa penggunaan metode ini mengurangi 8% dari total waktu untuk spesifikasi kebutuhan project dan pengurangan 30% staff effort.
Ada hubungan yang sangat erat antara Object-oriented analysis dan teknologi object oriented yang lain. Diantaranya yaitu Object-Oriented Database, Object-Oriented Design, and Object-Oriented Programming Languages. Dalam penerapannya semua metode itu digunakan secara keseluruhan dalam project disebut dengan metode object-oriented. Jika hanya melakukan analisis saja dengan metode object-oriented dan tidak diikuti dengan design dan programming dengan metode yang sama tentunya akan menambah kesulitan dalam pengambangannya. Dalam kenyataannya ketiga metode diatas tidak bisa dilepaskan satu sama lain. Karena memang untuk mendapatkan hasil yang maksimal dari metode object-oriented, ketiganya harus ada. Karakteristik dari object-orientedcteristics of
1. Abstraction and Classification: Pendefinisian sebuah class (object parent) yang memuat seluruh informasi dasar sebuah object meliputi semua informasi dasar calam object lain.
2. Encapsulation and Information Hiding: Bisa disebut pengkapsulan. Internal proses suatu object/class yang tidak diperlukan untuk diketahui detailnya. Focus pada fungsi yang telah di jalankan oleh masing-masing object.
3. Polymorphism and Inheritance: Kemampuan untuk membagi properties yang dimiliki dengan inheritance (penurunan object). Juga memungkinkan untuk menambah atau mengurangi properties yang didapat dari pewarisan sifat object.
Pendekatan analisa object-oriented:
1. Sistem / software dialokasikan menggunakan strategi formal, yaitu dengan memakai bahasa untuk mendeskripsikan. Strategi formal dapat dibuat dalam bentuk paragraph tunggal dengan tatabahasa yang benar.
2. Objek diberi garis bawah (kata benda, atau anak kalimat yang bersifat sebagai kata benda) dan kemudian dimasukkan ke dalam tabel. Sinonim dicatat. Jika objek diperlukan untuk mengimplementasikan status solusi, maka object tersebut merupakan bagian dari “solution space”. Jika objek hanya diperlukan untuk mendeskripsikan status solusi, maka objek tersebut merupakan bagian dari “problem space”.
3. Atribut dari objek diidentifikasi dengan menggarisbawahi semua kata sifat dan kemudian menghubungkannya dengan kata benda (objek) masing- masing.
4. Operasi ditetapkan dengan menggarisbawahi semua kata kerja, anak kalimat kata kerja dan predikat, serta menghubungkan setiap operasi dengan objek yang sesuai.
5. Attribut dari operasi diidentifikasikan dengan menggarisbawahi semua kata keterangan dan mengasosiasikan mereka dengan operasi ( kata kerja ) masing-masing.
Menejemen proyek perangkat lunak berorientasi objek:
Menejmen proyek perangkat lunak moderndapat dibagi kedalam aktivitas – aktivitas berikut:
1. Membangun kerangka kerja proses yang umum untuk proyek
2. Membangun kerangka kerja dan matrik historis unutk membangun usaha dan estimasi waktu
3. Menentukan produk kerja dan kejadian penting yang membuat kemajuan dapat di ukur
4. Memetukan checkpoint bagi jaminan kualitas dan kontrol
5. Mengatur perubahan yang terjadi pada saat proses berjalan
6. Menelusuri, memonotori, dan mengontrol kemajuan
Contoh pendefinisian object
2. Pengertian Dari Object Oriented Analysis(OOA)
a. Konsep objek
Obyek dalam ‘software analysis & design’ adalah sesuatu berupa konsep (concept), benda (thing), dan sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia, alarm dan lainlainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam sistem seperti tabel, database, event, system messages. Obyek dikenali dari keadaannya dan juga operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari suaranya. Ciri-ciri ini yang akan membedakan obyek tersebut dari obyek lainnya. Alasan mengapa saat ini pendekatan dalam pengembangan software dengan object-oriented, pertama adalah scalability dimana obyek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua dynamic modeling, adalah dapat dipakai untuk permodelan sistem dinamis dan real time.
Lima prinsip dasar untuk membangun model analisis
a. Domain Informasi dimodelkan
b. Fungsi modul digambarkan
c. Tingkah laku model direpresentasikan
d. Model di partisi untuk mengekpos detail yang lebih besar
e. Model awal mempresentasikan inti masalah sementara model selanjutnya memberikan detail implementasi
b. Pengertian OOA
Pada dasarnya kebanyakan metode analisis system memisahkan antara data dan proses. Walaupun SA dan IE telah melakukan usaha untuk menyelaraskan keduanya, namun usaha tersebut belum sepenuhnya berhasil. Analisis berbasis objek kemudian muncul dan digunakan untuk mengurangi batas pemisah abtara data dan proses. Seluruh data spesifik dan proses yang membuat, membaca, meng-update atau menghapus data-data tersebut diintegrasikan dan disebut dengan objek. Beberapa bahasa pemrograman yang berbasis objek ini antara lain adalah Visual Basic, C++, dan Powerbuilder.
Object-Oriented Analysis (OOA) adalah teknik pemodelan yang mengintegrasikan antara data dan proses kedalam suatu kesatuan yang disebut dengan objek. Model OOA berupa gambar yang mengilustrasikan objek system dari berbagai macam persepsi.
Selain itu OOA adalah Adalah suatu metode dalam pengembangan perangkat lunak berbasis object. Yang dimaksud dengan object bisa dipandang sebagai suatu item informasi atau representasi entitas di dunia nyata. Seperti contohnya dalam system reservasi penerbangan hal-hal yang bisa disebut sebagai object seperti pesawat, jalur penerbangan dll.
Dengan metode ini kita mempresentasikan sebuah permasalahan dalam dunia nyata kedalam object-object, khususnya dalam pegembangan perangkat lunak, agar dalam pelaksanaannya kita mendapatkan berbagai keuntungan dan kelebihan. Dari beberapa keuntungan dan kelebihannya, metode ini nantinya akan mendukung dalam konsep dibawah ini :
1. Maintainability , yaitu tingkat kemudahan dalam mengakomodasi perubahan- perubahan.
2. mengurangi kompleksitas dalam perarancangan design system.
3. Reusability , kemampuan untuk bisa digunakan kembali sehingga dapat menghemat waktu dan biaya.
Dengan adanya konsep tersebut membuat metode ini seirng digunakan pada masa sekarang. Kemampuannya untuk dapat digunakan kembali akan mendukung terciptanya suatu perangkat lunak yang lebih sempurna dari yang sebelumnya dikarenakan kekurangan dari perangkat lunak sebelumnya diperbaiki, dan kelebihannya tetpa dipertahankan. Jadi bisa muncul sebuah perangkat lunak baru dengan kemampuan yang selalu lebh dari pada sebelumnya.
Dengan semakin dikenalnya OOA, kemudian muncul Unified Modeling Language (UML) yang menyediakan sintaks grafik untuk membuat model berbassi objek.
c. Hubungan OOA dengan object oriented yang lain:
Ada hubungan yang sangat erat antara Object-oriented analysis dan teknologi object oriented yang lain. Diantaranya yaitu Object-Oriented Database, Object-Oriented Design, and Object-Oriented Programming Languages. Dalam penerapannya semua metode itu digunakan secara keseluruhan dalam project disebut dengan metode object-oriented. Jika hanya melakukan analisis saja dengan metode object-oriented dan tidak diikuti dengan design dan programming dengan metode yang sama tentunya akan menambah kesulitan dalam pengambangannya. Dalam kenyataannya ketiga metode diatas tidak bisa dilepaskan satu sama lain. Karena memang untuk mendapatkan hasil yang maksimal dari metode object-oriented, ketiganya harus ada.
d. Teknik dasar OOA:
Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar, namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu permasalahan sudah tentu memiliki lebih dari satu solusi. Ada 3 (tiga) teknik/konsep dasar dalam OOA, yaitu pemodulan (encapsulation), penurunan (inheritance) dan polymorphism.
1. Pemodulan (Encapsulation)
Pada dunia nyata, seorang ibu rumah tangga menanak nasi dengan menggunakan rice cooker, ibu tersebut menggunakannya hanya dengan menekan tombol. Tanpa harus tahu bagaimana proses itu sebenarnya terjadi. Disini terdapat penyembunyian informasi milik rice cooker, sehingga tidak perlu diketahui seorang ibu. Dengan demikian menanak nasi oleh si ibu menjadi sesuatu yang menjadi dasar bagi konsep information hiding.
2. Penurunan (Inheritance)
Obyek-obyek memiliki banyak persamaan, namun ada sedikit perbedan. Contoh dengan beberapa buah mobil yang mempunyai kegunaan yang berbeda-beda. Ada mobil bak terbuka seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini dapat dikatakan sebagai obyek induk (parent). Sedangkan minibus dikatakan sebagai obyek anak (child), hal ini juga berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus.
3. Polymorphism
Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek mobil yang sama, namun memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus, hal ini juga berlaku pada obyek anak (child) melakukan metoda yang sama dengan algoritma berbeda dari obyek induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar lainnya adalah ruang lingkup/pembatasan. Artinya setiap obyek mempunyai ruang lingkup kelas, atribut, dan metoda yang dibatasi.
3. Tujuan OOA
Tujuan dari OOA adalah menentukan semua kelas(dan hubungan serta tingkah laku yang berkaitan dengannya) yang relevan dengan masalah yang akan dipecahkan.
Untuk itu perlu melakukan sejumlah tugas yaitu:
a. Persyaratan pemakaian dasar harus di komunikasikan diantara pelanggan dan perekayasa perangkat lunak.
b. Kelas – kelas harus diidentifikasi(misalnya: atribut dan metode yang ditentukan)
c. Hirarki kelas harus didpesifikasikan.
d. Hubungan objek - ke - objek(koneksi objek) harus direpresentasikan.
e. Tingkah laku objek dimodelkan.
f. Tugas 1 sampai 5 diaplikasikan lagi secara sampai model selesai.
Selain menguji suatu dengan masalah dengan menggunakan model input-proses-onput yang klasik(aliran informasi) atau model yang ditarik secara eksekutifdari struktur informasi) atau model yang tertarik secara eksklusif dari struktur infromasi hiraskis. OOA memperkenalkansejumlah konsep baru menurut Coad dan Yourdon yang menyinggung masalah ini dengan mengatakan:
“ OOA didasarkan pada konsep yang pertama kali kita pelajari di taman kanak – kanak. objek, atribut dan anggota. Keseluruhan dan bagian. Mengapa diperlukan waktu yang panjang unutk mengaplikasikan konsep –konsep ini ke analisis dan spesifikasi sistem informasi merupakan teka –teki bagi setiap orang – mungkin kita terlalu sibuk “mengikuti aliran” selama masa emas analisis terstruktur untuk mempertimbangkan alternatif – alternatif tersebut.”
4. Sasaran OOA
Sasaran OOA adalah mengembangkan sederetan model yang menggambarkan perangkat lunak komputer pada saat komputer itu bekerja unutk memenuhi serangkaian persyaratan yang ditentukan oleh pelanggan. OOA membangun metode multibagian untuk memenuhi sasaran tersebut.
5. Pengujian model OOA
a. Kebenaran dari model OOA
Kebenaran dari sintaks :
Penggunaan simbol dan aturan pemodelan yang tepat
Kebenaran dari sematik:
1. Model yang mewakili dunia nyata, dibutuhkan seorang ahli dalam domain persoalan.
2. Hubungan antar kelas
b. Kekonsistenan dari model OOA
1. hubungan antar entitas dalam model
2. dapat digunakan model CRC dan object-relationship diagram
6. Proses Analisis Domain:
literatur teknis teksonomikeras
aplikasi yang ada standar reuse
surve pelanggan model fungsional
nasehat ahli modal fungsional
persyaratan saat ini
input dan output unutk analisis domain
a. menurut Firesmith mengambarkan analisis domain perangkat lunak dengan cara sebagai berikut:
analisis domain perangkat lunak adalah identifikasi, analisis, dan spesifikasi dari persyaratan umum suatu domain aplikasi spesifik.
b. Akativitas - aktivitas dalam proses analisis domain:
1. Tentukan domain yang diselidiki
2. Kategorikan item yang di ekstrak dari domain tersebut.
3. Kumpulkan sempel representatif dari aplikasi di dalam domain tersebut
4. Analisis masing –masing aplikasi pada sempel tersebut
5. Kembangkan model a analis unutk objek tersebut.
7. Kesimpulan
Dari keseluruhan penjelasan diatas dapat ditarik beberapa kesimpulan diantaranya:
a. Metode analysis object-oriented memiliki beberapa kelebihan diantaranya dalam maintainability dan reuseability.
b. Membutuhkan pelengkap metode object-oriented yang lain jika digunakan dalam pengerjaan suatu project seperti object-oriented design dan object- oriented design programming, untuk mendapatkan hasil yang maksimal jika menggunakan metode ini.
OOP
Bagian 1
OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi .
OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,
dan polymorphism atau kebanyakrupaan. Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.
Class dan Objek
Dalam lingkungan program berorientasi objek, pemrogram mendefinisikan class secara statik. Pada saat run-time, class akan diinstantiasi menjadi objek. Ada pun objek yang merupakan instantiasi dari suatu class selalu dapat diacu melalui current objek, apa pun nama instant-nya.
Dapat didefinisikan bahwa class merupakan struktur data dari suatu objek, lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang mendefinisikan variabel method umum pada semua objek dari beberapa macam. Objek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. objek adalah elemen pada saat run-time yang akan diciptakan, dimanipulasi, dan dihancurkan ketika eksekusi. Ada pun class merupakan definisi statik dari himpunan objek yang mungkin diciptakan sebagai instantiasi dari class. Sederhananya adalah kumpulan objek yang mempunyai atribut sama. Dengan demikian, pada saat run-time maka yang kita miliki adalah objek.
Class biasany dibuat seperti ini
Class nama_classnya{
//berisi sekumpulan fungsi,variabel dan
//statement-statement lainnya
}
Agar class tersebut dpt digunakan maka perlu memiliki atribut-atribut contonya dalam php/c++
//di php
class NamaClass {
var $atribut1;
var $atribut2;
function operasi(){}
}
//di c++
class NamaClass {
public:
int atribut1;
int atribut2;
int operasi(){retun nilai_int}
};
Pada bahasa pemerograman web lain ex. Java file harus disimpan dengan nama class berbeda dengan PHP kita dapat memberikan nama yang tidak mesti sama dengan nama classnya
Inheritance
Inheritance atau pewarisan adalah kalimat yang pasti ada di dalam pemerograman berorientasi objek disebut juga dengan istilah reusable.
Ketika kita menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan field instant dan method baru, maka pada saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep yang fundamental dalam orientasi objek dan harus digunakan dengan baik, ada beberapa macam Inheritance atau pewarisan yang ada di dalam OOP Single Inheritance dan Multple Inheritance
- Single Inheritance
- Multiple Inheritance
dalam penggunaan inheritance class Induk akan mewariskan semua atribut yang ia miliki sehingga class bawahnya akan memilki atribut yang sama dengan class induk, bahkan dapat memilki kebabasan untuk memilki atribut berbeda dengan class induknya berikut ilustrasi dalam php
catatan :
sampai sekarang PHP belum mendukung multiple inheritance seperti C++ walapun PHP dan c/c++ begitu banyak kemiripannya, dan perubahan PHP versi 5 ditekankan pada OOP salah satunya adalah beberapa tambahan untuk kemampuan inheritance
/* inheritance.php */
class Bapak {
var $nama =”Bapak”;
function Bapak($n) {
$this->nama = $n;
}
function Hallo() {echo “Halo, saya $this->nama
”;}
}
class Anak extends Bapak {}
$test = new Anak(”Anak dari Bapak”);
$test->Hallo();
?>
Hasil tampilan dari listing program di atas adalah “Halo, saya Anak dari Bapak” dan bukannya “Halo, saya Bapak”. Mengapa demikian? Memang di dalam class Bapak didefinisikan variabel nama dengan nilai Bapak, selanjutnya kita membuat objek dari class Anak yang merupakan turunan dari class Bapak. Lihat bahwa instantiasi sekaligus mengisikan parameter baru “Anak dari Bapak”, sehingga ketika dipanggil maka mengisikan $this->nama dengan parameter tersebut. Ada pun di dalam implementasi pemrograman, kebanyakan pemrogram merasakan beberapa manfaat dari inheritance atau pewarisan, diantaranya:
Subclass mampu menyediakan perilaku khusus dari elemen dasar yang disediakan oleh superclass.
Pemrogram dapat mengimplementasikan superclass untuk memanggil class abstrak yang menyatakan perilaku umum.