Rabu, 18 April 2012

INHERITANCE DAN POLIMORFISME PADA JAVA

NAMA: Mohammad Ali akbar

NPM: 54410488

KELAS:2IA13

LINK KELOMPOK: http://misterpj.blogspot.com/

Apa itu inheritance dan polimorfisme? Berikan contoh program nya !

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 Musisi {
void kelasmusisi () {
System.out.println("ciri umum dari pemusik adalah mengerti nada-nada");
}}

class Piano extends Musisi {
String x = "Pianis";
void TampilkanPiano () {
System.out.println("dan Musisi yang Anda pilih adalah "+ x );
System.out.println("musisi ini memainkan piano,alat musik yang cara memainkannya dengan di tekan");
System.out.println("nada-nada yang di hasilkan piano tergolong lembut dan hangat");
}}

class gitar extends Musisi {
String x = "Gitaris";
void Tampilkangitar () {
System.out.println("dan Musisi yang Anda pilih adalah "+ x );
System.out.println("musisi ini memainkan alat yang di petik");
System.out.println("nada-nada yang di hasilkan bisa nada-nada keras maunpun nada-nada lembut");
}}

class drum extends Musisi {
String x = "Drummer";
void Tampilkandrum () {
System.out.println("dan Musisi yang Anda pilih adalah "+ x );
System.out.println("Musisi ini memainkan alat yang di pukul");
System.out.println("biasanya musisi ini merupakan patokan beat dari instrument yang lain ");
}}
class Turunan {
public static void main(String[] args) throws IOException{
String sInput = null ;
System.out.println("____JENIS MUSISI____");
System.out.println("[1]. Pianis ");
System.out.println("[2]. Gitaris ");
System.out.println("[3]. Drumer ");
System.out.print("Masukkan pilihan [1..3] :");
Musisi generalx = new Musisi();
Piano turunan1 = new Piano();
gitar turunan2 = new gitar();
drum turunan3 = new drum ();
drum subxc = new drum();
InputStreamReader inputan = new InputStreamReader(System.in);
BufferedReader jm = new BufferedReader(inputan);
sInput = jm.readLine();
int i = Integer.parseInt(sInput);
switch (i) {
case 1 :
generalx.kelasmusisi ();
turunan1.TampilkanPiano ();break;
case 2 :
generalx.kelasmusisi ();
turunan2.Tampilkangitar ();break;
case 3 :
generalx.kelasmusisi ();
turunan3.Tampilkandrum ();break;
default:
System.out.println("Pilihan yang Anda masukkan salah!!");break;
}
}
}

Outputnya :




2. Polimorfisme
Polimorfisme adalah kemampuan untuk mendapatkan bentuk. Dua objek atau lebih dikatakan polimorfis, bila objek-objek itu mempunyai antara muka-antara muka identik namun mempunyai perilaku-perilaku berbeda. Bentuk ini membolehkan kita menganggap sekumpulan objek dengan jenis-jenis berbeda seperti dimiliki oleh suatu jenis yang sama. Polimorfisme merupakan ciri-ciri yang terjadi karena interaksi setiap konsep pewarisan dan dynamic binding.
Contohnya: Pintu dan tingkap mempunyai perilaku yang sama yaitu boleh dibuka dan ditutup, namun untuk menutup tetingkap dilakukan misalnya dari atas ke bawah (vetikal), sedangkan pintu dari depan ke belakang (horizontal).
Java mengimplementasikan polimorfisme dengan 2 cara yaitu:
a. 1.Methode overloading
b. 2.Methode Overriding dengan pewarisan
Contoh program polimorfisme:

1. Base classnya orang.java

package test.polimorfisme;
public class Orang {
protected String name;
protected String address;

/** konstruktor tanpa parameter **/
public Orang() {
System.out.println("konstruktor dalam kelas Orang");
name = "";
address = "";
}

/** konstruktor dengan parameter nama, address **/
public Orang(String name, String address) {
this.name = name;
this.address = address;
}

/** method accessor **/
public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getName() {
System.out.println("Nama orang : " + name);
return name;
}

public void setName(String name) {
this.name = name;
}
}


2. Lalu buat juga siswa.java sebagai penurunan yg pertama
package test.polimorfisme;
public class Siswa extends Orang {

Siswa(String name, String address) {
super(name, address);
}
@Override
public String getName() {
System.out.println("Nama Siswa : " + name);
return name;
}
}

3. Lalu karyawan.java sebagai yang kedua
package test.polimorfisme;
public class Karyawan extends Orang {

Karyawan(String name, String address) {
super(name, address);
}
@Override
public String getName(){
System.out.println("Nama Kayawan : " + name);
return name;
}
}

4. Dan testapp.java untuk menjalankan program ini
package test.polimorfisme;
public class TestApp {
public static void main(String[] args) {
Orang ref;

Siswa objSiswa = new Siswa("chester", "yellowen");
Karyawan objKaryawan = new Karyawan("Tokihiro", "Osaka");

/** orang merujuk kepada objek siswa **/
ref = objSiswa;
ref.getName();

/** orang merujuk kepada objek karyawan **/
ref = objKaryawan;
ref.getName();
}
}

Maka outputnya adalah:





Refrensi :
http://blogs.mervpolis.com/roller/nikkend/entry/apa_itu_inheritance
http://blogs.mervpolis.com/roller/nikkend/entry/all_about_polimorfisme
http://nur-arianto.blogspot.com/2009/11/inheritance-pada-java.html
http://e12a.wordpress.com/2008/12/30/polimorfisme-dalam-java/

Minggu, 08 April 2012

enkapsulasi

NAMA: Mohammad Ali akbar

NPM: 54410488

KELAS:2IA13

LINK KELOMPOK: http://misterpj.blogspot.com/

Apa yang dimaksud dengan enkapsulasi

buat program sederhana yang mengimplementasikan konsep berorientasi objek & enkapsulasi, ?

jawab:

Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :

• Information hiding.

• Interface to access data.

Information hiding

Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.

Interface to access data

Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada. Menyembunyikan elemen dari penggunaan sebuah class dapat dilakukan dengan pembuatan anggota yang ingin Anda sembunyikan secara private.

Contoh program :

Buat kelas baru dan di simpan dengan nama manusia.java

class manusia{

public String nama;

public manusia(String n){

this.nama = n;

}

public String tampilkanNama(){

return nama;

}

public void makan(){

System.out.println("nasi dan lauk ");

}

public void kerja(){

System.out.println("mahasiswa ");

}

private void hobi(){

System.out.println("kuliah");

}

}

Lalu buat kelas baru lagi dan di simpan dengan arabar.java

class arabar{

public static void main(String arg[]){

manusia arabar= new manusia("arabar");

System.out.println("Nama saya : "+ arabar.tampilkanNama());

arabar.makan();

arabar.kerja();

}

}

Pertama kita compile yang manusia.java dan arabar.java lalu setelahnya kita run yang arabar.java

Lalu hasilnya adalah :




Refrensi :

http://can354dra.wordpress.com/2011/06/18/tutorial-java-implementasi-enkapsulasi/

http://azhar-pti.blogspot.com/2010/03/konsep-enkapsulasi-dalam-oop.html

Rabu, 04 April 2012

perbedaan pemograman terstruktur dan pemograman berorientasi objek

NAMA: MOHAMMAD ALI AKBAR
NPM: 54410488
KELAS:2IA13
LINK KELOMPOK: http://misterpj.blogspot.com/

Jelaskan perbedaan pemrograman terstruktur & berorientasi objek:

PEMROGRAMAN TERSTRUKTUR

Pemograman 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).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
1. Cobol Turbo Prolog
2. C
3. Pascal
4. Delphi
5. Borland Delphi

PEMROGRAMAN BERORIENTASI OBJEK
Pemrograman berorientasi objek (Inggris: 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,
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.
Konsep dasar dari Pemrograman Berorientasi Objek
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; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
Abstraksi – Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
Enkapsulasi – Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan 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. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
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. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
bahasa pemrograman yang mendukung OOP antara lain:
1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. Perl
15. Adobe Flash AS 3.0

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 sekal 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.

Sumber:
http://cahyogemilang.blog.ugm.ac.id/2011/09/15/pemrograman-berorientasi-objek/
http://gutti211.blogspot.com/2011/10/perbedaan-pemograman-berorientasi-objek.html
http://ayufitriyanti.blogspot.com/2012/04/mengetahui-perbedaan-pemrograman.html