Relasi Kelas Sistem Berorientasi Objek
Relasi Antar Kelas
Dalam paradigma pemrograman berorientasi objek, sebuah aplikasi dibangun dengan menggabungkan beberapa kelas. Kelas-kelas tersebut saling bekerjasama untuk menyelesaikan suatu masalah. Dalam aplikasi yang berukuran yang cukup kompleks, banyak kelas kelas yang terlibat dalam aplikasi tersebut. Maka untuk aplikasi yang kompleks tersebut dibutuhkan pemodelan kelas untuk menggambarkan aplikasi yang dibangun.
Relasi antar kelas pada Pemrograman Berorientasi Objek (PBO) dikenal dengan nama Asosiasi, yang terdiri dari agregasi dan komposisi, selain dari pewarisan/ inheritance yang merupakan ciri dari Pemrograman Berorientasi Objek. Agregasi, merupakan relasi/ asosiasi yang dikenal dengan istilah “Is – a”.
Relasi Class Diagram
Paradigma modern untuk mengembangkan perangkat lunak adalah Object-Oriented. Dalam paradigma ini, kami menggambarkan dunia kami menggunakan kategori objek (kelas) atau tipe objek (kelas abstrak murni atau antarmuka Java).
Setiap kelas/ objek memainkan peran spesifik dalam perangkat lunak. Peran ini diprogram dalam Bahasa Berorientasi Objek seperti C ++ dan Java. Beberapa atribut (variabel data) dan layanan (operasi/ fungsi/ metode) ditugaskan untuk kelas-kelas ini.
Kemudian, kami memodelkan perilaku dunia sebagai urutan pesan yang dikirim antara berbagai objek. Dalam model OO, sejumlah hubungan (warisan, asosiasi, dan agregasi) diidentifikasi antara kelas/ objek. Selain itu, ada banyak proses pemodelan desain populer dan pedoman seperti GRASP dan ICONIX untuk menetapkan tanggung jawab ke kelas dan objek dalam desain berorientasi objek.
Unified Modelling Language
Tools yang digunakan untuk memodelkan kelas-kelas dalam PBO adalah UML (Unified Modelling Language).
Unified Modelling Language (UML) merupakan spesifikasi pemodelan yang paling banyak digunakan untuk memodelkan struktur dan perilaku aplikasi. UML juga digunakan untuk memodelkan perilaku dan arsitektur aplikasi. UML memiliki banyak jenis diagram yang dapat digunakan untuk memodelkan aplikasi.
Namun pembahasan UML disini dibatasi hanya pada kelas diagram saja. Kelas diagram merupakan diagram UML yang digunakan untuk memodelkan kelas-kelas dalam PBO. Kelas diagram ini termasuk dalam kategori pemodelan struktur aplikasi dalam UML.
Jenis-jenis Relasi Antar Kelas
Terdapat beberapa macam relasi antar kelas yaitu :
- Inheritance
- Realization
- Dependency
- Aggregation
- Composition
Inheritance merupakan relasi turunan dimana sebuah kelas diciptakan berdasarkan kelas lainnya. Kelas yang diciptakan disebut dengan kelas anak dan kelas asalnya disebut dengan kelas induk. Kelas anak akan mewarisi seluruh method an property yang dimiliki oleh kelas induknya. Pembahasan tentang inheritance ini telah dibahas pada pertemuan sebelumnya. Simbol UML untuk relasi inheritance dapat dilihat pada gambar berikut ini. Pada gambar tersebut kelas Sedan merupakan turunan dari kelas Mobil.
- Relasi turunan sering juga disebut dengan relasi IS-A
- Sedan turunan dari Mobil bisa juga disebut Sedan IS A Mobil
- Realization
Realization merupakan relasi yang terjadi akibat implementasi dari interface. Dalam relasi realization, sebuah kelas yang mengimplementasikan interface tertentu, harus mendefinisikan/ mengimplementasikan seluruh method yang dideklarasikan dalam interface. Pembahasan tentang interface telah dibahas pada pembahasan sebelumnya.
- Agregation
Relasi antara dua objek dengan mengatakan bahwa satu objek memiliki atau mengandung atau berisi objek yang lain. Relasi aggregation sering juga disebut relasi HAS-A
- mobil memiliki mesin
- rumah memiliki dapur
- fakultas memiliki jurusan
- Asosiasi
Asosiasi adalah hubungan dimana suatu objek mengetahui tentang yang lain. Contoh yang sangat bagus dari suatu asosiasi (tautan) adalah pernikahan. Selain itu, tautan dalam bentuk asosiasi telah banyak digunakan selama bertahun-tahun di komunitas pemodelan basis data.
Hubungan ini dianggap sebagai bi-directional sebagai tautan di mana satu objek melintasi di kedua arah. Asosiasi dapat memiliki atribut dan layanan. Sumber terbaik untuk identifikasi awal dan menentukan asosiasi dan agregasi adalah dokumen persyaratan. Tautan, seperti layanan, sering dianggap sebagai kata kerja. Misalnya, 'dari mana ia berasal', ‘melacak’, ‘berubah dengan’, dan ‘tergantung pada’. Diagram urutan dan dokumen spesifikasi perilaku juga membantu menemukan tautan.
Bagaimana relasi yang terjadi antara objek dosen dengan mata kuliah ?
Bagaimana relasi yang terjadi antara objek mahasiswa dengan mata kuliah ?
Dalam Relasi perlu diperhatikan Kardinalitas
- berapa objek yang terlibat dari masing-masing kelas yang terlibat.
- apakah relasi tersebut bersifat wajib (mandatory) atau opsional.
Menyatakan suatu hubungan struktural antar objek. yang menggambarkan objek dari suatu kelas dihubungkan ke objek dari kelas lain. Menunjukkan variabel dalam suatu kelas yang menyimpan rujukan bertipe kelas lain.
- Depedency
Dependency merupakan relasi antar kelas dimana satu kelas membutuhkan atau tergantung kepada kelas lainnya. Tapi ketergantungan tersebut tidak timbal balik.
Suatu kelas A bergantung pada kelas B jika kelas B mengalami perubahan maka kelas A akan terkena dampak perubahan tersebut
Relasi dependency ini digambarkan dengan panah yang dari satu kelas ke kelas lainnya. Arah panah menunjukkan kelas yang dibutuhkan.
Pengenalan Relasi pada Paradigma Pemrograman Object Oriented Programming
Belajar mengenai hubungan antar objek agar kita dapat menuliskan kode dengan mudah, bersih, dan bisa digunakan kembali (reusable).
Hubungan antar objek merupakan hal yang mendasar dalam pemrograman berorientasi objek. Hubungan antar objek juga mendefinisikan bagaimana objek-objek tersebut akan berinteraksi atau berkolaborasi satu sama lainnya. Dalam hubungan antar objek terdapat 3 kategori:
Association : memiliki hubungan “has-a” yang menyatakan bahwa sebuah kelas memiliki hubungan dengan kelas lainnya.
Dependency : hubungan ini memiliki arti bahwa sebuah kelas memiliki ketergantungan terhadap kelas lain.
Generalization : memiliki hubungan “is-a” dari kelas yang spesifik ke kelas yang lebih umum.
Association
Asosiasi didefinisikan sebagai hubungan yang terstruktur, yang secara konsep memiliki arti bahwa dua komponen saling terhubung satu sama lain. Jika dilihat pada gambar di atas, hubungan asosiasi digambarkan dengan garis tidak putus-putus dan tidak memiliki anak panah pada kedua ujungnya. Apa pasal? Jawabannya, setiap objek memiliki siklus hidupnya sendiri dan tidak memiliki “ownership” antara kedua objek tersebut. Semisal kasus gambar di atas berupa hubungan antara kelas User dan Seller. Dilihat dari kardinalitasnya, satu User dapat membeli barang dari berbagai Seller. Apabila class Seller dihilangkan, class User masih bisa digunakan karena hubungan antara kedua class tersebut lepas alias tidak saling memiliki.
Hubungan asosiasi sendiri memiliki hubungan one-to-one, one-to-many, many-to-one, dan many-to-many atau yang biasa disebut sebagai kardinalitas. Kardinalitas adalah hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain, demikian sebaliknya. Mari kita lihat bagaimana setiap kardinalitas pada hubungan asosiasi.
One-to-one relationship
Hubungan satu ke satu terjadi ketika satu objek A memiliki referensi dari satu objek B. Sebaliknya, satu objek B memiliki referensi dengan satu dari objek A. Sebagai contoh, kelas User hanya memiliki satu data diri dan tidak lebih. Berikut ini gambarannya.
One-to-many relationship
Hubungan satu ke banyak ini diartikan dengan hubungan antara dua objek A dan B di mana objek A terhubung dengan lebih dari satu objek B, tetapi anggota dari objek B hanya terhubung dengan satu anggota A. Sebagai contoh, seorang pembeli dapat memiliki atau memesan minimal satu hingga beberapa pesanan. Semisal, class User dapat memiliki hubungan one-to-many terhadap class Order. Jika digambarkan akan menjadi seperti berikut:
Many-to-many relationship
Hubungan banyak ke banyak merupakan hubungan antara dua buah objek A dan B, di mana setiap anggota dari objek A maupun B memiliki hubungan lebih dari satu objek A dan B. Sebagai contoh, seorang pengguna dapat membeli beberapa barang, tetapi satu buah barang juga dapat dibeli oleh beberapa pengguna. Jika class User memiliki hubungan many-to-many terhadap class Product maka hubungan antar class tersebut dapat diilustrasikan seperti berikut:
Posting Komentar untuk "Relasi Kelas Sistem Berorientasi Objek"