1 / 93

Object Oriented Programming With Java

By : Winzaldi Java Programmer EDI I ndonesia. Object Oriented Programming With Java. Konsep O O P. Intro O O P. OOP adalah sebuah paradigma / cara pandang pemograman Salah satu cara untuk menggam barkan struktur dari aplikasi

bin
Download Presentation

Object Oriented Programming With Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. By : Winzaldi Java Programmer EDI Indonesia ObjectOriented ProgrammingWithJava

  2. KonsepOOP

  3. Intro OOP • OOP adalahsebuahparadigma/carapandangpemograman • Salahsatucarauntukmenggambarkanstrukturdariaplikasi • Paradigmaselain OOP - Procedural,Functionaldan lain-lain • Sekarang OOP menjadiparadigmapemograman yang popular - Java - PHP 5 - C# - C++

  4. KeuntunganOOP • Reuseability- Once you written code, you can reuse it! • Management- Aplikasi yang diprogrammenggunakankelas-kelasdanobjek.objek-objek yang salingberkomuniskasi. • Maintenance- ketikakitamelakukanperubahan code, makatidakakanmempengaruhiseluruhbagiandariaplikasi

  5. KonsepDasar : Objek • Di dunianyata, duniaterdiriatasobjek-objek.- mobil-mobil,bangunan-bangunan,pepohonan,manusia, bungadan lain-lain. • Biasanyasetiapobjekmempunyaiperilaku/aksi • (fungsi-fungsi) yang mempengaruhiobjek lain. - agusmengendaraibmw - objekagusmempengaruhiobjekbmw. - agus.mengendarai(bmw); • Dan Objekmempunyaiatribut-atribut. - bmwmempunyaigears,warna,kacaspiondan lain-lain.

  6. ContohObjek • Mobil BMW • Mobil BMW memilikibebarapaperilaku/aksi : - melaju- berhenti- tambahkecepatan”- dan lain-lain • Mobil BMW memilikiinformasiatauatribut-atribut.- warna,jumlahgears,jumlahpintudan lain-lain.

  7. KonsepDasar : Kelas • Kelasadalahsebuah blue print ataucetakandarisebuahobjek. • Kelasmenggambarkanstate/atributdanperilaku/aksiobjek. • ObjekdibentukdariKelas

  8. ContohKelas • Jika BMW adalahObjekMakaKelasnyaadalahMobil • Jikakitainginmembuatobjek BMW makakitaharusmempunyai blue print/ cetakandari BMW • Blue print/ CetakandariObjek : Mobil • KelasMobil -> Objek BMW

  9. Contoh : Kelas > Objek

  10. Mobil merk mesin jumlahPintu warna jumlahRoda … … Mobil Blueprint (Kelas) di UML

  11. datsun Mobil Datsun 100A 1.0 3 red 4 merk tipeMesin jumlahPintu warna jumlahRoda … … lambo Lamborghini Diablo 8.0 3 red 4 KelaskeObjek

  12. KelasdanObjekdiJava

  13. Orang namaAwal namaAkhir umur pekerjaan noTelpon Makan() Tidur() minumTeh() KelasOrang > Objek Iwan Iwan Mahmud 25 guru 021-12345 makan tidur minumTeh Zaki zaki Hasan 30 Programmer Java 021-654321

  14. Orang namaAwal namaAkhir umur pekerjaan noTelpon makan tidur minumTeh Orang – Kelas > Java class Orang { public String namaAwal; public String namaAkhir; public int age; public String pekerjaan; public String noTelpon; public void makan() { System.out.println(“Makan ..yummy!"); } public void tidur() { System.out.println(“LagiTidur!"); } public void minumTeh() { System.out.println(“MinumTeh!"); } }

  15. Teskelasorang.bisanyaapplikasidimulaidarimain-method class Orang { .... } class JustTesting { public static void main(String [] args) { // Declare the object Orang jack; // Initialize the object jack = new Orang(); jack.namaAwal = "Jack"; jack.namaAkhir = "Smith"; jack.minumTeh(); System.out.println(“nama : ” + jack.namaAwal); } }

  16. Contoh: Kelas -Mobil class Mobil { public String merk; public intjumlahMinyak; public void jalan() { jumlahMinyak--; } }

  17. class Mobil { .... } class JustTesting { public static void main(String [] args) { • Mobil datsun = new Mobil(); datsun.jumlahMinyak = 100; datsun.jalan(); System.out.println(datsun.jumlahMinyak); • Mobil ferrari = new Mobil(); ferrari.jumlahMinyak = 300; ferrari.jalan(); System.out.println(ferrari.jumlahMinyak); } }

  18. private public method KonsepDasar - Enkapsulasi

  19. Tentang Atribut • Atribut-atribut biasa dibuat private • Agar objek lain tidak bisa merubah sewenang-wenang • Misalnya, Anda tidak ingin bahwa setiap benda di dunia bisa mengubah berat badan seseorang untuk 500kg

  20. Contoh: KelasOrang class Orang { private String nama; private intberat; }

  21. class Orang { private String nama; private intberat; } class JustTesting { public static void main(String [] args) { Orang jack = new Orang(); jack.nama = "Jack Smith"; jack.berat = 500; } } RESULT: TB308POHJUS-L-2:temp pohjus$ javac Orang.java Orang.java:9: nama has private access in Orang jack.nama = "Jack Smith"; ^ Orang.java:10: berat has private access in Orang jack.berat = 500; ^ 2 errors

  22. class Person { private String nama; private int weight; public void setnama(String n) { nama = n; } public String getnama() { return nama; } public void setWeight(int w) { if(w > 0 && w <= 150) weight = w; } public intgetWeight() { return weight; } } class JustTesting { public static void main(String [] args) { Person jack = new Person(); jack.setnama("Jack Smith"); jack.setWeight(200); System.out.println(jack.getnama()); } }

  23. Accessor and Mutator - methods class Orang { private String nama; private intberat; // Mutator public void setNama(String n) { nama = n; } // Accessor public String getNama() { return nama; } // Mutator public void setBerat(int w) { if(w > 0 && w <= 150) berat = w; } // Accessor public intgetBerat() { return berat; } }

  24. Tipe-tipediJava

  25. Tipe-tipedi Java • Tipe-tipedi java • 1) Primitive types • byte, short, int, long, double, float, char, boolean • 2) Class(Kelas) types • String, Scanner, Array, JButton, JFrame ...

  26. Perbedaanya • Tipe2 primitifditulis dg hurufkecildiawal: • int, double, float... • Tipe2 kelasditulis dg hurufbesardiawal • String, Scanner, Person, Cat, Mobil ... • Deklarasidaninisialisasi • int a = 5; • TipeKelasdeklarasidaninisialisasidengannew • Orangiwan= newOrang();

  27. Perbedaan • TipePrimitif • int a = 5; • TipeKelas • int [] b= new int[5]; • b menampungalamatdi memory • a menampungnilai 5.

  28. Alamatdi memory ? int [] b = new int[2]; b[0] = 1; b[1] = 2; // prints 0x01 System.out.println(b); RAM variabelb

  29. Alamatdi memory? int [] b = new int[2]; b[0] = 1; b[1] = 2; int [] a = b; // prints 0x01 System.out.println(b); // prints 0x01 System.out.println(a); RAM variabelb variabela

  30. Output? int [] b = new int[2]; b[0] = 1; b[1] = 2; int [] a = b; b[0] = 99; // Output? System.out.println(a[0]);

  31. PerbedaanLagi • TipePrimitif • int a = 5; • TipeKelas • int [] b= new int[5]; • b menampungalamatdi memory • a menampungnilai 5.

  32. Output? • Orang jack = new Orang(); • jack.setNama("Jack Smith"); • Orangjames = jack; • james.setNama("James Bond"); • // output? • System.out.println(jack.getNama());

  33. Methods and Variables public void method(int x) { x++; } public void main(String [] args) { int y = 3; method(y); // Output nya3! System.out.println(y); }

  34. Methods and Variables public void method(int [] x) { x[0] = 12; } public void main(String [] args) { int [] y = {1,2,3}; method(y); // Output nya12 karna array termasuktipekelas! System.out.println(y[0]); }

  35. * String • String adalahsebuahpengecualiandaritipekelas. • String adalahtipekelas yang perlakuannyasepertitipeprimitif. • String adalahtipekelas yang hanyabisadiinisialisasitanpakatanew. • String a = "hello"; • String diperlakukansebagaipassed by value didalammethod,sehingga String adalahcopianketika String dilewatkandidalam method.

  36. StringdanMemori • Variable stringadalahobjek=> manampungalamatdimemori. • MembandingkanisidarivariabelString • a.equals(b); • Membandingkanalamatdimemori • a == b

  37. Constructor (Konstruktor)

  38. Konstruktor • Konstruktoradalahsebuah “init method” yang dipanggilketikaobjekdiciptakan. • Java menyediakan default konstruktortanpa parameter. • Konstruktormempunyanama yang samadengannamakelas. • Konstruktortidakmengembalikanapapun. • hanyamempunyai access modifer, tidakada keyword lain yang diletakkansebelumnama method padadeklarasi constructor

  39. Example class Mobil { public Mobil() { System.out.println(“Konstruktor!"); } } class Test { public static void main(String [] args) { Mobil ferrary = new Mobil(); } } > java Test Konstruktor!

  40. > java Test Datsun 100A class Mobil { private String merk; public Mobil(String b) { merk = b; } public String getMerk() { return merk; } } class Test { public static void main(String [] args) { Mobil datsun = new Mobil("Datsun 100A"); System.out.println( datsun.getMerk() ); } }

  41. Multiple Konstruktor class Mobil { public Mobil() { // Do something } public Mobil(String merk) { // Do something else } } class Test { public static void main(String [] args) { Mobil datsun = new Mobil(); Mobil ferrari = new Mobil("Ferrari"); } }

  42. Masalah ? class Mobil { String merk; public Mobil(String merk) { merk = merk; } } class Test { public static void main(String [] args) { Mobil datsun = new Mobil("Datsun 100a"); } } > java Test null

  43. Solusi class Mobil { String merk; public Mobil(String merk) { this.merk = merk; } } class Test { public static void main(String [] args) { Mobil datsun = new Mobil("Datsun 100a"); } } > java Test Datsun 100a

  44. KOMPOSISI

  45. Komposisi • Hubunganantaraobjek-objek,dimanasuatuobjekmemilikiobjek lain. • Dimanaobjekkeduatidakbisaberdirisendiritanpaobjekpertama. • Mobil memilikiMesin • KetikakitamencipatkanMobil,berartikitajugamencipatkanmesin. • Ketika Mobil dihancurkanberartimesinjugadihancurkan.

  46. Notasi UML Mobil Mesin

  47. Java: Komposisi // Komposisi class Mobil { private Mesinmesin; public Mobil() { mesin = new Mesin(); } }

  48. One to Many (SatukeBanyak)? Departemen 1..20 Professor

  49. Java: One to Many class Departemen { private Professor [] anggota; private intjumlahAnggota; public Departemen(Professor prof) { anggota = new Professor[20]; anggota[0] = prof; jumlahAnggota = 1; } public void addProfessor(Professor prof) { anggota[jumlahAnggota] = prof; jumlahAnggota++; } }

  50. Inheritance (Pewarisan)

More Related