Polimorphism
Polimorphism bisa diartikan sebagai suatu object yang dapat memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object dari superclassnyaPolimorphism ada 2 macam;
- Overloading, Penggunaan satu nama untuk beberapa method yang berbeda parameter
- Overriding, Terjadi ketika deklarasi method subclass sama dengan method dari superclassnya
- Dalam sebuah kelas diperbolehkan ada lebih dari satu method dengan nama yang sama dengan catatan methods dapat dibedakan berdasarkan banyaknya parameter atau tipe data parameter formal
class Lingkaran {
double r;
Lingkaran (double r) {this.r = r;}
double Luas() {return Math.PI*this.r*this.r;}
double Luas (double r) {//overloading method Luas() beda signature
this.r = r;
return Math.PI*this.r*this.r;}
double Luas (int r) {//overloading method Luas() beda signature
System.out.println(”tipe data harus double. r tidak diubah!”);
return Math.PI*this.r*this.r;}
double Luas (double r, double PI) {//overloading method Luas() beda signature
this.r = r;
return PI*this.r*this.r;}}
- Overloading tidak bisa dilakukan dengan membedakan nilai kembaliannya
class Lingkaran {
double r;
Lingkaran (double r) {this.r = r;}
double Luas() {return Math.PI*this.r*this.r;}}
- Overloading juga bisa dilakukan pada sub kelasnya
class Lingkaran {
double r;
Lingkaran(double r) {this.r = r;}
double Luas() {return Math.PI*this.r*this.r;}
double Luas(double r) {//overloading method Luas() beda signature
this.r = r;
return Math.PI*this.r*this.r;}
double Luas(int r) {//overloading method Luas() beda signature
System.out.println(”tipe data harus double. r tidak diubah!”);
return Math.PI*this.r*this.r;}
double Luas(double r, double PI) {//overloading method Luas() beda signature
this.r = r;
return PI*this.r*this.r;}}
class Tabung extends Lingkaran {Overloading method dapat digunakan ketika kita mempunyai operasi yang sama namun berbeda implementasinya. Yang terpenting dalam melakukan ini, nama method harus sama, tapi mempunyai parameter yang berbeda. Terserah berbeda dari segi tipe datanya atau jumlah parameternya. Tergantung kebutuhan untuk implementasi dan nilai kembaliannya. Jadi yang perlu diingat saat melakukan overloading method:
double h;
Tabung() {super(0);
//konstruktor kelas turunan, ada keyword super()
//diisi nilai awal}
double Luas(double r, double PI, double h) {//overloading method Luas() beda signature
this.r = r;
return PI*this.r*this.r*this.h;}}
• Nama method sama
• Parameter berbeda (baik tipe maupun jumlahnya)
• Tipe data nilai kembalian dapat berbeda atau sama
Overloading itu mendeklarasikan lebih dari satu kali dengan syarat-syarat tertentu. baik overloading method ataupun konstruktor
OVERRIDING
Overriding konsepnya sama dengan overloading yaitu menulis kembali method. Namun, caranya overriding menulis kembali method sama persis. Sama mulai dari nama method dan isinya dan mengimplementasi kembali di sub classnya. Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya. Jadi overriding method mempunyai nama method yang sama, jumlah parameter dan tipe parameter serta nilai kembalian (return) method yang di override. Jika method memiliki modifier akses public, method overridenya juga harus public.
Contoh:
class Kendaraan {NB:
public String getJenis() {System.out.println(“Harga BBM turun”);}}
class Motor extends Kendaraan {public String getJenis() {
System.out.println(“Harga BBM premium 4000 rupiah”);}}
- class motor mengextends class kendaraan
- class motor melakukan override method di kendaraan namun berbeda implementasi
- Override method merupakan method yang sama persis dengan method yang sudah ada di super kelasnya, biasanya perbedaannya adalah pada implementasi (program body)
- Overidding tidak bisa dilakukan dalam kelas itu sendiri
- Jadi Overidding kerat kaitannya dengan inheritance (pewarisan)
class Lingkaran {NB:
double r;Lingkaran(double r) {
this.r = r;}
double Luas() {return Math.PI*this.r*this.r;}
double Luas(double r) {this.r = r;
return Math.PI*this.r*this.r;}}
class Tabung extends Lingkaran {
double h;Tabung() {
//konstruktor kelas turunan, ada super() dan diisi nilai awal
super(0);}
double Luas(double r) {//overriding (method and parameter sama)
this.r = r;
return Math.PI * this.r * this.r * this.h;}}
- Class lingkaran melakukan overloading method Luas (beda signature)
- Class tabung mengextends class lingkaran
- Class tabung meng-override method Luas hasil dari overload. Jadi kita juga biosa mengoverride method hasil overloading juga
class Sepeda{ //Sepeda.java
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {gir= gir+ pertambahanGir;
System.out.println(”Gir:” + gir);}
void tambahKecepatan(int pertambahanKecepatan) {kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(”Kecepatan:” + kecepatan);}}
class SepedaGunung extends Sepeda { //SepedaGunung.java
int setSadel;
void ubahGir(int pertambahanGir){gir= 2*(gir+ pertambahanGir );
System.out.println(”Gir:” + gir);}}
class SepedaGunungBeraksi { //SepedaGunungBeraksi.java
public static void main(String[] args) {// Membuat object
SepedaGunung sepedaku = new sepedaGunung();
// Memanggil method di object
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);}}
Inheritance (Pewarisan)
Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut.
Dengan kata lain:
* Super (super class)
Misalnya class ORTU mempunyai mempunyai variabel dan method dan diturunkan ke sub classnya (misal: class ANAK). Berarti class ANAK mempunyai semua variabel dan method yang dimiliki oleh class ORTU.
Lalu bagaimana caranya? Caranya adalah dengan menggunakan kata kunci extends. Bentuk umum proses inheritance adalah
Dengan kata lain:
* Super (super class)
Bisa disebut juga dengan induk.
Misalnya class ORTU adalah super class yang mewarisi ke class ANAK
Nah, karena mewarisi berarti ORTU bertindak sebagai super class
Misalnya class ORTU adalah super class yang mewarisi ke class ANAK
Nah, karena mewarisi berarti ORTU bertindak sebagai super class
* Sub (sub class)
Bisa disebut dengan anak
Misalnya class ANAK diwarisi oleh class ORTU
Artinya anak adalah sub class dari class ORTU (super class)
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, kode method dapat dituliskan hanya sekali dan dapat digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya sendiri dan induknya.Misalnya class ANAK diwarisi oleh class ORTU
Artinya anak adalah sub class dari class ORTU (super class)
Misalnya class ORTU mempunyai mempunyai variabel dan method dan diturunkan ke sub classnya (misal: class ANAK). Berarti class ANAK mempunyai semua variabel dan method yang dimiliki oleh class ORTU.
Lalu bagaimana caranya? Caranya adalah dengan menggunakan kata kunci extends. Bentuk umum proses inheritance adalah
class extends {Contoh:
;
}
class ANAK extends ORTU {Contoh lain:
}
// class anak sebagai subclass yang mendapat warisan dari class ORTU
// Lingkaran.javaDi dalam Java semua class yang kita buat sebenarnya adalah turunan atau subclass dari class Object. Class Object merupakan class tertinggi dari semua hirarki class dalam Java
class Lingkaran {
double r;
double Luas() {return Math.PI * this.r * this.r;}}
// Silinder.java
class Silinder extends Lingkaran {
double h;
double Volume() {
return Math.PI * this.r * this.r * this.h ;}}
Latihan berikut untuk mengenalkan konsep dari inheritance yaitu suatu class dapat mewariskan atibut dan method kepada claas lain (subclass)
berikut kita analisis source code berikut:
Sepeda.java (class tertinggi atau superclass)
SepedaGunung.java adalah class yang mewarisi class Sepeda.java. dengan keyword extends kita dapat menggunakan method dan atribut yang ada pada class Sepeda.java
SepedaGunung.java
SepedaGunungBeraksi.java
jawab:
terlebih dahulu kita buat class Mobillengkap.java yang sebelumnya sudah kita buat di artikel sebelumnya:
MobilBMW.java
MobilBMWBeraksi.java
berikut kita analisis source code berikut:
Sepeda.java (class tertinggi atau superclass)
class Sepeda{
//mendeklarasikan variabelint kecepatan = 0;
int gir = 0;//membuat method ubahGir dan parameter pertambahanGir yang bertipe integer
void ubahGir(int pertambahanGir) {gir= gir+ pertambahanGir;
System.out.println(”Gir:” + gir);}//membuat method tambahKecepatan dan parameter pertambahanKecepatan yang bertipe integer
void tambahKecepatan(int pertambahanKecepatan) {kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(”Kecepatan:” + kecepatan);}}
SepedaGunung.java adalah class yang mewarisi class Sepeda.java. dengan keyword extends kita dapat menggunakan method dan atribut yang ada pada class Sepeda.java
SepedaGunung.java
class SepedaGunung extends Sepeda {SepedaGunungBeraksi.java digunakan untuk mengeksekusi atau memanggil method yang ada pada class Sepeda.java dan class SepedaGunung.java
//mendeklarasikan atributint setSadel;//membuat method setSadel dan parameter nilaiSadel yang bertipe integerpublic void setSadel(int nilaiSadel) {setSadel = nilaiSadel;
System.out.println(“Tinggi Sadel:”+setSadel);}}
SepedaGunungBeraksi.java
class SepedaGunungBeraksi {dengan cara yang sama, kita akan mengembangkan program java diatas. kita akan membuat class MobilBMW yang merupakan inherit dari class Mobillengkap dengan menambahkan beberapa method nontonTV() yang isinya menampilkan tulisan tv dihidupkan, tv mencari chanel, tv menampilkan gambar. buat class MobilBMWBeraksi yang memanggil method nontonTV(), hidupkanMobil(), matikanMobil(), dan ubahGigi().
public static void main(String[] args) {// Membuat object
SepedaGunung sepedaku = new sepedaGunung();// Memanggil method dan memberikan nilai parameter pada masing-masing method diobject
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);}}
jawab:
terlebih dahulu kita buat class Mobillengkap.java yang sebelumnya sudah kita buat di artikel sebelumnya:
class mobilLengkap{ //penulisan class harus sama dengan nama filenyaselanjutnya kita buat class MobilBMW.java yang mengextends atau mewarisi class MobilLengkap.java yang ditambahi dengan method nontonTV().
String warna ;
int tahunProduksi;//membuat method printMobil
void printMobil(){System.out.println(”warna:”+warna);
System.out.println(”Tahun:”+tahunProduksi);}//membuat method hidupkanMobilvoid hidupkanMobil(){
System.out.println(”mobil sudah hidup”);}//membuat method matikanMobilvoid matikanMobil(){
System.out.println(”mobil sudah mati”);}//membuat method jalankanMobilvoid jalankanMobil(){
System.out.println(”mobil sudah berjalan”);}}
MobilBMW.java
class MobilBMW extends MobilLengkap{ /*perintah extends digunakan untuk mewarisi atribut dan method yang ada pada class mobilLengkap*/selanjutnya kita buat file MobilBMWBeraksi.java untuk memanggil method nontonTV(), hidupkanMobil(), matikanMobil(), dan ubahGir().
//membuat method nontonTV()public void nontonTV(){System.out.println(”TV dihidupkan”);
System.out.println(”TV mencari Chanel”);
System.out.println(”TV menampilkan gambar”);}}
MobilBMWBeraksi.java
public class MobilBMWBeraksi{
public static void main(String[] args){//membuat object//memanggil method
MobilBMW mobilku= new MobilBMW();
mobilku.nontonTV();
mobilku.hidupkanMobil();
mobilku.matikanMobil();
mobilku.ubahGigi();
}}
JAVA FUNDAMENTAL
OPERATOR
Operator adalah suatu simbol yang digunakan untuk operasi tertentu. JAVA mempunyai banyak jenis operator antara lain:

Bentuk Umum:
Operator adalah suatu simbol yang digunakan untuk operasi tertentu. JAVA mempunyai banyak jenis operator antara lain:
- Assignment
- Aritmatika
- Hubungan
- Logika
- Bitwise
- Operator Unary: Melibatkan satu operand. Contoh: -4.00
- Operator binary: Melibatkan dua operand. Contoh: 2 + 3
- Operator tertiary: Melibatkan tiga operand. Contoh: 23 ? SI : NOSI

Operator yang mempunyai jenjang lebih kecil akan dikerjakan lebih dulu
contohnya:Total=2+3*8;
/*Total=26
karena * mempunyai jenjang lebih dulu
yang dikerjakan 3*8 dulu baru kemudian ditambahkan dengan 2*/
Operator Assignment

Operator Aritmatika

Operator Hubungan

Operator Logika

Operator Bitwise

Operator Ternary
Biasa disebut dengan Operator Kondisi. Operator ini membutuhkan 3 argumenBentuk Umum:
? : ;
//Nilai_1 untuk nilai yang benar
//Nilai_2 untuk nilai yang salah
Contoh:
String Nilai = IPK <>sumber: http://bernazlionk.wordpress.com/2009/01/18/java-operator/
Saturday, September 12, 2009
Tugas mata kuliah "Pemrograman Berorientasi Obyek"
PEMROGRAMAN BERORIENTASI OBJEK
Belajar PBO, berarti harus membiasakan diri berpikir secara kelas dan objek setiap menghadapi masalah.
Contoh :
Buatlah program untuk menghitung keliling lingkaran dari masukan jari-jarinya !
Masalah tersebut bila disajikan dengan pendekatan kelas dan objek, harus direvisi sebagai berikut :
Buatlah kelas lingkaran yang memiliki tanggungjawab mengetahui jari-jarinya dan kelilingnya, lingkaran tersebut dapat melakukan aksi mengembang dan berkerut sesuai dengan panjang jari-jarinya.
1 |
Bahasa java yang telah dirilis :
1. Product Sun Microsystem : j2se, j2me, j2ee
2. Product Borland : JBuilder
3. Product Microsoft : Visual J
Spesifikasi j2ee antara lain JDBC, JDOM (untuk XML), Remote Method Invocation, Enterprise Java Beans, Java Messaging, Java Server Pages, Java Servlet, Socket Programming, dan SQLJ. Java/Standard Development Kit (JDK/SDK) merupakan alat-alat utama bagi programmer untuk membuat dan menjalankan java. Development Kit dapat didownload di :
http://java.sun.com/product/JDK/index.html
atau
http://java.sun.com/j2se/1.5/index.html
atau
http://java.sun.com/cgi-bin/java-ports.cgi
3 |
Komponen JDK antara lain compiler(javac), interpreter(java) disebut juga java virtual machine atau java runtime environment, applet viewer(appletviewer), debugger(jdb), java class library(jcl), header dan stub generator(javah), dan yang paling penting yaitu java documentation(javadoc). Penjelasan penggunaan komponen JDK :
1. Kompilator (javac) Bertugas untuk melaksanakan kompilasi
*.java menjadi *.class
Syntax umum : javac nama.java
2. Interpreter (java) Bertugas untuk menjalankan bytecode (*.class)
Syntax umum : java nama.class
3. Applet Viewer Digunakan untuk menjalanakan applet viewer, namun sekarang sudah digantikan browser.
Syntax umum : appletviewer nama.html
4. Java Debugger Bertugas untuk melakukan debugging aplikasi java.
Syntax umum : jdb option
4 |
5. Java Class File Diassembler (javap) Bertugas membuat daftar method dan attribute public dari suatu kelas.
Syntax : javap namaKelas
6. Java Header and Stub Generator Bertugas menerjemahkan bahasa yang ditulis dalam bahasa java menjadi bahasa C.
Syntax umum : javah namaKelas
7. Java Documentation Generator Menampilkan pustaka kelas, interface, constructor, dan method standard yang telah dibuat vendor.
Dari hasil instalasi, dokumentasi ini dapat dilihat di C:\java\docs\api\index.html atau C:\Program Files\NetBeans3.6\docs\junit\index.html
8. Source Code Java API Source code ini dapat diperoleh dari file src.zip.
5 |
Untuk pemrogram pemula lingkungan pemrograman java dapat diringkas menjadi :
1. Editing source code menggunakan editor teks.
2. Compiling menggunakan keyword javac melalui command promp (dapat juga dari editor teks).
3. Executing menggunakan :
a. Keyword java melalui command prompt (dapat juga dari editor teks)
b. Browser atau applerviewer untuk applet.
Token
Token adalah elemen terkecil di program yang masih memiliki arti. Ada 5 token dalam bahasa java yaitu identifier, keyword, literal dan tipe data, operator, serta separator.
Identifier
Identifier adalah token yang merepresentasikan nama sesuatu. Sesuatu tersebut adalah variabel, atau konstanta, atau attribute, atau method, atau kelas, atau package, atau interface, atau nama file, dan lain-lain.
6 |
Keyword
Kata kunci digunakan untuk suatu tujuan tertentu. Ada 51 keyword dalam java yaitu :
abstract continue for new switch boolean default goto null synchronized break do if package this byte double implements private threadsafe byvalue else import protected throw case extends instanceof public throws catch false int return transient car final interface short true class finally long static try const float native super void while
Literal dan Tipe Data Primitif
Literal adalah nilai variabel/attribute atau nilai konstanta atau nilai objek data. Ada tiga besaran literal dalam java yaitu angka, karakter, dan string. Angka terdiri dari byte, short, int, long, float, double, dan boolean (dianggap angka true = 1 atau false = 0)
BELAJAR JAVA
PEMROGRAMAN BERORIENTASI OBJEK Belajar PBO, berarti harus membiasakan diri berpikir secara kelas dan objek setiap menghadapi masalah. Contoh : Buatlah program untuk menghitung keliling lingkaran dari masukan jari-jarinya ! Masalah tersebut bila disajikan dengan pendekatan kelas dan objek, harus direvisi sebagai berikut : Selengkapnyaa………
Class mobillengkap
{
String warna;
Int tahunproduksi;
Int mati =1;
Int ubahgigi = 3;
Void printmobil()
{
System.out.println(“Warna :”+warna);
System.out.println(“Tahun Produksi :”+tahunproduksi);
}
Void nyala()
{
System.out.println(“Mesin mobil menyala……”);
Off = 0
}
Void mati()
{
Off = 1
System.out.println(“Mesin mobil dimatikan……”);
}
Void ubahgigi()
{
If (mati = 1)
{
System.out.println(“Gigi persneling tidak bisa di ubah………”);
System.out.println(“Mesin mobil tidak menyala………..”);
}
Else
System.out.println(“Gigi persneleng ditambah 1.”);
}
}
Public class mobillengkapberaksi
{
Public static void main(String[]args)
{
/* Membuat object */
Mobil2mobilku = new mobil2();
/* Memanggil atribut dan memberi nilai */
Mobilku.warna = “Hitam”;
Mobilku.tahunproduksi = 2006;
Mobilku.printmobil();
}
}
Tugas Kuliah
Membuat dan Memanggil MethodClass mobillengkap
{
String warna;
Int tahunproduksi;
Int mati =1;
Int ubahgigi = 3;
Void printmobil()
{
System.out.println(“Warna :”+warna);
System.out.println(“Tahun Produksi :”+tahunproduksi);
}
Void nyala()
{
System.out.println(“Mesin mobil menyala……”);
Off = 0
}
Void mati()
{
Off = 1
System.out.println(“Mesin mobil dimatikan……”);
}
Void ubahgigi()
{
If (mati = 1)
{
System.out.println(“Gigi persneling tidak bisa di ubah………”);
System.out.println(“Mesin mobil tidak menyala………..”);
}
Else
System.out.println(“Gigi persneleng ditambah 1.”);
}
}
Public class mobillengkapberaksi
{
Public static void main(String[]args)
{
/* Membuat object */
Mobil2mobilku = new mobil2();
/* Memanggil atribut dan memberi nilai */
Mobilku.warna = “Hitam”;
Mobilku.tahunproduksi = 2006;
Mobilku.printmobil();
}
}
Tidak ada komentar:
Posting Komentar