PERANCANGAN SISTEM BERORIENTASI OBJEK Catur Iswahyudi Outline • Pendahuluan • Karakteristik objek • Karakteristik metodologi berorientasi objek • Pemodelan Berorientasi Objek • Pemodelan sistem • Model berorientasi objek Pendahuluan • Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean(coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. • Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. • Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Kunci sukses APSI • Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebuan segitiga sukses (the triangle for success) • Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan • Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses disempurnakan dengan penggunaan tool yang tepat. Perancangan Berorientasi Objek • Analisis dan disain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata • Konsep fundamental dalam analisis berorientasi objek adalah objek itu sendiri. Sebuah objek adalah sebuah entitas yang mencakup data dan metode. • Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas. • Pengertian "berorientasi objek" berarti bahwa kita mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya. • Pada analisa, identitas sebuah object menjelaskan bagaimana seorang user membedakannya dari object lain, dan behavior object digambarkan melalui event yang dilakukannya. • Sedangkan pada perancangan, identitas sebuah object digambarkan dengan cara bagaimana object lain mengenalinya sehingga dapat diakses, dan behavior object digambarkan dengan operation yang dapat dilakukan object tersebut yang dapat mempengaruhi object lain dalam sistem. Benefits • System Stability • Sistem dikatakan resilence to change jika modifikasi tersebut tidak menimbulkan masalah baru pada sistem yang telah dibangun, dengan waktu yang singkat dan biaya yang sedikit. • Maintainability • Lebih mudah dirawat dibandingkan metode sebelum objek yang cenderung dibuat berdasarkan kebutuhan laporan dan kebutuhan sekarang, sehingga lebih sukar dirawat. • Reusable software components • Reusable software components ini dapat dilakukan oleh adanya feature inheritance dan polimorphism. Contohnya pengembangan library untuk object classes pada JavaBean yang dapat digunakan ulang • Reality-based systems • Memberikan gambaran yang lebih akurat terhadap operasi bisnis user dan kebutuhan informasinya. Sehingga nantinya sistem yang telah jadi akan lebih cocok,sesuai dengan kebutuhan aktual user • Data accessibility • Design database didasari oleh pemahaman dari data user dan relasi antar data • User involvement and ownership • User dapat dilibatkan dalam pengembangan sistem karena menggunakan konsep objek yang lebih mudah dipahami oleh user meskipun berasal dari disiplin ilmu yang berbeda-beda. Karakteristik OOAD • Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama Encapsulation, Inheritance, Polymorphism • ENCAPSULATION (PENGKAPSULAN) • Encapsulation merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. • Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. • Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri. • Contoh : • Informasi/properties objek rekening : No rekening, Nama , alamat dll • Perilaku/method objek rekening : buka, tutup, penarikan, penyimpanan, ubah nama, ubah alamat dll • Kita bungkus/encapsulate informasi dan perilaku tersebut pada objek rekening • Sehingga perubahan-perubahan pada sistem perbankan yang berkaitan dengan rekening diimplementasikan sederhana pada objek rekening Karakteristik OOAD (cont’d) • INHERITANCE (PEWARISAN) • Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. • Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya. Hirarki Kelas Karakteristik OOAD (cont’d) • POLYMORPHISM (POLIMORFISME) • Polimorfisme yaitu konsep yang menyatakan bahwa suatu yang sama dapat mempunyai bentuk dan perilaku berbeda. • Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. Konsep Objek (object) • Objek adalah segala sesuatu yang ada di dunia nyata yang mempunyai nilai tertentu • Objek dapat kongkrit, seperti halnya arsip dalam sistem, atau konseptual seperti kebijakan penjadualan dalam multiprocessing pada sistem operasi • Setiap objek mempunyai sifat yang melekat pada identitasnya • Dua objek dapat berbeda walaupun bila semua nilai atributnya identik. Representasi 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, tabel, database, event, system messages. Istilah dalam objek • Atribut : Data item yang menegaskan Objek • Operasi : Fungsi di dalam kelas yang dikombinasikan ke bentuk tingkah laku kelas • Metode : Pelaksanaan prosedur (badan dari kode yang mengeksekusi respon terhadap permintaan objek lain di dalam sistem). Konsep Kelas (class) • Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode, hubungan, dan makna yang sama. • Suatu kegiatan mengumpulkan data (atribut) dan perilaku (operasi) yang mempunyai struktur data sama ke dalam satu grup. • Kelas Objek merupakan wadah bagi Objek. Dapat digunakan untuk menciptakan Objek. • Objek mewakili fakta/keterangan dari sebuah kelas. Hubungan kelas dan objek Pemodelan Berorientasi Objek • Sebuah model objek menangkap struktur statis dari sistem dengan menggambarkan objek dalam sistem, hubungan antara objek, serta atribut dan operasi yang merupakan karakteristik setiap kelas dan objek. • Model berorientasi objek lebih mendekati keadaan nyata, dan dilengkapi dengan penyajian grafis dari sistem yang sangat bermanfaat untuk komunikasi dengan user dan pembuatan dokumentasi struktur dari sistem. Diagram Objek • Diagram objek melengkapi notasi grafik untuk pemodelan objek, kelas dan relasinya dengan yang lain. Diagram objek bermanfaat untuk pemodelan abstrak dan membuat perancangan program • Konsep fundamental dalam analisis berorientasi objek adalah objek itu sendiri. Sebuah objek adalah sebuah entitas yang mencakup data dan metode. Kelas • Kelas merupakan satu atau lebih objek dengan persamaan atribut dan metode, sedangkan kelas-&-objek adalah kelas dengan satu atau lebih objek di dalamnya. Nama kelas adalah kata benda tunggal, atau kata sifat dan kata benda. Nama dari kelas-&-objek harus dapat menjelaskan objek tunggal dari suatu kelas. Notasi untuk kelas Struktur Objek dan Hirarki Kelas • Struktur kelas dibagi dua macam, yaitu Whole-Part Structure dan Gen-Spec Structure. • Whole-Part Structure memperlihatkan hirarki dari suatu kelas sebagai komponen dari kelas lain yang disebut juga sub objek. Contohnya, kelas Mobil adalah Whole dan komponennya Mesin, Rangka, dll merupakan Part1, Part 2, …, dan Partn. • Gen-Spec Structure memperlihatkan kelas sebagai spesialisasi dari kelas di atasnya. Kelas yang mempunyai sifat umum disebut Generalization, Superclass atau Topclass, sedangkan kelas yang mempunyai sifat khusus disebut Specialization. Contohnya, kelas Mobil adalah Generalization, sedangkan Sedan, Truk, Minibus, dll merupakan Specialization1, Specialization2, …, Specialization-n, yaitu kelas yang mempunyai sifat khusus. Whole-part structure Gen-spec structure Atribut • Atribut menggambarkan data yang dapat memberikan informasi mengenai kelas atau objek dimana atribut tersebut berada. Metode • Metode (method) adalah subprogram yang tergabung dalam objek bersama-sama dengan atribut. Metode dipergunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut. Pesan • Message merupakan cara untuk berhubungan antara satu objek dengan objek lain. Suatu pesan dikirimkan oleh suatu objek kepada objek tertentu dapat digambarkan dengan anak panah. Contoh Abstraksi dan Pemodelan Sesuatu Hal... • Obyek adalah segala sesuatu yang ada di sekitar kita, dimana obyek-obyeklah yang menyusun dunia ini, misalnya : mobil, kereta api, sale, faktur, rekening, dll • Atribut /properti mendeskripsikan: • Merek, Model, Tahun, • Warna, Berat, • No seri, No Izin. • Relationship pada obyek lain: • Pada obyek Orang, seperti : pemilik. Entity • Behavior : – – – – Pembuatan Perubahan warna Penggantian Pemilik Dihancurkan sendiri (bunuh diri?) Object Pada DATA WORLD • Kita mempunyai beberapa jenis record pada komputer untuk setiap objek dunia nyata • Membawa data untuk atribut • Merek, Model, tahun, warna, berat, no seri, no izin • Nilai atribut merepresentasikan state (keadaan) obyek • Menghubungkan beberapa jenis relationship • Foreign Key atau pointer Entity • Membawa kode program utk setiap behavior – Create, Change Owner, Change Color, Delete – CRUD: Create, Read, Update, Delete. Object Contoh : Aktivitas Perkuliahan • Dari aktifitas perkuliahan tersebut ada 3 objek yang langsung dapat dikenali yaitu : • Dosen (yang memberikan kuliah) • Mahasiswa (yang mengikuti kuliah) • Materi Kuliah • Ada 2 objek lain yang bisa dikenali : - Jadwal Kuliah dan Nilai yang didapat mahasiswa dari matakuliah yang diikutinya • Abstraksi dan pemodelan untuk salah satu dari ke 5 objek tersebut,misal: objek DOSEN adalah : • Menjadi kelas : DOSEN atribut : kode dosen nama dosen pendidikan, dll. operasi : rekam update delete, dll. Sehingga... • Sebuah Obyek Data adalah suatu abstraksi dari beberapa hal di dunia nyata dengan dua hal yang dibawanya, data yang menggambarkan objek dunia nyata, dan operasi (yaitu, kode program) untuk mengakses data tersebut. Chapter exercise 1. 2. 3. 4. 5. 6. 7. 8. What is object-oriented analysis, and what are some advantages of using this technique? Define an object, and give an example. Define an attribute, and give an example. Define a method, and give an example. Define encapsulation, and explain the benefits it provides. Define polymorphism, and give an example. Define a class, subclass, and superclass, and give examples. Projects for next week discussion : 1. 2. 3. Search the Internet for information about the history and development of UML. Search the Internet for information about groups and organizations that support and discuss object-oriented methods and issues. Search the Internet for information about CASE tools that provide UML support. Send blog link to : • [email protected]