Jeni konsep oop

3,162
-1

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,162
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
150
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Jeni konsep oop

  1. 1. Review Konsep Dasar Java Pengenalan Pemrograman 2 Versi 2.0
  2. 2. Topik Konsep Object-Oriented Struktur Program Java
  3. 3. Konsep Object-Oriented Konsep Object-Oriented ◦ Terfokus pada object dan class, berdasarkan skenario pada dunia nyata ◦ Mendeskripsikan state, behavior dan interaction pada object ◦ Keuntungan :  Pengembangan lebih cepat  Meningkatkan kualitas  Penanganan lebih mudah  Dapat dimodifikasi  Meningkatkan karakter reusable pada software Class ◦ Digunakan untuk mendefinisikan tipe data baru ◦ Blueprint
  4. 4. Konsep Object-Oriented Object ◦ Sebuah entitas yang memiliki state, behavior dan identity ◦ Contoh nyata dari sebuah class ◦ Dibuat pada saat class di-instantiate menggunakan keyword new ◦ Contoh: pada Sistem registrasi siswa Attribut ◦ Elemen data dari sebuah object ◦ Menyimpan informasi tentang object ◦ Alias dari atribut : Data member, instance variable, property, data field ◦ Contoh: pada Sistem registrasi siswa
  5. 5. Konsep Object-Oriented Method Menyatakan sifat dari sebuah object ◦ Disebut juga fungsi atau prosedur ◦ Contoh: pada Sistem registrasi siswa ◦ Konstruktor Menyerupai method ◦ Untuk membuat dan menginisialisasi sebuah object baru ◦ Bukan merupakan anggota dari sebuah object ◦
  6. 6. Konsep Object-Oriented Package Pengelompokan class atau subpackage ◦ Fungsinya sama seperti direktori ◦ Enkapsulasi Suatu prinsip penyembunyian desain atau pengimplementasian informasi yang tidak sesuai pada object yang ada ◦ Abstraksi Mengabaikan aspek dari subjek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak ◦ mengkonsentrasikan yang ada
  7. 7. Konsep Object-Oriented Pewarisan ◦ Hubungan antara class dimana dalam satu class ada superclass atau class induk dari class yang lain ◦ Mengarah pada properi dan sifat yang diterima dari asalnya ◦ Dikenal juga dengan hubungan "is-a" SuperHero FlyingSuperHero UnderwaterSuperHero
  8. 8. Konsep Object-Oriented  Polymorfisme ◦ "poly" berarti banyak sedangkan "morph" berarti bentuk ◦ Kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda  Interface ◦ Sebuah contract dalam bentuk kumpulan method dan deklarasi konstanta ◦ Mengimplementasikan janji pada class untuk mengikuti contract
  9. 9. Struktur Program Java : Deklarasi Class  Sintaks ◦ <classDeclaration> ::= ◦ <modifier> class <name> { ◦ <attributeDeclaration>* ◦ <constructorDeclaration>* ◦ <methodDeclaration>* ◦ } ◦ dimana ◦ Modifier  Mengacu pada access modifier atau type lain dari modifier ◦ Name  Sebuah identifier pada nama kelas
  10. 10. Struktur Program Java : Deklarasi Class 1 class SuperHero { 2 String superPowers[]; 3 void setSuperPowers(String superPowers[]) { 4 this.superPowers = superPowers; 5 } 6 void printSuperPowers() { 7 for (int i = 0; i < superPowers.length; i++) { 8 System.out.println(superPowers[i]); 9 } 10 } 11 }
  11. 11. Struktur Program Java : Deklarasi Attribut Sintaks: ◦ <attributeDeclaration> ::= ◦ <modifier> <type> <name> [= <default_value>]; ◦ <type> ::= ◦ byte | short | int | long | char | float | double | boolean | <class>
  12. 12. Struktur Program Java : Deklarasi Attribut 1 public class AttributeDemo { 2 private String studNum; 3 public boolean graduating = false; 4 protected float unitsTaken = 0.0f; 5 String college; 6 }
  13. 13. Struktur Program Java : Deklarasi Method  Sintaks: ◦ <methodDeclaration> ::= ◦ <modifier> <returnType> <name>(<parameter>*) { ◦ <statement>* ◦ } ◦ <parameter> ::= ◦ <parameter_type> <parameter_name>[,]
  14. 14. Struktur Program Java : Deklarasi Method 1 class MethodDemo { 2 int data; 3 int getData() { 4 return data; 5 } 6 void setData(int data) { 7 this.data = data; 8 } 9 void setMaxData(int data1, int data2) { 10 data = (data1>data2)? data1 : data2; 11 } 12 }
  15. 15. Struktur Program Java : Deklarasi Konstruktor  Sintaks: ◦ <constructorDeclaration> ::= ◦ <modifier> <className> (<parameter>*) { ◦ <statement>* ◦ } ◦ dimana ◦ Modifier  Dapat berupa beberapa acces modifier tetapi bukan tipe modifier lainnya.  Konstruktor secara default ◦ Tidak mempunyai argumen ◦ Tidak memiliki isi
  16. 16. Struktur Program Java : Deklarasi Method 1 class ConstructorDemo { 2 private int data; 3 public ConstructorDemo() { 4 data = 100; 5 } 6 ConstructorDemo(int data) { 7 this.data = data; 8 } 9 }
  17. 17. Struktur Program Java : Instansiasi Kelas  Syntax: ◦ new <constructorName>(<parameters>)  Contoh: 1.class ConstructObj { 2. int data; 3. ConstructObj() { 4. /* initialize data */ 5. } 6. public static void main(String args[]) { 7. ConstructObj obj = new ConstructObj(); 8. } 9.}
  18. 18. Struktur Program Java : Mengakses Anggota Objek  Notasi titik: ◦ <object>.<member>  Contoh: ◦ String myString = new String(“My String”); ◦ //Access length method ◦ System.out.println(“Length: ” + myString.length()); ◦ int intArr = {1, 2, 3, 4, 5}; ◦ //Access length attribute ◦ System.out.println(“Length: ” + intArr.length);
  19. 19. Struktur Program Java : Mengakses Anggota Object 1 class ConstructObj { 2 int data; 3 ConstructObj() { 4 /* initialize data */ 5 } 6 void setData(int data) { 7 this.data = data; 8 } 9 public static void main(String args[]) { 10 ConstructObj obj = new ConstructObj(); 11 obj.setData = 10; //access setData() 12 System.out.println(obj.data);//access data 13 } 14 }
  20. 20. Struktur Program Java : Package  Sintaks untuk indikasi bahwa kode dimiliki oleh sebuah package: ◦ <packageDeclaration> ::= ◦ package <packageName>;  Sintaks untuk mengimpor package lainnya: ◦ <importDeclaration> ::= ◦ import <packageName.elementAccessed>;  Format Source code: ◦ [<packageDeclaration>] ◦ <importDeclaration>* ◦ <classDeclaration>+
  21. 21. Struktur Program Java : Package 1 package registration.reports; 2 import registration.processing.*; 3 import java.util.List; 4 import java.lang.*; //imported by default 5 class MyClass { 6 /* details of MyClass */ 7 }
  22. 22. Struktur Program Java : Access Modifier
  23. 23. Struktur Program Java : Enkapsulasi  Menyembunyikan anggota dengan membuatnya private  Contoh 1. class Encapsulation { 2. private int secret; 3. public boolean setSecret(int secret) { 4. if (secret < 1 || secret > 100) 5. return false; 6. this.secret = secret; 7. return true; 8. } 9. public getSecret() { 10. return secret; 11. } 12.}
  24. 24. Struktur Program Java : Pewarisan Membuat class anak atau subkelas: ◦ Menggunakan extends dalam mendeklarasikan class ◦ Sintaks:  class <childClassName> extends <parentClassName> Sebuah class hanya dapat meng-extend satu class induk
  25. 25. Struktur Program Java : Pewarisan 1.import java.awt.*; 2.class Point { 3. int x; 4. int y; 5.} 6.class ColoredPoint extends Point { 7. Color color; 8.}
  26. 26. Struktur Program Java : Method Overriding  subclass mendefinisikan method yang bertanda serupa ke method dalam superclass  Tanda pada sebuah method ◦ informasi yang ditemukan dalam definisi method bagian atas  Return type  Nama method  Daftar Parameter pada method  Berbeda dengan method overloading!
  27. 27. Struktur Program Java : Method Overriding 1. class Superclass { 2. void display(int n) { 3. System.out.println("super: " + n); 4. } 5. } 6. class Subclass extends Superclass { 7. void display(int k) { 8. System.out.println("sub: " + k); 9. } 10.} 11.// continued...
  28. 28. Struktur Program Java : Method Overriding 14.class OverrideDemo { 15. public static void main(String args[]) { 16. Subclass SubObj = new Subclass(); 17. Superclass SuperObj = SubObj; 18. SubObj.display(3); 19. ((Superclass)SubObj).display(4); 20. } 21.}
  29. 29. Struktur Program Java : Method Overriding  Pemanggilan method ◦ Ditentukan oleh tipe data sebenarnya dari object yang diminta method  Access modifier untuk method yang dibutuhkan tidak harus sama ◦ Access modifier pada method overriding  Access modifier yang sama seperti pada method overridden  Access modifier lebih luas
  30. 30. Struktur Program Java : Method Overriding 1. class Superclass { 2. void overriddenMethod() { 3. } 4. } 5. class Subclass1 extends Superclass { 6. public void overriddenMethod() { 7. } 8. } 9. class Subclass2 extends Superclass { 10. void overriddenMethod() { 11. } 12.} 13.//continued...
  31. 31. Struktur Program Java : Method Overriding 14./* class Superclass { 15. void overriddenMethod() { 16. } 17.} */ 18.class Subclass3 extends Superclass { 19. protected void overriddenMethod() { 20. } 21.} 22.class Subclass4 extends Superclass { 23. private void overriddenMethod() { 24. } 25.}
  32. 32. Struktur Program Java : class abstract dan method  Sintaks: ◦ abstract <modifier> <returnType> <name>(<parameter>*);  Sebuah class yang berisi method abstract harus dideklarasikan sebagai sebuah class abstract. ◦ abstract class <name> { ◦ /* constructors, fields and methods */ ◦}
  33. 33. Struktur Program Java : class abstract dan method  Kata kunci abstract tidak dapat digunakan pada : ◦ konstruktor ◦ Method static  class abstract tidak dapat diinstansiasi  Class yang meng-extends sebuah class abstract : ◦ harus mengimplementasikan semua method abstract ◦ Sebaliknya, subclass sendiri harus dideklarasikan sebagai abstract
  34. 34. Struktur Program Java : class abstract dan method 1. abstract class SuperHero { 2. String superPowers[]; 3. void setSuperPowers(String superPowers[]) { 4. this.superPowers = superPowers; 5. } 6. void printSuperPowers() { 7. for (int i = 0; i < superPowers.length; i++) { 8. System.out.println(superPowers[i]); 9. } 10. } 11. abstract void displayPower(); 12.} 13.//continued...
  35. 35. Struktur Program Java : class abstract dan method 1. class FlyingSuperHero extends SuperHero { 2. void displayPower() { 3. System.out.println("Fly..."); 4. } 5. } 6. class Spiderman extends SuperHero { 7. void displayPower() { 8. System.out.println("Communicate with sea" + 9. " creatures..."); 10. System.out.println("Fast swimming ability..."); 11. } 12.}
  36. 36. Struktur Program Java : Interface  Sintaks: ◦ <interfaceDeclaration> ::= ◦ <modifier> interface <name> { ◦ <attributeDeclaration>* ◦ [<modifier> <returnType> <name>  (<parameter>*);]* ◦ }  Anggotanya adalah public ketika interface dideklarasikan sebagai public
  37. 37. Struktur Program Java : Interface  Attribut Interface: ◦ Secara implisit static dan final ◦ Harus diinisialisasi  Modifier: ◦ Access modifiers: public, package ◦ Harus diinisialisasi  Mengimplementasikan sebuah interface: ◦ Menggunakan kata kunci implements ◦ Harus mengimplementasikan semua method interface ◦ Sebuah class boleh mengimplementasikan lebih dari satu interface
  38. 38. Struktur Program Java : Interface 1. interface MyInterface { 2. void iMethod(); 3. } 4. class MyClass1 implements MyInterface { 5. public void iMethod() { 6. System.out.println("Interface method."); 7. } 8. void myMethod() { 9. System.out.println("Another method."); 10. } 11.} 12.//continued...
  39. 39. Struktur Program Java : Interface 14.class MyClass2 implements MyInterface { 15. public void iMethod() { 16. System.out.println("Another implementation."); 17. } 18.} 19.class InterfaceDemo { 20. public static void main(String args[]) { 21. MyClass1 mc1 = new MyClass1(); 22. MyClass2 mc2 = new MyClass2(); 23. mc1.iMethod(); 24. mc1.myMethod(); 25. mc2.iMethod(); 26. } 27.}
  40. 40. Struktur Program Java : kata kunci this  mengapa this? 1. Agar tidak ambigu antara attribut lokal dan variabel lokal 2. Menunjuk pada object yang meminta method non-static 3. Menunjuk pada konstruktor lain
  41. 41. Struktur Program Java : kata kunci this 1. Agar tidak ambigu antara attribut lokal dan variabel lokal 1. class ThisDemo1 { 2. int data; 3. void method(int data) { 4. this.data = data; 5. /* 6. this.data refers to the attribute 7. while data refers to the local variable 8. */ 9. } 10.}
  42. 42. Struktur Program Java : kata kunci this 1. Menunjuk pada object yang meminta method non-static 1. class ThisDemo2 { 2. int data; 3. void method() { 4. System.out.println(data); //this.data 5. } 6. void method2() { 7. method(); //this.method(); 8. } 9. }
  43. 43. Struktur Program Java : kata kunci this  Method Overloading ◦ Metode berbeda dalam sebuah kelas membagi nama yang sama ◦ Daftar parameter harus berbeda  Jumlah parameter  Tipe parameter ◦ Konstruktor dapat juga menjadi overload ◦ Contoh:  class MyClass {  void myMeth() {}  void myMeth(int i) {}  void myMeth(int i, int j) {} }
  44. 44. Struktur Program Java : kata kunci this  menunjuk versi lain dari konstruktor 1. class ThisDemo3 { 2. int data; 3. ThisDemo3() { 4. this(100); 5. } 6. ThisDemo3(int data) { 7. this.data = data; 8. } 9. }
  45. 45. Struktur Program Java : kata kunci super  Berhubungan dengan pewarisan ◦ Digunakan untuk meminta konstruktor superclass ◦ Dapat digunakan seperti kata kunci this untuk menunjuk pada anggota dari superclass  Memanggil konstruktor superclass 1. class Person { 2. String firstName; 3. String lastName; 4. Person(String fname, String lname) { 5. firstName = fname; 6. lastName = lname; 7. } 8. }
  46. 46. Struktur Program Java : kata kunci super 9. //continuation... 10.class Student extends Person { 11. String studNum; 12. Student(String fname, String lname, String sNum) { 13. super(fname, lname); 14. studNum = sNum; 15. } 16.}  super() ◦ Menunjuk pada superclass dengan segera ◦ Harus berada pada pernyataan pertama dalam konstruktor superclass
  47. 47. Struktur Program Java : kata kunci super  Menunjuk anggota superclass 1. class Superclass{ 2. int a; 3. void display_a(){ 4. System.out.println("a = " + a); 5. } 6. } 7. //continued...
  48. 48. Struktur Program Java : kata kunci super 9. class Subclass extends Superclass { 10. int a; 11. void display_a(){ 12. System.out.println("a = " + a); 13. } 14. void set_super_a(int n){ 15. super.a = n; 16. } 17. void display_super_a(){ 18. super.display_a(); 19. } 20.}
  49. 49. Struktur Program Java : kata kunci super 21.class SuperDemo { 22. public static void main(String args[]){ 23. Superclass SuperObj = new Superclass(); 24. Subclass SubObj = new Subclass(); 25. SuperObj.a = 1; 26. SubObj.a = 2; 27. SubObj.set_super_a(3); 28. SuperObj.display_a(); 29. SubObj.display_a(); 30. SubObj.display_super_a(); 31. System.out.println(SubObj.a); 32. } 33.}
  50. 50. Struktur Program Java : kata kunci static  Digunakan untuk anggota dari sebuah class : ◦ attribut ◦ Method ◦ Inner class  Mengijinkan untuk mengakses static atau anggota class tanpa instansiasi  Variabel class ◦ Bersifat seperti variabel global ◦ Dapat diakses oleh semua instance dari kelas
  51. 51. Struktur Program Java : kata kunci static  Method class ◦ Dapat diambil tanpa membuat sebuah object dari class tersebut ◦ Hanya dapat mengakses anggota static dari class ◦ tidak dapat menunjuk pada this dan super  Blok static ◦ Hanya dapat dieksekusi sekali, ketika kelas diisi ◦ Untuk inisialisasi variabel class
  52. 52. Struktur Program Java : kata kunci static 1. class Demo { 2. static int a = 0; 3. static void staticMethod(int i) { 4. System.out.println(i); 5. } 6. static { //static block 7. System.out.println("static block"); 8. a += 1; 9. } 10.} 11.//continued...
  53. 53. Struktur Program Java : kata kunci static 13.class StaticDemo { 14. public static void main(String args[]) { 15. System.out.println(Demo.a); 16. Demo.staticMethod(5); 17. Demo d = new Demo(); 18. System.out.println(d.a); 19. d.staticMethod(0); 20. Demo e = new Demo(); 21. System.out.println(e.a); 22. d.a += 3; 23. System.out.println(Demo.a+", "+d.a+", "+e.a); 24. } 25.}
  54. 54. Struktur Program Java : kata kunci final  Dapat diaplikasikan pada variabel, method dan class  Dibatasi apa yang kita dapat lakukan dengan variabel, method dan class.  Variabel final ◦ Tidak dapat diubah setelah nilainya diset ◦ contoh:  final int data = 10;  data++;
  55. 55. Struktur Program Java : kata kunci final  Method final ◦ Tidak dapat di-override ◦ contoh:  final void myMethod() { //in a parent class }  void myMethod() { //in a child class }  Class final ◦ Tidak dapat diwariskan ◦ contoh:  final public class MyClass {}  class WrongClass extends MyClass {}
  56. 56. Struktur Program Java : kata kunci final  Katakunci dapat diletakkan sebelum setelah modifier lain ◦ public final static void meth() {} or ◦ final public static void meth() {} or ... ◦ //order of modifiers is not important
  57. 57. Struktur Program Java : Inner Classes  Dideklarasikan dalam class lain  Mengakses anggota dari inner class : ◦ Membutuhkan sebuah instance dari inner class ◦ Example:  innerObj.innerMember = 5;  //innerObj is an instance of the inner class  //innerMember is a member of the inner class
  58. 58. Struktur Program Java : Inner Classes  Method-method dari inner class dapat secara langsung mengakses anggota dari outer class contoh: 1.class Out { 2. int OutData; 3. class In { 4. void inMeth() { 5. OutData = 10; 6. } 7. } 8.}
  59. 59. Struktur Program Java : Inner Classes 1. class OuterClass { 2. int data = 5; 3. class InnerClass { 4. int data2 = 10; 5. void method() { 6. System.out.println(data); 7. System.out.println(data2); 8. } 9. } 10.//continued...
  60. 60. Struktur Program Java : Inner Classes 9. public static void main(String args[]) { 10. OuterClass oc = new OuterClass(); 11. InnerClass ic = oc.new InnerClass(); 12. System.out.println(oc.data); 13. System.out.println(ic.data2); 14. ic.method(); 15. } 16.}
  61. 61. Kesimpulan  Konsep Object-Oriented ◦ Desain Object-Oriented ◦ Class ◦ Object ◦ Attribut − Package ◦ Method ◦ Konstruktor − Enkapsulasi − Abstraksi − Pewarisan − Polymorfisme − Interface
  62. 62. Kesimpulan  Struktur Program Java ◦ Mendeklarasikan class Java ◦ Mendeklarasikan Attribut ◦ Mendeklarasikan Metode − Pewarisan ◦ Mendeklarasikan konstruktor ◦ Meng-instansiasi sebuah class ◦ Mengakses anggota object − Method Overriding ◦ Package ◦ Access Modifier ◦ Enkapsulasi − Class abstract dan method − Interface − Kata kunci this − Kata kunci super − Kata kunci static − Kata kunci final − Inner Classes
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×