46
Algoritma &Pemrograman 1 Object Oriented Programming

Algoritma &Pemrograman 1

  • Upload
    nubia

  • View
    77

  • Download
    3

Embed Size (px)

DESCRIPTION

Algoritma &Pemrograman 1. Object Oriented Programming. Target:. Mahasiswa mampu memahami: prinsip-prinsip OOP Object  Class Pewarisan Polimorfisme Overloading Overriding Dkk… jenis-jenis struktur data yang ada dalam Java. Access modifier. Ada 4 tipe: Default Public Private - PowerPoint PPT Presentation

Citation preview

Page 1: Algoritma &Pemrograman 1

Algoritma &Pemrograman 1

Object Oriented Programming

Page 2: Algoritma &Pemrograman 1

Target: Mahasiswa mampu memahami:

prinsip-prinsip OOP ObjectClass Pewarisan Polimorfisme Overloading Overriding Dkk…

jenis-jenis struktur data yang ada dalam Java

Page 3: Algoritma &Pemrograman 1

Access modifier

Ada 4 tipe:1. Default2. Public3. Private4. protected

Default merupakan default access modifier, yang tidak menggunakan keyword

public, private, dan protected merupakan access modifier tipe akses, yang secara eksplisit harus ditulis.

Page 4: Algoritma &Pemrograman 1

1.Hak akses Default Hanya class-class dalam package yang sama yang

memiliki akses ke class variable dan method Tidak ada keyword bagi modifier default c/

public class RecordMhs {//akses default ke instance variableint name;

//akses default ke methodString getName(){

return name;}

}

Page 5: Algoritma &Pemrograman 1

2. Hak akses public Anggota class dapat diakses dari dalam or dari luar class Object apapun yang berinteraksi dengan class, memiliki

akses ke anggota class yang ber-modifier public Keyword : public c/

public class RecordMhs{//akses default ke instance variablepublic int name;

//akses default ke methodpublic String getName(){

return name;}

}

Page 6: Algoritma &Pemrograman 1

3.Hak akses protected Anggota class hanya dapat diakses oleh method dalam

class dan subclass dari class Keyword : protected c/

public class RecordMhs{//akses default ke instance variableprotected int name;

//akses default ke methodprotected String getName(){

return name;}

}

Page 7: Algoritma &Pemrograman 1

4.Hak akses private Anggota class hanya dapat diakses oleh class yang

mereka definisikan di dalamnya Keyword : private c/

public class RecordMhs{//akses default ke instance variableprivate int name;

//akses default ke methodprivate String getName(){

return name;}

}

Page 8: Algoritma &Pemrograman 1

Konsep OOP:

Menitikberatkan pada konsep object sebagai elemen dasar dari program

Argumentasi: d dunia nyataada beberapa objek, seperti mobil, singa,

manusia dan seterusnyaobject” tsb dikarakterisasi oleh sifat, attribut & tingkah lakunya

c/ objek mobil: punya sifat tipe transmisi, warna dan manufaktur punya kelakuan berbelok, mengerem dan berakselerasi

Page 9: Algoritma &Pemrograman 1

Konsep OOP:

objek pada dunia nyatadiamsusikan sbg objek software, dengan menggunakan: Property/sifat sebagai data Behavior/tingkah lakusebagai method

c/ software objek mobil dalam permainan balap mobil software objek singa dalam sebuah software pendidikan interaktif pada

kebun binatang untuk anak anak

Page 10: Algoritma &Pemrograman 1

Class dan ObjectClass

Diasumsikan sebagai template, sebuah prototype dari object Merupakan struktur dasar dari OOP

Dua tipe class member Field (property atau attribute)Menentukan tipe data yang

digunakan oleh class Method/behavior/tingkah lakuMenentukan jalan operasi

Page 11: Algoritma &Pemrograman 1

Class & ObjectObject

objek komponen software yang stukturnya mirip dengan objek pada dunia nyata

Terdiri dari: kumpulan data (property), berupa variabel yang

menentukan karakteristik sebuah object beberapa method (behavior) yang menjelaskan bagaimana

bentuk object Object adalah sebuah instance dari Class

Page 12: Algoritma &Pemrograman 1

c/ Class dan Object

Class memiliki kelebihan dengan salah satu karakteristiknya yaitu, reusable.

Programmer dapat menggunakan sebuah class berulang kali untuk membuat banyak object.

Page 13: Algoritma &Pemrograman 1

Class VariableClass terdiri dari :

Instance variable

Instance method

Class Variable (static member variable) variabel yang dimiliki oleh keseluruhan class Variabel tersebut memiliki nilai (value) yang sama

untuk semua object dalam class yang sama.

Page 14: Algoritma &Pemrograman 1

c/ Class Variable

Next AplikasiKlasPersegi.java; KlasPersegiMain.java

Page 15: Algoritma &Pemrograman 1

Deklarasi classSintaks :<modifier> class <name> {

<attributeDeclaration>* <constructorDeclaration>* <methodDeclaration>* }

<modifier> sebuah modifier bertipe access yang dapat dikombinasikan dengan modifier bertipe lainnya.

c/public class mhs {

//coding lanjut}

Public class dapat diakses oleh class” lain di luar package

Class keyword untuk membuat class

StudentRecord identifier untuk mendeskripsikan

class

Page 16: Algoritma &Pemrograman 1

Deklarasi atribut<modifier> <type> <name> [= <default_value>];

Dengan isi atribut sbb:name - String address - String age - Int math grade - double english grade - double science grade - double average grade - double

private String name;

Page 17: Algoritma &Pemrograman 1

Deklarasi Atribut Clas/static variablepublic class RecordMhs {

//variabel instance yang telah kita deklarasikan

private static int MhsCount;//kita tambahkan kode di sini

}

keyword static menandai suatu static variable

Page 18: Algoritma &Pemrograman 1

Deklarasi method<modifier> <returnType> <name>(<parameter>*) { <statement>*}

<modifier>modifier yang digunakan dapat berbeda-beda

<returnType> dapat berupa tipe data (termasuk void)

<name> dapat berupa identifier yang valid

<parameter> ::= <parameter_type> <parameter_name>[,]

Page 19: Algoritma &Pemrograman 1

1.Method accessor Fungsi.u/ membaca value variabel dari class

(instance/static)

Sintaks:get<NameOfInstanceVariable>

dapat me-return value

Page 20: Algoritma &Pemrograman 1

c/public class

StudentRecord {private String name;:public double getAverage(){

double result = 0;

result=(mathGrade+englishGrade+scienceGrade)/3;

return result;}

}

public class StudentRecord {private String name;:

public String getName(){

return name;}

}

Publicmethod dapat dipanggil oleh object” di luar classStringreturn type dari method harus me-return value dengan tipe StringgetNamenama method()method tidak memiliki parameter

Page 21: Algoritma &Pemrograman 1

2.Method mutator

Fungsi untuk menulis/mengubah value dari class(instance/static) variable

Sintakset<NameOfInstanceVariable>

public class StudentRecord {private String name;:public void setName( String temp ){

name = temp;}

}

Publicmethod dapat dipanggil oleh object” di luar class

Voidmethod tidak me-return value

setNamenama method

(String temp)parameter yang digunakan di dalam method

Page 22: Algoritma &Pemrograman 1

3.Multiple return statement digunakan dalam

sebuah method selama tidak berada pada block yang sama.

konstanta dapat digunakan untuk me-return value sebuah variabel

public String getNumberInWords( int num ){String defaultNum = "zero";if( num == 1 ){

return "one"; //return a constant}else if( num == 2){

return "two"; //return a constant}//return a variablereturn defaultNum;

}

Page 23: Algoritma &Pemrograman 1

4.Method static

Publicdapat dipanggil oleh object-object di luar classStaticSintaks :[ClassName].[methodName]

Contoh: RecordMhs.getMhsCount()Intreturn type dari method. Method harus me-return value dengan tipe intgetMhsCountnama method()method tidak mempunyai parameter

public class RecordMhs {private static int MhsCount;

public static int getMhsCount(){

return MhsCount;}

}

Page 24: Algoritma &Pemrograman 1

Reference ‘this’

Fungsiuntuk mengakses instance variabel yang di biaskan oleh parameter dan Bukan pada static/class variable

Sintaks:

this.<namaInstanceVariable>

public void setAge( int age ){ age = age; //F}

public void setAge( int age ){ this.age = age; //T}

Page 25: Algoritma &Pemrograman 1

Method overloading Dapat digunakan ketika operator yang sama

memiliki implementasi yang berbeda Properti”:

Nama method sama Parameter/argument berbeda (jumlah dan Type) Return type dapat berbeda atau sama

Page 26: Algoritma &Pemrograman 1

Constructor method dimana seluruh inisialisasi object ditempatkan Properti”:

Punya nama yang sama dengan class Mirip dengan method pada umumnya, namun hanya informasi”

berikut yang dapat ditempatkan pada header sebuah constructor scope atau identifikasi pengaksesan (misal: public), nama dari

konstuktor dan parameter Tidak memiliki return value Tidak dapat dipanggil secara langsung, namun harus dipanggil

dengan menggunakan operator new pada pembentukan sebuah class Sintaks:

<modifier> <className> (<parameter>*) { <statement>*}

Page 27: Algoritma &Pemrograman 1

1.Default constructor Setiap Class memiliki default constructor Mrkconstructor yang tidak memiliki parameter

apapun Jika sebuah class tidak memiliki constructor apapun,

maka sebuah default constructor akan terbuat secara implisit

public StudentRecord() { //area penulisan kode

}

Page 28: Algoritma &Pemrograman 1

2. Constructor overloading

(1)public StudentRecord(){

//Next Coding

}

(2)public StudentRecord(String temp){

this.name = temp;

}(3)public StudentRecord(String name, String address){

this.name = name;this.address = address;

}

(4)public StudentRecord(double mGrade, double eGrade, double sGrade){

mathGrade = mGrade;englishGrade = eGrade;scienceGrade = sGrade;

}

constructor juga dapat dibentuk menjadi overloaded

Page 29: Algoritma &Pemrograman 1

Pemanggil constructor ‘this()’ Sebuah constructor dapat dipanggil oleh

constructor yang lain d/ pemanggil this()

Kriteria: Pemanggil constructor this(), harus ada pada

statement pertama dalam constructor this() hanya digunakan dalam definisi constructor this() dapat diikuti oleh statement yang relevan

Page 30: Algoritma &Pemrograman 1

c/1.Public RecordMhs(){ this(“some string”);}

2.public RecordMhs(String temp){

this.name = temp;}

3.Public static void main(String args[]){

RecordMhs RecordMhs = new StudentRecord()}

Page 31: Algoritma &Pemrograman 1

Next Aplikasi KlasPerson.java KlasRecordMhs.java KlasRecordMhsOverloading.java Next AplikasiRecordMhsConstructor

Page 32: Algoritma &Pemrograman 1

Polimorfisme:

bagaimana suatu class dapat mewariskan sifat dari class yang sudah adasubclass ; induk classsuperclass Object

Superclass (Object); subclass (Clas A, Clas D) Superclass (Clas A); subclass (Clas B, Clas C) Pewarisan adalah keuntungan besar dalam pemrograman berbasis

object karena: suatu sifat/method didefinisikan dalam superclass sifat ini secara otomatis diwariskan dari semua subclasses method dibuat hanya sekali dan mereka dapat digunakan oleh semua

subclass Subclass hanya butuh mengimplementasikan perbedaannya sendiri dr

superclass

Page 33: Algoritma &Pemrograman 1

Polimorfisme Fungsi

Kemampuan dari referensi untuk mengubah sifat menurut object apa yang akan dijadikan acuan

membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut

menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.

PERSON

MHS PEGAWAI

Page 34: Algoritma &Pemrograman 1

1. Deklarasi SuperclasSubclass Keyword extends

PERSON

MHS

Page 35: Algoritma &Pemrograman 1

2. Keyword Super Fungsimemanggil default constructor dari

superclass terdekat Pemanggil constructor super dalam

constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan, berdasar dari argumen sebelumnya

Next Aplikasi

Page 36: Algoritma &Pemrograman 1

3. Overriding Method Fungsi

Untuk beberapa pertimbangan, kadang” class asal perlu mempunyai implementasi berbeda dari method yang khusus dari superclass

Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut

Next Aplikasi

Page 37: Algoritma &Pemrograman 1

4. Method&Class final class finalpendeklarasikan class-class yang tidak lama

menjadi subclasspublic final class Person{

//area kode }

method finalmembuat method yang tidak dapat di-overridepublic final String getName(){

return name; }

Method static secara otomatis final-->method tsb tidak dapat di-override

Page 38: Algoritma &Pemrograman 1

Abstract Class Fungsi membuat Superclass yang mempunyai method tertentu

yang berisi implementasi sedangkan yang lain tidak, dan beberapa method yang akan di-overridden oleh Subclasses nya.

Class abstract yang tidak dapat di-instantiate c/

Superclass bernama LivingThing punya method breath, eat, sleep, dan walkAkan tetapi, ada beberapa method di dalam superclass yang sifatnya tidak dapat digeneralisasi, m/ method walk(Tidak semua kehidupan berjalan/walk dalam cara yang sama)

m/ manusia berjalan dengan dua kaki, dimana kehidupan lainnya seperti anjing berjalan dengan empat kaki. Akan tetapi, beberapa ciri umum dalam kehidupan sudah biasa, itulah kenapa kita inginkan membuat superclass umum dalam hal ini

Page 39: Algoritma &Pemrograman 1

AbstractMethod Class Method Abstract class abstract yang tidak

mempunyai implementasi, d/ sintaks:public abstract void someMethod();

Next Aplikasi

Page 40: Algoritma &Pemrograman 1

Interface/Definisi Method Mrk:

Jenis khusus dari blok yang hanya berisi method constant Mendefinisikan sebuah dari sebuah kumpulan method tanpa

tubuh Mendefinisikan sebuah cara standar dan umum dalam

menetapkan sifat” dari class” Menyediakan class” tanpa memperhatikan lokasinya dalam

hirarki class untuk mengimplementasikan sifat” yang umum Sebuah class hanya boleh meng-extend satu superclass, tapi boleh

meng-implement banyak interface. Ketika meng-extend superclass, sebuah class mewarisi interface &

implement-nya Ketika meng-implement interface, sebuah class hanya mewarisi

interface

Page 41: Algoritma &Pemrograman 1

Kenapa Membuat Interface? jika kita ingin membuat class yang tidak berhubungan dalam

meng-implementasikan method yang sama d/ interface” kita dapat menangkap kemiripan diantara class

yang tidak berhubungan tanpa membuatnya seolah-olah class tsb berhubungan.

c/: class Lined/ method (1)menghitung panjang dari garis

(2)membandingkan object Line ke object dari class yang sama Class MyIntegermethod yang membandingkan object MyInteger ke

object dari class yang sama Class Line&MyIntegerpunya method yang mirip dimana

membandingkan mereka dari object lain dalam tipe yang sama, tetapi mereka tidak berhubungan sama sekali

Supaya dapat menjalankan cara untuk memastikan bahwa dua class tsb ini meng-implementasikan beberapa method dengan tanda yang samagunakan interface

m/ interface Relation dimana mempunyai deklarasi method pembanding

Page 42: Algoritma &Pemrograman 1

c/public interface Relation

{

public boolean isGreater( Object a, Object b);

public boolean isLess( Object a, Object b);

public boolean isEqual( Object a, Object b);

}

Dengan keyword implements

Page 43: Algoritma &Pemrograman 1

Interface vs. Class Abstract untuk menyatakan sebuah interface pemrograman

object tanpa menyatakan classnya method interface tidak punya tubuh sebuah interface hanya dapat mendefinisikan

konstanta interface tidak langsung mewariskan hubungan

dengan class istimewa lainnyamereka didefinisikan secara independent

Page 44: Algoritma &Pemrograman 1

Interface vs. Class Ciri interface dan classtipe mereka berdua Interface dapat digunakan dalam tempat”

dimana sebuah class dapat digunakan c/ class Person dan interface PersonInterface,

Kita dapat membuat instance dari sebuah interface

PersonInterface pi = new Person();

Person pc = new Person();

PersonInterface pi = new PersonInterface();//Compile Error!!!

Page 45: Algoritma &Pemrograman 1

Membuat Interface Sintaks:

public interface [InterfaceName]

{

//beberapa method tanpa isi

}

Next Aplikasi (Line…) Jika Clas diimplementasikan ke interfaceharus

mengimplementasikan semua method dari interfacejika tidak maka akan error

Page 46: Algoritma &Pemrograman 1

Next Aplikasi Polimorfisma Abstract Interface

[email protected]