Metodologi yang umumnya digunakan dalam pembangunan sistem berbasis komputer dalam dunia bisnis dan industri saat ini adalah metode analisis dan design terstruktur (Structured Analisys and Design / SSAD). Metode ini diperkenalkan pada tahun 1970, yang merupakan hasil turunan dari pemrograman terstruktur. Metode pengembangan dengan metode terstruktur ini terus diperbaiki sampai akhirnya dapat digunakan dalam dunia nyata.
Disamping itu, akhir-akhir ini bahasa pemrograman object-oriented (OO) mliai poplier dan banyak digunakan pada organisasi bisnis maupun institusi pendidikan. Seiring dengan trend sebuah metodologi dibangun untuk membantu programmer dalam mengunakan bahasa pemrograman berorientasi obyek. Metodologi ini dikenal dengan object-oriented analysis and design (OOAD).
Disamping itu, akhir-akhir ini bahasa pemrograman object-oriented (OO) mliai poplier dan banyak digunakan pada organisasi bisnis maupun institusi pendidikan. Seiring dengan trend sebuah metodologi dibangun untuk membantu programmer dalam mengunakan bahasa pemrograman berorientasi obyek. Metodologi ini dikenal dengan object-oriented analysis and design (OOAD).
Metode OOAD melakukan pendekatan terhadap masalah dari perspektif obyek, tidak pada perspektif fungsional seperti pada pemrograman tersrtuktur. Akhir-akhir ini penggunakan OOAD meningkat dibandingkan dengan pengunaan metode pengembangan software dengan metode tradisional. Sebagai metode baru dan sophisticated bahasa pemrograman berorientasi obyek diciptakan, hal tersebut untuk memenuhi peningkatan kebutuhan akan pendekatan berorientasi obyek pada aplikasi bisnis.
Berikut adalah Kelebihan dan Kekurangan Kedua Metode TersebutMETODE BERORIENTASI OBYEK
2.1 Sejarah Metode Beorientasi Objek
Metode beorientasi objek mulai berkembang ketika Grady Booch pada tahun 80 an mempublikasikan suatu paper bagaimana melakukan perancangan untuk bahasa ADA namun memberi judul paper tersebut dengan : Object-Oriented Design. Selanjutnya ide tersebut terus ia kembangkan sampai tahun 90 an. Pada tahun 1991 Peter Coad dan Yourdon memperkenalkan metode berorientasi objek yang lebih sederhana dibandingkan Booch. Metode ini menjadi cepat populer karena mendukung layanan-layanan yang terdapat pada C++. Pada waktu itu C++ merupakan bahasa pemrograman berorientasi objek yang paling populer .
Pada tahun 1991 juga Rumbaugh memperkenalkan Object Modelling Technique (OMT). Pendekatan yang digunakan tidak jauh berbeda dengan pendekatan yang digunakan Coad Yourdon namun dengan notasi yang berbeda. OMT tidak hanya sepenuhnya berbasis pada data driven tapi juga memisahkan proses dari data dengan penggunan data flow diagram yang terpisah dengan diagram kelas. OMT juga menggunakan notasi state transition diagram untuk memodelkan aspek dinamis sistem. Pada tahun 1994 Ivar Jacobson memperkenalkan konsep use case dan object oriented software engineering. Pada tahun 1994 itu juga yaitu bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, mempelopori usaha untuk penyatuan notasi pendekatan berorientasi objek. Pada tahun 1995 dihasilkan draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org).
Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek [DHA03].
2.2 Kenapa Metode Beorientasi Objek ?
Menaikkan tingkat keterpakaian kembali (reusability) Perangkat lunak bersifat dinamis. Hal ini disebabkan kebutuhan pengguna berubah dengan cepat. Perkembangan teknologi informasi dan kebutuhan akan pengolahan informasi itu memaksa setiap organisasi memperbarui sistemnya. Dengan demikian perangkat lunak harus dibangun dengan reusability tinggi. Metode yang mendukung reusability tersebut adalah metode beroientasi objek.
Menghilangkan kompleksitas transisi antar tahap pada pengembangan perangkat lunak Pada pendekatan konvensional (tertruktur), notasi yang digunakan pada tahap analisis, perancangan dan tahap lainnya berbeda-beda. Hal ini menyebabkan transisi antar tahap pengembangan menjadi kompleks. Pada pendekatan berorientasi objek notasi yang digunakan pada tahap analisis, peanccangan dan implementasi relatif sama.
Memiliki tingkat abstraksi yang lebih tinggi Pendekatan terstruktur mendukung abstraksi pada level fungsional. Hal ini tidak bersesuaian dengan keadaan di dunia nyata. Pada dunia nyata kebanyakan pengelompokan tidak didasarkan pada fungsinya namun pada karakteristik alami yang melekat, yang membedakan sesuatu dengan yang lain. Di dunia nyata yang sering kita lihat adalah objeknya bukan fungsinya. Kita lebih akrab dengan istilah manusia, sapi, dan harimau, ketimbang dengan pemikir, pemamah biak, atau pemangsa. Dengan demikian pendekatan berorientasi objek membawa abstraksi kita lebih dekat dengan dunia nyata. Artinya, kita dibawa kepada level abstraksi yang lebih tinggi.
2.3 Konsep dalam Metode Beorientasi Objek
Objek Objek adalah suatu kombinasi antara data dan aspek lojik yang merepresentasikan suatu entitas dunia nyata. Contoh : mobil toyota kijang adalah suatu objek, maka yang menjadi data adalah warna, pembuat, harga, konsumsi bahan bakar, mekanisme pengereman, dll. Sedangkan yang menjadi aspek lojiknya adalah menampilkan jarak tempuh, berhenti, bejalan, belok, dll.
a. Kelas
Pada sistem berorientasi objek, kelas didefinisikan sebagai himpunan objek yang memiliki struktur umum dan perilaku umum yang sama [BAH99]. Sedangkan objek dapat dikatakan sebagai instansiasi suatu kelas. Sebagai contoh mobil adalah suatu kelas, maka mobil Toyota kijang, mobil Proton, dll adalah objek.
b. Atribut
Atribut merepresentasikan karakteristik atau keadaan objek. Pada contoh kasus di atas, sebuah mobil dapat memiliki atribut warna, harga, dan pembuat. Pada tataran implementasi, warna dapat direpresentasikan sebagai suatu string (domain nilainya misalnya : merah, biru, kuning, dll). Harga dapat berupa bilangan floating point atau bilangan integer. Sedangkan pembuat dapat bertipe struktur yang terdiri dari nama, identitas korporat, dll.
c. Metode
Metode adalah suatu fungsi atau prosedur yang didefinisikan untuk dapat mengakses keadaan internal suatu objek dari suatu kelas. Tiap fungsi atau prosedur mendefinisikan dan mendeskripsikan perilaku khusus suatu objek. Sebagai contoh: kelas Pegawai memiliki metode Hitung Gaji. Metode sebenarnya merupakan antarmuka yang disediakan untuk dapat memanfaatkan perilaku objek tersebut. Sebagai contoh : jika diinginkan dilakukannya perhitungan gaji, maka message ‘Hitung Gaji” harus dikirimkan ke objek Pegawai.
d. Message
Message pada dasarnya adalah pemanggilan fungsi. Namun message berbeda dari pemanggilan subrutin. Dengan message yang sama dua objek berbeda dapat melakukan operasi yang berbeda pula. Konsep ini dikenal sebagai Polymorphism.
e. Enkapsulasi
Enkapsulasi memadukan karakteristik unit di dalam suatu objek (data dan metode). Konsep ini bertujuan untuk menyembunyikan informasi dan karakteristik objek. Objek dapat dimanfaatkan hanya dengan cara memanggil metode yang dimiliki objek tersebut.
f. Hirarki Kelas
Sistem berorientasi objek mengorganisasi kelas ke dalam hirarki subclass-superclass. Perbedaan karakteristik dan perilaku digunakan sebagai dasar penilaian untuk membedakan antara kelas dan sub kelas. Gambar 2.23 menunjukkan hirarki kelas. Employee adalah superkelas sedangkan developer, analist dan manager adalah subkelas.
1. Kelebihan
Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000). Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.
Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi. Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain (Sommerville, 2000). Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007). Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek. Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.
2. Kekurangan
Pada awal desain OOAD, sistem mungkin akan sangat simple. Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD. Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD. Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem. Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005). Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).
(Jadalowen, 2002).
Berikut adalah Kelebihan dan Kekurangan Kedua Metode TersebutMETODE BERORIENTASI OBYEK
2.1 Sejarah Metode Beorientasi Objek
Metode beorientasi objek mulai berkembang ketika Grady Booch pada tahun 80 an mempublikasikan suatu paper bagaimana melakukan perancangan untuk bahasa ADA namun memberi judul paper tersebut dengan : Object-Oriented Design. Selanjutnya ide tersebut terus ia kembangkan sampai tahun 90 an. Pada tahun 1991 Peter Coad dan Yourdon memperkenalkan metode berorientasi objek yang lebih sederhana dibandingkan Booch. Metode ini menjadi cepat populer karena mendukung layanan-layanan yang terdapat pada C++. Pada waktu itu C++ merupakan bahasa pemrograman berorientasi objek yang paling populer .
Pada tahun 1991 juga Rumbaugh memperkenalkan Object Modelling Technique (OMT). Pendekatan yang digunakan tidak jauh berbeda dengan pendekatan yang digunakan Coad Yourdon namun dengan notasi yang berbeda. OMT tidak hanya sepenuhnya berbasis pada data driven tapi juga memisahkan proses dari data dengan penggunan data flow diagram yang terpisah dengan diagram kelas. OMT juga menggunakan notasi state transition diagram untuk memodelkan aspek dinamis sistem. Pada tahun 1994 Ivar Jacobson memperkenalkan konsep use case dan object oriented software engineering. Pada tahun 1994 itu juga yaitu bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, mempelopori usaha untuk penyatuan notasi pendekatan berorientasi objek. Pada tahun 1995 dihasilkan draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org).
Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek [DHA03].
2.2 Kenapa Metode Beorientasi Objek ?
Menaikkan tingkat keterpakaian kembali (reusability) Perangkat lunak bersifat dinamis. Hal ini disebabkan kebutuhan pengguna berubah dengan cepat. Perkembangan teknologi informasi dan kebutuhan akan pengolahan informasi itu memaksa setiap organisasi memperbarui sistemnya. Dengan demikian perangkat lunak harus dibangun dengan reusability tinggi. Metode yang mendukung reusability tersebut adalah metode beroientasi objek.
Menghilangkan kompleksitas transisi antar tahap pada pengembangan perangkat lunak Pada pendekatan konvensional (tertruktur), notasi yang digunakan pada tahap analisis, perancangan dan tahap lainnya berbeda-beda. Hal ini menyebabkan transisi antar tahap pengembangan menjadi kompleks. Pada pendekatan berorientasi objek notasi yang digunakan pada tahap analisis, peanccangan dan implementasi relatif sama.
Memiliki tingkat abstraksi yang lebih tinggi Pendekatan terstruktur mendukung abstraksi pada level fungsional. Hal ini tidak bersesuaian dengan keadaan di dunia nyata. Pada dunia nyata kebanyakan pengelompokan tidak didasarkan pada fungsinya namun pada karakteristik alami yang melekat, yang membedakan sesuatu dengan yang lain. Di dunia nyata yang sering kita lihat adalah objeknya bukan fungsinya. Kita lebih akrab dengan istilah manusia, sapi, dan harimau, ketimbang dengan pemikir, pemamah biak, atau pemangsa. Dengan demikian pendekatan berorientasi objek membawa abstraksi kita lebih dekat dengan dunia nyata. Artinya, kita dibawa kepada level abstraksi yang lebih tinggi.
2.3 Konsep dalam Metode Beorientasi Objek
Objek Objek adalah suatu kombinasi antara data dan aspek lojik yang merepresentasikan suatu entitas dunia nyata. Contoh : mobil toyota kijang adalah suatu objek, maka yang menjadi data adalah warna, pembuat, harga, konsumsi bahan bakar, mekanisme pengereman, dll. Sedangkan yang menjadi aspek lojiknya adalah menampilkan jarak tempuh, berhenti, bejalan, belok, dll.
a. Kelas
Pada sistem berorientasi objek, kelas didefinisikan sebagai himpunan objek yang memiliki struktur umum dan perilaku umum yang sama [BAH99]. Sedangkan objek dapat dikatakan sebagai instansiasi suatu kelas. Sebagai contoh mobil adalah suatu kelas, maka mobil Toyota kijang, mobil Proton, dll adalah objek.
b. Atribut
Atribut merepresentasikan karakteristik atau keadaan objek. Pada contoh kasus di atas, sebuah mobil dapat memiliki atribut warna, harga, dan pembuat. Pada tataran implementasi, warna dapat direpresentasikan sebagai suatu string (domain nilainya misalnya : merah, biru, kuning, dll). Harga dapat berupa bilangan floating point atau bilangan integer. Sedangkan pembuat dapat bertipe struktur yang terdiri dari nama, identitas korporat, dll.
c. Metode
Metode adalah suatu fungsi atau prosedur yang didefinisikan untuk dapat mengakses keadaan internal suatu objek dari suatu kelas. Tiap fungsi atau prosedur mendefinisikan dan mendeskripsikan perilaku khusus suatu objek. Sebagai contoh: kelas Pegawai memiliki metode Hitung Gaji. Metode sebenarnya merupakan antarmuka yang disediakan untuk dapat memanfaatkan perilaku objek tersebut. Sebagai contoh : jika diinginkan dilakukannya perhitungan gaji, maka message ‘Hitung Gaji” harus dikirimkan ke objek Pegawai.
d. Message
Message pada dasarnya adalah pemanggilan fungsi. Namun message berbeda dari pemanggilan subrutin. Dengan message yang sama dua objek berbeda dapat melakukan operasi yang berbeda pula. Konsep ini dikenal sebagai Polymorphism.
e. Enkapsulasi
Enkapsulasi memadukan karakteristik unit di dalam suatu objek (data dan metode). Konsep ini bertujuan untuk menyembunyikan informasi dan karakteristik objek. Objek dapat dimanfaatkan hanya dengan cara memanggil metode yang dimiliki objek tersebut.
f. Hirarki Kelas
Sistem berorientasi objek mengorganisasi kelas ke dalam hirarki subclass-superclass. Perbedaan karakteristik dan perilaku digunakan sebagai dasar penilaian untuk membedakan antara kelas dan sub kelas. Gambar 2.23 menunjukkan hirarki kelas. Employee adalah superkelas sedangkan developer, analist dan manager adalah subkelas.
1. Kelebihan
Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000). Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.
Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi. Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain (Sommerville, 2000). Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007). Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.
OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek. Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.
2. Kekurangan
Pada awal desain OOAD, sistem mungkin akan sangat simple. Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD. Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD. Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem. Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis terhadap fungsional siste, sementara metode OOAD tidak berbasis pada fungsional sistem.
OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005). Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).
(Jadalowen, 2002).
Mantap, bisa buat referensi kak ^_^
BalasHapus