Monday, April 16, 2012

Pengertian Pewarisan dan Polymorphism pada Pemrograman Java

Pewarisan (Inheritance)
Pewarisan adalah salah satu konsep terpenting pemrograman berorientasi objek dan mempunyai dampak langsung pada merancang dan menulis class. Pewarisan adalah proses penciptaan class baru dengan mewarisi karekteristik class yang telah ada, ditambah karakteristik unik kelas yang telah ada. Subclass mewarisi semua method dan variabel dari superclassnya. Secara praktis berarti bahwa jika superclass telah mendefinisikan perilaku yang kita perlukan, maka kita tidak perlu mendefinis ulang perilaku itu, kita cukup membuat class yang merupakan subclass dari superclass yang dimaksud.

Polymorphism
Polymorphism merupakan konsep yang sangat penting di dalam konsep OOP. Polymorphism sebagaimana yang kita ketahui dari bahasannya berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek itu mempunyai antarmuka–antarmuka identik namun mempunyai perilaku-perilaku yang berbeda.


Contoh Program Pewarisan (Inheritance)

//Program utama
public class TestMobil {
public static void main(String[] args){
Mobil mobil = new Mobil();
Kijang kijang = new Kijang();
Escudo escudo = new Escudo();
BMW bmw = new BMW();
mobil.injakPedalGas();
mobil = kijang;
mobil.injakPedalGas();
mobil = escudo;
mobil.injakPedalGas();
mobil = bmw;
mobil.injakPedalGas();
}
}

//Buat kelas baru sebagai objek dari program utama
public class Mobil {
public void injakPedalGas(){
System.out.println("Mobil berjalan...");
}
}
class Kijang extends Mobil{
public void injakPedalGas(){
System.out.println("Mobil Melaju dengan kecepatan 80 Km/jam...");
}
}
class Escudo extends Mobil {
public void injakPedalGas(){
System.out.println("Mobil Melaju dengan kecepatan 70 Km/jam...");
}
}
class BMW extends Mobil{
public void injakPedalGas(){
System.out.println("Mobil Melaju dengan kecepatan 100 Km/jam...");
}
}
Output




Contoh Program Polymorphism

//Program Utama
public class VirtualDemo
{
public static void main(String [] args)
{
Salary s = new Salary("Mohd Mohtashim", "Ambehta, UP",
3, 3600.00);
Employee e = new Salary("John Adams", "Boston, MA",
2, 2400.00);
System.out.println("Call mailCheck using : Salary reference --");
s.mailCheck();
System.out.println("\nCall mailCheck using : Employee reference --");
e.mailCheck();
}
}

//Sebagai Objek Program ke 1
public class Employee
{
private String name;
private String address;
private int number;
public Employee(String name, String address, int number)
{
System.out.println("Constructing an Employee");
this.name = name;
this.address = address;
this.number = number;
}
public void mailCheck()
{
System.out.println("Mailing a check to " + this.name
+ " " + this.address);
}
public String toString()
{
return name + " " + address + " " + number;
}
public String getName()
{
return name;
}
public String getAddress()
{
return address;
}
public void setAddress(String newAddress)
{
address = newAddress;
}
public int getNumber()
{
return number;
}
}

//Sebagai Objek Program ke 2
public class Salary extends Employee
{
private double salary; //Annual salary
public Salary(String name, String address, int number, double
salary)
{
super(name, address, number);
setSalary(salary);
}
public void mailCheck()
{
System.out.println("Within mailCheck of Salary class ");
System.out.println("Mailing check to " + getName()
+ " with salary " + salary);
}
public double getSalary()
{
return salary;
}
public void setSalary(double newSalary)
{
if(newSalary >= 0.0)
{
salary = newSalary;
}
}
public double computePay()
{
System.out.println("Computing salary pay for " + getName());
return salary/52;
}
}

Output Polymorphism


Thursday, April 12, 2012

Pengertian Enkapsulasi (Pengapsulan) dalam Pemrograman Java

Pengapsulan adalah proses dpemaketan data bersama metode-metodenya. Manfaat utama pengapsulan adalah menyembunyikan rincian-rincian implementasi dari pemakai. Bagian internal objek mempunyai ketampakan terbatas dibanding bagian eksternal objek. Penyusunan seperti ini menjaga bagian internal dari pengaksesan eksternal yang tidak diinginkan.

Bagian eksternal objek sering disebut antarmuka objek karena berlaku sebagai antarmuka objek terhadap objek lain. Karena objek lain harus berkomunikasi dengan objek itu hanya melalui antarmuka maka bagian internal objek dapat dilindungi dari gangguan luar. Karena program luar tidak mengakses implementasi internal objek, implementasi internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.

Pengapsulan menyediakan dua manfaat utama bagi pemrogram, yaitu:
  1. Penyembunyian informasi
  • Penyembunyian implementasi (implementation hiding) mengacu perlindungan implementasi internal objek. Objek disusun dari antarmuka public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utama adalah bagian interlnal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
2. Modularitas
  • Modularitas (modularity) berarti objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistribusikan objek-objek di sistem.

Pengapsulan pada java dilakukan dengan pembentukan kelas-kelas, yaitu keyword class. Sedangkan penyembunyian informasi dilakukan dengan pengendalian terhadap pengaksesan pembentuk kelas dengan keyword-keyword untuk kendali pengaksesan default, private, protected, dan public. Penyembunyian informasi dilakukan dengan menerapkan kendali pengaksesan private atau protected pada elemen kita.

Contoh Program:

class angkutan{
public String bis ="Metromini";
private String org = "Penumpang";
void isi()
{
System.out.println("Panggil Isi nya : "+org);
}
}

Simpan program diatas dengan nama file angkutan.java

public class penumpang{
public static void main(String[]args){
angkutan panggil = new angkutan();
System.out.println("Panggil Kendaraan : "+panggil.bis);
panggil.isi();
}
}

Simpan program diatas dengan nama file penumpang.java


Penjelasan kelas angkutan


class angkutan{

Statement ini digunakan untuk membuat class angkutan.

public String bis ="Metromini";

public string bis artinya variabel bis merupakan variabel yang bertipe data string dengan hak akses nya bersifat public (dapat diakses dari kelas lain).

private String org = "Penumpang";

private string org artinya variabel org merupakan variabel yang bertipe data string dengan hak akses nya private (hanya dapat diakses dari dalam kelas itu sendiri).

void isi()
{
System.out.println("Panggil Isi nya : "+org);
}
}

Dan statement ini digunakan untuk membuat suatu objek dalam kelas dimana kita akan menghasilkan output didalam kelas angkutan dari variabel org yang hak akses nya private agar dapat di cetak dalam kelas lain.


Kemudian untuk kelas penumpang


public class penumpang{

membuat kelas baru dengan nama kelas penumpang dan dapat diakses secara public dengan menambahkan statement public

public static void main(String[]args){

Ini merupakan argument standar minimum yang terdapat dalam bahasa pemrograman Java

angkutan panggil = new angkutan();

Mendeklarasikan objek angkutan sebagai objek panggil. Kita tetap bisa menggunakan objek angkutan untuk memanggil namun disini saya berusaha menjelaskan untuk memudahkan dalam pengertian bahasa pemrograman berbasis objek tersebut.

System.out.println("Panggil Kendaraan : "+panggil.bis);

Statement ini digunakan untuk mencetak variabel bis yang terdapat pada kelas angkutan.

panggil.isi();
}
}

Statement ini digunakan untuk memanggil objek isi dimana objek ini sudah menghasilkan output yang sebelumnya dicetak didalam kelas angkutan.


Untuk menjalankan program jangan lupa untuk meng-compile kedua program tersebut.


OUTPUT

Thursday, April 5, 2012

Perbedaan Pemrograman Terstruktur & Pemrograman Berorientasi Objek

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

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

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

Bahasa pemrograman yang mendukung pemrograman terstruktur:

  1. Cobol Turbo Prolog
  2. C
  3. Pascal
  4. Delphi
  5. Borland Delphi

Setelah mengetahu pengertiannya?

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.


permodelan yang mana yang lebh 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


Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:


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.


Mana yang lebih baik

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.


Kapan sama2 baik

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.


Referensi :

  1. wikipeda.co.id
  2. darkdevil4bloodyvenus.wordpress.com
  3. myblogar.blogspot.com
  4. www.ms-room.com