Laman

Tampilkan postingan dengan label contoh class. Tampilkan semua postingan
Tampilkan postingan dengan label contoh class. Tampilkan semua postingan

Senin, 18 Mei 2015

Pholimorphism, Banyak Method Program Kembar dan Manfaatnya

Haloo.. Kawan sekalian. Kali ini kita akan kembali ngobrol tentang OOP. Kali ini spesifik tentang pholimorphism yang pada penampakan codingnya berupa beberpa method dengan nama kembar. Apa tidak error? Tentu tidak dengan beberapa ketentuan.

Ketentuannya sebagai berikut :
- Harus memiliki parameter yang type datanya berbeda atau jumlah yang berbeda.
- Isis dari masing-masing method boleh berbeda-beda

Apa manfaatnya?

Tentu kita tahu ada type data integer dan double diantara banyak type data lainnya. Kadang kita membutuhkan integer, kadang juga butuh double untuk dijadikan parameter. Jadi dengan nama method yang sama, bisa secara otomatis memberi option bagi inputan parameter. Kalau nilai yang diinputkan sebagai parameter berupa integer, method dengan parameter integer yang akan berjalan. Sebaliknya jika nilai yang diinputkan berupa double, method dengan parameter double yang berjalan.

Bagaimana codingnya ?

- C#
using System;

namespace OOP2Pholimorphism
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Console.Write ("Total Untungnya : ");
            penjualan (3000, 2000, 10);

            Console.Write ("Total Untungnya : ");
            penjualan (3000, 2000, 5.5);
        }

        static void penjualan (int hjual, int hbeli, int banyak)
        {
            int untung;

            untung = hjual - hbeli;
            untung = untung * banyak;

            Console.WriteLine (untung);
        }

        static void penjualan (int hjual, int hbeli, double banyak)
        {
            double untung;

            untung = hjual - hbeli;
            untung = untung * banyak;

            Console.WriteLine (untung);
        }
    }
}
- C++
#include <iostream>

using namespace std;

class jualan
{
    public :
    double untung;

    void penjualan (int hjual, int hbeli, int banyaknya)
    {
        untung = hjual - hbeli;
        untung = untung * banyaknya;

        cout<<untung<<endl;
    }

    void penjualan (int hjual, int hbeli, double banyaknya)
    {
        untung = hjual - hbeli;
        untung = untung * banyaknya;

        cout<<untung<<endl;
    }
};

int main()
{
    jualan j;

    cout<<"Hasil Penjualan Anda Rp ";
    j.penjualan(9000, 7000, 10);

    cout<<"Hasil Penjualan Anda Rp ";
    j.penjualan(9000, 7000, 10.5);

    return 0;
}
- Java
package pholimorphism;

public class pholimorphism {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        jual j = new jual();
        j.penjualan(5800, 3200, 10);
       
        j.penjualan(5800, 3200, 10.5);
    }
}

 class jual
{
    public double untung;
   
    void penjualan(int hjual, int hbeli, int banyaknya)
    {
        untung = hjual - hbeli;
        untung = untung * banyaknya;
       
        System.out.println("Keuntungan Anda : Rp "+untung);
    }
   
    void penjualan(int hjual, int hbeli, double banyaknya)
    {
        untung = hjual - hbeli;
        untung = untung * banyaknya;
       
        System.out.println("Keuntungan Anda : Rp "+untung);
    }
}
Hasilnya bagaima?


Method baris pertama merupakan hasil dari method dengan parameter type integer. Baris kedua nerupakan hasil dari method dengan parameter type double.



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.