Pages

Labels

Tampilkan postingan dengan label Kuliah PGA. Tampilkan semua postingan
Tampilkan postingan dengan label Kuliah PGA. Tampilkan semua postingan

Minggu, 23 November 2014

PHYSIC ENGINE

PHYSIC ENGINE

Physic Engine (Mesin Fisik) adalah perangkat lunak yang didesain untuk menampilkan/ melakukan simulasi berbagai jenis fenomena objek fisik di alam. Simulasi yang dilakukan dapat memprediksi bermacam-macam kejadian dalam kondisi yang berbeda serta memperkirakan apa yang akan terjadi dalam kehidupan nyata. Engine ini secara rutin menangani perilaku objek-objek misalnya, benda keras, partikel, gelombang, cloth, serta deteksi benturan (collision) dan dinamik.
Prinsip kerjanya, physic engine akan melakukan spesifikasi force (gaya) terhadap objek berdasarkan input user dalam setiap loop. Sehingga, output yang ditimbulkan adalah hasil komputasi dari physic engine.
Secara proses misalnya, physic engine melakukan collision detection kemudian output dari module tersebut diberikan pada komponen kedua, simulation system. Simulation system (sistem integrator) ini digunakan untuk melakukan perhitungan berdasarkan rumus fisika dan hasilnya akan melakukan update property dari objek yang disimulasikan.
Ada bermacam-macam jenis phisic engine yaitu, PhysX of AGEIA (NVIDIA), HAVOC engine dari HAVOC, ODE (Open Dynamics Engine), dll. Yang mana, engine fisik ini tidak hanya berguna untuk penelitian (research), tapi juga untuk berbagai macam aplikasi seperti game (permainan) yang memasukkan unsur gravitasi, akselerasi, pergeseran, dll.
physic engine menjadikan sebuah game yang dibuat akan menjadi menarik dan perilaku serta karakter objek game menjadi lebih nyata dibandingkan tanpa menggunakan physic engine.
Macam-Macam Physics Engines   
PhysX of AGEIA
PhysX pada awalnya dikembangkan oleh Ageia sebagai NovodeX SDK. Ageia adalah perusahaan yang bergerak di bidang pasar grafis 3D dengan ide fantastis untuk membawa fisika komputasi ke dalam permainan komputer. Why ??? karena para teknisi Ageia mengetahui bahwa fisika memungkinkan perhitungan yang lebih ekstrim dan memberikan pengalaman visual yang nyata. Nah gara-gara itulah, akhirnya pada Februari 2008, nVIDIA membeli Ageia sebesar 30 juta dolar dan mempekerjakan staff ahli Ageia untuk menghasilkan Ageia’s PhysX API.
PhysX sendiri adalah proprietary (closed source) realtime /physics engine/middleware SDK, yang dikembangkan oleh NVIDIA (bersama penemunya : AGEIA), untuk mengakselerasi performa PhysX-enabled Video Games. Video Games yang telah mendukung/support akselerasi hardware oleh PhysX dapat diakselerasi performa grafisnya, baik oleh PhysX, maupun CUDA-enabled GeForce GPU secara bersamaan. Pemanfaaatan teknologi ini di klaim mampu dapat menjadikan proses , perhitungan “physics” dari CPU menjadi lebih cepat. Hal ini tentu juga meningkatkan framerate, hal inilah yang menghasilkan gambar pada game keliatan halus.
Asal tau aja PhysX telah didesain secara spesifik untuk akselerasi hardware dari Processor yang powerful dengan ratusan core (inti). Dikombinasikan dengan kemampuan proses yang luar biasa dari GPU. PhysX akan menyediakan peningkatan eksponensial (perkalian berulang) pada kekuatan proses “physics”. Selain itu PhysX akan memberikan memperlihatkan peningkatan daya pengolahan fisika dan meningkatkan kualitas game dengan menyajikan efek seperti:
Kelebihan
* Menambah efek debu dari reruntuhan bangunan
* Karakter dengan kompleks untuk lebih hidup seperti gerakan dan interaksi
* Efek senjata baru dan menakjubkan
* Drapes kain yang alami dan air mata
* Kabut asap tebal yang menggelembung sekitar objek dalam gerakan
Yang intinya membuat efek, gerakan dan interaksi obyek dalam game menjadi nyata. hal ini dikarenakan physics menggunakan data perhitungan fisika untuk menganimasi gerakan dan interaksi yang nyata.

PRINSIP KERJA PHYSICS ENGINE
Dengan physisc engine, objek tidak lagi digerakkan secara langsung, tetapi dispesifikasikan berdasarkan force berdasarkan input dari pemain, dalam setiap loop pada setiap objek dalam game. Physics engine bertugas untuk menghitung perkiraan posisi dan orientasi selanjutnya dari objek tersebut.
Kalau boleh diruntut secara sistematis, sebenarnya ada dua proses utama dalam Physics Engine : yang pertama adalah melakukan “collision detection”. Output dari modul ini kemudian diberikan pada komponen kedua, yaitu “simulation system” (biasa disebut “integrator”), untuk melakukan perhitungan berdasarkan rumus fisika. Simulation system kemudian akan memberikan update properti dari objek yang disimulasikan.
Kelemahan PhysX
Untuk software, kalkulasi physic oleh PhysX engine selain memerlukan driver PhysX, juga hanya akan bekerja pada software2 yg telah mengimplementasikan engine PhysX ini, jadi efek2 physic oleh PhysX engine HANYA akan bekerja pada software2(game2) yg didukung, dg driver yg sesuai, dan hardware yg yg mendukung.. intinya efek physic tidak akan keluar jika hanya memiliki salah satu misalnya hardwarenya saja yg mendukung.
Box2D
Box2D merupakan salah satu library physic 2D yang cukup populer digunakan dalam game-game 2D. Colin Northway kemudian mengadaptasikan library buatan Erin Catto ini kedalam format ActionScript 3 yang bisa digunakan untuk aplikasi Flash.

HAVOC ENGINE
kalau kamu belum pernah mendengar Havok sebelumnya, Havok adalah physics engine yang telah banyak digunakan dalam game AAA yang terkenal seperti Skyrim, Assasin’s Creed, Call of Duty dan masih banyak lagi.
Kita bisa menggunakan game engine ini secara free. Di blognya disebutkan kalau kita bisa mendownloadnya secara free dan game buatan kita itu bisa dirilis untuk platform iOS dan Android secara free tanpa ada biaya tambahan lagi.
Memang sih, sudah ada beberapa game engine 3D yang sudah cukup populer di kalangan pengembang game mobile saat ini. Tapi yang menarik dari Project Anarchy ini adalah janji dari Havok kalau game engine ini benar-benar free tanpa ada embel-embel biaya lisensi atau pemotongan fitur seperti halnya game engine yang lain (misal: Unity3D atau Unreal).
Nah.. Kalau memang benar apa yang dijanjikan oleh Havok tadi, maka kita memiliki peluang untuk membuat game 3D di mobile sekualitas game AAA tanpa harus mengeluarkan biaya apapun untuk enginenya. 
Havok Physics is fully multi-threaded and cross-platform optimized for leading game platforms including, Xbox One®, the all-in-one games and entertainment system from Microsoft, Xbox 360™ video game and entertainment system, Playstation® 4, PlayStation®3 computer entertainment system, PC Games for Windows, PlayStation Vita®, Wii™, Wii U™, Android™, iOS, Apple Mac OS and Linux. 

UNITY3D
Unity 3D adalah sebuah game developer software yaitu sebuah software game engine pembuat game. Unity 3D adalah alat authoring yang terintegrasi untuk menciptakan video game 3D atau konten interaktif lainnya seperti visualisasi arsitektur atau real-time animasi 3D. Lingkungan pengembangan Unity 3D yang berjalan pada Microsoft Windows dan Mac OS X, dan game yang dihasilkan dapat dijalankan pada Windows, Mac, Xbox 360, PlayStation 3, Wii, iPad, iPhone, serta platform Android. 
Unity 3D tersedia dalam dua versi, ada yang free dan ada juga yang berlisensi. Tentu saja ada fitur-fitur atau tool - tool yang di tonjolkan apabila kita memiliki unity 3D yang versi berlisensi. Saya kurang begitu tahu fitur-fitur apa saja yang ada dalam versi bayar karena di sini saya hanya pakai versi free.
Unity 3D juga memiliki kemampuan mengekspor game untuk fungsional Tahap 3D Adobe di Flash, tapi fitur tersebut di  webplayer tidak bisa digunakan karena keterbatasan yang ada di Flash. unity 3d sebenarnya hampir mirip seperti Director, Blender game engine, Virtools,
Torque Game Builder, and Gamestudio, yang menggunakan juga graphical environment sebagai metode utama dalam pembuatan game. 
Bagi programer yang jago java dan C#, unity adalah salah satu game engine yang mendukung bahasa pemrograman tersebut yang juga merupakan salah satu dari kelebihan unity 3D.
Kelebihan
-  GRATIS! Engine ini bisa dimanfaatkan secara cuma-cuma dan versi gratisnya sudah sangat memadai untuk bikin game di Windows Phone 8.
-  Akan sangat mempercepat desain level / layout di game dengan adanya editor WYSIWYG (What You See Is What You Get). Gak perlu nunggu build / compile, kita udah bisa lihat contoh tampilan game di layar dengan resolusi tertentu.
-  Unity Asset Store sudah sediakan segudang asset siap pakai (ada yang FREE, ada juga yang berbayar). Kalau kita butuh sound effect, atau karakter untuk game kita, bisa berkunjung ke asset store ini.
-  Bahasa yang digunakan sama dengan development windows phone, yaitu C#. Bisa juga pilih bahasa mirip Javascript, mereka menyebutnya UnityScript.
Kekurangan
-  Butuh penyesuaian yang agak kompleks saat mau develop game 2d tanpa bantuan plugin. Kenapa kompleks? karena ada kebutuhan menggunakan aplikasi modelling 3d (nah..) untuk membuat bingkai sprite.
-  Perlu penyesuaian mengikuti gaya Component Based. Di Unity, semua logic game (misalkan logic untuk Player, Enemy, Weapon) di”tempelkan” langsung ke object via scripting. Contoh nyatanya, misalkan dalam game kita ada object Mobil, “mesin” untuk menggerakkan mobil adalah 1 komponen, dan “setir mobil” juga merupakan 1 komponen.



Unity3D Physics Engine

Unity3D Physics
Physics
Unity memiliki game engine physics Ageia PhysX yang terintegrasi. Hal ini memungkinkan behavior dalam game dibuat dengan unik dan sesuai dengan fisika.
Basics
Untuk menerapkan sifat fisika ke suatu objek, dilakukan dengan menambahkan component RigidBody
Setelah ini, objek akan terpengaruh dengan gravitasi dan bisa bertubrukan dengan objek lain yang ada di dalam scene.
Rigidbodies
Rigidbody dapat digunakan pada benda-benda yang dapat didorong oleh player seperti peti atau objek lepas. Joint juga dapat ditambahkan ke rigidbody untuk membuat behavior dari suatu objek lebih kompleks, contohnya membuat suatu pintu dengan engselnya atau suatu rantai yang terhubung dan berayun.
Rigidbody juga dapat digunakan untuk membuat kendaraan. Untuk membuat mobil, dapat mengginakan 4 Wheel Collider dan suatu script yang memberikan gaya pada roda berdasarkan input user. Pesawat dapat dibuat dengan mengaplikasikan gaya ke objek dari suatu script, atau anda dapat juga membuat kendaraan khusus atau robot dengan menambahkan joint.
Rigidbody biasanya sering digunakan bersamaan dengan primitive collider.
Constant Force
Constant Force adalah suatu cara untuk menambahkan gaya konstan pada suatu rigidbody, misalnya untuk membuat tembakan roket yang berakselerasi.


A rocket propelled forward by a Constant Force
Properties






Force
Vektor gaya yang diberikan pada seluruh world.
Relative Force
Vektor gaya yang diberikan pada wilayah lokal objek tertentu.
Torque
Vektor dari torsi yang diberikan pada seluruh world. Objek aka berputar terhadap vector ini. Semakin panjang vector semakin cepat rotasi.
Relative Torque
Vektor dari torsi yang diberikan pada wilayah lokal objek tertentu.

Sphere Collider
Sphere Collider adalah suatu deteksi collision berbentuk bola.
Properties






Material
Materi fisik yang menentukan sifat collider ini dalam berinteraksi dengan objek lain. Hal ini menentukan sifat pantul dari objek.
Is Trigger
Jika dicentang, maka collider ini digunakan untuk memicu event, dan tidak dianggap oleh physics engine.
Radius
ukuran Collider.
Center
Posisi collider.

Details
Sphere Collider dapat di-resize dan sangat bagus untuk bola, kelereng dan benda berbentuk bulat sempurna lainnya.
Collider bekerja dengan Rigidbody untuk memeberikan sentuhan fisika di Unity. Rigidbody (benda tegar) memungkinkan suatu objek dikendalikan oleh fisika, Collider memungkinkan suatu objek bertubrukan sesuai hukum fisika. Suatu collider tidak harus memiliki rigidbody sedangkan suatu rigidbody harus dipasang agar suatu objek bergerak sebagai hasil dari suatu tubrukan.

Triggers

Cara lain menggunakan Collider adalah menjadikannya sebagai trigger/pemicu. Trigger tidak dianggap oleh physic engine. Trigger akan mengirim sinyal/message apabila bertubrukan. Trigger sering digunakan untuk even seperti cutscenes, pintu terbuka otomatis, menampilkan pesan tutorial, dsb.
Box Collider
Box Collider adalah suatu deteksi collision berbentuk kubus.


A pile of Box Colliders
Properties






Material
Materi fisik yang menentukan sifat collider ini dalam berinteraksi dengan objek lain. Hal ini menentukan interaksi collider ini dengan objek lainnya.
Is Trigger
Jika dicentang, maka collider ini digunakan untuk memicu event, dan tidak dianggap oleh physics engine.
Size
Ukuran collider pada arah X, Y, Z.
Center
Posisi collider pada wilayah lokal objek.

Details
Box Collider dapat di-resize dengan bermacam-macam bentuk prisma segi-empat. Sangat cocok untuk pinto, tembok, platform, atau objek simple yang berbentuk kotak.
Mesh Collider
Mesh Collider dibuat berdasarkan suatu Mesh, sehingga jauh lebih akurat untuk deteksi collision dibandingkan menggabungkan antar berbagai macam Collider. Mesh Collider yang dijadikan Convex dapat bertubrukan dengan Mesh Collider lainnya.


A Mesh Collider used on level geometry
Properties






Material
Materi fisik yang menentukan sifat collider ini dalam berinteraksi dengan objek lain. Hal ini menentukan interaksi collider ini dengan objek lainnya..
Is Trigger
Jika dicentang, maka collider ini digunakan untuk memicu event, dan tidak dianggap oleh physics engine.
Mesh
Mesh yang akan digunakan untuk collision.
Smooth Sphere Collisions
Jika di-enable maka gaya normal mesh akan diperhalus. Ini cocok dilakukan pada permukaan halus.
Convex
Jika di-enable Mesh Collider akan bertubrukan dengan Mesh Collider lainnya. Mesh Collider Convex terbatas pada 255 segitiga.

Hints
  • Mesh Colliders tidak dapat berbenturan dengan sesame kecuali tertanda sebagai Convex. Karena itu, Mesh Collider sangat cocok untuk object background.
  • Convex Mesh Colliders terbatas pada 255 segitiga.
  • Collider biasa lebih hemat komputasi untuk objek yang terpengaruh fisika.
Physic Material
Physic Material digunakan untuk mengatur gesekan dan efek memantul dari objek yang berbenturan.
Untuk membuat suatu Physic Material, pilih Assets->Create->Physic Material dari menu bar kemudian drag objeknya dari Project View ke Scene.
Properties






Dynamic Friction
Gesekan yang digunakan saat mulai bergerak. Biasanya memiliki nilai 0-1. Nilai 0 seperti es, nilai 1 akan memberikan gesekan yang sangat tinggi.
Static Friction
Gesekan yang digunakan saat suatu objek terletak pada suatu permukaan. Jangkauan nilai 0-1.
Bouncyness
Menentukan sifat pantul permukaan objek. Dengan nilai 0, maka benda tidak akan memantul, nilai 1 maka benda memantul tanpa kehilangan energy.
Friction Combine Mode
Cara gesekan dari kedua objek digabungkan.
Average
Nilai gesekan dari kedua objek dirata-rata.
Min
Menggunakan nilai gesekan terkecil dari kedua gesekan.
Max
Menggunakan nilai gesekan terbesar dari kedua gesekan.
Multiply
Kedua gesekan dikalikan.
Bounce Combine
Cara kedua sifat pantul dari kedua objek digabungkan. Mode yang sama dengan Friction Combine Mode.
Friction Direction 2
Arah anisotropy. Gesekan anisotropic di-enable jika arah ini bukan 0. Dynamic Friction 2 dan Static Friction 2 akan diaplikasikan bersama Friction Direction 2.
Dynamic Friction 2
Jika anisotropic friction di-enabled, DynamicFriction2 akan diaplikasikan bersama Friction Direction 2.
Static Friction 2
Jika anisotropic friction di-enabled, StaticFriction2 akan diaplikasikan bersama Friction Direction 2.

Details
Friction/gesekan adalah nilai yang mencegah 2 buah benda yang bersentuhan agar tidak saling tergelincir. Nilai ini sangat penting pada saat ingin menumpuk objek. Gesekan ada dua jenis yaitu statis dan dinamis. Gaya gesek statis digunakan saat objek berada dalam keadaan diam. Ia akan mencegah objek untuk bergerak. Jika suatu gaya diberikan dalam jumlah yang cukup besar, maka benda akan mulai bergerak dan gaya gesek yang berlaku adalah gaya gesek dinamis.
Hinge Joint
Hinge Joint menggabungkan 2 objek Rigidbody, membatasi gerakan mereka seolah terhubung oleh suatu sendi. Sangat cocok untuk pintu, dan bisa juga untuk memodelkan rantai, bandul, dll.



 




Sumber :
http://kirmann.wordpress.com/2010/08/26/apa-itu-physic-engine/#more-377
http://www.havok.com/products/physics
http://gery-casakom.blogspot.com/2010/10/teknologi-kartu-grafis-vga-nvidia.html 
http://imild.wordpress.com/2013/04/14/project-anarchy-3d-engine-yang-benar-benar-free-3/
http://ekagib.wordpress.com/2010/06/15/unity3d-physics-engine/

Minggu, 19 Oktober 2014

Istilah Dalam Pemrograman JAVA

Istilah Dalam Pemrograman JAVA

- Object
Semua benda yang  ada di dunia nyata (realworld) dapat dianggap sebagai objek (dalam b.inggris = object). Contoh : komputer, lemari, sepeda, meja, dll. Di dalam bahasa pemrograman java dalam penulisan kode program, object dibangun dari atribut-atribut dan method-method. Object merupakan hasil instansiasi dari class, artinya objek terbentuk dari sebuah class. Pada prinsipnya objek adalah sebuah pointer. Selama tidak bersifat static, programmer dapat melakukan sesuatu hanya terhadap objek tertentu dari kelas. Untuk membuat objek dari suatu class kita harus menggunakan operator NEW dengan cara :
  1. NamaKelas NamaObjek = new NamaConstractor();
  2. NamaKelas Namaobjek;
    NamaObjek = new NamaConstractor();
Proses di atas disebut instansiasi. ketika objek selesai dibuat, objek tersebut disimpan didalam memori dan dapat diakses oleh objek-objek lain melalui nama objeknya.
Kalau kita analogikan, class  itu sebuah cetakan sedangkan  object  itu  adalah  barang  dari  hasil cetakan.  Class  juga  bisa  dikatakan  sebagai kategori, sedangkan object adalah sesuatu yang memenuhi syarat-syarat yang harus dipenuhi agar masuk dalam kategori  tersebut.  Jadi  bisa dibilang satu class  bisa mempunyai banyak object, setiap object mempunyai sifat yang sama persis seperti yang didefnisikan dalam class tersebut. Untuk pemberian nama sebuah objek, diawali dengan huruf kecil. Pembuatan objek untuk class Mahasiswa adalah sebagai berikut:

Mahasiswa mahasiswa;             //deklarasi objek
mahasiswa = new Mahasiswa();   //instansiasi dari kelas Mahasiswa
Mahasiswa mahasiswa= new Mahasiswa();   //dijadikan satu

Setiap obyek mempunyai identitas yang unik, seperti halnya setiap orang mempunyai identitas yang unik. Contoh : Mahasiswa mempunyai Nim dimana nim seorang mahasiswa berbeda dengan mahasiswa yang lain.


- Class
Class merupakan prototipe/blueprints/template untuk mendefinisikan atribut-atribut dan method-method yang nantinya akan diinstansiasi menjadi objek.
Contoh:

public class Main
{
public static void main(String[] args) {
Penjumlahan p = new Penjumlahan(5,9);
System.out.println(p.hitungPenjumlahan());
Penjumlahan q = new Penjumlahan(7,9);
System.out.println(q.hitungPenjumlahan());
}
}
class Penjumlahan
{
int a;
int b;
public Penjumlahan(int a, int b)
{
this.a = a;
this.b = b;
}
public int hitungPenjumlahan()
{
return a + b;
}


- Instance
Instantiation adalah proses pembuatan obyek spesifik yang merupakan anggota atau instan dari kelas.
Dalam bahasa pemrograman berorientasi objek terdapat 2 macam instance yaitu :
Instance Variables (tidak statis) adalah objek penyimpan variabel yang tidak dideklarasikan dengan kata kunci static dalam kategori non-statis, atau dapat berubah-ubah. Suatu kelas dapat dijelmakan ke dalam beberapa objek. Nilai yang terkandung dalam variabel tak-statis ini berbeda untuk setiap objek dari class yang sama.
Instance method adalah methodnya object yaitu method yang hanya bisa dibaca setelah class tersebut diturunkan ke object. Instance method adalah method yang ditakdirkan untuk sesuatu instance (objek suatu kelas) Instance Method bisa dikatakan juga sebagai fungsi yg beroperasi pada objek untuk memanipulasi state objek lewat pesan yg diterima dari obek lain.
Contoh:

public class Misteri {
   private Integer id;
   private String jenisMisteri;

   public static void main(String[] args){
      Misteri misteri = new Misteri();
      misteri.setId(1);
      misteri.setJenisMisteri("Misteri Java");

      Misteri bedaMisteri = misteri;
      bedaMisteri.setJenisMisteri("Beda Misteri");
   }

   public Integer getId() {
      return id;
   }

   public void setId(Integer theId) {
      this.id = theId;
   }

   public String getJenisMisteri() {
      return jenisMisteri;
   }

   public void setJenisMisteri(String theJenisMisteri) {
      this.jenisMisteri= theJenisMisteri;
   }
}

#id dan jenisMisteri merupakan Instance Variable.


- Inheritance
Inheritance merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class induk atau class yang mewarisi disebut sebagai superclass, sedangkan class anak atau class yang diwarisi disebut sebagai subclass.
Contoh:

class Parent {
public int x = 5;
}

class Child extends Parent {
public int x = 10;
public void Info(int x) {
System.out.println("Nilai x sebagai parameter = " + x);
System.out.println("Data member x di class Child = " + this.x);
System.out.println("Data member x di class Parent = " +
super.x);
}

}
public class NilaiX {
public static void main(String args[]) {
Child tes = new Child();
tes.Info(20);
}
}


- Polymorphism
Kemampuan dari sebuah object untuk membolehkan mengambil  beberapa bentuk yang berbeda disebut dengan polimorphism. Dengan menggunakan satu method yang sama, beberapa objek akan mengimplementasikan bentuk/hasil yang berbeda.
Contoh:

class A
{
    void x()
    {
        System.out.println("A.x()");
    }
   
   
    void y()
    {
        System.out.println("A.y()");
    }
}
class B extends A
{
    /*
     *Kelas B akan memiliki 3 buah method, yaitu x,y dan z
     */
   
    //Method y di overriding
    void y()
    {
        System.out.println("B.y()");
    }
   
    //method z yang hanya ada di B
    void z()
    {
        System.out.println("B.z()");
    }
}
class MyInheritance03
{
    public static void main(String[] args)
    {
        A a = new A();  //bukan polymorphisme
        A ab = new B(); //POLYMORPHISME !!!
        B b = new B();  //bukan polymorphisme
       
        System.out.println("\nA a = new A()");
        a.x();
        a.y();
       
        /*
         *Method-method yang dapat dipanggil dari variabel
         *reference ab hanyalah method x dan y sebab type
         *dari ab adalah A.
         */
        System.out.println("\nA ab = new B()");
        ab.x(); //x yang dijalankan adalah x dari A
        ab.y(); //y yang dijalankan adalah y dari B
        //ab.z()    //tidak ada !!!
       
        System.out.println("\nB b = new B()");
        b.x();
        b.y();
        b.z();
    }
}


Sumber :
http://www.rezamaulana.name/materi-kuliah/istilah-istilah-di-dalam-pemrograman-java/ http://ebookrudy.wordpress.com/2012/04/19/pengertian-inheritance-dan-polymorphism-beserta-contoh-program/
http://followmie.wordpress.com/2013/03/13/penjelasan-class-pada-java/ 
http://riaayues.blogspot.com/2013/11/contoh-sederhana-class-dan-object-pada.html
http://arihputra.blogspot.com/2010/11/java.html