TEKNIK PERANCANGAN PERANGKAT LUNAK BERORIENTASI OBYEK

Slides:



Advertisements
Presentasi serupa
KEBUTUHAN & SPESIFIKASI SOFTWARE
Advertisements

ANALISIS DAN PEMODELAN BERORIENTASI OBJEK DENGAN UML
Pemrograman Sistem terdistribusi
21-Aug-14 OO Concept E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan Kuliah 3 : Administrative dan Introduction 8 Oktober 2010.
Bab 6 PERANCANGAN PERANGKAT LUNAK
Pemrograman Berorientasi Objek
By : Rizky Yuniar Hakun. Konsep Pemrograman Berorientasi Object.
Object Oriented Programming
OBJECT ORIENTED PROGRAMMING in JAVA
CLASS DIAGRAM.
PENGENALAN ANALISA SISTEM BERORIENTASI OBYEK
Desain Sistem By Hendro Joko Prasetyo, M.Kom.
Pemrograman Lanjut Ratnokustiawan.wordpress.com.
Pertemuan 6 Structural modelling
DIKTAT PBO Oleh: Adam Mukharil B. S.Kom. BAB I – KONSEP PBO.
di OBJECT ORIENTED PROGRAMMING [OOP] Oleh H. SUMIJAN, Ir, M.Sc
7 Rekayasa Sistem Konsep Utama OOP Dedy Alamsyah, S.Kom.
PERANCANGAN PERANGKAT LUNAK
Desain Sistem By Hendro Joko Prasetyo, M.Kom.
PERANCANGAN BERORIENTASI OBJEK
Pertemuan 2 Konsep Aplikasi Berbasis Objek, UML dan Rational Rose
Desain Berorientasi Obyek dan UML
BAB 1 KONSEP OOP.
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
ALGORITMA DAN PEMROGRAMAN 2C MATERI MINGGU KE-2 Pengenalan Teknik-teknik Bahasa Pemrograman Henny Medyawati.
Ir. Waniwatining Astuti, M.T.I Rekayasa Perangkat Lunak
ANALISIS DAN PEMODELAN BERORIENTASI OBJEK DENGAN UML
1 Pertemuan 3 Unified Modeling language (UML) Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Pengantar Perancangan Berorintasi Objek
3 Pengembangan Sistem Informasi TINJAUAN UMUM
Spesifikasi Perangkat Lunak
CLASS DIAGRAM.
Universitas Respati Yogyakarta
Analisis dan Perancangan Berorientasi Objek (OOAD)
KONSEP DASAR PENDEKATAN OBJEK
Desain Sistem.
Rekayasa Perangkat Lunak Konsep Orientasi Objek
Rekayasa Perangkat Lunak Model Proses PL
11. Konsep Berbasis Object (Object-Oriented Concept)
OBJEK dan KELAS Sutrisno PTIIK-UB.
Perancangan Sistem Informasi
PENGEMBANGAN PERANCANGAN SISTEM
PEMROGRAMAN VISUAL II Outline: UML (Unified Modeling Language)
QUIZ PSBO Total : 35 PG.
PERANCANGAN SISTEM BERORIENTASI OBJEK DENGAN UML
BAB 1 KONSEP OOP.
KEBUTUHAN & SPESIFIKASI SOFTWARE
REKAYASA PERANGKAT LUNAK
Konsep Pemrograman berorientasi Objek
Object Oriented Programming
KEBUTUHAN & SPESIFIKASI SOFTWARE
REKAYASA PERANGKAT LUNAK
PEMROGRAMAN BERORIENTASI OBJECT 4 SKS 2 TEORI DAN 2 PRAKTEK
PEMROGRAMAN BERORIENTASI OBYEK
Pemrograman Berorientasi Objek
ANALISA & DESAIN BERORIENTASI OBJEK
Object Oriented Programming
Pemrograman Berorientasi Objek
Testing Dan Implementasi Sistem
Analisis dan Desain Berorientasi Obyek
ISTILAH-ISTILAH PENTING PEMROGRAMAN BERBASIS OBYEK
PEMODELAN ANALISIS RPL – PERTEMUAN 5&6.
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER (STMIK) PALANGKARAYA
Desain Sistem.
Pemrograman Berorientasi Obyek
ANALISA BERORIENTASI OBJEK
KEBUTUHAN & SPESIFIKASI SOFTWARE
ANALISA BERORIENTASI OBJEK
Perkembangan Teknik Pemrograman
Konsep Aplikasi Berbasis Objek
Transcript presentasi:

TEKNIK PERANCANGAN PERANGKAT LUNAK BERORIENTASI OBYEK Frequently, presenters must deliver material of a technical nature to an audience unfamiliar with the topic or vocabulary. The material may be complex or heavy with detail. To present technical material effectively, use the following guidelines from Dale Carnegie Training®.   Consider the amount of time available and prepare to organize your material. Narrow your topic. Divide your presentation into clear segments. Follow a logical progression. Maintain your focus throughout. Close the presentation with a summary, repetition of the key steps, or a logical conclusion. Keep your audience in mind at all times. For example, be sure data is clear and information is relevant. Keep the level of detail and vocabulary appropriate for the audience. Use visuals to support key points or steps. Keep alert to the needs of your listeners, and you will have a more receptive audience. Delivery by : Burhan Amin burhan_amin@yahoo.com

DEFINISI Perancangan Berorientasi Obyek Menurut Meyer: Mendefinisikan sebuah hubungan antara antarmuka (interface), kelas-kelas (classes), dan obyek-obyek (objects) yang masing-masing saling bekerjasama dengan aturan tertentu yang unik untuk menyelesaikan suatu masalah. Menurut Meyer: Perancangan berorientasi obyek adalah metoda yang membawa kita ke arsitektur perangkat lunak berbasis obyek-obyek yang dimanipulasi (difungsikan) oleh setiap sistem atau subsistem.

Perancangan Sistem Berorientasi Obyek Merancang sistem berorientasi obyek adalah bagaimana memecah sistem kedalam obyek-obyek berdasarkan pada informasi yang diperoleh terutama pada tahap analisis. Membuat suatu generalisasi dari obyek-obyek untuk mendefinisikan kelas-kelas bagi setiap obyek dalam sistem. Menghasilkan sebuah diagram kelas (struktur dari sistem) menggunakan berbagai notasi standar seperti: OMT (Object Modelling Technique), UML (Unified Modelling Language).

Teknik Perancangan Berorientasi Obyek Memahami teknik Object Oriented Design Konsep dan Prinsip Dasar Berorientasi Obyek Analisis dan modelling Metodologi desain Class dan object Operasi dan Penggunaan Ulang Perangkat Lunak Komponen program dan interface Unified Modelling Language (UML) Dapat menjelaskan dan menerapkan metode Object Oriented

Object Oriented Design (OOD) Mengapa menggunakan OOD Karena lebih dekat pada tingkat abstraksi di dunia nyata. Pengembangan dan Perawatannya dapat dilakukan secara iteratif Encapsulation: menggabungkan data dan fungsi/program secara bersama-sama Reuse: tidak perlu ada penulisan kembali kode.

Dua Teknik Perancangan Perangkat Lunak Perancangan Berorientasi pada Fungsi Sistem di dekomposisi menjadi sejumlah fungsi (prosedur, logika) dengan sistem tersentralisasi dimana data dapat dibagi dan digunakan secara bersama. Perancangan Berorientasi pada Obyek Sistem dianggap sebagai kumpulan obyek (konsep, benda) dalam dunia nyata yang melaksanakan sejumlah pelayanan secara terdesentralisasi. Setiap obyek membungkus (encapsulate) sejumlah prosedur dan data yang berinteraksi dengan obyek lainnya melalui suatu pesan (message).

Pertanyaan Jelaskan perbedaan antara perangkat lunak fungsional dengan perangkat lunak berorientasi obyek ?

Perangkat Lunak Fungsional terfokus pada: Fungsi dalam struktur terhirarki Proses dan Prosedur Perangkat Lunak berorientasi-obyek terfokus pada: Obyek-obyek dalam dunia nyata yang bekerja sama (tidak terhirarki). Model dari obyek-obyek di dunia nyata tersebut (skenario). Peranan obyek-obyek ini dalam penggambaran sistem perangkat lunak (task).

  Lebih Rinci Lagi Objects masuk disini

Penggambaran Fungsional Menggambarkan dunia sebagai sejumlah fungsi-fungsi yang saling berhubungan Angka-angka terurut dari kecil ke besar Angka-angka Pengurutan Umumnya dekomposisi Top-Down (dari abstraksi sampai tingkat rendah). Memanipulasi (mengfungsikan) data utama berarti memahami permasalahan.

Penggambaran Berorientasi Obyek Menggambarkan dunia sebagai sejumlah obyek-obyek 112 5 48 5 17 25 48 56 112 56 17 25 Sistem perangkat lunak digambarkan sebagai sekumpulan obyek-obyek yang saling berinteraksi. Obyek-obyek dapat digunakan kembali dengan suatu standar karakteristik.

Object-oriented System Development Cycle Object-oriented Analysis (OOA) Object-oriented Design (OOD) Object-oriented Implementation 1. Object-Oriented Analysis Definisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan kasus-kasus. Kemudian, buat suatu model obyek dengan kemampuan memuaskan kebutuhan-kebutuhan. Output: Model kebutuhan-kebutuhan

Object-Oriented Design Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalan fase perancangan. Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan. Ditambahkan antarmuka obyek-obyek. Object-Oriented Implementation Dikembangkan penggunaan sistem. Menggunakan bahasa pemrograman yang berorientasi obyek. Jika dibutuhkan, memberikan kaitan pada suatu sistem manajemen basisdata yang terpisah.

Model Proses Berorientasi Obyek

Orientasi obyek cocok untuk proses evolusioner dengan pendekatan penggunaan kembali komponen-komponen sistem. Rekayasa perangkat lunak OO menekankan penggunaan ulang kelas-kelas dalam pustaka. Bila suatu kelas tidak ada pada pustaka, maka perekayasa perangkat lunak meangaplikasikan analisis berorientasi obyek (OOA), perancangan berorientasi obyek (OOD), pemrograman berorientasi obyek (OOP) dan pengujian berorientasi obyek (OOT).

CIRI-CIRI DARI PERANCANGAN BERORIENTASI OBYEK Karena komunikasi antara obyek dilakukan melalui pegerakan pesan maka data yang digunakan bersama oleh beberapa obyek akan kecil sehingga mengurangi ketergantungan (minimum coupling). Obyek adalah terpadu (cohesive) dan tak tembus dari luar, sehingga seluruh informasi dalam obyek terlindungi terhadap akses dari luar obyek yang tidak dikehendaki. Obyek dapat dimodifikasi tanpa mempengaruhi operasi dari obyek-obyek yang lain, sehingga dapat meningkatkan kemampuan pemeliharaan sistem.

Pertanyaan Mengapa walaupun sudah ada Perancangan Berorientasi Object (OOD), Perancangan Fungsional masih tetap digunakan ?

Perancangan Fungsional tetap digunakan karena: Beberapa domain permasalahan lebih baik digambarkan dalam bentuk fungsional dari pada obyek. Sudah banyak metoda dan standard yang dikembangkan untuk mendukung perancangan berorientasi kepada fungsi ini. Sudah banyak pengalaman yang dilakukan dengan perancangan berorientasi fungsi. Perancangan berorientasi fungsi menjadi komplemen (pelengkap) dari perancangan berorientasi obyek.

Pertanyaan Bagaimana keunggulan dari perancangan berorietasi-obyek dalam memecahkan masalah perancangan perangkat lunak ?

Kelebihan OOD Penggunaan kembali Obyek-obyek Obyek-obyek yang dirancang baik dapat digunakan dan ditambahkan ke proyek-proyek lain. Obyek dapat ditambah dengan inheritance. Keluwesan dan Reliabilitas Penggunaan obyek-obyek yang sudah teruji. Encapsulation mencegah kesalahan penggunaan data oleh modul yang lain dan membantu melokalisasi kesalahan (bugs) yang terjadi. Pengembangan dan Standarisasi Obyek-obyek dapat digunakan kembali dengan karakteristik standar.

Produktivitas Meningkatkan kecepatan pengembangan perangkat lunak. Pengalaman: OOD meningkatkan kecepatan pengembangan sekitar faktor 10 kali.

KONSEP & MEKANISME OBJECT-ORIENTED DESIGN

Pertanyaan Apa yang dimaksud dengan obyek dan bagaimana anatomi (bagian dalam) dari suatu obyek ? Bagaimana obyek dapat berinteraksi dengan dunia luar ?

 OBJECT Biasanya berupa benda atau sesuatu kejadian Benda konkrit : pesawat Konseptual : terbang 

Anatomi suatu Obyek Obyek Data Metoda Interface Pesan-pesan (msg) Data Metoda Obyek adalah sekumpulan data (atribut) bersama dengan gabungan metoda (fungsi) yang digunakan untuk mengoperasikan data tersebut. Obyek = Data + Fungsi Dunia luar berkomunikasi ke obyek dengan mengirimkan pesan (message).

Windows Sistem Operasi yang digerakkan pesan

Sifat Obyek Suatu obyek dikenal dengan apa itu dan apa yang dapat dilakukannya (pelayanan). Obyek-obyek memiliki ciri-ciri atau sifat-sifat tertentu yang disebut atribut (abstraksi data). Obyek menunjukkan perilaku (behaviour) atau dapat melakukan suatu pelayanan (methods).

OBJECT ATTRIBUTES ATRIBUT: Adalah data yang menunjukan Ciri-ciri atau sifat-sifat dari obyek Penggambaran obyek Warna Tipe mesin Panjang

METHODS / OPERATIONS – BEHAVIOUR Behaviour mengacu kepada apa-apa yang dapat dilakukan oleh suatu obyek dan berhubungan dengan fungsi diterapkan pada suatu atribut. Behaviour obyek-obyek biasanya methode atau operasi pelayanan. Berenang Penyelam Ikan Mobil bisa bergerak, meyalakan lampu, membunyikan klakson

OBJECT DIAGRAM Circle CenterPosition RadiusLength FillColor

Translasi Model Analisis ke Model Desain Kelas Atribut Metode Hubungan Perilaku Model Desain

Pertanyaan Apa yang dimaksud dengan kelas dan sebutkan komponen-komponen dari suatu kelas ?

KELAS (CLASS) Seperti di dunia nyata, obyek-obyek dapat dikelompokkan atau diklasifikasikan kedalam suatu kelas. Kelas adalah koleksi dari obyek-obyek yang memiliki anggota-anggota yang sama (ciri-ciri, struktur dan perilakunya). Obyek-obyek dibuat berdasarkan sebuah kelas (type declaration), atau obyek adalah wujud (instance) dari sebuah kelas. Suatu Kelas adalah kategori umum dan suatu obyek adalah kejadian spesifik dari suatu kelas.

Kelas Record Mahasiswa Desi Abdurahman Widodo Obyek-obyek dikelompokkan ke dalam suatu jenis yang disebut kelas “Record Mahasiswa”. Obyek Desi, Abdurahman dan Widodo dibuat (instance) berdasarkan tipe kelas Record Mahasiswa Kelas adalah template yang menghasilkan obyek-obyek dengan perilaku yang sejenis.

Hubungan antara Obyek dan Kelas

Kelas “Person” menggabarkan atribut dari suatu obyek orang. Setiap orang mempunyai atribut: nama, tanggal lahir, dan alamat dalam himpunan data instance-nya dengan empat metode ('getName', 'getAge', 'setAddress', 'getAddress‘). Metode ini memungkinkan akses dari luar ke atribut-atribut tersebut. Dua obyek berikut (Mike, Neil) diciptakan dari Kelas Person.

Komponen-komponen suatu Class Koleksi dari anggota-anggota data atau atribut-atribut. Kolekasi dari deklarasi fungsi-fungsi anggota, pelayanan-pelayanan, metoda-metoda. Tingkat akses: private, protected, atau public. Nama tag sekutu : tipe data yang didefinisikan pemakai.

General Structure of a Class private public className {data, data, ….} {method,method, ….}

Tingkat Akses Anggota Kelas

Variabel-variabel anggota biasanya private Anggota Kelas class A { public: A(); private: char m_char; int m_int; float m_float; UINT m_uint; }; Variabel-variabel anggota biasanya private Variabel-variabel anggota dideklarasikan dengan cara stardar: m_notasi.

Pertanyaan Jelaskan bedanya antara instance dan inheritance (penurunan/pewarisan) ?

Modeling Class Instance by Is Inherited by

INSTANCE Object didefinisikan oleh Class Setiap Object adalah instance dari suatu Class

Buat suatu intance dari obyek anda OBJECT INSTANCE Rumah jadi Buat suatu intance dari obyek anda Object instance

Instances Class paragraph Methods justify Class variables font = arial Instance variables text = 3 Instances Four score and seven years ago our forefathers brought forth on this continent, a new nation ….. We the people of the United States, in order to form a more perfect union, ensure ….. When in the course of human events it become necessary for one people …..

INHERITANCE (PEWARISAN) Hirarki klasifikasi memungkinkan kelas-kelas obyek mewarisi atribut-atribut dari kelas-kelas yang lebih umum. Pewarisan adalah suatu mekanisme menciptakan kelas-kelas baru (sub-kelas) dari kelas-kelas yang sudah ada. Kelas turunannya adalah sebuah subkelas atau subtype dari kelas sebelumnya. Sub-kelas tersebut dapat diperluas perilakunya dengan menambah metode-metode baru atau struktur-sturktur data baru. Misalnya obyek Ford Escorts dapat diwariskan berdasarkan kelas mobil.

Pewarisan Kelas / Obyek Umum Khusus

Examples of generalization, inheritance, and constraints Employee superclass with three subclasses

ENCAPSULATION (Pengkapsulan) Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar. Pengapsulan seringkali dianggap sebagai “penyembunyian informasi”. Setiap kelas hanya menampakkan interface yang diperlukan untuk berkomunikasi dengan dunia luar (methode) dan menyembunyikan (encapsulating) implementasi aktual didalam kelas. Kita hanya membutuhkan pemahamam tentang interface (methode), tidak perlu paham tentang internalnya (implementation).

Pengapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke representasi internal obyek (data dan fungsi). Ada tiga metode enkaspulasi: - Private - Protected - Public

Component Interfaces

POLYMORPHISM Polymorphism memungkinkan memiliki koleksi elemen-elemen dengan bentuk berbeda dari item-item yang berhubungan. Disini obyek-obyek atau kelas-kelas yang berbeda dapat melakukan implementasi suatu metode yang sama. Contoh: suatu kelas segi-empat dan kelas segi-tiga dapat melakukan suatu metode ‘hitungLuas’ tetapi dengan menggunakan rumus perhitungan luas yang berbeda.

Soal Ada adalah bahasa pemrograman yang mendukung obyek-obyek dan encapsulation, tetapi tidak mendukung inheritance, dynamic behavior, atau aturan-aturan. Ada dapat dikelompokkan pada bahasa pemrograman jenis apa ? (a) Object –oriented language; (b) Class-based language; (c) Object-based language; (d) Object procedure language.

(c) Private (d) Indeterminate. 2. Ketika seseorang menambahkan suatu kelas yang diambil dari suatu kelas dasar dengan meningkatkan kemampuan kelas dasar tersebut, maka disebut: (a) Data encapsulation (b) Inheritance (c) Polymorphism (d) Instant 3. Suatu metoda yang hanya dapat digunakan oleh metoda lain dalam satu kelas, mempunyai jenis akses: (a) Public (b) Protected (c) Private (d) Indeterminate.

4. Kelas A adalah kelas dasar. Kelas B diturunkan dari kelas A 4. Kelas A adalah kelas dasar. Kelas B diturunkan dari kelas A. Kelas C diturunkan dari kelas B. Maka jenis dari turunan disini adalah: (a) Multiple inheritance. (b) Composition (c) Abstract inheritance (d) Serial Inheritance

PERKEMBANGAN BAHASA PEMROGRAMAN Generasi Awal (Pemrograman Prosedural) Bahasa prosedural seperti Assembler, FORTRAN dan COBOL. Pemrograman merupakan suatu karya seni yang kreatif. Kode rumit seperti spaghetti karena penuh dengan perintah-perintah GOTO yang sulit untuk dipertahankan.

Prosedural DIM N(100), M(500) ---------------------- IF ------ c THEN GOTO 5000 c ELSE GOTO 10 100 ---------------------- GOTO 100

Generasi Kedua (Pemrograman Terstruktur) Perangkat lunak meniru struktur dari suatu model bisnis. GOTO diganti dengan suatu putaran (loop) seperti while, do-while, dan if-then-else. Deretan yang sangat cocok untuk aplikasi-aplikasi ilmiah (matematika adalah suatu prosedur alamiah).

Terstruktur while -------- do --------------------------------------------------------------- if --------- then -------------- else endIf --------------------- endWhile

(Pemrograman Berorientasi Obyek) Generasi Dewasa ini (Pemrograman Berorientasi Obyek) Data dan kode dikemas kedalam suatu obyek. Penggunaan kembali dan pemekaran melalui kerjasama antara obyek-obyek. Memungkinkan kombinasi kode struktural dan prosedural dalam obyek. Memungkinkan pemakai mendefiniskan tipe data sebagai sejumlah obyek yang memberikan model sistem yang lebih alamiah dari pada tipe-tipe standard.

Bahasa Pemrograman Berorientasi Obyek Penggunaan bahasa pemrograman berorientasi obyek memungkinkan implementasi langsung perancangan berorientasi obyek, tetapi membutuhkan ruang dan sumber-sumber yang lebih besar. Efektivitas perancangan berorientasi obyek tidak tergantung pada penggunaan bahasa pemrograman tertentu.

Soal Pemrograman berorientasi obyek mengarah kepada hasil berupa: Reuse of code (Kode yang digunakan kembali ) Sphagetti code Building code Structured code

”Subhanaaka laa ’ilma lanaa illaa maa ’allamtanaa innaka antal ’aliimul hakiim” [Q.S Al Baqarah : Ayat 32] Artinya : ”Mahasuci Engkau, tidak ada pengetahuan bagi kami selain apa yang telah Engkau ajarkan kepada kami. Sesungguhnya Engkaulah yang Maha Mengetahui lagi Maha Bijaksana”. Alhamdulillah 69

Thanks for your sharing, See you…… 70