Jumat, 10 Agustus 2012

Penggunaan Extends

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugaskuliah;

/**
 *
 * @author tamam
 */
class A {
protected int v=1;
protected static int x=0;
A(){
v++;
x++;
}
public void print(){
System.out.println("A.v = " + v);
}
}

class B extends A {
//private int v=0;
B(){
//super();
v= x+v+2;
}
public void print(){
super.print();
System.out.println("B.v = " + v);
}
public void printX(){
System.out.println("B.x = " + ++x);
}
}
public class Upcasting {
public static void main(String[] args) {
A a = new A();
B b = new B();
a = b;

a.print();
b.printX();
}
}

//hasilnya ...
//A.v = 6
//B.v = 6
//B.x = 3

Constructor Memanggil Constructor Lainnya

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tugaskuliah;
/**
*
* @author tamam
*/
//initial nama class
public class Manusia {
//initial tipe variable
String nama;
int umur;
//initial constructor 1
void Manusia(String nama){
this.nama = nama;
}
//initial constructor 2 diikuti pemanggilan constructor lainnya
void Manusia (String nama,int umur){
this(nama);
this.umur = umur;
}
//main program
public static void main (String [] args){
Manusia pesan = new Manusia();
pesan.nama = "Objek MANUSIA berhasil terbentuk";
Manusia obj = new Manusia();
obj.nama = "Jayyid Tamam";
obj.umur = 22;
System.out.println("Hasil Tugas 1");
System.out.println(pesan.nama);
System.out.println();
System.out.println("Hasil Tugas 2");
System.out.println(obj.nama + " berumur " + obj.umur + " thn ");
}
}

Class Memanggil Class Lainnya

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugaspbo2;

/**
 *
 * @author tamam
 */
public class AlatPengangkutManusia {
    int kapasitas;
    Elevator elevator[];
   
    public AlatPengangkutManusia(int k){
        kapasitas = k;
    }
   
    public static void main (String args[]){
   
    Tombol Floor_1 = new Tombol("Floor_1");
    Tombol Floor_2 = new Tombol("Floor_2");
    Tombol Floor_3 = new Tombol("Floor_3");
    Tombol Floor_4 = new Tombol("Floor_4");
    Tombol Floor_5 = new Tombol("Floor_5");
   
    Elevator obj = new Elevator();
    obj.setData(5);
    AlatPengangkutManusia weg = new AlatPengangkutManusia(100);
    System.out.println( "Elevator dengan " + obj.lantai + " lantai memiliki kapasitas " + weg.kapasitas + " Kg");
  
    //membuat input pada class Elevator
    Elevator pss = new Elevator();
    pss.setData(3);
    System.out.println("Anda saat ini berada di lantai " + pss.lantai);
   
    pss.tombol = new Tombol[5];
    pss.tombol[0] = Floor_1;
    pss.tombol[1] = Floor_2;
    pss.tombol[2] = Floor_3;
    pss.tombol[3] = Floor_4;
    pss.tombol[4] = Floor_5;
   
    System.out.println("");
    System.out.println("Tekan tombol " + pss.tombol[0].label + " untuk menuju Lantai 1");
    System.out.println("Tekan tombol " + pss.tombol[1].label + " untuk menuju Lantai 2");
    System.out.println("Tekan tombol " + pss.tombol[2].label + " untuk menuju Lantai 3");
    System.out.println("Tekan tombol " + pss.tombol[3].label + " untuk menuju Lantai 4");
    System.out.println("Tekan tombol " + pss.tombol[4].label + " untuk menuju Lantai 5");
    System.out.println("");
    System.out.println("Naik dua lantai...");
  
    //membuat input pada subclass Elevator yaitu naik
    pss.naik(2);
    System.out.println("Anda sekarang berada di lantai " + pss.lantai);
    System.out.println("Turun tiga lantai...");
   
    //membuat input pada subclass Elevator yaitu naik
    pss.turun(3);
    System.out.println("Anda sekarang berada di lantai " + pss.lantai);
   
    }
   
}


-------------------------------------------------------------------------------------------------------------

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugaspbo2;

/**
 *
 * @author tamam
 */
public class Elevator {
    int lantai;
    Tombol tombol[];
   
    public Elevator(int l){
        lantai = l;
    }
   
    //mulai pembuatan constructor
    Elevator() {
   
    }
    void setData (int lantai){
        this.lantai = lantai;
    }
   
    //method dari Elevator
    public void naik(int up){
       
        lantai = (lantai + up);
    }
    public void turun(int down){
       
        lantai = (lantai - down);
    }
}

-----------------------------------------------------------------------------------------------------------

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugaspbo2;

/**
 *
 * @author tamam
 */
public class Tombol {
    String label;
   
    public Tombol(String lbl){
        label = lbl;
    }
   
}

Rabu, 08 Agustus 2012

Penggunaan This

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugaskuliah;

/**
 *
 * @author a42f
 */

//initial nama class
public class This1 {
    int i = 0;
    
   //memulai penggunaan kata "this" dalam sebuah method penjumlahan
    void increment(int i){
        this.i = this.i+i;
    
    }
   //memulai penggunaan kata "this" dalam sebuah method pengurangan
    void decrement(int i){
        this.i = this.i-i;
    
    }
    
   //method print / menampilkan hasil yang akan ditampilkan
    void print1(){
        System.out.println("i = " + i);
            }
    void print2(){
        System.out.println("i = " + i);
    }
   
    public static void main (String [] args){
        This1 a = new This1();
        a.increment(5);
        a.increment(8);
        a.print1();
       
        a.decrement(5);
        a.decrement(8);
        a.print2();
    }
}

Metode Traversal

Preorder

Dari gambar di samping akan mengeprint

FBADCEGIH

Urutan
  • Print dulu node saat ini
  • Kunjungi kiri
  • Kunjungi kanan

In Order

Dari gambar di samping akan mengeprint
ABCDEFGH               

Urutan
  • Kunjungi kiri
  • Print node
  • Kunjungi kanan

PostOrder 

Dari gambar di samping akan mengeprint
ACEDBHIGF 

Urutan
  • Kunjungi kiri
  • Kunjungi kanan
  • Print node

LevelOrder

Dari gambar di samping akan mengeprint
FBGADICEH
 
Urutan
  • Print
  • Kunjungi node sebaris lainnya
  • Butuh bantuan sebuah array lain yang menyimpan informasi array dalam 1 baris



Implementasi Tree

Node berikut adalah contoh dari ternary tree
class Node {
String isi;
Node[] child = new Node[3];
}

Node berikut adalah contoh dari binary tree
class Node {
String isi;
Node[] child = new Node[2];
}

Karena Binary tree hanya memiliki 2 child, maka array tidak perlu digunakan. Definisi node binary tree sebelumnya menjadi
class Node {
String isi;
Node left,right;
}

Terminologi Tree

  • Node : elemen dari tree, berisi informasi
  • Parent : node yang berada diatas secara langsung
  • Child : node yang berada dibawah secara langsung
  • Root : node teratas
  • Sibling : node yang memiliki parent sama
  • Leaf : node yang tidak memiliki child(ren)
  • Level : jarak node dari puncak
  • Depth : level tertinggi dari tree
  • Complete : semua node non leaf memiliki child penuh
  • Balanced : semua subtree memiliki depth sama