Kali ini saya akan membuat mencetak abjad dengan java, memang simple,
ya gpp, yang penting tugas saya sudah beres.. hehe..
ok langsung aja ke TKP...
Pertama kita membuat class dengan nama abjad.java
terus masukan script di bawah ini, kemudian di run..
public class abjad {
public static void main(String[] args) {
char abjad;
for(abjad = 'A'; abjad <= 'Z'; abjad++){
System.out.println("Huruf"+ " " + abjad);
}
}
}
Selamat Mencoba...
Maaf masih newbie..
Sabtu, 10 November 2012
Polymorphism pada java
Polymorphism dapat disamakan dengan Method Overloading, dimana di dalam sebuah class terdapat beberapa method dengan nama sama. Sebuah Method bernama CetakData() yang misalnya berfungsi menampilkan data String, tentu tidak bisa menangani masukan berupa data numerik, boolean, ataupun karakter, demikian juga sebaliknya. Solusi yang bisa dilakukan adalah dengan menyediakan beberapa Method CetakData() yang akan menangani setiap tipe data, sehingga data apapun yang diberikan sebagai parameter tetap bisa diproses.
Berikut adalah contoh program Polymorphism pada Java:
Berikut adalah contoh program Polymorphism pada Java:
1. Pakailah editor untuk menuliskan Source Code Java, seperti Notpad, JCreator, atau
Netbeans, Dan kitekkan Source Code Dibawah ini :
class CetakDataTipe {
// membuat method dengan nama sama tapi berbeda tipe data
public void CetakData(String Cetak) {
System.out.println(Cetak);
}
public void CetakData(int Cetak) {
System.out.println(Cetak);
}
public void CetakData(double Cetak) {
System.out.println(Cetak);
}
public void CetakData(char Cetak) {
System.out.println(Cetak);
}
}
public class Polymorphism {
public static void main(String[] args) {
CetakDataTipe data = new CetakDataTipe();
System.out.print("Cetak Data Tipe String : ");
data.CetakData("Sumatra");
System.out.print("Cetak Data Tipe Integer : ");
data.CetakData(1989);
System.out.print("Cetak Data Tipe Double : ");
data.CetakData(16.5 / 2);
System.out.print("Cetak Data Tipe Char : ");
data.CetakData('N');
}
}
2. Lalu Jalankan Program dan Akan mendapatkan Output seperti dibawah ini :
Method CetakData() akan bereaksi dengan satu dari 4 macam tipe data, tergantung dari data yang Passing ke dalamnnya. Keragaman model Method ini disebut Polimorph atau Banyak Bentuk.
Inheritance pada java
Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.
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.
Contoh dari hierarki class :
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.
Contoh dari hierarki class :
- Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
- Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.
Contoh Program Inheritance Dalam java
1. kelas BangunDatar.java
class BangunDatar {
public void HitungLuas(){
System.out.println("Belum terdefinisi/belum jelas luas apa yang dihitung");
}
public void HitungKeliling(){
System.out.println("Belum terdefinisi/belum jelas keliling apa yang dihitung");
}
}
2. Subkelas SegiTiga.java dari kelas BangunDatar.java
class SegiTiga extends BangunDatar {
//variabel instan
protected double panjang=6;
protected double lebar=5;
private double miring=7;
@Override
public void HitungLuas(){
double luas; //deklarasi variabel lokal
luas=this.panjang*this.lebar/2;
//mencetak luas segitiga
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Luas Segitiga adalah "+luas+" cm kuadrat");
}
@Override
public void HitungKeliling(){
double keliling; //deklarasi variabel lokal
keliling=this.panjang+this.lebar+this.miring;
//mencetak keliling segitiga
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Miring : "+this.miring+ " cm");
System.out.println("Keliling Segitiga adalah "+keliling+ " cm");
}
}
3. Subkelas PersegiPanjang.java dari kelas SegiTiga.java untuk menentukan akses protected
class PersegiPanjang extends SegiTiga {
@Override
public void HitungLuas(){
double luas; //deklarasi variabel lokal
luas=this.panjang*this.lebar;
//mencetak luas PersegiPanang
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Luas Persegi panjang adalah "+luas+" cm kuadrat");
}
@Override
public void HitungKeliling(){
double keliling; //deklarasi variabel lokal
//mencetak keliling PersegiPanjang
keliling=(2*this.panjang)+(2*this.lebar);
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Keliling Persegi Panjang adalah "+keliling+" cm");
}
}
4. Program Utama /main HasilBangunDatar.java
class HasilBangunDatar {
public static void main(String[] args) {
//membuat objek dari kelas BangunDatar
BangunDatar bd=new BangunDatar();
//membuat objek bd melakukan sesuatu
bd.HitungLuas();
bd.HitungKeliling();
System.out.println("");
//membuat objek dari kelas SegiTiga
SegiTiga st=new SegiTiga();
//membuat objek st melakukan sesuatu
st.HitungLuas();
System.out.println("");
st.HitungKeliling();
System.out.println("");
//membuat objek dari kelas Persegi Panjang
PersegiPanjang pp=new PersegiPanjang();
//membuat objek pp melakukan sesuatu
pp.HitungLuas();
System.out.println("");
pp.HitungKeliling();
}
}
5. Hasil Akhir Program
Belum terdefinisi/belum jelas luas apa yang dihitung
Belum terdefinisi/belum jelas keliling apa yang dihitung
Panjang : 6.0 cm
Lebar : 5.0 cm
Luas Segitiga adalah 15.0 cm kuadrat
Panjang : 6.0 cm
Lebar : 5.0 cm
Miring : 7.0 cm
Keliling Segitiga adalah 18.0 cm
Panjang : 6.0 cm
Lebar : 5.0 cm
Luas Persegi panjang adalah 30.0 cm kuadrat
Panjang : 6.0 cm
Lebar : 5.0 cm
Keliling Persegi Panjang adalah 22.0 cm
class BangunDatar {
public void HitungLuas(){
System.out.println("Belum terdefinisi/belum jelas luas apa yang dihitung");
}
public void HitungKeliling(){
System.out.println("Belum terdefinisi/belum jelas keliling apa yang dihitung");
}
}
2. Subkelas SegiTiga.java dari kelas BangunDatar.java
class SegiTiga extends BangunDatar {
//variabel instan
protected double panjang=6;
protected double lebar=5;
private double miring=7;
@Override
public void HitungLuas(){
double luas; //deklarasi variabel lokal
luas=this.panjang*this.lebar/2;
//mencetak luas segitiga
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Luas Segitiga adalah "+luas+" cm kuadrat");
}
@Override
public void HitungKeliling(){
double keliling; //deklarasi variabel lokal
keliling=this.panjang+this.lebar+this.miring;
//mencetak keliling segitiga
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Miring : "+this.miring+ " cm");
System.out.println("Keliling Segitiga adalah "+keliling+ " cm");
}
}
3. Subkelas PersegiPanjang.java dari kelas SegiTiga.java untuk menentukan akses protected
class PersegiPanjang extends SegiTiga {
@Override
public void HitungLuas(){
double luas; //deklarasi variabel lokal
luas=this.panjang*this.lebar;
//mencetak luas PersegiPanang
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Luas Persegi panjang adalah "+luas+" cm kuadrat");
}
@Override
public void HitungKeliling(){
double keliling; //deklarasi variabel lokal
//mencetak keliling PersegiPanjang
keliling=(2*this.panjang)+(2*this.lebar);
System.out.println("Panjang : "+this.panjang+ " cm");
System.out.println("Lebar : "+this.lebar+ " cm");
System.out.println("Keliling Persegi Panjang adalah "+keliling+" cm");
}
}
4. Program Utama /main HasilBangunDatar.java
class HasilBangunDatar {
public static void main(String[] args) {
//membuat objek dari kelas BangunDatar
BangunDatar bd=new BangunDatar();
//membuat objek bd melakukan sesuatu
bd.HitungLuas();
bd.HitungKeliling();
System.out.println("");
//membuat objek dari kelas SegiTiga
SegiTiga st=new SegiTiga();
//membuat objek st melakukan sesuatu
st.HitungLuas();
System.out.println("");
st.HitungKeliling();
System.out.println("");
//membuat objek dari kelas Persegi Panjang
PersegiPanjang pp=new PersegiPanjang();
//membuat objek pp melakukan sesuatu
pp.HitungLuas();
System.out.println("");
pp.HitungKeliling();
}
}
5. Hasil Akhir Program
Belum terdefinisi/belum jelas luas apa yang dihitung
Belum terdefinisi/belum jelas keliling apa yang dihitung
Panjang : 6.0 cm
Lebar : 5.0 cm
Luas Segitiga adalah 15.0 cm kuadrat
Panjang : 6.0 cm
Lebar : 5.0 cm
Miring : 7.0 cm
Keliling Segitiga adalah 18.0 cm
Panjang : 6.0 cm
Lebar : 5.0 cm
Luas Persegi panjang adalah 30.0 cm kuadrat
Panjang : 6.0 cm
Lebar : 5.0 cm
Keliling Persegi Panjang adalah 22.0 cm
Sumber :
Encapsulation pada java
Encapsulation
Encapsulation adalah pembungkusan attribut/properti (field atau variable) dan tingkah laku (method) di dalam sebuah kelas untuk menyembunyikannya dari kelas lain, sehingga kelas lain tidak dapat mengakses atribut dan method yang disembunyikan di dalam kelas yang lainnya. Di dalam sebuah class terdapat atribut dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier.
Access Modifier terdiri dari private, protected, dan public.
- private
memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut. - protected
memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut. - public
memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.
Contoh program encapsulation
public class Mamalia {
private String kaki,tempat;
private String kaki,tempat;
protected void setKaki(String kaki){
this.kaki = kaki;
}
this.kaki = kaki;
}
protected String getKaki(){
return this.kaki;
}
return this.kaki;
}
protected void setTempatHidup(String tempat){
this.tempat = tempat;
}
this.tempat = tempat;
}
protected String getTempatHidup(){
return this.tempat;
}
return this.tempat;
}
public String namaKelas(){
return “Kelas Mamalia”;
}
}
return “Kelas Mamalia”;
}
}
Dari script di atas terlihat bahwa field kaki dan tempat serta metode-metodenya terbungkus dalam sebuah kelas yaitu kelas mamalia
Karakteristik OOP
Karakteristik OOP
• Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :– Encapsulation (pembungkusan)
– Inheritance (pewarisan)
– Polymorphism (polimorfisme – perbedaan bentuk)
Encapsulation (pembungkusan)
• Variabel dan method dalam suatu obyek dibungkus agar terlindungi• Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu interface
• Setelah variabel dan method dibungkus, hak akses terhadapnya bisa ditentukan.
• Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data struktur
Mengapa variabel dan method perlu dibungkus ?
• Supaya terlindungi, artinya hak akses terhadapnya bisa ditentukan.• Bersifat pribadi, artinya kita tidak perlu tahu semua method yang ada dalam obyek
• Contoh : obyek Roti, obyek ini mempunyai method Pembuatan Roti
• Jika kita ingin memakan roti, tentu kita tidak perlu tahu bagaimana caramembuatnya
• Demikian juga jika kita ingin mengakses obyek Roti, tentu kita tidak perlu tahu isi dari method Pembuatan
Roti.
Inheritance (pewarisan)
• Sebuah class bisa mewariskan atribut dan method-nya ke class yang lain• Class yang mewarisi disebut superclass
• Class yang diberi warisan disebut subclass
• Sebuah subclass bisa mewariskan atau berlaku sebagai superclass bagi class yang lain => disebut multilevel
inheritance
Contoh Pewarisan
• Class Nenek adalah superclass dari class Ibu• Class Ibu adalah superclass dari class Anak
• Sebuah subclass memiliki beberapa kesamaan dengan superclass-nya, dalam hal atribut/variabel dan
method yang dimilikinya
• Contoh pewarisan yang lain : class kendaraan merupakan superclass bagi class mobil, truk dan bis
Keuntungan Penggunaan Pewarisan
• Subclass memiliki atribut dan method yang spesifik yang membedakannya dengan superclass, meskipunkeduanya mirip (dalam hal kesamaan atribut dan method)
• Dengan demikian pada pembuatan subclass, programmer bisa menggunakan ulang source code dari
superclass yang ada => ini yang disebut dengan istilah reuse
• Class-class yang didefinisikan dengan atribut dan method yang bersifat umum yang berlaku baik pada
superclass maupun subclass disebut dengan abstract class
Konsep Multiple Inheritance dan Single Inheritance
• Suatu subclass bisa menjadi superclass bagi class yang lain => berlaku untuk C dan Java• Suatu class diperbolehkan memiliki lebih dari satu superclass => berlaku hanya di C
• Suatu class hanya boleh memiliki satu superclass => hanya berlaku pada Java
Polimorphism (polimorfisme)
• Polimorfisme artinya penyamaran dimana suatu bentuk dapat memiliki lebih dari satu bentukSumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf
Tentang Behaviour atau Method
Behaviour atau Method
• Dalam Class, behavior disimpan dalam bentuk method.• Method merupakan hal-hal yang bisa dilakukan oleh obyek dari suatu class
• Yang bisa dilakukan oleh method :
– Merubah nilai atribut suatu obyek
– Menerima informasi dari obyek lain
– Mengirim informasi ke obyek lain untuk melakukan sesuatu
Method dalam Class
• Method merupakan bagian dari class yang menangani suatu tujuan tertentu dan berisi serangkaian perintah(perintah=baris program)
• Obyek yang sama dengan obyek yang lain dapat berkomunikasi dengan menggunakan method.
Contoh pembuatan class
class Mobil {String aktifitas, warna;
int kecepatan;
void cekKecepatan() {
if (kecepatan==0)
aktifitas=“parkir”;
}
void cetakAtribut() {
System.out.println(“Aktifitas = “+aktifitas);
System.out.println(“Warna = “+warna);
System.out.println(“Kecepatan=“+kecepatan);
}
}
Penciptaan obyek dari sebuah class
• Obyek diciptakan dengan perintah new• Misal akan diciptakan obyek baru dari class mobil dengan nama mobilku
• Maka perintah penciptaan obyek mobilku dari class Mobil : Mobil mobilku = new Mobil();
Sumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf
Tentang Objek, Class, Atribut
Apa itu Obyek ?
• Semua hal yang ada dalam dunia nyata, baik konkrit maupun abstrak• Contoh obyek konkrit : rumah, sekolah, dosen, mahasiswa, dll.
• Contoh obyek abstrak : mata kuliah, penjadwalan, dll.
Ciri-ciri atau karakteristik Obyek
• Obyek memiliki status (state) dan tingkah laku (behavior)• Status (state) disebut juga dengan atribut
• Contoh obyek : obyek mobil
– Atribut : merek, warna, bahan bakar
– Method : pindah persnelling, kecepatan bertambah, dll
• Pada OOP : status disimpan dalam variabel, dan tingkah laku disimpan dalam method
Apa itu Class ?
• Class merupakan tempat untuk membuat obyek• Di dalam class dideklarasikan variabel dan method yang dimiliki oleh obyek
• Proses pembuatan obyek dari sebuah class disebut dengan instantiation
• Jadi obyek merupakan hasil instansiasi dari class
• Obyek disebut juga dengan instance
Anggota Class (class member)
• Anggota Class terdiri dari atribut dan method.• Tiap anggota class memiliki kontrol pengaksesan tersendiri, artinya apakah anggota tersebut dapat diakses
dengan bebas (tipe public) atau hanya dapat diakses melalui sebuah interface.
Apa itu atribut ?
• Atribut adalah data yang dapat membedakan antara satu obyek dengan obyek yang lain• Contoh untuk class mahasiswa terdapat obyek mahasiswa si A, dan obyek mahasiswa si B. Yang
membedakan antara obyek si A dan obyek si B adalah NRP-nya yang merupakan atribut dari obyek
tersebut.
Instance variable vs. class variable
• Instance variable– Atribut yang dimiliki oleh obyek dari class yang sama
– Tiap obyek memiliki instance variable dan menyimpan nilainya tersendiri
– Jadi beberapa obyek yang berasal dari class yang sama, nilai instance variablenya boleh sama boleh
tidak.
• Class variable
– Atribut yang dimiliki oleh semua obyek yang berasal dari class yang sama
– Semua obyek memiliki nilai class variable yang sama
– Jadi semua obyek yang berasal dari class yang sama, nilai class variable-nya harus sama
Ilustrasi perbedaan class variable dan instance variable
• Ada seekor kucing bernama pusi dan seorang anjing bernama heli.• Keduanya merupakan dua obyek yang berbeda dan berasal dari class yang sama yaitu binatang.
• Obyek pusi dan obyek heli memiliki class variable :
– Jenis : binatang
– Ekor : ada
• Obyek pusi memiliki instance variable :
– Suara : meong
• Obyek heli memiliki instance variable :
– Suara : guggug
Sumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf
Perbandingan OOP dengan Prosedural
Pemrograman Prosedural
• Diselesaikan dalam bentuk prosedur atau fungsi• Program merupakan urut-urutaninstruksi
• Program dipecah-pecah ke dalam sub program yang lebih sederhana
• Fokus utama pada prosedur dan fungsi
• Fungsi dan prosedur digunakan untuk memanipulasi data
• Sedangkan data sendiri bersifat pasif
Pemrograman Berbasis Obyek
• Fungsi dan data menjadi satu kesatuan yang disebut obyek• Obyek-obyek dalam OOP bersifataktif
• Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang
bekerjasama untuk menyelesaikan masalah
Beda nyata antara prosedural dan OOP
• Prosedural
Fokus pada bagaimana cara komputer menangani masalah• OOP
Fokus pada masalah yang ditangani dengan menggunakan komputerSumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf
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:
- Visual Foxpro
- Java
- C++
- Pascal (bahasa pemrograman)
- SIMULA
- Smalltalk
- Ruby
- Python
- C#
- Delphi
- Eiffel
- Perl
- Adobe Flash AS 3.0
- vb.net
Langganan:
Postingan (Atom)