Pengertian Java
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.
4
karena Bahasa Java termasuk Platform Independence. Ketika dibuat sebuah file,
maka file tersebut bisa dijalankan pada perangkat manapun.
5
GUI atau singkatan dari Grafical User Interface adalah salah satu fitur yang ada di
dalam 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.
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. 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
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.
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.
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.
10
package dasar;
// definisi atribut
String name;
int speed;
int healthPoin;
//constructor
public Hewan(String nama, int kaki){
this.jumlahKaki = kaki;
11
this.namaHewan = nama;
}
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");
}
}
package dasar;
13
// definisi atribut
String name;
int speed;
int healthPoin;
14
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.
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.
Kata kunci this dan super sering muncul dalam program Java.
16
Fungsi this pada Java
Pada tutorial sebelumnya, kita sudah belajar tentang method setter dan getter.
Contoh:
class User {
private String username;
private String password;
17
}
}
18
Jika kita sentuh balon peringatan di samping, maka kita akan
mendapatkan pesan: “Assignment To Itself”.
Jadi…
19
Kata kunci this digunakan sebagai referensi dari class itu sendiri.
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:
21
}
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
contoh:
24
nrp=n;
nama=m;
}
}
suatu class dapat mempunyai lebih dari satu konstruktor dengan syarat
daftar parameternya tidak boleh ada yang sama. contoh:
public Siswa(String m) {
nrp=0;
nama=””;
}
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: "));
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;
}
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;
}
Overloading
Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2
atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.
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.
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));
}
}
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?
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.
super()
Akan memanggil constructor tanpa argumen dari superclass
31
super(parameter)
Memanggil constructor dari superclass yang memiliki argumen-argumen yang
sesuai.
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
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.
Keyword super dapat digunakan sebagai referensi method selain dari constructor dalam
superclass. Syntax-nya adalah:
super.method(parameters);
35
Contoh:
Java
Java
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
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.
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