BLOGGER TEMPLATES AND TWITTER BACKGROUNDS

Senin, 11 Januari 2010

tugas UAS

TUGAS PBO Putu Agus Ferdiana

INHERITANCE AND POLYMORPHISM 008 01 242

// class Animal

public class Animal {

private int weight;

public Animal(int w) { weight=w; }

public void setWeight(int w) { weight = w; }

public int getWeight() { return weight; }

public void talk() {

System.out.println("An animal can't talk");

}

}

// class Cow

public class Cow extends Animal {

public Cow() { super(100); }

public void talk() {

System.out.println("Moo!");

}

}

// class Pig

public class Pig extends Animal {

public Pig() { super(40); }

public void talk() {

System.out.println("Grunt!");

}

}

// class Sheep

public class Sheep extends Animal {

public Sheep() { super(65); }

public void talk() {

System.out.println("Baa!");

}

}

// class Bebek

public class Bebek extends Animal {

public Bebek() { super(35); }

public int jumlahTelur=3;

public void talk() {

System.out.println("Kweek!");

}

}

// class Main

public class FarmExample{

public static void main(String[] args) {

Animal[] farm = {new Cow(), new Pig(), new Sheep(), new Bebek()};

Bebek b = new Bebek();

int totalWeight = 0;

for (int i=0; i

totalWeight += farm[i].getWeight();

System.out.println("The total weight of the " + "animals is " + totalWeight);

System.out.println("The animals say:");

for (int i=0; i

farm[i].talk();

System.out.println("Jumlah Telur Bebek adalah "+b.jumlahTelur);

}

}

Output program :

The total weight of the animals is 240

The animals say:

Moo!

Grunt!

Baa!

Kweek!

Jumlah Telur Bebek adalah 3


Permasalahan yang Umum pada Polymorphism :

Konsep Dasar Polymorphism dalam Java

Polymorphism adalah salah satu dari tiga kemampuan yang mendasar yang dimiliki oleh OOP, setelah data abstraction dan inheritance.

Polymorphism menyediakan cara yang berbeda pada pemisahan interface dari implementasinya, untuk memasangkan ulang apa dari bagaimana. Polymorphism memberikan organisasi kode yang lebih baik dan kode menjadi lebih mudah dibaca, juga memberikan suatu kemampuan pada program untuk berkembang secara terus menerus baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan kemampuan-kemampuan yang baru.

Encapsulation membuat tipe data yang baru dengan mengkombinasikan karakteristik-karakteristik dan perilaku-perilaku. Dengan menggunakan kata kunci private kita dapat menyembunyikan interface dari implementasi. Cara yang seperti ini dapat memudahkan para programmer yang mempunyai background prosedural. Tetapi polymorphism menangani decoupling dalam bentuk types. Kita mengetahui kalau inheritance memperbolehkan perlakuan yang sama pada object turunan maupun object asal. Kemampuan ini sangat penting karena memperbolehkan beberapa tipe yang ada (turunan dari tipe asal yang sama) mendapat perlakuan seperti kalau mereka itu satu tipe, dan hanya dibutuhkan satu kode saja untuk mengakses keseluruhan tipe yang ada. Metode polymorphism ini memperbolehkan untuk memanggil satu tipe untuk mengekspresikan perbedaannya dari tipe yang lainnya, yang sejenis, selama mereka diturunkan dari tipe asal yang sama. Perbedaan ini diekspresikan melalui perbedaan-perbedaan dalam perilaku dari metoda-metoda yang dapat kita panggil dari class asal.

Dalam pembahasan ini kita akan menjelaskan tentang polymorphism (juga disebut sebagai dynamic binding atau late binding atau run-time binding) mulai dari yang paling dasar, dengan contoh yang membeberkan tentang pengaruh polymophism dalam program yang akan dibuat.

Sebelumnya kita mengetahui kalau sebuah object dapat digunakan sebagai tipenya sendiri atau sebagai object dari tipe asalnya. Mengambil handle sebuah object dan memperlakukannya sebagai handle dari tipe asal disebut sebagai upcasting karena urutan dari cabang-cabang inheritance digambarkan class asal terletak yang paling atas.

Kita juga akan menemui sebuah masalah seperti yang tertera dari kode berikut ini:

//: Music.java

// Inheritance & upcasting

package c07;

class Note {

private int value;

private Note(int val) { value = val; }

public static final Note

middleC = new Note(0),

cSharp = new Note(1),

cFlat = new Note(2);

} // Etc.

class Instrument {

public void play(Note n) {

System.out.println(\"Instrument.play()\");

}

}

// Wind objects are instruments

// because they have the same interface:

class Wind extends Instrument {

// Redefine interface method:

public void play(Note n) {

System.out.println(\"Wind.play()\");

}

}

public class Music {

public static void tune(Instrument i) {

// ...

i.play(Note.middleC);

}

public static void main(String[] args) {

Wind flute = new Wind();

tune(flute); // Upcasting

}

} ///:~

Metode diatas Music.tune() menerima sebuah handle Instrument, tetapi juga segala sesuatunya yang diturunkan dari Instrument. Didalam main(), kita dapat melihat semua ini terjadi sebagai sebuah handle Wind dilewatkan ke tune(), dengan tanpa cast sama sekali. Ini semua masih dapat diterima, interface dari Instrument harus muncul didalam Wind, karena Wind diturunkkan dari Instrument. Upcasting dari Wind ke Instrument bisa membuat “narrow” pada interface tersebut, tapi semua ini tidak dapat mengurangi interface keseluruhan dari Instrument.

Program berikut ini mungkin akan tampak aneh. Mengapa kita secara sengaja melupakan tipe dari sebuah object ? Ini semua dapat terjadi bila kita melakukan upcast, dan menjadikannya kelihatan seperti kalau tune() secara langsung mengambil handle dari Wind sebagai sebuah argumen. Ini semua membuat sesuatu yang mendasar : Kalau kita melakukannya, kita harus menuliskan tune() yang baru untuk setiap Instrument didalam system kita. Anggap saja kita mengikuti alasan ini dan menambahkan instrument Stringed dan Brass :

//: Music2.java

// Overloading instead of upcasting

class Note2 {

private int value;

private Note2(int val) { value = val; }

public static final Note2

middleC = new Note2(0),

cSharp = new Note2(1),

cFlat = new Note2(2);

} // Etc.

class Instrument2 {

public void play(Note2 n) {

System.out.println(\"Instrument2.play()\");

}

}

class Wind2 extends Instrument2 {

public void play(Note2 n) {

System.out.println(\"Wind2.play()\");

}

}

class Stringed2 extends Instrument2 {

public void play(Note2 n) {

System.out.println(\"Stringed2.play()\");

}

}

class Brass2 extends Instrument2 {

public void play(Note2 n) {

System.out.println(\"Brass2.play()\");

}

}

public class Music2 {

public static void tune(Wind2 i) {

i.play(Note2.middleC);

}

public static void tune(Stringed2 i) {

i.play(Note2.middleC);

}

public static void tune(Brass2 i) {

i.play(Note2.middleC);

}

public static void main(String[] args) {

Wind2 flute = new Wind2();

Stringed2 violin = new Stringed2();

Brass2 frenchHorn = new Brass2();

tune(flute); // No upcasting

tune(violin);

tune(frenchHorn);

}

} ///:~

Kode diatas dapat dijalankan, tetapi disana ada kekurangan terbesar. Kita harus menuliskan metoda tipe yang spesifik untuk setiap class Instrument2 yang baru kita tambahkan. Ini semua berarti makin banyak kode yang akan kita tulis, tetapi juga berarti kalau kita ingin menambahkan sebuah metoda baru seperti tune() atau sebuah tipe baru dari Instrument, kita mendapatkan kalau perkerjaan kita makin banyak. Dengan menambahkan fakta bahwa kompiler tidak akan memberikan pesan-pesan kesalahan kalau kita lupa meng overload salah satu dari metoda-metoda kita dan seluruh proses pekerjaan dengan tipe menjadi tidak dapat ditangani.

Bukankah dapat menjadi lebih menyenangkan kalau kita hanya menuliskan satu metoda saja yang dapat mengambil class asal sebagai argumennya, dan bukan dari semua class-class turunannya. Itulah memang lebih memudahkan bila kita melupakan adanya class-class turunan, dan menuliskan kode yang hanya berkomunikasi dengan class asal?

Itulah apa yang disediakan oleh polymorphism. Walau bagaimanapun kebanyakan programmer (yang berasal dari latar belakang prosedural) mempunyai sedikit kesulitan untuk beradaptasi dengan polymorphism.

Kesimpulan

Dengan polymorphism pekerjaan seorang programmer dapat dimudahkan dengan menuliskan kode yang lebih sedikit. Untuk mengakses class-class turunan tidak dibutuhkan penulisan kode yang berlainan.

Selasa, 05 Januari 2010

polymorphisme PBO

Polimorphisme adalah kemampuan dari sebuah ojectuntuk memperbolehkan mengambil beberapa bentuk yang berbeda.Secara harafiah,"poli" berarti banyak sementara "morph" berarti bentuk.Menunjuk pada contoh sebelumnya pada pewarisan,kita lihat bahwa object SuperHero dapat juga menjadi object flayingSuperHero atau object UnderwaterSuperHero.

• Inheritance dan overriding menyebabkan munculnya polymorphism (literally ‘banyak bentuk’) – salah satu ciri dan kelebihan dari object-oriented programming.

• Cow adalah subclass dari Animal, maka pemrogram dapat merujuk ke obyek Cow sebagai Animal atau Cow. Kedua pernyataan berikut benar:

– Cow daisy = new Cow();

– Animal daisy = new Cow();

• Mengapa? Karena Cow adalah subclass dari Animal (Cow adalah a kind of Animal), maka Cow mempunyai fungsionalitas dari superclassnya.

• Baris berikut salah:

– Cow daisy = new Animal(); // SALAH

• Mengapa? Cow mungkin mempunyai fungionalitas tambahan yang tidak diimplementasikan dalam superclass Animal (Animal bukan a kind of Cow).

– public class FarmExample {

• public static void main(String[] args) {

– Animal[] farm = {new Cow(), new Pig(),

new Sheep()};

– System.out.println("The animals say:");

– for (int i=0; i

– farm[i].talk();

• }

– }

• Keluaran dari program ini adalah

– The animals say:

– Moo!

– Grunt!

– Baa!

• Ada dua prinsip yang mendasari polymorphism:

– An object always retains the identity of the class from which it was created.

– When a method is invoked on an object, the method associated with the class of the object is always used.

• Keputusan mengenai metode mana yang akan dipanggil tidak dapat ditentukan oleh compiler; tetapi ditentukan saat run time. Java menggunakan dynamic binding bukan static binding.

• Contoh, Menghitung total berat semua hewan pada lahan peternakan:

• Konstruksi suatu obyek diawali oleh konstruksi obyek superclass (melalui constructor); perilaku contructor superclass dapat dipanggil dan dilengkapi fungsinya dengan perintah super() di dalam constructor subclass.

• Polymorphism mengacu kepada kemampuan untuk menjalankan suatu metode bergantung pada class obyek.

• Java menerapkan dynamic binding untuk memutuskan metode mana yang dijalankan saat runtime.

• Polymorphism memungkinkan koleksi heterogen diperlakukan secara seragam.

• Casting kadang diperlukan untuk memastikan bahwa metode yang tepat akan dijalankan saat run time.

Senin, 14 Desember 2009

Materi Perkuliahan

Download Materi perkuliahan tinggal klik :

Aljabar linier :


Basis Data :
BASIS DATA-1.ppt
BASIS DATA-2 (DBMS).ppt
BASIS DATA-3_3 (ERD).ppt



Interaksi Manusia dan Komputer
1-Pengantar IMK.ppt
2-Komponen IMK-Manusia.ppt
3-Komponen IMK-Teknologi.ppt
4-Ergonomi.ppt
5-Model-Dialog.ppt
6-Prinsip Desain IMK.ppt
7-Prinsip Desain-Prototyping.ppt
8-Desain Interface.PPT
9-Tahapan Desain Interface.PPT
10-GUI Controls for Input Design.ppt
11-Web Design.ppt
12-Mistakes in Web Design.PPT
13-doc help.ppt
Manusia dan komputer.docx


masih dalam proses pengumpulan materi...!!

STRUKTUR DATA sorting & searching

Untuk lebih jelasnya dapat di download di
4share.com
dengan link sebagai berikut :

http://www.4shared.com/file/173281728/415d64d/tugas_Struktur_Data.html

atau klik :

tugas Struktur Data.ppt

Senin, 02 November 2009

INterface Data Mahasiswa



Interface Data Mahasiswa

data yang telah di isi dengan lengkap dan benar, disimpan dengan klik tombol SAVE. kemudian muncul jendela kecil yang menanyakan keyakinan untuk menyimpan.











Jika dalam penginputan mengeklik cancel maka akan ada feedback seperti berikut :












Tampilan setelah di simpan





terdapat tombol edit untuk merubah/mengedit data yang sudah tersimpan













Menggunakan aplikasi CorelDRAW 12

Jumat, 02 Oktober 2009

Interface pada sebuah software kasir/penjualan.


Tampilan jumlah total sudah cukup jelas, tata letak yang cukup sederhana memudahkan pengguna (kasir) menjalankan program dan pembelipun percaya dengan hasil dari total belanjanya.
Menurut saya sisa kembali perlu diperbesar sekitar setengah dari ukuran total harga, sebab untuk mempermudah pembeli mengetahui jumblah kembaliannya dan dapat mengecek jumlah kembaliannya.

Senin, 22 Juni 2009













KERABAT KoTaK