Anda di halaman 1dari 18

A.

Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip dengan obyek pada dunia nyata. Disekeliling kita ada banyak contoh dari objek, seperti meja, pena, kursi, televisi dan masih banyak lagi. Yang dimiliki oleh objek antar lain state Pada implementasinya berupa field dari kelas behaviour Implementasinya menjadi method dari kelas . !lass !lass adalah rancangan dari sebuah objek yang mendefinisikan attribut dan method umum pada semua objek dari jenis tertentu. !ontohnya sepedaA, sepeda , sepeda! adalah instance dari dari kelas sepeda. Pada java, ada sebuah kelas yang memiliki method "ain, method main inilah yang nantinya akan dijalankan untuk pertama kalinya ketika sebuah program java dijalankan. #ebuah kelas hanya dapat memiliki $ kelas induk dan dapat mengimplementasikan $ atau lebih interface. Dalam penulisan sebuah kelas di java, ada beberapa aturan yang biasanya dilakukan %ama kelas tidak menggunakan tanda spasi, dash &'( dan tanda lain. %ama kelas untuk $ suku kata dia)ali huruf besar untuk huruf pertama, untuk lebih dari $ suku kata berikan huruf besar pada a)al tiap suku kata contoh * #epeda, #epeda+odaDua, AsistenPraktikum ,atihan $. uatlah sebuah file kelas java dengan nama file #epeda.java public class Sepeda{ } $. uatlah sebuah kelas java dengan nama file -tama.java

public class Utama{ public static void main(String[] args){ Sepeda sepedaA=new Sepeda(); Sepeda sepedaB=new Sepeda(); Sepeda sepeda =new Sepeda(); } } $. ,etakkan file #epeda.java dan -tama.java pada $ direktori .. #ilahkan anda buka command prompt atau console, kemudian anda ketikkan perintah berikut* javac #epeda.java javac -tama.java atau javac /.java 0. 1alankan kode program anda dengan perintah java -tama !. !onstructor Adalah sebuah method atau fungsi yang diekseskusi ketika sebuah kelas diinisialisasi, secara default sebuah 1ava !lass memiliki $ buah konstruktor tanpa parameter, konstruktor ini bisa ditulis, bisa tidak ditulis. #etiap kelas dalam java bisa memiliki lebih dari $ konstruktor dengan parameter yang berbeda 2 beda. %ama dari sebuah konstruktor harus sama dengan nama dari kelas dan tidak memiliki nilai kembalian. Apabila sebuah kelas memiliki $ buah konstruktor dengan $ buah parameter atau lebih, maka kelas tersebut menjadi tidak memiliki lagi konstruktor default. public class Sepeda{ public Sepeda(){ } } atau

#ebuah konstruktor juga dapat memiliki parameter public class Sepeda{ public Sepeda(String warna){ } } ,atihan $. #ilahkan anda tambahkan . buah konstruktor pada kelas #epeda.java public class Sepeda{ public Sepeda(){ } public Sepeda(String warna){ } } .. 3ompile dengan perintah javac #epeda.java 0. 1alankan kode program anda dengan perintah java -tama, anda tidak akan menemui error, coba anda ubah kelas #epeda.java menjadi berikut lalu anda kompile public class Sepeda{ public Sepeda(String warna){ } 4 5. 1alankan kode program anda dengan perintah java -tama, maka akan munucl pesan error 6. -bah kelas -tama.java menjadi seperti berikut ini public class Utama{ public static void main(String[ ] args){ Sepeda sepedaA=new Sepeda(Merah); Sepeda sepedaB=new Sepeda(Kuning);

Sepeda sepedaC=new Sepeda( i!au); } } $. #ilahkan anda kompile #epeda.java dan -tama.java, kemudian anda jalankan dengan perintah java -tama D. Attribute Digunakan untuk menyimpan informasi yang dimiliki oleh sebuah kelas. !ontoh * private #tring nama7 private #tring )arna7 private int panjang7 ,atihan $. 8ambahkan $ buah field pada kelas #epeda.java public class Sepeda{ pri"ate String warna; public Sepeda(String warna){ this#warna=warna; } 4 .. #ilahkan anda kompile #epeda.java, kemudian anda jalankan java -tama Pada contoh kode program diatas, ada key)ord this yang berarti menunjuk pada field )arna pada kelas #epeda, bukan parameter )arna pada konstruktor Sepeda(String warna) 9. Access "odifier "endefinisikan bagaimana kelas lain menggunakan attribut atau memanggil method dari suatu kelas. 8abel berikut ini menjelaskan hak akses yang diberikan "odifier public protected !lass Y Y Package Y Y #ub!lass Y Y :orld Y %

default &tidak ditulis( Y private keterangan public Y

Y %

% %

% %

bisa diakses dari kelas bersangkutan, kelas yang berada dalam satu package, kelas turunannya dan bisa diakses dari bukan ketiganya protected hanya dapat diakses dari kelas bersangkutan, kelas yang berada dalam satu package dan kelas turunannya. default hanya dapat diakses dari kelas bersangkutan dan kelas yang berada dalam satu package private hanya dapat diakses dari kelas bersangkutan ;. "ethod Dalam pemrograman yang tidak berorientasi objek dikenal dengan nama fungsi dan prosedur. Dalam java, fungsi digantikan dengan method yang memiliki tipe kembalian selain void dan prosedur digantikan dengan method yang memiliki tipe kembalian void. ,atihan $. 8ambahkan . buah method untuk mendapatkan )arna dan mengubah )arna public class Sepeda{ private String warna; public Sepeda(String warna){ t!is"warna=warna } public String get$arna(){ return warna; } public "%id set$arna(String warna){

this#warna=warna; } } .. #ilahkan anda compile kelas #epeda.java 0. 8ambahkan kode program untuk mengetahui informasi )arna dari sepeda, di kelas -tama.java public class Utama{ public static void main(String[ ] args){ Sepeda sepedaA=new Sepeda(#$era!%); S&ste'#%ut#println($arna sepeda A ( sepedaA#get$arna()); Sepeda sepedaB=new Sepeda(#&uning%); S&ste'#%ut#println($arna sepeda B ( sepedaB#get$arna()); Sepeda sepeda =new Sepeda(#'i(au%); S&ste'#%ut#println($arna sepeda C ( sepedaC#get$arna()); } } 5. #ilahkan anda kompile -tama.java kemudian anda jalankan dengan perintah java -tama <. e=tends "erupakan sebuah key)ord untuk menandakan bah)a sebuah kelas merupakan turunan dari kelas yang lain. public class > e=tends Y memiliki keterangan bah)a kelas > adalah turunan Y. ,atihan $. #ilahkan anda buat kelas kendaraan public class &endaraan { private int (umla!)oda; public &endaraan(int (umla!)oda){ t!is"(umla!)oda=(umla!)oda; } public void set*umla!)oda(int (umla!)oda){ t!is"(umla!)oda=(umla!)oda;

} public int get*umla!)oda(){ return (umla!)oda; } } $. #ilahkan anda ubah kelas #epeda yang merupakan turunan dari kelas 3endaraan public class Sepeda e)tendss Kendaraan{ private String warna; public Sepeda(int !u'lah*%da+String warna){ super(!u'lah*%da); this#warna=warna; } public String get+arna(){ return warna; } public void set+arna(String warna){ t!is"warna=warna; } } $. #ilahkan anda ubah kelas -tama, dengan kode program sebagai berikut public class Utama{ public static void main(String[ ] args){ Sepeda sepedaA=new Sepeda(,-#$era!%); S&ste'#%ut#println($arna sepeda A ( sepedaA#get$arna()); S&ste'#%ut#println(*%da sepeda A ( sepedaA#get,u'lah*%da()); Sepeda sepedaB=new Sepeda(.-#&uning%); S&ste'#%ut#println($arna sepeda B ( sepedaB#get$arna()); S&ste'#%ut#println(*%da sepeda B ( sepedaB#get,u'lah*%da()); Sepeda sepeda =new Sepeda(/-#'i(au%); S&ste'#%ut#println($arna sepeda C ( sepedaC#get$arna()); S&ste'#%ut#println(*%da sepeda C ( sepedaC#get,u'lah*%da()); }

} .. 3ompile 3endaraan.java, #epeda.java dan -tama.java 0. 1alankan java -tama ?. #uper #uper merupakan sebuah key)ord yang digunakan untuk memanggil method atau konstruktor yang terdapat pada kelas induk dari sebuah kelas turunan. Pada contoh diatas, terdapat kode program super(!u'lah*%da); &ode program ini ma0sudn1a memanggil 0onstru0tor dari 0elas indu0 1ang memili0i / parameter bertipe integer" I. Override Override atau diartikan menulis ulang memiliki pengertian bah)a kita melakukan proses pendefinisian ulang method yang ada di kelas induk atau method pada suatu interface dengan method yang ada di kelas turunannya atau kelas yang mengimplementasikannya. Ada beberapa cara untuk melakukan override $. Override melalui interface uatlah sebuah interface bernama I arang.java public inter2ace 3Barang{ void set$er0(String mer0); String get$er0(); } Implementasikan I arang di kelas 3endaraan. public class &endaraan implements 3Barang{ private int (umla!)oda; pri"ate String 'er-; public &endarran(int (umla!)oda){ t!is"(umla!)oda=(umla!)oda; } public int get*umla!)oda(){ return t!is"(umla!)oda; }

public void set*umla!)oda(int (umla!)oda){ t!is"(umla!)oda=(umla!)oda; } ./"erride public String getMer-(){ return 'er-; } ./"erride public "%id setMer-(String 'er-){ this#'er-='er-; } }

.. Override melalui instance #ilahkan anda ubah kelas -tama.java menjadi seperti kode program berikut ini public class Utama{ public static void main(String[ ] args){ Sepeda sepedaA=new Sepeda(,-#$era!%); S1stem"out"println(#+arna sepeda A # 4 sepedaA"get+arna()); S1stem"out"println(#)oda sepeda A # 4 sepedaA"get*umla!)oda()); Sepeda sepedaB=new Sepeda(.-#&uning%); S1stem"out"println(#+arna sepeda B # 4 sepedaB"get+arna()); S1stem"out"println(#)oda sepeda B # 4 sepedaB"get*umla!)oda()); Sepeda sepedaC=new Sepeda(0+ i!au){ public int get,u'lah*%da(){ return super#get,u'lah*%da()12; } public String getMer-(){ return Belu' ada 'er-; } };

S1stem"out"println(#+arna sepeda S1stem"out"println(#)oda sepeda } } 0. Override melalui e=tends erikan juga perubahan pada kelas #epeda.java public class #epeda e=tends 3endaraan@ private String warna;

# 4 sepeda "get+arna()); # 4 sepeda "get*umla!)oda());

public Sepeda(int (umla!)oda-String warna){ super((umla!)oda); t!is"warna=warna; } public String get+arna(){ return warna; } public void set+arna(String warna){ t!is"warna=warna; } ./"erride public int get,u'lah*%da(){ return super#get,u'lah*%da()12; } ./"erride public String getMer-(){ return Belu' ada 'er-; } 4 1. Overloaded Overloaded diartikan sebagai suatu method atau konstruktor yang memiliki nama sama dalam satu kelas tetapi memiliki parameter yang berbeda. public class Sepeda e5tends &endaraan{

private String warna; public Sepeda(String warna){ super(2); this#warna=warna; } public Sepeda(int (umla!)oda-String warna){ super((umla!)oda); t!is"warna=warna; 66bisa (uga ditulis t!is(warna); } public String get+arna(){ return warna; } public void set+arna(String warna){ t!is"warna=warna; } public "%id setAttribut(String warna){ this#warna=warna; } public "%id setAttribut(int !u'lah*%da+String warna){ this#warna=warna;33bisa !uga ditulis setAttribut(warna); set,u'lah*%da(!u'lah*%da); } 78verride public int get*umla!)oda(){ super"get*umla!)oda()9,; } 78verride public String get$er0(){ return #Belum ada mer0%; } } 3. Interface

"erupakan sebuah key)ord untuk mendefinisikan sekumpulan method dan konstanta. Interface bisa digunakan apabila sudah dilakukan implementasi pada sebuah kelas non abstract. Interface dapat digunakan untuk $. "e)akili suatu tingkat laku yang bisa dimiliki oleh banyak kelas tanpa memaksakan relasi antar kelas tersebut. public class :emari implements 3Barang{ private int pan(ang- lebar- tinggi; private String mer0; public :emari(int pan(ang- int lebar- int tinggi){ t!is"pan(ang=pan(ang; t!is"lebar=lebar; t!is"tinggi=tinggi; } public String get$er0(){ return mer0; } public void set$er0(String mer0){ t!is"mer0=mer0; } public int get;an(ang(){ return pan(ang; } public int get:ebar(){ return lebar; } public int get<inggi(){ return tinggi; } } .. "enangani 9vent atau Action yang terjadi pada suatu kelas. Buatla! sebua! inter2ace untu0 menangani a0si 0eti0a ada peruba!an warna

public inter2ace Sepeda=vent{ void on+arna !ange(String warna:ama-String warnaBaru); } tamba!0an pada 0elas sepeda anda public class Sepeda e5tends &endaraan{ private String warna; pri"ate Sepeda4"ent sepeda4"ent; public Sepeda(String warna){ super(,); t!is"warna=warna; } public Sepeda(int (umla!)oda-String warna){ super((umla!)oda); t!is"warna=warna; 66bisa (uga ditulis t!is(warna); } public String get+arna(){ return warna; } public void set+arna(String warna){ i5(sepeda4"ent6=null){ sepeda4"ent#%n$arnaChange(this#warna+warna); } t!is"warna=warna; } public void setAttribut(String warna){ i5(sepeda4"ent6=null){ sepeda4"ent#%n$arnaChange(this#warna+warna); } t!is"warna=warna; 33bisa !uga ditulis 31 set$arna(warna); 13

} public void setAttribut(int (umla!)oda-String warna){ i5(sepeda4"ent6=null){ sepeda4"ent#%n$arnaChange(this#warna+warna); } t!is"warna=warna; set*umla!)oda((umla!)oda); 33bisa !uga ditulis 7 8 31 set$arna(warna) set,u'lah*%da(!u'lah*%da); 13 33bisa !uga ditulis 9 88 31 setAttribut(warna); set,u'lah*%da(!u'lah*%da); 13 } 78verride public int get*umla!)oda(){ super"get*umla!)oda()9,; } 78verride public String get$er0(){ return #Belum ada mer0%; } public "%id setSepeda4"ent(Sepeda4"ent sepeda4"ent){ this#sepeda4"ent=sepeda4"ent; } } 0emudian buatla! sebua! 0elas dengan nama Utama,"(ava public class Utama, implements Sepeda=vent{ public Utama,(){

Sepeda sepedaA=new Sepeda(,-%Biru%); sepedaA"setSepeda=vent(t!is); S1stem"out"println(#+arna # 4 sepedaA"get+arna()); S1stem"out"println(#)oda # 4 sepedaA"get*umla!)oda()); sepedaA"set+arna(#'i(au%); S1stem"out"println(#+arna # 4 sepedaA"get+arna()); S1stem"out"println(#)oda # 4 sepedaA"get*umla!)oda()); } public void on+arna !ange(String warna:ama-String warnaBaru){ S1stem"out"println(#+arna beruba! dari # 4 warna:ama 4 # men(adi # 4 warnaBaru); } public static void main(String[ ] args){ Utama, utm,=new Utama,(); } } 0. "emudahkan penanganan objek dalam parameter. #ilahkan anda buat kelas Pembaca"erk.java public class ;embaca$er0{ public static void sebut0an$er0(3Barang iBarang){ S1stem"out"println(iBarang"get$er0()); } } #ilahkan anda buat -tama0.java kemudian anda compile public class Utama.{ public static void main(String[ ] args){ Sepeda sepedaA=new Sepeda(,-%'i(au%); sepedaA"set$er0(#Belum ada mer0%); :emari lemariA=new :emari(>-.-,); lemariA"set$er0(#:emari 0ecil%); S1stem"out"print(#$er0 dari SepedaA adala! #); ;embaca$er0"sebut0an$er0(sepedaA);

S1stem"out"print(#$er0 dari :emariA adala! #); ;embaca$er0"sebut0an$er0(lemariA); } } pada contoh diatas, "ethod sebutkan"erk yang terletak di kelas Pembaca"erk menggunakan kata kunci static yang berarti method tersebut dapat dipanggil tanpa perlu membuat instance terlebih dahulu dari kelas Pembaca"erk. ,. Abstract !lass 3elas ini memiliki $ buah method abstract, untuk menggunakan kelas ini adalah dengan me)ariskan kelas ini baru kemudian membuat instance dari turunannya. Apabila anda hendak memaksakan untuk membuat instance dari kelas ini, maka anda di)ajibkan melakukan override melalui instance. Perbedaan antara abstract class dengan interface adalah pada abstract class kita dapat membuat method abstract maupun non abstract, attribut, konstanta. uatlah sebuah kelas "eja yang merupakan abstract class dan mengimplementasikan I arang. public abstract class $e(a implements 3Barang{ private int pan(ang- lebar- tinggi; public $e(a(int pan(ang- int lebar- int tinggi){ t!is"pan(ang=pan(ang; t!is"lebar=lebar; t!is"tinggi=tinggi; } public int get<inggi(){ return tinggi; } public int get:ebar(){ return lebar; } public int get;an(ang(){ return pan(ang; } }

#ekarang buat turunan dari kelas "eja menjadi kelas yang lebih spesifik yaitu "eja8ulis. public class $e(a<ulis e5tends $e(a{ public $e(a<ulis(int pan(ang-int lebar- int tinggi){ super(pan(ang-lebar-tinggi); } public String get$er0(){ return #8l1mpic%; } public void set$er0(String mer0){ } } #elanjutnya kita buat sebuah kelas untuk menguji objek meja tersebut, buat kelas dengan nama -tama5.java public class Utama>{ public static void main(String[ ] args){ $e(a<ulis me(a<ulis=new $e(a<ulis(>-?-@); $e(a me(a=new $e(a(>-?-@){ public String get$er0(){ return #<ida0 pun1a mer0%; } public void set$er0(String mer0){ } }; } } ".;inal Diterapkan pada class dan attribut, class yang bersifat final tidak dapat di)ariskan ke kelas lain, sedangkan attribut yang bersifat final tidak dapat diubah nilainya. !ontoh final* $. Pada Attribut public final int 9+A8A$B7

.. Pada !lass public final class atu@ 4 %. Package Digunakan untuk melakukan pengaturan letak dari kelas atau mengelompokkkan sekumpulan class dan interface yang berhubungan dalam satu kelompok. package latihan public class arang C.............................................. -ntuk setiap package, misalnya package latihan, maka dibuatkan $ buah folder dengan nama latihan, apabila kelas arang terletak pada package latihan maka file arang.java juga terletak pada folder latihan. O. Instance Of Digunakan untuk melakukan pengecekan apakah sebuah objek adalah instance dari suatu kelas7 public class Utama>{ public static void main(String[ ] args){ $e(a<ulis me(a<ulis=new $e(a<ulis(>-?-@); $e(a me(a=new $e(a(>-?-@){ public String get$er0(){ return #<ida0 pun1a mer0%; } public void set$er0(String mer0){ } }; b%%lean ce-='e!a instance/5 Me!a; S&ste'#%ut#println('e!a instance%5 Me!a : ( ce-); } 4

Anda mungkin juga menyukai