Anda di halaman 1dari 15

LAPORAN TUGAS PERTEMUAN-7

PBO-1

Dosen : Angga Setiyadi, S.Kom.,M.Kom

Disusun oleh:
Said Dinar Fadilah 10116026

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2017
1. Soal No 1
Pertanyaan

Jelaskan dengan detail apa yang dimaksud dengan polimorfisme.

Jawaban Pertanyaan

Secara harfiah, poli berarti “banyak” dan morph berarti “bentuk”. Jadi,
polimorphisme berarti “mempunyai banyak bentuk”.
Polimorfisme merupakan kemampuan untuk sebuah kelas memiliki banyak kelas
turunan. Setiap turunan memiliki deklarasi masing-masing yang unik dan dapat
berbagi fungsionalitas yang sama dengan kelas parent/superclass(yang
diturunkan).
Untuk mempermudah dalam memahami konsep polimorfisme, marilah kita ambil
sebuah contoh. Misalnya, kita memiliki sebuah kelas induk dengan nama
Penyanyi, yang akan diturunkan lagi menjadi kelas penyanyi dangdut, penyanyi
pop.
Sebagai contoh, ada kelas A yang diturunkan menjadi kelas B,C, dan D. Dengan
konsep Polimorfisme, anda dapat menjalankan method – method yang terdapat
pada kelas B,C, dan D hanya dari objek yang diinstansiasi dengan kelas A.
Polimorfisme memungkinkan anda mengenali kesamaam diantara kelas yang
berbeda.

2. Soal No 2
Pertanyaan

Gambarkan dan jelaskan konsep polimorfisme dalam bahasa pemrograman java.

1
Jawaban Pertanyaan

Class Penyanyi yang merupakan class induk (superclass) dari class PenyanyiJazz,
PenyanyiPop dan PenyanyiDangdut mempunyai method Bernyanyi(). Class-class
anak (subclass) juga mempunyai method Bernyanyi(). Meskipun keempat class
tersebut mempunyai nama method yang sama, tetapi isi (source code/yang
dilakukan/output) dari masing-masing method tersebut berbeda. Jika
menginginkan sebuah objek yang dapat memanggil setiap method yang ada pada
setiap class (pada superclass maupun subclass), maka gunakanlah
teknik Polimorfisme. Polimorfisme hanya berlaku pada method dan tidak berlaku
untuk atribut. Untuk mendapatkan operasi polimorfisme dari suatu method, maka
method tersebut haruslah merupakan method yang ada di class induk (lihat
diagram diatas bahwa method Bernyanyi() selain terdapat di class-class turunan
class Penyanyi, juga terdapat di class Penyanyi).
Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah
:
1. Method yang dipanggil harus melalui variabel dari superclass.
2. Method yang dipanggil harus juga menjadi method dari super class.
3. Signature method harus sama baik pada superclass maupun subclass.
4. Method access attribute pada subclass tidak boleh lebih terbatas dari super
class.

2
3. Soal No 3
Pertanyaan

Mengapa kita membutuhkan konsep polimorfisme dalam pemrograman java,


jelaskan secara detail dan buatlah contoh kasusnya(tanpa menggunakan
polimorfisme dan menggunakan polimorfisme).

Jawaban Pertanyaan

Karena mempunyai keuntungan sebagai berikut :


1. Kita dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas)
dan membuat kelas kelas baru berdasar superkelas tersebut dengan
karakteristik yang lebih khusus dari behaviour umum yang dimiliki
superkelas.
2. kita dapat membuat super kelas yang hanya mendefinisikan behaviuor
namun tidak memberikan implementasidari metode-metode yang ada.Hal
ini berguna jika kita ingin membuat semacam template kelas,kelas
semacam ini disebut kelas abstrak karena behaviournya masih abstrak dan
belum diimplementasikan.subkelas-subkelas dari kelas semacam ini yang
disebut kelas konkret,mengimplementasikan behaviuor abstrak tersebut
sesuai dengan kebutuhan masing-masing.
3. Menghindari duplikasi object,kita dapat menciptakan class baru dari class
yang sudah ada,sehingga tidak perlu menuliskan code dari nol ataupun
mengulangnya, namun tetap bisa menambahkan attribute dan atau method
unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali
polymorphism disebut dalam istilah satu interface banyak aksi.

Jawaban Listing Program


No Listing Program
1. //Contoh kasus Menggunakan polimorfisme
2. //mendeklarasikan kelas induk
3. class penyanyi
4. {
5. public void bernyanyi()

3
6. {
7. System.out.println("Karakteristik nadanya" + "belum didefinisikan");
8. }
9. }
10. class penyanyijazz extends penyanyi
11. {
12. public void bernyanyi()
13. {
14. System.out.println("Bernyanyi dengan irama Jazz");
15. }
16. }
17. class penyanyipop extends penyanyi
18. {
19. public void bernyanyi()
20. {
21. System.out.println("Bernyanyi dengan irama Pop");
22. }
23. }
24. class penyanyidangdut extends penyanyi
25. {
26. public void bernyanyi()
27. {
28. System.out.println("Bernyanyi dengan irama Dangdut");
29. }
30. }
31. public class LatPolimorfisme {
32. public static void main(String[] args) {
33. penyanyi p;
34.

4
35. penyanyijazz udin = new penyanyijazz();
36. penyanyipop asep = new penyanyipop();
37. penyanyidangdut nella = new penyanyidangdut();
38. p = udin; p.bernyanyi();
39. p = asep; p.bernyanyi();
40. p = nella; p.bernyanyi();
41. }
42. }

Layar Keluaran Program Menggunakan Polimorfisme

No Listing Program
1. //Contoh kasus Tanpa Menggunakan polimorfisme
2. class penyanyi
3. {
4. public String PenyanyiJazz;
5. public String PenyanyiPop;
6. public String PenyanyiDangdut;
7. }
8. public class LatTanPol {
9. public static void main(String[] args) {
10. penyanyi p1 = new penyanyi();

5
11. p1.PenyanyiJazz = "Bernyanyi dengan irama Jazz";
12. p1.PenyanyiPop = "Bernyanyi dengan irama Pop";
13. p1.PenyanyiDangdut = "Bernyanyi dengan irama Dangdut";
14. System.out.println(p1.PenyanyiJazz);
15. System.out.println(p1.PenyanyiPop);
16. System.out.println(p1.PenyanyiDangdut);
17. }
18. }

Layar Keluaran Program Tanpa Menggunakan Polimorfisme

4. Soal No 4
Pertanyaan

Jelaskan apa yang dimaksud dengan virtual method invocation(VMI).

Jawaban Pertanyaan

Virtual method invocation merupakan suatu method dalam konsep plimorfisme


yang mempunyai syarat harus sudah terjadi suatu teknik polimorfisme dan
overriding. Pada saat obyek yang sudah dibuat tersebut memanggil overridden
method pada parent class, kompiler Java akan melakukan invocation
(pemanggilan) terhadap overriding method pada subclass, dimana yang seharusnya
dipanggil adalah overridden.

6
5. Soal No 5
Pertanyaan

Lakukan analisa dan implementasikan listring code 1 berikut, berdasarkan listing


code 1, print screen layar keluaran serta jelaskan mengapa layar keluaran pada
baris ke 2 dan ke 3 adalah “bernyanyi irama pop” dan “bernyanyi dengan irama
dangdut”.

Jawaban Layar Keluaran Program

Penjelasan Layar Keluaran Program

Penjelasan Baris Penjelasan Listing Program


2 Keluaran ini dihasilakan karena objek pada kelas utama mengacu
pada kelas penyanyi pop yang akan memanggil method yang
terdapat pada kelas penyanyi pop yaitu method bernyanyi yang
isinya“bernyanyi dengan irama pop”.
3 Keluaran ini dihasilakan karena objek pada kelas utama mengacu
pada kelas penyanyi dangdut yang akan memanggil method yang
terdapat pada kelas penyanyi dangdut yaitu method bernyanyi
yang isinya“bernyanyi dengan irama dangdut”.

7
6. Soal No 6
Pertanyaan

Apakah layar keluaran dari listing code 2, berikut ini :

Jawaban Layar Keluaran Program

7. Soal No 7
Pertanyaan

Apakah yang dimaksud dengan kelas abstrak dan kapan kita menggunakan kelas
abstrak dalam bahasa java.

Jawaban Pertanyaan

Kelas abstrak merupakan kelas dimana memiliki metode-metode namun tidak


dideklarasikan, pendeklarasiannya terjadi pada kelas turunannya.untuk membuat
kelas abstrak sama denga membuat kelas biasa, namun diawali dengan kata kunci
abstrak pada metode yang akan dibuat namun tidak akan dideklarasikan. Metode
yang abstrak tidak perlu berisikan deklarasinya.
Penggunaan kelas abstrak adalah ketika suatu obyek belum pasti nilainya(output)/
berbeda-beda maka penggunaan kelas abstrak harus digunakan. Seperti suara
hewan yang belum pasti di buat menjadi kelas abstrak.

8. Soal No 8
Pertanyaan

Buatlah 2 contoh kelas abstrak dalam bahasa java.

8
Jawaban Listing Program

No Listing Program
1. //Contoh kelas abstrak 1
2. public abstract class Hewan {
3. public abstract void Bicara(); //lihat metode tidak berisikan kode kode
4. //tidak mendeklarasikan apapun
5. }
6. public class Anjing extends Hewan {
7. public void Bicara() {
8. System.out.println("Guuuk Guuk Guuk ...");
9. }
10. }
11. public class Kucing extends Hewan {
12. public void Bicara() {
13. System.out.println("Meoong Meoong Meoong ...");
14. }
15. }
16. public class Kambing extends Hewan {
17. public void Bicara() {
18. System.out.println("Mbeeek Mbeeek Mbeeek ...");
19. }
20. }
21. public class Test {
22. public static void main(String[] args) {
23. Hewan hewan1 = new Anjing(); //membuat objek kelas Abstrak hewan
(anjing)
24. hewan1.Bicara();
25. Hewan hewan2 = new Kucing(); //membuat objek kelas Abstrak hewan
(kucing)
26. hewan2.Bicara();

9
27. Hewan hewan3 = new Kambing(); //membuat objek kelas Abstrak hewan
(kambing)
28. hewan3.Bicara();
29. }
30. }

No Listing Program
1. //Contoh kelas abstrak 2
2. public abstract class Pemandangan {
3. //method gunung tanpa implementasi
4. public abstract void gunung();
5. //method sungai tanpa implementasi
6. public abstract void sungai();
7. public void laut(){
8. System.out.println("Deburan Ombak dan Nyiur Melambai");
9. }
10. }
11. public class Pegunungan extends Pemandangan {
12. //method gunung dengan implementasi
13. public void gunung(){
14. System.out.println("Gunung menjulang tinggi");
15. }
16. //method sungai dengan implementasi
17. public void sungai(){
18. System.out.println("Sungai dengan air yang jernih");
19. }
20. }
21. public class Desaku {
22. public static void main(String[] args) {

10
23. Pegunungan pg = new Pegunungan();
24. pg.gunung();
25. pg.sungai();
26. }
27. }

9. Soal No 9
Pertanyaan

Analisa dan jelaskan listing code 3,berikut ini :

No Listing Program
1. abstract class A
2. {
3. //method abstrak,tidak memiliki kode implementasi
4. abstract public void coba();
5. public void cobajuga()
6. {
7. System.out.println("Method non abstrak "+"di dalam kelas abstrak");
8. }
9. }
10. class B extends A
11. {
12. //overide method coba
13. public void coba()
14. {
15. System.out.println("Method di dalam Kelas B");
16. }

11
17. }
18. public class LatPrak73 {
19. public static void main(String[] args) {
20. A ref;
21. B obj = new B();
22. ref = obj;//ref menunjuk ke objek dari kelas B
23. ref.coba();
24. ref.cobajuga();
25. }
26. }

Penjelasan Listing Program

Penjelasan No Penjelasan Listing Program


1 Kelas a menggunakan kata kunci abstrak yag diletakan sebelum
nama kelas karena belum terdifinisi atau belum pasti nilainya.
4 Method yang diberi kata kunci abstrak karen belum ada kode
implementasi didalam method tersebut.
5 Method ini tidak menggunakan kata kunci abstrak karena ada
kode implementasi atau sudah pasti.
10 Kelas B merupakan kelas turunan dari kelas A yang
menggunakan kata kunci extends
13 Method yang berada pada kelas turunan B dari A yang
sebelumnya pada class induk belum di definisikan, pada kelas
turunan ini method berikut di iplementasikan dengan sebuah
nilai/value
23-24 Merupakan pemanggilan method yang ada di superclass dan
subclass pada kelas utama dengan bantuan objek yg dibuat pada
kelas utama.

12
Layar Keluaran Program

13
DAFTAR PUSTAKA
1. http://onestringlab.com/penggunaan-perintah-abstract-final-dan-static-pada-java/
2. http://www.adityawiraha.com/2015/05/belajar-kelas-abstrak-java.html
3. https://syafrudinmtop.blogspot.co.id/2015/03/inheritance-dan-polymorphism-
dalam.html
4. Kurniawan, Eko khannedy.2011.Belajar Java Dasar

14

Anda mungkin juga menyukai