PBO-1
Disusun oleh:
Said Dinar Fadilah 10116026
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
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
Jawaban Pertanyaan
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. }
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. }
4. Soal No 4
Pertanyaan
Jawaban Pertanyaan
6
5. Soal No 5
Pertanyaan
7
6. Soal No 6
Pertanyaan
7. Soal No 7
Pertanyaan
Apakah yang dimaksud dengan kelas abstrak dan kapan kita menggunakan kelas
abstrak dalam bahasa java.
Jawaban Pertanyaan
8. Soal No 8
Pertanyaan
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
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. }
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