You are on page 1of 6
BAB4 POLYMORPHISM 4.1, Tujuan Pembelajaran 1, Mengenal dan memahami konsep polymorphism 2. Menerapkan overriding method dalam konsep OOP 4.2. Dasar Teori Saya mempunyai sebuah kata “bisa” dan kata tersebut akan saya gunakan dalam kalimat sebagai berikut 1. Praktikan bisa memahami konsep Polymorphism delam Praktikum Pemrograman Berorientasi Objek. 2. Ular itu mempunyai bisa yang sangat berbahaya Dari 2 kalimat di atas, dapatkah anda mengetahui arti dari kata “bisa” dalam kalimat yang saya berikan tadi? Apakal arti dari kata “bisa” aatar satu kalimat dengan kalimat yang lain memiliki arti yang sama? Kata “bisa” pada kalimat pertamia’ memiliki arti dapat atau mampu. Sedangkan kata “bisa” pada kalimat keduia memiliki arti racun. Dalam kalimat di atas, kata yang sama memiliki 2 makna yang berbeda, Itulah salah satu konsep polymorphism. Polymorhism merupakan konsep OOP dimana variable / method dari sebuah elas, dipanggil ulang pada kelas turunannya dengan perilaku yeng berbeda-beda antar tiap Kelas, Perhatikan contoh gambar berikut ini ewan | ae ares “poe a sn Soe dd Senos Se. Setiap hewan memiliki suara, Namun suara pada masing-masing hewan berbeda-beda. Perilaku yang berbeda-beda itulah yang menjadi citi khas 41|/PBO(OOP polymorphism. Penggunaan teknik polymorphism dapat diketahui melalui pembuatan instance-of-class pada class driver. Seperti halnya gambar di atas, maka pendeklarasian objek yang dibuat (di-instanskan) berasal dari class induknya, yakni class Hewan. Sehingga objek tersebut berbentuk array-of-class. Dalam penggunaan polymorphism, ada 2 kriteria yang harus dipenuhi antara, Jain : 1, Method dari kelas turunan yang akan dieksekusi, dipanggil oleh objek dari kelas induk. 2. Nama method yang digunakan pada kelas induk harus ditulis ulang (overriding method) pada kelas turunannya, dengan asumsi nama dan tipe data method harus sama, Overriding method adalah proses pendcklarasian ulang nama method pada kelas utama kepada kelas turunannnya, Dalam pembuatan overriding method, nama dan tipe data method harus sama dengan kelas induknya guna pembuatan polymorphism, Percobaan Perhatikan gambar di bawah ini! |+Manusia(double TB) - geen) Ketcrangan: [MBBIQ. = Hang Bert Baden ideal Ting Bada Taki Jaki Perempuan Jr-akl_aki(double TB) |-Perempuan(double TB) [ete [rete@8i() Buatlah class untuk menghitung Berat Badan Ideal sesuai dengan rancangan ‘gambar di atas! Rumus hitung berat badan ideal adalah sebagai berikut: 1, Laki-Laki = (tinggi badan(om)-100) kg x 90% 2. Untuk Perempuan = (tinggi badan(cm)-100) kg x 80% Tambahkan pula class driver yang digunakan untuk memanggil class Laki_Laki dan Perempuan. 42|P BO(OOP) 20 a 13 14 15 16 a 4.3.1, Membuat class Manusia.java @ public class Manusia { © dekiaras: varsabet a privace double TinggiBadan: 2 9 onstz a0 poblic Manasia (deubic 7) u ‘ SP 1 sammam —om Fe , u as 16 public double get™B() v ‘ BT fee Seie 1 , 20 2 method HEGBeT @ public douple/HtgBBE() 23 ‘ ay fe 25 , 2% 43.2, Membuat class Laki_Lakijjaya public class Laki_taki extends Manuesal public Laki_laki (double TB) super (TB); MerBaben method overr public double BtgBBI() 1 zeturn (super-G88EB ()-100) *0.9 43|P BO(OOP) 4.3.3. Membuat class Pe empuan,java 8| public class Perempuan exzends Manusiat « oastructor 7 public Perempuan (dcuble TB) ° ‘ a0 ? u 2 wen Se 43 public deuble HtgBBI(} 43.4, Membuat class TesHitungBBLjava sebagai class driver yang akan memanggil class Laki_Laki dan Perempuan 1) ampere gava.to.t 2 public clase TesBitungSBI ( 3G public static void main (String [] args) throws Excepeieh « Battereaeader br = nev SufferedReader (new UnpursteeamReader (System.in)) 7 7 Manuaial] 9 = new Manusia[2]? ° 0 n 2 2 npae u u ee 2 duntte (xe2) zt oy a} Setelah anda membuat class TesHitungBBI, langkah berikutnya yang anda lakukan adalah membuat sebuah objek yang bertipe kelas induknya, yaitu class Manusia. Di sinilah konsep polymorphism digunakan, Karena class Manusia memiliki 2 kelas turunan, maka objek yang kita buat berbentuk array-of-class. Untuk itu, diperlukan panjang elemen array guna menampung data, baik yang terdapat pada class Laki_Laki maupun class Perempuan (dimisalkan panjang elemen adalah 2). Perlu diketahui pula, bahwa panjang elemen array yang diberi nilai 2, bukan berasal dari 2 kelas turunan pada kelas induknya, melainkan karena inputan yang ingin 44|/PBO(OOP dilakukan adalah sebanyak 2 kali, Data bisa diperoleh dari 2 orang laki-laki, 2 orang perempuan, atau 1 orang laki-laki dan 1 orang perempuan. Deklarasi variabel digunakan untuk membantu dalam menghitung index array pada objek “m”, Selain itu, diperlukan perulangan dalam mengisi inputan user. Pada line 17, yang berisi “x++;”, terdapat proses increment untuk menambah isi+1 pada variable x. 43.5, Membuat inputan yang diisi user 2 tog “ Syscen. out princin "User “+ (xe3)) 7 15 Syster.cur_print ("Nesunken tinge? baGan ands (gaan on) 16 cece, ¢ = Dinibhe spateaDaube [ue -sanatine (173 y Sygate. Git eine (Mannie: janie Yelenin ands) CVE 6 Yi 22 String geebe. readline): 4.3.6. Mengecek inputan user dan mencetak penghifungan berat badan ideal 31 (30. coUppercase |) -equazs ("")) ‘ nix] = new Laxs_Lav(c): Syaten. out.pringia("Serst badan ideal laki“@Wki int adalah "em{x) -AEgBEE|)}7 Sysven. our-prantia() , erse ‘ nix] = new Beremplan(t) > System. out.printin("Berat badan idediMPerBmpuan ini adalah "4m[x] -HtgBBI()]+ System. oub.printin()? Setelah membual inputan user, maka dilakukan pengecekan apakah jenis kelamin yang dipilih adalah laki-laki atau perempvan. Hal ini akan menentukan Kelas turunan mana yang akan diakses. Penggunaan method “equals()” untuk mengecek inputan bertipe String dan String. Sedangkan method “toUpperCase()” digunakan untuk menconvert semua inputan user (baik ditulis dalam huruf kecil atau huruf besar) menjadi huruf besar semua, “m[x] = new Laki_Laki(®);” dan “m[x] = new Perempuan(t);” menunjukkan penggunaan objek pada kelas turunannya. 45|PBO(OOP 4.3.7. Hasil Running Program 44, Latihan User 1 Masukxan vinggi badan anda [dalam en) = 168 Masukkan jenis telanin anda (I/?) : Berat bedan idee] leki-laki ind adalah 62.5 user 2 Masukkan tinggi baden anda [dalam om) = 160 Masukxan Jenis telenin anda (L/P) > F Beret badan ideal perempuan ini adalah 46.0 Implementasikan class diagram berikut ini kedalam program! ®Mahasiswa jeeString nim 5 +Stiing jurusan ‘Orang G+intumur i | os Mahasiswag +Stingnama ovoid getter) 5 +Sting alamat © +Orangfint umur, String nama, String alamat) e+ void setterd e+ Void getter Dosen is B+String nik B+String Jabatan ©+Doseng @+vold getter) 46|P BO(OOP

You might also like