Anda di halaman 1dari 42

JAVA

Pengertian Java

Java merupakan bahasa bahasa pemrograman tingkat tinggi yang berorientasi


pada object dan program java tersusun dari bagian yang disebut dengan Class.
Class terdiri dari metode- metode yang melakukan pekerjaan dan mengembalikan
informasi setelah melakukan tugasnya. Para programmer Java banyak mengambil
keuntungan dari kumpulan class di pustaka class Java yang disebut dengan Java
Application Programming Interface (API). Class- class ini diorganisasikan menjadi
sekelompok yang disebut dengan paket (package). Java API telah
menciptakan applet dan aplikasi canggih dengan menyediakan fungsionalitas yang
memadai .

1
Jadi ada dua hal yang harus dipelajari dalam Java, yaitu bagaimana
mempergunakan class pada Java API dan mempelajari bahasa Java. Tidak ada
cara lain selain class yang merupakan satu-satunya cara menyatakan bagian
eksekusi program. Pada Java program javac untuk mengkompilasi file kode
sumber Java menjadi class-class bytecode. File kode sumber mempunyai ekstensi
*.java. Kompilator javac menghasilkan file bytecode class dengan ekstensi *.class.
Interpreter adalah modul utama pada sistem Java yang digunakan aplikasi Java
dan menjalankan program bytecode Java.

Dengan kata lain Java adalah bahasa pemrograman yang dapat membuat seluruh
bentuk aplikasi tidak hanya desktop dan web namun juga bisa membuat aplikasi
mobile dan lainnya, sebagaimana dibuat dengan menggunakan bahasa
pemrograman konvensional yang lain. Java merupakan bahasa pemrograman
yang bersifat umum atau non-spesifik (general purpose). Bahasa Pemrograman
Java berorientasi object (OOP-Object Oriented Programming), dan dapat
dijalankan pada berbagai platform sistem operasi. Pada OOP, program komputer
sebagai kelompok object yang saling berinteraksi.

Pengertian OOP

2
Pengertian OOP secara singkat adalah mengorganisasikan program sebagai
kumpulan komponen yang disebut object. Object- object ini ada secara
independen, mempunyai aturan-aturan berkomunikasi dengan object lain dan
untuk memerintahkan object lain gunanya untuk meminta informasi tertentu
atau meminta object lain mengerjakan sesuatu.

Class bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat
dijalankan, program menciptakan object-object yang merupakan instan- instan
Class. Class dapat mewarisi Class lain. Java tidak mengijinkan pewarisan jamak
akan tetapi menyelesaikan kebutuhan pewarisan jamak dengan fasilitas
antarmuka yang lebih elegan.

Perkembangan Java tidak hanya terfokus pada satu sistem operasi, namun
dikembangkan untuk berbagai sistem operasi dan bersifat open source. Dengan
slogannya “Write once, run anywhere”. Bahasa pemrograman java banyak
3
mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis
model object yang lebih sederhana. Aplikasi-aplikasi berbasis java pada umumnya
dikompilasi ke dalam bentuk p-code (bytecode) dan dapat dijalankan pada
berbagai Mesin Virtual Java (JVM).
Fungsi Java
Bahasa pemrograman Java memiliki beberapa fungsi dalam pembuatan apalikasi
sebagai berikut.

1. Bahasa yang digunakan sederhana


Jika dibandingkan dengan bahasa pemrograman yang lain, Java bisa di bilang lebih
sederhana di banding yang lainnya. Hal ini karena Java menggunakan sintaks yang
bisa dibilang mirip dengan C++.

2. Hanya fokus pada Objek


Bahasa pemrograman Java hanya fokus pada Objek . Dengan hanya fokus pada
objek, program komputer dapat saling berkomunikasi dalam satu kelompok
objek.
3. Pengamanan yang cukup ketat
Pengamanan pada Java ada tiga lapis. Pengamanan ini tentu saja dilakukan untuk
melindungi sistem dari penyalahgunaan orang-orang yang tidak bertanggung
jawab.

4. Dapat di pakai pada sistem operasi manapun


Seperti yang sudah di dijelaskan pada point 1 jika Java dapat berjalan pada
komputer yang menggunakan sistem operasi apapun. Hal ini dapat dilakukan

4
karena Bahasa Java termasuk Platform Independence. Ketika dibuat sebuah file,
maka file tersebut bisa dijalankan pada perangkat manapun.

5. Menggunakan sistem exception-handling


Exception-handling ini menyediakan cara untuk memisahkan antara bagian
pengamanan kesalahan dan bagian kode normal. Dengan begitu kode tersebut
dituntun ke strukstur kode program yang jauh lebih bersih. Jika kesalahan
ditemukan, maka Java akan membuat exception. Exception ini dapat ditangkap
serta dikelola oleh program tanpa memberikan dampak yang lebih buruk.

6. Mendukung Native method


Java mendukung native method atau sebuah fungsi yang ditulis di bahasa lain,
khususnya C dan C++. Dengan adanya dukungan secara native method ini
memungkinkan programer menulis berbagai fungsi yang bisa dilakukan dengan
cepat jika dibandingkan fungsi yang lain.

7. Terdapat Garbage Collector


Fungsi dari garbage collector ini mampu mengumpulkan “sampah” secara
otomatis. Dengan adanya garbage collector ini programmer tidak perlu dibebani
dengan adanya memori yang rusak.

8. Daftar perpustakaan yang lengkap


Bahasa pemrograman Java mempunyai daftar perpustakaan yang cukup lengkap.
Dengan adanya ini programmer dapat membuat suatu aplikasi sesuai dengan apa
yang diinginkan.

9. Adanya Fitur GUI

5
GUI atau singkatan dari Grafical User Interface adalah salah satu fitur yang ada di
dalam Java.

10. Penyempurna dari C++


Bagi kamu programmer yang terbiasa dengan bahasa pemrograman C++, kamu
tidak perlu khawatir dengan bahasa pemrograman java. Karena pada Java
gayanya sudah disesuaikan dengan C++. Bahkan dengan bahasa pemrograman
Java, kamu dapat memperluas kode-kode yang kamu inginkan dibandingkan
melalui C++.

Kelebihan dan Kekurangan Java


Kelebihan JAVA
1. Mudah Untuk Dikembangkan
Salah satu kelebihan dari Java adalah kemudahan dalam hal pengembangan
aplikasi. Hal ini tentu saja sangat membantu para programmer dan developer
untuk lebih baik lagi dalam mengembangkan aplikasi yang berbasis Java.

2. Sifatnya multiplatform
Kelebihan lainnya dari bahasa pemrograman java dan banyak diminati oleh para
developer dan programmer yaitu salah satu bahasa pemrograman yang sifatnya
multi platform, atau dengan kata lain universal dan bisa digunakan dalam
platform apapun. Hal ini tentunya membuat banyak sekali para pengembang
aplikasi yang menggunakan basis bahasa pemrograman Java untuk membuat
aplikasi yang diinginkannya.
3. Memiliki kemudahan dalam menyusun suatu script

6
Kelebihan lainnya dari bahasa pemrograman Java bahasa pemrograman Java
merupakan salah satu bahasa pemrograman yang mudah untuk dipelajari. Para
programmer dan developer dalam menyusun sebuah program, harus
menggunakan sebuah script, agar program tersebut dapat berjalan.
Dengan menggunakan bahasa pemrograman Java, script tersebut akan lebih
mudah untuk dibuat dan dipelajari, sehingga beberapa programmer pemula pun
sudah bisa mengembangkan sebuah aplikasi yang menggunakan bahasa
pemrograman Java.

4. Apabila programmer beorientasi pada usability, maka Java sangat


mendukung
Keunggulan bahasa pemrograman java berhubungan erat dengan
kemampuan aplikasi – aplikasi yang dibuat dengan Java yang dapat bekerja di
platform manapun. Dan hal ini berhubungan dengan usability, atau kegunaan dari
suatu aplikasi.
5. Bahasa pemrograman yang berorientasi terhadap objek
Bahasa pemrograman Java adalah salah satu bentuk atau jenis bahasa
pemrograman yang berorientasi pada objek. Itu artinya setiap aplikasi yang
dibangung dengan menggunakan bahasa pemrograman java akan disesuaikan
dengan objek atau bisa juga dengan tampilan dan interface dari aplikasi tersebut.

6. Dinamis
Sifat dinamis ini sangat erat kaitannya dengan kemampuan bahasa pemrograman
java karena sangat mudah untuk dikembangkan.

7
Kekurangan JAVA

1. Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak
kompatibel antara platform satu dengan platform lain. Untuk J2SE,
misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi
pada Mac OS X.
2. Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari
kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java
merupakan bytecode yang menyimpan banyak atribut bahasa tingkat
tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama
juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma
yang digunakan program akan lebih sulit disembunyikan dan mudah
dibajak/direverse-engineer.
3. Penggunaan memori yang banyak. Penggunaan memori untuk program
berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi
sebelumnya seperti C/C++ dan Pascal (lebih spesifik
lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah
bagi pihak yang menggunakan teknologi terbaru (karena trend memori
terpasang makin murah), tetapi menjadi masalah bagi mereka yang
masih harus berkutat dengan mesin komputer berumur lebih dari 4
tahun.

8
A. PENERAPAN CLASS

Class pada Pemrograman Java

Class pada Pemrograman Java. Java adalah bahasa berorientasi objek. Sebagai
bahasa yang memiliki fitur object oriented, Java mendukung konsep dasar berikut
ini.

-Polymorphism
-Inheritance
-Encapsulation
-Abstraction
-Classes
-Objects
-Instance
-Method
-Message Parsing

– Class merupakan suatu “Blueprint” atau “Cetakan” untuk menciptakan suatu


instant dari object. Class juga merupakan grup suatu object dengan kemiripan
attributes/properties, behavior dan relasi ke object lain. Contoh :Class Person,
Vehicle, Tree, Fruit dan lainnya.

Bila kita melihat dunia nyata kita dapat menemukan banyak benda disekitar kita
seperti, mobil, kucing, manusia dan lain-lain. Semua object memiliki
state(attribute) dan behavior. Jika kita melihat objek kucing, maka state
(attribute) tersebut adalah nama, jenis, warna dan behavior(prilaku) tersebut
adalah mengeong, bergoyang-goyang, berjalan. Jika Anda membandingkan objek

9
pada software dengan objek dunia nyata, mereka memiliki karakteristik yang
sangat mirip. Objek pada software juga memiliki state (Attribute) dan behavior,
sebuah state pada objek software disimpan dalam bidang dan behavior
ditunjukkan melalui method. Jadi dalam pengembangan software, method
beroperasi pada keadaan internal suatu objek dengan komunikasi objek ke objek
dilakukan melalui method.

Class dapat berisi salah satu jenis variabel berikut.

Variabel lokal : Variabel didefinisikan didalam method konstruktor atau blok


disebut variabel lokal, variabel akan dideklarisasikan dalam method dan variabel
akan dihancurkan ketika method telah selesai.

Variabel Instance : Variabel dalam class tetapi diluar method apapun, variabel ini
dipakai ketika class dimuat. Variabel instance dapat diakses dari dalam method,
konstruktor atau class tertentu.

variabel Class : Variabel dideklarasikan dalam class, diluar method apapun,


dengan kata kunci static.

Class dapat memiliki sejumlah method untuk mengakses nilai dari berbagai jenis
method. Dalam contoh diatas miaow(), hungry(), dan sleeping() adalah method.

Sebuah kelas memiliki atribut dan metode. Atribut pada dasarnya adalah
kumpulan variabel dalam kelas.
Berikut adalah contoh pembuatan class pada java.

Berikut ini contoh Class game.java

10
package dasar;

public class Player {

// definisi atribut
String name;
int speed;
int healthPoin;

// definisi method run


void run(){
System.out.println(name +" is running...");
System.out.println("Speed: "+ speed);
}

// definisi method isDead untuk mengecek nilai kesehatan


(healthPoin)
boolean isDead(){
if(healthPoin <= 0) return true;
return false;
}

Berikut ini contoh Class hewan;

//membuat class dengan nama Hewan


public class Hewan {
//inisialisasi variabel untuk class Hewan
int jumlahKaki = 0;
String namaHewan = "";

//constructor
public Hewan(String nama, int kaki){
this.jumlahKaki = kaki;

11
this.namaHewan = nama;
}

//method untuk mengambil info nama dan jumlahkaki


public void info(){
System.out.println("Nama Hewan : "+this.namaHewan + ", Ka
ki : "+this.jumlahKaki);
}
}
public class Main {
public Main(){
//membuat object "kucing" dari class Hewan
//membuat object menggunakan keyword new
Hewan kucing = new Hewan("Kucing", 4);

//menjalankan method info


kucing.info();
}
public static void main(String[] args) {
new Main();
}
}

Berikut ini contoh Class Sepeda:

public class Sepeda {


int gigi;
String merk;

12
//konstruktor
public Sepeda(){
this.gigi=0;
this.merk="Federal";
}
public Sepeda(int g, String m){
this.gigi = g;
this.merk = m;
}
public void setGigi(int g){
this.gigi=g;
}
public void setMerk(String m){
this.merk = m;
}
public int getGigi(){
return this.gigi;
}
public String getMerk(){
return this.merk;
}
public void berjalan(){
System.out.println("Sepeda Berjalan");
}
public void belokKiri(){
System.out.println("Sepeda Belok Kiri");
}
public void belokKanan(){
System.out.println("Sepeda Belok Kanan");
}
}

Berikut ini contoh Class player.java

package dasar;

public class Player {

13
// definisi atribut
String name;
int speed;
int healthPoin;

// definisi method run


void run(){
System.out.println(name +" is running...");
System.out.println("Speed: "+ speed);
}

// definisi method isDead untuk mengecek nilai kesehatan (healthPoin)


boolean isDead(){
if(healthPoin <= 0) return true;
return false;
}

Berikut ini contoh Class kendaraan;:

public class Kendaraan {


public static void main(String[] args) {
Sepeda sepeda1 = new Sepeda();

System.out.println("Gigi Sepeda 1 = "+sepeda1.getGigi());


System.out.println("Merk Sepeda 1 = "+sepeda1.getMerk());

System.out.println("Rubah Sepeda 1");


sepeda1.setGigi(4);
sepeda1.setMerk("Polygon");
System.out.println("Gigi Sepeda 1 = "+sepeda1.getGigi());
System.out.println("Merk Sepeda 1 = "+sepeda1.getMerk());

Sepeda sepeda2 = new Sepeda(6,"Monster");

14
System.out.println("Gigi Sepeda 2 = "+sepeda2.getGigi());
System.out.println("Merk Sepeda 2 = "+sepeda2.getMerk());

System.out.println("Rubah Sepeda 2");


sepeda2.setGigi(12);
sepeda2.setMerk("Balap");
System.out.println("Gigi Sepeda 2 = "+sepeda2.getGigi());
System.out.println("Merk Sepeda 2 = "+sepeda2.getMerk());
}
}

B. PENERAPAN OBJECT

Object adalah instance dari class. Jika class secara umum merepresentasikan
(template) sebuah object, sebuah instance adalah representasi nyata dari class itu
sendiri.

Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan
lainlain.Untuk membuat object, kita menggunakan perintah new dengan sebuah
nama class yang akan dibuat sebagai instance dari class tersebut.

String str = new String();

Random r = new Random();

Pegawai p2 = new PEgawai();

Date hari = new Date();

hari adalah object reference dari class Date yang akan digunakan untuk
mengakses class Date. Sedangkan operator new adalah operator yang akan
menghasilkan hari sebagai reference ke instance dari class Date().

15
Contoh Object dan Class di Java

Pada contoh ini kita akan membuat sebuah class dengan nama siswa yang
memiliki id anggota dan juga nama, lalu kita akan membuat object dari class siswa
tersebut dengan menggunakan keyword dan menampilkan hasilnya sebagai suatu
object.

1. package belajarjava;
2.
3. public class siswa {
4. int id;
5. String nama;
6.
7. public static void main(String[] args) {
8. siswa s1 = new siswa();
9. siswa s2 = new siswa();
10. s1.id=1;
11. s1.nama = "firdan";
12. s1.id = 2;
13. s1.nama = "ardiansyah";
14. System.out.println(s1.id+ " " + s1.nama);
15. System.out.println(s2.id+ " " + s2.nama);
16. }
17.

C. Penerapan Kata Kunci This

Kata kunci this dan super sering muncul dalam program Java.

Apa sih fungsinya?

16
Fungsi this pada Java
Pada tutorial sebelumnya, kita sudah belajar tentang method setter dan getter.

Di sana kita menggunakan kata kunci this untuk mengisi variabel.

Contoh:

class User {
private String username;
private String password;

// ini method setter


public void setUsername(String username){
this.username = username;
}

public void setPassword(String password){


this.password = password;
}

// ini method getter


public String getUsername(){
return this.username;
}

public String getPassword(){


return this.password;

17
}
}

Lihat! this kita gunakan di setiap method.

Coba perhatikan salah satu method:

public void setUsername(String username){


this.username = username;
}

Bagaimana kalau kita hapus this pada method ini?

public void setUsername(String username){


username = username;
}

Apa yang akan terjadi?

Yak! komputer akan bingung…

Karena tidak tahu variabel username yang mana yang dimaksud.

Apakah variabel yang di class (private String username) ataukah


variabel username yang ada di dalam parameter.

18
Jika kita sentuh balon peringatan di samping, maka kita akan
mendapatkan pesan: “Assignment To Itself”.

Ini artinya variabel tersebut mengisi dirinya sendiri.

Karena itu, kita harus menggunakan this untuk menyatakan variabel


yang dimaksud adalah variabel yang ada di dalam class.

public void setUsername(String username){


this.username = username;
}

Jadi…

19
Kata kunci this digunakan sebagai referensi dari class itu sendiri.

D. Penerapan method (procedure dan function)

Sebenarnya lebih baik membahas cara membuat class terlebih


dahulu, tapi kita akan bahas pembuatan method di Java terlebih
dahulu untuk mengetahui prinsip - prinsip dasarnya.
Sebuah method di Java memiliki struktur yang terdiri dari:
 modifier berbagai statement yang menandakan hak
akses method tersebut dari luar class. Terdiri
dari statement public, private, dan protected
 return type, statement yang menandakan tipe kembalian
dari method. Ada int, void, String, double, dan berbagai objek
kompleks di Java
 nama method, nama method yang biasanya terdiri dari alfabet saja
dan ditulis dengan camel case
 parameter, berbagai nilai yang diperlukan oleh method, dalam
penulisannya harus diawali dulu dengan tipe datanya baru nama
parameternya.
 return statement, kembalian suatu method harus sesuai dengan tipe
data method, jadi jika method berjenis int maka kembaliannya
harus int. Khusus untuk tipe void tidak perlu menggunakan return
statement

20
 exception, kemungkinan error yang akan muncul ketika kode
dieksekusi di dalam method, biasanya
ditambahkan statement throws dan jenis exception yang akan
ditangkap
Method di Java harus selalu berada di dalam class tidak dapat berdiri
sendiri seperti di Python atau PHP. Untuk lebih jelasnya mari kita
buat kode berikut dalam sebuah file dengan nama Persegi.java:

public class Persegi {

private int panjang;

public Persegi(int panjang) {


this.panjang = panjang;
}

public static void showInfo() {


System.out.println("Dipanggil dari method static showInfo di class Persegi...");
}

public void setPanjang(int panjang){


this.panjang = panjang;
}

public int getPanjang(){


return this.panjang;
}

public int getLuas() {


int luas = this.panjang * this.panjang;
return luas;

21
}

public int getKeliling() {


int keliling = 4 * this.panjang;
return keliling;
}

public int getLuasPermukaan() {


int luas_permukaan = 6 * ( this.panjang * this.panjang );
return luas_permukaan;
}

public int getVolumeKubus() {


int volume = this.panjang * this.panjang * this.panjang;
return volume;
}

public int showException() throws Exception {


return 1 / 0;
}
}

Kemudian buat juga kode utama di dalam file dengan


nama DemoMethod.java:

public class DemoMethod {

public static void main(String[] args) {


Persegi.showInfo();

Persegi persegi = new Persegi(10);

System.out.println(persegi.getPanjang());
System.out.println(persegi.getLuas());

22
System.out.println(persegi.getKeliling());
System.out.println(persegi.getLuasPermukaan());
System.out.println(persegi.getVolumeKubus());

persegi.setPanjang(20);

System.out.println(persegi.getPanjang());
System.out.println(persegi.getLuas());
System.out.println(persegi.getKeliling());
System.out.println(persegi.getLuasPermukaan());
System.out.println(persegi.getVolumeKubus());

try {
System.out.println(persegi.showException());
} catch (Exception e){
e.printStackTrace();
}
}
}

Pada contoh diatas, kita panggil method static yang tidak harus
membuat objek persegi terlebih dahulu. Kemudian kita membuat
sebuah objek Persegi dan menanamkan nilai 10 untuk panjangnya.
Setelah memanggil berbagai method yang digunakan untuk
mengambil nilai luas dan keliling, kita ubah panjangnya
menjadi 20 dan memanggil ulang berbagai method untuk mengambil
keliling dan luas persegi. Sekarang mari kita jalankan kode tersebut:

23
$ javac *.java
$ java DemoMethod
Dipanggil dari method static showInfo di class Persegi...
10
100
40
600
1000
20
400
80
2400
8000
java.lang.ArithmeticException: / by zero
at Persegi.showException(Persegi.java:42)
at DemoMethod.main(DemoMethod.java:24)

E. Konstruktor

Constructor (konstruktor) adalah suatu method yang pertama kali dijalankan


pada saat pembuatan suatu object. Konstruktor mempunyai ciri yaitu:
 mempunyai nama yang sama dengan nama class

 tidak mempunyai return type (seperti void,int, double, dan lain-lain)

contoh:

public class Siswa {


private int nrp;
private String nama;

public Siswa(int n, String m) {

24
nrp=n;
nama=m;
}
}
 suatu class dapat mempunyai lebih dari satu konstruktor dengan syarat
daftar parameternya tidak boleh ada yang sama. contoh:

public class Siswa {


private int nrp;
private String nama;

public Siswa(String m) {
nrp=0;
nama=””;
}

public Siswa(int n, String m) {


nrp=n;
nama=m;
}
}

Contoh Program:
1. Buat New Project, beri nama Constructor dan masukkan code berikut:

25
package constructor;
import javax.swing.JOptionPane;
public class Constructor {
public static void main(String[] args) {
double p,l,t,luas,kll;
p = Double.parseDouble(JOptionPane.showInputDialog("Panjang: "));
l = Double.parseDouble(JOptionPane.showInputDialog("Lebar: "));
t = Double.parseDouble(JOptionPane.showInputDialog("Tinggi: "));

PersegiPanjang PP = new PersegiPanjang(p,l);


Balok B = new Balok(p,l,t);

System.out.println("Luas: "+PP.getluas());
System.out.println("Keliling: "+PP.getKll());
System.out.println("Volume: "+B.VolBalok());
}

2. Buat New Class, beri nama PersegiPanjang dan masukkan code berikut:

package constructor;
public class PersegiPanjang {
double p,l;

26
public PersegiPanjang(double p, double l){
this.p = p;
this.l = l;
}

public double getluas(){


double luas;
luas = p*l;
return luas;
}
public double getKll(){
double kll;
kll= 2*(p+l);
return kll;
}
}

3. Buat New Class, beri nama Balok dan masukkan code berikut:

package constructor;
public class Balok extends PersegiPanjang{
double t;

27
public Balok(double p, double l, double t){
super(p,l);
this.t = t;
}

public double VolBalok(){


double volBalok;
volBalok = getluas()*t;
return volBalok;
}
}

F. Penerapan Override dan Overriding

Overloading

Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2
atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.

Pada method overloading perbedaan parameter mencakup :

1. Jumlah parameter
2. Tipe data dari parameter
3. Urutan dari tipe data parameter

Method Overloading juga dikenal dengan sebutan Static Polymorphism. Berikut ini
contoh Class yang melakukan Overloading.

public class ContohOverloading {


public void jumlah (int a, int b){

28
System.out.println("Jumlah 2 angka ="+ (a + b));
}
//oveloading perbedaan jumlah parameter
public void jumlah (int a, int b, int c){
System.out.println("Jumlah 3 angka =" + (a + b + c));
}
//overloading perbedaan tipe data parameter
public void jumlah (double a, int b){
System.out.println("Jumlah 2 angka (double+int) = "+ (a + b));
}
//overloading perbedaan urutan tipe data parameter
public void jumlah (int b, double a){
System.out.println("Jumlah 2 angka (int+double) = "+ (a + b));
}
}

Penggunaan pada class utama :

public class PenggunaanOverloading {


public static void main(String[] args) {
ContohOverloading co = new ContohOverloading();
co.jumlah(83,32);
co.jumlah(34,454,432);
co.jumlah(34.43,34);
co.jumlah(28,33.23);
}
}

Overriding

Method overriding merupakan method yang parrent class yang ditulis kembali oleh subclass. Aturan
dari method overriding pada Java :

1. Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter
yang terdapat pada parent class.

29
2. Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di
bandingkan dengan hak akses method pada parent class.
3. Berikut ini contoh overriding :
4. public class Binatang {
5. public void begerak(){
6. System.out.println("Binatang bergerak sesuai kemampuannya");
7. }
8. public void berkembangBiak(){
9. System.out.println("Binatang berkembang biak sesuai kemampuannya");
10. }
11.
12. }
13. public class Mamalia extends Binatang {
14. //overriding method parent class
15. public void begerak(){
16. System.out.println("Mamalia bergerak sebagian besar dengan kakinya");
17. }
18. public void berlari(){
19. System.out.println("Sebagian Mamalia dapat berlari");
20. }
21. }
22. public class PenggunaanOverriding {
23. public static void main(String[] args) {
24. // TODO Auto-generated method stub
25. Binatang b = new Binatang();
26. Mamalia m = new Mamalia();
27. Binatang bm = new Mamalia();
28.
29. b.begerak();
30. m.begerak();
31. bm.begerak();
32. bm.berkembangBiak();
33. }
34. }

30
G. Penggunaan Kata Kunci super

Sebelumnya anda sudah mengetahui mengenai keyword this sebagai referensi untuk
objek yang dipanggil. Sedangkan keyword super akan mengacu pada superclass.

Ketika suatu sub class menerima pewarisan data fields yang bisa diakses dan method-
methodnya dari superclass, apakah constructor dari super class juga akan ikut di
wariskan pada sub class tersebut?

Apakah constructor dari super class bisa dipanggil melalui sub class?

Nah, fungsi dari keyword super itu sendiri adalah:

 Memanggil constructor dari superclass

 Memanggil method dari superclass

 Mengakses variabel instance super class

a. Memanggil Conctructor Dari Superclass

Constructor digunakan untuk membentuk instance dari suatu class. Namun, tidak
seperti properti dan method, constructor ini tidak diwariskan pada subclass.

Sehingga constructor dari subclass ini hanya dapat dipanggil melalui constructor dari sub
class dengan menggunakan keyword super.

Syntax nya adalah:

 super()
Akan memanggil constructor tanpa argumen dari superclass

31
 super(parameter)
Memanggil constructor dari superclass yang memiliki argumen-argumen yang
sesuai.

Pernyataan super() ataupun super(parameter) harus ditempatkan pertama kali di dalam


constructor dari sub class.

Dan ini adalah satu-satunya cara untuk memanggil constructor super class melalui
subclass.

Contoh:

Java

1 import java.util.Date;
2
3 //Class Benda sebagai super class
4 public class Benda {
5
6 private Date tanggalDibuat;
7 private String warna = "Merah";
8 private boolean terisiWarna;
9
10 //Constructor
11 public Benda(Date tanggalDibuat, String warna, boolean terisiWarna){
12
13 this.tanggalDibuat = tanggalDibuat;
14 this.warna = warna;
15 this.terisiWarna = terisiWarna;
16
17 }
18

32
19 //Method getter warna
20 public String getWarna() {
21 return warna;
22 }
23
24 //Method setter warna
25 public void setWarna(String warna) {
26 this.warna = warna;
27 }
28
29 //Method getter nilai boolean
30 //apakah terisi warna sepenuhnya atau tidak
31 public boolean isTerisiWarna() {
32 return terisiWarna;
33 }
34
35 //Method setter apakah terisi warna sepenuhnya atau tidak
36 public void setTerisiWarna(boolean terisiWarna) {
37 this.terisiWarna = terisiWarna;
38 }
39
40 //Method getter untuk tanggal dibuat
41 public Date getTanggalDibuat() {
42 return tanggalDibuat;
43 }
44
45 }

Java

Contoh output:

Java

1 Tanggal lingkaran dibuat adalah Sun Oct 29 12:08:21 SGT 2017

33
2 Warna lingkaran adalah Merah
3 Apakah lingkaran terisi sepenuhnya dengan warna Merah? true
4 Luas lingkaran adalah 93.26585

Konstruktor Berantai

Suatu constructor dapat memanggil constructor overload atau juga constructor dari
super class. Jika tidak ada pemanggilan yang dilakukan secara eksplisit, maka secara
otomatis compiler akan meletakkan super() pada pernyataan pertama dalam
konstruktor.

Misalnya:

Java

1 public class A {
2
3 //Default constructor oleh compiler
4 public A(){
5
6 }
7
8 /*
9 Equivalen dengan :
10 public A(){
11 super();
12 }
13 */
14
15 //Constructor ke-1
16 public A(String string){
17 System.out.println(string);

34
18 }
19
20 /*
21 Equivalen dengan :
22 public A(String string){
23 super();
24 System.out.println(string);
25 }
26 */
27
28 }

Dalam kasus apapun, ketika pengkonstruksian suatu instance telah dilakukan, maka
constructor-constructor dari superclass-nya yang terkait dalam rantai inheritance akan
dipanggil.

Ketika suatu objek dikonstruksi pada subclass maka constructor dari subclass itu
pertama-tama akan memanggil constructor dari superclass-nya sebelum melakukan
tugasnya sendiri.

Jika superclass-nya juga inherit dari class lainnya, maka constructor dari superclass itu
akan memanggil contructor dari superclassnya juga sebelum melakukan tugasnya
sendiri.

Proses ini terus berlanjut sampai dengan constructor yang terakhir pada hirarki
inheritance, dan ini disebut constructor chaining.

b. Memanggil Method Milik Superclass

Keyword super dapat digunakan sebagai referensi method selain dari constructor dalam
superclass. Syntax-nya adalah:

super.method(parameters);

35
Contoh:

Java

1 //Class Binatang sebagai superclass


2 public class Binatang {
3
4 void bersuara(){
5 System.out.println("Binatang bersuara");
6 }
7
8}

Java

1 //Class Ayam inherit dari class Binatang


2 public class Ayam extends Binatang {
3
4 void berlari(){
5 System.out.println("Ayam berlari");
6 }
7
8 void bersuara(){
9 System.out.println("Kukuruyuk");
10 }
11
12 void berperilaku(){
13 //memanggil method bersuara() milik class Binatang
14 super.bersuara();
15 berlari();
16 }

36
17
18 public static void main(String[] args) {
19
20 Ayam ayam = new Ayam();
21 ayam.berperilaku();
22 }
23 }

Output:

Java

1 Binatang bersuara
2 Ayam berlari

Pada contoh diatas Binatang dan Ayam memiliki method yang sama, yaitu bersuara().
Jika objek Ayam memanggil method bersuara(), harusnya output yang keluar adalah
“Kukuruyuk”. Namun, karena keyword super digunakan, maka method yang dipanggil
adalah milik super class. Oleh karena itu outputnya adalah “Binatang bersuara”.

c. Digunakan Untuk Mengacu Secara Langsung Pada Variabel Instance Milik Super
Class

Anda dapat menggunakan keyword super untuk langsung mengakses data


member atau field dari super class. Dan ini digunakan jika supe class dan sub class
memiliki field-field yang sama

H. Konsep dan Penerapan Pewarisan

37
Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang
memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP
memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat
dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara
bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin
spesifik.

pewarisan memberikan atau mewariskan sesuatu kepada keturunan berikutnya.


misalnya, seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang
dimiliki oleh ibu/bapaknya. dalam konteks ini, suatu kelas dalam program dapat
diturunkan menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat
atau perilaku dari kelas induknya. sebagai contoh, apabila anda memiliki kelas A
dalam program yang anda buat maka anda dapat membentuk kelas-kelas turunan
dari kelas A tersebut(Misalnya, kelas B) yang mewarisi sifat-sifat yang terkandung
dalam kelas A. dalam proses pembuatan kelas turunan tersebut, Anda dapat
menambahkan sifat dan perilaku baru ke dalam kelas B, yang sebelumnya tidak
dimiliki dalam kelas A. Dalam terminologi java, kelas induk dinamakan
dengan superclass dankelas turunan dinamakan dengan subclass. untuk membuat
kelas anak atau kelas turunan berdasarkan class yang ada, anda dapat
menggunakan kata kunci extends.
contoh program:

program induk kakek.java


public class kakek
{
protected String namekakek;
38
protected String address;
public kakek()
{
System.out.println(“\n Program Demo Inheritance”);
System.out.println(“============================”);
System.out.println(” Masukan construktor kakek “);
System.out.println(“–Dijalankan oleh class Bapak–“);
namekakek=”Doni wijaya”;
address=”Merauke”;
}
public kakek(String name,String address)
{
this.namekakek=namekakek;
this.address=address;
}
public String getName()
{
return namekakek;
}
public String getAddress()
{
return address;
}
}
program anak/turunan:

39
program bapak.java
public class bapak extends kakek
{
protected String namebapak;
protected String addressbapak;
public bapak()
{
System.out.println(“Nama Kakek :”+namekakek);
System.out.println(“Address kakek :”+address);
System.out.println(“\n”);
System.out.println(” Masukan Construktor Bapak “);
System.out.println(“—-dijalankan class cucu—-“);
namebapak=”Ridho Saputra”;
addressbapak=”Yogyakarta”;
}
public bapak(String namebapak,String addressbapak)
{
this.namebapak=namebapak;
this.addressbapak=addressbapak;
}
public String getNama()
{
return namebapak;
}
public String getAddress()

40
{
return addressbapak;
}
public static void main(String []args)
{
bapak sari=new bapak();
}
}
program cucu.java
public class cucu extends bapak
{
public cucu()
{
System.out.println(“Nama Bapak :”+namebapak);
System.out.println(“Address Bapak :”+addressbapak);
}
public static void main(String []args)
{
String namacucu;
cucu lagan=new cucu();
System.out.println(“\nSaya adalah CUCU”);
System.out.println(“Nama Saya : Samuel”);
System.out.println(“”);
}
}

41
jika kita menjalankan class bapak maka akan seperti berikut tampilannya:

42

Anda mungkin juga menyukai