Rabu, 10 April 2013

Perancangan OOP

A. Pengertian Dasar 
Perancangan  
• Proses untuk merencanakan atau menga tur segala sesuatu menurut tahapan tertentu, sebelum bertindak, mengerjak an, atau melakukan sesuatu tersebut [KBBI].
• Proses untuk mengaplikasikan berbagai macam teknik dan prinsip untuk tujuan pendefinisian secara rinci suatu  perangkat, proses atau sistem agar dapat direalisasikan dalam suatu bentuk fisik [PRE97]. 
• Membuat solusi logika atau caar bagaimana kebutuhan-kebutuhan yang ada dipenuhi (diselesaikan)  oleh sistem [LAR98]. 
• Pendefinisian arsitektur perangkat lunak, komponen, modul, antarmuka, pendekatan pengujian, dan data untuk  memenhui kebutuhan-kebutuhan yang sudah ditentukan sebelumnya [IEEE].


Perancangan Berorientasi Objek 
• Proses untuk menerjemahkan model  analisis hasil OOA menjadi model implementasi yang spesifik yang dapat  direalisasi menjadi sebuah perangkat lunak [PRE97]. 
• Spesifikasi dari solusi perangkat lunak secara logika dalam kerangka objek-objek perangkat lunak, seperti kelas, atribut, metode dan hubungan antar kelas [LAR98]. 
• Proses pembangunan arsitektur sistem melalui konsep berorientasi objek [MEY97].
 
Tujuan Perancangan  
• Secara umum, tujuan perancangan adalah menghasilkan suatu model atau penggambaran dari suatu entitias yang akan dibangun kemudian. 
• Dalam konteks perancangan berorientasi  objek (OOD), tujuan perancangan adalah menurunkan objek-objek dari setiap kelas dan bagaimana mengimplementasikan hubungan, perilaku dan komunikasi antar objek-objek tersebut [PRE97]. 
 
Proses Perancangan  
Merupakan proses kreatif dalam  pembangunan perangkat lunak untuk memecahkan suatu persoalan. Model dari proses perancangan secara garis besar terdiri dari empat tahap proses: 
• Mengemukakan suatu solusi 
• Membangun model dari solusi tersebut 
• Evaluasi model terhadap spes ifikasi kebutuhan yang telah ada 
• Menjabarkan rincian spesifikasi dari solusi tersebut
Perancangan yang baik: 
• Melaksanakan semua kebutuhan dan persyaratan yang tercantum pada dokumen SRS. 
• Merupakan acuan yang dapat dibaca, dimengerti oleh pembuat program dan penguji perangkat lunak. 
• Menyediakan gambaran lengkap dari perangkat lunak mencakup data, fungsi, dan tanggapan, dalam pers pektif pelaksan aan pembuatan perangkat lunak. 
• Menghasilkan model atau representasi dari perangkat lunak untuk digunakan dalam proses implementasi atau coding.
Tahap Perancangan 
Dari sudut pandang manajemen proyek, perancangan terdiri dari dua bagian, yaitu: 
• Perancangan awal (preliminary design) Menentukan arsitektur perangkat lunak secara keseluruhan (preliminary design)
   - Bagaimanakah lingkungan programnya? 
   - Bagaimana bentuk penyimpanan datanya? 
   - Bagaimana bentuk antarmukanya? 
• Perancangan rinci (detailed design) Menentukan modul program (prosedural) yang harus dibuat
 
Adapun dari sudut pandang teknis, kegiatan perancangan terdiri dari aktivitas: 
• Perancangan arsitektural program 
   - arsitektural logika 
   - arsitektural fisik 
• Perancangan modul program (prosedural) 
• Perancangan data 
   - struktur data internal 
   - struktur data fisik 
• Perancangan antarmuka 
   - Perancangan antarmuka antar modul-modul 
   - Perancangan antarmuka antar perangkat lunak dengan non-humanity (external entity) 
   - Perancangan antarmuka pemakai
B. Metode Perancangan Berorientasi Objek
Pengertian  
• Cara kerja yang sistematis untuk mengerjakan tahap perancangan berdasarkan pendekatan objek. 
• Seperti halnya analisis, perancangan berorientasi objek mempunyai urutan-urutan aktivitas, teknik, dan  alat bantu (tools) tertentu untuk memodelkan hasil dari setiap aktivitasnya. 
• Beberapa metode yang dapat digunakan utnuk melakukan perancangan berorientasi objek di antaranya adalah sebagai berikut.
Metode Coad & Yourdon
• Problem domain component 
• Human interaction component 
• Task management component  
• Data Management component  
 
Metode Rumbaugh 
• Perform design system 
• Conduct object design  
• Implement control mechanisms defined in system design  
• Adjust class structure to strengthen inheritance  
• Design messaging to implement the object relationship  (associations) 
• Package classes and associations into modules  
 
Metode Jacobson 
• Consider adaptions to make the idealized analysis model fit the real world environment
• Create blocks as the primary design object
• Create an interaction diagram shows how stimuli are passed between blocks
• Organize blocks into subsystems
• Review the design work
 
Metode Booch  
o Architectural plannning
o Tactical design
o Release planning
 
Metode Perancangan Secara Umum 
• Pada prinsipnya semua metode peranca ngan berorientasi objek adalah sama. 
• Tahap pelaksanaan perancangan berorientasi objek secara umum: 
   - Perbaiki dan lengkapi model objek hasil analisis 
   - Perancangan objek 
        Rancang setiap operasi pada level prosedural 
        Definisikan kelas-kelas internal 
        Rancang struktur data internal untuk setiap atribut kelas 
   - Rancang model pesan berdasarkan kerjasama (kolaborasi) dan hubungan antar objek  
   - Rancang antarmuka pemakai  
   - Kaji ulang model perancangan dan ulangi sesuai kebutuhan.


Sumber: http://www.unsri.ac.id/

Kasus Analisis

Contoh Hasil Analisis Berorientasi Objek dengan Metode Coad-Yourdon
• Identifikasi Objek, Atribut, dan Service





• Identifikasi Struktur 

Struktur Generalisasi – Spesialisasi



• Struktur Whole – Part


• Identifikasi Subjek


• Pengiriman Message Antar Objek


Sumber: http://warbrain-hkr.blogspot.com/

Analisis Berorientasi Objek

A. Pengertian Dasar:
Analisis 
• Penguraian suatu pokok atas berbagai  bagiannya dan penelaahan bagian itu sendiri serta hubungan antar bagi an untuk memperoleh pengertian yang tepat dan pemahaman arti keseluruhan.
• Studi dari suatu permasalahan dengan cara memilah-milah permasalahan tersebut sehingga dapat dipahami  dan dievaluasi, sebelum diambil tindakan-tindakan tertentu.


Analisis Berorientasi Objek 
• Investigasi masalah untuk menemukan (mengidentifikasikan) dan mendefinisikan objek-objek atau konsep-konsep yang ada di ruang masalah. 
• Proses untuk menentukan objek-objek  potensial yang ada dalam sistem dan mendeskripsikan karakterisitik dan hubungannya dalam sebuah notasi formal. 
• Aplikasi konsep berorientasi objek untuk memodelkan permasalahan dan sistem, baik untuk lingkup perangkat lunak maupun non-perangkat lunak.
Tujuan Analisis 
• Memahami permasalahan secara menyeluruh. 
• Mengungkapkan apa yang harus dikerjakan oleh sistem untuk memenuhi kebutuhan pemakai. 
• Mengetahui ruang lingkup produk (product space ) dan pemakai yang akan menggunakan produk tersebut. 
Tahap Analisis 
• Mempelajari permasalahan 
• Menentukan kebutuhan pemakai 
• Mengubah kebutuhan yang belum terstruktur menjadi model-model atau gambar-gambar dengan memanfaatkan metode dan teknik analisis tertentu. 
• Mendokumentasikan hasil analisis, misalnya  Software Requirement Specification (SRS).
B. Metode Analisis Berorientasi Objek:
Pengertian 
• Cara kerja yang sistematis untuk mengerjakan tahap analisis berdasarkan pendekatan objek. 
• Ada kumpulan aturan-aturan tertentu yang harus diikuti untuk menyelesaikan pekerjaan analisis tersebut.
• Mempunyai urut-urutan aktivitas, teknik, dan alat bantu ( tools ) tertentu untuk memodelkan (mendokumentasikan) hasil dari se tiap aktivitas. 
• Ada beberapa metode yang dapat digunakan untuk melakukan analisis berorientasi objek, dan dianta ranya adalah sebagai berikut.
Metode Coad & Yourdan 
• Diperkenalkan oleh Peter Coad  dan Edward Yourdan pada tahun 1990. 
• Disebut juga dengan nama  Object Oriented Analysis  (OOA), dan dipandang sebagai salah satu te knik yang mudah untuk dipelajari. 
• Notasi model relatif sederhana karena didasarkan pada struktur fisik dunia nyata, dan petunjuk untuk mela kukan analisis cukup jelas. 
• Tahap atau skema pelaksanaan: 
  - Identifikasi kelas dan objek 
  - Identifikasi struktur 
• Struktur "generalization-specification” 
• Struktur “whole-part” atau  “a-part-of” 
• Identifikasi subjek  
• Definisikan atribut 
  - Atribut implisi objek 
  - Koneksi instan (instance connection ) 
• Definisikan layanan 
  - Layanan implisit objek 
  - Layanan yang berasosiasi dengan atribut 
  - Layanan yang berasosiasi dengan “message-connection”
Metode Rumbaugh 
• Diperkenalkan oleh James Rumbaugh, Michael Blaha, William Premerlan, Frederick Eddy dan William Lorensen pada tahun 1991. 
• Lebih dikenal dengan  Object Modeling Technique  (OMT) yang dapat digunakan baik untuk analisis maupun desain. 
• Selain model-model fisik dari obje k, pendekatan analisis dilkukan juga untuk model-model dinamik dan model fungsional.
Metode Jacobson 
• Diperkenalkan oleh Ivar Jacobson dengan nama Object Oriented Software Engineering (OOSE) pada tahun 1992. 
• Merupakan versi yang juga sederhana dari metode berorientasi objek. 
• Sudut pandang atau fokus analisis ditekankan pada “use case ”, yaitu deskripsi atau skenario yang  menggambarkan bagaimana pemakai berinteraksi dengan produk atau sistem yang akan dikembangkan. 
Metode Booch 
• Diperkenalkan oleh Grady Booch pada tahun 1994. 
• Meliputi proses pengembangan makro dan mikro, dengan anggapan bahwa analisis dan desain merupakan rangkaian kesatuan aktivitas yang tidak dipisahkan.
C. Metode Analisis Secara Umum  
• Pada prinsipnya semua metode analisis berorientasi objek adalah sama, perbedaan hanya terletak pada s udut pandang dan teknis pelaksanaannya. 
• Secara umum, metode analisis berorientasi objek mencakup representasi kelas dan hirarki kelas, model hubunga n objek, dan model perilaku objek. 
• Tahap atau skema pelaksanaan analisis berorientasi objek : 
  - Tentukan kebutuhan pemakai untuk sistem berorientasi objek 
  - Identifikasi kelas dan objek 
  - Identifikasi atribut dan layanan untuk setiap objek 
  - Definisikan struktur dan hirarki 
  - Buat model hubungan objek 
  - Buat model perilaku objek
Menentukan Kebutuhan Pemakai untuk Sistem Berorientasi Objek 
• Mengidentifikasikan proses-proses bisnis dan kebutuhan pemakai dan mengekspresikan dengan ‘use-case”.
• Sebenarnya bukan merupakan aktivitas analisis berorientasi objek, karena tidak membicarakan pembahasan tentang objek.
• Diperlukan karena dapat menjelaskan aktivitas-aktivitas apa saja yang harus dikerjakan oleh sistem, da n menjelaskan juga perilaku dari komponen-komponen sistem.
• Ada diagram tertentu yang dapat merepresentasikan model kebutuhan dari “use-case” yang diperoleh.
Identifikasi Kelas dan Objek 
• Mengidentifikasi kelas-kelas dan objek-objek yang ada dalam lingkup aplikasi: 
  - eksplisit pada pernyataan masalah 
  - implisit pada lingkup aplikasi atau  pengetahuan atas lingkup aplikasi 
• Kelas dan objek dapat diidentifikasi dari: 
  - entitas eksternal yang memproduksi dan memakai informasi yang akan digunakan oleh sistem berbasis komputer 
  - sesuatu yang merupakan bagian dari wilayah informasi dari permasalahan 
  - kejadian, misalnya prosedur operasional, yang muncul dalam lingkup operasional sistem 
  - peran yang dimainkan oleh orang- orang yang berinteraksi dengan sistem 
  - unit organisasi yang relevan dengan aplikasi 
  - tempat yang menentukan ruang lin gkup masalah dan seluruh fungsi dari sitem 
  - struktur yang mendefinisikan  kelas dari objek atau yang menghubungkan kelas-kelas objek. 
• Abaikan kelas dan objek yang tidak tepat karena: 
  - redunden 
  - tidak relevan 
  - lebih tepat berupa atribut 
  - lebih tepat berupa operasi 
  - lebih tepat berupa peran 
  - lebih merupakan konstruksi implementasi.
Identifikasi Atribut dan Layanan 
• Mengidentifikasi atribut dan layanan yang terkait untuk setiap atribut 
tersebut. 
• Atribut diidentifikasi dari  elemen-elemen data yang dapat 
menggambarkan (mencirikan) sebuah objek secara utuh. 
• Layanan diidentifikasi dari perilaku spesifik yang dapat menunjukkan 
peran dan tanggung jawab suatu objek. 
• Abaikan atribut yang tidak tepat karena: 
  - berupa objek 
  - berupa qualifier 
  - berupa nama 
  - berupa identifier pada implementasi 
  - menyatakan status internal objek 
  - merupakan atribut yang sangat kecil (minor) 
  - bertentangan dengan atribut lain
Definisi Struktur dan Hirarki  
• Mendefinisikan struktur dan hirarki dari objek yang akan 
mengorganisasikan kelas objek.  
• Mengatur dan menyederhanakan objek-objek menjadi kelas-kelas objek 
melalui konsep agregasi dan pewarisan. 
• Struktur dan hirarki yang mungkin didefinisikan: 
  - Struktur “ generalization-specification”
  


Sumber: http://www.unsri.ac.id/

Sejarah OOP

Sejarah OOP:
Tahun 1960, ditemukan suatu pembuatan program yang terstruktur (structured programming). Metode ini dikembangkan dari bahsa C dan Pascal.

Dengan program yang terstruktur inilah untuk pertama kalinya kita mampu menulis program yang begitu sulit dengan lebih mudah.


Definisi OOP:
Object Oriented Programming (OOP) adalah suatu metode dalam pembuatan program, dengan tujuan untuk menyelesaikan kompleksnya berbagai masalah program yang terus meningkat.

Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi untuk mengambilnya. Pada kasu s tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi.


Objek dan Kelas:
Ide dasar pada OOP adalah mengkombinasikan data dan fungsi untuk mengakses data menjadi sebuah kesatuan unit yang dikenal dengan nama objek.

Kelas adalah kumpulan dari beberapa objek yang sama.





Contoh Objek:
Konsep Dasar OOP:
  - Pengkapsulan (Encapsulation) 
  - Pewarisan (Inheritance) 
  - Polimorfisme
Pengkapsulan (Encapsulation):
Encapsulation seringkali dianggap sebagai ”penyembunyian informasi”, dapat diartikan juga pengemasan data dan fungsi dalam wadah bernama objek. Konsep public dan private akan senantiasa dipakai dalam pengkapsulan.
Encapsulation memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari suatu objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya.
Pewarisan (Inheritance):
Inheritance merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat - sifat dari suatu kelas diturunkan ke kelas lain.
Polimorfisme:
Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda. Istilah ini sendiri berasal dari bahasa Yunani, yang berarti ”mempunyai banyak bentuk”.
Contohnya, bila seekor burung menerima pesan ”gerak cepat”, dia akan menggerakkan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun sesuai dengan kemampuan hewan tersebut.
Kesimpulan:
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut(terstruktur) tetapi objek- objek apa yang dapat melakukan pemecahan masalah tersebut.


Sumber: http://dwidiastuti.staff.gunadarma.ac.id/Downloads/folder/0.4/