Rangkuman tentang Graphics – JAVA

 

  • Kita dapat menggambar grafik 2D secara langsung di dalam widget.
  • Kita dapat menggambar sebuah file bertipe .gif atau .jpeg secara langsung pada widget.
  • Untuk menggambar grafik milikmu (termasuk sebuah .gif atau .jpeg), buatlah sebuah subclass JPanel dan mengganti “isi” dari method paintComponent ( ).
  • Method paintComponent ( ) dipanggil oleh system GUI. Kita tidak bisa memanggilnya seperti method yang biasa. Argument pada method paintComponent ( ) asalah sebuah objek grafik yang memberikan kita sebuah permukaan untuk dijadikan tempat menggambar, yang dibatasi oleh layar/window. Kita tidak bisa sendiri membangun objek itu.
  • Method-method khusus untuk memanggil sebuah objek Graphic (parameter paintComponent ) adalah :                                                                                                 setColor (Color.blue);            g.fillRect(20,50,100,120);
  • Untuk menggambar sebuah .jpg, buatlah sebuah gambar menggunakan : Image image=new ImageIcon(“catzilla.jpg”).getImage( );                                               dan gambarlah menggunakan :                                                                                   drawImage(image,3,4,this);
  • Objek direferensikan oleh parameter Graphics pada paintComponent ( ) sebenarnya sebuah instance dari class Graphics2D. Kelas Graphics2D mempunyai sebuah method yang beragam, termasuk :                                                                         fill3DRect ( ), draw3DRect ( ), rotate(), scale(), shear (), transform ( ).
  • Untuk meminta method-method Graphics2D, kita harus “melemparkan” parameter dari objek Graphics ke sebuah Objek Graphics2D : Graphics2D g2d= (Graphics2D) g;     //g adalah referensi Objek Graphics

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 Static – Final — JAVA

Berikut merupakan rangkuman dari Pembahasan Tipe STATIC dan FINAL, Just ENJOY it….. 🙂

  • Sebuah Static Method menggunakan nama CLASSnya, bukan Variabel Referensi Objeknya. Contoh, Math.random( ) dan myFoo.go( ).
  • Sebuah Static Method dapat dipanggil tanpa perlu Instance variable dari Class Method di dalam HEAP (ruang lingkup).
  • Sebuah Static Method itu berguna untuk sebuah Method yang TIDAK BERGANTUNG pada nilai dari INSTANCE VARIABEL tertentu sebuah class.
  • Sebuah Static Method tidak BERHUBUNGAN dengan Instance variable TERTENTU. Static Method HANYA berhubungan dengan CLASSnya. Jadi, Static Method tidak DAPAT mengakses INSTANCE VARIABEL dari dalam CLASSnya. INTINYA, STATIC METHOD tidak mengenal –tidak mengetahui nilai dari – INSTANCE VARIABEL.
  • Sebuah Static Method tidak dapat DIHUBUNGKAN dengan NON-STATIC METHOD, karena NON-STATIC METHOD memiliki IKATAN (…ciecieJ) dengan nilai dari INSTANCE VARIABEL
  • Jika kita memiliki CLASS yang HANYA berisi jenis STATIC METHOD, dan kita TIDAK ingin Class dibuat OBJEKnya, maka kita dapat MEMBERI tanda PRIVATE pada Constructornya.
  • Static Variabel adalah Variabel yang MEMBAGI nilainya pada semua member yang DIBERIKAN oleh CLASS. HANYA ada satu SALINAN Static Variabel di dalam Class.
  • Static Method DAPAT MENGAKSES Static Variabel.
  • Untuk membuat nilai CONSTANT (dalam JAVA), kita dapat memberi tanda Static dan Final pada sebuah Variabel.
  • Final Static Variabel HARUS diberikan nilai Awal (Inisialisasi) pada saat Deklarasi atau di dalam Static Initializer.

Static {DOG_CODE=42;}

  • Pemberian NAMA untuk nilai CONSTANT (Variabel Final Static) HARUS menggunakan HURUF KAPITAL.
  • Nilai dari Variabel Final hanya bisa DIGANTI SEKALI SAJA, yaitu pada saat INISIALISASI AWAL.
  • Memberikan Nilai pada Instance Variabel Final adalah pada saat DEKLARASI atau didalam
    CONSTRUCTOR.
  • FINAL METHOD Tidak Dapat di-OVERRide (diubah method dan Variabelnya).
  • FINAL CLASS Tidak Dapat di-EXTENDS / Tidak Memiliki SUB-CLASS.

Rangkuman tentang Objek – Stack – Constructor – Variabel – Overload – Argumen —– JAVA

Rangkuman tentang Object dan Variabel di Tumpukan (Stack),

  • Java memiliki dua area memori yang perlu kita tahu, yaitu Heap (Ruang Lingkup) dan Stack (Tumpukan).
  • Instance Variable adalah Variabel yang dideklarasikan DIDALAM sebuah Class, tapi berada DILUAR method.
  • Local Variabel adalah variable yang dideklarasikan DIDALAM method dan Variabel Parameter.
  • Semua Local Variabel berada di (area Memori) Stack, satu Stack = satu Method yang memiliki sebuah Local Variabel.
  • Variabel Referensi Objek bertindak seperti Variabel Primitif (cth, integer, String, dkk). Jika Variabel Referensi Objek dideklarasikan di dalam method, maka VRO akan dimasukkan ke area memori STACK.
  • Sebuah Object akan berada di area memori Heap (Ruang Lingkup), apa referensinya berada di Local Variabel atau sebagai Instance Variable.

Rangkuman tentang Constructor – Variabel – Overload – Arguments

  • Instance Variabel berada bersama Objectnya, yaitu di dalam Heap (Ruang Lingkup).
  • Jika Instance variable adalah sebuah Referensi sebuah Objek, Referensi Variabel dan Objeknya akan berada di Area Memori HEAP (Ruang Lingkup).
  • Sebuah Constructor adalah kode yang berjalan ketika kamu menulis new di dalam sebuah class.
  • Sebuah Constructor HARUS mempunyai nama yang sama dengan CLASS (tempatnya berada), dan TIDAK BOLEH memiliki sebuah tipe RETURN (nilai kembalian – layaknya sebuah Method).
  • Kita bisa menggunakan sebuah constructor untuk mengawali nilai / keadaaan variable (cth. Instance Variabel) sebuah Objek yang dibangun / dikonstruksi.
  • Jika kita tidak meletakkan sebuah Constructor di dalam Class, maka Compiler akan meletakkan sebuah nilai default Constructor.
  • Constructor Default seringkali sebuah Constructor tanpa argument / parameter.
  • Jika kita meletakkan sebuah Constructor – Constructor apa saja – di dalam Class, maka Compiler TIDAK AKAN mem-BUILD / membuat Constructor Default.
  • Jika kita ingin sebuah Constructor tanpa – argument, dan kita meletakkan sebuah Argumen di dalam Constructor, maka kita HARUS membangun / me-BUILD sendiri Constructor tanpa Argumen.
  • Usahakan untuk selalu sediakan sebuah Constructor, untuk memudahkan programmer untuk membuat sebuah Objek. Jangan lupa berikan nilai default pada variabelnya.
  • Constructor Overloaded (Beban Berlebih) berarti kita mempunyai lebih dari satu Constructor di dalam Class.
  • Constructor Overload HARUS memiliki daftar argument yang BERBEDA.
  • Kita TIDAK BISA mempunyai dua Constructor denga daftar Argumen yang SAMA. Sebuah Daftar Argumen DIPENGARUHI oleh URUTAN dan/atau TIPE Argumen.
  • Instance Variabel menugaskan sebuah NILAI DEFAULT. NILAI DEFAULT adalah 0 / 0,0 / false untuk Tipe Primitif (Integer, String, dkk), dan NULL untuk Referensi (Objek).

Semoga Bermanfaat, my WP Reader…

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>.

MATLAB : Kenapa muncul pesan error pada Matlab x64 ketika meng-compile diagram blok?

Hal pertama yang harus anda lakukan adalah memeriksa apakah Microsoft Visual C++ 2010 redistributable packages (x86 dan x64) telah terinstal. Anda dapat mengeceknya di Control Panel>Program and Features.

OPSI 1: Jika anda belum Menginstall Microsoft Visual C++ 2010 redistributable packages

Ikuti langkah-langkah berikut ini,

Siapkan software ini terlebih dahulu. Software  tersebut adalah sbb;

Windows SDK 7 and Framework 4

Ini alamat officialnya:

http://www.microsoft.com/en-us/download/details.aspx?id=8442

saat kamu klik download, maka akan muncul opsi untuk memilih jenis filenya:

  • GRMSDK_EN_DVD.iso, file ini untuk Windows x86 atau 32 bit
  • GRMSDIAI_EN_DVD.iso, file ini untuk Windows amd64
  • GRMSDKX_EN_DVD.iso, file ini untuk Windows x64 atau 64 bit

Karena masalah error pada matlab ini hanya terjadi pada Matlab x64 maka dari opsi di atas kita harus memilih GRMSDKX_EN_DVD.iso…..

Setelah itu, mount file iso nya, lalu klik install. Selanjutnya klik next tanpa mengubah pilihan instalasinya, dan tunggu sampai proses instalasi selesai / COMPLETO..hehe

Langkah Selanjutnya, buka Matlab, dan

  1. Ketik ——–mex –setup————
  2. Would you like mex to locate installed compilers [y]/n? >>>>tekan n
  3. Pilih, Microsoft Visual C++ 2010 Express, jangan hiraukan pesan warning tersebut…..
  4. Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 10.0], >>>>ketik, C:\Program Files (x86)\Microsoft Visual Studio 10.0
  5. Please verify your choices:

Compiler: Microsoft Visual C++ 2010 Express

Location: C:\Program Files (x86)\Microsoft Visual Studio 10.0

Are these correct [y]/n?  >>>>>>>Ketik, y

  1. Proses tersebut Berhasil jika ada pesan…………..Done….. (setelahnya)

 

OPSI 2: Jika anda telah Menginstall Microsoft Visual C++ 2010 redistributable packages (x86 dan x64)

1. Uninstall the Microsoft Visual C++ 2010 redistributable packages (both x86 as well as x64) from “Control Panel” > “Programs and Features”.

2. Install the Windows SDK 7.1. During installation, under the “Installation Options” menu, UNCHECK the “Visual C++ Compilers” and “Microsoft Visual C++ 2010” components.

3. Apply the SDK 7.1 patch from below:

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4422

4. Reinstall the Microsoft Visual C++ 2010 redistributable packages.

x64:

http://www.microsoft.com/en-us/download/details.aspx?id=14632

x86:

http://www.microsoft.com/en-us/download/details.aspx?id=5555

 

REFERENCE :

http://www.mathworks.com/matlabcentral/answers/95039-why-does-the-sdk-7-1-installation-fail-with-an-installation-failed-message-on-my-windows-system

http://www.microsoft.com/en-us/download/details.aspx?id=8442