Rabu, 18 April 2012

Program Inheritance dan Polimorfisme

Tugas PBO pertemuan ke 5,,kali ini saya akan membahas tentang Inheritance dan Polimorfisme.Langsung saja kita masuk ke pembahasan.

Inheritance

Inheritance merupakan pewarisan. Dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. 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.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
·        -  Superclassadalah class indukatau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki
-  Subclass adalah class anak. Semua property, methode, ataupunkonstruktor yang dimilikioleh superclass
        jikadiwariskan, maka subclass memilikisemua yang dimilikioleh superclass.

      Contoh Program :
public class binatang
{

public  static void main(String[]args){
String suaraharimau, suaraburung, suaraular, suarajangkrik, suarabebek;

harimau king = new harimau ();
burung mona = new burung ();
ular lata = new ular ();
jangkrik sui = new jangkrik ();
bebek bek = new bebek ();

suaraharimau = king.mengaum ();
suaraburung = mona.kicau  ();
suaraular = lata.desis ();
suarajangkrik = sui.mengerik ();
suarabebek = bek.kwek ();


System.out.println("\tHarimau Sedang  " + suaraharimau);
System.out.println("\tBurung Sedang  " + suaraburung);
System.out.println("\tUlar Sedang  " + suaraular);
System.out.println("\tJangkrik Sedang  " + suarajangkrik);
System.out.println("\tBebek Sedang  " + suarabebek);

}
}
class harimau {
public String mengaum (){
String suara = new String ("HAUUUUUUUUMMMMM...");
return suara;
}
}
class burung {
public String kicau (){
String suara = new String ("SUIT...SUIT.....");
return suara;
}
}
class ular {
public String desis (){
String suara = new String ("SSSSSSSSSSSSSSSSSTTT...");
return suara;
}
}
class jangkrik {
public String mengerik (){
String suara = new String ("KRIK...KRIK...");
return suara;
}
}
class bebek {
public String kwek (){
String suara = new String ("KWEK..KWEK..KWEK..");
return suara;

Listing Program :
  
Pertama-tama kita akan membuat public classnya terlebih dahulu yaitu public class binatang,didalam class ini kita akan membuat string suara binatang tersebut,diantaranya harimau,burung,ular,jangkrik,dan bebek.Lalu kita membuat tipe suara untuk masing-masing binatang seperti suaraharimau = king.mengaum (); .setelah itu untuk mencataknya kita menggunakan System.out.println("\tHarimau Sedang  " + suaraharimau);  +suaraharimau tersebut berfungsi untuk memanggil suaranya.cara mencetak suara tersebut,pertama-tama kita membuat class-class binatang tersebut contohnya :
}
class harimau {
public String mengaum (){
String suara = new String ("HAUUUUUUUUMMMMM...");
return suara;
}
Nah disinalah akan tercetak suara yang akan dikeluarkan binatang tersebut dengan memanggil public String mengaum (){


Output :












Polomorfisme

Polymorphism adalah 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.

Contoh Program :

class SepakBola {
  public void showoff() {
    System.out.println("Menangkan pertandingan");
  }
}
class Penyerang extends SepakBola {
  public void showoff() {
    System.out.println("Cetak GOL");
  }
}
class Bek extends SepakBola {
  public void showoff() {
    System.out.println("Menjaga pertahanan");
  }
}
class Kiper extends SepakBola {
  public void showoff() {
    System.out.println("Jaga gawang");
  }
}
public class tendangan {
  public static void main (String[] args) {
    SepakBola SB = new SepakBola();
    Penyerang P = new Penyerang();
    Bek B = new Bek();
    Kiper K = new Kiper();

    SB.showoff();

    SB = P;
    SB.showoff();
    SB = B;
    SB.showoff();
    SB = K;
    SB.showoff();
  }
}

Listingnya :
Pertama-tama kita akan membuat membuat class penyerang,bek,dan kiper seperti class Bek extends SepakBola {  jangan lupa kita tambahkan extends.class tersebut merupakan turunan dari class tendangan.didalam class-class tersebut kita akan mencetak sebuah komentar seperti System.out.println("Cetak GOL"); .Didalam class tendangan kita akan memproses pembacaan komentar yang telah dibuat dalam class penyerang,bek,dan kiper      
contohnya  SB.showoff();  SB = B;

Output :











Teman satu kelompok saya Patar Mallasak Manalu

Kamis, 12 April 2012

Program Enkapsulasi

Tugas minggu ke tiga PBO,saya akan menjelaskan tentang program Enkapsulasi.sebelum masuk ke program mari kita memahami pengertian Enkapsulasi di bawah ini.

PENGERTIAN ENKAPSULASI :
Dalam istilah berorientasi-objek, enkapsulasi berkaitan dengan penyembunyian informasi. Maksudnya enkapsulasi menyembunyikan detail implementasi sementara memusatkan pada antarmuka. Tujuannya adalah membuat sebuah abstraksi yang memaksa programmer berpikir secara konseptual. Biasanya, anggota – anggota data dari sebuah kelas terlihat oleh penggunanya. Jika sebuah anggota data harus dibuat agar dapat diakses oleh client kelas, maka kelas tersebut menyediakan sebuah metode yang memeriksanya dan mengembalikan nilainya. Saat sebuah kelas mengekspos anggota data, ia dikatakan memecahkan enkapsulasi.
Karena tujuannya mengenkapsulasi kerumitan, ada mekanisme untuk menyembunyikan kerumitanimplementasi dalam class. Setiap method atau variable dalam class dapat jadi private atau public. Antarmuka public suatu class menunjukan semua yang perlu atau harus diketahui oleh pemakai. Kita dapat menyatakan method dan data instance sebagai private sehingga tidak dapat diakses oleh program lain diluar implementasi class yang kita buat. Antarmuka public harus diplih dengan hati-hati supaya tidak terlalu banyak membuka bagian class.
Enkapsulasi memiliki manfaat sebagai berikut:
> 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.
> Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.

KODING PROGRAM :

//pertama kita buat class mahasiswa.
public class Mahasiswa{
private String nama;
private String alamat;
private String agama;
public Mahasiswa(String n, String almt,String agma) {
this.nama = n;
this.alamat = almt;
this.agama = agma;
}
public String tampilkanNama() {
return nama;
}
public String tampilkanalamat() {
return alamat;
}
public String tampilkanagama() {
return agama;
}
}

// Lalu kita membuat class main
public class main{
public static void main(String[] args) {
Mahasiswa Intan = new Mahasiswa("Bayu ", "Bogor","Islam");
System.out.println("Nama \t : " + Bayu.tampilkanNama());
System.out.println("Alamat \t : " +  Bayu.tampilkanalamat());
System.out.println("Agama \t : " +  Bayu.tampilkanagama());
System.out.println();

Mahasiswa Nurjanah = new Mahasiswa("Patar", "Depok","Kristen Protestan");
System.out.println("Nama \t : " + Patar.tampilkanNama());
System.out.println("Alamat \t : " + Patar.tampilkanalamat());
System.out.println("Agama \t : " + Patar.tampilkanagama());
System.out.println();
}
}

 LOGIKA PROGRAM :
  
pada program kali ini kita akan membuat sebuah program enkapsulasi.kita membuat 2 class,yang pertama class Mahasiswa dan class main. pada class Mahasiswa disini kita akan membuat beberapa string.agar tidak sembarang objek dapat mengakses data maka kita deklarasikan atribut dengan private String. Dan untuk membacanya kita harus membuat  public String tampilkan….() {. Dalam class main disini kita hanya memasukan data-data terhadap public string yang telah kita buat.
  
OUTPUTNYA :




Senin, 02 April 2012

perbedaan program terstruktur dan program berbasis objek

.......BISMILLAAHIR RAHMAANIR RAHIIM......

Alhamdulillah tugas pertama PBO telah saya lewati. Bu Dosen memberikan tugas kedua untuk kelas 2IA13,saya,dan teman sekelompok saya hehe.. Di kelas tadi bu dosen menayakan kepada anak-anak kelas "ada yang tau perbedaan antara program terstruktur dan program berbasis objek?? " sebenernya sih kata-katanya sudah tidak asing,,namun banyak juga anak-anak kelas yang belum mengaetahui perbedaannya.Langsung saja bu dosen memberikan tugas mencari perbedaan program terstruktur dan program berbasis objek.. 
Sok mangga perbedaannya ada di bawah :).

A.Pengertian Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
  
B.Pengertian Pemrograman Terstruktur

Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.

Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).


C.Perbedaan Pemograman Berorientasi Objek dengan Pemograman Terstruktur


Dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat  seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program ).

Sementara itu pemrograman berorientasi objek memliki beberapa keuntungan seperti :
1.maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.

2.pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.

3.dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
jadi, sangat jelas sekali bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.

permodelan yang mana yang lebih bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara.



 Demikian perbedaan antara program terstruktur dan program berbasis objek di Atas,jadi sekarang kita bisa 
 lebih jelas mengetahui letak perbedaanya.
 Biar lebih lancar dalam proses penilain,seperti biasa saya cantumkan identitas saya.

  Nama               : Bayu Septian
  NPM               : 51410363
  Kelas               : 2IA13
  Tmn.kelompok : Patar Mallasak Manalu