Rangkuman tentang EVENT – Java

 

  • Untuk membuat sebuah GUI, mulai dengan sebuah Window, biasanya sebuah JFrame           contoh : JFrame frame = new JFrame( );
  • Kita bisa menambah widget (button (Tombol), text field (tempat menulis text), dll) ke JFrame dengan menggunakan; Contoh dalam menambahkan sebuah tombol (button) :                                      getContentPane( ).add(button);
  • Tidak seperti kebanyakan komponen lainnya, JFrame tidak membiarkan kita untuk menambahkannya (add) secara langsung, jadi KITA HARUS menambahkan (add) ke isi Jendela (Window).
  • Untuk membuat window (JFrame) tampil, KITA HARUS memberikannya sebuah UKURAN (size) dan memberitahunya untuk KELIHATAN (Visible): contoh;                 setSize(300,300);          frame.setVisible(true);
  • Untuk mengetahui kapan user meng-klik sebuah button (tombol) (atau melakukan aksi lainnya pada antarmuka pengguna), maka KITA perlu mendengarka sebuah GUI Event.
  • Untuk mendengarkan sebuah event, KITA HARUS mendaftarkan keinginan kita dengan sebuah Sumber Event. Sebuah Sumber Event adalah sesuatu (Button, CheckBox, dll) yang melepaskan sebuah EVENT berdasarkan interaksi pengguna.
  • Listener (Pendengar) antarmuka memberikan Sumber Event sebuah cara untuk memanggil kita kembali, karena antarmuka (interface) mendefinisikan method(s) Sumber Event akan memanggil ketika sebuah Event terjadi.
  • Untuk mendaftarkan untuk Event-Event dengan sebuah Sumber, panggil Method yang Didaftarkan milik Sumber. Method Registrasi selalu berbentuk : add<EventType>Listener                                                                                                Untuk mendaftarkan sebuah ActionEvent-nya Button (Tombol),  contoh,                             addActionListener(this);
  • Menjalankan antarmuka (interface) listener dengan menjalankan semua method-method Event-handling milik Interface. Letakkan Kode Event-Handling kita di dalam Method memanggil-kembali listener. Untuk ActionEvents, methodnya ialah; public void actionPerformed (ActionEvent event) { button.setText(“you clicked!”); }
  • Objek Event dilewatkan ke dalam Method Event-Handler dengan membawa informasi tentang Event, termasuk sumber Event.

Rangkuman tentang Interface dan Abstract Class – JAVA

Ini adalah rangkuman yang saya terjemahkan dari buku HeadFirst JAVA – 2nd edition. Semoga Bermanfaat….

  • Ketika kita tidak ingin sebuah class dipakai (dengan kata lain, kita tidak ingin seseorang membuat sebuah object baru dari class tersebut) maka tandai class tersebut dengan kata abstract.
  • Sebuah Abstract Class dapat memiliki dua jenis method, Abstract dan non-Abstract Method.
  • Jika sebuah class mempunyai satu abstract Method, class tersebut haruslah ditandai dengan kata abstract.
  • Sebuah Abstract Method tidak mempunyai “badan”, dan deklarasinya diakhiri dengan titik-koma (bukan tanda kurung-keriting).
  • Semua Abstract Method haruslah diimplementasikan di concrete sub-class pertama di dalam pohon Turunan.

Untitled contoh pohon turunan  (Inheritance Tree)

  • Setiap class di Pemrograman JAVA secara langsung atau tidak langsung merupakan sub-class dari class Object (java.lang.Object – Super-Class).
  • Method-method dapat dideklarasikan dengan Argument Object dan/atau tipe return (nilai kembalian).
  • Kita dapat memanggil method pada sebuah Object hanya jika method berada di dalam class (atau interface) tersebut digunakan sebagai tipe referensi variable, bagaimanapun bentuk tipe objectnya. Jadi, sebuah referensi variable dari tipe Object bisa digunakan hanya untuk memanggil method-method yang didefinisikan di dalam Class Object, bagaimanapun tipe Object yang ditunjuk referensi. Perlu dikertahui, referensi variabel berlaku seperti sebuah Remote Control yang menunjuk Object. remote Control tersebut memiliki tombol, Tombol mewakili sebuah Method dari objek yang ditunjuk oleh Referensi (Remote Control).
  • Sebuah referensi Variabel  dari tipe Object tidak dapat ditugaskan ke tipe referensi lainnya tanpa sebuah cast (sebuah objek di dalam tanda kurung biasa). Sebuah cast bisa digunakan untuk menugaskan sebuah referensi variable ke salah satu tipe, tapi pada saat dijalankan (run) cast akan gagal jika object pada lingkaran BUKAN tipe yang cocok dengan cast.

Contoh: // Dog d= (Dog) x.getObject(aDog);

  • Semua objek yang “keluar / dipanggil” dari sebuah ArrayList<Object> sebagai tipe Object (berarti, objek2 tersebut bisa direferensikan hanya dengan sebuah Object Referensi Variabel, kecuali kita menggunakan sebuah cast).
  • Turunan (class) yang lebih dari satu tidak diperbolehkan dalam JAVA, karena masalah2 yang berhubungan dengan istilah “Deadly Diamond of Death”. Hal itu berarti kita hanya bisa meng-EXTEND satu class (misalnya, kita hanya bisa di”BAWAHI” oleh satu SUPERCLASS).
  • Sebuah Interface seperti sebuah Abstract Class murni 100%. Class yang memiliki Interface hanya mendefinisikan sebuah Abstract Method.
  • Cara membuat sebuah interface ialah dengan menggunakan kata interface menggantikan kata class.
  • Implementasi sebuah interface menggunakan kata implements
  • Contoh: Dog implements Pet
  • Kelasmu dapat mengimplementasikan interface yang lebih dari satu.
  • Sebuah class yang mengimplementasikan sebuah interface HARUS mengimplementasikan semua method dari interface, karena semua method dari interface adalah secara implicit merupakan public (dapat diakses oleh class lain) dan abstract.
  • Untuk meminta method versi Superclass dari sebuah subclass yang meng-Override method, dapat menggunakan kata kunci super.Contoh: super.runReport();

Beberapa Istilah dari Programming JAVA

Polimorfisme : Hasil Beda, Cara (Metoda) Sama, Kelas Beda (tentu saja).

Overloading : Metode SAMA, Parameter (Argument) Beda, Kelas SAMA. Tujuan: memudahkan penggunaan method dengan fungsi yang hampir

public void tambah1(){
int a=5, b=10;
System.out.println(“Hasil Pertambahann dari metod tambah1 ke-1 = “+(a+b));
}

public void tambah1(int x, int y){
System.out.println(“Hasil Pertambahann dari metod tambah1 ke-2 = “+(x+y));
}

Overriding : Metode dan Parameter (argument) SAMA, Hasil Beda (Output/nilai return), Kelas BEDA dan secara Inheritance.

Contoh:

class Nama{
public void Sapa(){
System.out.println(“Achmad Cahya Aditya”);
}

class Siapa extends Nama{
public void Sapa(){
System.out.println(“Yesica Dwi Lestari”);
}
}

993754_747172568670237_699908652177029302_n

Make a new variable from Wolf() type

Polymorphism

Contoh dari Polimorfisme

Abstract Class and Method

Abtract Class berfungsi untuk memisahkan antara sub-class dan kelas di atasnya, karena kelas yang berada di atas sub-class (class terakhir dari pohon turunan) tidak diinginkan untuk membuat objek baru (new object) dari tipe kelas abstrak tersebut. Abstract class adalah jenis class yang berada sebelum class concrete.

Abstract class is NO USE, NO VALUE, NO PURPOSE IN LIFE, hanya sebagai class yang mewakili kelas-kelas yang dibawahnya (read: sub-class).

Abtract class bertugas sebagai tempat variable dan method sub-classnya.

Sebuah Abstract Class berarti Class tersebut harus di Extends (have Inheritance).

Sebuah Abstract Method berarti Method tersebut harus di Override.

Abstract Method TIDAK BOLEH berada di Concrete Class. But, Concrete Method BOLEH berada di Abtract Class.

Sebuah Abstract Class tidak memiliki “BADAN”, sehingga class-nya diakhiri dengan tanda TITIK-KOMA (“ ; “) tanpa KURUNG-KERITING (“{}”)

993754_747172568670237_699908652177s029302_n

Contoh kode abstract Class.

Concrete Class and Method

Concrete class ialah class paling ujung di setiap cabang sebuah pohon turunan.

Concrete Class and Method dapat dimodifikasi dari kelas di atasnya (Abstract Class).

Untitled

Object Class

Kelas Objek adalah kelas yang paling ATAS dari semua kelas yang berada di Pohon Turunan Kelas (Inheritance). Kelas Objek ini biasa disebut dengan SUPER-CLASS.

Setiap Class, pada dasarnya, merupakan Extends dari Object Class, tapi compiler telah secara otomatis mengenalinya tanpa kita menuliskan “…Extends Object”.

ArrayList<Class>

ArrayList adalah kelas yang menyimpan suatu Daftar Array (ArrayList) berdasarkan Kelas yang ditulis dalam kurung-siku (“< >”).

Contoh. Ketika kita menulis,

ArrayList<anjing>  DaftarAnjing = new ArrayList<anjing>;

anjing heli = new anjing(); //Membuat anjing (Object) baru yang bernama heli.

DaftarAnjing.add(heli); //add adalah method dari Kelas ArrayList<>.

anjing doggy = DaftarAnjing.get(0); // menyimpan variable dan method yang berada pada Object heli ke Object doggy dengan tipe anjing.

Lalu, bagaimana kalau kita menulis ArrayList<Object> (objej anjing diganti dengan objek Object).

Contoh. Ketika kita menulis,

ArrayList<Object>  DaftarAnjing = new ArrayList<Object>;

anjing heli = new anjing(); //Membuat anjing (Object) baru yang bernama heli.

DaftarAnjing.add(heli); //add (menambahkan ke ArrayList) adalah method dari Kelas ArrayList< >.

anjing doggy = DaftarAnjing.get(0); // menyimpan variable dan method yang berada pada Object heli ke Object doggy dengan tipe anjing. Tapi, kali ini COMPILER tidak akan meng-COMPILE barisan kode ini.

Alasan compiler tidak meng-Compile code terakhir ialah, karena OUTPUT dari ArrayList<Object> berbentuk / berTIPE Object, bukan tipe anjing. Karena itulah, Compiler akan Error saat meng-Compilenya.

Berikut adalah ilustrasi dari ArrayList<Object>,

Untitlsed

Ilustrasi: Object Bola, Ikan, Gitar, dan Mobil ditambahkan ke ArrayList<Object> (ArrayList yang menyimpan objek yang bertipe Object).

Saat kita memanggil / mengeluarkan Object yang berada di dalam ArrayList<Object>, maka Object yang keluar adalah objek yang bertipe Object, bukan lagi bertipe Bola, Ikan, Gitar, maupun Mobil. Hal ini disebabkan karena Compiler tidak Membedakan “KELUARAN” dari ArrayList<Object>.