Senin, 07 Oktober 2013

PBO tgs 1

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,
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.
 
6. Polimorfisme

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

Berkas:Uml diagram.svg

UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu:
  • 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.
Berikut akan dijelaskan 4 macam diagram yang paling sering digunakan dalam pembangunan aplikasi berorientasi object, yaitu use case diagram, sequence diagram, collaboration diagram, dan class diagram.

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.

Sequence Diagram

Sequence diagram menjelaskan secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.

Collaboration Diagram

Collaboration diagram dipakai untuk memodelkan interaksi antar object di dalam sistem.Berbeda dengan sequence diagram yang lebih menonjolkan kronologis dari operasi-operasi yang dilakukan, collaboration diagram lebih fokus pada pemahaman atas keseluruhan operasi yang dilakukan oleh object.