Pendahuluan: PBO
1. Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
1. Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas
yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak
skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih
mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan
pendekatan OOP lebih mudah dikembangkan dan dirawat.
2. Penentuan Kelas-&-Objek (class-&-object) Pengertian objek adalah suatu abstraksi dari suatu lingkup permasalahan / implementasi yang menggambarkan kemampuan dari sistem untuk menangkap informasi tentang objek tersebut, berinteraksi dengan atau keduanya; "pembung-kusan" pada nilai atribut dan service-nya.
Kelas adalah suatu gambaran dari satu atau lebih objek, penggambaran dengan sekumpulan atribut dan service yang sama. Menggambarkan bagaimana untuk menciptakan objek-objek baru dalam suatu kelas.
3. Pembungkusan (Encapsulation)
Pembungkusan adalah suatu prinsip yang digunakan ketika pengembangan struktur program secara keseluruhan, dimana tiap-tiap komponen program harus disimpan/disembunyikan dalam satu perancangan interaksi. Untuk tiap-tiap modul ditentukan dengan cara mengungkapkan sebagian kecil tentang informasi kerja secara pasti. Pembungkusan membantu memperkecil pekerja-an ketika pengembangan suatu sistem baru. Jika seorang perancang “mem-bungkus” bagian dari hasil analisis yang sering berubah-ubah, kemudian mengganti sesuai dengan kebutuhan, jika ada masalah, maka masalah tersebut lebih kecil resikonya bila dibandingkan dengan tanpa “pembungkusan”.
4. Pewarisan (Inheritance)
Pewarisan adalah suatu cara kerja yang menyatakan kesamaan diantara kelas-kelas, penyederhanaan definisi kelas yang mirip ke suatu definisi yang telah ada sebelumnya. Pewarisan terdiri dari generalisasi dan spesialisasi.
5. Pengertian Generalisasi dan Spesialisasi
Generalisasi adalah pendefinisian subclass-subclass
yang disatukan menjadi entitas superclass
tunggal berdasarkan karakteristik
umum. Disamping proses desain top-down
(dari inisial entitas ke level lebih rendah (subgrup)), desain juga dapat
dilakukan dengan proses bottom-up,
yaitu banyak entitas disintesiskan menjadi entity yang lebih tinggi berdasarkan
kesamaan feature-nya.
Contoh, entitas pisang, mangga dan jambu
dikelompokkan dalam sebuah entitas bernama buah.
Gambar
contoh generalisasi
Spesialisasi adalah
proses yang memperhatikan perbedaan setiap anggota dari sebuah entitas sehingga
anggota dari sebuah entitas bisa dikelompokkan ke dalam kelompok yang lebih
kecil.
Contoh, entitas buah bisa dipecah menjadi pisang,
jambu dan mangga.
Gambar
contoh spesialisasi
Dalam proses
Generalisasi/Spesialisasi akan muncul dua istilah baru yaitu superclass dan
subclass. Superclass adalah himpunan hasil dari
proses generalisasi sedangkan subclass adalah himpunan hasil dari proses
spesialisasi yang isinya lebih spesifik daripada superclass.
Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu “ Polimorfisme ”, yaitu suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik. Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil” dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class “Kendaraan”. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”, akan tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class tersebut. Dimana jika method “Move()” dipanggil pada class “Motor” akan menghasilkan perpindahan 30Km, jika pada class “Mobil” akan menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan 300Km. Hal inilah yang kita sebut sebagai Polimorfisme , yaitu penggunaan method yang sama, yang akan menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut.
7. Unified Modeling Language (UML)
UML adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya.UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.
UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi.UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat.Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.
8. Diagram UML
- Use Case Diagram untuk memodelkan proses bisnis.
- Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
- Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objects.
- Collaboration Diagram untuk memodelkan interaksi antar objects.
- State Diagram untuk memodelkan perilaku objects di dalam sistem.
- Activity Diagram untuk memodelkan perilaku Use Cases dan objects di dalam system.
- Class Diagram untuk memodelkan struktur kelas.
- Object Diagram untuk memodelkan struktur object.
- Component Diagram untuk memodelkan komponen object.
- Deployment Diagram untuk memodelkan distribusi aplikasi.
Use Case Diagram
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang behhhrinteraksi dengan sistem aplikasi.Use case merepresentasikan operasi-operasi yang dilakukan oleh actor. Use case digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case.

