REVIEW KONSEP DASAR JAVA TOPIK Konsep ObjectOriented Struktur
REVIEW KONSEP DASAR JAVA
TOPIK �Konsep Object-Oriented �Struktur Program Java
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
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
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
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
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"
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
STRUKTUR PROGRAM JAVA : DEKLARASI CLASS � Sintaks � <class. Declaration> : : = � <modifier> class <name> { � <attribute. Declaration>* � <constructor. Declaration>* � <method. Declaration>* � } � dimana � Modifier � Mengacu pada access modifier atau type lain dari modifier � Name � Sebuah identifier pada nama kelas
STRUKTUR PROGRAM JAVA : DEKLARASI CLASS 1 2 3 4 5 6 7 8 9 10 11 class Super. Hero { String super. Powers[]; void set. Super. Powers(String super. Powers[]) { this. super. Powers = super. Powers; } void print. Super. Powers() { for (int i = 0; i < super. Powers. length; i++) { System. out. println(super. Powers[i]); } } }
STRUKTUR PROGRAM JAVA : DEKLARASI ATTRIBUT �Sintaks: �<attribute. Declaration> : : = � <modifier> <type> <name> [= <default_value>]; �<type> : : = � byte | short | int | long | char | float | double | boolean | <class>
STRUKTUR PROGRAM JAVA : DEKLARASI ATTRIBUT 1 2 3 4 5 6 public class Attribute. Demo { private String stud. Num; public boolean graduating = false; protected float units. Taken = 0. 0 f; String college; }
STRUKTUR PROGRAM JAVA : DEKLARASI METHOD �Sintaks: �<method. Declaration> : : = � <modifier> <return. Type> <name>(<parameter>*) { � <statement>* � } �<parameter> : : = � <parameter_type> <parameter_name>[, ]
STRUKTUR PROGRAM JAVA : DEKLARASI METHOD class Method. Demo { 2 int data; 3 int get. Data() { 4 return data; 5 } 6 void set. Data(int data) { 7 this. data = data; 8 } 9 void set. Max. Data(int data 1, int data 2) { 10 data = (data 1>data 2)? data 1 : data 2; 11 } 12 } 1
STRUKTUR PROGRAM JAVA : DEKLARASI KONSTRUKTOR � Sintaks: � <constructor. Declaration> : : = � <modifier> <class. Name> (<parameter>*) { � <statement>* � } � dimana � Modifier � Dapat berupa beberapa acces modifier tetapi bukan tipe modifier lainnya. � Konstruktor secara default � Tidak mempunyai argumen � Tidak memiliki isi
STRUKTUR PROGRAM JAVA : DEKLARASI METHOD 1 2 3 4 5 6 7 8 9 class Constructor. Demo { private int data; public Constructor. Demo() { data = 100; } Constructor. Demo(int data) { this. data = data; } }
STRUKTUR PROGRAM JAVA : INSTANSIASI KELAS � Syntax: � new <constructor. Name>(<parameters>) � Contoh: 1. class Construct. Obj { 2. int data; 3. Construct. Obj() { 4. /* initialize data */ 5. } 6. public static void main(String args[]) { 7. Construct. Obj obj = new Construct. Obj(); 8. } 9. }
STRUKTUR PROGRAM JAVA : MENGAKSES ANGGOTA OBJEK � Notasi titik: � <object>. <member> � Contoh: � String my. String = new String(“My String”); � //Access length method � System. out. println(“Length: ” + my. String. length()); � � � int. Arr = {1, 2, 3, 4, 5}; //Access length attribute System. out. println(“Length: ” + int. Arr. length);
STRUKTUR PROGRAM JAVA : MENGAKSES ANGGOTA OBJECT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Construct. Obj { int data; Construct. Obj() { /* initialize data */ } void set. Data(int data) { this. data = data; } public static void main(String args[]) { Construct. Obj obj = new Construct. Obj(); obj. set. Data = 10; //access set. Data() System. out. println(obj. data); //access data } }
STRUKTUR PROGRAM JAVA : PACKAGE � Sintaks untuk indikasi bahwa kode dimiliki oleh sebuah package: � <package. Declaration> : : = � package <package. Name>; � Sintaks untuk mengimpor package lainnya: � <import. Declaration> : : = � import <package. Name. element. Accessed>; � Format Source code: � [<package. Declaration>] � <import. Declaration>* � <class. Declaration>+
STRUKTUR PROGRAM JAVA : PACKAGE 1 2 3 4 5 6 7 package registration. reports; import registration. processing. *; import java. util. List; import java. lang. *; //imported by default class My. Class { /* details of My. Class */ }
STRUKTUR PROGRAM JAVA : ACCESS MODIFIER
STRUKTUR PROGRAM JAVA : ENKAPSULASI � � Menyembunyikan anggota dengan membuatnya private Contoh 1. class Encapsulation { 2. private int secret; 3. public boolean set. Secret(int secret) { 4. if (secret < 1 || secret > 100) 5. return false; 6. this. secret = secret; 7. return true; 8. } 9. public get. Secret() { 10. return secret; 11. } 12. }
STRUKTUR PROGRAM JAVA : PEWARISAN �Membuat class anak atau subkelas: �Menggunakan extends dalam mendeklarasikan class �Sintaks: �class <child. Class. Name> extends <parent. Class. Name> �Sebuah class hanya dapat meng-extend satu class induk
STRUKTUR PROGRAM JAVA : PEWARISAN 1. import java. awt. *; 2. class 3. 4. Point { int x; int y; 5. } 6. class 7. 8. } Colored. Point extends Point { Color color;
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!
STRUKTUR PROGRAM JAVA : METHOD OVERRIDING 1. class 2. 3. 4. Superclass { void display(int n) { System. out. println("super: " + n); } 5. } 6. class 7. 8. 9. Subclass extends Superclass { void display(int k) { System. out. println("sub: " + k); } 10. } 11. // continued. . .
STRUKTUR PROGRAM JAVA : METHOD OVERRIDING 14. class 15. 16. 17. 18. 19. 20. 21. } Override. Demo { public static void main(String args[]) { Subclass Sub. Obj = new Subclass(); Superclass Super. Obj = Sub. Obj; Sub. Obj. display(3); ((Superclass)Sub. Obj). display(4); }
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
STRUKTUR PROGRAM JAVA : METHOD OVERRIDING class Superclass { 2. void overridden. Method() { 3. } 4. } 5. class Subclass 1 extends Superclass { 6. public void overridden. Method() { 7. } 8. } 9. class Subclass 2 extends Superclass { 10. void overridden. Method() { 11. } 12. } 13. //continued. . . 1.
STRUKTUR PROGRAM JAVA : METHOD OVERRIDING 14. /* class Superclass { 15. void overridden. Method() { 16. } 17. } */ 18. class Subclass 3 extends Superclass { 19. protected void overridden. Method() { 20. } 21. } 22. class Subclass 4 extends Superclass { 23. private void overridden. Method() { 24. } 25. }
STRUKTUR PROGRAM JAVA : CLASS ABSTRACT DAN METHOD � Sintaks: � abstract <modifier> <return. Type> <name>(<parameter>*); � Sebuah class yang berisi method abstract harus dideklarasikan sebagai sebuah class abstract. � abstract class <name> { � /* constructors, fields and methods */ �}
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
STRUKTUR PROGRAM JAVA : CLASS ABSTRACT DAN METHOD abstract class Super. Hero { 2. String super. Powers[]; 3. void set. Super. Powers(String super. Powers[]) { 4. this. super. Powers = super. Powers; 5. } 6. void print. Super. Powers() { 7. for (int i = 0; i < super. Powers. length; i++) { 8. System. out. println(super. Powers[i]); 9. } 10. } 11. abstract void display. Power(); 12. } 13. //continued. . . 1.
STRUKTUR PROGRAM JAVA : CLASS ABSTRACT DAN METHOD 1. 2. 3. 4. 5. class Flying. Super. Hero extends Super. Hero { void display. Power() { System. out. println("Fly. . . "); } } class Spiderman extends Super. Hero { 7. void display. Power() { 8. System. out. println("Communicate with sea" + 9. " creatures. . . "); 10. System. out. println("Fast swimming ability. . . "); 11. } 12. } 6.
STRUKTUR PROGRAM JAVA : INTERFACE � Sintaks: � <interface. Declaration> : : = � <modifier> interface <name> { � <attribute. Declaration>* � [<modifier> <return. Type> <name> � (<parameter>*); ]* � } � Anggotanya adalah public ketika interface dideklarasikan sebagai public
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
STRUKTUR PROGRAM JAVA : INTERFACE 1. 2. 3. interface My. Interface { void i. Method(); } class My. Class 1 implements My. Interface { 5. public void i. Method() { 6. System. out. println("Interface method. "); 7. } 8. void my. Method() { 9. System. out. println("Another method. "); 10. } 11. } 12. //continued. . . 4.
STRUKTUR PROGRAM JAVA : INTERFACE 14. class 15. 16. 17. My. Class 2 implements My. Interface { public void i. Method() { System. out. println("Another implementation. "); } 18. } 19. class 20. 21. 22. 23. 24. 25. 26. 27. } Interface. Demo { public static void main(String args[]) { My. Class 1 mc 1 = new My. Class 1(); My. Class 2 mc 2 = new My. Class 2(); mc 1. i. Method(); mc 1. my. Method(); mc 2. i. Method(); }
STRUKTUR PROGRAM JAVA : KATA KUNCI THIS � mengapa this? 1. 2. 3. Agar tidak ambigu antara attribut lokal dan variabel lokal Menunjuk pada object yang meminta method non-static Menunjuk pada konstruktor lain
STRUKTUR PROGRAM JAVA : KATA KUNCI THIS 1. Agar tidak ambigu antara attribut lokal dan variabel lokal 1. class This. Demo 1 { 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. }
STRUKTUR PROGRAM JAVA : KATA KUNCI THIS 1. Menunjuk pada object yang meminta method non-static 1. class This. Demo 2 { 2. int data; 3. void method() { 4. System. out. println(data); //this. data 5. } 6. void method 2() { 7. method(); //this. method(); 8. } 9. }
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 My. Class { � void my. Meth() {} � void my. Meth(int i, int j) {} �}
STRUKTUR PROGRAM JAVA : KATA KUNCI THIS � menunjuk versi lain dari konstruktor 1. class This. Demo 3 { 2. int data; 3. This. Demo 3() { 4. this(100); 5. } 6. This. Demo 3(int data) { 7. this. data = data; 8. } 9. }
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 first. Name; 3. String last. Name; 4. Person(String fname, String lname) { 5. first. Name = fname; 6. last. Name = lname; 7. } 8. }
STRUKTUR PROGRAM JAVA : KATA KUNCI SUPER //continuation. . . 10. class Student extends Person { 11. String stud. Num; 12. Student(String fname, String lname, String s. Num) 13. super(fname, lname); 14. stud. Num = s. Num; 15. } 16. } 9. � super() � Menunjuk pada superclass dengan segera � Harus berada pernyataan pertama dalam konstruktor superclass {
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. . .
STRUKTUR PROGRAM JAVA : KATA KUNCI SUPER 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. } 9.
STRUKTUR PROGRAM JAVA : KATA KUNCI SUPER 21. class 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. } Super. Demo { public static void main(String args[]){ Superclass Super. Obj = new Superclass(); Subclass Sub. Obj = new Subclass(); Super. Obj. a = 1; Sub. Obj. a = 2; Sub. Obj. set_super_a(3); Super. Obj. display_a(); Sub. Obj. display_super_a(); System. out. println(Sub. Obj. a); }
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
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
STRUKTUR PROGRAM JAVA : KATA KUNCI STATIC class Demo { 2. static int a = 0; 3. static void static. Method(int i) { 4. System. out. println(i); 5. } 6. static { //static block 7. System. out. println("static block"); 8. a += 1; 9. } 10. } 1. 11. //continued. . .
STRUKTUR PROGRAM JAVA : KATA KUNCI STATIC 13. class 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. } Static. Demo { public static void main(String args[]) { System. out. println(Demo. a); Demo. static. Method(5); Demo d = new Demo(); System. out. println(d. a); d. static. Method(0); Demo e = new Demo(); System. out. println(e. a); d. a += 3; System. out. println(Demo. a+", "+d. a+", "+e. a); }
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++;
STRUKTUR PROGRAM JAVA : KATA KUNCI FINAL � Method final � Tidak dapat di-override � contoh: � final void my. Method() { //in a parent class �} � void my. Method() { //in a child class �} � Class final � Tidak dapat diwariskan � contoh: � final public class My. Class {} � class Wrong. Class extends My. Class {}
STRUKTUR PROGRAM JAVA : KATA KUNCI FINAL �Kata kunci dapat diletakkan sebelum setelah modifier lain �public final static void meth() {} or �final public static void meth() {} or. . . �//order of modifiers is not important
STRUKTUR PROGRAM JAVA : INNER CLASSES � Dideklarasikan dalam class lain � Mengakses anggota dari inner class : � Membutuhkan sebuah instance dari inner class � Example: �inner. Obj. inner. Member = 5; �//inner. Obj is an instance of the inner class �//inner. Member is a member of the inner class
STRUKTUR PROGRAM JAVA : INNER CLASSES � Method-method dari inner class dapat secara langsung mengakses anggota dari outer class contoh: 1. class 2. 3. 4. 5. 6. 7. 8. } Out { int Out. Data; class In { void in. Meth() { Out. Data = 10; } }
STRUKTUR PROGRAM JAVA : INNER CLASSES 1. class 2. 3. 4. 5. 6. 7. 8. 9. Outer. Class { int data = 5; class Inner. Class { int data 2 = 10; void method() { System. out. println(data); System. out. println(data 2); } } 10. //continued. . .
STRUKTUR PROGRAM JAVA : INNER CLASSES 9. 10. 11. 12. 13. 14. 15. 16. } public static void main(String args[]) { Outer. Class oc = new Outer. Class(); Inner. Class ic = oc. new Inner. Class(); System. out. println(oc. data); System. out. println(ic. data 2); ic. method(); }
KESIMPULAN �Konsep Object. Oriented �Desain Object. Oriented �Class �Object �Attribut �Method �Konstruktor Package Enkapsulasi Abstraksi Pewarisan Polymorfisme Interface
KESIMPULAN � Struktur Program Java � Mendeklarasikan class Java � Mendeklarasikan Attribut � Mendeklarasikan Metode � Mendeklarasikan konstruktor � Meng-instansiasi sebuah class � Mengakses anggota object � Package � Access Modifier � Enkapsulasi Pewarisan Method Overriding Class abstract dan method Interface Kata kunci this Kata kunci super Kata kunci static Kata kunci final Inner Classes
- Slides: 62