Pemrograman Java
Haii semua, baru posting lagi nih.. coz internet sy lagi off teruss,, lagian juga gk ada yg penting untuk d update..
Tapi sekarang saya akan Update Tentang java, dan kawan2, ini merupakan tugas dari guru saya... dan semoga bermanfaat untuk teman2 yg membutuhkan.
Tapi sekarang saya akan Update Tentang java, dan kawan2, ini merupakan tugas dari guru saya... dan semoga bermanfaat untuk teman2 yg membutuhkan.
1. Java
Java adalah bahasa pemrograman yang dapat dijalankan di
berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh
James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan
bagian dari Oracle dan dirilis tahun 1995.
Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
2. ABSTRACTION
Abstraction merupakan sebuah model,
atau ideal. Tidak perlu memiliki semua detail dari sesuatu, namun memiliki
parmeter-parameter yang sifatnya umum yang nantinya akan bisadiisi dengan
detail-detail tertentu nantinya.
Abstract Class Dalam Java Abstract class dalam java digunakan untuk mendeklarasikan karakteristik umum dari subclass. Abstract class tidak bisa diinstansiasi sama halnya dengan kelas interface. abstract class hanya bisa digunakan sebagai super class, tapi juga bisa diturunkan dari class abstract lainnya. Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract, [abstract] class [class_name] Sebuah abstract class pada dasarnya tidak hauh beda dengan class lainnya, yakni juga berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body, methid seperti ini disebut method abstract. untuk pendeklarasiannya digunakan keyword abstract: [abstract] modifier class [class_name] berikut contoh program yang menggunakan class abstract.
Abstract Class Dalam Java Abstract class dalam java digunakan untuk mendeklarasikan karakteristik umum dari subclass. Abstract class tidak bisa diinstansiasi sama halnya dengan kelas interface. abstract class hanya bisa digunakan sebagai super class, tapi juga bisa diturunkan dari class abstract lainnya. Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract, [abstract] class [class_name] Sebuah abstract class pada dasarnya tidak hauh beda dengan class lainnya, yakni juga berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body, methid seperti ini disebut method abstract. untuk pendeklarasiannya digunakan keyword abstract: [abstract] modifier class [class_name] berikut contoh program yang menggunakan class abstract.
3. ENCAPSULATION
Enkapsulasi secara definisi adalah
mekanisme pembungkusan untuk menyembunyikan atau melindungi suatu proses dari
kemungkinan interferensi atau penyalahgunaan dari luar sistem juga sekaligus
menyederhanakan penggunaan system itu sendiri. Akses ke internal sistem
diatur sedemikian rupa melalui seperangkat interface/antarmuka. Contohnya
Komputer, pada saat menyalakan, mematikan, pembacaan data, pemrosesan
data maka pemakai/user tidak perlu tahu detail dari bagaimana proses
menyalakan dan mematikan, itu dilakukan oleh komputer, cukup tahu bagaimana
cara menyalakan/mematikan komputer , keyboard, mouse, tombol power merupakan
interface (antar muka) pemakai dengan sistem komputer tersebut. Jika kita telah
melakukan information hiding terhadap suatu attribut pada suatu class, lalu
bagaimana cara melakukan perubahan terhadap attribut yang kita sembunyikan
tersebut, caranya adalah dengan membuat suatu interface berupa method untuk
menginisialisasi atau merubah nilai dari suatu attribut tersebut.
Berikut ini keuntungan dari prinsip
encapsulation :
- Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
- Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
- Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya. Sehingga dapat mengurangi kemungkinan bug.
Kesimpulan :
Tujuan encapsulation adalah untuk
menyembunyikan atau memproteksi suatu proses dari kemungkinan interfensi atau
penyalahgunaan dari luar system dan sekaligus menyederhanakan system itu
sendiri
Contoh :
Person.java public class Person { private int age; private String name; private String personId; public void setAge(int newValue) { age = newValue; } public void setName( String newValue) { name = newValue; } public void setPersonId(String newValue) { personId = newValue; } public int getAge() { return age; } public String getName() { return name; } public String getPersonId() { return personId; } } Main.java public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { Person ren = new Person(); ren.setAge(22); ren.setName(“Ren A”); ren.setPersonId(“113060002″); System.out.println(“My name is” +ren.getName() +” My age :”+ ren.getAge() +”and My Id”+ren.getPersonId()); } } |
4. INHERITANCE
Pewarisan atau inheritance..adalah sebuah kelas mewarisi state dan behaviour dari kelas lain. Contohnya kelas komputerLapotop akan mewarisi state dan behaviour dari kelas komputer. Demikian juga dengan kelas komputerNetbook. Kelas komputerLaptop dan kelas komputerNetbook disebut subkelas, atau kelas anak, dari kelas komputer , yang disebut superkelas,atau kelas Induk.
Pewarisan atau inheritance..adalah sebuah kelas mewarisi state dan behaviour dari kelas lain. Contohnya kelas komputerLapotop akan mewarisi state dan behaviour dari kelas komputer. Demikian juga dengan kelas komputerNetbook. Kelas komputerLaptop dan kelas komputerNetbook disebut subkelas, atau kelas anak, dari kelas komputer , yang disebut superkelas,atau kelas Induk.
Kegunaan konsep pewarisan
antara lain :
- Dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada.
Dapat menggunakan kembali
kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru
berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari
behaviour umum yang dimiliki superkelas.
Hal ini berguna jika kita ingin
membuat prototype/template kelas. Kelas semacam ini disebut kelas abstraksi,
karena behaviournya masih abstrak dan belum diimplementasikan.
Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret/nyata,
mengimplementasikan behaviour abstrak tersebut sesuai dengan kegunaan
masing-masing.
Tujuan Inheritance:
¨ Specialization: object baru
memiliki data dan method yang berbeda dari superclassnya (Top Down)
¨ Overriding: method yang diturunkan
bias dideklarasikan ulang
¨ Code Reuse: method dari superclass
bias langsung digunakan di subclass
Contoh program :
import java.io.*; public class Mamalia { void KelasMamalia () { System.out.println(“Ciri umum mamalia adalah bernapas dengan paru-paru, ” + “berkembang biak dengan cara beranak”); }}class Paus extends Mamalia { String x = “Ikan Paus”; void TampilkanPaus () { System.out.println(“dan Mamalia yang Anda pilih adalah “+ x ); System.out.println(“Mamalia ini berada di laut”); System.out.println(“Paus termasuk jenis mamalia terbesar”); }}class Cheetah extends Mamalia { String x = “Cheetah”; void TampilkanCheetah () { System.out.println(“dan Mamalia yang Anda pilih adalah “+ x ); System.out.println(“Mamalia ini berada di darat”); System.out.println(“Cheetah termasuk mamalia pelari tercepat di darat”); }}class Sapi extends Mamalia { String x = “Sapi”; void TampilkanSapi () { System.out.println(“dan Mamalia yang Anda pilih adalah “+ x ); System.out.println(“Mamalia ini berada di darat”); System.out.println(“Sapi termasuk jenis mamalia pemamahbiak”); }}class Turunan { public static void main(String[] args) throws IOException{ String sInput = null ; System.out.println(“____JENIS MAMALIA____”); System.out.println(“[1]. IKAN PAUS”); System.out.println(“[2]. CHEETAH”); System.out.println(“[3]. SAPI”); System.out.print(“Masukkan pilihan [1..3] :”); Mamalia generalx = new Mamalia(); Paus turunan1 = new Paus(); Cheetah turunan2 = new Cheetah(); Sapi turunan3 = new Sapi (); Sapi subxc = new Sapi(); InputStreamReader inputan = new InputStreamReader(System.in); BufferedReader jm = new BufferedReader(inputan); sInput = jm.readLine(); int i = Integer.parseInt(sInput); switch (i) { case 1 : generalx.KelasMamalia (); turunan1.TampilkanPaus ();break; case 2 : generalx.KelasMamalia (); turunan2.TampilkanCheetah ();break; case 3 : generalx.KelasMamalia (); turunan3.TampilkanSapi ();break; default: System.out.println(“Pilihan yang Anda masukkan salah!!”);break; } } } |
5. POLYMORPHISM
Polymorphism sebuah kata
dari bahasa Yunani yang mempunyai arti banyak bentuk., konsep
ini dimungkinkan untuk menggunakan suatu interface yang sama agar
suatu objek melakukan aksi atau tindakan yang mungkin secara prinsip sama tapi
secara proses bisa berbeda-beda. Pada umumnya konsep ini sering kali disebut
dalam istilah satu interface banyak aksi. Contoh yang nyata adalah. komputer
yang ada dipasaran terdiri atas berbagai tipe dan merk, namun semuanya memiliki
interface yang sama, seperti: tombol power, keyboard,
mouse, monitor dlsb,. Jika seseorang dapat mengoperasikan
komputer satu jenis saja dari merk tertentu, maka orang itu akan dapat
mengoperasikan hampir seluruh jenis komputer yang ada, karena semua komputer
tersebut menggunakan interface yang sama. Perlu diketahui disini ahwa interface
yang sama tidak berarti cara kerjanya juga sama. Misal kecepatan/speed
komputer, kapasitas memory penyimpan, jika dibandingkan komputer 1 dan komputer
2 maka kecepatan komputer berbeda.
public abstract class Shape
{private double area;
public abstract double getArea;
}
Public class Circle extends Shape
{
double radius;
public Circle(double r) {
radius = r;
}
public double getArea() {
area = 3.14*(radius*radius) ;
return (area);
}
}
public class Rectangle extends
Shape{
double length;
double width;
public Rectangle(double l, double
w) {
length = l;
width = w;
}
Public double getArea () {
area = length*width;
return (area); } } |
7. KONSEP INTERFACE
• Interface dapat dianggap sebagai
suatu kontrak tentang apa yang dapat dilakukan oleh suatu kelas, tanpa
menyebutkan bagaimana kelas akan melakukannya. [1&2]
• Interface dapat dianggap sebagai 100% abstract class. Akan tetapi, bila abstract class dapat memiliki method abstract dan method non-abstract, maka interface hanya dapat memiliki methodabstract saja. [1&2]
• Suatu interface dapat diimplementasikan oleh setiap kelas, tanpa memandang pohon inheritance dari kelas tersebut. [2]
• Interface dapat dianggap sebagai 100% abstract class. Akan tetapi, bila abstract class dapat memiliki method abstract dan method non-abstract, maka interface hanya dapat memiliki methodabstract saja. [1&2]
• Suatu interface dapat diimplementasikan oleh setiap kelas, tanpa memandang pohon inheritance dari kelas tersebut. [2]
1. DEKLARASI INTERFACE
1.1 Syarat-syarat deklarasi interface
• Sintak deklarasi interface adalah sebagai berikut : [1&2]
1.1 Syarat-syarat deklarasi interface
• Sintak deklarasi interface adalah sebagai berikut : [1&2]
AccessModifier [abstract]
interface NamaInterface extends A, B, C
{ //…… } |
• Suatu interface pasti abstract,
oleh karena itu, keyword abstract dalam sintaks di atas adalah
optional.[1&2]
Contoh : 2 deklarasi interface dibawah ini memiliki arti yang sama [1]
Contoh : 2 deklarasi interface dibawah ini memiliki arti yang sama [1]
1
|
interface MyInterface
|
2
|
abstract interface MyInterface
|
• Suatu interface boleh meng-extends
satu atau lebih interface yang lain. [2]
Contoh : [1]
Contoh : [1]
interface A
{ public abstract void namaMethodSama(); public abstract void haha(); }
interface B
{ public abstract void namaMethodSama(); public abstract void hihi(); }
interface C extends A, B
{ public abstract void huhu(); } |
• Suatu interface tidak dapat
meng-extends selain interface. [2]
Contoh : [1]
Contoh : [1]
class A {}
interface Z extends A {}
Bila dicompile, program di atas
akan menghasilkan :
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface04.java:5: interface expected here interface Z extends A {} 1 error |
• Suatu interface tidak dapat
meng-implements interface atau class yang lain. [2]
Contoh : [1]
Program 03
Contoh : [1]
Program 03
interface A {}
//Error !!!
interface B implements A {}
interface B implements A {}
• Kesimpulan perbedaan extends dan
implements pada class dan interface : [1]
extends implements
class Hanya dapat meng-extendssatu buah superclass secara langsung.
Dapat meng-implements nol atau lebih dari nol buahinterface.
interface Dapat meng-extends nol atau lebih dari nol buahinterface.
Tidak dapat meng-implementapapun.
extends implements
class Hanya dapat meng-extendssatu buah superclass secara langsung.
Dapat meng-implements nol atau lebih dari nol buahinterface.
interface Dapat meng-extends nol atau lebih dari nol buahinterface.
Tidak dapat meng-implementapapun.
1.2 Syarat-syarat deklarasi method
dalam interface
• Method-method yang dideklarasikan di dalam interface tidak memiliki badan method, langsung diikuti oleh titik koma. [1]
Contoh : [1]
Program 04
• Method-method yang dideklarasikan di dalam interface tidak memiliki badan method, langsung diikuti oleh titik koma. [1]
Contoh : [1]
Program 04
interface A
{
void myMethod();
String yourMethod();
int outMethod();
}
{
void myMethod();
String yourMethod();
int outMethod();
}
• Setiap method yang dideklarasikan
di dalam interface pasti secara implisit memiliki dua modifier berikut : [2]
1. public
2. abstract
Dengan kata lain, setiap method pasti bermodifier public dan abstract, baik kita berikan kedua modifier tersebut saat deklarasi method atau tidak. [1&2]
Contoh : lima deklarasi method di dalam interface berikut memiliki arti yang sama [1]
1. public
2. abstract
Dengan kata lain, setiap method pasti bermodifier public dan abstract, baik kita berikan kedua modifier tersebut saat deklarasi method atau tidak. [1&2]
Contoh : lima deklarasi method di dalam interface berikut memiliki arti yang sama [1]
1
public abstract void myMethod();
2
Abstract public void myMethod();
3
abstract void myMethod();
4
public void myMethod();
5
void myMethod();
• Method di dalam interface tidak
boleh memiliki modifier-modifier berikut :
1. static
2. final
3. strictfp
4. native
Contoh : [1]
Program 05
1. static
2. final
3. strictfp
4. native
Contoh : [1]
Program 05
interface Z
{
static void A();
final void B();
strictfp void C();
native void D();
}
{
static void A();
final void B();
strictfp void C();
native void D();
}
Bila dicompile, maka akan
mengeluarkan error-error sebagai berikut :
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:5:modifier static not allowed here
static void A();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:6:modifier final not allowed here
final void B();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:7:modifier strictfp not allowed here
strictfp void C();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:8:modifier native not allowed here
native void D();
4 errors
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:5:modifier static not allowed here
static void A();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:6:modifier final not allowed here
final void B();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:7:modifier strictfp not allowed here
strictfp void C();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:8:modifier native not allowed here
native void D();
4 errors
1.3 Syarat-syarat deklarasi variabel
dalam interface
• Setiap variabel yang dideklarasikan di dalam interface pasti secara implisit memiliki tiga modifier berikut : [2]
1. public
2. static
3. final
Dengan kata lain, setiap variabel pasti bermodifier public, static dan final, baik kita berikan ketiga modifier tersebut saat deklarasi variabel atau tidak. [1&2]
Contoh : lima deklarasi variabel di dalam interface berikut memiliki arti yang sama [1]
• Setiap variabel yang dideklarasikan di dalam interface pasti secara implisit memiliki tiga modifier berikut : [2]
1. public
2. static
3. final
Dengan kata lain, setiap variabel pasti bermodifier public, static dan final, baik kita berikan ketiga modifier tersebut saat deklarasi variabel atau tidak. [1&2]
Contoh : lima deklarasi variabel di dalam interface berikut memiliki arti yang sama [1]
1
Int i = 10;
2
Public int i = 10;
3
Static int i = 10;
4
Final int i = 10;
5
Public static int i = 10;
6
Public final int i = 10;
7
Static final int i = 10;
8
Public static final int i = 10;
9
Static final public int i = 10;
10
Final static public int i = 10;
2. IMPLEMENTASI INTERFACE
• Ketika kita meng-implements interface, maka kita setuju untuk menyediakan implementasi dari setiap method yang didefinisikan di interface. [1&2]
• Bila suatu class hendak meng-implements suatu interface, maka sintaks deklarasi kelas tersebut menjadi sbb : [1]
2. IMPLEMENTASI INTERFACE
• Ketika kita meng-implements interface, maka kita setuju untuk menyediakan implementasi dari setiap method yang didefinisikan di interface. [1&2]
• Bila suatu class hendak meng-implements suatu interface, maka sintaks deklarasi kelas tersebut menjadi sbb : [1]
Modifier class NamaKelas implements
interface1, interface2,…
{
//………
}
{
//………
}
Contoh : [1]
Program 06
Program 06
interface A
{
void methodDiA();
}
{
void methodDiA();
}
interface B
{
void methodDiB();
}
{
void methodDiB();
}
interface C extends B
{
void methodDiC();
}
{
void methodDiC();
}
class MyImplementation01 implements A,
C
{
public void methodDiA()
{
System.out.println(“Implementasi dari A.methodDiA()”);
}
{
public void methodDiA()
{
System.out.println(“Implementasi dari A.methodDiA()”);
}
public void methodDiB()
{
System.out.println(“Implementasi dari B.methodDiB()”);
}
{
System.out.println(“Implementasi dari B.methodDiB()”);
}
public void methodDiC()
{
System.out.println(“Implementasi dari C.methodDiC()”);
}
{
System.out.println(“Implementasi dari C.methodDiC()”);
}
public static void main(String[]
args)
{
MyImplementation01 myI = new MyImplementation01();
myI.methodDiA();
myI.methodDiB();
myI.methodDiC();
}
}
{
MyImplementation01 myI = new MyImplementation01();
myI.methodDiA();
myI.methodDiB();
myI.methodDiC();
}
}
Program di atas akan menghasilkan :
Implementasi dari A.methodDiA()
Implementasi dari B.methodDiB()
Implementasi dari C.methodDiC()
Implementasi dari A.methodDiA()
Implementasi dari B.methodDiB()
Implementasi dari C.methodDiC()
• Suatu interface dapat
di-implements oleh :
1. abstract class
2. non-abstract class.
1. abstract class
2. non-abstract class.
• Bila kelas yang meng-implements
suatu interface adalah non-abstract class, maka harus memenuhi syarat-syarat
sebagai berikut : [2]
1. Menyediakan semua implementasi dari semua method yang ada di interface tersebut.
2. Mengikuti semua peraturan tentang override method.
1. Menyediakan semua implementasi dari semua method yang ada di interface tersebut.
2. Mengikuti semua peraturan tentang override method.
• Peraturan tentang override yang
harus diikuti adalah : [1]
1. Harus beraccess modifier public
2. Return type adalah harus compatible (dengan yang ada di interface)
3. Checked exception yang dilempar harus tidak lebih luas dan tidak baru (dengan yang ada di interface)
Contoh : [1]
Program 07
1. Harus beraccess modifier public
2. Return type adalah harus compatible (dengan yang ada di interface)
3. Checked exception yang dilempar harus tidak lebih luas dan tidak baru (dengan yang ada di interface)
Contoh : [1]
Program 07
class A {}
class B extends A {}
class ExceptionC extends Exception {}
class ExceptionD extends ExceptionC {}
class B extends A {}
class ExceptionC extends Exception {}
class ExceptionD extends ExceptionC {}
interface X
{
A myMethod() throws ExceptionC;
void myOtherMethod() throws ExceptionD;
}
{
A myMethod() throws ExceptionC;
void myOtherMethod() throws ExceptionD;
}
class MyImplementation03 implements
X
{
//Meski method di bawah ini berbeda dalam return type
//dan exception yang dilempar dari yang ada di interface,
//akan tetapi method di bawah ini tetap implementasi dari
//method yang ada di interface.
{
//Meski method di bawah ini berbeda dalam return type
//dan exception yang dilempar dari yang ada di interface,
//akan tetapi method di bawah ini tetap implementasi dari
//method yang ada di interface.
public B myMethod() throws
ExceptionD
{
System.out.println(“Implementasi dari X.myMethod()”);
return new B();
}
{
System.out.println(“Implementasi dari X.myMethod()”);
return new B();
}
//Implementasi method di bawah ini
tanpa melemparkan exception
//(BOLEH !!!)
public void myOtherMethod()
{
System.out.println(“Implementasi dari X.myOtherMethod()”);
}
//(BOLEH !!!)
public void myOtherMethod()
{
System.out.println(“Implementasi dari X.myOtherMethod()”);
}
public static void main(String[]
args)
{
MyImplementation03 myI = new MyImplementation03();
{
MyImplementation03 myI = new MyImplementation03();
try
{
myI.myMethod();
}
catch(ExceptionD eD) {}
{
myI.myMethod();
}
catch(ExceptionD eD) {}
//Tanpa try-catch, padahal di
interface dinyatakan melempar
//exception (BOLEH)
myI.myOtherMethod();
}
//exception (BOLEH)
myI.myOtherMethod();
}
}
Program di atas akan menghasilkan :
Implementasi dari X.myMethod()
Implementasi dari X.myOtherMethod()
Implementasi dari X.myMethod()
Implementasi dari X.myOtherMethod()
• Bila kelas yang meng-implements
interface adalah abstract class, maka dapat tidak menyediakan implementasi dari
semua method yang ada di interface, akan tetapi method-method yang
diimplementasikan tetap harus mengikuti semua peraturan tentang override
method. [1&2]
Non-abstract class pertama dari pohon inheritance dari abstract class yang meng-implements harus menyediakan semua implementasi dari interface yang di-implement oleh abstract class tersebut. Bila ternyata interface yang diimplement meng-extends interface lain, maka method-method di interface lain itu juga harus diimplementasikan oleh non-abstract class.
Contoh : [1]
Program 08
Non-abstract class pertama dari pohon inheritance dari abstract class yang meng-implements harus menyediakan semua implementasi dari interface yang di-implement oleh abstract class tersebut. Bila ternyata interface yang diimplement meng-extends interface lain, maka method-method di interface lain itu juga harus diimplementasikan oleh non-abstract class.
Contoh : [1]
Program 08
interface A
{
void x();
}
{
void x();
}
interface B extends A
{
void y();
void z();
}
{
void y();
void z();
}
abstract class K implements B
{
public void y()
{
System.out.println(“Implementasi dari B.y()”);
}
}
{
public void y()
{
System.out.println(“Implementasi dari B.y()”);
}
}
class MyImplementation02 extends K
{
public void x()
{
System.out.println(“Implementasi dari A.x()”);
}
{
public void x()
{
System.out.println(“Implementasi dari A.x()”);
}
public void z()
{
System.out.println(“Implementasi dari B.z()”);
}
{
System.out.println(“Implementasi dari B.z()”);
}
public static void main(String[]
args)
{
MyImplementation02 myI = new MyImplementation02();
myI.x();
myI.y();
myI.z();
}
}
{
MyImplementation02 myI = new MyImplementation02();
myI.x();
myI.y();
myI.z();
}
}
Program di atas akan menghasilkan :
Implementasi dari A.x()
Implementasi dari B.y()
Implementasi dari B.z()
Implementasi dari A.x()
Implementasi dari B.y()
Implementasi dari B.z()
1. CLASS DAN OBJECT
a. Intanstiasi objek adalah sebuah
istilah yang mempunyai arti perwujudan,umumnya istilah ini digunakan untuk
objek” yang menginisiasi dari sebuah class, sedangkan sebuah class dapat
mempunyai banyak object.
Untuk dapat membuat sebuah objek, kita perlu melakukan instansiasi
Class bukanlah sebuah objek. Class digunakan untuk membangun sebuah objek dan mendefinisikan atribut dan perilaku obyek yang dibuatnya.
Contoh instansiasi objek
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.container.MainScreen;
public class ListFieldSampleScreen extends MainScreen {
ListFieldSampleScreen() {
setTitle(“List Field Sample”);
ListField listField = new ListField();
ListCallback myCallback = new ListCallback();
listField.setCallback(myCallback);
add(listField);
myCallback.add(listField, “Apples”);
myCallback.add(listField, “Oranges”);
myCallback.add(listField, “Bananas”);
myCallback.add(listField, “Peaches”);
}
}
Untuk dapat membuat sebuah objek, kita perlu melakukan instansiasi
Class bukanlah sebuah objek. Class digunakan untuk membangun sebuah objek dan mendefinisikan atribut dan perilaku obyek yang dibuatnya.
Contoh instansiasi objek
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.container.MainScreen;
public class ListFieldSampleScreen extends MainScreen {
ListFieldSampleScreen() {
setTitle(“List Field Sample”);
ListField listField = new ListField();
ListCallback myCallback = new ListCallback();
listField.setCallback(myCallback);
add(listField);
myCallback.add(listField, “Apples”);
myCallback.add(listField, “Oranges”);
myCallback.add(listField, “Bananas”);
myCallback.add(listField, “Peaches”);
}
}
b. Konstruktor adalah bagian dari
definisi suatu kelas yang berfungsi menciptakan instans dari kelas tersebut.
Konstruktor ini bisa kita buat sendiri, atau bila kita tidak mendefinisikannya,
maka kompiler Java akan membuatkan konstruktor default untuk kelas tersebut
pada saat kompilasi. Yang perlu diperhatikan adalah bahwa suatu konstrukor
tidak termasuk anggota suatu kelas seperti metode dan variabel dan bahwa konstruktor
bisa dibuat lebih dari satu.
Bentuk konstruktor sendiri mirip dengan sebuah metode. Beda yang paling mencolok adalah nama sebuah konstruktor harus sama dengan nama kelas tersebut dan konstruktor tidak memiliki definisi return type seperti sebuah metode. Untuk jelasnya Anda bisa lihat kembali Listing 1, di mana terdapat dua buah konstruktor. Yang satu adalah konstruktor default dan yang lain adalah konstruktor dengan sebuah parameter bertipe int.
Bentuk konstruktor sendiri mirip dengan sebuah metode. Beda yang paling mencolok adalah nama sebuah konstruktor harus sama dengan nama kelas tersebut dan konstruktor tidak memiliki definisi return type seperti sebuah metode. Untuk jelasnya Anda bisa lihat kembali Listing 1, di mana terdapat dua buah konstruktor. Yang satu adalah konstruktor default dan yang lain adalah konstruktor dengan sebuah parameter bertipe int.
Contoh:
1.SuatuKelas kelasContoh = new SuatuKelas();
1.SuatuKelas kelasContoh = new SuatuKelas();
2.SuatuKelasLain kelasContoh2 = new
SuatuKelasLain(“judul”);
3.BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
new BufferedReader(new InputStreamReader(System.in));
4.new SuatuKelas().sebuahMetode();
Penjelasan coding
ada contoh pertama, kita menciptakan sebuah instans dari kelas SuatuKelas dengan memanggil konstruktor tanpa parameter. Bila dalam pendefinisian kelas SuatuKelas sebenarnya tidak ada pendefinisian konstruktor, perintah seperti ini tetap dapat dipakai, karena kompiler Java akan menyisipkan secara otomatis kosntruktor default bila tidak ada definisi konstruktor dalam sebuah kelas. Konstruktor default sendiri sebenarnya tidak melakukan apa-apa dalam proses instansiasi objek, karena tidak berisi perintah apapun.
Pada contoh kedua, kita memanggil sebuah konstruktor yang mengandung argumen berupa sebuah parameter bertipe String. Konstruktor seperti ini menjadi sangat berguna bila dalam proses instansiasi sebuah objek kita ingin memasukkan suatu nilai untuk dapat digunakan oleh instans baru tersebut.
Pada contoh ketiga, kita memanggil konstruktor dengan argumen sebuah parameter bertipe InputStreamReader. Yang menarik dari contoh ini adalah kita memasukkan argumen berupa kelas baru yang anonim sehingga terjadi pemanggilan konstruktor lain di dalam argumen konstruktor semula. Dalam konstruktor yang terakhir kita juga memasukkan argumen berupa sebuah objek InputStream yaitu System.in.
Contoh keempat adalah contoh yang lebih jelas mengenai kelas anonim. Pada contoh ini kita menciptakan sebuah instans dari kelas SuatuKelas namun tidak menyimpan referensi ke instans tersebut, sehingga kita hanya bisa menggunakannya sekali, yaitu langsung pada baris tersebut seperti terlihat pada contoh.
ada contoh pertama, kita menciptakan sebuah instans dari kelas SuatuKelas dengan memanggil konstruktor tanpa parameter. Bila dalam pendefinisian kelas SuatuKelas sebenarnya tidak ada pendefinisian konstruktor, perintah seperti ini tetap dapat dipakai, karena kompiler Java akan menyisipkan secara otomatis kosntruktor default bila tidak ada definisi konstruktor dalam sebuah kelas. Konstruktor default sendiri sebenarnya tidak melakukan apa-apa dalam proses instansiasi objek, karena tidak berisi perintah apapun.
Pada contoh kedua, kita memanggil sebuah konstruktor yang mengandung argumen berupa sebuah parameter bertipe String. Konstruktor seperti ini menjadi sangat berguna bila dalam proses instansiasi sebuah objek kita ingin memasukkan suatu nilai untuk dapat digunakan oleh instans baru tersebut.
Pada contoh ketiga, kita memanggil konstruktor dengan argumen sebuah parameter bertipe InputStreamReader. Yang menarik dari contoh ini adalah kita memasukkan argumen berupa kelas baru yang anonim sehingga terjadi pemanggilan konstruktor lain di dalam argumen konstruktor semula. Dalam konstruktor yang terakhir kita juga memasukkan argumen berupa sebuah objek InputStream yaitu System.in.
Contoh keempat adalah contoh yang lebih jelas mengenai kelas anonim. Pada contoh ini kita menciptakan sebuah instans dari kelas SuatuKelas namun tidak menyimpan referensi ke instans tersebut, sehingga kita hanya bisa menggunakannya sekali, yaitu langsung pada baris tersebut seperti terlihat pada contoh.
c. Atribut dan method. Dalam konsep
pemrograman berorientasi objek, hal yang pertama harus dipahami adalah konsep
class dan objek. Class dalam pemrograman berorientasi object berarti kumpulan
objek yang mempunyai data dan fungsi yang sama dan object adalah sesuatu yang
mempunyai data dan fungsi untuk tujuan tertentu. Sebuah class akan selalu
mempunyai data (attribut) dan fungsi (method). Contoh Sebuah class misalnya
class orang. Atribut class orang adalah warnabaju,rambut, kulit, kaki, mata.
Sedangkan method atau behaviornya misalnya jalan, lari, belok, manjat, makan
dan minum.
jika program mahasiswa kita implementasikan dalam java, maka kita bisa membuat dua buah class, yaitu class Mahasiswa dan class MahasiswaBeraksi. Class Mahasiswa adalah class yang merepresentasikan mahasiswa, karena itu dalam class mahasiswa berikan tiga atribut misalnya nim, nama dan jurusan
public class Mahasiswa{
String nim;
String nama;
String jurusan;
jika program mahasiswa kita implementasikan dalam java, maka kita bisa membuat dua buah class, yaitu class Mahasiswa dan class MahasiswaBeraksi. Class Mahasiswa adalah class yang merepresentasikan mahasiswa, karena itu dalam class mahasiswa berikan tiga atribut misalnya nim, nama dan jurusan
public class Mahasiswa{
String nim;
String nama;
String jurusan;
public void tampilInfo(){
System.out.println(“Nim mahasiswa “+nim);
System.out.println(“Nama mahasiswa “+nama);
System.out.println(“Jurusan mahasiswa “+jurusan);
}
System.out.println(“Nim mahasiswa “+nim);
System.out.println(“Nama mahasiswa “+nama);
System.out.println(“Jurusan mahasiswa “+jurusan);
}
public void ikutUjian(){
System.out.println(“Mahasiswa ini sedang ikut ujian”);
}
}
System.out.println(“Mahasiswa ini sedang ikut ujian”);
}
}
Dan berikut ini adalah class
MahasiswaBeraksi. Pada class ini terdapat method main. Method main adalah
method yang memungkinkan sebuah class java bisa di run atau dijalankan. Dalam
class MahsiswaBeraksi, buat sebuah object dari class Mahasiswa. Misalnya nama
objectnya adalah agus. Isi masing-masing variabel dalam object agus dengan
data. Kemudian panggil masing-masnig method (function)nya.
public class MahasiswaBeraksi{
public static void main(String[]args){
Mahasiswa agus = new Mahasiswa();
agus.nim=”43A8700120″;
agus.nama=”Agus”;
agus.jurusan=”Teknik Informatika”;
Mahasiswa agus = new Mahasiswa();
agus.nim=”43A8700120″;
agus.nama=”Agus”;
agus.jurusan=”Teknik Informatika”;
agus.tampilInfo();
agus.ikutUjian();
}
agus.ikutUjian();
}
}
6. ABSTRACT CLASS
Class Abstrak tidak berbeda dengan
class – class lainnya yaitu memiliki class members (method dan variabel).
Sebuah class adalah abstrak jika salah satu methodnya dideklarasikan abstrak.
Method abstrak adalah method yang tidak memiliki implementasi. Contoh deklarasi
method abstrak:
abstract public void cetak();
Beberapa hal yang perlu diperhatikan adalah sebagai berikut:
1. Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.
2. Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.
3. Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.
Perhatikan contoh class abstrak di bawah ini.
abstract public void cetak();
Beberapa hal yang perlu diperhatikan adalah sebagai berikut:
1. Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.
2. Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.
3. Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.
Perhatikan contoh class abstrak di bawah ini.
abstrak public class Mobil {
public void injakPedalGas();
public void injakRem(){
System.out.println(“Mobil berhenti!”);
}
}
public class Kijang extends Mobil{
public void injakPedalGas(){
System.out.println(“Mobil Melaju dengan kecepatan 80 Km/jam…”);
}
}
public class BMW extends Mobil {
public void injakPedalGas(){
System.out.println(“Mobil Melaju dengan kecepatan 100 Km/jam…”);
}
}
public void injakPedalGas();
public void injakRem(){
System.out.println(“Mobil berhenti!”);
}
}
public class Kijang extends Mobil{
public void injakPedalGas(){
System.out.println(“Mobil Melaju dengan kecepatan 80 Km/jam…”);
}
}
public class BMW extends Mobil {
public void injakPedalGas(){
System.out.println(“Mobil Melaju dengan kecepatan 100 Km/jam…”);
}
}
Objek class abtrak tidak dapat
diciptakan menggunakan keyword new secara langsung. Apabila kita terpaksa ingin
menciptakan object class abtrak tanpa membuat subclass kongkritnya, maka kita
harus mengimplementasikan method – method abstraknya secara langsung saat
deklarasi. Perhatikan contoh di bawah ini.
public class TestMobil {
public static void main(String[] args){
Mobil mobil = new Mobil(){
public void injakPedalGas(){
System.out.println(“Mobil berjalan…”);
}
};
public static void main(String[] args){
Mobil mobil = new Mobil(){
public void injakPedalGas(){
System.out.println(“Mobil berjalan…”);
}
};
Kijang kijang = new Kijang();
Escudo escudo = new Escudo();
BMW bmw = new BMW();
Escudo escudo = new Escudo();
BMW bmw = new BMW();
mobil.injakPedalGas();
mobil = kijang;
mobil.injakPedalGas();
mobil.injakPedalGas();
mobil = escudo;
mobil.injakPedalGas();
mobil.injakPedalGas();
mobil = bmw;
mobil.injakPedalGas();
}
}
mobil.injakPedalGas();
}
}
No comments:
Post a Comment