28
Pemrograman Berorientasi Objek Oleh: Syaiful Anam, S.Si, MT Mathematics Department – University of Brawijaya [UB]

1.introductionto objectorientedprogramming

Embed Size (px)

Citation preview

Page 1: 1.introductionto objectorientedprogramming

Pemrograman Berorientasi

Objek Oleh:Syaiful Anam, S.Si, MT

Mathematics Department – University of Brawijaya [UB]

Page 2: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

ALASAN DIGUNAKANNYA PBO

PBO diciptakan karena masih dirasakan adanya keterbatasan pada bahasa pemrograman tradisional yang dikenal dengan istilah procedural language seperti C, Pascal dan yang sejenisnya

Konsep procedural programming language yaitu bahwa semua masalah dibagi ke dalam fungsi atau prosedur. Selain itu dalam procedural programming, fungsi dan data terpisah dan tidak menjadi satu kesatuan.

Page 3: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Contoh

Contoh kelemahan dari procedural programming adalah bila sebuah perusahaan membuat program General Ledger (Buku kas besar) menggunakan variabel yang bisa diakses oleh fungsi-fungsi lainnya, maka harus dideklarasikan variabel tersebut sebagai variabel global yang letaknya di luar semua fungsi sehingga bisa diakses oleh semua fungsi. Jika suatu saat perusahaan tadi memperkerjakan programmer baru yang belum mengetahui seluk-beluk program general ledger tadi, maka sangat dimungkinkan terjadinya kerusakan data.

Anda juga akan menemukan kesulitan bila Anda ingin membuat tipe data baru dengan bahasa pemrograman tradisional.

Page 4: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Pendahuluan Oriented Object Programming ( Pemrograman Berorientasi Objek)

Tujuan PBO– Meningkatkan produktivitas pemrogram dengan

cara meningkatkan efisiensi biaya perawatan perangkat lunak.

Page 5: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Pemrograman Berorientasi Objek

Dicetuskan pada tahun 1990-an yaitu memecahkan kebinggungan masalah pemrograman terstruktur dan ERD (Entity Relationship Diagram)

Pemrograman berorientasi objek memungkinkan pengelolaan Data dan Fungsi dalam satu kesatuan yang disebut objek.

Ide PBO diawali oleh ADT (Abstract Data Type) karena banyak kelemahan di sempurnakan menjadi konsep Objek.

Page 6: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Karakteristik ciri-ciri PBO Pendekatan lebih pada data bukan fungsi/prosedur Program besar dipecah-pecah menjadi objek-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 fungsi /

prosedur yang ada diluar. Objek-objek dapat saling berkomunikasi dengan

saling mengirim pesan satu sama lain.

Page 7: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Konsep PBO adalah bahwa semua pemecahan masalah dibagi ke dalam kelas (class). Dalam PBO data dan fungsi-fungsi yang akan mengoperasikan data digabungkan menjadi satu kesatuan yang bisa disebut sebagai kelas.

Page 8: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Bahasa pemrograman untuk OOP

Bahasa pemrograman yang lazim digunakan dalam PBO adalah C++ ( Keluaran Borland disebut Borland C++, sedangkan dari Microsoft disebut Ms C++. Namun yang terakhir kurang poluler ). Demikian pula, jka ada bahasa pemrograman yang menggunakan C++ sebagai landasan utama bagi pengembangannya, maka bahasa tersebut bisa dipakai untuk PBO, seperti Java

Page 9: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Karakteristik Utama Pemrograman Berorientasi Objek (PBO). Konsep object oriented memiliki karakteristik utama yaitu :

Enkapsulasi Pewarisan (Inheritance) Polymorphism

Page 10: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Enkapsulasi

Fungsi kelas terletak pada fungsi anggota (member function) dalam C++.

Jika Anda ingin membaca data dalam objek maka Anda harus memanggil fungsi anggota (member function) dalam objek. Hanya dengan cara ini Anda bisa mengakses data. Jadi Anda tidak bisa mengakses data secara langsung seperti dalam konsep pemrograman

tradisional. Pengaksesan data seperti pada PBO ini dikenal sebagai pengkapsulan data.

Page 11: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Enkapsulasi

Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem sekaligus menyederhanakan penggunaan system itu sendiri.

Akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface.

Page 12: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Komponen PBO Objek Polimorfisme Inheritansi

Page 13: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Objek Adalah Entiti logik yang berisi data dan kode

program untuk memanipulasi data tersebut.– Beberapa kode program / data bersifat privat

terhadap objek tersebut. Artinya tidak dapat diakses oleh sesuatu diluar objek tersebut.

– Cara penyatuan data dan program disebut enscapsulasi.

Page 14: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Pada dasarnya ada dua karakteristik yang utama pada sebuah objek , yaitu :

Setiap objek memiliki atribut sebagai status yang kemudian akan disebut sebagai state.

Setiap objek memiliki tingkah laku yang kemudian akan disebut sebagai behaviour.

Page 15: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Contoh sederhananya adalah : objek sepeda

Sepeda memiliki atribut ( state ) : pedal, roda, jeruji, dan warna.

Sepeda memiliki tingkah laku ( behaviour ) : kecepatannya menaik, kecepatannya menurun, dan perpindahan gigi sepeda.

Page 16: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Dalam pengembangan perangkat lunak berorientasi objek, objek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku ( behaviour ) dalam method-method atau fungsi-fungsi/prosedur.

Page 17: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Attribut

Suatu objek memiliki atribut-atribut. Atribut merupakan deskripsi (data) yang

berhubungan dengan objek. Sebagai contoh, seorang karyawan dapat

mencakup nama, alamat, tanggal lahir, nomor jaminan sosial, dan tanggal awal kerja.

Atribut mirip dengan elemen elemen data.

Page 18: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Objek Dapat Dikelompokan menjadi

Objek Konsep: Kinerja Objek Event: Permintaan, Pemesan Objek Organisasi: Departemen akuntansi,dll Objek Manusia: Karyawan, Klien, dll Objek Tempat: Gedung, Toko,dll Sesuatu yang terukur dan Objek

Peralatan:Mobil, Sensor Tekanan– ( Ali Bahrami, 1999)

Page 19: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Kelas Kelas Membungkus Objek. Kelas mencakup sifat-sifat umum yang dimiliki

objek. Misal: Kelas Staf : Dosen, Rektor, Dekan, dll Objek dikelompokkan berdasarkan jenis dan

perilaku. Keuntungan: Memungkinkan seseorang

menggunakan suatu komponen yang diciptakan dengan konsep pembungkusan tanpa mengetahui rincian implementasinya.

Page 20: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Abstaksi Menemukan hal-hal yang esensial pada

objek dan mengabaikan hal-hal yang sifatnya insidental.

Misal : Atribut-atribut pada objek dan fungsinya.

Page 21: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Polimorfisme Adalah sebuah nama yang dapat dipakai

oleh beberapa tujuan yang berhubungan tetapi sedikit berbeda.

Tujuannya adalah untuk mengijinkan sebuah nama dipaikai oleh aksi-aksi yang bersifat umum.

Page 22: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Polimorfisme

Polimorfisme berarti kelas-kelas yang berbeda tetapi berasal dari satu orang tua dapat mempunyai metode yang sama tetapi cara pelaksanaannya berbeda-beda. Atau dengan kata lain, suatu fungsi akan memiliki perilaku berbeda jika dilewatkan ke kelas yang berbeda-beda.

Page 23: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Contoh

Contoh: kelas untuk input sound system. Sebuah tape recorder dan CD player memiliki tombol PLAY yang berfungsi untuk memainkan musik yang dikehendaki. Tape recorder mengimplementasikan tombol PLAY dengan membaca isyarat-isyarat yang terekam di pita magnetis kaset, sedangkan CD player menggunakan sinar laser untuk membaca bit-bit digital yang terekam di permukaan CD.

Page 24: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Inheritansi Adalah proses yang menyebabkan sebuah

objek mengenali objek yang lain. Mengijinkan objek-objek pada suatu kelas

mengakses peubah-peubah dan fungsi pada objek yang telah didefinisikan lebih dahulu, tanpa melakukan pendefinisian kembali.

Page 25: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Inheritansi

Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya.

Hal ini dapat dianalogikan dengan kelas manusia. Manusia merupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya.

Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut.

Page 26: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Contoh

Masing-masing kendaraan bermotor ini memiliki beberapa data yang sama, seperti posisi gigi persnelling, kecepatan putaran mesin, kecepatan linear kendaraan, dan sebagainya. Namun masing-masing kelas turunan ini memiliki beberapa data dan metode yang berlainan.

Page 27: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Kelas dan kelas turunan kendaraan bermotor.

Contoh: kelas sepeda motor mungkin masih dibagi lagi menjadi dua kelas, yaitu sepeda motor 2 tak dan 4 tak. Sepeda motor 2 tak mungkin masih dibagi lagi menurut pabrik pembuatnya, seperti Honda, Suzuki, Yamaha, dan seterusnya. Masing-masing pabrik mungkin masih mempunyai beberapa kelas turunan lagi, seperti Honda Astrea Star, Honda Astrea Grand, dan seterusnya,

Page 28: 1.introductionto objectorientedprogramming

www.matematika.brawijaya.ac.id

Sharing Berbagi data / perilaku :

– Metoda dan peubah yang bersifat privat– Metoda dan peubah yang bersifat protected– Metoda dan peubah yang bersifat friend– Metoda dan peubah yang bersifat public