Minggu, 10 Januari 2010

Tugas Pemrograman Berorientasi Objek

1. Listing Program
 Kelas Animal
package 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; }
}

 Kelas Cow
package Animal;
public class Cow extends Animal {
public Cow() { super(100);}
}

 Kelas Pig
package Animal;
public class Pig extends Animal {
public Pig() { super(40); }
}

 Kelas Sheep
package Animal;
public class Sheep extends Animal {
public Sheep() { super(65); }
}

 Main Program
package Animal;
public class FarmExample2 {
public static void main(String[] args) {
Animal[] farm = {new Cow(), new Pig(),
new Sheep()};
int totalWeight = 0;
for (int i=0; itotalWeight += farm[i].getWeight();
System.out.println("The total weight of the animals is " + totalWeight);
}
}

Output Program :
The total weight of the animals is 205
2. membuata program :
• Buatlah sebuah class baru dengan nama Bebek yang merupakan turunan dari class Animal.
• Bebek memiliki atribut khusus jumlahTelur bertipe integer.
• Bebek berbunyi ‘kwek’.
• Panggil class Bebek dalam fungsi utama, dan tampilkan jumlah telurnya.

Jawab :
 Kelas 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() {
}
}

 Kelas Bebek
public class Bebek extends Animal {
int numberOfEggs;
public Bebek() {
super(4); // panggil constructor induk
numberOfEggs = 15;}
public void talk() {
System.out.println(" Bebek Berbunyi Kwek!!");}
public int getNumberOfEggs() {
return numberOfEggs;}
public void setNumberOfEggs(int n) {
numberOfEggs = n;}
}

 Main Program
public class farmExample3 {
public static void main(String[] args) {
Animal[] farm = {new Bebek()};
for (int i=0; i farm[i].talk();
System.out.println(" Memiliki " +((Bebek)farm[i]).getNumberOfEggs()+ " Telur");
}
}
}

Outputnya :
Bebek Berbunyi Kwek!!
Memiliki 15 Telur
3. Carilah permasalahan umum yang biasanya terjadi dalam polymorphisme
Masalah Pada Polymorphism:
Perhatikan kode berikut:
public class FarmExample4 {
public static void main(String[] args) {
Animal[] farm = {new Goose(), new Cow(),
new Pig(), new Sheep()};
for (int i=0; ifarm[i].talk();
System.out.println(farm[i].getNumberOfEggs()+“ eggs”);
}
} // end of main
}
Eksekusi program diatas hasilnya error. Goose, Cow, Pig dan Sheep dapat diperlakukan sebagai jenis dari Animal, tetapi class-class ini tidak mengimplementasikan semua metode yang sama: hanya Goose yang mengimplementasikan metode getNumberOfEggs.
Konsep Polymorphism memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.




Pada contoh diatas clas dasar adalah class bentuk yang memiliki atribut berupa Luas dan operasi hitung luas, class tersebut dapat diturunkan kedalam berbagai macam class bentuk seperti Segitiga, Lingkaran, Persegi panjang. Class Segitiga, Lingkaran, Persegi panjang memiliki atribut “Luas” dari hasil penurunan class bentuk, akan tetapi operasi hitung luas pada masing masing class akan berbeda-beda, inilah yang disebut sebagai polymorphism


4. Java tidak membolehkan multiple inheritance murni. Mengapa?
 Multiple inheritance diimplementasikan dalam beberapa bahasa object oriented programming ( seperti C++).
 Masalah – suatu subclass dapat mempunyai multiple superclasses dengan perilaku dan struktur yang overlap.
 Contoh:
Class InterestBearing menyimpan tanggal pembayaran bunya pertama.
Class Insurable menyimpan tanggal premi asuransi pertama di bayar
BankAccount diturunkan dari InterestBearing dan Insurable.
 Masalah ini bukan tidak dapat diatasi tetapi akan menambah kompleksitas dari bahasa.
 Java dirancang menjadi bahasa yang sederhana sehingga tidak mendukung multiple inheritance.
 Solusi yang diberikan Java adalah melalui interface.
Jadi, java hanya mengijinkan single inheritance bukan multiple inheritance. Karena Suatu class hanya dapat diturunkan dari satu class induk.
 Multiple inheritance, di Java, dapat diperoleh dengan memanfaatkan fitur interface.

5. Soal
 Perhatikan deklarasi berikut:
◦ Asset asset1 = new RealEstate(1834.34);
◦ Insurable asset2 = new RealEstate(1834.34);
◦ InterestBearing asset3 = new BankAccount(794.43);
◦ BankAccount asset4 = new BankAccount(794.43);
 Mana pernyataan berikut yang sah (legal)?
◦ System.out.println(asset1.getPremium());
◦ System.out.println(asset1.getValue());
◦ System.out.println(asset2.getPremium());
◦ System.out.println(asset2.getInterestRate());
◦ System.out.println(asset3.getPremium());
◦ System.out.println(asset3.getInterestRate());
◦ System.out.println(asset4.getPremium());
◦ System.out.println(asset4.getValue());
◦ System.out.println(asset4.getInterestRate());
Jawab :
Pernyataan yang sah :
a. Asset asset1 = new RealEstate(1834.34);
System.out.println(asset1.getValue());
b. Insurable asset2 = new RealEstate(1834.34);
System.out.println(asset2.getPremium());
c. InterestBearing asset3 = new BankAccount(794.43);
System.out.println(asset3.getInterestRate());
d. BankAccount asset4 = new BankAccount(794.43);
System.out.println(asset4.getPremium());
System.out.println(asset4.getInterestRate());

Tugas Stuktur Data No 3 - No 5


3. Buat sebuah program yang menggunakan sebuah statement for untuk menemukan integer terkecil dari beberapa integer yang dimasukkan oleh user.

Listing programnya adalah sebagai berikut :

Outputnya adalah :


4. Menggunakan statement for untuk menampilkan bilangan ganjil dari 1 sampai 15 :
#include
main()
{
int a;
for (a=1; a<=15; a+=2)
{ cout<}

outputnya adalah :

>

5. Listing Program C++ untuk menampilkan deret bintang
//menampilkan bintang
#include
#include
void main()
{
{
int a,b,d,i,j;
for (d=1; d<=10; d++)
{ cout< for(i=1; i<=d; i++)
{ cout<<"*"; }
}

for (d=10; d>=1; d--)
{
if ( d==10)
{
gotoxy(20,2);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==9)
{
gotoxy(20,3);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==8)
{
gotoxy(20,4);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==7)
{
gotoxy(20,5);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==6)
{
gotoxy(20,6);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==5)
{
gotoxy(20,7);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==4)
{
gotoxy(20,8);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==3)
{
gotoxy(20,9);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==2)
{
gotoxy(20,10);
for(j=1;j<=d;j++)
{ cout<<"*"; }
}
if ( d==1)
{
gotoxy(20,11);
for(j=1;j<=d;j++)
{ cout<<"*"; }

}

}

for (a=10;a>=1;a--)
{
if (a==10)
{
gotoxy(35,2);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==9)
{
gotoxy(36,3);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==8)
{
gotoxy(37,4);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==7)
{
gotoxy(38,5);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==6)
{
gotoxy(39,6);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==5)
{
gotoxy(40,7);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==4)
{
gotoxy(41,8);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==3)
{
gotoxy(42,9);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==2)
{
gotoxy(43,10);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==1)
{
gotoxy(44,11);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
}


for (a=1;a<=10;a++)
{
if (a==1)
{
gotoxy(60,2);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==2)
{
gotoxy(59,3);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==3)
{
gotoxy(58,4);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==4)
{
gotoxy(57,5);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==5)
{
gotoxy(56,6);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==6)
{
gotoxy(55,7);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==7)
{
gotoxy(54,8);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==8)
{
gotoxy(53,9);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==9)
{
gotoxy(52,10);
for (b=1;b<=a;b++)
{ cout<<"*"; }
}
if (a==10)
{
gotoxy(51,11);
for (b=1;b<=a;b++)
{ cout<<"*"; }

}

}
}

{cout< cout< cout< cout< cout<cout<< " Create by:Prima";} }

Outpunya adalah :






Tugas Stuktur Data No 1.

JAWABAN :
1. Eror dari kode program berikut :
a. For ( x = 100, x>=1, x++)
cout<< x << endl;
adalah :
- Pendeklarasian kata For seharusnya menggunakan huruf kecil (for).
- Parameter nilai pencacah dalam tubuh for seharusnya x—
- Akhir parameter di dalam tubuh for seharusnya menggunakan titik koma seperti for(x=100; x>=1; x--)

b. Kode berikut seharusnya mencetak suatu integer itu genap atau ganjil :
switch ( value % 2 )
{
case 0:
cout<< ” ganjil integer ”< case 1:
cout<< “ genap integer “<}
adalah :
- Jika ingin mencetak bilangan termasuk genap atau ganjil maka kita harus tau kalau bilangan yang modulus 2 adalah 0 adalah bilangan genap.
Maka kode diatas seharusnya :
switch ( value % 2 )
{
case 0:
cout<< ” genap integer ”< case 1:
cout<< “ ganjil integer “<}
- Biasanya penggunaan switch case dalam kode program harus diikuti dengan kata btreak;
switch ( value % 2 )
{
case 0:
cout<< ” genap integer ”< break ;
case 1:
cout<< “ ganjil integer “< break;
}
c. Kode program berikut seharusnya mengeluarkan output integer ganjil dari 19 sampai dengan 1.
for( x = 19; x >=1 ; x +=2)
cout<< x << endl;
adalah :
Jika kita ingin menampilkan output bilangan ganjil dari besar ke kecil maka kita harus melakukan pengurangan bilangan pencacah, seperti di bawah ini :
for( x = 19; x >=1 ; x - =2)
cout<< x << endl;
d. Kode program berikut seharusnya mengeluarkan output integer genap dari 2 sampai 100:
counter = 2;
do
{
cout<< counter << endl;
counter +=2;
} While ( counter < 100 );
adalah :
code program diatas sudah benar tetapi yang salah disini yaitu pendeklarasian While dimana seharusnya menggunalan huruf kecil, seperti dibawah ini :
counter = 2;
do
{
cout<< counter << endl;
counter +=2;
} while ( counter < 100 );



2. Program yang menggunakan statement for untuk menjumlahkan integer yang dimasukan oleh user :
Listing program :

#include
#include
main()
{


int n[6], i;
double tot;
cout<<" ================*******================== "< cout<<" ...:: Ini adalah progam penjumlahan ::... "< cout<<" ================*******================== "< cout<
cout<<"Masukan 6 buah data nilai :"< for (i=1; i<=6; i++)
{ cout< cin>>n[i]; }
cout< cout<<"Data nilai yang anda masukan :"< for (i=1; i<=6; i++)
{ cout< tot=0;
for (i=1; i<=6; i++)
{
tot+=n[i]; }
cout<<"_______+"< cout< cout<<"Jadi total jumlah nilai adalah : "<}

outputnya adalah: