Laman

Tampilkan postingan dengan label pengertian class dan object. Tampilkan semua postingan
Tampilkan postingan dengan label pengertian class dan object. Tampilkan semua postingan

Senin, 18 Mei 2015

Inheritance, Harta Warisan Sang Nenek Moyang Program

Heyy... Kawan semua, kali ini kita akan ngobrol-ngobrol lagi. Kali ini masih tentang pemrograman object oriented. Apanya yang dibahas lagi? Inheritance.

Tahu kan apa itu class dan object? Ternyata harta kekayaan sebuah class yang berupa property, method dan berbagai proses di dalam class itu bisa diwariskan kepada class lain yang lebih baru (pembuatannya).

Apa fungsinya? Tentu saja bisa menghemat waktu. Bayangkan ada 43 method dalam class A, kita butuh 38 method yang sama dengan sebagian method di class A untuk ditempatkan di class B. Nggak mungkin ditulis ulang kali ya?? Dicopast juga menuhin tempat aja kan? Pakai alias juga masih tetep ribet.

Kita suruh saja si class A mewariskan semua method dan propertinya kepada class B. Nanti di class B sendiri kita bisa pilih-pilih mana method yang kita perlukan, bisa langsung dipakai dengan fungsi persis ketika dijalankan di class A tanpa coding ulang ataupun alias.

Pada contoh kali ini, kita akam menggunakan analogi antara seorang mbah yang mewariskan Emas 24 karat kepada cucunya. Sedangkan cucunya telah memiliki mobil sport mewah. Tapi setelah proses inheritance, apa saja benda kekayaan sang cucu?

-C#
using System;

namespace OOP2Inheritance
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            cucu c = new cucu();
            c.punyacucu();
        }
    }

    public class mbah
    {
        public void punyambah()
        {
            string benda;
            benda = "Emas 24 Karat";

            Console.WriteLine ("Barang Berharga Saya " + benda);
        }
    }

    public class cucu : mbah
    {
        public void punyacucu()
        {
            string benda;
            benda = "Mobil Sport Mewah";

            this.punyambah ();

            Console.WriteLine ("Barang Berharga Saya " + benda);
        }
    }
}
- C++
#include <iostream>

using namespace std;

class mbah
{
    public:

    void punyambah()
    {
        string benda;
        benda = "Emas Murni 24 Karat";

        cout<<"Benda Berhargaku "<<benda<<endl;
    }
};

class cucu : mbah
{
    public :

    void punyacucu()
    {
        string benda;
        benda = "Mobil Sport Mewah";

        punyambah();

        cout<<"Benda Berhargaku "<<benda<<endl;
    }
};

int main()
{
    cucu c;
    c.punyacucu();

    return 0;
}
- Java
#include <iostream>

using namespace std;

class mbah
{
    public:

    void punyambah()
    {
        string benda;
        benda = "Emas Murni 24 Karat";

        cout<<"Benda Berhargaku "<<benda<<endl;
    }
};

class cucu : mbah
{
    public :

    void punyacucu()
    {
        string benda;
        benda = "Mobil Sport Mewah";

        punyambah();

        cout<<"Benda Berhargaku "<<benda<<endl;
    }
};

int main()
{
    cucu c;
    c.punyacucu();

    return 0;
}
Kemudian menampilkan hasil sebagai berikut :

Pada kasus yang lebih real, seperti yang sudah disebutkan sebelumnya, bisa jadi class mbah berisi 80-an method baik berupa fucntion maupun procedure. Ketika class cucu membuthukan 80 method, tidak perlu copy paste sehingga boros catatan, maka bisa dibuat mbah mewariskan 80 methodnya dan semua properti.

Inheritance sangat membantu dalam pemrograman berbasis object oriented dan memang menjadi salah satu komponen penting dalam metode pemrograman berbasis object oriented.

Overriding, Solusi Galau ketika Inheritance bertemu Pholimorphism

Heeeyy.. Selamat datang kembali kawan pembaca. Kali ini kita akan ngobrolin Overriding di dalam pemrograman metode pemrograman object oriented. Kali ini kita anggap bahwa kita sudah semakin pintar dan paham apa itu Inheritance dan Pholimorphism.

Ternyata di saat-saat tertentu keduanya bertemu dalam satu program dan membuat kita semakin puyeng. Tapi ternyata dengan memahami Overriding, kita tidak akan puyeng lagi menemukan si Pholimorphism dangan Inheritance.



Langsung saja, bagaimana kita menerapkan Overriding terhadap Pholimorphism dan Inheritance dalam codingnya, berikut contohnya :

-C#
using System;

namespace OOP2Overridingku
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            ahliwar a = new ahliwar ();

            a.warna ();
        }
    }

    public class pewaris
    {
        public virtual void bentuk()
        {
            string bentuknya;

            bentuknya = "kotak";

            Console.WriteLine ("Bentuknya "+bentuknya);
        }
    }

    public class ahliwar : pewaris
    {
        public override void bentuk()
        {
            string bentuknya;

            bentuknya = "limas";

            Console.WriteLine ("Bentuknya "+bentuknya);
        }

        public void warna()
        {
            string warnanya;

            this.bentuk ();

            warnanya = "kuning";

            Console.WriteLine ("Warnanya "+warnanya);
        }
    }
}

-C++
#include <iostream>

using namespace std;

class pewaris
{
    public:

    virtual void bentuk()
    {
        string bentuknya;
        bentuknya = "Kotak";

        cout<<"Bentuknya "<<bentuknya<<endl;
    }
};

class ahliwar : public pewaris
{
    public :

    void bentuk()
    {
        string bentuknya;
        bentuknya = "Kerucut";

        cout<<"Bentuknya "<<bentuknya<<endl;
    }

    void warna()
    {
        string warnanya;
        warnanya = "Merah";

        bentuk();

        cout<<"Warnanya "<<warnanya<<endl;
    }
};


int main()
{
    ahliwar a;

    a.warna();

    return 0;
}

- Java
 public class overriding
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        ahliwaris w = new ahliwaris();
       
        w.warna();
    }
}

class pewaris
{
    public void bentuk()
    {
        String bentuk;
       
        bentuk = "Panjang";
        System.out.print("Bentuknya "+bentuk);
    }
}

class ahliwaris extends pewaris
{
    @Override
    public void bentuk()
    {
        String bentuk;
       
        bentuk = "Kotak Panjang";
        System.out.println("Bentuknya "+bentuk);
    }
   
    public void warna()
    {
        String warna;
       
        this.bentuk();
       
        warna = "Merah";
        System.out.println("Warnanya "+warna);
    }
   
}
Kurang lebih tampilan yang dikeluarkan akan seperti gambar berikut :


Overriding di atas telah berhasil menemukan sifat penurunan class inheritance dan banyak kembaran methode Pholimorphism.

Minggu, 17 Mei 2015

Pengertian Class dan Object dalam Object Oriented Programming

 Hiiiiiii... Terimakasih telah berkunjung. Kali ini kita akan ngobrol tentang pengertian object dan class dalam pemrograman object oriented.

OOP (object oriented programing) adalah sebuah metode kerja pemrograman yang bisa menghindarkan kita dari oding yang terlalu panjang dan letak error yang sulit dideteksi. Metode kerja OOP ini akan sangat terasa manfaatnya jika kita membuat program yang sangat besar dan membutuhkan code program yang sangat banyak dan kompleks. Kita-kita yang masih newbie mungkin tidak begitu merasakan manfaatnya, jadi dipelajari saja dulu yuk..



Pengertian class dalam OOP adalah cetakan/mold penghasil object. Maka object adalah hasil akhir atau produk jadi dari proses yang ada di dalam class.

Maka di dalam class ada berbagai kegiatan yang pada akhirnya harus mampu menciptakan obyek. Lalu kenapa kita butuh cetakan class dalam coding kita?

Jawabannya, untuk menyingkat pekerjaan. Mengapa bisa? Bukannya membuat class akan nambah-nambah coding kita?

Jawabannya, class akan sangat membantu dalam pembangunan program yang besar. Seumapama dalam program besar yang kita bangun, kita berkali-kali membutuhkan perhitungan matematika sebagai berikut di program kita (kalau malas baca rumusnya berarti anda sehat): hasil = a x b + d + a + w: (4 + 3 :2)  + * j + k _ r + q_* 2 * 10 : t + r + f  +  w - t + t : g + j + k - e - t - f : g : j : w * d * 5 * 7 * r * 4 * s + f * 7 + 1  a * m - 2 - r : 4 + 5 * z - x : y - h - b  - e - n - m - o - 20 + g + 40, p : 2, hasil = hasil * 3 + 77 : 2.

Daripada menuliskan rumus aneh begitu berulang-ulang, pembentukan class baru yang berisi perhitungan rumus yang aneh dan panjang itu bisa menjadi alternatif yang bisa dipanggil saat-saat diperlukan.

Lalu bagaimana proses lebih dalam tentang apa-apa yang ada di dalam class? Bagaimana menyusun proses-proses itu? Akan kita bahas dalam tulisan berikutnya tentang Method dan Properti.