Kamis, 19 April 2012

INHERITANCE DAN POLIMORFISME PADA JAVA

Nama                            : Muhammad Aulia Desri Nurrachman     (59410201)
Rekan Kerja                 :  Muhammad Tri Windu P          (54410833)
Kelas                            : 2IA13



Pada dasarnya kita sebagai manusia sudah terbiasa untuk melihat objek yang berada di sekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan ciri atau sifat dari class tersebut.
Dari hirarki di atas dapat dilihat bahwa, semakin ke bawah, class akan semakin bersifat spesifik. Misalnya, sebuah Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga anjing, kucing dan monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.Penurunan sifat tersebut dalam Bahasa Pemrograman Java disebut dengan Inheritance yaitu satu dalam Pilar Dasar OOP (Object Oriented Programing), yang dalam implementasinya merupakan sebuah hubungan “adalah bagian dari” atau “is a relationship” object yang diinherit (diturunkan).Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah untuk menghindari duplikasi object baik itu field, variable maupun methode yang sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah class. Jadi inheritance bukan sebuah Class yang di inherit oleh sebuah Literial, tapi lebih menunjukkan ke hubungan antar object itu sendiri.Sedangkan suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut


Contoh Programnya :

Membuat Class Mobil :
class Kendaraan {
public void Mobil (){
System.out.println("Type Mobil :");
}
}

Membuat Class Turunan dari Jazz, yang merupakan turunan dari class Mobil :

public class Jazz extends Mobil {
public void Type(){
System.out.println("Honda jazz");
}
}

Membuat Class Turnana dari CRV, yang merupakan turunan dari class Mobil :

public class CRV extends Mobil {
public void Type (){
System.out.println("Honda CRV");
}
}

Membuat Class Turnana dari City, yang merupakan turunan dari class Mobil :

public class City extends Mobil {
public void Type(){
System.out.println("Honda City");
}
}

Lalu membuat class TypeMobil untuk menjalankan semua class-class yang telah dibuat :

public class TypeMobil {
public static void main(String[] args){
Mobil mobil = new Mobil();
Jazz jazz = new Jazz();
CRV crv = new CRV();
City city = new City();

mobil.Type();

mobil = jazz;
mobil.Type();

mobil = crv;
mobil.Type();

mobil = city;
mobil.Type();
}
}

Outputnya :

Kamis, 12 April 2012

Konsep Enkapsulasi(encapsulation) pada Object Oriented Programming dengan Java

Java adalah salah satu bahasa pemrograman berbasis OOP(Object Oriented Programming) . Dalam Pemrograman Berbasis Objek ini yang terdapat beberapa konsep yaitu Objek(object), Kelas(class), Abstraksi(Abstraction), Enkapsulasi/Pengkapsulan(Encapsulation), Polimorfisme, dan Inheritas.
Disini saya akan membahas tentang Enkapsulasi/Pengkapsulan(Encapsulation)
Enkapsulasi/pengkapsulan(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.

Contoh Dalam Program 


public class Mahasiswa {


public String nama;
public String npm;


public void Info() {
System.out.println("Saya adalah");
System.out.println("Nama " + nama);
System.out.println("Npm " + npm);
}


public static void main(String[] args) {
Mahasiswa IT = new Mahasiswa();
IT.nama = "Aul";
IT.npm = "59410201";
IT.Info();






}
}





sumber : http://setyonugroho09.wordpress.com/2010/02/17/konsep-enkapsulasiencapsulation-pada-object-oriented-programming-dengan-java/

Kamis, 05 April 2012

Pemrograman Terstruktur dan Pemrograman Berorientasi Objek

 

Pemrograman Terstruktur
Pemrograman 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 terstruktur
1. 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 Terstruktur
1. 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 structure
Struktur 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 Structure
Struktur 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.

 http://wartawarga.gunadarma.ac.id/2010/10/pemrograman-terstruktur-dan-pemrograman-berorientasi-objek/