12 Jan 2010

latiian lagii :)

- inheritance -

#include"iostream.h"
#include"string.h"

class Old
{
    protected :
       char nama[25];
       char hp[20];
    public :
      void setNama(char *nama)
      {
          strcpy(this->nama,nama);
      }
      void setHp(char *hp)
      {
          strcpy(this->hp,hp);
      }
      char *getNama()
      { return nama; }
      char *getHp()
      { return hp; }
};

class New : public Old
{
    private :
       char add[30];
      char email[30];
    public :
      void setAdd(char *add)
      {
          strcpy(this->add,add);
      }
      void setEmail(char *email)
      {
          strcpy(this->email,email);
      }
      char *getAdd()
      { return add; }
      char *getEmail()
      { return email; }
};

void menu()
{
   cout << "My Phonebook" << endl;
   cout << "============" << endl << endl;
   cout << "1. Isi Phonebook Seri Lama" << endl;
   cout << "2. Lihat Phonebook Seri Lama" << endl;
   cout << "3. Isi Phonebook Seri Baru" << endl;
   cout << "4. Lihat Phonebook Seri Baru" << endl;
   cout << "5. Keluar" << endl << endl;
}

void main()
{
   char nama[25];
   char hp[20];
   char add[30];
   char email[30];
   int pilih;
   int flag;
   int i=0;
   int j=0;
   int k;
   Old *book1[10];
   New *book2[10];

   do{
           menu();
           do{
               cout << "Masukkan pilihan anda : ";
               cin >> pilih;
               cin.clear();
               cin.sync();
            }while(pilih<1||pilih>5);

         switch(pilih)
         {
             case 1 : book1[i] = new Old;
                          do{
                           cout << "\n\n" << "Masukkan nama [5-20 karakter] : ";
                           cin >> nama;
                           cin.clear();
                           cin.sync();
                          }while(strlen(nama)<5||strlen(nama)>20);
                         do{
                           cout << "\n\n" << "Masukkan nohp [10 - 12 karakter dan harus angka] : ";
                           cin >> hp;
                           cin.clear();
                           cin.sync();
                           flag=1;
                           for(int k=0;k
                           {
                               if(hp[i]<'0'||hp[i]>'9')
                              { flag=0; }
                           }
                         }while(flag==0||strlen(hp)<10||strlen(hp)>12);
                         book1[i]->setNama(nama);
                         book1[i]->setHp(hp);
                         i++;
                         break;

            case 2 : for(k=0;k
                        {
                           cout << "\n" << book1[k]->getNama() << "\t: " << book1[k]->getHp() << "\n";
                        }
                        break;

            case 3 : book2[j] = new New;
                         do{
                           cout << "\n\n" << "Masukkan nama [5-20 karakter] : ";
                           cin >> nama;
                           cin.clear();
                           cin.sync();
                         }while(strlen(nama)<5||strlen(nama)>20);
                         do{
                           cout << "\n\n" << "Masukkan nohp [10 - 12 karakter dan harus angka] : ";
                           cin >> hp;
                           cin.clear();
                           cin.sync();
                           flag=1;
                           for(int k=0;k
                           {
                               if(hp[i]<'0'||hp[i]>'9')
                              { flag=0; }
                           }
                         }while(flag==0||strlen(hp)<10||strlen(hp)>12);
                         do{
                           cout << "\n\n" << "Masukkan alamat [5-30 karakter] : ";
                           cin >> add;
                           cin.clear();
                           cin.sync();
                         }while(strlen(add)<5||strlen(add)>30);
                         do{
                           cout << "\n\n" << "Masukkan email [5 - 20 karakter dan harus angka] : ";
                           cin >> email;
                           cin.clear();
                           cin.sync();
                         }while(strlen(email)<5||strlen(email)>20);
                         book2[j]->setNama(nama);
                         book2[j]->setHp(hp);
                         book2[j]->setAdd(add);
                         book2[j]->setEmail(email);
                         j++;
                         break;

            case 4 : for(k=0;k
                        {
                           cout << "\nNama\t: " << book2[k]->getNama() <<"\nNo.\t: " <<

                           book2[k]->getHp() << "\nAlamat\t: " << book2[k]->getAdd() 
                           << "\nEmail\t: " << book2[k]->getEmail() << "\n";
                        }
                        break;
         }

           cin.get();
         cout << "\n\n\n";
   }while(pilih!=5);

   for(int k=0;k
   {
       delete(book1[k]);
   }
   for(int l=0;l
   {
       delete(book2[l]);
   }
}

latiiiiaan ngoding :)


- soal lab polymorphism -


#include"iostream.h"
#include"string.h"

class Tempat
{
    protected :
      char nama[25];
      int ttl_pD;
      int ttl_pA;
      int ttl;

   public :
       Tempat()
      {
         int ttl_pD=0;
         int ttl_pA=0;
         int ttl=0;
      }
       void setN(char nama[])
      {
          strcpy(this->nama,nama);
      }

      virtual void ttl_PD(int x)=0;
      virtual void ttl_PA(int y)=0;
      int get_pajakD(){return ttl_pD;}
      int get_pajakA(){return ttl_pA;}
      int get_Ttl()
      { return ttl = ttl_pD + ttl_pA; }
      char *getN()
      { return nama; }
};

class Apartemen : public Tempat
{
   public :
      void ttl_PD(int x)
      {
         ttl_pD = x*50000;
      }
      void ttl_PA(int y)
      {
         ttl_pA = y*30000;
      }
};

class Rumah : public Tempat
{
   public :
      void ttl_PD(int x)
      {
         ttl_pD = x*10000;
      }
      void ttl_PA(int y)
      {
         ttl_pA = y*5000;
      }
};

void menu()
{
   cout << endl << "\t\t\t\tLife Style" << endl << endl;
   cout << " Pilih Tempat Tinggal :" << endl;
   cout << " 1. Apartemen" << endl;
   cout << " 2. Rumah" << endl;
   cout << " 3. Quit" << endl;
}

void main()
{
   int pilih;
   int d,a;
   char nama[25];
   Tempat *obj;

   do{
         menu();
         do{
               cout << " Pilihan : ";
               cin >> pilih;
               cin.clear();
               cin.sync();
         }while(pilih<1||pilih>3);

         switch(pilih)
         {
             case 1 : obj = new Apartemen;
                         cout << endl << " Masukkan nama Anda [max 20 char] : ";
                         cin >> nama;
                         cin.clear();
                         cin.sync();
                         obj->setN(nama);
                         cout << endl << " \03 Apartemen \03" << endl;
                         cout << " Selamat Datang " << obj->getN() << " " <<

                         (char)1 << endl << endl;
                         cout << " Masukkan jumlah orang dewasa [1-5] : ";
                         cin >> d;
                         cin.clear();
                         cin.sync();
                         cout << " Masukkan jumlah anak-anak [0-5]    : ";
                         cin >> a;
                         cin.clear();
                         cin.sync();
                         obj->ttl_PD(d);
                         obj->ttl_PA(a);
                         cout << endl << " Pajak orang dewasa : Rp 50000/orang"

                         << endl;
                         cout << " Pajak anak-anak    : Rp 30000/anak" << endl <<

                         endl;
                         cout << " Total pajak hidup orang dewasa : Rp. " <<

                         obj->get_pajakD() << endl;
                         cout << " Total pajak hidup anak-anak    : Rp. " <<

                         obj->get_pajakA() << endl;
                         cout << " Total pajak keseluruhan        : Rp. " <<

                         obj->get_Ttl() << endl;
                         cout << endl << " Tekan enter untuk lanjut...";
                         delete (obj);
                         cin.get();
                         break;

            case 2 : obj = new Rumah;
                        cout << endl << " Masukkan nama Anda [max 20 char] : ";
                        cin >> nama;
                        cin.clear();
                        cin.sync();
                        obj->setN(nama);
                        cout << endl << " \03 Rumah \03" << endl;
                        cout << " Selamat Datang " << obj->getN() << " " << "\01"

                        << endl << endl;
                        cout << " Masukkan jumlah orang dewasa [1-5] : ";
                        cin >> d;
                        cin.clear();
                        cin.sync();
                        cout << " Masukkan jumlah anak-anak [0-5]    : ";
                        cin >> a;
                        cin.clear();
                        cin.sync();
                        obj->ttl_PD(d);
                        obj->ttl_PA(a);
                        cout << endl << " Pajak orang dewasa : Rp 10000/orang"

                        << endl;
                        cout << " Pajak anak-anak    : Rp 5000/anak" << endl << endl;
                        cout << " Total pajak hidup orang dewasa : Rp. " <<

                        obj->get_pajakD() << endl;
                        cout << " Total pajak hidup anak-anak    : Rp. " <<

                        obj->get_pajakA() << endl;
                        cout << " Total pajak keseluruhan        : Rp. " <<

                        obj->get_Ttl() << endl;
                        cout << endl << " Tekan enter untuk lanjut...";
                        delete (obj);
                        cin.get();
                        break;
         }
         cout << "\n\n\n\n\n";
   }while(pilih!=3);

    cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

    << endl;
    cout << "\t                    Enjoy Your Life Style" << endl;
    cout << "\t                \03 Tekan enter untuk keluar \03" << endl;
    cout << "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

    << endl;
    cin.get();
}