Makul : Algoritma dan
Struktur Data
ABSTRACT
DATA TYPE
1. TUJUAN
Membuat program yang menggunakan abstract data type (ADT)
Membuat program yang menggunakan abstract data type (ADT)
2. PERMASALAHAN
Membuat program yang memodelkan hewan peliharan virtual (VPet). Pet memiliki berat dan bisa berstatus lapar dan tidak lapar. Pet bisa diberi makan yang akan berefek pada status laparnya berdasarkan :
- jika berat makanan >= ½ berat pet, maka pet tidak lapar, jika tidak maka pet lapar
- setiap diberi makan berat pet bertambah ¼ berat makanan
Membuat program yang memodelkan hewan peliharan virtual (VPet). Pet memiliki berat dan bisa berstatus lapar dan tidak lapar. Pet bisa diberi makan yang akan berefek pada status laparnya berdasarkan :
- jika berat makanan >= ½ berat pet, maka pet tidak lapar, jika tidak maka pet lapar
- setiap diberi makan berat pet bertambah ¼ berat makanan
3. DESAIN
a. STEP
1 SPESIFICATION
b. STEP
2 APPLICATION
Operation
|
Discription
|
c/c++
|
VPet(b,stts)
|
Membuat
VPet dengan menentukan berat dan status lapar pet. Memberikan nilai pada
variabel b yaitu sebagai berat dan variabel stts sebagai bool lapar.
(constructor)
|
VPet
charlie(150, false);
|
VPet()
|
Membuat
VPet tanpa menentukan berat dan status lapar/menggukanan default. Memberikan
nilai default kepada berat dan status lapar pet bila pengguna tidak
memberikan nilai. (constructor)
|
VPet::VPet(){
berat
= 100;
lapar
= true;
}
VPet heli;
|
berimakan(jml)
|
Memberi
VPet makan. Memberikan nilai ke variabel jml yang digunakan sebagai jumlah
makanan yang diberi (mutator)
|
charlie.berimakan(10);
atau charlie.berimakan(jml);
|
getLapar()
|
Mengakses
status bool lapar (accessor)
|
charlie.getBerat()
double
VPet::getBerat(){
return berat;
}
|
getBerat()
|
Mengakses
berat VPet
|
charlie.getLapar()
bool
VPet::getLapar(){
return lapar;
}
|
c. STEP
3 IMPLEMENTATION
#include <iostream>
using namespace std;
class VPet {
public:
//Members
Functions
//
(constructors)
VPet(double
berat, bool lapar);
VPet();
void
berimakan(double jumlah);
bool
getLapar();
double
getBerat();
private:
//
Data Members
double
berat;
bool
lapar;
};
VPet::VPet(double b,
bool stts){
berat
= b;
lapar
= stts;
}
VPet::VPet(){
berat
= 100;
lapar
= true;
}
void VPet::berimakan(double
jml){
if(jml
>= 0.5 * berat){
lapar = false;
}
else{
lapar = true;
}
berat
= berat + 0.25 * jml;
}
double VPet::getBerat(){
return
berat;
}
bool VPet::getLapar(){
return
lapar;
}
void main(){
VPet
charlie(150, false);
VPet
heli;
double
jml;
cout<<"Jumlah
makanan yang diberikan untuk hewan - hewan peliharaan (kg) : ";
cin>>jml;
charlie.berimakan(jml);
heli.berimakan(jml);
cout<<"Berat
Heli : "<<heli.getBerat()<<" kg"<<endl;
if(heli.getLapar())
{
cout<<"Heli masih lapar"<<endl;
}
else
{
cout<<"Heli tidak lapar"<<endl;
}
cout<<"Berat
Charlie : "<<charlie.getBerat()<<"
kg"<<endl;
if(charlie.getLapar())
{
cout<<"Charlie masih lapar"<<endl;
}
else
{
cout<<"Charlie tidak lapar"<<endl;
}
system("pause");
}
|
Program
Screenshot :