Pertemuan 6(Konsep Pemrograman Objek)

58
Modul Pelatihan Java Dasar Asep Komarudin a a ss ee pp @g m a i l . c o m PEMROGRAMAN BERORIENTASI OBJEK Pemprograman berorientsi objek adalah pemprograman yang menjadikan objek sebagai komponenn utama dalam program.Objek merupakan gabungan data dan fungsi,sebuah objek biasanya dibuat dari sebuah class. 1. Objek Objek merupakan hasil dari klass.jika diibaratkan objek adalah sebuah kue maka class adlah cetakannya.Dan cetakan kue dapat membut beberapa kue,artinya sebuah class dapat membuat beberapa objek. Untuk membuat objek memerlukan perintah new.penulisannya adalh sbb: Kelas objek=new Kelas(); Untuk mengakses atribut yang dimiliki objek maka dapat dipangil dengan (titik) Contoh: //mendeklarasikan atribute Objek.namaAtribute=v alue; Untuk memangil fungsi(metode) dalam klas tersebut sama mengunakan titik juga namaun diakhiri dengan kurugbuka dan kurung tutup (). // memanggilfung si Objek.namaFungs i(); 2. Class Class didefinisikan dengan kata kunci class.contohnya adalah sbb:

description

Konsep OOP

Transcript of Pertemuan 6(Konsep Pemrograman Objek)

Page 1: Pertemuan 6(Konsep Pemrograman Objek)

Modul Pelatihan Java Dasar Asep Komarudin

a a ss ee pp @g m a i l . c o m

PEMROGRAMAN BERORIENTASI OBJEK

Pemprograman berorientsi objek adalah pemprograman yang menjadikan objek sebagai komponenn utama dalam program.Objek merupakan gabungan data dan fungsi,sebuah objek biasanya dibuat dari sebuah class.

1. Objek

Objek merupakan hasil dari klass.jika diibaratkan objek adalah sebuah kue maka class adlah cetakannya.Dan cetakan kue dapat membut beberapa kue,artinya sebuah class dapat membuat beberapa objek.

Untuk membuat objek memerlukan perintah new.penulisannya adalh sbb:

Kelas objek=new Kelas();

Untuk mengakses atribut yang dimiliki objek maka dapat dipangil dengan (titik)

Contoh:

//mendeklarasikan atribute

Objek.namaAtribute=value;

Untuk memangil fungsi(metode) dalam klas tersebut sama mengunakan titik juga namaun diakhiri dengan kurugbuka dan kurung tutup ().

//memanggilfungsi

Objek.namaFungsi();

2. Class

Class didefinisikan dengan kata kunci class.contohnya adalah sbb:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class Manusia {

String nama;

}

Page 2: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

Pada kode diatas kelas yang telah dibuat adah kelas manusia, dan atributnya dalah nama.

Contoh pengunaan class objek diatas:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class PangilManusia {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia manusia=new Manusia();

String nma= manusia.nama="asep komarudin";

System.out.println(nma);

}

}

Class yang dibuat ini adalah untuk memengil objek class yang telah dibuat sebelumnya dan jika dijalankan maka keluarannya adlaah sbb:

2.1. Metode

Dalam java mengenal 2 metode yaitu:

1. Fungsi

Merupakan metode yang memiliki nilai balik jika jika metode tersebut dipanggil,cara pembuatannya adalah dengan mementukan nilai baliknya,lalau membuat nama metodnya.

2. Prosedur

Page 3: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

Merupakan metode yang tidak memiliki nilai balik,cara pembuatanny sama dengan fungsi namaun bedanya nilai baliknnya mengunakan kata kunci void.

Contoh:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class Manusia {

String nama;

//ini contoh fungsi

String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

return nama;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Pada contoh diatas class manusia memiliki duabuah metode yaitu ambilNama() dan hapus(),ambilnama() merupakan fungsi dikarenakan metode ambilnama memgembalikan String,sedangkan hapus merupakan procedur karena tidak mengembalikan nilai.

Untuk mengembalikan nilai pada fungsi mengunakan kata kunci return diikuti dengan nilai yang akan dikembalikan.

Contoh kita akan panggil fungsi diatas tadi:

package asep.moduljavadasar;

/**

Page 4: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

*

* @ au t hor asep teea

*/

public class PangilManusia {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia manusia=new Manusia();

manusia.nama="asep komarudin";

String nama=manusia.ambilNama();

System.out.println(nama);

}

}

Dan jika di jalankan kode diatas akan mengembalaikan String “asep Komarudin”

2.2. Parameter

Parameter merupakan data yang dapat ditambahkan dari luar metode ,,misalakn kita membuta metode utuk merubah nama pada kelas manusia diatas,tentunya kita membutuhkan nama baru untuk menggantikan nama lama,sehingga dibutuhkan sebuah parameter untuk nama baru.

Contohnya adalah sbb:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

Page 5: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

public class Manusia {

String nama;

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

//ini contoh fungsi

String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

return nama;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Dan cara memengilnya adalah sbb:

public class UbahNama {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia manusia=new Manusia();

manusia.ubahNama("asep ganteng");

String nama= manusia.ambilNama();

System.out.println(nama);

Page 6: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

}

}

Keluarannya adalah sbb:

Sebauh metode dapat memiliki satu atau lebih parameter untuk menambahkan parmeter dipisahkan dengan tanda (koma)

Contoh:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class Manusia {

String nama;

String alamat;

//metode dengan parameter lebih dari satu

void ubahNama(String namaBaru,String alamatBaru){

nama=namaBaru;

alamat=alamatBaru;

}

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

//ini contoh fungsi

String ambilNama(){

Page 7: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

//mengembalikan nilai mengunakan kata kunci return

return nama;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Selanjutnya kita panggil dengan perintah seperti dibawah ini:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class PangilParameterLebihDariSatu {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia m=new Manusia();

m.ubahNama("asep", "jakarta");

String nama=m.ambilNama();

String alamat=m.ambilAlamat();

System.out.println(nama);

System.out.println(alamat);

}

Page 8: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

}

2.3. Kata kunci this

Kata kunci ini digunakan dalam sebuah class,dan dinyatakan untuk objecksekarang.Contohnya jika kita membuat parameter yang sama dengan nama attribute pada kelas tersebut,jika kita membuat parameter itu untuk merubah attribute pada kelas,maka perubahan tidak akan terjadi contohnya jika pada program tersebut kita ganti dengan.

void ubahNama(String nama,String alamat){

nama=nama;

alamat=alamat;

}

Maka program akan mengeluarkan nilai null,yang artinya perubahan nama dan alamat tidak terjadi.

Kenapa?

Karena jika kita membuat sebuah parameter yang sama dengan nama attribute kemudian kita memangil nama attribute tersebut,sebenarnya bukan attribute yang kita panggil melainkan parameter.

Agar kesalahan tersebut tidak terjadi maka diperlukan kata kunci this, yang digunakan untuk menyatakan objeck tersebut,jadi potongan program diatas harusnya sbb:

void ubahNama(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

Sehingga apabila kita jalankan akan menghasilkan keluaran seperti kita membuat nama attribute dan parameter yang berbeda.

2.4. Visibilitas private dan public

Java mempunyai 4 visibilitas yaitu:

Visibilitas Keterangan

Private Hanya dapat diakses oleh kealas itu

Page 9: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

sendiri

Public Dapat diakses oleh seluruh kelas

Protected Hanya dapat diakses oleh kelas itu sendiri dan turunannya saja

Tanpa visibilitas Hanya dapat diakases oleh kelas- kelas yang berada dalam satu pekage

Saat ini akan dibahas tentang private dan public ,untuk protected akan dibahas setelah pecage dan untuk tanpa visibilitas akan dibahas setelah pewarisan

Visibilitas private merupakan visibilitas yang dapat digunakan pada attribute,metode,ataupun kelas.gunanya visibilitas ini adalah untuk menyembunyikan attribute,metode atau kelas.atribute metode atau kelas yang mengunakan visibilitas hanya dapat digunakan olehobjek itu sendiri.

Contoh untuk private:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class Manusia {

private String nama;

String alamat;

//metode dengan parameter lebih dari satu

void ubahNama(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

Page 10: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

//ini contoh fungsi

String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

return nama;

}

String ambilAlamat(){

return alamat;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Apabila kita melakukan pemangilan seperti diatas :

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class PangilManusia {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia manusia=new Manusia();

manusia.nama="asep komarudin";

Page 11: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

String nama=manusia.ambilNama();

System.out.println(nama);

}

}

Maka akan terjadi error pada bagian kode yang saya beri tanda blok kuning diatas.artinya attribute nama pada kelas manusia tidak bisa diakses oleh kelas panggiManusia.

Contoh pengnaan visibilitas public:

package asep.moduljavadasar;

/**

*

* @ au t hor asep teea

*/

public class Manusia {

private String nama;

String alamat;

//metode dengan parameter lebih dari satu

public void ubahNama(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

//ini contoh fungsi

public String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

Page 12: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

return nama;

}

String ambilAlamat(){

return alamat;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Dengan demikian untuk mengakses atribut nama, sekarang kita bisa mengunakn metode ambilnama() yang saya beri tanda kuning.

public class PangilParameterLebihDariSatu {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia m=new Manusia();

m.ubahNama("asep", "jakarta");

String nama=m.ambilNama();

String alamat=m.ambilAlamat();

System.out.println(m.ambilNama());

System.out.println(m.alamat);

}

}

Page 13: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

Keluarannya adalah:

2.5. Konstruktor

Konstruktor merupakan metode yang secara otomatis dipanggil ketika sebuah objek dipanggil.cara membuat metode konstuktor adalah,nama metode harus sama dengan nama kelas dan tidak mengembalikan nilai balik dan tidak menggunakn kata kunci void.

Contoh:

public class Manusia {

private String nama;

String alamat;

public Manusia() {

System.out.println("konstruktor telah dibuat");

}

//metode dengan parameter lebih dari satu

public void ubahNama(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

//ini contoh fungsi

public String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

return nama;

Page 14: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

}

String ambilAlamat(){

return alamat;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Dengan demikian saat membuat objek manusia maka konstruktor tersebut akan otomatis dipanggil.

Contoh:

public class PangilConstruktor {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia m=new Manusia();

}

}

Maka keluarannya adalah:

Konstruktor juga mendudukan parameter misalakn pada objek manusaia diatas.

public class Manusia {

private String nama;

String alamat;

Page 15: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

public Manusia(String nama, String alamat) {

this.nama = nama;

this.alamat = alamat;

}

//metode dengan parameter lebih dari satu

public void ubahNama(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

//ini contoh fungsi

public String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

return nama;

}

String ambilAlamat(){

return alamat;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Apabila kita panggil caranya sbb:

Page 16: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

public class PangilConstruktor {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia m=new Manusia("asep teea", "ciamis");

System.out.println(m.ambilNama());

System.out.println(m.ambilAlamat());

}

}

Keluarannya adalah:

2.6. Operloading constructor

Operloading merupakan meknisme untuk membuat lebih dari satu buah constructor pada sebuah class.ketentuannya adalah setiap konstruktor harus memiliki parameter yang berbeda ,bisa berbeda jumlah parameternya atau atau berbeda tipe datanya.

Contohnya pada objek manusia diatas:

public class Manusia {

private String nama;

String alamat;

public Manusia() {

System.out.println("konstruktor telah dibuat");

}

public Manusia(String nama, String alamat) {

this.nama = nama;

Page 17: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

this.alamat = alamat;

}

//metode dengan parameter lebih dari satu

public void ubahNama(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

//metode dengan parameter untuk ubah nama

void ubahNama(String namaBaru){

nama=namaBaru;

}

//ini contoh fungsi

public String ambilNama(){

//mengembalikan nilai mengunakan kata kunci return

return nama;

}

String ambilAlamat(){

return alamat;

}

//ini contoh prosedur

void hapus(){

nama="";

}

}

Dengan demikian terdapat dua cara untuk membuat objek dari kelas manusia yaitu tanpa parameter dan dengan parameter.

Dan jika dijalankan :

Page 18: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

public class PangilConstruktor {

/**

* @ p aram args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia manusia=new Manusia();

Manusia m=new Manusia("asep teea", "ciamis");

System.out.println(m.ambilNama());

System.out.println(m.ambilAlamat());

}

}

Keluarannya adlah:

2.7. Operloding Metode

Selain pada konstruktor operloding jiga bisa dilakuan pada metode,misalkan kita akan membuat dua buah metode ubah,metode pertama mengunakan parameter nama dan metode yagn kedua mengunakan metode nama dan alamat.

public class Manusia {

private String nama;

private String alamat;

public Manusia( ) {

}

public Manusia(String nama, String alamat) {

Page 19: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

this.nama = nama;

this.alamat = alamat;

}

public void ubah(String nama){

this.nama=nama;

}

public void ubah(String nama,String alamat){

this.nama=nama;

this.alamat=alamat;

}

}

Dengan begitu kita bisa mengunakan metode ubah untuk memngubah nama atupaun merubah nama dan alamat.

public class PangilManusia {

/**

* @p a r a m args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Manusia manusia=new Manusia();

manusia.ubah("asep");

manusia.ubah("asep komarudin", "jakarta");

}

}

2.8. Pewarisan kelas

pewarisan merupakan mekanisme sebuah kelas yang dapat mewarisi seluruh atribute atau metode dari kelas lain dengan ketentuan tertentu.

Page 20: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

Misalakn ada kelas orang dengan atribute nama dan alamat dan kelas pegawai dengan atribute nip,nama dan alamat.

public class Orang {

private String nama;

private String alamat;

public String ambilAlamat() {

return alamat;

}

public void rubahAlamat(String alamat) {

this.alamat = alamat;

}

public String ambilNama() {

return nama;

}

public void rubahNama(String nama) {

this.nama = nama;

}

}

public class Pegawai {

private String nip;

private String nama;

private String alamat;

public String ambilAlamat() {

return alamat;

Page 21: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

}

public void rubahAlamat(String alamat) {

this.alamat = alamat;

}

public String ambilNama() {

return nama;

}

public void rubahNama(String nama) {

this.nama = nama;

}

public String ambilNip() {

return nip;

}

public void rubahNip(String nip) {

this.nip = nip;

}

}

Pada baris kode diatas bisa dibandingkan kelas orang dan pegawai memiliki atribute dan metode yang sama ,artinya banyak terjadi duplikasi kode oleh karena itu sebaiknya kelas itu digabungkan mengunakan pewarisan yaitu kelas orang diturunkan kepada kelas pegawai.karena semua atribute yang dimiliki kelas orang dimiliki oleh kelas pegawai.

Untuk mengatakan kelasa x merupakan turunakn kelas Y kita dapat mengunakan kata kunci extendes.dengan begitu kitahanya perlu merubah kelas pegawai menjadi sbb:

public class PegawaiDenganExtendes extends Orang{

private String nip;

Page 22: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

public String ambilNip() {

return nip;

}

public void ubahNip(String nip) {

this.nip = nip;

}

}

Walaupun kelas Pegawai tidak memiliki atribute nama dan alamat, namun sebenarnya setlah mengunakan pewarisan Pegawai tersebut memilikinya.kaena pegawai merupakan turunan dari orang sehingga seluruh sipat yang dimiliki orang maka dimiliki juga oleh pegawai.

2.9. Visibilitas Protected

Atribute,metode atau kelas yang ditandai dengan potected hanya dapat diakses oleh kelas itu sendiri dan kelas turunannya.misalnya paada contoh kelas diatas.

Pada kelas orang visibilitas nama dan alamat adalah vrivate ,artinya hanya keals orang itu saja yang dapat mengakses atribute tersebut,walaupun kelas pegawai merupakan turunannya kelas orang tapi kelas pedawai tidak dapat mengakses atribute nama dan alamat pada kelas orang.

public class PegawaiDenganExtendes extends Orang{

private String nip;

public String ambilNip() {

return nip;

}

public void ubahNip(String nip) {

this.nip = nip;

}

//contoh error jilka keals ini memanggil atribute orang dengan visibilitas private

public void contoh(){

Page 23: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

String ambilnama=nama;

}

}

Pada potongan code yang saya berikan tanda kuning itu adalah pemangggilan atribute nama dari kelas orang,karena atribue nama menggunakan visibilitas private pasti akan muncul error,artinya tidak bisa diakses.

Jika atribute nama dan alamat diatas ingin kita panggil maka gunakanlah visibilitas protected,krena ketentuan visibilitas protected dapat diakses oleh kelas itu sendiri dan turunannya.

public class Orang { protected

String nama; protected

String alamat; public String

ambilAlamat() {

return alamat;

}

public void rubahAlamat(String alamat) {

this.alamat = alamat;

}

public String ambilNama() {

return nama;

}

public void rubahNama(String nama) {

this.nama = nama;

}

}

Dan jika di panggil tentunya tidak terjadi error

public class PegawaiDenganExtendes extends Orang{

Page 24: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

private String nip;

public String ambilNip() {

return nip;

}

public void ubahNip(String nip) {

this.nip = nip;

}

//contoh pemangilan yang berhasil

public void contoh(){

String ambilnama=nama;

String ambilalamat=alamat;

}

}

2.10. Overriding

Operriding tidak sama dengan operloading,operriding adalah mekanisme sebuah metode yang dapat dideklarasikan ulang pada kelas turunannya.

Misalkan ada duabuah kelas yaitu anak dan orangtua pada kelas anak terdapt metode kerja yang memerintahkan untuk bekerja.

public class Anak {

public void kerja(){

System.out.println("tidakmau tugas saya belajar!!!");

}

}

Dan kelas orangtua merupakan kelas turunan dari anak

public class Orangtua extends Anak{

Page 25: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

}

Setelah itu jika kita coba buat sebuah objek kelas orangtua yang menyuruh untuk bekkerja.

public class JalankanOperriding {

/**

* @p a r a m args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Orangtua orangtua=new Orangtua();

orangtua.kerja();

}

}

Dan jika kita jalankan maka hasilnya:

artinya metode kerja yang dipanggil sebenarnya adalah milik anak,yang pastinya tidak mau untuk bekerja,yang mereka inginkan adalah belajar.sekarang jika dianggap kelas orangtua harus bekerja maka kita harus merubah metode kerja()_ tersebut supaya dapat bekerja,caranya adalah dengan mendeklarasikan ulang (overriding).caranya adalah dengan membuat metode yang sama dengan yang dimiliki kelas yang mewariskan.

public class Orangtua extends Anak{

@ O ve r r i d e

public void kerja(){

System.out.println("itu merupakan kewajiban ortu!!");

}

Page 26: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

}

Maka jika dijalankan kembali program tadi hasilnya:

2.11. Kata kunci super

super merupakan kata kunci yang digunakn untuk mengakses kelas parent(yang diturunkan),misalkan jika kita mengunakan kata super pada kelas orang tua artinya kelas tersebut merujuk pada kelas anak.

public class Orangtua extends Anak{

public void kewajibanAnak(){

super.kerja();

}

public void kerja(){

System.out.println("itu merupakan kewajiban ortu!!");

}

}

Dan kita pangil

public class JalankanOperriding {

/**

* @p a r a m args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Orangtua orangtua=new Orangtua();

orangtua.kerja();

Page 27: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

orangtua.kewajibanAnak();

}

}

Dan jika dijalankan hasilnya:

kata kunci super dapat digunakan juga untuk mengakses konstruktor milik kelas yang diwariskan.

Contoh:

public class Karyawan {

private String nama;

public Karyawan() {

}

public Karyawan(String nama) {

this.nama = nama;

}

public String ambilNama() {

return nama;

}

}

public class Perusahaan extends Karyawan{

private String alamat;

public Perusahaan(String alamat,String nama) {

super(nama);

Page 28: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

this.alamat = alamat;

}

public String ambilAlamat() {

return alamat;

}

}

2.12. Kata kunci final

Final merupakan kata kunci yang digunakan untuk menandai bahwa suatu atribute, metode atau kelas final bermakana tidak bisa diubah lagi.

Lokasi final keterangan

atribut Atribut tidak dapat di deklarsikan lagi

variable Variable tidak dapat dideklarsikan lagi

metode Metode tidak dapat dideklarasikan lagi(operriding)

kelas Kelas tidak dapat diturunkan

Jika kita membuat sebauah atribut dengan kata kunci final maka atribute tersebut harus langsung dideklarsikan,contoh:

public class ContohFinal {

public final String nama="asep";

}

Jika tidak dideklarasikan langsung maka akan terjadi error.contoh error

Page 29: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

2.13. Kelas abstract

Kelas abstract merupakan kelas yang memiliki metode-metode namun tidak dideklarasikan,pendeklarsiannya terjadi pada kelas turunannya.Untuk membaut kelas abstaract sama dengan membuat kelas biasanya namun diawali dengan kata kunci abstarct pada kelasnya dan diawali dengan kata kunci abstract pada metode yang akan dibuat

namun tidak akan dideklarasikan.

Misalkan kita akan membuat keals abstaract mahlukHidup,turunannya dalah manusia,hewan,tumbuhan.kelas mahluk hidup memiliki metode bicara() yang menyuruh mahlukhidup itu bicara maka kita buat metode bicara menjadi abstract.

Pangil manusia:

pangil hewan:

Page 30: Pertemuan 6(Konsep Pemrograman Objek)

a a ss ee pp @g m a i l . c o m

Modul Pelatihan Java Dasar Asep Komarudin

panggil tumbuhan:

jika keals turunan tidak mendeklarasikan metode bicara maka akan terjadi error,kecuali kelas tersebut juga kelas abstract.

2.14. Polimorpisme

polimorpisme adalah kemampuan sebuah kelas memiliki banyak kelas turunan.Setiap kelas memiliki deklarsi masing-masing yang unik dan dapat berbagi fungsionalitas yang sama dengan kelas parent(yang diturunkan).

Contoh kita coba jalankan program diatas:

keluarannya adalah: