Jumat, 25 November 2022

,

PERANCANGAN BERORIENTASI OBJEK

1. PENDAHULUAN

   Sistem berorientasi objek terdiri dari objek yang berinteraksi yang mempertahankan keadaan (state) lokal dan menyediakan operasi pada state tersebut.

   Representasi state bersifat pribadi dan tidak dapat diakses langsung dari luar objek.

   Proses desain berorientasi objek melibatkan perancangan kelas objek dan hubungan antara kelas-kelas tersebut.

   Mengubah         implementasi    suatu         objek         atau menambahkan  metode      atau  operasi         tidak mempengaruhi objek lain dalam sistem.

   Hal-hal yang diperhatikan dalam desain berorientasi objek:

1.            Memahami dan mendefinisikan konteks dan interaksi eksternal dengan sistem.

2.            Desain arsitektur sistem.

3.            Identifikasi objek utama dalam sistem.

4.            Kembangkan model desain.

5.            Tentukan antarmuka.

   Desain      berorientasi      objek          biasanya diimplementasikan dengan bahasa pemrograman berorientasi objek.

   Keuntungan utama dari desain OO adalah:

a.           Sistem Analis dapat menghemat waktu dan menghindari kesalahan dengan menggunakan objek secara modular.

b.           Programer dapat menerjemahkan desain ke dalam kode. Objek yang baru dapat dibuat tanpa mengubah kode yang sudah ada.

c.            Bekerja dengan modul program yang dapat digunakan kembali (reuse) yang telah diuji dan diverifhikasi.

A. IDENTIFIKASI KELAS OBJEK

Tujuan mengidentifikasi kelas objek dalam sistem berorientasi objek:

1.           Gunakan analisis gramatikal dari deskripsi bahasa alami. Objek dan atribut adalah kata benda; operasi atau layanan adalah kata kerja.

2.           Gunakan entitas nyata (benda) dalam domain aplikasi seperti mobil, peran seperti manajer atau dokter, acara seperti permintaan, interaksi seperti pertemuan, lokasi seperti kantor, unit organisasi seperti perusahaan.

3.           Gunakan analisis berbasis skenario dimana berbagai skenario penggunaan sistem diidentifikasi dan dianalisis secara bergantian.

B. Istilah dalam Objek Oriented

1.  OBJEK (Object)

   Objek adalah konsep atau abstraksi tentang sesuatu yang memiliki arti untuk aplikasi yang akan dikembangkan

   Objek diwakili dengan kata benda Objek dapat berupa:

   Objek orang/manusia: Karyawan, Mahasiswa

   Objek tempat: Kantor, Gedung, Toko

   Objek abstrak: Transaksi, Jadwal, Peminjaman

   Objek organisasi: Divisi-IT, HRD

   Objek peralatan/benda: Mobil, Buku, Baju

2.  ATRIBUT (Attribute)

   Suatu objek memiliki atribut tertentu yang merupakan karakteristik yang menggambarkan objek.

   Suatu atribut dapat mengambil sebuah nilai yang ditentukan berdasarkan domain yang dihitung.

   Domain merupakan satu himpunan nilai-nilai spesifik.

   Contoh: kelas MOBIL memiliki sebuah atribut WARNA. Domain nilai untuk warna adalah {putih, hitam, perak, abu-abu, biru, merah, kuning, hijau}.

   Objek dapat memiliki atribut khusus yang disebut state. Keadaan      suatu objek adalah           kata    sifat    yang menggambarkan status objek saat ini.

   Misalnya rekening bank dapat aktif, tidak aktif, tertutup, atau dibekukan

3. METODE (Method)

   Suatu metode mendefinisikan tugas-tugas spesifik yang dapat dilakukan oleh suatu objek.

   Metode dituliskan dengan kata kerja yang menggambarkan apa dan bagaimana suatu objek melakukan sesuatu.

   Misalnya: objek PELANGGAN dapat melakukan tugas-tugas tertentu seperti melakukan pemesanan, membayar tagihan, dan mengubah alamatnya.

4. PESAN (Message)

   Pesan (Message) adalah perintah yang memberi tahu suatu objek untuk melakukan metode tertentu.

   Misalnya: pesan TAMBAHKAN SISWA mengarahkan kelas SISWA untuk menambahkan nomor siswa, nama, dan data lain tentang siswa itu. Demikian pula, pesan bernama HAPUS SISWA memberi tahu kelas SISWA untuk menghapus instance Siswa.

   Pesan yang sama untuk dua objek berbeda dapat menghasilkan hasil yang berbeda.

CONTOH PESAN

   Objek INSTRUCTOR mengirim pesan ENTER GRADE ke instance kelas STUDENT RECORD.

   Objek INSTRUCTOR dan kelas STUDENT RECORD dapat digunakan kembali dengan sedikit modifikasi, di sistem informasi sekolah lain dimana banyak atribut dan metode akan serupa

CONTOH PESAN

5. KELAS (Class)

   Kelas adalah deskripsi umum yang menggambarkan sebuah kumpulan berisi objek-objek yang sama.

   Semua objek dalam kelas berbagi atribut dan metode yang sama, sehingga kelas seperti blue print, atau template untuk semua objek di dalam kelas.

   Superclass adalah generalisasi dari satu himpunan kelaskelas yang berhubungan.

   Subclass adalah spesialisasi dari superclass.

   Contoh:        superclass   kendaraan Bermotor        adalah generalisasi dari kelas Truk, SUV, Minibus dan Car. Subclass Minibus       mewarisi      semua           atribut           kendaraan Bermotor, tetapi      juga    menggabungkan           atribut          tambahan    yang spesifik hanya untuk Minibus.

CONTOH KELAS DAN SUBKELAS


Berorientasi Objek?

Attribute:

Topi, Baju, Jaket,

Tas Punggung, 

Tangan, Kaki, Mata

Behavior:

Cara Jalan ke Depan

Cara Jalan Mundur

Cara Belok ke Kiri Cara Memanjat

Berorientasi Objek?

Attribute (State):

Ban, Stir, Pedal Rem, Pedal Gas,

Warna, Tahun Produksi Behavior:

Cara Menghidupkan Mesin

Cara Manjalankan Mobil

Cara Memundurkan Mobil

Attribute Variable(Member) Behavior Method(Fungsi)

C. Hubungan Antara Objek dan Kelas

   Hubungan (relationship) memungkinkan objek untuk berkomunikasi dan berinteraksi ketika mereka melakukan fungsi bisnis dan transaksi yang diperlukan oleh sistem.

   Hubungan menggambarkan apa yang perlu diketahui objek satu sama lain, bagaimana objek merespon perubahan pada objek lain, dan efek keanggotaan dalam kelas, superclass, dan subclass.

   Beberapa hubungan lebih kuat dari pada yang lain (seperti hubungan antara anggota keluarga lebih kuat dari satu hubungan antara kenalan biasa). Hubungan terkuat disebut warisan.

Perbedaan Class dan Object

            Class: konsep dan deskripsi dari sesuatu

      Class mendeklarasikan method yang dapat digunakan (dipanggil) oleh object.

            Object: instance dari class, bentuk (contoh) nyata dari class

      Object memiliki sifat independen dan dapat digunakan untuk memanggil method.

            Contoh Class dan Object:

      Class: mobil.

      Object: mobilnya pak Joko, mobilku, mobil berwarna merah.

Perbedaan Class dan Object

   Satu        class dapat         memiliki   banyak      object,      dan setiap object tersebut mempunyai sifat yang sama persis   seperti       yang didefinisikan     dalam      class tersebut.

   Contoh Class dan Object:

    Class: Fruit

    Object: Pisang, Mangga, Apel

Perbedaan Class dan Object

   Class seperti cetakan kue, dimana kue yg dihasilkan dari cetakan kue itu adalah object

   Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama (object memiliki sifat independen).


KARAKTERISTIK OBJEK

A. Enkapsulasi (Encapsulation)

   Data dan prosedur/fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur/fungsi lain dari luar tidak dapat mengaksesnya.

   Data terlindung dari prosedur atau objek lain kecuali prosedur yang berada dalam objek tersebut.

   Merupakan     pembatasan            ruang lingkup         program terhadap data.

   Enkapsulasi memungkinkan objek untuk digunakan sebagai komponen modular di mana saja dalam sistem, karena objek mengirim dan menerima pesan tetapi tidak mengubah metode internal objek lain.

ENCAPSULATION

   Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri

        Tongkat transmisi (gigi) pada mobil

        Tombol on/off/pengaturan suhu pada AC

   Class access level (public, protected, private) adalah implementasi dari konsep encapsulation

   Enkapsulasi data dapat dilakukan dengan cara:

1.              mendeklarasikan instance variable(memiliki nilai yang berbeda di setiap objek) sebagai private

2.              mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut







Contoh Enkapsulasi

ACCESS MODIFIER

Modifier

Dalam Class yang Sama

Dalam

Package yang

Sama

Dalam SubClass

Dalam

Package Lain

private

 

 

 

tanpa tanda

 

 

protected

 

public

B. Pewarisan (Inheritance)

   Pewarisan adalah salah satu pembeda utama antara sistem konvensional dan sistem berbasis objek.

   Subkelas Y mewarisi semua atribut dan operasioperasi yang terkait dengan superkelas X. Ini berarti semua struktur dan algoritma data yang secara orisinal dirancang dan diimplementasikan untuk X segera tersedia untuk Y

   Perubahan apa pun pada atribut-atribut atau operasi-operasi yang dimuat ke dalam sebuah superkelas, akan diwarisi oleh semua subkelas.

Pewarisan (Inheritance)

   Suatu class dapat mewariskan atribut  dan method kepada class lain (subclass), serta membentuk class hierarchy Penting untuk Reusability

   Java Keyword: extends

   VB.Net Keyword: Inherits

Pewarisan (Inheritance) di Java


   Nama_Class_Turunan, adalah       nama         class yang akan dibuat sebagai class turunan atau subclass.

   Class_Induk, adalah class yang ditunjuk sebagai SuperClass untuk class turunan.

Inheritance (Pewarisan) di VB.Net

Inheritance  dalam  VB.NET  dilakukan  dengan  menggunakan  keyword  Inherits.


CONTOH PEWARISAN



C. Polimorfis (Polymorphism)

   Merupakan konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda.

   Polimorfis juga mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.

   Polimorfis   sangat        mengurangi       usaha         yang diperlukan untuk memperluas perancangan sistem berorientasi objek

Polymorphism

Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang berbeda Implementasi konsep polymorphism:

1.          Overloading: Kemampuan untuk menggunakan nama yang sama untuk beberapa method yang berbeda parameter (tipe dan atau jumlah).

2.          Overriding: Kemampuan subclass untuk menimpa method dari superclass, yaitu dengan cara menggunakan nama dan parameter yang sama pada method.

CONTOH POLIMORFIS

KELAS-KELAS PERANCANGAN

   Model kebutuhan menentukan serangkaian kelas-kelas analisis yang masing-masing kelas menggambarkan beberapa elemen masalah yang fokus pada masalah yang dilihat oleh pengguna.

   Himpunan kelas-kelas perancangan adalah

1.           Memperhalus kelas-kelas analisis dengan menyediakan detail perancangan yang memungkinkan kelas-kelas bisa diimplementasikan.

2.           Menciptakan suatu himpunan kelas-kelas perancangan yang baru, yang mengimplementasikan suatu infrastruktur perangkat lunak yang mendukung solusi bisnis.

Kelas perancangan yang merepresentasikan lapisan berbeda dari perancangan arsitektur

a.         Kelas-kelas antarmuka. Pengguna menentukan semua abstraksi yang diperlukan untuk interaksi manusia dengan komputer

b.         Kelas-kelas bisnis. Kelas-kelas mengidentifikasi atribut dan operasi/metode yang dibutuhkan untuk mengimplementasikan beberapa elemen ranah bisnis.

c.          Kelas-kelas proses. Mengimplementasikan abstraksi bisnis yang levelnya lebih rendah untuk sepenuhnya mengelola kelas-kelas ranah bisnis.

d.         Kelas-kelas persisten. Merepresentasikan data store yang akan terus ada setelah eksekusi perangkat lunak.

e.         Kelas-kelas sistem. Mengimplementasikan manajemen Perangkat Lunak dan mengendalikan fungsi-fungsi agar mampu mengoperasikan sistem dan berkomunikasi dengan dunia luar

A. Karakteristik Kelas Perancangan

a. Lengkap dan cukup

   Suatu      kelas  perancangan           seharusnya menjadi enkapsulasi lengkap dari semua atribut dan metode yang dapat layak diharapkan.

   Cukup berarti memastikan bahwa kelas perancangan berisi hanya metode-metode yang cukup untuk mencapai tujuan kelas.

   Contoh: kelas Scene adalah lengkap hanya jika kelas ini berisi semua atribut dan metode yang dapat layak diasosiasikan dengan pembuatan suatu scene video. 

b. Sederha

  Metode-metode yang dihubungkan dengan sebuah kelas perancangan harus fokus ke pencapaian satu fungsi spesifik pada kelas.

  Contoh:      kelas VideoClip  memiliki   atribut StartPoint dan EndPoint untuk mengindikasikan titik awal dan titik akhir.

c. Kohesi tinggi

   Kelas perancangan kohesif adalah single minded. Artinya kelas ini memiliki satu kumpulan kecil tanggung jawab yang fokus dan menerapkan atribut dan metode untuk menjalankan tanggung jawab tersebut.

   Contoh: kelas VideoClip dapat berisi satu kumpulan metode-metode untuk mengedit klip video. Kohesi dijaga asalkan setiap metode fokus semata-mata pada atribut-atribut yang diasosiasikan dengan klip video.

Karakteristik Kelas Perancangan

d. Keterhubungan rendah

  Jika sebuah model perancangan memiliki keterhubungan tinggi (semua kelas perancangan berkolaborasi dengan semua kelas perancangan lainnya), sistem menjadi sulit diimplementasikan, diuji, dan dipelihara.

  Kelas perancangan pada subsistem memiliki hanya pengetahuan terbatas tentang kelas-kelas lain.

  Pembatasan ini dinamakan Law of Demeter yang menyatakan bahwa suatu metode seharusnya hanya mengirim pesan ke metode-metode pada kelas-kelas yang berdekatan.

PENDEKATAN PEMROGRAMAN TERSTRUKTUR

Karakteristik Pendekatan Berorientasi Prosedur/Fungsi: a. Penekanan pada sesuatu yang harus dikerjakan

(algoritma pemecahan masalah)

b.              Program berukuran besar dipecah menjadi programprogram yang lebih kecil

c.               Kebanyakan fungsi/prosedur berbagi data global

d.              Data bergerak secara bebas dalam sistem dari satu fungsi ke fungsi yang lain yang terkait

e.              Fungsi-fungsi mentransformasi data dari satu bentuk ke bentuk yang lain

f.                Menggunakan pendekatan top-down

Struktur Umum Pemrograman Terstruktur



Hubungan Data dan Fungsi pada Pemrograman Terstruktur



PENDEKATAN BERORIENTASI OBJEK

Karakteristik Pada Pendekatan Berorientasi Objek:

   Pendekatan lebih kepada data (bukan fungsi/prosedur)

   Program besar dibagi menjadi beberapa objek

   Struktur data dirancang dan menjadi karakteristik dari objek-objek

   Fungsi-fungsi yang mengoperasikan data tergabung dalam suatu objek yang sama

   Data tersembunyi dan terlindung dari fungs/prosedur yang ada di luar

   Objek-objek dapat saling berkomunikasi dengan saling mengirim message satu sama lain

   Menggunakan pendekatan bottom-up

Pengorganisasian Data dan Metode (Fungsi) pada Pendekatan Berorientasi Objek


6. Pemrograman Terstruktur vs Pendekatan Berorientasi Objek

A. PEMROGRAMAN TERSTRUKTUR

   Permasalahan dilihat sebagai urutan sesuatu yang harus dikerjakan, seperti input – proses – output.

   Fokus utamanya pada fungsi atau prosedur

   Data global pada program yang sangat besar, sangat sulit untuk dilacak. Jika merevisi data global maka merevisi setiap fungsi yang menggunakan data global.

   Tidak menggambarkan kasus nyata dengan baik, karena fungsi-fungsi berorientasi pada aksi dan tidak berhubungan langsung dengan permasalahan.

   Kurang sempurna dalam menangkap kebutuhan reusable components, karena tidak ada standarisasi modul

B. PENDEKATAN BERORIENTASI OBJEK

   Penekanan pada “apa” yang dapat dilakukan oleh objek

   Pendekatan lebih kepada data

   Perubahan pada struktur data internal tidak mempengaruhi struktur data objek yang lain

   Penggunaan bersama untuk beberapa tingkat yang berbeda, seperti penggunaan bersama untuk disain dan kode

   Menggunakan pendekatan bottom-up

   Fungsi/prosedur berbagi data global

0 comments:

Posting Komentar