LAPRES PBO MOD 3 2014

17
LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK MODUL III “ABTRAKSI PEMROGRAMAN BERORIENTASI OBYEKDisusun Oleh : LABORATORIUM COMMON COMPUTING JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO MADURA 2014 TGL. PRAKTIKUM : 06 November 2014 NAMA : NABILA SANI FADDIA NRP : 11.04.111.00045 KELAS : A DOSEN : Yonathan Fery H. S.T., M.IT., Disetujui :......./........../............../Bangkalan ASISTEN DOSEN (Doffy Oktaviano Mukit) 12.04.1.1.1.00039

Transcript of LAPRES PBO MOD 3 2014

LAPORAN RESMI

PRAKTIKUM PEMROGRAMAN BERORIENTASI

OBJEK

MODUL III

“ABTRAKSI PEMROGRAMAN BERORIENTASI

OBYEK”

Disusun Oleh :

LABORATORIUM COMMON COMPUTING

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS TRUNOJOYO MADURA

2014

TGL. PRAKTIKUM : 06 November 2014

NAMA : NABILA SANI FADDIA

NRP : 11.04.111.00045

KELAS : A

DOSEN : Yonathan Fery H. S.T., M.IT.,

ASISTEN : Aris Prama Aulia Disetujui :......./........../............../Bangkalan

ASISTEN DOSEN

(Doffy Oktaviano Mukit)

12.04.1.1.1.00039

BAB I

PENDAHULUAN

1.1 LATAR BELAKANG

Pemrograman Berorientasi Obyek merupakan paradigma pemrograman yang

berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini

dibungkus dalam kelas-kelas atau objek-objek. Model data berorientasi objek

dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah

program, dan digunakan luas dalam teknik piranti lunak skala besar. Konsep

dasar dari Pemrograman Berorientasi Objek.

1.2 TUJUAN PRAKTIKUM

1. Mahasiswa dapat memahami Karakteristik Abstraksi PBO

2. Mahasiswa dapat memahami Konsep Inheritance PBO

3. Mahasiswa dapat memahami Konsep Polymorfisme PBO

BAB II

DASAR TEORI

2.1 Abstraksi PBO

Abstraksi, merupakan pengenalan secara umum, ringkasan atau high

level terhadap sebuah obyek, tanpa memerlukan pengetahuan secara

detail. Contoh obyek yang bersifat abstrak : Hewan mengabstraksi

beragam jenis hewan seperti ayam, anjing, kucing, dll. Sehingga kita

bisa menyebut ketiga obyek tersebut adalah hewan, dikarenakan

memiliki kelakuan sebagai hewan, seperti: bisa berjalan, bisa berbunyi.

Ataupun kita bisa menyebut Mobil dimana ada beragam jenis mobil

Sedan, Truk, Bus, dimana ketiga obyek tersebut adalah mobil

dikarenakan mempunyai mesin, bisa berjalan, bisa mengangkut orang

atau barang, dll.

Dalam pemodelan UML Class diagram abstraksi obyek dapat digambarkan

sebagai berikut:

Dari model Class diagram diatas dapat diuraikan Car sebagai Superclass

memiliki berbagai atrbut yang dapat diwariskan kepada obyek Subclass

berbagai jenis Car seperti halnya mobil Manual dan Matic. Selain

mewarisi atribut, mobil Manual dan Matic harus memiliki fungsional

dasar yang harus ada untuk dikatakan sebagai Car yaitu bisa start, stop,

accelerate dan breakdown. Namun dikarenakan tiap obyek turunan Subclass

memiliki ciri dan kerja yang spesifik dan berbeda antara satu dengan

yang lainnya maka kedua obyek Manual dan Car bisa menentukan

bagaimana cara kerjanya masing-masing.

Karena itu dalam konsep OOP, karakteristik abstraksi obyek didukung

melalui penerapan konsep utama OOP yaitu inheritance dan

polimorfisme. Melalui inheritance digunakan untuk mewariskan berbagai

atribut dan fungsional dasar, sedangkan melalui polimorfisme digunakan

untuk dapat melakukan modifikasi dan pengembangan dari fungsional

yang sudah ditetapkan.

Untuk realisasi dari abstraksi obyek sendiri, dapat digunakan dua metode

yaitu:

Abstrak

Interface

Obyek abstract terdiri atas methode abstract sebagai jalur pengaksesan

yang akan diimplementasikan oleh berbagai obyek turunannya, selain itu

obyek abstract dapat dibekali dengan beragam konten properti atribut dan

methode yang dapat diwariskan, dikembangkan dan dimodifikasi oleh obyek

turunannya. Dengan konsep tersebut obyek abstract didukung secara penuh

Inheritance dan Polymorfisme obyek. Berikut aturan dari obyek Abstract:

1. Dapat memiliki keseluruhan property dan mewariskannya kepada

obyek turunannya

2. Abstract methode merupakan kontrak yang harus dipenuhi oleh obyek

turunan

3. Tidak dapat dibangun instance dari Superclass, sehingga Superclass

hanya sebagai prototype. Implementasi melalui instance hanya bisa

dilakukan pada subclass.

4. Obyek turunan subclass ditujukan sebagai obyek implementator untuk

melakukan perubahan cara kerja dan pengembangan obyek.

Sistematika penulisan kelas Superclass abstract :

<modifier> abstract class <Class_name>

Sedangkan obyek turunan subclass :

<modifier> class <Class_name> extends <Superclass>

2.2 Inheritance

Inheritance merupakan pewarisan atribut dan method pada sebuah class yang

diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan

mewarisi state (variabel-variabel) dan behaviour (method-method) dari

superclass-nya. Subclass kemudian dapat menambahkan state dan

behaviour baru yang spesifik dan dapat pula memodifikasi (override)

state dan behaviour yang diturunkan oleh superclass-nya.

Keuntungan dari inheritance adalah :

1. Subclass mewarisi semua property yang terdapat didalam Superclass

2. Subclass menyediakan state/behaviour yang spesifik yang

membedakannya dengan superclass, hal ini akan memungkinkan

programmer Java untuk menggunakan ulang source code dari

superclass yang telah ada.

3. Pewarisan yang mengikat sesuai kontrak menggunakan abstract class

Keywords inheritance yang perlu diperhatikan :

Extends : Keyword ini harus kita tambahkan pada definisi class

yang menjadi subclass yang menunjukkan sebagai obyek pewaris.

Super : Keyword ini digunakan oleh subclass untuk mengakses

properti yang telah disediakan oleh superclass.

Sistematika penulisan kelas Superclass abstract :

<modifier> class <Class_name> extends <Superclass>

2.3 Polymorfisme

Polymorfisme merupakan konsep OOP yang ditujukan untuk melakukan

perubahan pada methode implementator di subclass terhadap methode

yang telah diwariskan dari superclass.

Melalui konsep ini maka polymorfisme juga terkait dengan inheritance,

dimana pengembangan obyek dapat dilakukan dengan dinamis dengan

tetap dapat menggunakan ulang properti yang telah diwariskan. Kata kunci

dari polymorfisme adalah @override, yang menggunakan notifikasi @

sebagai penanda bahwa methode yang dituliskan setelahnya dalah sebuah

methode warisan yang dilakukan perubahan fungsi kerjanya.

Sistematika penulisan kelas Superclass abstract :

@override

<modifier> <methode_name>

2.4 Implementas abstrak class

Berikut contoh penerapan abstract class sebagai superclass, class Car:

Sedangkan subclass turunan yang menerapkan inheritance dan polymorfisme

class Manual :

class matic :

Bentuk yang lain dari abstraksi adalah Interface, dimana Interface

merupakan abstraksi dengan bentuk yang lebih sederhana. Berikut ketentuan

Interface:

1. Interface hanya digunakan sebagai pengantar atau penghubung sebuah

obyek, sehingga bukan obyek itu sendiri. Karena itu interface tidak

memiliki propertilengkap namun hanya kontrak methode.

2. Interface diimplementasikan melalui berbagai kelas implementator,

yang terikat harus memiliki kontrak methode sebagaimana telah

ditentukan interface.

Contoh Interface:

Sedangkan kelas implementator:

BAB III

TUGAS PENDAHULUAN

3.1 Pertanyaan

1. Apa yang dimaksud dengan karakteristik abstraksi obyek…?

2. Apa yang dimaksud dengan Interface…?

3. Apa yang dimaksud dengan inheritance…?

4. Apa yang dimaksud dengan polymorfisme…?

3.2 Jawab

1. Karakteristik Abstraksi obyek : kareketristik yang digunakan untuk

mewariskan berbagai atribut dan fungsional dasar, melalui

polimorfisme yang digunakan untuk dapat melakukan modifikasi dan

pengembangan dari fungsional yang sudah ditetapkan.

2. Interface adalah jenis khusus dari blok yang hanya berisi method

signature(atau constant). Interface mendefinisikan sebuah (signature) dari

sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah

cara standar dan umum dalam menetapkan sifat-sifat dari class-class.

3. Inheritance (pewarisan) adalah keuntungan besar dalam pemrograman

berbasis object karena suatu sifat atau method didefinisikan dalam

superclass, sifat ini secara otomatis diwariskan dari semua subclasses.

Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat

digunakan oleh semua subclass. Subclass hanya perlu

mengimplementasikan perbedaannya sendiri dan induknya.

4. Polimorfisme adalah proses kebanyakrupaan, artinya kita dapat

mengimplementasikan sesuatu hal yang berbeda melalui satu cara yang

sama. untuk mengerti hal ini saya akan berikan ilustrasi nya : misalnya

terdapat 5 orang penyanyi(didalam program dianggap sebagai 5 buah

objek), kemudian kelimanya kita perintahkan untuk bernyanyi, maka hasil

atau implementasinya tentu akan berbeda sesuai dengan karakteristik suara

dari masing-masing penyanyi tersebut. Dalam OOP, hal ini disebut dengan

istilah polimorfisme.

BAB IV

IMPLEMENTASI

4.1 Pertanyaan

1. Dari ilustrasi berikut buatlah konsep abstraksinya:

Dalam kehidupan kampus terdapat obyek-obyek Civitas yang berinteraksi

yaitu diantaranya: Dosen, Mahasiswa dan Staff.

Civitas memiliki atribut umum:

Nama

Nid

Prodi

Sedangkan mereka memiliki fungsi dan perilaku yang berbeda:

Pekerjaan

Jam

Class diagram :

2. Jelaskan bagaimana proses penggunaan dari abstraksi obyek dari program

yang anda kembangkan !

4.2 Jawab

1. Class Civitas

public abstract class Civitas {

String nama;

String nid;

String prodi;

public Civitas(String nama, String nid, String prodi) {

this.nama = nama;

this.nid = nid;

this.prodi = prodi;

}

public String getNama() {

return nama;

}

public String getNid() {

return nid;

}

public String getProdi() {

return prodi;

}

public abstract void masukKerja();

public abstract void pekerjaan();

}

Class Dosen

public class Dosen extends Civitas {

String bidangMinat;

String riset;

public Dosen(String bidangMinat, String riset, String nama, String nid, String prodi) {

super(nama, nid, prodi);

this.bidangMinat = bidangMinat;

this.riset = riset;

}

public String getBidangMinat() {

return bidangMinat;

}

public String getRiset() {

return riset;

}

@Override

public void masukKerja() {

System.out.println("Pukul 10.00 WIB");

}

@Override

public void pekerjaan() {

System.out.println("Dosen");

}

}

Class Mahasiswa

public class Mahasiswa extends Civitas {

String bidangMinat;

public Mahasiswa(String bidangMinat, String nama, String nid, String prodi) {

super(nama, nid, prodi);

this.bidangMinat = bidangMinat;

}

public String getBidangMinat() {

return bidangMinat;

}

@Override

public void masukKerja() {

System.out.println("Pukul 08.00 WIB");

}

@Override

public void pekerjaan() {

System.out.println("Mahasiswa");

}

}

Class Staff

public class Staff extends Civitas {

String fungsional;

public Staff(String fungsional, String nama, String nid, String prodi) {

super(nama, nid, prodi);

this.fungsional = fungsional;

}

public String getFungsional() {

return fungsional;

}

@Override

public void masukKerja() {

System.out.println("Pukul 07.30 WIB");

}

@Override

public void pekerjaan() {

System.out.println("Staff ");

}

}

Class Main

public class Main {

public static void main(String[] args) {

System.out.println("==========Dosen==========");

Dosen ti = new Dosen("Sistem Informasi", "Riset Ilmiah",

"Tika Setyawati", "10036725860023", "Teknik Informatika");

System.out.println("Nama : " + ti.getNama() + "\nNID : " + ti.getNid()

+ "\nProdi : " + ti.getProdi() + "\nBidang Minat : "

+ ti.getBidangMinat() + "\nRiset : " + ti.getRiset());

System.out.print("Masuk kerja : ");

ti.masukKerja();

System.out.print("Pekerjaan : ");

ti.pekerjaan();

System.out.println("\n========Mahasiswa========");

Mahasiswa baru = new Mahasiswa("Digital Multimedia", "Santy Sartika",

"130411100021", "Teknik Informatika");

System.out.println("Nama : " + baru.getNama() + "\nNID : " + baru.getNid()

+ "\nProdi : " + baru.getProdi() + "\nBidang Minat : "

+ baru.getBidangMinat());

System.out.print("Masuk kuliah : ");

baru.masukKerja();

System.out.print("Pekerjaan : ");

baru.pekerjaan();

System.out.println("\n==========Staff==========");

Staff utm = new Staff("Administrasi", "Andi Sulton",

"1009673458002", "Teknik Informatika");

System.out.println("Nama : " + utm.getNama() + "\nNID : " + utm.getNid()

+ "\nProdi : " + utm.getProdi() + "\nFungsional : "

+ utm.getFungsional());

System.out.print("Masuk kerja : ");

utm.masukKerja();

System.out.print("Pekerjaan : ");

utm.pekerjaan();

}

}

Running

2. Pada program abstraksi tersebut, ada 5 kelas yang dibuat antara lain :

Civitas (Sebagai superclass), Dosen, Mahasiswa, Staff (Sebagai Subclass)

dan main untuk pengaksesan beberapa class tersebut.

a. Class Civitas

Pada class Civitas, memiliki kata kunci abstract. Hal ini

dimaksudkan agar semua yang ada dalam kelas Civitas dapat

diturunkan ke class turunannya.

Civitas memiliki atribut umum yaitu : nama, nid dan prodi.

Constructor digunakan untuk menginisialisasi nilai awal pada

atribut-atribut yang dimiliki oleh suatu objek.

Getter pada kelas ini digunakan untuk mengambil nilai

kedalam atribut yang digunakan untuk kelas turunannya.

public abstract void masukKerja();

public abstract void pekerjaan();

Method abstact yang digunakan untuk membedakan antara

objek yang satu dengan objek yang lain. Method tersebut diisi

pada kelas turunannya dan akan diisi sesuai dengan fungsi dan

perilakunya sendiri.

b. Class Dosen

public class Dosen extends Civitas {

Terdapat kata kunci Extend untuk menjelaskan bahwa class

dosen adalah class turunan dari Class Civitas.

Memiliki atribut bidang minat dan riset

Costructor pada dosen fungsinya juga sama seperti pada class

Civitas. super(nama, nid, prodi); kata kunci super

tersebut digunakan untuk menunjukkan bahwa Class Dosen

juga memiliki atribut yang sama seperti Civitas.

Getter digunakan untuk mengambil nilai.

@Override

public void masukKerja() {

System.out.println("Pukul 10.00 WIB");

}

@Override

public void pekerjaan() {

System.out.println("Dosen");

}

Pada kelas ini mempunyai method yang diturunkan dari kelas Civitas

yang ditandai dengan “@Override” namun memiliki perilaku yang

berbeda-beda jika dibandingkan dengan class turunan yang lain.

Superclass memiliki beberapa atribut dan method yang nantinya akan

diwariskan kepada subclassnya. Untuk dapat mewariskan sifat-sifatnya,

maka pada class Civitas ditulis Abstract.

Pada subclass, juga memliki beberapa atribut dan method yang

membedakannya dengan subclass yang lain. Pada program tersebut,

method yang dituliskan antara class Dosen, Mahasiswa dan Staff tersebut

memiliki perbedaan satu sama lain.

Kemudian pada Class Main, agar class-class yang dibuat sebelumnya

beserta method dan atributnya dapat diakses, maka dilakukan

pemanggilan dan beberapa modifikasi pada tampilan. Sehingga tampilan

atau outputnya seperti gambar dibawah ini.

BAB V

PENUTUP

5.1 Kesimpulan

Sebelum menulis class Anda, pertama pertimbangkan dimana Anda akan

menggunakan class dan bagaimana class tersebut akan digunakan.

Pertimbangkan pula nama yang tepat dan tuliskan seluruh informasi atau

properti yang ingin Anda isi pada class. Jangan sampai terlupa untuk

menuliskan secara urut method yang akan Anda gunakan dalam class.

5.2 Saran

Pada praktikum kali ini saya rasa sudah cukup baik. Namun,ada beberapa hal

yang perlu diperhatikan,diantaranya yaitu cara menjelaskan atau

penyampaian materinya masih terlalu cepat.Dan penjelasan dari pemateri

(asdos) kurang terperinci.