Saturday, May 25, 2013

Makalah java tentang overload method, overload konstruktor, inheritence, encapsulation, dan polymorphism




KATA PENGANTAR

Atas asung kerta wara nugraha Ida Sang Hyang Widhi Wasa Tuhan Yang Maha Esa, karena berkat rahmat-Nya penulis dapat menyelesaikan makalah ini tepat pada waktunya.
Adapun tujuan penulis menyusun makalah ini adalah untuk memperoleh penilaian pada mata kuliah Pemrograman Berorientasi Objek 1. Penulis menyadari bahwa makalah ini masih jauh dari sempurna, mengingat keterbatasan penulis dalam hal pengetahuan, pengalaman dan kemampuan . Oleh karena itu penulis mengharapkan kritik dan saran yang membangun dari para pembaca untuk kesempurnaan makalah  ini. Semoga makalah ini dapat bermanfaat dan berguna bagi kita semua.


Penulis


BAB I
PENDAHULUAN
1.1                            Latar Belakang

Pemrograman berorientasi objek adalah metode pemrograman tercanggih untuk saat ini dibandingkan dengan metode perograman terdahulu. Pada masa awal pemrograman metode yang digunakan ibarat menulis buku tanpa ada nomor halamannya dan juga indeks. Nama variabelnya dideklarasikan dua atau satu huruf saja dengan tingkat akses global. Ketika akan mencari sebuah alur logika(fungsi) untuk mengkaji ulangnya akan sangat menyusahkan.contoh bahasa pada saat ini adalah BASIC.
Pada era selanjutnya sekitar tahun 1960  masuklah metode pemrograman terstruktur (Structured programing) dimana variable di deklarasikan dengan rangkaian huruf yag lebih inovatif dan telah ada pembagian ruang lingkup variable yang terdiri dari local dan global. Saat ini telah ada pendekatan top – down dari sebuah rangkaian logika yag disebut Prosedur. Bahasa C , Pascal adalah contoh bahasa pemrograman yang masuk era ini.
Selanjutnya kemudian berkembang metode pemrograman berorientasi objek(object oriented programing) . Java merupakan contoh dari bahasa berorientasi objek. Semua program dalam java adalah objek .Ada beberapa cirri dari pemrograman berorietasi objek yaitu Abstraksi, encapsulation(pebungkusan), inheritance (pewarisan), Polimorphism (polimorfisme). Selain cirri cirri diatas terdapat lagi beberapa komponen-komponen lainnya seperti kelas, method, konstraktor, serta overloading. Untuk memahami tentang pemrograman berorientasi objek pada jam aka komponen-komponen tersebut akan dijelaskan pada bagian pembahasan .


1.2              Rumusan Masalah
1.                  Apa yang dimaksud Overload Method
2.                  Apa yang dimaksud Overload Konstruktor
3.                  Apa yang dimaksud Inheritance
4.                  Apa yang dimaksud Encapsulation
5.                  Apa yang dimaksud Polymorphism
1.3              Tujuan Penulisan
1.                  Mengetahui pengertian dan memahami Overload Method.
2.                  Mengetahui  pengertian dan memahami Overload Konstruktor.
3.                  Mengetahui  pengertian dan memahami Inheritance.
4.                  Mengetahui  pengertian dan memahami Encapsulation.
5.                  Mengetahui  pengertian dan memahami Polymorphism

1.4               Manfaat
1.                  Menamabah wawasan tentang Overload Method.
2.                  Menamabah wawasan tentang  Overload Konstraktor
3.                  Menamabah wawasan tentang  Inheritance.
4.                  Menambah wawasan tentang Encapsulation.
5.                  Menambah wawasan tentang Polymorphism

1.5              Hipotesa
1.                  Menurut pendapat penulis Overload Method yaitu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama.
2.                  Menurut pendapat penulis Overload Konstruktor yaitu cara untuk memberikan nama yang sama kepada dua konstruktor  yang berbeda meski dua konstruktor tersebut berada dalam class yang sama.
3.                  Menurut pendapat penulis Inheritance yaitu salah satu cirri dalam PBO dimana dalam suatu program, suatu kelas dapat diturunkan menjadi kelas-kelas baru yang mewarisi sifatnya induknya.
4.                  Menurut pendapat penulis Encapsulation yaitu pembungkusan kode dan data kedalam satu entitas tunggal yang disebut dengan objek.
5.                  Menurut pendapat penulis Polymorphism yaitu kemampuan suatu objek untuk mengungkap banyak hal melalui satu cara yang sama.


BAB II
PEMBAHASAN
2.1     Overload Method
Method overloading adalah suatu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan cara membedakan tipe parameter, jumlah parameter dan susunan parameter. Untuk lebih jelasnya perhatikan contoh dibawah ini :

public class MethodOverload {  
public void testOverloadedMethods() { 
    System.out.printf("Square of integer 7 is %d\n", square(7)); 
    System.out.printf("Square of double 7.5 is %f\n", square(7.5)); 
} 
public int square(int intValue) { 
    System.out.printf("\nCalled square with int argument: %d\n", 
            intValue); 
    return intValue * intValue; 
}  public double square(double doubleValue) { 
    System.out.printf("\nCalled square with double argument: %f\n", 
            doubleValue); 
    return doubleValue * doubleValue; 
} 
} 
 //Untuk test dari class method overloading diatas adalah dibawah ini :
public class MethodOverloadTest { 
 
 public static void main(String args[]) { 
     MethodOverload methodOverload = new MethodOverload(); 
     methodOverload.testOverloadedMethods(); 
 } 
} 

2.2       Overload Konstruktor
Konstruktor pada Java merupakan method khusus yang dipakai oleh Java untuk membuat sebuah object didalam kelas dan tiap kelas boleh memiliki lebih dari satu konstruktor.
 Karakteristik konstruktor :
·         Nama Konstruktor = Nama Kelas
·         Tidak mengembalikan nilai termasuk void.
·         Cara menggunakan konstruktor adalah dengan menggunakan kata kunci new.

 Jika didalam kelas tidak dituliskan konstruktor, Java akan secara default menambahkan konstruktor kosong kedalam kelas tersebut. Overloading di Java diterpakan didalam method/fungsi. Dengan overloading dapat dibuat method dengan nama yang sama tetapi berbeda parameternya. Java sendiri akan menggunakan daftar parameter-parameter itu sebagai acuan untuk method manakah yang akan dijalankan.  atau dengan kata lain . Overloading merupakan bentuk dari polimorfisme, yaitu beberapa method dapat memiliki nama yang sama dengan isi dan parameter yang berbeda di dalam sebuah class.

contoh penggunaan konstruktor dan overloading :

Contoh dalam program
Belajar.java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}

Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}

class Perkalian{
 int hasil;
 // konstruktor awal
 Perkalian(int angka){
 hasil = 1;
 for(int i=1; i<angka; i++) hasil *= i;
 }
 // overloading konstruktor
 Perkalian(int a, int b){
 hasil = a*b;
 }
 // overloading konstruktor dari konstruktor lain
 Perkalian(Perkalian kali){
 hasil = kali.hasil;
 }
 }
       class DemoPerkalian {
 public static void main(String args[]){
 Perkalian p1 = new Perkalian(4);
 Perkalian p2 = new Perkalian(2,4);
 Perkalian p3 = new Perkalian(p1); // parameter konstruktor dari objek     p1
 System.out.println("Hasil konstruktor pertama : "+p1.hasil);
 System.out.println("Hasil konstruktor yang kedua : "+ p2.hasil);
 System.out.println("Hasil konstruktor yang ketiga : "+ p3.hasil);
 }
 }
2.3     Inheritence (pewarisan)
Inheritance adalah salah satu teknik pemrograman berorientasi object yang digunakan agar suatu coding  dapat digunakan kembali oleh programmer lain / reuseable. Hal tersebut dilakukan dengan cara membuat turunan dari suatu class yang sudah ada, yaitu dengan membuat child class. Contohnya adalah jika ada programmer yang membuat suatu class yaitu shape yang memiliki atribut atribut luas, dan position kita tidak perlu membuat class baru ketika kita ingin membuat suatu class rectangle yang notabennya juga termasuk shape, jadi kita cuma perlu untuk menurunkan class shape tadi ke class rectangle yang akan kita buat. Analogi yang lainnya adalah seperti seorang anak yang yang akan mewarisi sifat atau perilaku dari kedua orang tuanya. Pemrograman berorientasi objek dalam hal program dalam suatu kelas dapat diturunkan menjadi kelas –kelas baru yang akan mewarisi beberapa sifat dari kelas induknya.Misalnya kita membuat kelas A maka kita dapat membuat kelas kelas turunan dari kelas A( Misal kelas B) yang akan mewarisi sifat dari kelas A. Dalam java , kelas induk disebut super class dan kelas turunannya disebut sub class.
contoh program :
//class Person.java
 public class Person {
 protected String name;
 protected int age;
 public Person(String name, int age) {
     this.name = name;
     this.age = age;
 }
 public String getName() {
     return this.name;
 }
 public int getAge() {
     return this.age;
 }
 }
//class Student.java
 public class Student extends Person {
private String schoolName;
  public Student(String name, int age, String schoolName) {
      super(name, age);
      this.schoolName = schoolName;
  }
 public String getSchoolName() {
      return this.schoolName;
  }
 }
//class Main.java

 public class Main {

   public static void main(String[] args) {
       Person person = new Person("Yohanda", 19);
       Student student = new Student("Mandala", 18, "SMAN 2");

       System.out.println("Informasi tentang object person : ");
       System.out.println("Name : " + person.getName());
       System.out.println("Age : " + person.getAge());
       System.out.println();

       System.out.println("Informasi tentang object student : ");
       System.out.println("Name : " + student.getName());
       System.out.println("Age : " + student.getAge());
       System.out.println("School Name : " + student.getSchoolName());
   }
 }

2.4     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 awa
·         Tingkat akses private
Dengan menggunakan akses private maka data dan method tersebut hanya dapat di akses oleh kelas yang memilikinya, untuk mendeklarasikan data atau method dengan tingkat akses private gunakan kata kunci private.
·         Tingkat akses protected
Dengan menggunakan tingkat akses protected maka data dan method dapat diakses oleh kelas yang memilikinya dan juga kelas-kelas yang maih memiliki hubungan turunannya. Misalnya apabila data X terdapat pada kelas  A dan kelas A dideklarasikan sebagai protected maka  kelas B(merupakan kelas turunannya A) akan dapat mengakses data tersebut, namun data tersebut tidak akan bisa diakses oleh kelas C(misalkan bahwa kelas C bukan turunan kelas A) . Untuk membuat kelas dengan tingkat akses protected cukup ditambahkan kata kunci berupa protected.

·         Tingkat akses public
·         Dengan menggunakan akses public maka ini merupakan kebalikan dari tingkat akses private . Data atau method dengan tingkat akses public akan dapat diakses oleh semua kelas yang ada dikeseluruhan program. Untuk mendeklarasikan method atau data dengan tingkat akses public menggunakan kata kunci public.
Contoh dalam program
Belajar.java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}

Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

2.5         Polymorphism

contoh program :
 class kendaraan {
 public void bahanbakar (){
 System.out.println("kendaraan berbahanbakar :");
 }
 }
 // Membuat kelas turunan mobil yang merupakan turunan dari class kendaraan :
 class mobil extends kendaraan {
 public void bahanbakar(){
 System.out.println(" MOBIL bahan bakar bensin");
 }
 }

Merupakan kemampuan suatu objek untuk mengungkap banyak hal melalui satu cara yang sama.Misalnya ,kelas A diturunkan menjadi kelas B, C, dan D. Dengan konsep ini ,kita dapat menjalankan method-method yang terdapat dalam kelasB, C,D hanya dari objek yang diinstansiasi dengan kelas A. konsep ini juga sering disebut dengan dynamic binding, late binding ataupun runtime binding. Konsep ini jugadapat dikatakan sebagai  teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik. Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil” dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class “Kendaraan”. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”, akan tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class tersebut. Dimana jika method “Move()” dipanggil pada class “Motor” akan menghasilkan perpindahan 30Km, jika pada class “Mobil” akan menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan 300Km. Hal inilah yang kita sebut sebagai Polimorfisme , yaitu penggunaan method yang sama, yang akan menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut.

contoh program :
 class kendaraan {
 public void bahanbakar (){
 System.out.println("kendaraan berbahanbakar :");
 }
 }
 // Membuat kelas turunan mobil yang merupakan turunan dari class kendaraan :
 class mobil extends kendaraan {
 public void bahanbakar(){
 System.out.println(" MOBIL bahan bakar bensin");
 }
 }
//Membuat kelas turunan kereta api yang merupakan turunan dari class kendaraan :
 class keretaapi extends kendaraan {
 public void bahanbakar (){
 System.out.println("KERETA API bahan bakar batu bara");
 }
 }

 //Membuat kelas turunan pesawat yang merupakan turunan dari class kendaraan :
 class pesawat extends kendaraan {
 public void bahanbakar(){
 System.out.println("PESAWAT berbahan bakar Bensol");
 }
 }
 // Membuat class bahanbakarkendaraan untuk mengetes class-class yang telah dibuat :
 public class bahanbakarkendaraan {
 public static void main(String[] args){
 kendaraan kendaraan = new kendaraan();
 mobil MOBIL = new mobil();
 keretaapi KERETAAPI = new keretaapi();
 pesawat PESAWAT = new pesawat();

 kendaraan.bahanbakar();

 kendaraan = MOBIL;
 kendaraan.bahanbakar();

 kendaraan = KERETAAPI;
 kendaraan.bahanbakar()
 kendaraan = PESAWAT;
 kendaraan.bahanbakar();
 }
BAB III
PENUTUP
3.1  Simpulan
Pemrograman berorientasi objek adalah metode pemrograman tercanggih untuk saat ini dibandingkan dengan metode perograman terdahulu. Java merupakan contoh dari bahasa berorientasi objek. Semua program dalam java adalah objek .Ada beberapa cirri dari pemrograman berorietasi objek yaitu Abstraksi, encapsulation(pebungkusan), inheritance (pewarisan), Polimorphism (polimorfisme). Selain cirri cirri diatas terdapat lagi beberapa komponen-komponen lainnya seperti kelas, method, konstraktor, serta overloading.
·         Overload Method yaitu cara untuk memberikan nama yang sama kepada dua method yang berbeda meski dua method tersebut berada dalam class yang sama.
·         Overload Konstruktor yaitu cara untuk memberikan nama yang sama kepada dua konstruktor  yang berbeda meski dua konstruktor tersebut berada dalam class yang sama.
·         Inheritance yaitu salah satu cirri dalam PBO dimana dalam suatu program, suatu kelas dapat diturunkan menjadi kelas-kelas baru yang mewarisi sifatnya induknya.
·         Encapsulation yaitu pembungkusan kode dan data kedalam satu entitas tunggal yang disebut dengan objek.
·         Polymorphism yaitu kemampuan suatu objek untuk mengungkap banyak hal melalui satu cara yang sama.

DAFTAR PUSTAKA
·         Harfit Benaya Putra, Eko Priyo Utomo, Kitab suci desktop programmer, 2011,Penerbit Mediakom,Yogyakarta



 }











Wednesday, May 15, 2013

Contoh program java menggunakan method dan objek


 Program berikut adalah salah satu tugas dari dosen saya :D . program ini berisikan method void dan menggunakan objek serta menggunakan metode input scanner. Di dalamnya terdapat 3 menu yaitu program bilangan ganjil,genap, serta faktorial.Silahkan di copast :)


import java.util.Scanner;
class tugas
{int bil,bil2,i,ganjil,genap,fak;
int k = 1;
//method bilangan ganjil
public void tampilganjil(){
for(int i=1;i<=ganjil;i++){
if(i%2==1 )
System.out.print(i+" ");

}
}
//method bilangan genap
public void tampilgenap(){

for(int i=2;i<=genap;i++){
if(i%2==0 )

System.out.print(i+" ");
}
}
//method bilangan faktorial

public void tampilfak(){
System.out.print(fak+"!= ");
for (i=fak; i>=1; i--){
System.out.print(i);
if (i>1)
System.out.print("x");

k=k*i;}
System.out.println ("="+k);

}
//method menu utama

public void tampilmenu(){
System.out.println("");
System.out.println(" MENU ");
System.out.println(" ====================================");
System.out.println(" 1. Menampilkan Bilangan Ganjil ");
System.out.println(" 2. Menampilkan Bilangan Genap ");
System.out.println(" 3. Menampilkan Bilangan Faktorial ");
System.out.println(" ====================================");
System.out.println(" ");


}



public static void main(String[] args)
{
tugas obj = new tugas ();
for (int n = 1;n>0 ;n++ ) //melakukan perulangan sebanyak tak terhingga
{Scanner input = new Scanner(System.in);
obj.tampilmenu();
System.out.print("Masukkan Angka dari Menu diatas : ");
obj.bil = input.nextInt();

if (obj.bil==1) // menampilkan bilangan ganjil jika input = 1
{
System.out.println(" ");
System.out.println(" ");
System.out.println("*MENAMPILKAN BILANGAN GANJIL*");
System.out.print("masukkan angka: ");
obj.ganjil = input.nextInt();
System.out.print("Bilangan ganjil: ");
obj.tampilganjil(); // memanggil method bilangan ganjil
System.out.println(" ");
System.out.println(" ");


}else if (obj.bil==2) // menampilkan bil genap jika inputnya 2

{ System.out.println(" ");
System.out.println(" ");
//System.out.print("Masukkan Angka dari Menu diatas : ");
System.out.println("*MENAMPILKAN BILANGAN GENAP*");
System.out.print("masukkan angka: ");
obj.genap = input.nextInt();
System.out.print("Bilangan genap: ");
obj.tampilgenap(); // memanggil method bilangan genap
System.out.println(" ");
System.out.println(" ");

}else if (obj.bil==3) //menampilkan hasil faktorial jika inputannya 3
{ System.out.println(" ");
System.out.println(" ");
//System.out.print("Masukkan Angka dari Menu diatas : ");
System.out.println("*MENAMPILKAN HASIL FAKTORIAL*");
System.out.print("masukkan angka: ");
obj.fak = input.nextInt();
obj.tampilfak(); // memanggil method faktorial
System.out.println(" ");

}else{
System.out.println(" ");
System.out.println("Input Invalid !"); // menampilkan pesan invalid jika inputan selain nomor yang ada di MENU

}
}


}
}

Preview