630 likes | 1.01k Views
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 :
E N D
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 keywordnew • 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 • <classDeclaration> ::= • <modifier> class <name> { • <attributeDeclaration>* • <constructorDeclaration>* • <methodDeclaration>* • } • dimana • Modifier • Mengacu pada access modifieratau type lain dari modifier • Name • Sebuah identifier pada nama kelas
Struktur Program Java : Deklarasi Class • class SuperHero { • String superPowers[]; • void setSuperPowers(String superPowers[]) { • this.superPowers = superPowers; • } • void printSuperPowers() { • for (int i = 0; i < superPowers.length; i++) { • System.out.println(superPowers[i]); • } • } • }
Struktur Program Java : Deklarasi Attribut • Sintaks: • <attributeDeclaration> ::= • <modifier> <type> <name> [= <default_value>]; • <type> ::= • byte | short | int | long | char | float | double | boolean | <class>
Struktur Program Java : Deklarasi Attribut • public class AttributeDemo { • private String studNum; • public boolean graduating = false; • protected float unitsTaken = 0.0f; • String college; • }
Struktur Program Java : Deklarasi Method • Sintaks: • <methodDeclaration> ::= • <modifier> <returnType> <name>(<parameter>*) { • <statement>* • } • <parameter> ::= • <parameter_type> <parameter_name>[,]
Struktur Program Java : Deklarasi Method • class MethodDemo { • int data; • int getData() { • return data; • } • void setData(int data) { • this.data = data; • } • void setMaxData(int data1, int data2) { • data = (data1>data2)? data1 : data2; • } • }
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
Struktur Program Java : Deklarasi Method • class ConstructorDemo { • private int data; • public ConstructorDemo() { • data = 100; • } • ConstructorDemo(int data) { • this.data = data; • } • }
Struktur Program Java : Instansiasi Kelas • Syntax: • new <constructorName>(<parameters>) • Contoh: • class ConstructObj { • int data; • ConstructObj() { • /* initialize data */ • } • public static void main(String args[]) { • ConstructObj obj = new ConstructObj(); • } • }
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);
Struktur Program Java : Mengakses Anggota Object • class ConstructObj { • int data; • ConstructObj() { • /* initialize data */ • } • void setData(int data) { • this.data = data; • } • public static void main(String args[]) { • ConstructObj obj = new ConstructObj(); • obj.setData = 10; //access setData() • System.out.println(obj.data); //access data • } • }
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>+
Struktur Program Java : Package • package registration.reports; • import registration.processing.*; • import java.util.List; • import java.lang.*; //imported by default • class MyClass { • /* details of MyClass */ • }
Struktur Program Java : Enkapsulasi • Menyembunyikan anggota dengan membuatnya private • Contoh • class Encapsulation { • private int secret; • public boolean setSecret(int secret) { • if (secret < 1 || secret > 100) • return false; • this.secret = secret; • return true; • } • public getSecret() { • return secret; • } • }
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
Struktur Program Java : Pewarisan • import java.awt.*; • class Point { • int x; • int y; • } • class ColoredPoint 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 • class Superclass { • void display(int n) { • System.out.println("super: " + n); • } • } • class Subclass extends Superclass { • void display(int k) { • System.out.println("sub: " + k); • } • } • // continued...
Struktur Program Java : Method Overriding • class OverrideDemo { • public static void main(String args[]) { • Subclass SubObj = new Subclass(); • Superclass SuperObj = SubObj; • SubObj.display(3); • ((Superclass)SubObj).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 { • void overriddenMethod() { • } • } • class Subclass1 extends Superclass { • public void overriddenMethod() { • } • } • class Subclass2 extends Superclass { • void overriddenMethod() { • } • } • //continued...
Struktur Program Java : Method Overriding • /* class Superclass { • void overriddenMethod() { • } • } */ • class Subclass3 extends Superclass { • protected void overriddenMethod() { • } • } • class Subclass4 extends Superclass { • private void overriddenMethod() { • } • }
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 */ • }
Struktur Program Java : class abstract dan method • Kata kunci abstracttidak 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 SuperHero { • String superPowers[]; • void setSuperPowers(String superPowers[]) { • this.superPowers = superPowers; • } • void printSuperPowers() { • for (int i = 0; i < superPowers.length; i++) { • System.out.println(superPowers[i]); • } • } • abstract void displayPower(); • } • //continued...
Struktur Program Java : class abstract dan method • class FlyingSuperHero extends SuperHero { • void displayPower() { • System.out.println("Fly..."); • } • } • class Spiderman extends SuperHero { • void displayPower() { • System.out.println("Communicate with sea" + • " creatures..."); • System.out.println("Fast swimming ability..."); • } • }
Struktur Program Java : Interface • Sintaks: • <interfaceDeclaration> ::= • <modifier> interface <name> { • <attributeDeclaration>* • [<modifier> <returnType> <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 • interface MyInterface { • void iMethod(); • } • class MyClass1 implements MyInterface { • public void iMethod() { • System.out.println("Interface method."); • } • void myMethod() { • System.out.println("Another method."); • } • } • //continued...
Struktur Program Java : Interface • class MyClass2 implements MyInterface { • public void iMethod() { • System.out.println("Another implementation."); • } • } • class InterfaceDemo { • public static void main(String args[]) { • MyClass1 mc1 = new MyClass1(); • MyClass2 mc2 = new MyClass2(); • mc1.iMethod(); • mc1.myMethod(); • mc2.iMethod(); • } • }
Struktur Program Java : kata kunci this • mengapa this? • 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 • Agar tidak ambigu antara attribut lokal dan variabel lokal • class ThisDemo1 { • int data; • void method(int data) { • this.data = data; • /* • this.data refers to the attribute • while data refers to the local variable • */ • } • }
Struktur Program Java : kata kunci this • Menunjuk pada object yang meminta method non-static • class ThisDemo2 { • int data; • void method() { • System.out.println(data); //this.data • } • void method2() { • method(); //this.method(); • } • }
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) {} • }
Struktur Program Java : kata kunci this • menunjuk versi lain dari konstruktor • class ThisDemo3 { • int data; • ThisDemo3() { • this(100); • } • ThisDemo3(int data) { • this.data = data; • } • }
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 • class Person { • String firstName; • String lastName; • Person(String fname, String lname) { • firstName = fname; • lastName = lname; • } • }
Struktur Program Java : kata kunci super • //continuation... • class Student extends Person { • String studNum; • Student(String fname, String lname, String sNum) { • super(fname, lname); • studNum = sNum; • } • } • super() • Menunjuk pada superclass dengan segera • Harus berada pada pernyataan pertama dalam konstruktor superclass
Struktur Program Java : kata kunci super • Menunjuk anggota superclass • class Superclass{ • int a; • void display_a(){ • System.out.println("a = " + a); • } • } • //continued...
Struktur Program Java : kata kunci super • class Subclass extends Superclass { • int a; • void display_a(){ • System.out.println("a = " + a); • } • void set_super_a(int n){ • super.a = n; • } • void display_super_a(){ • super.display_a(); • } • }
Struktur Program Java : kata kunci super • class SuperDemo { • public static void main(String args[]){ • Superclass SuperObj = new Superclass(); • Subclass SubObj = new Subclass(); • SuperObj.a = 1; • SubObj.a = 2; • SubObj.set_super_a(3); • SuperObj.display_a(); • SubObj.display_a(); • SubObj.display_super_a(); • System.out.println(SubObj.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