Laman

Senin, 10 Agustus 2015

Program Grosir Lele - C++ (Abstract - Interface - Innerclass - Enkapsulasi)


Program Grosir Lele berikut saya posting untuk memenuhi tugas UAS Semester 4 mata kuliah OOP 2. Program terdiri dari beberapa class dengan masing-masing type OOP.

Kodingnya sebagai berikut :


#include <iostream>

using namespace std;

class rinci_interface
{
    void perkg();
};

class rinci : rinci_interface
{
    public :

    int hargaperkg;
    int kode;

    virtual void perkg()
    {
        if (kode == 1)
        {
            cout<<"Isi 12 ekor per KG"<<endl;
        }
        else if (kode == 2)
        {
            cout<<"Isi 8 ekor per KG"<<endl;
        }
        else if (kode == 3)
        {
            cout<<"Isi 5 ekor per KG"<<endl;
        }

    }

    class umurikan
    {
        public :

        void umur(int kode)
        {
            if (kode == 1)
            {
                cout<<"Umur 4 Bulan"<<endl;
            }
            else if (kode == 2)
            {
                cout<<"Umur 8 Bulan"<<endl;
            }
            else if (kode == 3)
            {
                cout<<"Umur 10 Bulan"<<endl;
            }
        }
    };
};

class total_abstract
{
    public :

    void totalh_abstract (int jumlahkg, int kode);
};

class totalh : total_abstract
{
    public :

    int totalhrg;

    virtual void totalh_abstract (int jumlahkg, int kode)
    {
        int hargaperkg = 0;

        if (kode == 1)
        {
            hargaperkg = 6000;
        }
        else if (kode == 2)
        {
            hargaperkg = 10000;
        }
        else if (kode == 3)
        {
            hargaperkg = 12000;
        }

        totalhrg = hargaperkg * jumlahkg;
    }
};

class diskon_enkapsulasi
{
    public :

    int jdiskon;

    void Setdisk(int value)
    {
        if (value < 500000)
        {
            value = value * 5 / 100;
        }

        else if (value >= 500000 && value < 1000000)
        {
            value = value * 10 / 100;
        }

        else if (value >= 1000000 && value < 5000000)
        {
            value = value * 15 / 100;
        }

        else if (value >= 5000000)
        {
            value = value * 20 / 100;
        }

        jdiskon = value;
    }

    int Getdisk()
    {
        return jdiskon;
    }
};

int main()
{
    rinci rc;
    int berat;

    cout<<"Penjualan Ikan Lele Grosir"<<endl;
    cout<<"Masukkan kode 1, 2 atau 3 : ";
    cin>>rc.kode;
    cout<<"Masukkan Berat Pesanan : ";
    cin>>berat;
    cout<<rc.kode;

    rc.perkg ();

    rinci::umurikan ui = rinci::umurikan();
    ui.umur (rc.kode);

    totalh th;
    th.totalh_abstract(berat,rc.kode);

    cout<<"Harga Awal : Rp "<<th.totalhrg<<endl;

    diskon_enkapsulasi dsk;
    dsk.Setdisk(th.totalhrg);

    cout<<"Dapat Diskon : Rp "<<dsk.Getdisk()<<endl;
    cout<<"Harga Akhir : Rp "<<th.totalhrg - dsk.Getdisk()<<endl;

    return 0;
}
Program memang sangat sederhana, namun terdiri dari berbagai teknik pemrograman dalam object oriented programing. Mohon koreksi.

Gambarnya sebagai berikut :

contoh abstract oop, contoh enkapsulasi, contoh inner class, contoh interface, enkapsulasi oop 2, oo, oop innerclass, oop2

Program Grosir Lele - Java (Abstract - Interface - Innerclass - Enkapsulasi)

Program Grosir Lele berikut saya posting untuk memenuhi tugas UAS Semester 4 mata kuliah OOP 2. Program terdiri dari beberapa class dengan masing-masing type OOP. Kodingnya sebagai berikut :

1. Program Utama
 package juallele;
import java.util.Scanner;

public class juallele {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      
        rinci rc = new rinci ();
        Scanner input = new Scanner(System.in);
      
        System.out.println ("Penjualan Ikan Lele Grosir");
        System.out.print ("Masukkan kode 1, 2 atau 3 : ");
        rc.kode = input.nextInt();
        System.out.print ("Masukkan Berat Pesanan : ");
        int berat = input.nextInt();

        rc.perkg ();

        totalh th = new totalh ();
        th.totalh_abstract (berat,rc.kode);

        System.out.println ("Harga Awal : Rp "+th.totalhrg);

        diskon_enkapsulasi dsk = new diskon_enkapsulasi ();
        dsk.Setdisk(th.totalhrg);

        System.out.println ("Dapat Diskon : Rp "+dsk.Getdisk());
        System.out.println ("Harga Akhir : Rp "+(th.totalhrg - dsk.Getdisk()));
    }

}
2. Abstract
 package juallele;

public abstract class total_abstract {

    public abstract void totalh_abstract (int jumlahkg, int hargakg);

}
3. Total Harga yang tersambung dengan Abstract
 package juallele;

public class totalh extends total_abstract {

    public int totalhrg;

    @Override
    public void totalh_abstract (int jumlahkg, int kode)
    {  
        int hargaperkg = 0;

        if (kode == 1)
        {
            hargaperkg = 6000;
        }
        else if (kode == 2)
        {
            hargaperkg = 10000;
        }
        else if (kode == 3)
        {
            hargaperkg = 12000;
        }

        totalhrg = hargaperkg * jumlahkg;
    }
}
4. Interface
 package juallele;

public interface rinci_interfaces {

    void perkg();
  
}
5. Rinci yang tersambung dengan Interface
 package juallele;

public class rinci implements rinci_interfaces {

    public int hargaperkg;
    public int kode;
  
    @Override
    public void perkg()
    {
        if (kode == 1)
        {
            System.out.println ("Isi 12 ekor per KG");
        }
        else if (kode == 2)
        {
            System.out.println ("Isi 8 ekor per KG");
        }
        else if (kode == 3)
        {
            System.out.println ("Isi 5 ekor per KG");
        }
      
        umurikan ui = new umurikan();
        ui.umur(kode);
    }
  
    public class umurikan
    {
        public void umur(int kode)
        {
            if (kode == 1)
            {
                System.out.println ("Umur 4 Bulan");
            }
            else if (kode == 2)
            {
                System.out.println ("Umur 8 Bulan");
            }
            else if (kode == 3)
            {
                System.out.println ("Umur 10 Bulan");
            }
        }
    }

}
6. Enkapsulasi (Diskon)
 package juallele;

public class diskon_enkapsulasi {

    public int jdiskon;

    public void Setdisk(int value)
    {
        if (value < 500000)
        {
            value = value * 5 / 100;
        }

        else if (value >= 500000 && value < 1000000)
        {
            value = value * 10 / 100;
        }

        else if (value >= 1000000 && value < 5000000)
        {
            value = value * 15 / 100;
        }

        else if (value >= 5000000)
        {
            value = value * 20 / 100;
        }

        jdiskon = value;
    }
  
    public int Getdisk()
    {
        return (jdiskon);
    }

}
Program memang sangat sederhana, namun terdiri dari berbagai teknik pemrograman dalam object oriented programing. Mohon koreksi.

Gambarnya sebagai berikut :


Program Grosir Lele - Csharp (Abstract - Interface - Innerclass - Enkapsulasi)

Program Grosir Lele berikut saya posting untuk memenuhi tugas UAS Semester 4 mata kuliah OOP 2. Program terdiri dari beberapa class dengan masing-masing type OOP. Kodingnya sebagai berikut :

1. Program Utama
using System;

namespace OOP2UASjuallele
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            rinci rc = new rinci ();

            Console.WriteLine ("Penjualan Ikan Lele Grosir");
            Console.Write ("Masukkan kode 1, 2 atau 3 : ");
            rc.kode = Convert.ToInt32 (Console.ReadLine ());
            Console.Write ("Masukkan Berat Pesanan : ");
            int berat = Convert.ToInt32 (Console.ReadLine ());

            rc.perkg ();

            rinci.umurikan ru = new rinci.umurikan ();
            ru.umur (rc.kode);

            totalh th = new totalh ();
            th.totalh_abstract (berat,rc.kode);

            Console.WriteLine ("Harga Awal : Rp "+th.totalhrg);

            diskon_enkapsulasi dsk = new diskon_enkapsulasi ();
            dsk.disk = th.totalhrg;

            Console.WriteLine ("Dapat Diskon : Rp "+dsk.jdiskon);
            Console.WriteLine ("Harga Akhir : Rp "+(th.totalhrg - dsk.jdiskon));
        }
    }
}
2. Abstract
using System;

namespace OOP2UASjuallele
{
    public abstract class total_abstract
    {
        public abstract void totalh_abstract (int jumlahkg, int hargakg);
        
    }
}
3. Total Harga yang tersambung dengan Abstract
using System;

namespace OOP2UASjuallele
{
    public class totalh : total_abstract
    {
        public int totalhrg;

        public override void totalh_abstract (int jumlahkg, int kode)
        {
            int hargaperkg = 0;

            if (kode == 1)
            {
                hargaperkg = 6000;
            }
            else if (kode == 2)
            {
                hargaperkg = 10000;
            }
            else if (kode == 3)
            {
                hargaperkg = 12000;
            }

            totalhrg = hargaperkg * jumlahkg;
        }
    }
}

4. Interface

using System;

namespace OOP2UASjuallele
{
    public interface rinci_interface
    {
        void perkg();
    }
}

5. Rinci yang tersambung dengan Interface
using System;

namespace OOP2UASjuallele
{
    public class rinci : rinci_interface
    {
        public int hargaperkg;
        public int kode;

        public virtual void perkg()
        {
            if (kode == 1)
            {
                Console.WriteLine ("Isi 12 ekor per KG");
            }
            else if (kode == 2)
            {
                Console.WriteLine ("Isi 8 ekor per KG");
            }
            else if (kode == 3)
            {
                Console.WriteLine ("Isi 5 ekor per KG");
            }
        }

        public class umurikan
        {
            public virtual void umur(int kode)
            {
                if (kode == 1)
                {
                    Console.WriteLine ("Umur 4 Bulan");
                }
                else if (kode == 2)
                {
                    Console.WriteLine ("Umur 8 Bulan");
                }
                else if (kode == 3)
                {
                    Console.WriteLine ("Umur 10 Bulan");
                }
            }
        }

    }
}

6. Enkapsulasi (Diskon)
using System;

namespace OOP2UASjuallele
{
    public class diskon_enkapsulasi
    {
        public int jdiskon;

        public int disk {
            set {

                if (value < 500000)
                {
                    value = value * 5 / 100;
                }

                else if (value >= 500000 && value < 1000000)
                {
                    value = value * 10 / 100;
                }

                else if (value >= 1000000 && value < 5000000)
                {
                    value = value * 15 / 100;
                }

                else if (value >= 5000000)
                {
                    value = value * 20 / 100;
                }

                jdiskon = value;
            }

            get {
                return (jdiskon);
            }
        }
    }
}

Program memang sangat sederhana, namun terdiri dari berbagai teknik pemrograman dalam object oriented programing. Mohon koreksi.

Gambarnya sebagai berikut :

oop2, oo, contoh inner class, contoh abstract oop, contoh interface, contoh enkapsulasi, enkapsulasi oop 2, oop innerclass


Rabu, 27 Mei 2015

Pilih Distro Linux untuk Mahasiswa IT (Informatika)

Halo kawan pembaca. Kali ini kita akan ngobrol-ngobrol pilihan tepat distro Linux yang paling cocok untuk para mahasiswa IT yang mau pakai pure Opensource Linux OS. Di kalangan anak-anak IT sekarang pakai Linux merupakan nilai kekerenan tersendiri, kayak penulis yang keren ini (modus).

Langsung saja penulis paparkan distro linux yang layak dipakai mahasiswa informatika.

Menurut penulis, kita-kita mahasiswa informatika yang mau pakai linux baiknya menggunakan distro Ubuntu server LTS. Kenapa begitu?, karena Ubuntu server LTS sudah merupakan paket lengkap server, diantaranyawed server dan DNS server yang pastinya dibutuhkan dalam mata kuliah berbau PHP.

Desktop grafis user interface atau GUI-nya penulis memilih XFCE yang lumayan ringan dibanding beberapa user interface terkenal lain karena penulis juga pakai netbook intel atom dengan Ubuntu 14.04 XFCE ternyata kuat Bro. Jadilah Xubuntu Server nancep di netbook jadul dengan nyaman dan tidak beralih.

pilih distro linux server, linux server untuk anak informatika, linux untuk anak ti, linux untuk anak it, ubuntu server, gui untuk server, distro linux yang cocok


Selain itu XFCE rilis terbaru (2015) tampilannya sudah ciamik, tidak lagi jadul dan elegan-nya tidak diragukan lagi.

Pengalaman penulis saat instalasi, dengan netbook intel atom, usb installer, connect internet via Lan ke modem spidol itu membutuhkan waktu sekitar kurang dari 24 jam karena ternyata langsung download banyak paket pelengkap. Belum terhitung waktu yang penulis habiskan untuk beberapa percobaan gagal sebelumnya. Hampir seminggu pengguna Ubuntu newbie ini utak-atik laptop intel atom dengan installer USB.

Alhamdulillah ya, sekarang sudah pakai software yang halal dan legal semua ini laptop. Terbayar sudah pusing seminggu itu. Ayo gunakan Linux!

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.