P. 1
Konsep Dasar Object Oriented Programing

Konsep Dasar Object Oriented Programing

|Views: 29|Likes:
Published by Rina Purnama Dewi

More info:

Published by: Rina Purnama Dewi on Dec 18, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

05/05/2012

pdf

text

original

BAB II Pembahasan

2.1 Pengertian Object Oriented Programing (OOP) OOP (Object Oriented Programing) merupakan sebuah paradigma

pemrograman dimana dalam pemecahan masalahnya/analisa pemrogramannya dilihat dari sudut pandang objek (setiap entitas yang terlibat dalam pemrograman akan dianggap sebagai objek), mengenai bagaimana suatu objek tersebut dibangun/dibentuk, menerima pesan, memproses data dan mengirim pesan ke objek lainnya dengan cara memisahkan suatu objek menjadi class dan object.

2.2 Karakteristik atau Konsep Dasar Object Oriented Programing

2.2.1 Obyek dan Kelas Kelas adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh „class of dog‟ adalah suatu unit yang terdiri atas definisi - definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspekaspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan

(atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk

Class diagram menggambarkan struktur dan deskripsi class. Metoda Atribut dan metoda dapat memiliki salah satu sifat berikut :    Private. Protected. dapat dipanggil oleh siapa saja Class dapat merupakan implementasi dari sebuah interface. asosiasi. class dapat dikelompokkan menjadi package. Umumnya menggambarkan class yang memiliki atribut berupa class lain. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru. yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan. tidak dapat dipanggil dari luar class yang bersangkutan. 1. Dengan demikian interface mendukung resolusi metoda pada saat run-time. Nama (dan stereotype) b..memanipulasi keadaan tersebut (metoda/fungsi). Agregasi. Class memiliki tiga area pokok : a. yaitu hubungan hirarkis antar class. dan lain-lain. package dan objek beserta hubungan satu sama lain seperti containment. Panah navigability menunjukkan arah query antar class. pewarisan. yaitu hubungan statis antar class. 2.”). tetapi harus diimplementasikan dahulu menjadi sebuah class. Sesuai dengan perkembangan class model. Atribut c. Asosiasi. yaitu hubungan yang menyatakan bagian (“terdiri atas. 3. hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya Public. sehingga ia . Kita juga dapat membuat diagram yang terdiri atas package. Pewarisan. atau class yang harus mengetahui eksistensi class lain.

public void setPanjang (double p) { panjang = p. } public double getLuas () { double luas = panjang*lebar. Kebalikan dari pewarisan adalah generalisasi. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian. } public double getKeliling () { double kel = 2*(panjang*lebar). private double lebar. Hubungan dinamis. return luas. } public void setLebar (double l) { lebar = l. yaitu rangkaian pesan (message) yang dipassing dari satu class kepada class lain. 4. } public double getLebar () { return lebar. } } .disebut anak dari class yang diwarisinya. Contohnya : public class PersegiPanjang { private double panjang. } public double getPanjang () { return panjang. return kel.

Proses. Atribut dan metode merupakan anggota kelas: atribut adalah anggota data dan metode adalah fungsi anggota. Abstraksi merupakan sebuah proses yang ditempuh pikiran untuk sampai pada konsep yang bersifat universal.2.Pendekatan berorientasi-objek.3 Enkapsulasi Dalam istilah berorientasi-objek. Bentuk kelas ini melayani maksud tersebut. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja. Biasanya. laporan dan perubahan keadaannya. dan berkomunikasi dengan objek lainnya dalam sistem. Pikiran melepaskan sifat individual dari obyek dan membentuk konsep universal 2. Tujuannya adalah membuat sebuah abstraksi yang memaksa programmer berpikir secara konseptual. di pihak lain. mengadopsi konsep bahwa data dan fungsi mestinya dipaketkan bersama ke dalam sebuah kapsul tunggal. Elemen data sebuah kelas disebut attribute.2 Abstraksi Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya. Maksud enkapsulasi disini adalah menyembunyikan detail implementasi sementara memusatkan pada antarmuka. Sebuah kelas terdiri dari elemen data dan elemen pemrosesan. tanpa mengungkapkan bagaimana kelebihan ini diterapkan. dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan. yaitu kemampuan untuk memfokus pada inti. proses ini berangkat dari pengetahuan mengenai obyek individual yang bersifat spasiotemporal (ruang dan waktu). enkapsulasi berkaitan dengan penyembunyian informasi.2. dan operasi pemrosesan disebut metodenya. System-sistem yang tidak berorientasi-objek berdasarkan pada rutin dan subprogram yang berbagi-pakai data global. fungsi atau metode dapat juga dibuat abstrak.2. atau yang menerima data yang dikirimkan oleh pemanggil. anggota – anggota data dari sebuah kelas terlihat .

Pendeklarasiannya : Class < nama base class> { <deklarasi member untuk base class> }. maka kelas tersebut menyediakan sebuah metode yang memeriksanya dan mengembalikan nilainya. Hal ini dapat dianalogikan dengan kelas manusia. Jadi. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut. . Manusia merupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya. 2. sifat ini secara otomatis diwariskan dari semua subclasses. Jika sebuah anggota data harus dibuat agar dapat diakses oleh client kelas. Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass.2.4 Inheritance (Pewarisan) Inheritance atau Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass. Saat sebuah kelas mengekspos anggota data. class <nama derive class> : public <nama base class> { <deklarasi member untuk derive class>.oleh penggunanya. Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya. ia dikatakan memecahkan enkapsulasi.

x obj1. y obj2.h> # include <conio. void f2(). public: int c void f1(). obj2. // tubuh dari program } . void main() { clrscr(). protected: int b. }. obj2.f2(). }. . public: float e.. class y : public x { int d. }.f1(). void y::f2() { cout << “metode F2() dieksekusi “<< endl .h> class x { int a. }.Contohnya : # include <iostream. void x::f1() { cout << “metode f1() dieksekusi ”<< endl..

tergantung pada saat itu kelas mana yang ditunjuk. dalam hal ini metode virtualnya (maya). objek tersebut berperilaku seperti kelas turunan. objek tersebut berperilaku seperti kelas dasar. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga. bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan. Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ketika objek tersebut menunjuk kelas dasar. tidak dapat objek kelas turunan menunjuk kelas dasar.5 Polimorfisme Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Dalam hal ini objek dapat memiliki beberapa bentuk.2. . Ikatan yang terjadi pada saat kompile disebut ikatan statis. Yang perlu menjadi catatan. tetapi ketika objek tersebut menunjuk kelas turunan. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic binding).2. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan.

}. } . void dasar::cetak() { cout<<”metode cetak dari class dasar”<<endl. }. }.h> #include<conio. void main() { clrscr(). dasar d. void turunan::cetak() { Cout<<”metode cetak dari class turunan”<<endl. classturunan:public dasar { public : void cetak(). }. turunan t.h> class dasar{ public : void cetak(). tcetak().Contoh : #include<iostream.

Modularitas melekat pada OOP karena kelas-kelas yang ada merupakan suatu modul sehingga kelas-kelas yang mempunyai fungsi sama akan disimpan pada namespace yang sama pula.2 Extensibility Kemampuan dapat di perluas.2. . sehingga programmer yang hendak belajar OOP wajib memahami konsep pengaksesan data ini dalam OOP. 2. Maksudnya jika terjadi kesalahan pada program yang besar maka solusinya adalah memecah program tersebut menjadi modul-modul kecil (modularitas).6 Hak Akses OOP memberikan beberapa tipe hak akses terhadap variable (atribut).3.3. Private. Tipe tipe hak akses tersebut yaitu Public. atau Protected.1 Maintenability Kemampuan untuk mudah dikelola.3 Keunggulan Menggunakan Pemrograman OOP Dengan Pemrograman Terstruktur 2. methode bahkan class.2. 2. Ini adalah salah satu bagian terpenting dari OOP.4 Reusibility Kemampuan untuk dapat dipergunakan kembali bagi mereka yang memerlukan fungionalitas yang sama yang disediakan oleh kode. atau mengubah prilaku dari method. yaitu Class-class yang ada dapat diperluas dengan menambahkan method atau data.3. 2.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->