01Bahan-Bab 1 OOP

download 01Bahan-Bab 1 OOP

of 30

Transcript of 01Bahan-Bab 1 OOP

Bahan Kuliah Teori & Praktikum

PBO (Pemrograman Berorientasi Objek) / OOP (Object Oriented Programming)

Dosen Ir. Witardi Gondowarsito MKom.

CopyRight@2007

1

Referensi Dari BukuVisual Basic.Net Versi 2002 dan 2003, Elex Media Komputindo, Drs. Ario Suryo Kusumo Pemrogram dan Berorientasi Objek, Graha Ilmu, Ariesto Hadi Sutopo & Fajar Masya Analisis dan Disain Berorientasi Objek, JJ Learning, Ariesto Hadi Sutopo Menguasai Java 2 & Object Oriented Programming, Penerbit Andi, Benny Hermawan Pemrograman Berorientasi Objek dengan Java, Elex Media Komputindo, Indrajani, S.Kom, MM , Marin, S.Kom

2

Referensi Dari Internet Diktat Kuliah Pemrograman Berorientasi Objek, ITB, Inggriani Liem E-Book Pemrograman Berorientasi Objek Pada Vb.Net, Hendra, ST. Pemrograman Berorientasi Objek, Wikipedia Indonesia Didik Darmadi - Only A Matter Time Pemrograman Berorientasi Objek.

3

Bahasa PemrogramanVB.Net Java

4

Materi 1 Semester1. Konsep Berorientasi Objek 2. Analisis & Disain Berorientasi Objek / OOA & OOD 3. Pemrograman Berorientasi Objek 4. Property 5. Consructor & Deconstructor 6. Interface 7. Inheritance 8. UTS 9. Method Overloding 10.Method Overriding 11.Shadowing 12.Multilevel Inheritance 13.Encapsulation 14.Polymorphism 15.Contoh Kasus dan Pembuatan Model 16.UAS

5

Minggu Ke-1 KONSEP BERORIENTASI OBJEKMateri Sejarah Berorientasi Objek Pengembangan Berorientasi Objek Abstraksi Elemen Dalam Sebuah Objek Konsep Pemorgaman Berorientasi Objek Perbedaan Dengan Metodologi Non Objek Pemodelan Berorientasi Objek

Tujuan Mahasiswa memahami konsep pemrograman berorientasi objek, metodologi objek dan pemodelan berorientasi objek.

Referensi Analisis dan Desain Berorientasi Objek, Ariesto Hadi Sutopo, JJ Learning Yogyakarta. Menguasai Java 2 object Oriented Programming, Benny Hermawan, Penerbit andi. Pemrograman berorientasi Objek dengan Java, Indrajani, S.Kom, MM, Martin, S.Kom Buku Latihan Visual Basic.Net Versi 2002 dan 2003, Drs. Ario Suryo Kusumo.

6

1.1. SEJARAH BERORIENTASI OBJEK Pemrograman berorientasi objek mulai dibicarakan sekitar akhir tahun 60 an. Pertama kali diperkenalkan oleh Ole Johan Dhal dan Kristen Nygaard dari Universitas Oslo, Norwegia pada tahun 1966 dalam jurnal dengan judul SIMULA An Algol Based Simulation Language . Jadi OOP bukan hal baru. Pada tahun 1970 bahasa SMALTALK dikembangkan oleh XEROX PARC. Pada saat itu sebagian dari dunia menggunaan COBOL dan FORTRAN dengan metode dekomposisi dan fungsional. Perubahan terjadi selama beberapa dekade sampai dikenalnya faktor utama berorientasi objek, yaitu : 1. Konsep dasar berorientasi objek, konsep berorientasi objek mulai populer dimana memulai analisis dan disain menjadi lebih diperhatikan daripada coding. 2. Teknologi dasar pengemabnagan sistem, coding sangat dipengaruhi oleh bahasa pemrograman yan tersedia. Untuk pengembangan program terstruktur lebih mudah dikembangkan dengan pascal, atau C, dan pembuatan coding berorientasi objek akan lebih mudah dikembangkan dengan bahasa pemrograman C++, JAVA, VB.Net, PHP.7

3. Kondisi sistem, sistem yang dibagun saat ini berbeda dengan sistem beberapa tahun yang lalu. Sistem yang sekarang lebih besar, kompleks dan dapat juga merupakan sistem yang interaktif. Pendekatan berorientasi objek merupakan cara yang lebih tepat untuk sistem yang berorientasi objek. 4. Pengenalan model, banyak organisasi mendapatkan bahwa sistem yang dibagngun pada saat ini cendrung berorientasi data dari pada sistem yang dibagun sekitar tahun 1970 dan 1980. pada waktu itu penggunaan model telah mendapatkan prioritas lebih besar dibandingkan dengan kompleksitas fungsional. 1.2. PENGEMBAGAN BERORIENTASI OBJEK Pengembangan berorientasi objek merupakan cara berpikir baru tantang perangkat lunak berdasarkan abstraksi alam dunia nyata. Hal yang lebih penting dalam pengembangan berorientasi objek adalah konsep mengidentifikasi objek dan mengorganisasi domain aplikasi dibandingkan dengan fokus penggunaan bahasa pemrograman berorientasi objek atau tidak.8

1.2.1. Konsep Pemodelan Kebanyakan usaha akhir dalam lingkungan berorientasi objek dipusatkan pada bahasa pemrograman. Pengembangan berorientasi objek adalah proses konseptual terpisah dari bahasa pemrograman samapi tahap akhir. Pengembangan berorientasi objek secara mendasar merupakan cara berpikir baru dan bukan suatu teknik pemrograman. Hal ini dapat berfungsi sebagai media spesifikasi, analisis, dokumentasi dan interface seperti halnya pemrograman.

1.2.2. Metodologi Berorientasi Objek Metodologi berorientasi objek diperkenalkan pada tahun 1980, menggunakan teknik-teknik yang dibutuhkan dalam pengembangan sistem, yaitu: dynamic dan static objek oriented model, state transtion diagram dan case scenario. Fukus utama metodologi pada objek, dengan melihat suatu sistem terdiri dari objek yang saling berhubungan. Objek dapat digambarkan sebagai benda, orang, tempat dan sebagainya yang mempunyai atribut dan metoda. Metodologi terdiri dari pembuatan model dari domain aplikasi, kemudian menambahkan rincian implementasi. Tahapan-tahapan metodologi berdasarkan system development life cycle dengan memperhatikan khusus berorientasi objek. 9

Analisis Analisis Berorientasi Objek / Object Oriented Analysis (OOA) dimulai dengan menyatakan suatu masalah, analisis membuat model situasi dari dunia nyata. Model analisis adalah abstraksi yang ringkas dan tepat apa yang harus dilakukan oleh sistem, dan bagaimana melakukannya. Empat kesulitan dalam pengembangan sistem adalah: mamahami problem domain, komunikasi kepada pihak yang berkaitan, perubahan, dan reuse (penggunaan kembali). Desain Desain Berorientasi Objek / Object Oriented Design (OOD) merupakan tahapan lanjutan setelah OOA dimana tujuan sistem diorganisasikan kedalam sub sistem berdasar struktur analisis dan arsitektur yang dibutuhkan. Fokus dari disain objek adalah perencanaan struktur data dan algoritma yang diperlukan untuk implementasi setiap kelas. Objek domain aplikasi dan objek domain komputer dijelaskan dengan menggunakan konsep dan notasi berorientasi objek yang sama.10

Imlementasi Class, objek dan realisasinya dikembagkan dalam tahap pembuata desain objek yang akhirnya diterjemahkan kedalam bahasa pemrograman, basis data dan implementasi perangkat keras. 1.3. ABSTRAKSI Abstraksi suatu cara melihat suatu objek dalam bentuk yang lebih sederhana, contoh: Bila kita melihat sebuh mobil bukan sebagai sebuah kumpulan atau ribuan komponen elektronik , mekanik dengan empat buah ban, besi, jok stir dan sebagaiya. Walau kenyataanya demikian namum kita melihat mobil sebagai sengle entity yang merupakan suatu objek yang mempunyai sifat dan karakteristik tersendiri. Kita tidak perlu tahu bagaimana kompleknya mobil itu, tidak perlu tahu bagaimana cara bekerja mesin, dll. Kita tidak meihat bagian-bagian dalam sebuah mobil sebagai suatu bagian yang berdiri sendiri-sendiri, tetapi sebagai satu kesatuan.11

Dengan abstraksi kita melihat suatu sistem yang komplek sebagai kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan suatu sistem yang terdiri atas subsistem-subsistem. 1.4. ELEMEN DALAM SEBUAH OBJEK (State dan Behaviour) Setiap objek selalu memiliki keadaan (State) dan behaviour yang dapat mengubah state tersebut. Contoh: Manusia memiliki state umur, tinggi, berat, dll. Demikian pula behaviour yang dimiliki manusia seperti makan, tidur, bekerja, dll. Behaviour ini dapat mengubah atau tidak sama sekali state yang dimiliki oleh suatu objek. Dalam bahasa Java state akan lebih dikenal dengan nama properties atau field, sedangkan behavioir akan dikenal dengan nama method.

12

1.5. KONSEP PEMROGRAMAN BERORIENTASI OBJEK (Enkapsulasi, Pewarisan, Polymorphism) Enkapsulasi Enkapuslasi adalah satu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interfensi atau penyalahgunaan dari luar sistem dan sekaligus menyederhanakan sistem itu sendiri, akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface. Contoh Seperti mobil sistem transmisi didalam mobil, sistem transmisi ini memyembunyikan dari anda bagaimana cara ia bekerja. Anda sebagai pengguna hanya cukup memindahkan tongkat transimis untuk mendapat percepatan yang anda inginkan. Tongkat transmisi inilah yang satu-satunya yang menjadi interface dalam mengatur transmisi dalam mobil tersebut. Kita tidak bisa menggunakan pedal rem untuk mengakses sistem transmisi tersebut, konsep yang sama dapat diterapkan dalam pemrograman.13

Pewarisan Kita sebenarnya terbiasa melihat objek tesusun secara hierarki berdasarkan calss-nya masing-masing. Dari sini muncul konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkan ciri atau sifat dari class tersebut. Contoh hierarki class Binatang Semakin umum Mamalia Reptil Semakin spesifik Anjing Kucing Monyet

Dari hierarki diatas dapat dilihat bahwa semakin kebawah, class akan bersifat semakin spesifik dan semakin ke atas class akan bersifat semakin umum. 14

Gambar Class dan ObjekClass manusia ( State ) Berat Tinggi Usia (Behaviour) Makan() Minum() Menua() Bekerja()

Class wanita ( State )

Class pria

( State ) Memiliki organ kelamin wanita Memiliki organ kelamin pria (Behaviour) (Behaviour) Melahirkan() Menyusui()

Contoh instance / objek

Maria Debra Ruth David Paulus Samuel

15

Gambar diatas menunjukkan sifat dan hubungan atar class dan objek secara lebih konkrit.

Class manusia merupakan class tertinggi, dimana semua state dan behaviour dari class tersebut juga dimiliki oleh class wanita dan class peria yang merupakan turunannya.

Class wanita dan peria sendiri memiliki sekumpulan state dan behaviour yang spesifik hanya dimiliki oleh class mereka masing-masing.

Dari gambar juga terlihat perbedaan atara class dan objek, dimana class digunakan untuk menggambarkan suatu model atau spesifikasi dari sutau entitas, sedangkan objek merupakan kenyataan, realitas atau perwujudan dari class itu sendiri.

16

Polymorphism Polymorphism berasal dari bahasa yunani yang berarti banyak bentuk. Dalam OOP konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintahkan suatu objek agar melaksanakan suatu aksi atau tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda. Contoh yang konkrit kembali ke masalah mobil, mobil yang ada dipasaran terdiri atas beberapa tipe dan merek, namun semunya memiliki interface kemudi yang sama, seperti stir, pedal gas dan rem. Harus diperhatikan bahwa interface yang sama tidak berarti cara kerjanya juga sama. Contoh bila anda menekan pedal gas maka mobil akan melaju cepat tetapi bagaimana proses ini terjadi dapat berbedabeda untuk setiap jenis mobil. Dengan menggunakan interface yang sama anda akan mendapatkan hasil yang sama, tetapi bagaimana proses yang terjadi dari aksi menjadi hasil mungkin saja berbeda.

17

1.6. PERBEDAAN DENGAN METODOLOGI NON OBJEK Pengembangan berorientasi objek berlawanan dengan metodologi berorientasi fungsional. Dalam metodologi fungsional perhatian utama pada pembuatan spesifikasi dan dekomposisi sistem secara fungsional. Pendekatan berorientasi objek menitik beratkan pada saat melakukan identifikasi objek dari domain aplikasi, kemudian membuat prosedur yang sesuai dengannya. Perbedaan spesifik dengan metodologi objek dan non objek adalah: Penggunaan Alat Non objek menggunakan beberapa alat bantu untuk menggambakan model seperti flow chart diagram, entiti relationship diagram, dll. Pada metodologi berorientasi objek meggunakan satu jenis model dari tahap analisis sampai implementasi yaitu objek diagram. Data dan Proses Pada non objek data dan proses dianggap sebagai dua komponen yang berlainan, sedangkan pada metodologi objek data dan proses merupakan satu kesatuan yaitu bagian dari objek.18

-

Bahasa Pemrogaman Metodologi non objek digunakan untuk melengkapi pemrograman terstruktur pada bahasa generasi ketiga, sedangkan metodologi berorientasi objek dipergunakan untuk pemrograman berorientasi objek dan bahasa generasi keempat.

Pemrograman terstruktur memandang sebuah program sebagai suatu prosedur besar yang selanjutnya dapat dibagi-bagi menjadi prosedurprosedur yang lebih kecil dan saling berinteraksi satu sama lain. Contoh bahasa pemrograman terstruktur (COBOL, FORTRAN, BASIC, PASCAL, C) Pemrograman berorientasi objek, konsep yang membagi program mejadi objek-objek yang saling berinterakasi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun yang tidak nyata (konsep). Bahasa yang menduklung pemrograman berorientasi objek (JAVA, VB.NET, PHP, Visual C, Visual C++, C#, DELPHI). Keuntungan berorientasi objek (Alami / Natural, Dapat diandalkan, Dapat digunakan kembali, Mudah untuk di maintenance, dapat diperluas, dan efisien waktu)

19

1.7. PEMODELAN BERORIENTASI OBJEK A. Pemodelan Sebagai Teknik Desain Teknik pemodelan objek menggunakan tiga macam model untuk menggambarkan sisem yaitu: model objek, model dinamik, dan model fungsional. Model objek menggambarkan objek dalam sistem dan relasinya, model dinamik menggambarkan interaksi antar objek dalam sistem, model fungsional menggambarkan transformasi data dalam sistem. 1. Penggunaan Pemodelan Pemodelan memerlukan abstraksi, dengan tujuan membatasi aspek yang penting untuk beberapa kebutuhan dan mengabaikan aspek tidak penting. Desain membuat banyak macam model untuk berbagai kebutuhan sebelum membangun sesuatu. Contoh: Model pesawat terbang dibuat sebelum membuat pesawat terbang, model mobil dibuat sebelum membuat mobil, dan model bangunan dibuat sebelum membuat bangunannya, dll.

20

2. Teknik Pemodelan Model mempunyai dua dimensi untuk melihat suatu sistem yang ada dan tahapan pengembangan sistem yaitu desain dan implementasi setiap model menggambarkan suatu aspek dari sistem, tetapi mengandung hubungan dengan model lain. B. Model Berorientasi Objek Sebuah model objek menangkap struktur status dari sistem dengan menggambarkan objek dalam sistem, hubungan antara objek, serta atribut dan operasi yang merupakan karakteristik setiap class dan objek. Model berorientasi objek lebih mendekati keadaan nyata dan dilengkapi dengan penyajian grafik dari sistem yang bermanfaat untuk komunikasi dengan pengguna dan pembuat dokumentasi struktur dari sistem. 1. Objek dan Class Objek adalah kesatuan entitas (benda), baik yang berwujud nyata ataupun hanya suatu sisem atau konsep yang memiliki sifat karakteristik dan fungsi, contoh:

Contoh objek

Objek mobil

Objek kue

21

Class adalah pemodelan dari objek yang berisi informasi (aturan) tentang sifat karakteristik (data) dan tingkah laku (method yang dimiliki oleh objek tersebut). Hubungan antara class dan objek dapat diilustrasikan sebagai resep kue dengan kuenya, dimana resep kue adalah class dan kue adalah objeknya. Resep Kue

2. Diagram Objek Diagram objek melengkapi notasi grafik untuk pemodelan objek, class dan relasinya dengan yang lain. 22

A. Class dan Objek Sebuah objek adalah sebuah entitas yang mencakup data dan metoda, metoda yang biasa disebut sevice dapat berupa fungsi atau prosedur. Class merupakan satu atau lebih objek dengan persamaan atribut dan metoda. Class dan objek adalah class dengan satu atau lebih objek didalamnya. Gambar berikut menggambarkan gambar notasi untuk class dan class & objek. Nama Class Atribut Atribut Metoda Class Nama Class & Objek

Metoda Class dengan objek

23

B. Struktur Objek dan Hirarki Class Setelah menentukan class maka langkah berikutnya adalah menyusunnya sehingga merupakan suatu hierarki yang berguna dalam pewarisan. Struktur class dibagi 2 macam yaitu whole-part structure dan gen-spec structure. Whole-part structure memperlihatkan hirarki dari suatu class sebagai komponen dari class lain yang juga disebut sub objek. Contoh: Class mobil adalah whole dan komponennya mesin, rangka dll merupakan Part1, Part2 Part n. Gen-spec structure memperlihatkan class sebagai spesialisasi dari class diatasnya. Class yang mempunyai sipfat umum disebut generalization, super class atau top class, sedangkan class yang mempunyai sifat khusus disebut specialization. Contoh: Class mobil adalah generalization sedangkan sedan, truk, minibus adalah specialization.

24

Whole

Part 1

Part n

...Notasi untuk whole-part structure25

Generalization

Specialization 1 Specialization 1

...Notasi untuk gen-spec structure26

C. Atribut Atribut menggambarkan data yang dapat memberikan informasi dengan class atau objek dimana atribut tersebut berada.

Nama Class & objek Atribut 1 Atribut n

Mahasiswa NIM Nama TglLahir

Notasi

Contoh

Notasi untuk atribut27

D. Metoda Metoda (method) disebut juga service atau operator adalah prosedur atau fungsi seperti yang terdapat pada bahasa pascal, tetapi cara kerjanya agak berlainan. Method adalah sub program yang tergabung dalam objek bersama-sama dengan atribut. Method digunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut.Nama Class & objek Mahasiswa

Method 1 Method n

UTS UAS Contoh

Notasi

Notasi untuk metode28

E. Message Message (pesan) merupakan cara untuk berhubungan antara satu objek dengan objek lain.

Nama Class & objek

Nama Class & objek

messageAtribut atribut

Methoda

Methoda

Notasi untuk message29

Kata Bijak Tak ada gading yang tak retak, materi ini hanya sebagai pelita, dan kami sebagai penunjuk arah, rekan-rekan mahasiswa harus berjuang keras untuk meraih masa depan. Belajar tanpa mengenal waktu dan usia, ilmu pengetahuan berkembang dengan pesat, kami dan rekan mahasiswa sebagai rekan seperjalanan dalam belajar dan menambah wawasan dibidang teknologi informasi.

30