Showing posts with label Program. Show all posts
Showing posts with label Program. Show all posts

Wednesday, April 18, 2012

Inheritance dan Polymorphism pada Java

1. Inheritance
Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya.
Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. 
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

Contoh implementasi inheritance :
public class Pegawai {
public String nama;
public double gaji;
}

public class Manajer extends Pegawai {
public String departemen;
}
Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut:
super.data_member -> merujuk pada data member pada parent class
super.function_member() -> merujuk pada function member pada parent class
super() -> merujuk pada konstruktor pada parent class



Contoh Program Java Inheritance
___________________________________________________________________________________________


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);
}
}

___________________________________________________________________________________________


Maka akan menghasilkan output seperti gambar berikut



2. Polymorphism
Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
olymorphism adalah salah satu dari tiga kemampuan yang mendasar yang dimiliki oleh OOP, setelah data abstraction dan inheritance.Polymorphism menyediakan cara yang berbeda pada pemisahan interface dari implementasinya, untuk memasangkan ulang apa dari bagaimana. Polymorphism memberikan organisasi kode yang lebih baik dan kode menjadi lebih mudah dibaca, juga memberikan suatu kemampuan pada program untuk berkembang secara terus menerus baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan kemampuan-kemampuan yang baru.
Dalam pembahasan ini kita akan menjelaskan tentang polymorphism (juga disebut sebagai dynamic binding atau late binding atau run-time binding) mulai dari yang paling dasar, dengan contoh yang membeberkan tentang pengaruh polymophism dalam program yang akan dibuat.Sebelumnya kita mengetahui kalau sebuah object dapat digunakan sebagai tipenya sendiri atau sebagai object dari tipe asalnya. Mengambil handle sebuah object dan memperlakukannya sebagai handle dari tipe asal disebut sebagai upcastingkarena urutan dari cabang-cabang inheritance digambarkan class asal terletak yang paling atas.






Contoh program sederhana Polymorphism
__________________________________________________________________________________



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();
    }
}

___________________________________________________________________________________________

Save dengan nama MyInheritance03.java




Wednesday, April 11, 2012

Java Encapsulation


Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak. Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Manfaat enkapsulasi :
1. Modularitas
Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.
2. Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.


Contoh Program Enkapsulasi:
_____________________________________________________________

import java.*;
import java.io.*;
import javax.swing.*;
public class Enkapsulasi{
/*Main Method*/
    public static void main (String[] args){
    //Membuat dari kelas hitungGaji untuk suatu-
    //pegawai, dan memanggil method-methodnya
Penggajian pegawai = new Penggajian();
        double sg;
        String Nilai;
        Nilai = JOptionPane.showInputDialog("");       
        sg = Double.parseDouble(Nilai);  
         pegawai.setGaji(sg);
         pegawai.hitungGaji();
         System.out.println("\nBesar Gaji Bersih : "+ pegawai.getGajiBersih());
   }
}
/*Kelas Penggajian*/
class Penggajian {
//Mendeklarasikan variabel-variabel internal kelas Penggajian.   
    private double gajipokok, gajiSetelahPajak,pajakgaji;
    public double gajiBersih;
    private double potongan = 100000;


//Method untuk mengeset variabel internal gaji pokok.
public void setGaji(double  gaji){
        gajipokok = gaji;       
    }
//Method untuk menghitung gaji bersih.
public void hitungGaji(){
        gajiSetelahPajak = gajipokok - (0.1 * gajipokok);
        pajakgaji = (gajipokok*0.1);
        gajiBersih = gajiSetelahPajak - potongan;
        System.out.println("\nBesar Pajak Gaji : "+ pajakgaji);
        System.out.println("\nBesar potongan Gaji : "+ potongan);
    }
//Method yang mengembalikan gaji Pokok (Gaji sebelum-
//ada pengurangan)
public double getGajipokok(){
        return gajipokok;
    }
//Method yang mengembalikan besar gaji bersih
public double getGajiBersih(){
        return gajiBersih;
    }
}
_____________________________________________________________
Maka output dari program diatas akan seperti gambar berikut
Kita akan menginput jumlah Gaji, contoh di atas kita memasukan 5 juta, maka akan keluar nilai pajak, potongan juga gaji bersih yang didapat.





Saturday, March 24, 2012

Pemrograman Berbasis Object Menggunakan Java

Nama           : Rizky Chandra
NPM             : 56410168
Kelas           : 2IA08


Program dibawah ini dapat digunakan untuk menghitung nilai rata-rata seorang mahasiswa, juga dapat dicari gradenya.


Berikut listing codingannya :






import javax.swing.JOptionPane;
class PBO {
    
    public static void main(String [] args){
    
    String nama=JOptionPane.showInputDialog("Masukkan nama anda :");
    String S=JOptionPane.showInputDialog("Masukkan nilai UTS :");
    String A=JOptionPane.showInputDialog("Masukkan nilai UAS :");
    String T=JOptionPane.showInputDialog("Masukkan nilai Tugas :");
    String Q=JOptionPane.showInputDialog("Masukkan nilai Quiz :");
    
    int UTS = Integer.parseInt(S);
    int UAS = Integer.parseInt(A);
    int tugas = Integer.parseInt(T);
    int quiz = Integer.parseInt(Q);
    
    double NA = (0.3*UTS)+(0.4*UAS)+(0.2*quiz)+(0.1*tugas);
    String Ket;
    if(NA <= 100 && NA > 79){Ket= "A";}
    else if(NA <= 79 && NA >74){Ket = "B+"; }
    else if(NA <= 74 && NA >64){Ket = "B"; }
    else if(NA <= 64 && NA >59){Ket = "C+"; }
    else if(NA <= 59 && NA >54){Ket = "C"; }
    else if(NA <= 54 && NA >44){Ket = "D"; }
    else{Ket = "B"; }
    String emo;
    if(NA >= 70){emo = ", Selamat Gan !";}
    else{emo = ", Anda kurang beruntung";}
    String pesan ="Saudara "+nama+" nilai akhir anda "+NA+", anda dapat "+Ket+emo;
    JOptionPane.showMessageDialog(null, pesan);
}
    
}





Selamat mencoba :D

Wednesday, December 29, 2010

Listing LA Matif


import java.io.*;
class fungsi
{
public static void main(String[] args)throws IOException
{
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
int n=0;
int k=0;
int i;
System.out.print("Banyak Domain : ");
int x=Integer.parseInt(a.readLine());
System.out.print("Banyak Range : ");
int y=Integer.parseInt(a.readLine());
int []dm=new int[x];
int []Rn=new int[y];
for (i=0;i<x;i++)
{
System.out.print("Domain ke "+(i+1)+" : "); dm[i]=Integer.parseInt(a.readLine());
}
for (i=0;i<y;i++)
{
System.out.print("Range ke "+(i+1)+" : "); Rn[i]=Integer.parseInt(a.readLine());
}
System.out.print("Banyak Relasi ");
int z=Integer.parseInt(a.readLine());
int []fn=new int[z];
int []dmn=new int[z];
int []Rng=new int[z];
for (i=0;i<z;i++)
{
System.out.print("Domain ");
dmn[i]=Integer.parseInt(a.readLine());
System.out.print("Range ");
Rng[i]=Integer.parseInt(a.readLine());
}
System.out.print("Domain={");
for (i=0;i<x;i++)
{
System.out.print(dm[i]);
if (i<(x-1))
{
System.out.print(",");
}
}
System.out.println("}");
System.out.print("Range={");
for (i=0;i<y;i++)
{
System.out.print(Rn[i]);
if (i<(y-1))
{
System.out.print(",");
}
}
System.out.print("}");
}
}

Friday, November 12, 2010

Tes Program Kalkulator Linux


Listing Program Kalkulator Sederhana pada Linux


Postingan kali ini membahas tentang bagaimana membuat kalkulator sederhana dengan menggunakan konsol atau terminal pada Linux.
Pertama buatlah sebuah file dengan command vi_<Nama File>
Kemudian masukan Listing berikut ke dalamnya:


clear
echo "----------"
echo "   MENU   "
echo "----------"


input()
{
echo -n "Masukan Bilangan ke-1: "
read bil1;
echo -n "Masukan Bilangan ke-2: "
read bil2;
}


echo "1. Penjumlahan"
echo "2. Pengurangan"
echo "3. Perkalian"
echo "4. Pembagian"
echo "5. Exit"
echo -n "Masukan Pilihan[1-5]"
read pil;


if((pil==1));
then
input
echo $bil1+$bil2=$[bil1+bil2]


elif((pil==2));
then
input
echo $bil1-$bil2=$[bil1-bil2]


elif((pil==3));
then
input
echo $bil1*$bil2=$[bil1*bil2]


elif((pil==4));
then
input
echo $bil1/$bil2=$[bil1/bil2]


else
exit
fi




--------------------------------------------------------------------------------------------------------------------------
Untuk keluar dari command vi, tekan esc 1x kemudian ketikan ":wq" tanpa tanda kutip.
Untuk menjalankan kalkulator sederhana ini, gunakan command sh_<Nama File>


Thank's for Watching....




Wednesday, November 10, 2010

LA AP rabu depan...


Listing Array pada Java

class array
{
public static void main(String[] args)
{
int matrix [][] = new int [3][3];
matrix [0][0] = 1;
matrix [0][1] = 2;
matrix [0][2] = 3;
matrix [1][0] = 4;
matrix [1][1] = 5;
matrix [1][2] = 6;
matrix [2][0] = 7;
matrix [2][1] = 8;
matrix [2][2] = 9;
for (int i=0;i<=2 ;i++ )
{
for (int j=0;j<=2 ;j++ )
{
System.out.print (matrix [i][j] + " ");
}
System.out.println (" ");
}


System.out.println (" ");
int matrix2 [][] = new int [3][3];
matrix2 [0][0] = 10;
matrix2 [0][1] = 11;
matrix2 [0][2] = 12;
matrix2 [1][0] = 13;
matrix2 [1][1] = 14;
matrix2 [1][2] = 15;
matrix2 [2][0] = 16;
matrix2 [2][1] = 17;
matrix2 [2][2] = 18;
for (int a=0;a<=2 ;a++ )
{
for (int b=0;b<=2 ;b++ )
{
System.out.print (matrix2 [a][b] + " ");
}
System.out.println (" ");
}
}
}




//ps : kalau terjadi error saat meng-compile listing di atas, kemungkinan terbesar adalah smua tanda ( " ) berubah pada saat anda mengcopy listing tersebut. jadi jika terjadi error, ubahlah smua tanda ( " ) pada listing tersebut.