Pages

Friday, April 20, 2012

Inheritance dan Polimorfisme


Bhisma Roby Ilham
51410400
2IA13




Ayi Habibah
51410240
2IA13
bipsayangnyo.blogspot.com




Tugas PBO



1. Inheritance
Inheritance adalah(pewarisan) adalah proses pewarisan data dan method dari suatu kelas ke kelas lainnya. Pewarisan ini bersifat menyeluruh.Semua data dan method milik kelas asalnya diturunkan ke kelas lainnya atau kelas yang baru.
(a).Kelas yang mewariskan dinamakan:(super clas atau kelas induk)
(b).Kelas yang diwariskan dinamakan:(sub class atau kelas anak)


Contoh program inheritance pada java :



import java.io.*;
public class bola {
void kelasbola () {
System.out.println("ciri umum dari pemain bola adalah mengerti permainan");
}}
class penyerang extends bola {
String x = "Penyerang";
void Tampilkanpenyerang () {
System.out.println("dan Posisi yang Anda pilih adalah "+ x );
System.out.println("Posisi ini adalah penyerang, tugasnya memasukkan bola ke gawang");
System.out.println("Pelari cepat, ahli menendang bola, dan pandai mencari kesempatan");
}}
class gelandangtengah extends bola {
String x = "Gelandang Tengah";
void Tampilkangelandangtengah () {
System.out.println("dan Posisi yang Anda pilih adalah "+ x );
System.out.println("Posisi ini mengatur seluruh permainan");
System.out.println("Gelandang tengah wajib bisa mengatur permainan, dari menyerang hingga bertahan");
}}
class back extends bola {
String x = "back";
void Tampilkanback () {
System.out.println("dan Posisi yang Anda pilih adalah "+ x );
System.out.println("Posisi ini bertugas untuk menahan serangan lawan");
System.out.println("Lebih pandai membaca aliran permainan, sehingga bisa menahan lawan");
}}
class Turunan {
public static void main(String[] args) throws IOException{
String sInput = null ;
System.out.println("----Posisi----");
System.out.println("[1]. Penyerang ");
System.out.println("[2]. Gelandang Tengah ");
System.out.println("[3]. Back ");
System.out.print("Masukkan pilihan [1..3] :");
bola generalx = new bola();
penyerang turunan1 = new penyerang();
gelandangtengah turunan2 = new gelandangtengah();
back turunan3 = new back ();
back subxc = new back();
InputStreamReader inputan = new InputStreamReader(System.in);
BufferedReader jm = new BufferedReader(inputan);
sInput = jm.readLine();
int i = Integer.parseInt(sInput);
switch (i) {
case 1 :
generalx.kelasbola ();
turunan1.Tampilkanpenyerang ();break;
case 2 :
generalx.kelasbola ();
turunan2.Tampilkangelandangtengah ();break;
case 3 :
generalx.kelasbola ();
turunan3.Tampilkanback ();break;
default:
System.out.println("Pilihan yang Anda masukkan salah!!");break;
}
}
}


Output:



2. Polimorfisme


Polimorfisme adalah Suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object. Polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah method general (bersifat umum) untuk semua kelas turunanya, dan selanjutnya kelas-kelas turunan dapat memperbaharui implementasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic bindung). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtual (maya).

            Polimorfisme adalah kemampuan untuk memperoleh bentuk. Dua objek atau lebih dikatakan polimorfis, bila objek-objek itu mempunyai antar muka-antarmuka identik namun mempunyai perilaku-perilaku berbeda. Bentuk ini memungkinkan kita menganggap sekelompok objek dengan tipe-tipe berbeda seperti dimiliki oleh suatu tipe yang sama. Polimorfisme merupakan fitur yang terjadi karena interaksi setiap konsep pewarisan dan dynamic binding. Contohnya pintu dan jendela memiliki perilaku yang sama yaitu dapat dibuka dan ditutup, namun untuk menutup jendela dilakukan misalnya dari atas ke bawah (vetikal), sedangkan pintu dari depan ke belakang (horizontal).


Contoh program java polimorfisme : 

Orang.java

public class Orang {
    public String nama;
    public String alamat;
    //Constructor...
    public Orang(){
        }
    public Orang(String nama) {
        this.nama = nama;
    }
    public Orang(String nama,String alamat){
        this.nama=nama;
        this.alamat=alamat;
    }
    //accessor method mengembalikan nilai
    public String getName(){
        return nama;
        }
    //mutator methode untuk mengubah nilai dari instance.
   public void setName(String nama){
           this.nama = nama;
       }
}


Mahasiswa.java



public class Mahasiswa extends Orang{
    String jeniskelamin;
    public Mahasiswa() {
        //super digunakan untuk memanggil constructor terdekat pada kelas Orang.
        super("Bhisma");
    }
    //overidde methode dari kelas Orang..
    public String getName(){
        return nama;
        }
    public void setName(String nama){
        this.nama = nama;
        }


Karyawan.java


public class Karyawan extends Orang{
    public Karyawan() {
        super("Ayi");
    }
    //ovveride dari kelas Person
    public String getName(){
        return nama;
        }
    public void setName(String nama){
        this.nama = nama;
        }


CallOrang.java


public class CallOrang {
   public static void main(String[] args){
        //contoh polimorfisme di java
        Orang call;
        Mahasiswa m = new Mahasiswa();
        Karyawan n = new Karyawan();
        //memanggil dari kelas mahasiswa
        call = m;
        String smp = call.getName();
        System.out.println("aku dari bagian Mahasiswa.java : " + smp);
        //memanggil dari kelas pekerja
        call = n;
        String sma = call.getName();
        System.out.println("aku dari bagian Karyawan.java : " + sma);
       }


Untuk memanggil kelas-kelas Orang, Mahasiswa, dan Karyawan maka CallOrang.java harus di run, dan berikut hasilnya:







Friday, April 13, 2012

Enkapsulasi



Bhisma Roby Ilham
51410400
2IA13


Ayi Habibah
51410240
2IA13
bipsayangnyo.blogspot.com

Enkapsulasi
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 tidakBegitulah 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.
Berikut ini keuntungan dari prinsip enkapsulasi :
  • Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
  • Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
  • Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya. Sehingga dapat mengurangi kemungkinan bug.

Contoh dalam program


Enkapsulasi

public class enkapsulasi {
   private String nama;
   private int usia;
   public int getUsia(){
      return usia;
   }
   public String getNama(){
      return nama;
   }
   public void setUsia( int newUsia){
      usia = newUsia;
   }
   public void setNama(String newNama){
      nama = newNama;
   }
}


Method yang disediakan dalam syntax program diatas adalah method "set" dan "get".
Jika class lain mengaksesnya harus menggunakan method-method tersebut. 
Berikut cara mengaksesnya :



Enkapsulasi1

 public class enkapsulasi1 {
   public static void main(String[] args){      enkapsulasi enkap = new enkapsulasi();      enkap.setNama("Bhisma");      enkap.setUsia(20);      System.out.println("Nama : " + enkap.getNama());      System.out.println("Usia : "+ enkap.getUsia());    }}


Output:



Thursday, April 5, 2012

Perbedaan Pemrograman Terstruktur dan Pemrograman OOP

Pemrograman TerstrukturPemrograman terstruktur adalah suatu teknik yang mencegah masalah besar menjadi lebih kecil dan lebih mudah dipahami sehingga masalah yang besar dapat diselesaikan dengan baik. Pemrogramman terstruktur digumakan secara berurutan dan terstuktur baik dalam analisa, cara dan penulisan program. Program dapat dibagi-bagi menjadi prosedur dan fungsi.
Mempelajari bahasa pemrograman terstruktur sangat penting artinya karena konsep-konsep yang diterapkan disini akan dipakai terus dalam bahasa bahasa pemrograman generasi baru. Dalam mempelajari pemrograman terstruktur yang sangat penting dipahami adalah konsepnya.
Ciri-ciri pemrograman terstruktur1. Mengandung teknik pemecahan masalah yang tepat dan benar
2. Memiliki algoritma pemecahan masalah yanag sederhana, standar da efektif.
3. Penulisan program memiliki struktur logika yang benar dan mudah dipahami
4. Program hanya terdiri dari 3(tiga) struktur dasar, yaitu struktur berurutan, struktur
seleksi dan struktur perulangan.
5. Menghindari penggunaan pernyataan GOTO, yang akan menjadikan program tidak terstruktur dengan baik.
6. Biaya pengujian yang dibutuhkan rendah.
7. Memliki dokumentasi yang baik
8. Biaya perawatan dan dokumentasi yang dibutuhkan rendah.
Prinsip pemrograman tersturuktur :- Gunakan rancangan pendekatan dari atas ke bawah (top down design).
- Bagi program ke dalam modul-modul logika yang sejenis,
- Gunakan sub-program untuk proses-proses sejenis yang sering digunakan.
- Gunakan pengkodean terstruktur: IF … THEN, DO … WHILE dan lain-lainnya.
- Gunakan nama-nama bermakna (mnemonic names)
- Buat dokumentasi yang akurat dan berarti.
Tujuan Pemrograman Terstruktur1. Meningkatkan kehandalan program
2. Program mudah dibaca dan ditelusuri
3. Menyederhanakan kerumitan program
4. Lebih mudah dalam pemeliharaan program
5. Meningkatkan produktivitas pemrograman
Ada tiga bentuk yang digunakan dalam pemrograman terstruktur yaitu : Sequence Structure, Loop Structure dan Selection Structure.
Sequential structureStruktur Berurutan adalah struktur program yang paling sederhana. Setiap baris
program akan dikerjakan secara urut dari atas ke bawah maka hanya ada satu cara
memulainya yaitu dari bagian atas, dan cara untuk keluarnya yaitu dari bagian bawah.
Contoh Program Struktur berurutan menghitung luas empat persegi panjang
Program persegi panjang;
Uses crt;
Var
luas,panjang,lebar:integer;
Begin
clrscr;
write(‘Masukan Panjang:’);
Readln(panjang);
write(‘Masukan Lebar:’);
Readln(Lebar);
Luas:=Panjang * Lebar;
writeln(‘luas Persegi Panjang: ‘, Luas);
Readln;
End.
Loop StructureStruktur perulangan akan melakukan proses berulang ulang selama selama Kondisi bernilai
True atau selama kondisi perulangan terpenuhi.
Dan Kondisi akan berhenti jika hanya keadaan berubah menjadi false atau kondisi
perulangan tidak terpenuhi.
Struktur pengulangan terdiri dari :
• FOR .. DO
• While .. Do
Perulangan digunakan untuk melaksanakan blok statement selama kondisinya benar. Dalam perulangan ini kondisi diuji terlebih dahulu.
• REPEAT .. UNTIL
Perulangan ini melakukan uji kondisi pada akhir perulangan. Artinya perulangan (loop)
dikerjakan terlebih dahulu, kemudian baru kondisi diuji. Proses akan diulang sampai suatu kondisi yang diberikan bernilai benar.
Bahasa pemrograman yang mendukung pemrograman terstruktur antara lain:
- Pascal
- Cobol
- Bahasa C
Object Oriented Programming (OOP)Pada tahun 1960, ditemukan program yang terstruktur (struktur programming). Metode ini dikembangkan dari Bahasa C dan Pascal. Dengan program yang terstruktur inilah untuk pertama kalinya kita mampu menulis program yang begitu sulit dengan lebih mudah.
OOP adalah suatu metode dalam pembuatan program yang bertujuan untuk menyelesaikan kompleksnya berbagai masalah program yang terus meningkat
Contoh kasus OOP“anggap saja kita mempunyai sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misalnya manager tersebut manager tersebut ingin memperoleh data dari bagian administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi dapat memerintahkan petugas administrasi untuk mengambilnya. Pada kasus tersebut seorang manajer tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manajer bisa mendapatkan data tersebut melalui objek petugas administrasi”
Pemrograman orientasi-objek menekankan konsep berikut: kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
 Objek – membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objekmerupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
Konsep dasar dari OOP ada 3 yaitu :- Pewarisan (Intheritance)
Merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu class yang diturunkan ke class lain.
- Pengkapsulan (Encapsulation)
Penyembunyian informasi. Dapat juga diartikan dengan pengemasan data dan methoddalam wadah bernama objek. Konsep public dan private akan senantiasa digunakan dalam pengkapsulan. Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek, dengan cara yang tidak layak. Hanya method dalam objek yang diberi izin untuk mengakses keadaannya
- Polimerfisme
Istilah ini sendiri berasal dari kata Yunani yang berarti mempunyai banyak bentuk. Polimerfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk perilaku yang berbeda. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakkan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut.
Bahasa pemrograman yang mendukung OOP antara lain:1. Visual Foxpro
2. Java
3. C++
4. Visual Basic.NET
5. SIMULA
6. Smalltalk
7. Ruby
8. Python
9. PHP
10. Delphi
11. Eiffel
12. Perl
Perbedaan antara antara OOP dan pemrograman terstruktur

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur, menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur.


Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.


Persamaan kedua pemrogaman adalah keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.
Tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur.
Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii code.
Pemrograman berorientasikan objek dikatakan lebih baik apabila Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat