Algoritma &Pemrograman 1

Slides:



Advertisements
Presentasi serupa
PERTEMUAN 4 PEMROGRAMAN API OOP Concept mudafiqriyan.com.
Advertisements

Pemrograman Berorientasi Objek
Membuat class sendiri.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Abstract Class & Interface
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Pemrograman Berorientasi Objek
INHERITANCE.
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
Encapsulation, Inheritance, polymorphism, dan interface
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
Pemrograman Berorientasi Objek
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
METHOD Object Oriented Programming with JAVA 2011/2012.
Pertemuan : Object Oriented Programming
Membuat Class Sendiri Sebelum menulis class Anda, pertama pertimbangkan dimana Anda akan menggunakan class dan bagaimana class tersebut akan digunakan.
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Pemrograman Berorientasi Obyek dengan JAVA Interface
07 Advanced Class Features
Object Oriented Programming with JAVA 2011/2012
MEMBUAT CLASS SENDIRI. Pada akhir pembahasan, peserta diharapkan mampu untuk :  Membuat class  Mendeklarasikan atribut dan method untuk class  Menggunakan.
Bekerja dengan Java class library
INTERFACE & ABSTRACT CLASS Object Oriented Programming with JAVA 2011/2012.
OOP Java 06 Polymorphism.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Pertemuan 6 PEWARISAN AND POLYMORPHISM
MEMBUAT KELAS SENDIRI Dewi Sartika, M.Kom.
Perancangan dan Pemrograman Web
MEMBUAT CLASS & KONSEP ENCAPSULATION
Access Modifier.
Inheritance dan Kata Kunci static
Pemograman Berorientasi Objek
POLYMORPHISM, ABSTRACT CLASS DAN INTERFACE
Algoritma & Pemrograman 1
@kovazzevic | SMKN 24 Jakarta
Method & Constructor METHOD.
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
MODIFIER JAVA.
Algoritma & Pemrograman 1
Enkapsulasi, Accessor Method, Mutator Method
Membuat Class Sendiri Sebelum menulis class Anda, pertama pertimbangkan dimana Anda akan menggunakan class dan bagaimana class tersebut akan digunakan.
Association, Composition dan Inheritance
MEMBUAT CLASS SENDIRI 2.
Algoritma &Pemrograman 1
Inheritance.
Algoritma &Pemrograman 1
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
MEMBUAT CLASS & KONSEP ENCAPSULATION
Membuat Class Sendiri.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Object Oriented Programming
Membuat class sendiri.
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding Pemrograman.
Pengenalan Pemrograman 1
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
DPH1C4 Pemrograman berorientasi Obyek
Bahasa Pemrograman (Pemrograman Visual)
Transcript presentasi:

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 protected Default merupakan default access modifier, yang tidak menggunakan keyword public, private, dan protected merupakan access modifier tipe akses, yang secara eksplisit harus ditulis.

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 variable int name; //akses default ke method String getName(){ return name; }

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 variable public int name; //akses default ke method public String getName(){ return name; }

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 variable protected int name; //akses default ke method protected String getName(){ return name; }

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 variable private int name; //akses default ke method private String getName(){ return name; }

Konsep OOP: Menitikberatkan pada konsep object sebagai elemen dasar dari program Argumentasi: d dunia nyataada beberapa objek, seperti mobil, singa, manusia dan seterusnyaobject” tsb dikarakterisasi oleh sifat, attribut & tingkah lakunya c/ objek mobil: punya sifat tipe transmisi, warna dan manufaktur punya kelakuan berbelok, mengerem dan berakselerasi

Konsep OOP: objek pada dunia nyatadiamsusikan sbg objek software, dengan menggunakan: Property/sifat  sebagai data Behavior/tingkah lakusebagai method c/ software objek mobil dalam permainan balap mobil software objek singa dalam sebuah software pendidikan interaktif pada kebun binatang untuk anak anak

Class dan Object Class Dua tipe class member 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 lakuMenentukan jalan operasi

Class & Object Object 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

c/ Class dan Object Class memiliki kelebihan dengan salah satu karakteristiknya yaitu, reusable. Programmer dapat menggunakan sebuah class berulang kali untuk membuat banyak object.

Class Variable Class 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.

c/ Class Variable Next AplikasiKlasPersegi.java; KlasPersegiMain.java

Deklarasi class 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 Sintaks : <modifier> class <name> { <attributeDeclaration>* <constructorDeclaration>* <methodDeclaration>* } <modifier>  sebuah modifier bertipe access yang dapat dikombinasikan dengan modifier bertipe lainnya.

Deklarasi atribut <modifier> <type> <name> [= <default_value>]; private String name; Dengan isi atribut sbb: name - String address - String age - Int math grade - double english grade - double science grade - double average grade - double

Deklarasi Atribut Clas/static variable public class RecordMhs { //variabel instance yang telah kita deklarasikan private static int MhsCount; //kita tambahkan kode di sini } keyword static  menandai suatu static variable

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>[,]

1.Method accessor Fungsi.u/ membaca value variabel dari class (instance/static) Sintaks: get<NameOfInstanceVariable> dapat me-return value

c/ public class StudentRecord { public class StudentRecord { private String name; : public String getName(){ return name; } Publicmethod dapat dipanggil oleh object” di luar class Stringreturn type dari method harus me-return value dengan tipe String getNamenama method ()method tidak memiliki parameter public class StudentRecord { private String name; : public double getAverage(){ double result = 0; result=(mathGrade+englishGrade+scienceGrade)/3; return result; }

2.Method mutator public class StudentRecord { private String name; : public void setName( String temp ){ name = temp; } Fungsi untuk menulis/mengubah value dari class(instance/static) variable Sintak set<NameOfInstanceVariable> Publicmethod dapat dipanggil oleh object” di luar class Voidmethod tidak me-return value setNamenama method (String temp)parameter yang digunakan di dalam method

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 variable return defaultNum;

4.Method static public class RecordMhs { private static int MhsCount; public static int getMhsCount(){ return MhsCount; } Publicdapat dipanggil oleh object-object di luar class StaticSintaks :[ClassName].[methodName] Contoh: RecordMhs.getMhsCount() Intreturn type dari method. Method harus me-return value dengan tipe int getMhsCountnama method ()method tidak mempunyai parameter

Reference ‘this’ this.<namaInstanceVariable> Fungsiuntuk 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 }

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

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>* }

1.Default constructor Setiap Class memiliki default constructor Mrkconstructor 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 }

2. Constructor overloading constructor juga dapat dibentuk menjadi overloaded (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; }

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

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()

Next Aplikasi KlasPerson.java KlasRecordMhs.java KlasRecordMhsOverloading.java Next AplikasiRecordMhsConstructor

Polimorfisme: bagaimana suatu class dapat mewariskan sifat dari class yang sudah adasubclass ; induk classsuperclass 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

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.

1. Deklarasi SuperclasSubclass Keyword extends

2. Keyword Super Fungsimemanggil 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

3. Overriding Method Fungsi Next Aplikasi 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

4. Method&Class final class finalpendeklarasikan class-class yang tidak lama menjadi subclass public final class Person{ //area kode } method finalmembuat method yang tidak dapat di-override public final String getName(){ return name; Method static secara otomatis final-->method tsb tidak dapat di-override

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 walkAkan 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

AbstractMethod Class Method Abstract class abstract yang tidak mempunyai implementasi, d/ sintaks: public abstract void someMethod(); Next Aplikasi

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

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 Lined/ method (1)menghitung panjang dari garis (2)membandingkan object Line ke object dari class yang sama Class MyIntegermethod yang membandingkan object MyInteger ke object dari class yang sama Class Line&MyIntegerpunya 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 samagunakan interface m/ interface Relation dimana mempunyai deklarasi method pembanding

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

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 lainnyamereka didefinisikan secara independent

Interface vs. Class Ciri interface dan classtipe 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!!!

Membuat Interface Sintaks: public interface [InterfaceName] { //beberapa method tanpa isi } Next Aplikasi (Line…) Jika Clas diimplementasikan ke interfaceharus mengimplementasikan semua method dari interfacejika tidak maka akan error

Next Aplikasi Polimorfisma Abstract Interface