Tugas Analisa dan Desain II

Konsep Dasar :

Abstraksi

Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

Abstraksi merupakan sebuah proses yang ditempuh pikiran untuk sampai pada konsep yang bersifat universal. proses ini berangkat dari pengetahuan mengenai obyek individual yang bersifat spasiotemporal (ruang dan waktu). Pikiran melepaskan sifat individual
dari obyek dan membentuk konsep universal.
Beberapa Pengertian Khusus

  • Sesuatu yang dilihat tidak mengacu kepada obyek atau peristiwa khusus. Abstraksi menyajikan secara simbolis atau secara konseptual serta secara imajinatif sesuaru yang tidak dialami secara langsung atau konkret.

  • Hasil akhir dari proses abstraksi. Dengan proses itu kualitas, atau relasi atau ciri dari suatu keseluruhan dipisahkan sebagai ide dari keseluruhan itu.

  • Dalam logika tradisional: proses menghasilkan konsep universal dari obyek partikular


Sistem Abstrak (Abstract System) dan Sistem Fisik (Physical System) Sistem abstrak adalah "sistem yang berupa pemikiran atau ide-ide yang tidak tampak secara fisik". (Contoh : Sistem Teologia).

Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic behavior, dan model management, bisa kita pahami dengan mudah apabila kita melihat gambar diatas dari Diagrams. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan view adalah kategori dari diagaram tersebut.

contoh code class Abstract:

abstract class BentukGeometri {
Color warna;

void setWarna(Color warnaBaru) {
// metode untuk mengganti warna suatu bentuk
warna = warnaBaru; // ganti isi variabel instansi warna
gambar(); // menggambar kembali suatu bentuk dengan warna baru
}

abstract void gambar();
// metode abstrak yang harus diimplementasikan
// pada kelas turunannya

. . . // variabel dan metode instansi lainnya

} // akhir kelas BentukGeometri


Obyek dan Kelas

Kelas adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

Class memiliki tiga area pokok :

1. Nama (dan stereotype)

2. Atribut

3. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :

• Private, tidak dapat dipanggil dari luar class yang bersangkutan

• Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya

• Public, dapat dipanggil oleh siapa saja

Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time. Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package.

Hubungan Antar Class

1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.

2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).

3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.

4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.

Perbedaan Objek dan Kelas

Dalam konteks pemrograman berorientasi objek, kelas adalah suatu struktur dalam program yang berisi satu atau beberapa metode (dapat berupa fungsi dan/atau prosedur) dan atribut (dapat berupa data ataupun variabel yang akan dipoerasikan dalam metode). Dengan demikian atribut merupakan anggota kelas yang bersifat statis, sedangkan metode merupakan anggota kelas yang bersifat dinamis. Dalam pemroraman, metode dan atribut biasanya dapat dibedakan dari format penulisannya, yaitu nama_metode(tipe_parameter daftar_parameter, (…)) untuk format metode (parameter dan tipe parameter bisa lebih dari satu) dan tipe parameter nama_atribut untuk format atribut. Jadi Berbicara (int Suara) dan Jumlahkan (double Bil1,double Bil2) merupakan metode, sedangkan int Suara, double Bil1 dan double Bil2 merupakan atribut. Sedangkan objek merupakan contoh-langsung atau contoh-nyata dari kelas.

Misal: dari kelas Guru dapat dibuat objek Umar_Bakrie. Artinya, Umar_Bakrie merupakan contoh-langsung dari kelas Guru. Secara definisi, dapat dijelaskan bahwa: “An object is an instance of class”.

Gambar class Diagram



Contoh Coding Class

class Kendaraan {
int nomorPolisi;
Orang pemilik; // (anggap kelas Orang telah dibuat sebelumnya)
void gantiPemilik(Orang pemilikBaru) {
. . .
}
. . .
}

class Mobil extends Kendaraan {
int jumlahPintu;
. . .
}

class Truk extends Kendaraan {
int jumlahRoda;
. . .
}

class Motor extends Kendaraan {
int jumlahTak; // 2-tak atau 4-tak
. . .
}


Enkapsulasi

Dalam istilah berorientasi-objek, enkapsulasi berkaitan dengan penyembunyian informasi. System-sistem yang tidak berorientasi-objek berdasarkan pada rutin dan subprogram yang berbagi-pakai data global, atau yang menerima data yang dikirimkan oleh pemanggil.Pendekatan berorientasi-objek, di pihak lain, mengadopsi konsep bahwa data dan fungsi mestinya dipaketkan bersama ke dalam sebuah kapsul tunggal. Bentuk kelas ini melayani maksud tersebut. Sebuah kelas terdiri dari elemen data dan elemen pemrosesan. Elemen data sebuah kelas disebut attribute, dan operasi pemrosesan disebut metodenya. Atribut dan metode merupakan anggota kelas: atribut adalah anggota data dan metode adalah fungsi anggota.

Maksud enkapsulasi disini adalah menyembunyikan detail implementasi sementara memusatkan pada antarmuka. Tujuannya adalah membuat sebuah abstraksi yang memaksa programmer berpikir secara konseptual. Biasanya, anggota – anggota data dari sebuah kelas terlihat oleh penggunanya. Jika sebuah anggota data harus dibuat agar dapat diakses oleh client kelas, maka kelas tersebut menyediakan sebuah metode yang memeriksanya dan mengembalikan nilainya. Saat sebuah kelas mengekspos anggota data, ia dikatakan memecahkan enkapsulasi.

Enkapsulasi program yang mengolah data dengan deklarasi dan penyimpanan data adalah kunci dari rancangan berorientasi-objek. Enkapsulasi dapat dipikirkan sebagai bungkusan (wrapper) pelindung program dan data yang sedang diolah. Pembungkus ini mendefiniskan perilaku dan melindungi program dan data agar tidak diakses sembarangan oleh program lain. Contoh dalam dunia nyata, transmisi otomatis pada mobil mengenkapsulasi ribuan keping informasi dari mesin, seperti percepatan, kemiringan, tanjakan, dan posisi perseneling. Kita sebagai sopir, cukup melakukan satu hal untuk mempengaruhi enkapsulasi yang rumit ini yaitu memindahkan tuas perseneling.

Kita tidak dapat mempengaruhi transmisi dengan menyalakan lampu sein atau wiper. Keampuhan enkapsulasi program adalah setiap orang tahu cara mengkasesnya, sehingga dapat menggunakannya tanpa harus mengerti cara implementasinya secara terperinci. Contoh lain, lusinan pabrik pembuat mobil dapat mengimplemetasikan gambaran tentang transmisi ini ketika membuat system transmisi dengan cara masing-masing.

Karena tujuannya mengenkapsulasi kerumitan, ada mekanisme untuk menyembunyikan kerumitanimplementasi dalam class. Setiap method atau variable dalam class dapat jadi private atau public. Antarmuka public suatu class menunjukan semua yang perlu atau harus diketahui oleh pemakai. Kita dapat menyatakan method dan data instance sebagai private sehingga tidak dapat diakses oleh program lain diluar implementasi class yang kita buat. Antarmuka public harus diplih dengan hati-hati supaya tidak terlalu banyak membuka bagian class.

Manfaat dari proses enkapsulasi adalah :

  1. Modularitas


Kode sumber dari sebuah objek dapat dikelola secara independen dari  kode sumber objek yang lain.

  1. Information Hiding


Karena kita dapat menentukan hak akses sebuah variabel/method dari  objek,  dengan  demikian kita  bisa  menyembunyikan  informasi  yang  tidak perlu diketahui objek lain.

Untuk menjelaskan konsep ini diberikan contoh sebagai berikut.
Contoh 1: Mobil adalah sebuah kelas. Seorang pengendara mobil tidak harus tahu bagaimana proses kerja mesin mobilnya, pembakaran bahan bakar, proses pemindahan transmisi gigi, dan seterusnya. Yang dia tahu adalah bahwa setir untuk mengendalikan jalannya mobil, pedal gas untuk menambah kecepatan, pedal rem untuk mengurangi kecepatan, dan seterusnya. Singkatnya dia hanya tahu bahwa mobilnya berjalan dengan baik.
Contoh 2: Kelas rice cooker (penanak nasi). Seorang ibu rumah tangga tidak tahu mengapat rice cooker bisa bekerja seperti itu. Barangkali seorang ibu rumah tangga tidak menyadari bahwa rice cooker modern memiliki sebuah mikroposesor setara Z80.

Dari dua contoh di atas jelaslah bagaimana proses dalam metode suatu kelas selalu disembunyikan sedemikian rupa sehingga seseorang hanya tahu kelas tersebut dapat berfungsi, bukannya apa yang menyebabkan kelas itu bisa berbuat demikian.
Hal di atas cukup penting dalam PBO membangun aplikasi kompleks yang melibatkan beberapa pemrograman. Misalnya sebuah kelompok pemrograman akan membuat aplikasi akuntansi (aplikasi ini biasanya membutuhkan ilmu yang sangat kompleks). Pemrogram I menangani masalah struktur data, Pemrogram II menangani masalah akuntansi dan Pemrogram III menangani masalah tampilan layar, dan sebagainya. Sebelum dikenal PBO, setiap pemrogram harus membuat suatu fungsi yang memiliki argumen masukan dan keluaran. Jadi bila Pemrogram I ingin mengolah program dari Pemrogram II, dia harus memberikan masukan dan menerima keluarannya. Cara ini sudah banyak  digunakan dan mempunyai kelemahan yang antara lain tidak adanya
kesatuan antara data dan fungsinya.

Contoh Program

Public Class NonEnkapsulasi

Public strNama As String

Public strAlamat As String

Public Sub GetInfo()

Console.WriteLine(“Nama: ” & Me.strNama)

Console.WriteLine(“Alamat: ” & Me.strAlamat)

End Sub

End Class

Pesan

Sebuah pesan adalah elemen dalam Unified Modeling Language (UML) diagram yang mendefinisikan jenis tertentu komunikasi antara contoh dalam interaksi. Sebuah pesan menyampaikan informasi dari satu contoh, yang diwakili oleh tali penyelamat, untuk contoh lain dalam interaksi.

Sebuah pesan menetapkan pengirim dan penerima, dan menetapkan jenis komunikasi yang terjadi antara bertahan hidup. Sebagai contoh, komunikasi dapat meminta, atau telepon, sebuah operasi menggunakan panggilan sinkron pesan atau panggilan asynchronous pesan, meningkatkan sinyal menggunakan sinyal asynchronous, dan menciptakan atau menghancurkan sebuah peserta.

Lima Jenis Pesan:

  • · Buat pesan: Sebuah pesan buat mewakili penciptaan sebuah contoh dalam interaksi. Pesan yang membuat diwakili oleh kata kunci «membuat». Target buat dimulai pada titik yang membuat pesan. Sebagai contoh, dalam skenario perbankan, manajer bank mungkin akan mulai memeriksa kredit klien dengan mengirimkan pesan buat ke server.

  • · Pesan Hancurkan : Sebuah pesan menghancurkan mewakili kehancuran sebuah contoh dalam interaksi. Pesan yang menghancurkan diwakili oleh kata kunci «menghancurkan». Buat target berakhir pada titik dari pesan menghancurkan, dan dilambangkan dengan X. Sebagai contoh, seorang manajer bank, setelah memulai pemeriksaan kredit, mungkin dekat atau menghancurkan aplikasi program kredit bagi pelanggan.

  • · Synchronous : Synchronous pesan panggilan panggilan, yang terkait dengan operasi, memiliki mengirim dan menerima pesan. Sebuah pesan akan dikirim dari sumber ke target buat buat. Buat sumber diblokir dari operasi lain sampai menerima tanggapan dari target buat. Misalnya, dalam skenario perbankan, teller bank dapat mengirim permintaan kredit kepada manajer bank untuk mendapatkan persetujuan dan harus menunggu respon sebelum melayani pelanggan lebih lanjut.

  • · Asynchronous : Asynchronous pesan panggilan panggilan, yang terkait dengan operasi, biasanya hanya memiliki mengirim pesan, tetapi dapat juga memiliki pesan balasan. Berbeda dengan pesan sinkron, sumber buat tidak diblokir dari menerima atau mengirim pesan lainnya. Anda juga dapat memindahkan mengirim dan menerima poin secara individu untuk menunda waktu antara mengirim dan menerima kejadian. Anda mungkin memilih untuk melakukan hal ini jika respon tidak waktu-atau perintah-sensitif. Sebagai contoh, seorang pelanggan dapat mengajukan kredit perbankan namun dapat menerima informasi melalui telepon atau meminta uang dari ATM, sementara menunggu untuk mendengar tentang aplikasi kredit.

  • Asynchronous pesan sinyal asynchronous pesan sinyal, berhubungan dengan sinyal. Sebuah sinyal berbeda dari pesan dalam bahwa tidak ada operasi yang berhubungan dengan sinyal. Sebuah sinyal dapat mewakili interupsi atau kondisi kesalahan. Untuk menentukan sinyal, Anda membuat panggilan asynchronous pesan dan mengganti jenis pesan dalam tampilan properti. Sebagai contoh, lembaga kredit bisa mengirim sinyal kesalahan pesan kepada manajer bank yang menyatakan kegagalan untuk menyambung ke biro kredit. Catatan: Sebuah pesan asynchronous adalah satu-satunya jenis pesan yang Anda menggerakkan secara individual dapat mengirim dan menerima poin. Anda dapat memindahkan titik-titik dari sebuah pesan asynchronous untuk memanipulasi waktu tunda antara pengiriman dan penerimaan kejadian peristiwa; hasilnya disebut pesan miring. Pewarisan Polomorfisme


Pewarisan

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.

Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya. Hal ini dapat dianalogikan dengan kelas manusia. Manusia merupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut.

Contoh: Dari kelas kendaraan bermotor dapat diturunkan beberapa kelas baru, misalnya: sepeda motor, sedan, pick-up, mini-bus, dan kendaraan roda banyak



Masing-masing kendaraan bermotor ini memiliki beberapa data yang sama, seperti posisi gigi persnelling, kecepatan putaran mesin,
kecepatan linear kendaraan, dan sebagainya. Namun masing-masing kelas turunan ini memiliki beberapa data dan metode yang berlainan.
Contoh: Sedan memiliki data AC, sedangkan sepeda motor tidak. Karena sedan memiliki data AC maka terdapat juga metode-metode yang berhubungan dengan AC seperti menyalakan AC, mengubah suhu AC, mematikan AC, dan sebagainya. Hirarki suatu kelas tidak harus bertingkat satu seperti contoh di atas. Hirarki kelas dapat bertingkat-tingkat dan sangat kompleks.

Contoh: kelas sepeda motor mungkin masih dibagi lagi menjadi dua kelas, yaitu sepeda motor 2 tak dan 4 tak. Sepeda motor 2 tak mungkin masih dibagi lagi menurut pabrik pembuatnya, seperti Honda, Suzuki, Yamaha, dan seterusnya. Masing-masing pabrik mungkin masih mempunyai beberapa kelas turunan lagi, seperti Honda Astrea Star, Honda Astrea Grand, dan seterusnya



contoh pewarisan pada Java :

/file Lingkaran.java
public class Lingkaran{
protected double jari;
protected double luas;
protected double keliling;

public Lingkaran(){
jari = 0;
luas = 0;
keliling = 0;
}

public void hitungLuas(){
luas = Math.round(Math.PI * jari * jari);
}

public double getLuas(){
return luas;
}

public void hitungKeliling(){
keliling = Math.round(2*Math.PI*jari);
}

public double getKeliling(){
return keliling;
}

public void setJari(double jari){
if (jari > 0) this.jari = jari;
}

public double getJari(){
return jari;
}

}

// file Tabung.java
public class Tabung extends Lingkaran{
double tinggi;
double selimut;
double volume;

public Tabung(double jari, double tinggi){
super.setJari(jari);
setTinggi(tinggi);
}

public void setTinggi(double tinggi){
if(tinggi > 0) this.tinggi = tinggi;
}

public double getTinggi(){
return tinggi;
}

public void setSelimut(){
super.hitungKeliling();super.hitungLuas();
selimut = Math.round((super.getLuas() * 2) + (super.getKeliling()*tinggi));
}

public double getSelimut(){
return selimut;
}

public void setVolume(){
super.hitungLuas();
volume = Math.round(getLuas() * getTinggi());
}

public double getVolume(){
return volume;
}

public static void main(String [] args){
Tabung set = new Tabung(7,7);

set.setSelimut();
set.setVolume();
System.out.println("tinggi dari tabung adalah = "+set.getTinggi());
System.out.println("volume tabung adalah = " + set.getVolume());
System.out.println("luas selimut dari tabung adalah = "+set.getSelimut());

}

}

Polimorfisme

Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan. Ketika objek tersebut menunjuk kelas dasar, objek tersebut berperilaku seperti kelas dasar, tetapi ketika objek tersebut menunjuk kelas turunan, objek tersebut berperilaku seperti kelas turunan. Dalam hal ini objek dapat memiliki beberapa bentuk, tergantung pada saat itu kelas mana yang ditunjuk. Yang perlu menjadi catatan, bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan, tidak dapat objek kelas turunan menunjuk kelas dasar.

Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic binding). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtualnya (maya).

  • A. Polimorfisme Pada Pewarisan Tunggal


Suatu metode dapat dideklarasikan secara virtual dengan cara menambah kata virtual pada deklarasi fungsi. Jika suatu metode dideklarasikan secara virtual dalam kelas dasar, maka keadaan virtual tetap akan berlaku untuk fungsi yang sama di seluruh kelas turunan meskipun kata virtual tidak disebutkan.

  • A. Polimorfisme Pada Pewarisan Jamak


Polimorfisme juga dapat diterapkan pada pewarisan jamak, tidak ada bedanya dengan pada Pewarisan Tunggal, hanya saja kata virtual harus disebutkan pada semua metode pada kelas dasar yang dirancang dapat mengadakan ikatan dinamis.

Misalnya Polimorfisme diterapkan pada kelas pegasus, yang mana pegasus dianggap sebagai kelas turunan dari kelas kuda dan burung. Jika diterapkan Polimorfisme, maka harus diambil pengertian bahwa berlarinya kuda berbeda dengan berlarinya pegasus. Demikian juga terbangnya burung berbeda dengan terbangnya Pegasus. Dalam implementasi program, definisi fungsinya berbeda.

  • A. Polimorfisme Pada Pewarisan Jamak Virtual


Polimorfisme pada pewarisan jamak virtual juga tidak banyak berbeda. Berikut ini contoh polimorfisme pada kelas hewan sampai Pegasus. Untuk menyederhanakan program, hanya diperhatikan metode bergerak() pada kelas hewan. Metode bergerak () pada kelas hewan berbeda dengan metode bergerak pada kelas kuda, burung atau pegasus. Kelas kuda memberi pengertian bergerak secara umum yaitu berpindah tempat. Kelas kuda memberi pengertian bergerak dengan cara berlari, kelas burung memberi pengertian bergerak dengan cara terbang atau berlari.

Polimorfisme berarti kelas-kelas yang berbeda tetapi berasal dari satu orang tua dapat mempunyai metode yang sama tetapi cara pelaksanaannya berbeda-beda. Atau dengan kata lain, suatu fungsi akan memiliki perilaku berbeda jika dilewatkan ke kelas yang berbeda-beda.
Contoh: kelas untuk input sound system. Sebuah tape recorder dan CD player memiliki tombol PLAY yang berfungsi untuk memainkan musik yang dikehendaki. Tape recorder mengimplementasikan tombol PLAY dengan membaca isyarat-isyarat yang terekam di pita magnetis kaset,sedangkan CD player menggunakan sinar laser untuk membaca bit-bit digital yang terekam di permukaan CD.

Contoh Polimorfisme pada Java

Java mengimplementasikan polimorfisme dengan 2 cara, yaitu:
1. Methode overloading
2. Methode overriding dengan pewarisan

a) Contoh Polimorfisme Overloading

public class Matematika
{
public int max (int bil1, int bil2)
{
System.out.println(“max integer”);
return (bil1 < bil2 ? bil2 : bil1);
}
public float max (float bil1, float bil2)
{
System.out.println(“max float”);
return (bil1 < bil2 ? bil2 : bil1);
}
public double max (double bil1, double bil2)
{
System.out.println(“max double”);
return (bil1 < bil2 ? bil2 : bil1);
}
}

public class Testmax
{
public static void main (String args [ ] )
{
Matematika test = new Matematika ( );
System.out.println(“3 dan 4, yang lebih besar :”
+ test.max (3,4));

System.out.println(“3 .3 dan 4.0, yang lebih besar :”
+ test.max (3.3F ,4F));
System.out.println(“3.5 dan 4.0, yang lebih besar :”
+ test.max (3.5, 4.0));
}
}

b) Contoh Polimorfisme Overridding
polimorfisme ini diwujudkan melalui relasi pewarisan

public class.KomunitasUniversitas
{
protected String nama ;
protected String alamat ;
/* intansiasi nama dan alamat dengan nilai tertentu */
KomunitasUniversitas (String namaku, String alamatku)
{
nama = namaku ;
alamat = alamatku ;
}
public void tampilinformasi ( )
{
System.out.println (“nama : “+nama) ;
System.out.println (“alamat : “+alamat) ;
}
}

public class pegawai extends KomunitasUniversitas
{
private int noPegawai ;
private int gajiPokok ;

Pegawai (String namaku, String alamatku, int noPegawaiku, int gajiPokokku)
{
noPegawai = noPegawaiku :
gajiPokok = gajiPokokku :
}
public void tampilinformasi ( )
{
System.out.println(“NoPegawaiku ; “+noPegawai);
System.out.println(“GajiPokokku ; “+gajiPokok);
}
}
Next PostPosting Lebih Baru Previous PostPosting Lama Beranda

0 komentar: