object oriented programming - ramos' blog file•sebuah object adalah sebuah benda yang...

30
Object Oriented Programming Ramos Somya (Class, Inheritance, Encapsulation dan Interface)

Upload: vuongdieu

Post on 15-Aug-2019

225 views

Category:

Documents


0 download

TRANSCRIPT

Object Oriented Programming

Ramos Somya

(Class, Inheritance, Encapsulation dan Interface)

Object

• sebuah benda (entity) yang memiliki batasan (boundary) dan identitas (identity) yang terdefinisi dengan jelas, yang membungkus (encapsulate) kondisi (state) dan perilaku (behavior).

• Sebuah object adalah sebuah benda yang memiliki batasan yang terdefinisi dengan jelas. Maksudnya, tujuan dari object tersebut harus jelas.

• Sebuah object memiliki dua hal: kondisi (state) dan perilaku (behavior).

• Kondisi (state) dari suatu object sering dinyatakan melalui attribute dari objecttersebut. Sedangkan perilaku (behavior) dinyatakan melalui operations dari objecttersebut.

State atau Attribute dan Behaviour

•State dapat dipahami sebagai suatu karakteristik yang menjelaskan keadaan atau kondisi suatu object. State dinyatakan dalam bentuk attribute atau property yang memiliki nilai atau isinya sendiri-sendiri.

•Mobil memiliki warna, misalnya berwarna pink.

•Mobil memiliki kapasitas mesin, misalnya 1800 cc.

•Monitor komputer memiliki merek tertentu, misalnya saja samsung.

• Seorang mahasiswa memiliki NIM, nama, alamat. Semuanya merupakan attribute dari setiap mahasiswa.

• Sebuah file pada komputer memiliki ukuran tertentu, misalnya 37 MegaByte.

• Behavior adalah perilaku, bagaimana sebuahobject ber-aksi dan ber-reaksi. Sebuah objectakan melakukan aksi atau reaksi terhadaprequest atau permintaan dari object lain.Misalnya, dapat dilakukan beberapa aksi padasebuah object pintu, yaitu : dapat dibuka,dapat dikunci, dll. Behavior dinyatakan dalambentuk method pemrograman object-oriented.

• Sebagai contoh :

•Mobil dapat dijalankan ke depan maupun kebelakang.

•Mesin mobil dapat diperbaiki jika rusak.

•Monitor komputer dapat dihidupkan ataudimatikan dengan menekan tombol power padamonitor.

• Seorang mahasiswa dapat mengambil suatumata kuliah terntentu.

• Sebuah file pada komputer dapat digantinamanya, dipindahkan atau dihapus.

Class

• sekumpulan object yang memiliki attribute,operasi dan hubungan antar object yangsama. Sebuah object dinyatakan sebagaisebuah instance dari sebuah class.

• Contoh : mobil (class)

• attribute atau property → memiliki roda,memiliki mesin, memiliki pintu, memiliki tempatduduk dll.

• behavior → dapat dijalankan ke depan dan kebelakang, mesin mobil dapat dihidupkan ataudimatikan, lampu mobil dapat diganti, pintumobil dapat ditutup dan dikunci, mesin dapatdiperbaiki atau diganti spare part-nya jika rusakdll.

• Bentuk nyata atau instance → mobil kijang, mobilhonda jazz, dll.

• Object → trailer atau tronton

Attribute dan Operation

• kondisi pada suatu object yang membentukstate dari object tersebut.

• Attribute memiliki nama dan nilai yangspesifik. Setiap attribute juga memiliki typetertentu sehingga nilai di dalam attribute iniharus sesuai dengan type yang dimiliki. Typedalam C# dapat berupa int, string, bool dll.Sebuah class dapat memiliki attribute maupuntidak.

• Operation adalah implementasi dari sebuahservice yang dapat diminta oleh object-objectlain dari class untuk mempengaruhi bahavior-nya

Deklarasi Class

• [class modifier] <class> <identifier> [class base] <class body>

• Class → keyword

• Identifier → nama dari class yang akan dibuat

• Class-body → tempat didefinisikannya attribute dan operation dari object yang dibangun berdasarkan class ini.

Contoh Implementasi Class

Abstract Class

• digunakan untuk menunjukkan bahwa suatuclass belum selesai, masih abstrak belumkongkrit.

• Class ini biasanya digunakan sebagai baseclass. Abstract class tidak bisa di-createmenjadi object, tetapi bisa me-refer objekkongkrit yang class-nya diturunkan daridirinya. Abstract class boleh memiliki abstractmember.

abstract class

abstract member

Class B turunan class A

Terdapat method G()

Class C turunan class B

Terdapat implementasi F

Sealed Class• class yang memakai modifier sealed.

• Class yang di-sealed tidak bisa diturunkan atau tidak bisa menjadi base class dari class yang lain.

• Class D tidak bisa di-compile karena C adalah sealed class.

Class Member• Class member dibagi menjadi beberapa kategori:

– Konstanta

– Field

– Method

– Properties

– Event

– Indexer

– Operator

– Constructor

– Destructor

• Konstanta adalah anggota Class yang bernilai tetap.

[modifiers] <const> <type> <deklarasi>

• Modifiers : new, public, protected, internal, private.

– public : semua objek boleh akses tanpa batas.

– private : hanya berlaku dalam Class.

– protected : hanya boleh diakses Class sendiri dan turunannya.

– internal : hanya boleh diakses Class-Class dalam satu project.

Method Overloading

• Adalah method dengan nama yang sama tapi dengan parameter yang berbeda-beda.

Inheritance

• kemampuan sebuah object untuk meng-inherit atau mewarisi data dan functionalitydari parent class-nya.

• Parent class → base class

• Child class → derived class

• Derived class akan meng-inherit segala hal yangdimiliki oleh base class kecuali constructor dandestructor. Seluruh public member dari base classsecara implicit juga menjadi public member dariderived class. Sedangkan private member dari baseclass, meskipun juga di-inherit oleh derived class,hanya dapat diakses oleh base class itu sendiri.

Implementasi Method

• Virtual Method

Untuk dapat membuat sebuah method dari suatubase class bisa di-override oleh derived class-nya,method tersebut harus diberi keyword virtual.

• Sebuah virtual method harus adaimplementasinya di base class. Jika tidak adaimplementasi, maka program akan error.

• Sebuah virtual method tidak dapat diberiaccess modifier private. Jika method adalahprivate, hanya class pemilik method itu sendiriyang dapat mengaksesnya.

• Sebuah virtual method juga tidak dapatdideklarasikan sebagai static.

Override Method

• method yang akan meng-override method base class tadi harus diberi keyword override.

• Seperti halnya pada virtual method, padaoverride method harus juga terdapatimplementasi code. Jika tidak, maka programakan error.

• Signature dari override method harus samadengan virtual method yang akan di override.

• Seperti pada virtual method, override methodjuga tidak boleh static, dan tidak bolehprivate.

Encapsulation

• Encapsulation sering juga dinyatakan sebagai penyembunyian informasi.

• Contoh : perhitungan suhu termometer.

Interface

• Kemampuan suatu object untuk melakukanperintah.

• Contoh: mesin cuci

– kontrak antar produsen mesin cuci, bahwa mesincuci mesti mempunyai fungsi minimal untukmencuci.

• Kontrak semacam ini dalam C# disebutsebagai Interface. Interface adalah komponenutama dan penting dalam dunia OOP.

See You Next Time