Kamis, 07 April 2016

Materi Dasar Memahami Pemrograman JAVA

http://ilearning.oracle.com/

J2SE
J2EE
J2ME

Java EE --> enterprise solutions

Java ME --> limited device

Java SE --> desktop solutions
         --> application
              applet  --- browser
                       +
                     JVM
                   /
              JRE
             /     \
            /        standard 
           /         library
                 JDK
           \
             Tools: -compiler
             -jar tools
             -javadoc

   Java App    Native App
---------------------    -------------------
     J V M              O S
---------------------
      O S         

     java
source code  -- javac --->  bytecode
  (*.java)                  (*.class)

SDLC:
---------------------------
1. analisys  --> 'what'
2. design --> 'how'
3. develop
4. testing
5. deploy/implementation
6. bug & fix/mainteance
7. end of life

class        object
---------------------    ------------------------
- variable        - attribute
- method        - behavior

java source code: file *.java
struktur java source code:
1. deklarasi package [opsional]
       dalam satu file .java, hanya boleh ada
       satu deklarasi package
2. statement import [opsional]
       boleh lebih dari satu (tergantung 
       kebutuhan)
3. deklarasi class
       boleh lebih dari satu, tetapi hanya 
       boleh satu class yang public (yang
       menjadi nama file-nya)

import java.awt.*;

import java.awt.event.*;

Servlet

jar --- java archive
         jar tools

jar, javac ---> PATH

java ----> CLASSPATH

Tahapan membuat jar executable (manual)

1. siapkan struktur project (source code, folder)

    myprj
       |---- classes
       |---- src
    |---- org
            |---- jp
                   |---- myprj
                 |---- Student.java
          |---- test
                 |---- TestProject.java

2. compile source code
    
    myprj\src>javac -d ..\classes org\jp\test\*.java

    test jalankan main class:

    myprj\src>java -cp ..\classes org.jp.test.TestProject
    
3. buat manifest file (misal namanya MANIFEST.MF)
    di folder myprj\classes
    isinya:

    Manifest-Version: 1.0
    Created-By: 1.7.0_76 (Oracle Corporation)
    Main-Class: org.jp.test.TestProject

4. buat jar file

    myprj\classes>
    jar cvfm myproject.jar MANIFEST.MF org

5. test execute jar file

    myprj\classes>java -jar myproject.jar


Syntax mendeklarasikan class:
[modifier] class ClassName {
      [attribute];
      [constructor];
      [method];
}

Syntax attribute:
[modifier] type attributeName [=value];

type: - primitive:
    logical: boolean
    textual: char
    integer: byte, short, int, long
    floating: float, double
         - reference
    String, ArrayList, List, StringBuilder, ...

Syntax method:
[modifier] return_type methodName([parameter]*) {

}

return_type: - primitive
         - reference
         - void

Syntax constructor:
[modifier] ClassName ([parameter]*) {

}

constructor digunakan untuk membuat object dari
sebuah class, syntax-nya mirip dengan method, hanya
saja:
  - constructor tidak memiliki return_type
  - namanya sama dengan nama class

setiap class PASTI memiliki constructor
kalau tidak dituliskan maka akan dibuatkan default
constructor, dimana default constructor:
   - parameter nya kosong
   - body nya juga kosong
jika kita menuliskan constructor secara explicit, maka
default constructor akan hilang, jika masih diperlukan
bisa dilakukan OVERLOADING constructor
fungsi lain dari constructor adalah untuk menginisiali-
sasi attribute

Syarat OVERLOADING constructor/method:
- parameter: HARUS berbeda
- return type: BOLEH berbeda
- access modifier: BOLEH berbeda

comments:
- single line comments
    //
- multiple line comments (traditional comments)
    /*
        */
- documentation comments
    /**
     *
     *
     */

String x = "Hello";

String xy = new String("Hello");

Wrapper Class
-------------------------------------------
boolean        Boolean
byte        Byte
short        Short
int        Integer
long        Long
float        Float
double        Double
char        Character

Encapsulation = membungkus
-----------------------------------
==> information hiding (penyembunyian data) 
       tujuannya supaya data/variable digunakan dengan
       aturan yang sudah ditentukan
Dilakukan dengan:
- memberikan access modifier private pada variable
- menyediakan accessor(getter) dan atau mutator
  (setter)

Single inheritance, satu class hanya bisa meng-extends
ke satu parent

Array
---------------------------------------------------
1. declaration
        int [] a, b, c;    int [][]matrix;
        int a [], b, c;    int []matrix[];
        int matrix[][];

2. intstantiation
        a = new int [4];       matrix = new int[3][4]; ==> RECTANGULAR
                matrix = new int[3][]; ==> IRECTANGULAR
                matrix[0] = new int[4];
                matrix[1] = new int[3];
                matrix[2] = new int[2];

3. initialization
        a[0] = 10;    matrix[0][2] = 100;
        a[1] = 20;    matrix[1][1] = 200;
        a[2] = 30;    matrix[2][3] = 300;
        a[3] = 40;

---------------------------------------------------------------------------
int a[] = {10, 20, 30, 40};

int a[];         XXXXXXX
a = {10,20,30,40};    XXXXXXX

int [][]matrix = { { 0 , 1 } , { 2 , 3 , 4 } , { 5 , 6 , 7 , 8 } };

------------------------------------------------------------------------
Collection: object yang berisi kumpulan object yang
      dikenal sebagai element-nya

List: - ordered (ada urutan)
        - allow duplication (dua object identik bisa di-
          tambahkan lebih dari satu kali)

Dua object dikatakan identik JIKA:
    - equals: true
    - hashCode: sama

Set: - unordered
      - tidak boleh ada duplikasi

JDK1.5 ==> auto-boxing dan auto-unboxing
       perubahan dari primitive ke reference
        bisa dilakukan secara otomatis (tidak perlu
       dituliskan secara explicit)

Overriding:
================
menuliskan ulang method yang sudah didefinisikan
di class Parent, tetapi dengan implementasi yang ber
beda
syarat overriding:
- nama method: HARUS SAMA
- parameter: HARUS SAMA
- return type: SAMA atau TURUNANNYA
- access modifier: SAMA atau MORE ACCESSIBLE

access         same    same    inheri-    univer-
modifier:     class    package     tance    sal
=========================================
private           V         X        X         X
default           V         V        X         X
protected           V         V        V         X
public           V         V        V         V

DIWARISKAN != DIAKSES

Constructor class Child harus memanggil constructor
class Parent. Jika tidak dilakukan maka akan dibuat-
kan kata-kata super() di baris pertama dari constructor
Child, yang artinya akan memanggil constructor 
Parent yang tanpa parameter, jika tidak ditemukan
maka akan terjadi error pada saat dicompile.

GUI
----------------------------
- container
     Window -- BorderLayout
    Panel -- FlowLayout

- component

- layout manager

setBounds(x,y,w,h) ---- setLocation(x,y)
            setSize(w,h)

DAY 2
=============

variable berdasarkan letaknya, dibedakan menjadi 2:
- local variable: 
    * variable yang didefine di dalam method
      (bisa sebagai parameter ataupun di dalam
      body dari method)
    * temporary/stack
    * memerlukan inisialisasi secara explicit sebelum
      digunakan

- instance variable: 
    *  variable yang didefine di dalam class
                  (di luar method)
    *  attribute
    *  otomatis akan diinisialisasi ke default value
       dari type-nya

int a = 10;
int b = a;
a = 100;

MyDate today = 
   new MyDate(19,5,2015);
MyDate x = today;
x.setMonth(10);
today = 
    new MyDate(1,1,2000);
x = 
    new MyDate(2,2,2002);

member dari sebuah class, bisa dibedakan
menjadi 2 macam:
- instance member ---> non static
- class member ---> static

        Mammals
        ------------------
        - eat()
        - breath()



Cat        Dog        Sheep
-------        ---------        --------------
- eat()        - eat()        - eat()
- breath()        - breath()        - breath()
- miauw()        - bark()        - mbaaa()


abstract --- method, class

method abstract --> method yang tidak memiliki 
         implementasi (hanya deklarasi)

jika di dalam sebuah class terdapat method abstract
maka class-nya harus dideklarasikan sebagai abstract 
class

abstract class bisa memiliki method non-abstract

abstract class tidak bisa diinstantiate

untuk membuat object dari abstract class ---> 
polymorphism, gunakan turunan-nya yang non-abstract

turunan dari abstract class harus mengimplementasikan
semua abstract method yang ada di parent-nya, 
atau bisa tidak mengimplentasikan tetapi harus didekla-
rasikan sebagai abstract class

mengimplementasikan abstract method = melakukan 
overriding dengan menghilangkan kata2 abstract

interface
--------------------------
didefinisikan untuk memenuhi kebutuhan yang generic

di interface, by default:
- semua method-nya adalah public abstract 
- tidak boleh ada method dengan implementasi
- semua variable: public static final

final ----> variable, method, class
- final variable -> constants
- final method -> tidak bisa di override
- final class -> tidak bisa di extends



    ResultSet
-------------------------------------------------
    Statement
-------------------------------------------------
    Connection
-------------------------------------------------
    Driver


inheritance
    overriding
polymorphism
    virtual method invocation
    casting object

boolean

byte - short - int - long - float - double
       /
          char

int a = 10;
double b = a;  --- promotion ---> double b = (double)a;
        \---> implicit (upcasting)

double c = 7.8;
int d = c; XXX --- casting ---> int d = (int) c;
        \---> explicit (downcasting)
   
byte e = 10;
byte f = 11;
byte g = e + f;  XXX ----> byte g = (byte)(e + f);
              |    |
             V   V
            int  int  ===> int

float h = 8.8; XXX  ===> float h = 8.8F;
               float h = 8.8f;

1000  ---> int
1000L ---> long


Collection: object yang berisi kumpulan object yang
      dikenal sebagai element-nya

List: - ordered (ada urutan)
        - allow duplication (dua object identik bisa di-
          tambahkan lebih dari satu kali)

Dua object dikatakan identik JIKA:
    - equals: true
    - hashCode: sama

Set: - unordered
      - tidak boleh ada duplikasi

Map: setiap element berisi sepasang key-value
        key dari setiap element harus unique
        satu key hanya bisa memiliki satu value

JDK1.5 --> enum
JDK1.4 --> assert
JDK1.2 --> strictfp

String a = "Hello";
a = a + " apa kabar";

Exception:
- unchecked exception: exception yang akan dicek
  pada saat program dieksekusi, pada saat program
  dicompile akan diabaikan
    semua turunan RuntimeException
    semua turunan Error

- checked exception: exception yang akan dicek
  pada saat program dicompile
    semua turunan Exception kecuali
    RuntimeException

by default assertion masih disable
untuk mengaktifkan assertion: java -ea
              java -enableassertions

java [VM Options] ClassName [Arguments]

java -ea ClassName

JUnit

variable arguments --> JDK1.5

marker interface










Materi Dasar Memahami Pemrograman JAVA Rating: 4.5 Diposkan Oleh: loliktry

0 komentar:

Posting Komentar

Entri yang Diunggulkan

How To Use Git on oh-my-zsh version

Popular Posts