• Tidak ada hasil yang ditemukan

Pertemuan 1 (PBO, Enkapsulasi, Pewarisan)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pertemuan 1 (PBO, Enkapsulasi, Pewarisan)"

Copied!
13
0
0

Teks penuh

(1)

PEMROGRAMAN BERBASIS OBJEK

TEKNIK

INFORMATIKA

POLITEKNIK

KEDIRI

SELVIA FERDIANA KUSUMA,S.KOM.,M.KOM

TAHUN 2017-2018

(2)

1.1 PENGERTIAN PEMROGRAMAN BERBASIS OBJEK (PBO)

PBO adalah sebuah konsep pemrograman yang membuat kode program lebih terstruktur dan terkelompok berdasarkan objek sehingga bagian-bagiannya dapat digunakan lagi untuk pembuatan aplikasi lain. PBO membagi kode program menjadi kumpulan bungkusan benda/objek.

1.2 PERBEDAAN DENGAN PEMROGRAMAN PROSEDURAN (PP)

Konsep Pemrograman Prosedural (PP), yaitu pemrograman yang dilakukan berdasarkan pembagian proses yang dibutuhkan. PP telah dipelajari pada mata kuliah sebelumnya yakni Algoritma dan Pemrograman.

1.3 ILUSTRASI

1.4 SYARAT UMUM BAHASA PEMROGRAMAN BERBASIS OBJEK

Konsep PBO dapat dinyatakan dalam tiga sub kategori, yakni: enkapsulasi, pewarisan, dan polimorfisme.

1. Enkapsulasi

Bertujuan agar kode program dapat membungkus atribut dan method dalam sebuah kelas sehingga dapat mencegah pengaksesan langsung atribut dan method yang ingin dilindungi dalam sebuah kelas, misalkan membungkus (mengkapsulasi) method- method.

BAB 1

(3)

2. Pewarisan

Bertujuan agar kode program dimungkinkan memiliki pendefinisian kelas baru yang memiliki sifat-sifat turunan dari kelas lain.

3. Polimorfisme

Bertujuan agar kode program dimungkinkan mampu membuat pengaksesan metode-metode dengan nama yang sama namun berbeda parameter masukan atau berbeda kelas.

1.5 KELAS

Kelas di dunia nyata dapat dianalogikan sebagai kelas yang sebenarnya atau ruangan. Kelas digunakan untuk mengelompokkan komponen-komponen dengan kriteria tertentu yang hampir sama dimiliki semua anggota kelas. Contohnya, kelas 1 diperuntukkan untuk anak usia 6-7 tahun sedangkan kelas 6 diperuntukkan untuk anak usia 11-12 tahun.

Kelas di dunia pemrograman digunakan untuk mengelompokkan sekumpulan benda/ proses. Sebuah file dapat terdiri dari beberapa kelas, namun umumnya pada java, satu file terdiri dari satu kelas.

Perbedaan kelas dengan sebuah struktur pada pemrograman prosedural adalah:

1. Sebuah kelas dapat berdiri sendiri dan dapat dipergunakan untuk berbagai keperluan lain

2. Sebuah struktur tidak dapat berdiri sendiri sehingga tidak dapat dipergunakan untuk keperluan lain

3. Sebuah kelas lebih fleksibel untuk digunakan oleh kelas lain tanpa harus membongkar kode program utama (main). Hal ini bertolak belakang dengan pemrograman struktrual dimana diharuskan membongkar dan menyalin bagian struktural untuk digunakan di program utama lain.

(4)

1.6 PERBEDAAN KELAS DAN OBJEK

NO KELAS OBJEK

1 adalah tulisan kode program kelas yang ditulis oleh programmer

objek adalah kelas yang telah dieksekusi dan dijalankan menjadi program komputer yang sudah siap digunakan

2 sebagai sebuah file yang berisi kode program

objek tidak dapat dilihat bentuknya karena objek dijalankan di dalam proses komputer 3 masih dalam bentuk kode, namun

saat kode dieksekusi disebut dengan objek.

Objek adalah elemen pada saat runtime yang akan diciptakan, dimanipulasi, dan dihancurkan

1.7 IMPLEMENTASI KELAS DAN OBJEK

Berikut ini adalah contoh kode pembuatan kelas Hello: class Hello {

public static void main(String[] args) { String kata;

kata = "Hello World"; System.out.println(kata); }

}

Kode tersebut bertujuan untuk membuat kelas Hello dengan atribut kata. Setelah dieksekusi, terbentuklah objek Hello.

1.8 LATIHAN BAB 1

1. Buatlah sebuah kelas bernama makan dengan atribut siang dengan nilai ayam goreng. 2. Buatlah sebuah kelas bernama informatika dengan atribut kelas dengan nilai 1A

1.9 REFERENSI

(5)

2.1 DEFINISI

Enkapsulasi dapat dianggap sebagai sebuah bungkusan. Enkapsulasi inilah yang diimplementasikan dalam sebuah kelas di mana didalamnya terdiri dari atribut dan method yang dibungkus. Enkapsulasi pada sebuah kelas bertujuan untuk melindungi atribut dan method yang ada di dalam kelas agar tidak sembarang diakses.

2.2 KONSTRUKTOR

Sebuah kelas harus memiliki sebuah method yang disebut sebagai konstruktor. Nama sebuah konstruktor harus sama dengan nama dari sebuah kelas. Konstruktor harus bersifat public karena akan diakses oleh kelas lain. Sebuah konstruktor dapat menerima masukan dapat pula berisi inisialisasi atau tidak berisi apa-apa. Suatu kelas dapat memiliki konstruktor lebih dari satu. Pada saat eksekusi, compiler akan mencari konstruktor mana yang sesuai dengan konstruktor yang dipanggil.

Contoh konstruktor: public class Buku {

……

Buku() { //konstruktor

}

Buku(String j, String p) { //konstruktor dengan parameter masukan

…… }

}

2.3 METHOD

Method pada PBO sama dengan method pada pemrograman prosedural yakni terdiri dari fungsi dan prosedur. Pada sebuah method dalam kelas juga memiliki izin akses antara lain Private, Public, Protected. Sebuah kelas boleh memiliki lebih dari satu method dengan nama yang sama (overloading) asalkan memiliki parameter masukan yang berbeda. Pada pemrograman Java, dalam sebuah kelas terdapat method statis yang memiliki kata kunci

“static”. Artinya, method ini dapat diakses tanpa harus membuat objek terlebih dahulu (tidak

perlu ada proses new). Akan tetapi method statis hanya dapat mengakses atribut atau method lain di dalam kelas yang membungkusnya yang juga bersifat statis.

2.4 ATRIBUT

Atribut merupakan variabel global yang dimiliki oleh sebuah kelas. Contoh: public class Buku {

public String judul; private String pengarang; Buku() {

} }

Dari contoh diatas, judul dan pengarang adalah atribut yang bertipe string. Izin akses pada atribut dapat berbeda, macam-macam izin akses atribut antara lain: private, public, dan protected.

BAB 2

(6)

1. Private

Izin akses private pada sebuah atribut digunakan oleh kelas untuk melindungi atribut-atributnya diakses kelas lain. Sebuah atribut dinyatakan private hanya dapat diakses secara langsung oleh kelas yang membungkusnya. Sedangkan kelas lainnya tidak dapat mengakses atribut ini secara langsung, sehingga diperlukan method untuk mengembalikan nilai. Contoh:

public class Buku {

private String judul = “Modul Pemrograman Berorientasi Objek”; private String pengarang = “Tim Dosen Politeknik Kediri”; Buku() {

}

String getJudul() { // method untuk mengembalikan nilai return this.judul;

}

String getPengarang() { // method untuk mengembalikan nilai return this.Pengarang;

} }

Pada kode tersebut, atribut judul dan pengarang hanya bisa diakses pada kelas buku. Sehingga jika kelas lain ingin mengakses atribut tersebut diperlukan method untuk mengembalikan nilai judul dan pengarang. Sehingga di kelas yang akan mengaksesnya ditulis kode sebagai berikut:

Buku b = new Buku (); String jdl = b.getJudul(); String pgrg = b.getPengarang();

2. Public

Izin akses public pada sebuah atribut digunakan oleh kelas jika atribut-atributnya boleh diakses kelas lain. Sebuah atribut public bisa diakses secara langsung oleh kelas yang membungkusnya maupun kelas yang lainnya. Contoh:

public class Buku {

public String judul = “Modul Pemrograman Berorientasi Objek”; String pengarang = “Tim Dosen Politeknik Kediri”;

Buku() { }

}

Pada kode tersebut, atribut judul dan pengarang bersifat public. Atribut yang tidak dicantumkan izin akses maka dianggap berizin public. Sehingga jika kelas lain ingin mengakses atribut tersebut dapat ditulis kode sebagai berikut:

...

Buku b = new Buku(); String jdl = b.judul; String pgrg = b.pengarang; ...

3. Protected

(7)

Contoh:

public class Buku {

protected String judul = “Modul Pemrograman Berorientasi Objek”; protected String pengarang = “Tim Dosen Politeknik Kediri”; Buku() {

} }

Pada kode tersebut, atribut judul dan pengarang bersifat protected sehingga yang dapat mengakses adalah kelas turunan dari kelas Buku. Mengenai kelas turunan akan dijelaskan lebih lanjut pada bab selanjutnya.

2.5 IMPLEMENTASI

Berikut ini contoh implementasi enkapsulasi dengan atribut private dan public untuk kasus titik koordinat 2D:

public class Titik { private int x;

public void setX(int xp) { x = xp;

}

public int getX() { return x; }

public void setY(int yp) { y = yp;

public class Main {

(8)

Titik t2 = new Titik(11, 9); System.out.println(t2.getX()); System.out.println(t2.getY()); System.out.println(t2.z); }

}

2.6 TUGAS BAB 2

Carilah contoh studi kasus lain yang dapat diselesaikan menggunakan fungsi enkapsulasi!

2.7 REFERENSI

(9)

3.1 DEFINISI PEWARISAN

Pewarisan atau inheritance merupakan sebuah hubungan dua buah kelas atau lebih dimana ada kelas yang memiliki atribut dan method yang sama dengan yang lain disertai atribut dan method tambahan dari sifat khusus kelas yang menjadi turunannya.

3.2 KETENTUAN PEWARISAN

1. Kelas yang menjadi dasar penurunan adalah kelas orang tua atau disebut super class. 2. Kelas yang menjadi turunannya adalah kelas anak atau disebut dengan sub class. 3. Biasanya kelas anak adalah kelas yang lebih khusus dari kelas orang tua.

Contoh: Setiap manusia memiliki atribut berupa nama, alamat, noktp, notelp. Beberapa manusia ada yang menjadi karyawan, dimana karyawan memiliki atribut tambahan seperti nopegawai, jabatan, dan departemen tempat ia bekerja. Berikut ini contoh ilustrasi pewarisan kelas manusia dan karyawan:

Maka secara hirarki dapat digambarkan sebagai berikut:

3.3 IMPLEMENTASI PEWARISAN

Contoh 1: Implementasi pewarisan pada kelas Manusia dan kelas Karyawan.

public class Manusia { private String nama; private String alamat; private String noktp; private String notelp; BAB 3

PEWARISAN

(10)

Manusia(){ }

public void setNama(String nama){ this.nama=nama;

}

public void setAlamat(String alamat){ this.alamat=alamat;

}

public void setNoKTP(String noktp){ this.noktp=noktp;

}

public void setNoTelp(String notelp){ this.notelp=notelp;

}

public String getNama(){ return this.nama; }

public String getAlamat(){ return this.alamat; }

public String getNoKTP(){ return this.noktp;

}

public String getNoTelp(){ return this.notelp; }

}

public class Karyawan extends Manusia{ private String nopegawai;

private String jabatan; private String departemen; Karyawan(){

}

public void setNoPegawai(String nomor){ this.nopegawai=nomor;

}

public void setJabatan(String jabatan){ this.jabatan=jabatan;

}

public void setDepartemen(String dept){ this.departemen=dept;

}

public String getNoPegawai(){ return this.nopegawai; }

(11)

public String getJabatan(){ return this.jabatan; }

public String getDepartemen(){ return this.departemen; }

}

public class Main {

public static void main(String[] args) {

Manusia kmanusia = new Manusia(); kmanusia.setNama("Gina");

(12)

Contoh 2: Implementasi pewarisan pada kelas Titik dan kelas Titik3D.

Jika kelas Titik memiliki koordinat x dan y, maka kelas Titik3D memiliki koordinat x, y, dan z. Secara ilustrasi keterkaitan antar kelas Titik dan kelas Titik3D adalah sebagai berikut:

Dalam pewarisan, kelas dasar (Titik) akan mewariskan semua atribut dan methodnya kecuali konstruktor kepada kelas turunannya. Dengan demikian, kelas turunan dapat mengimplementasikan method yang ada pada kelas dasar.

Contoh:

Jika pada kelas Titik terdapat method getX(), getY(), dan walaupun pada kelas Titik3D (yang merupakan turunan dari kelas Titik) hanya terdapat method getZ(), maka ketika kita memanggil kelas Titik3D semua method tersebut akan dapat diakses. Berikut ini kode lengkap implementasi pewarisan pada kelas Titik dan kelas Titik3D:

public class Titik { private int x; private int y;

Titik() { //konstruktor inisialisasi x = 0;y = 0;

}

Titik(int xp, int yp) { //konstruktor masukan x = xp; y = yp;

}

public void setX(int xp) { //method set nilai x x = xp;

}

public int getX() { //method panggil nilai x return x;

}

public void setY(int yp) { //method set nilai y y = yp; }

public int getY() { //method panggil nilai y return y;}

}

(13)

public class Titik3D extends Titik{ private int z;

Titik3D(){ //konstruktor inisialisasi

z=0; }

Titik3D(int xp, int yp, int zp){ //konstruktor masukan

setX(xp); //set nilai x dengan method setX dari kelas Titik setY(yp); //set nilai y dengan method setY dari kelas Titik

z=zp; //set nilai z

}

public void setZ(int zp){ //method set nilai z z=zp;

}

public int getZ(){ //method panggil nilai z return z;

} }

public class Main {

public static void main(String[] args) {

Titik3D t1 = new Titik3D(); //panggil konstruktor inisialisasi t1.setX(18); //memanggil Method di kelas Titik

t1.setY(28); //memanggil Method di kelas Titik t1.setZ(-9); //memanggil Method di kelas Titik3D

System.out.println(t1.getX()); //memanggil Method di kelas Titik System.out.println(t1.getY()); //memanggil Method di kelas Titik System.out.println(t1.getZ()); //memanggil Method di kelas Titik3D

Titik3D t2 = new Titik3D(2,-3,7); //panggil konstruktor masukan System.out.println(t2.getX()); //memanggil Method di kelas Titik System.out.println(t2.getY()); //memanggil Method di kelas Titik System.out.println(t2.getZ()); //memanggil Method di kelas Titik3D }

}

3.4 TUGAS MODUL 3

Terapkan konsep pewarisan ini untuk studi kasus yang lainnya!

3.5 REFERENSI

Rosa dan Shalahudin, 2010, Modul Pembelajaran Pemrograman Berorientasi Objek, Modula: Bandung

KELAS TITIK3D.JAVA

Referensi

Dokumen terkait

Untuk menggambarkan inheritance atau pewarisan di dalam pemro- graman, pada saat Anda menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan

semua method dan atribut yang terdapat pada kelas induk diturunkan ke kelas turunannya. Namun kelas turunannya dapat menambah method baru atau atribut

Getter merupakan method yang dibuat untuk mengambil atau mengembalikan nilai sebuah atribut kepada pemanggilnya, sedangkan setter merupakan method yang dibuat untuk

Hasil penelitian menunjukkan warna buah masak dikendalikan oleh dua lokus dengan dua alel pada satu lokus dan tiga alel di lokus yang lain atau tiga lokus dengan dua alel per

Tuliskan method pengaksesan data ini di kelas yang sama dengan kelas untuk menuliskan swing (alasan yang sama dengan sebelumnya). d) Panggil method pengaksesan data tersebut

Untuk menggambarkan inheritance atau pewarisan di dalam pemro- graman, pada saat Anda menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika

• Jadi method yang sudah diturunkan dari kelas induk kita (superclass), kita buat lagi dengan nama yang sama tapi dengan isi yang berbeda pada kelas turunan (subclass). • Dalam

Penjumlahan dua buah vektor dilakukan dengan mengimpitkan kedua pangkal vektor tersebut, kemudian buat garis yang panjangnya masing-masing sama dengan panjang