1446t - ln10 - r0

11
1446T - Algorithm and Programming LECTURE NOTES Introduction to Object Oriented Programming Concept

Upload: adhi-r-saputra

Post on 16-Aug-2015

215 views

Category:

Documents


1 download

DESCRIPTION

Lecture Note Alpro Week 10

TRANSCRIPT

1446T - Algorithm and Programming LECTURE NOTES Introduction to Object Oriented Programming Concept 1446T - Algorithm and Programming LEARNING OUTCOMES 1. LO5 :Summarize the object oriented concept OUTLINE MATERI : Introduction to OOP Class and Object Method EncapsulationInheritance Polymorphism 1446T - Algorithm and Programming ISI MATERI Introduction to OOP concept Object oriented conceptmerupakansebuah konsep untukmengembangkan programyangAnda buatdenganberbasiskanpadaobjekyangberperandidalamnya.Objektersebutyang mendeskripsikansebuahentitasdidunianyata,dimanaobjektersebutharusdapatsecarajelas diidentifikasi.Contohdariobjekdidunianyataadalahmobil,motor,meja,danobjeklainnya yang dapat Anda lihat dan identifikasikan sebagai objek.Objekdidalamprogrammingconceptharusmemilikiatribute,behaviour,property,type,dan identitas. Semua data dan fungsi tersebut juga harus dibungkus ke dalam sebuah kelas dan objek. Propertiesyang dimaksudkan adalahsegalasesuatu yangmencerminkan/menggambarkan objek tersebut.Sedangkanbehaviouradalahsegalasesuatuyangmembuatsebuahobjektersebut melakukansuatuaksi.Contohnyaadalahmahasiswa.Seorangmahasiswaadalahsebuahobjek. Mahasiswadapatmemilikiatribut/propertysepertinama,NIM,umur,danlainnya.Mahasiswa jugamempunyaibehaviouryaitudapatmelakukanaksimakan,berjalan,berlari,danlainnya. Objek-objekyangmemilikitipeyangsama,misalnyamahasiswaAdenganmahasiswaB memilikitipeyangsama,dapatdibuatmenjadisebuahkelasumum,misalnyaadalahkelas mahasiswa. Objek adalah bentuk nyata dari kelas tersebut.Kelasmerupakankoleksidaridatadanbehaviour,yangjugamerupakansebuahblueprintyang dapatmendefinisikansebuah data danbehaviourdari objek-objekyangbertipe sama. Objekitu sendirimerupakanrepresentasidarikelastersebut.Contohnyaadalahsebuahkelasmanusia. Didalamkelastersebutterdapatbeberapapropertisepertinama,umur,tinggi,berat,warna rambut,danjugamempunyaibeberapaaksiyangdapatdilakukansepertimakan,tidur,dan bermain.MisalkanobjekyangmerepresentasikankelasmanusiatersebutadalahAnto.Ketika Antodibentuk,makaAntoakanmempunyaipropertidanmethod/behaviouryangsamadengan kelas tersebut (Anto adalah bentuk nyata dari rancangan kelas manusia yang ada). DidalamkonsepOOPterdapatkonsepinformationhiding/encapsulation,inheritancedan polymorphism.Enkapsulasi/informationhidingmerupakandasaryangdilakukanketikaAnda menerapkanOOPkonsep,dimanaterdapathak-hakuntukmengaksesdata-data/informasiyang ada pada sebuah kelas. Tidak semua data dapat dilihat oleh user atau digunakan oleh kelas yang lainnya secara langsung. Inheritance Inheritanceadalahprosespewarisansifatdarikelasindukkekelasanaknya.Yangdiwariskan adalahatributdanmethodyangadapadakelasinduk.Kelasanakdapatmenggunakanfungsi-fungsidanatributtersebut.Halinidigunakanuntukmenghindariadanyaperulangandan memudahkanuseruntukmengelolasystemyangAndabuat.InheritancejugamembuatAnda 1446T - Algorithm and Programming untukdapatmendefinisikansebuahkelasumumyangkemudiandikembangkandengan menambahkan kelasyanglebihkhusus, dimana kelas khusus tersebutmendapat warisanatribut dan method yang ada pada kelas umum. Gambardiatasmerupakancontohdaripewarisansifat.Simbolsegitigatersebutmenandakan inheritance/penurunansifat.TerdapatsebuahkelasGeometricObject,dimanakelastersebut mewariskan atribut dan methodnya pada kelas Circle dan Rectangle. Dalam kasus ini, Circle dan Rectanglemerupakan kelas khusus dari kelas GeometricObjectyang akan disebut dengan kelas anakatausubclass.KelasGeometricObjectmerupakankelasindukataudisebutjugadengan superclass.SepertiyangtelahdisebutkanbahwakonsepOOPmenerapakanencapsulation,makaterdapat beberapatipeaksesyangakanberpengaruhterhadappengaksesandataataumethoddalam sebuah kelas. Berikut adalah access modifier atau yang disebut dengan visibility modifier: 1.Private Menyembunyikanmemberdarikelastersebutsehinggatidakdapatdiaksesdarikelas manapunkecualikelasitusendiri.contohnyaketikaAndamembuatsebuahatributatau methodbertipeprivate,atributdanmethodtersebuttidakdapatdigunakanolehkelas anak. Hanya kelas itu sendiri yang dapat menggunakannya. 2.Protected Memberikanhakaksespadamemberdarikelastersebutsehinggadapatdiaksesoleh kelas itu sendiri dan kelas turunannya.3.Public Member dalam kelas dapat diakses oleh kelas lainnya. 4.Package 1446T - Algorithm and Programming Packagedigunakanuntukmengorganisasikankelas-kelasyangAndabuat.Bilakelas yangAndabuattidakAndamasukkankedalampackage,makakelastersebutakan berada pada default package.Contoh dari penerapan inheritance adalah sebagai berikut: public class Bicycle { // the Bicycle class has three fields public int cadence; public int gear; public int speed; // the Bicycle class has one constructor public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } // the Bicycle class has four methods public void setCadence(int newValue) { cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } } TerdapatsebuahkelasBicycle,yangterdiridari3atribut,yaitucadence,geardanspeed. Kemudiandidalamkelastersebutjugaterdapatsebuahconstructoryangakanmenerimatiga parameterbertipeinteger,dimanamasing-masingdarinilaiyangdikirimkanketikaobjek tersebutdibuatadalahuntukmemberikannilaiawalpadaatribut-atributyangada(candence, geardanspeed).Didalamkelasinijugaterdapatempatbuahmethod/behaviour,yaitu setCandence,setGear,applyBrake,danspeedUp.MethodsetGeardansetCandenceakan menerimasebuahparameterketikamethodtersebutdipanggil.Nilaidariatributgeardan candence akan diubah sesuai dengan nilai parameter yang diterima pada fungsi setCandence dan setGear tersebut.1446T - Algorithm and Programming Selainitu terdapat dua buahmethodlainnya dimana keduamethod tersebut akanmerubahnilai dariatributspeed.KetikafungsiapplyBrakedipanggil,makanilaidarispeedakandikurangi sebanyakdengannilaiparameteryangdikirimkan.Sebaliknya,bilamethodspeedUpdipanggil makanilaidariatributspeedakanditambahkansesuaidengannilaiparameteryangdikirimkan tersebut.Berikut ini adalah kelas khusus / kelas turunan dari kelas Bicycle diatas. public class MountainBike extends Bicycle { // the MountainBike subclass adds one field public int seatHeight; // the MountainBike subclass has one constructor public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) { super(startCadence, startSpeed, startGear); seatHeight = startHeight; } // the MountainBike subclass adds one method public void setHeight(int newValue) { seatHeight = newValue; }} Untukmenerapkankonseppewarisan/inheritance,Andadapatmenggunakankeywordextends. PadakelasMountainBikediatasdiketahuibahwakelastersebutmerupakakelasturunandari kelasBicycle.KelasMountainBikemerupakansalahsatujeniskhususdarikelasBicycledi dunianyata,dimanaatributdanfungsiyangadapadakelasBicyclepadaumumnyapastiakan adadikelasMountainBike.Olehkarenaitudilakukaninheritanceuntukmenghindaripenulisan atribut ataupun fungsi yang berulang pada kelas MountainBike.Hakakses/accessmodifieryangdigunakanpadacontohkelasBicyclediatasadalahpublic, sehingga kelas turunan dari kelasBicycle pastimewarisiatribut danmethod dari kelasBicycle. Dalamhalini,kelasMountainBikemempunyaiatributcadence,geardanspeed,sertafungsi setCandence, setGear, applyBrake dan speedUp. Yang membedakan kelas Bicycle (sepeda pada umumnya)dengankelasMountainBike(sepedagunung)adalahadanyatambahanatribut seatHeightdansebuahfungsitambahanuntukmengaturnilaiketinggiantempatduduk tersebut (setHeight). 1446T - Algorithm and Programming Polymorphism Polymorphismterjadiketikasebuahmethodmemilikibanyakimplementasidaribehaviour tersebut. Polymorphism juga dapat diartikan dimana sebuah objek dapat memiliki lebih dari satu bentukpadasaatpengimplementasiannya.Halinimenyediakankeuntunganpadaprogrammer untuk mengembangkan fleksibilitas dari program yang dibuat.Dalammateriyanglalusudahdibahasmengenaimethodoverloading,dimanasebuahmethod mempunyainamayangsamadenganparamaterataureturnvalueyangberbeda.Selainmethod overloading, adayang disebut denganmethod overriding, dimanasebuahfungsimemilikinama yangsamatetapiisidarifungsitersebutberbeda.Baikmethodoverloadingmaupunoverriding merupakan contoh dari polymorphism.LihatlahpadacontohpolymorphismsederhanadibawahiniyangsamadengankelasBicycle padacontohinheritancediatas,hanyasajaterdapatsebuahnamafungsitambahanyaitufungsi printDescription(). public class Bicycle { // the Bicycle class has three fields public int cadence; public int gear; public int speed; // the Bicycle class has one constructor public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } // the Bicycle class has four methods public void setCadence(int newValue) { cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; }

public void printDescription(){ 1446T - Algorithm and Programming System.out.println("\nBike is " + "in gear " + this.gear + " with a cadence of " + this.cadence + " and travelling at a speed of " + this.speed + ". "); } } KemudianpadakelasMountainBikeyangmerupakankelasturunandarikelasBicyclediatas memiliki fungsi printDescription dengan isi/definisi yang berbeda dengan kelas induknya. public class MountainBike extends Bicycle { private String suspension; public MountainBike( int startCadence, int startSpeed, int startGear, String suspensionType){ super(startCadence, startSpeed, startGear); this.setSuspension(suspensionType); } public String getSuspension(){ return this.suspension; } public void setSuspension(String suspensionType) { this.suspension = suspensionType; } public void printDescription() { super.printDescription(); System.out.println("The " + "MountainBike has a" + getSuspension() + " suspension."); } } PadacontohMountainBikediatastelahterjadioverridingpadafungsiprintDescription. Demikian juga dengan kelas turunan lainnya dari kelas Bicycle seperti contoh dibawah ini. public class RoadBike extends Bicycle{ // In millimeters (mm) private int tireWidth; public RoadBike(int startCadence, int startSpeed, int startGear, 1446T - Algorithm and Programming int newTireWidth){ super(startCadence, startSpeed, startGear); this.setTireWidth(newTireWidth); } public int getTireWidth(){ return this.tireWidth; } public void setTireWidth(int newTireWidth){ this.tireWidth = newTireWidth; } public void printDescription(){ super.printDescription(); System.out.println("The RoadBike" + " has " + getTireWidth() + " MM tires."); } } 1446T - Algorithm and Programming SIMPULAN 1.Konsepobjectorientedprogrammingmerupakancarauntukmembuatprogram berorientasikan objek. 2.Kelas dapat didefinisikansebaai sebuahblueprint, dimana objekmerupakan representasi dari kelas tersebut. 3.Kelas terdiri dari atribut dan fungsi. 4.Encapsulation,inheritancedanpolymorphismmerupakantigaunsurdasaryangada dalam penerapan pemograman berorientasikan objek. 5.Inheritance merupakan pewarisan sifat dari kelas induk ke kelas turunannya. Atribut dan method yang ada didalam kelas induk akan dimiliki juga oleh kelas turunannya. 6.Ada 4 macam access modifier, yaitu private, protected, public dan package. 7.Polymorphismadalahkemapuandarisebuahobjekyangdapatmemilikibanyakbentuk dalam pengeksekusiannya.8.BaikInheritancemaupunPolymorphismdilakukanuntukmenghindariperulangan penulisan atribut atau method yang sama. 1446T - Algorithm and Programming DAFTAR PUSTAKA 1.DanielLiang,Y.,2011,Introductiontojavaprogramming,vol.08,PearsonEducation, New Jersey. Chapter 7, 9, 10.2.http://java.sun.com/docs/books/tutorial/java/concepts/index.html3.http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html 4.http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html