Tuesday 16 April 2013

Hallo kawan Ideos, kali ini kita akan membahas apa yang namanya Inheritance atau biasanya disebut pewarisan. Sebenarnya di postingan terdahulu sudah ane bahas mengenai pewarisan ini, namun yang ane contohkan dalam bahasa pemrograman Java. Sebenarnya gak jauh beda sih ama Java, yang membedakan cuma sintaxnya saja .

Baiklah, sekarang mari kita review kembali materi mengenai Inheritance. Inheritance merupakan penurunan sifat atau pewarisan dimana dimisalkan suatu induk tentunya akan memiliki anak yang mewarisi sebagian atau seluruh sifat induknya. Dalam hal ini suatu class induk/parent disebut sebagai super class dan anak/child disebut sebagai sub class.

Hirarki Class

inheritanceHirarki.jpg

Dengan konsep Inheritance ini merupakan sebuah keuntungan karena kita hanya perlu
menuliskan atau mendefinisikan suatu method pada superclass dan secara otomatis subclass akan mewarisi sifat tersebut atau method tersebut. Untuk mendefinisikan subclass kita menggunakan kata kuci extends, berikut contoh programnya :

Hirarki Class yang akan kita buat.

inheritance_thumb.jpg

Parent Class : Kendaraan
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Kendaraan
    {
        private int _jumlahRoda;
        private int _kecepatan;
        private String _warna;
        

        public int JumlahRoda
        {
            get { return _jumlahRoda; }
            set { _jumlahRoda = value; }
        }

        public int Kecepatan
        {
            get { return _kecepatan; }
            set { _kecepatan = value; }
        }

        public String Warna
        {
            get { return _warna; }
            set { _warna = value; }
        }

        public virtual void Mengerem()
        {
            Console.WriteLine("Kendaraan Mengerem .. !!!");
        }

        public void Melaju()
        {
            Console.WriteLine("Kendaraan Melaju .. !!!");
        }
        
    }
}

Pada method Mengerem() terdapat keyword virtual. Keyword ini menandakan bahwa method tersebut dapat di override/ditimpa oleh class turunannya. Artinya kita boleh mengubah isi dari method Mengerem().

Subclass Air
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Air : Kendaraan
    {
        public void Berlayar()
        {
            Console.WriteLine("Berlayar di air .. !!!");
        }
    }
}

simbol ‘:’ menandai bahwa class Air mewarisi keseluruhan dari class Kendaraan

Selanjutnya Subclass Darat
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Darat : Kendaraan
    {
        public void Berjalan()
        {
            Console.WriteLine("Berjalan di tanah .. !!!");
        }

    }
}

Subclass Udara
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Udara : Kendaraan
    {
        public void Terbang()
        {
            Console.WriteLine("Terbang di udara .. !!!");
        }
    }
}

Subclass Perahu
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Perahu : Air
    {
       
        public override void Mengerem()
        {
            Console.WriteLine("Perahu mengerem .. !!!");
        }
    }
}

Pada method Mengerem() diatas terdapat keyword override. Keyword ini menandakan bahwa isi method tersebut menimpa method Mengerem() pada class parentnya.

Subclass Mobil
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Mobil:Darat
    {
        public Mobil()
        {
            Warna = "Merah";
            JumlahRoda = 4;
            Kecepatan = 100;
        }

        public new void Mengerem()
        {
            Console.WriteLine("Mobil Mengerem di tanah .. !!!");
        }
    }
}

Subclass Motor
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Motor : Darat
    {
        public Motor()
        {
            Warna = "Merah";
            JumlahRoda = 2;
            Kecepatan = 100;
        }

        public override void Mengerem()
        {
            Console.WriteLine("Motor Mengerem .. !!!");
        }
    }
}

Subclass Pesawat
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Pesawat:Udara
    {
        public Pesawat()
        {
            Warna = "Biru";
            JumlahRoda =3;
            Kecepatan = 200;
        }
    }
}

Sekarang kita akan membuat sebuah class lagi untuk uji coba Inheritance.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Program
    {
        static void Main(string[] args)
        {
            //inheritance
            Console.WriteLine("Inheritance");
            Mobil mobil = new Mobil();
            Motor motor = new Motor();
            Perahu perahu = new Perahu();
            Pesawat pesawat = new Pesawat();

            perahu.Melaju();
            perahu.Warna = "Hijau";
            perahu.Kecepatan = 30;
            perahu.JumlahRoda = 0;
            Console.WriteLine("Warna Perahu :{0} ", perahu.Warna);
            Console.WriteLine("Kecepatan Perahu :{0} ", perahu.Kecepatan);
            Console.WriteLine("Jumlah roda Perahu :{0} ", perahu.JumlahRoda);
            Console.WriteLine("---------------------");

            mobil.Melaju();
            Console.WriteLine("Warna Mobil :{0} ", mobil.Warna);
            Console.WriteLine("Kecepatan Mobil :{0} ", mobil.Kecepatan);
            Console.WriteLine("Jumlah roda Mobil :{0} ", mobil.JumlahRoda);
            Console.WriteLine("---------------------");

            motor.Melaju();
            Console.WriteLine("Warna Motor :{0} ", motor.Warna);
            Console.WriteLine("Kecepatan Motor :{0} ", motor.Kecepatan);
            Console.WriteLine("Jumlah roda Motor :{0} ", motor.JumlahRoda);
            Console.WriteLine("---------------------");

            pesawat.Melaju();
            Console.WriteLine("Warna Pesawat :{0} ", pesawat.Warna);
            Console.WriteLine("Kecepatan Pesawat :{0} ", pesawat.Kecepatan);
            Console.WriteLine("Jumlah roda Pesawat :{0} ", pesawat.JumlahRoda);

            Console.ReadKey();
        }
    }
}

Jalankan program kawan-kawan.

4-14-2013 7-23-34 PM
Catatan :

Keyword virtual : menandakan bahwa method dengan keyword ini boleh di override/timpa oleh subclassnya.

Keyword override : menandakan bahwa isi dari method tersebut menimpa method di parentclassnya.

Keyword new : method ini tidak menimpa method di parentclassnya tapi hanya disembunyikan. Method dengan keyword ini memiliki nama yang sama dengan method turunan dari parentclassnya.

Oke kawan-kawan, untuk postingan kali ini ane akhiri sekian. Sampai jumpa di postingan berikutnya.


Bersambung …

Posted by Unknown On 02:27 No comments

0 comments:

Post a Comment

  • RSS
  • Delicious
  • Digg
  • Facebook
  • Twitter
  • Linkedin
  • Youtube

Recent Post

Entri Populer

Total Pageviews

Visitor



Flag Counter

    About

    Orang yang berilmu mengetahui orang yang bodoh karena dia pernah bodoh, sedangkan orang yang bodoh tidak mengetahui orang yang berilmu karena dia tidak pernah berilmu.