Minggu, 09 Oktober 2011

Materi PBO 2011

Assalmu'alaikum



Pemrograman Berorientasi Obyek (PBO)
Tujuan :  
a.       mempelajari konsep dasar dan teknik pembuatan program dengan pendekatan  Obyek.
b.      mempelajari penulisan obyek dalam salah satu bahasa pemrograman berorientasi obyek menggunakan pemrograman  c++
 Materi :
1.      Konsep structure dalam pendekatan OOP
2.   Konsep dasar pemrograman berorientasi obyek (obyek oriented programming)
3.      Pengantar bahasa pemrograman c++
4.      Oop dengan enkapsulasi
5.      Oop dengan hubungan antar obyek client suplier
6.      Pewarisan (inheritance)
7.      Polimorfisme dan Generalitas
 Konsep Dasar Pemrograman Berorientasi Obyek
·        Adalah suatu teknik atau cara pendekatan baru dalam melihat permasalahan dari sistem (sistem perangkat lunak, sistem informasi atau sistem yang lain).
·        Pendekatan berorientasi obyek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan obyek yang berkorespondensi dengan obyek-obyek dunia nyata.
·        Ada banyak cara untuk mengabstraksikan dan memodelkan obyek-obyek tersebut, mulai dari abstraksi obyek, kelas, hubungan antar kelas sampai abstraksi sistem.
·        Saat mengabstraksikan dan memodelkan obyek ini, data dan proses-proses yang dipunyai oleh obyek akan dienkapsulasi (dibungkus) menjadi satu kesatuan.
 Contoh :
Tinjau aktifitas kuliah pada suatu sistem akademik. Dari aktifitas kuliah tersebut secara eksplisit ada 3 obyek yang langsung dapat dikenali yaitu : Dosen yang memberikan kuliah, Mahasiswa yang mengikuti kuliah, dan Materi kuliah yang disampaikan. Secara implisit ada 2 obyek lain yang dapat dikenali yaitu : Jadwal kapan kuliah akan diadakan dan Nilai yang didapat mahasiswa dari mata kuliah yang sudah diikutinya. Abstraksi dan pemodelan untuk salah satu dari kelima obyek tersebut, misalnya untuk obyek Dosen adalah : diabstraksikan menjadi Kelas Dosen terdiri dari atribut : Kode Dosen, Nama Dosen dan Pendidikan, yang mempunyai operasi : rekam, update, retrieve dll.
 ·        Dalam rekayasa perangkat lunak konsep pendekatan berorientasi obyek dapat diterapkan pada tahap analisis, perancangan, pemrograman dan pengujian perangkat lunak.
·        Ada berbagai teknik ynag dapat digunakan pada masing-masing tahap tersebut, dengan aturan dan alat bantu pemodelan tertentu.
 Obyek
·        Adalah abstraksi dari sesuatu yang mewakili dunia nyata seperti : benda, manusia, satuan organisasi, tempat, kejadian, struktur, status atau hal-hal yang bersifat abstrak.
·        Suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status obyek.
·        Dalam konteks Oop, obyek adalah instansiasi (yang dibentuk secara seketika) dari kelas pada saat eksekusi.
·        Obyek mempunyai siklus hidup : diciptakan, dimanipulasi, dan dihancurkan.
 Kelas
·        Adalah kumpulan dari obyek-obyek dengan karakteristik yang  sama.
·        Adalah definis statik dari himpunan obyek yang sama yang mungkin lahir atau diciptakan dari kelas tersebut.
·        Sebuah kelas akan mempunyai sifat (atribut) , kelakuan (operasi), hubungan (relationsip) dan arti.
·        Suatu kelas dapat diturunkan dari kelas yang lain, dimana atribut dari kelas semula dapat diwariskan ke kelas yang baru.
 Property Obyek
Atribut
·        Nilai atau elemen-elemen data yang dimiliki oleh obyek dalam kelas obyek.
·        Merupakan ciri dari sebuah obyek.
·        Dipunyai secara individual oleh sebuah obyek

Layanan (Service)
·        Metode atau operasi yang berfungsi untuk memanipulasi obyek itu sendiri
·        Fungsi atau transformasi yang dapat dilakukan terhadap obyek atau dilakukan oleh obyek.
·        Dapat berasal dari : model obyek, event, aktifitas atau aksi keadaan, fungsi, kelakuan dunia nyata.
 Klasifikasi Obyek
Menurut [BOO95] obyek dapat dibedakan menjadi :
·        ADT (abstract data type) definisi dari kelas dimana komponen type menjadi atribut dan fungsi primitif menjadi operasi/metode/layanan.
·        Mesin, obyek pasif yang punya status yang akan diaktifkan oleh obyek lain, fungsi primitigf pada mesin merupakan mekanisme transisi yang mengubah suatu status ke status lain.
·        Proses, obyek aktif yang mempunyai urutan kendali (thread of control).



 Karakteristik Program Berorientasi Obyek
Sistem Berorientasi Obyek
·        Sebuah program yang dibangun dengan berdasarkan metode berorientasi obyek adalah sebuah sistem yang komponennya dibungkus (dienkapsulasi) menjadi kelompok data dan fungsi.
·        Setiap komponen dalam sistem tersebut dapat mewarisi atribut dan sifat dari komponen lainnya, dan dapat berinteraksi satu sama lainnya.
 Karekteristik atau sifat-sifat yang dipunyai sebuah sistem berorientasi obyek adalah :
·        Abstraksi,
prinsip untuk merepresentasikan dunia nyata yang komplek menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.
·        Enkapsulasi,
pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai obyek, untuk menyembunyikan implementasi dari obyek sehingga obyek lain tidak mengetahui cara kerjanya.
·        Pewarisan (inheritance),
mekanisme yang memungkinkan suatu obyek (kelas) mewarisi sebagian atau seluruh definisi dari obyek lain sebagai bagian dari dirinya.
·        Reusability,
pemanfaatan kembali obyek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan obyek tersebut.
·        Generalisasi dan spesialisasi,
menunjukan hubungan antara kelas dan obyek yang umum dengan kelas dan obyek yang khusus.
·        Komunikasi antar obyek,
dapat dilakukan lewat pesan (message) yang dikirim dari satu obyek ke obyek lainnya.
·        Polymorphism,
kemampuan suatu obyek untuk digunakan dibanyak tujuan yang berbeda dengan nama yang sama sehingga dapat menghemat pemakaian baris program.


Perbandingan structure dengan class

Program 01.

//program dengan structure sederhana
#include
#include
#include
#include

struct Record_Mhs
{
   char Nama[20];
   char Alamat[30];
   char Jurusan[30];
   int Usia;
   char Status;
};

void main()
{
   Record_Mhs Data_Mahasiswa ;

   // inputan data
   strcpy(Data_Mahasiswa.Nama,"Maulana");
   strcpy(Data_Mahasiswa.Alamat,"Banjarmasin");
   strcpy(Data_Mahasiswa.Jurusan,"S-1 Teknik Informatika");
   Data_Mahasiswa.Usia = 19;
   Data_Mahasiswa.Status = 'B';

   cout << "\n\nNama                 : " << Data_Mahasiswa.Nama;
   cout << "\n\nAlamat    : " << Data_Mahasiswa.Alamat;
   cout << "\n\nJurusan : " << Data_Mahasiswa.Jurusan;
   cout << "\n\nUsia                   : " << Data_Mahasiswa.Usia;
   cout << "\n\nStatus    : " << Data_Mahasiswa.Status;
   getch();
}

Program 02.

//program dengan class sederhana
#include
#include
#include
#include

class Record_Mhs
{
  public :
   char Nama[20];
   char Alamat[30];
   char Jurusan[30];
   int Usia;
   char Status;
};

void main()
{
   Record_Mhs Data_Mahasiswa ;

   // inputan data
   strcpy(Data_Mahasiswa.Nama,"Maulana");
   strcpy(Data_Mahasiswa.Alamat,"Banjarmasin");
   strcpy(Data_Mahasiswa.Jurusan,"S-1 Teknik Informatika");
   Data_Mahasiswa.Usia = 19;
   Data_Mahasiswa.Status = 'B';

   cout << "\n\nNama : " << Data_Mahasiswa.Nama;
   cout << "\n\nAlamat             : " << Data_Mahasiswa.Alamat;
   cout << "\n\nJurusan : " << Data_Mahasiswa.Jurusan;
   cout << "\n\nUsia     : " << Data_Mahasiswa.Usia;
   cout << "\n\nStatus  : " << Data_Mahasiswa.Status;
   getch();
}

Program 03.

//=====================================================
// program dengan structure sederhana -2
// inputan keyboard
#include
#include
#include
#include

struct Record_Mhs
{
   char Nama[20];
   char Alamat[30];
   char Jurusan[30];
   int Usia;
   char Status;
};

void main()
{
   Record_Mhs Data_Mahasiswa ;

   // inputan data
   cout << "\nInputan Data Mahasiswa";
   cout << "\nNama     : ";  cin >> Data_Mahasiswa.Nama;
   cout << "Alamat       : ";  cin >> Data_Mahasiswa.Alamat;
   cout << "Jurusan  : ";  cin >> Data_Mahasiswa.Jurusan;
   cout << "Usia           : ";  cin >> Data_Mahasiswa.Usia;
   cout << "Status   : ";  cin >> Data_Mahasiswa.Status;

   cout << "\nData mahasiswa yang telah diinputkan";
   cout << "\nNama        : " << Data_Mahasiswa.Nama;
   cout << "\nAlamat    : " << Data_Mahasiswa.Alamat;
   cout << "\nJurusan   : " << Data_Mahasiswa.Jurusan;
   cout << "\nUsia        : " << Data_Mahasiswa.Usia;
   cout << "\nStatus    : " << Data_Mahasiswa.Status;

   getch();
}

Program 04.

//=====================================================
// program dengan class sederhana -2
// inputan keyboard
#include
#include
#include
#include

class Record_Mhs
{
  public:
   char Nama[20];
   char Alamat[30];
   char Jurusan[30];
   int Usia;
   char Status;
};

void main()
{
   Record_Mhs Data_Mahasiswa ;

   // inputan data
   cout << "\nInputan Data Mahasiswa";
   cout << "\nNama     : ";  cin >> Data_Mahasiswa.Nama;
   cout << "Alamat       : ";  cin >> Data_Mahasiswa.Alamat;
   cout << "Jurusan  : ";  cin >> Data_Mahasiswa.Jurusan;
   cout << "Usia           : ";  cin >> Data_Mahasiswa.Usia;
   cout << "Status   : ";  cin >> Data_Mahasiswa.Status;


   cout << "\nData mahasiswa yang telah diinputkan";
   cout << "\nNama        : " << Data_Mahasiswa.Nama;
   cout << "\nAlamat    : " << Data_Mahasiswa.Alamat;
   cout << "\nJurusan   : " << Data_Mahasiswa.Jurusan;
   cout << "\nUsia        : " << Data_Mahasiswa.Usia;
   cout << "\nStatus    : " << Data_Mahasiswa.Status;

   getch();
}

Program 05.

// program dengan structure berbentuk array
// memanfaatkan looping for untuk input data

#include
#include
#include
#include

struct Record_Mhs
{
   char Nama[20];
   char Alamat[30];
   char Jurusan[30];
   int Usia;
   char Status;
};

void main()
{
   Record_Mhs Data_Mahasiswa[10] ;
   int i,n;

   // inputan data
   cout << "Berapa jumlah datanya [maximal 10 data]: ";
   cin >> n;
   for(i=0;i
   {
     cout << "\nInputan Data Mahasiswa ke-" << i+1;
     cout << "\nNama   : ";  cin >> Data_Mahasiswa[i].Nama;
     cout << "Alamat     : ";  cin >> Data_Mahasiswa[i].Alamat;
     cout << "Jurusan   : ";  cin >> Data_Mahasiswa[i].Jurusan;
     cout << "Usia      : ";  cin >> Data_Mahasiswa[i].Usia;
     cout << "Status    : ";  cin >> Data_Mahasiswa[i].Status;
   }


   cout << "\n\nData Kemahasiswaan yang telah diinputkan adalah";
   for(i=0;i
   {
     cout << "\n\nData mahasiswa ke-" << i+1;
     cout << "\nNama   : " << Data_Mahasiswa[i].Nama;
     cout << "\nAlamat : " << Data_Mahasiswa[i].Alamat;
     cout << "\nJurusan : " << Data_Mahasiswa[i].Jurusan;
     cout << "\nUsia    : " << Data_Mahasiswa[i].Usia;
     cout << "\nStatus  : " << Data_Mahasiswa[i].Status;
   }

   getch();
}


Program 06.
// program dengan class berbentuk array
// memanfaatkan looping for untuk input data

#include
#include
#include
#include

class Record_Mhs
{
  public :
   char Nama[20];
   char Alamat[30];
   char Jurusan[30];
   int Usia;
   char Status;
};


void main()
{
   Record_Mhs Data_Mahasiswa[10] ;
   int i,n;

   // inputan data
   cout << "Berapa jumlah datanya [maximal 10 data]: ";
   cin >> n;
   for(i=0;i
   {
     cout << "\nInputan Data Mahasiswa ke-" << i+1;
     cout << "\nNama   : ";  cin >> Data_Mahasiswa[i].Nama;
     cout << "Alamat     : ";  cin >> Data_Mahasiswa[i].Alamat;
     cout << "Jurusan   : ";  cin >> Data_Mahasiswa[i].Jurusan;
     cout << "Usia      : ";  cin >> Data_Mahasiswa[i].Usia;
     cout << "Status    : ";  cin >> Data_Mahasiswa[i].Status;
   }


   cout << "\n\nData Kemahasiswaan yang telah diinputkan adalah";
   for(i=0;i
   {
     cout << "\n\nData mahasiswa ke-" << i+1;
     cout << "\nNama   : " << Data_Mahasiswa[i].Nama;
     cout << "\nAlamat : " << Data_Mahasiswa[i].Alamat;
     cout << "\nJurusan : " << Data_Mahasiswa[i].Jurusan;
     cout << "\nUsia    : " << Data_Mahasiswa[i].Usia;
     cout << "\nStatus  : " << Data_Mahasiswa[i].Status;
   }

   getch();
}


Program 07.

// program dengan class yang berisi structure berbentuk array
// inputkan data dan tampilkan data

#include
#include
#include
#include

// konsepsi class
class Kelas_Data
{
   public :
     struct Record_Mhs
              {
                        char Nama[20];
                        char Alamat[30];
                        char Jurusan[30];
                        int Usia;
                        char Status;
     };
     Record_Mhs DataMhs;

     void InputDataMhs(char Var1[20],char Var2[30],char Var3[30],int Var4,char Var5)
     {
        strcpy(DataMhs.Nama,Var1);
        strcpy(DataMhs.Alamat,Var2);
        strcpy(DataMhs.Jurusan,Var3);
        DataMhs.Usia = Var4;
        DataMhs.Status = Var5;
     }
     void CetakDataMhs()
     {
        cout << "\n\nNIM     = " << DataMhs.Nama;
        cout << "\nNama    = " << DataMhs.Alamat;
        cout << "\nJurusan = " << DataMhs.Jurusan;
        cout << "\nUsia    = " << DataMhs.Usia;
        cout << "\nStatus  = " << DataMhs.Status;
     }
};

void main()
{
   // create class
   Kelas_Data Data_Mahasiswa[3];

   // inputan data + output data
   Data_Mahasiswa[0].InputDataMhs("Abdul Hakim","Martapura", \
"Teknik Informatika",22,'B');
   Data_Mahasiswa[1].InputDataMhs("Taufan Hakim","Banjarmasin", \
"Teknik Informatika",24,'B');
   Data_Mahasiswa[2].InputDataMhs("Guntur Hakim","Kualakapuas", \
"Teknik Informatika",22,'B');

   Data_Mahasiswa[0].CetakDataMhs();
   Data_Mahasiswa[1].CetakDataMhs();
   Data_Mahasiswa[2].CetakDataMhs();

   getch();
}


Program 08.

// program dengan class yang berisi structure berbentuk array
// inputkan data dan tampilkan data
//
#include
#include
#include
#include
#include

// konsepsi class
class Kelas_Data
{
   public :
     struct Record_Mhs
              {
                        char Nama[20];
                        char Alamat[22];
                        char Jurusan[22];
                        char Usia[3];
                        char Status[2];
     };
     Record_Mhs DataMhs[3];

     void InputDataMhs(char Var1[20],char Var2[22],char Var3[22], \
             char Var4[3],char Var5[2],int i)
     {
        strcpy(DataMhs[i].Nama,    Var1);
        strcpy(DataMhs[i].Alamat,  Var2);
        strcpy(DataMhs[i].Jurusan, Var3);
        strcpy(DataMhs[i].Usia,    Var4);
        strcpy(DataMhs[i].Status,  Var5);
     }
     void CetakDataMhs(int n)
     {
        for(int a=0;a < n; a++)
        {
          cout << "\n\nData mahasiswa ke-" << a+1;
          cout << "\n\nNIM     = " << DataMhs[a].Nama;
          cout << "\nNama    = " << DataMhs[a].Alamat;
          cout << "\nJurusan = " << DataMhs[a].Jurusan;
          cout << "\nUsia    = " << DataMhs[a].Usia;
          cout << "\nStatus  = " << DataMhs[a].Status;
          cout << "\n\nData sudah tersimpan di Memory";
        }
     }
};

void main()
{
   // create class
   Kelas_Data Data_Mahasiswa;

   // inputan data + output data
   Data_Mahasiswa.InputDataMhs("Abdul Hakim","Martapura", \
                        "Teknik Informatika","22","B",0);
   Data_Mahasiswa.InputDataMhs("Taufan Hakim","Banjarmasin", \
"Teknik Informatika","24","B",1);
   Data_Mahasiswa.InputDataMhs("Guntur Hakim","Kualakapuas", \
"Teknik Informatika","22","B",2);
   Data_Mahasiswa.CetakDataMhs(3);
   getch();
}

Program 09.

// program dengan class yang berisi structure berbentuk array
// inputkan data dan tampilkan data
//
#include
#include
#include
#include
#include

// konsepsi class
class Kelas_Data
{
   public :
     struct Record_Mhs
              {
                        char Nama[20];
                        char Alamat[22];
                        char Jurusan[22];
                        char Usia[3];
                        char Status[2];
     };  Record_Mhs DataMhs[10];

     void InputDataMhs(char Var1[20],char Var2[22],char Var3[22], \
char Var4[3],char Var5[2],int i)
     {
        strcpy(DataMhs[i].Nama,    Var1);        strcpy(DataMhs[i].Alamat,  Var2);
        strcpy(DataMhs[i].Jurusan, Var3);        strcpy(DataMhs[i].Usia,    Var4);
        strcpy(DataMhs[i].Status,  Var5);
     }
     
     void CetakDataMhs(int Jum)
     {
        for(int a=0;a < Jum; a++)
        {
          cout << "\n\nData mahasiswa ke-" << a+1;
          cout << "\n\nNama     = " << DataMhs[a].Nama;
          cout << "\nAlamat    = " << DataMhs[a].Alamat;
          cout << "\nJurusan = " << DataMhs[a].Jurusan;
          cout << "\nUsia    = " << DataMhs[a].Usia;
          cout << "\nStatus  = " << DataMhs[a].Status;
        }
     }
};

void main()
{
   int i,n;
   char vNama[20],vAlamat[22],vJur[22], vUsia[3],vStatus[2];

   // create class
   Kelas_Data Data_Mahasiswa;

   //inputkan jumlah data yang diproses
   cout << "Inputkan Jumlah data : "; cin >> n;
   if ( (n <0) || (n > 10) ) n = 1;   cout << "\n\n";
   // inputan data + output data
   for (i=0 ; i
   {
      cout << "Data Inputan ke-" << i+1 << "\n";
      cout << "Nama                 :           "; cin >> vNama;
      cout << "Alamat                :           "; cin >> vAlamat;
      cout << "Jurusan              :           "; cin >> vJur;
      cout << "Usia                    :           "; cin >> vUsia;
      cout << "Status                 :           "; cin >> vStatus;
      Data_Mahasiswa.InputDataMhs(vNama,vAlamat,vJur,vUsia,vStatus,i);
   }

   cout << "\n\nTampilkan Data\n";
   Data_Mahasiswa.CetakDataMhs(n);
   getch();
}

Program 10.

// Teknik penyusunan dan penulisan class

#include    // dapat dituliskan sbg
                                    // conio.h dan iostream.h
#include

class DataMHS
{
   public :
     char Nama[50];
     char MatKul[20];
     int Tugas;
     int UTS;
     int UAS;

     float HitungNilAkhir()
     {
        return (0.2 * Tugas) + (0.3 * UTS) + (UAS * 0.5);
     }
     char * Predikat(float NA)
     {
        if (NA < 60) return "Anda GAGAL...selamat Belajar lagi";
        else return "Selamat bersantai, anda LULUS..";
     }
     char Nhuruf(float NA)
     {
        if (NA < 40) return 'E';
        else if (NA <60) return 'D';
            else if (NA < 70) return 'C';
                else if (NA < 80) return 'B';
                     else return 'A';
     }
};

void main()
{
   float NA;

   DataMHS  XX;
   strcpy(XX.Nama,"Ronaldo");
   strcpy(XX.MatKul,"Pemrograman C++");
   XX.Tugas=89;
   XX.UTS = 100;
   XX.UAS = 76;
   NA = XX.HitungNilAkhir();  // proses pemanggilan activity HitungNilAkhir

   cout << "XX.Nama = " << XX.Nama << endl;
   cout << "XX.Mata Kuliah = " << XX.MatKul << endl;
            cout << "XX.Tugas = " << XX.Tugas << endl;
            cout << "XX.UTS = " << XX.UTS << endl;
            cout << "XX.UAS = " << XX.UAS << endl ;
            cout << "Nilai akhir = " << NA << endl;
   cout << "Predikat = " << XX.Predikat(NA) << endl;
   cout << "Nilai Huruf = " << XX.Nhuruf(NA) << endl << endl;

   DataMHS  YY;
   strcpy(YY.Nama,"Lionel Messi");
   strcpy(YY.MatKul,"Logika Algoritma");
   YY.Tugas=78;
   YY.UTS = 87;
   YY.UAS = 65;
   NA = YY.HitungNilAkhir();

   cout << "YY.Nama = " << YY.Nama << endl;
   cout << "YY.Mata Kuliah = " << YY.MatKul << endl;
            cout << "YY.Tugas = " << YY.Tugas << endl;
            cout << "YY.UAS = " << YY.UAS << endl ;
            cout << "Nilai akhir = " << NA << endl;
   cout << "Predikat = " << YY.Predikat(NA) << endl;
   cout << "Nilai Huruf = " << YY.Nhuruf(NA) << endl << endl;

   DataMHS  ZZ;


   cout << "Inputkan Nama : " ; cin >> ZZ.Nama;
   cout << "Inputkan Matakuliah : "; cin >> ZZ.MatKul;
            cout << "Inputkan Nilai Tugas : "; cin >>   ZZ.Tugas;
   cout << "Inputkan Nilai UTS : "; cin >>   ZZ.UTS ;
   cout << "Inputkan Nilai UAS : "; cin >>   ZZ.UAS ;
   NA = ZZ.HitungNilAkhir();

   cout << "ZZ.Nama = " << ZZ.Nama << endl;
   cout << "ZZ.Mata Kuliah = " << ZZ.MatKul << endl;
            cout << "ZZ.Tugas = " << ZZ.Tugas << endl;
            cout << "ZZ.UTS = " << ZZ.UTS << endl;
            cout << "ZZ.UAS = " << ZZ.UAS << endl ;
            cout << "Nilai akhir = " << NA << endl;
   cout << "Predikat = " << ZZ.Predikat(NA) << endl;
   cout << "Nilai Huruf = " << ZZ.Nhuruf(NA) << endl << endl;


   getch();
}


Program 11.
// Teknik penyusunan dan penulisan class
//  mengeluarkan pendefinisian fungsi
//  di luar body class

#include    // dapat dituliskan sbg
                                    // conio.h dan iostream.h
#include

class DataMHS
{
   public :
     char Nama[50];
     char MatKul[20];
     int Tugas;
     int UTS;
     int UAS;
     float DataMHS :: HitungNilAkhir();
     char * DataMHS :: Predikat(float NA);
     char DataMHS :: Nhuruf(float NA);

};

float DataMHS :: HitungNilAkhir()
{
  return (0.2 * Tugas) + (0.3 * UTS) + (UAS * 0.5);
}

char * DataMHS :: Predikat(float NA)
{
  if (NA < 60) return "Anda GAGAL...selamat Belajar lagi";
  else return "Selamat bersantai, anda LULUS..";
}

char DataMHS :: Nhuruf(float NA)
{
  if (NA < 40) return 'E';
  else if (NA <60) return 'D';
       else if (NA < 70) return 'C';
            else if (NA < 80) return 'B';
                 else return 'A';
}


void main()
{
   float NA;

   DataMHS  XX;
   strcpy(XX.Nama,"Ronaldo");
   strcpy(XX.MatKul,"Pemrograman C++");
   XX.Tugas=89;
   XX.UTS = 100;
   XX.UAS = 76;
   NA = XX.HitungNilAkhir();  // proses pemanggilan activity HitungNilAkhir

   cout << "XX.Nama = " << XX.Nama << endl;
   cout << "XX.Mata Kuliah = " << XX.MatKul << endl;
            cout << "XX.Tugas = " << XX.Tugas << endl;
            cout << "XX.UTS = " << XX.UTS << endl;
            cout << "XX.UAS = " << XX.UAS << endl ;
            cout << "Nilai akhir = " << NA << endl;
   cout << "Predikat = " << XX.Predikat(NA) << endl;
   cout << "Nilai Huruf = " << XX.Nhuruf(NA) << endl << endl;

   DataMHS  YY;
   strcpy(YY.Nama,"Lionel Messi");
   strcpy(YY.MatKul,"Logika Algoritma");
   YY.Tugas=78;
   YY.UTS = 87;
   YY.UAS = 65;
   NA = YY.HitungNilAkhir();

   cout << "YY.Nama = " << YY.Nama << endl;
   cout << "YY.Mata Kuliah = " << YY.MatKul << endl;
            cout << "YY.Tugas = " << YY.Tugas << endl;
            cout << "YY.UAS = " << YY.UAS << endl ;
            cout << "Nilai akhir = " << NA << endl;
   cout << "Predikat = " << YY.Predikat(NA) << endl;
   cout << "Nilai Huruf = " << YY.Nhuruf(NA) << endl << endl;

   DataMHS  ZZ;


   cout << "Inputkan Nama : " ; cin >> ZZ.Nama;
   cout << "Inputkan Matakuliah : "; cin >> ZZ.MatKul;
            cout << "Inputkan Nilai Tugas : "; cin >>   ZZ.Tugas;
   cout << "Inputkan Nilai UTS : "; cin >>   ZZ.UTS ;
   cout << "Inputkan Nilai UAS : "; cin >>   ZZ.UAS ;
   NA = ZZ.HitungNilAkhir();

   cout << "ZZ.Nama = " << ZZ.Nama << endl;
   cout << "ZZ.Mata Kuliah = " << ZZ.MatKul << endl;
            cout << "ZZ.Tugas = " << ZZ.Tugas << endl;
            cout << "ZZ.UTS = " << ZZ.UTS << endl;
            cout << "ZZ.UAS = " << ZZ.UAS << endl ;
            cout << "Nilai akhir = " << NA << endl;
   cout << "Predikat = " << ZZ.Predikat(NA) << endl;
   cout << "Nilai Huruf = " << ZZ.Nhuruf(NA) << endl << endl;


   getch();
}


Program 12.
// Teknik penyusunan dan penulisan Multi-class
//  membuat beberapa class dalam 1 program
//

#include    // dapat dituliskan sbg
                                                                                                // conio.h dan iostream.h
#include

class DataMHS
{
   public :
              char NIM[10];
     char Nama[50];
     char MatKul[20];
};

class DataNilaiMHS
{
   public :
     int Tugas;
     int UTS;
     int UAS;
};


void main()
{
   float NA;

   DataMHS  XX;
   DataNilaiMHS XX1;
   strcpy(XX.NIM,"123456");
   strcpy(XX.Nama,"Ronaldo");
   strcpy(XX.MatKul,"Pemrograman C++");
   XX1.Tugas=89;
   XX1.UTS = 100;
   XX1.UAS = 76;

   cout << "XX.NIM = " << XX.NIM << endl;
   cout << "XX.Nama = " << XX.Nama << endl;
   cout << "XX.Mata Kuliah = " << XX.MatKul << endl;
            cout << "XX1.Tugas = " << XX1.Tugas << endl;
            cout << "XX1.UTS = " << XX1.UTS << endl;
            cout << "XX1.UAS = " << XX1.UAS << endl << endl;

   DataMHS  YY;
   DataNilaiMHS YY1;
   strcpy(YY.NIM,"445566");
   strcpy(YY.Nama,"Lionel Messi");
   strcpy(YY.MatKul,"Logika Algoritma");
   YY1.Tugas=78;
   YY1.UTS = 87;
   YY1.UAS = 65;

   cout << "YY.NIM = " << YY.NIM << endl;
   cout << "YY.Nama = " << YY.Nama << endl;
   cout << "YY.Mata Kuliah = " << YY.MatKul << endl;
            cout << "YY1.Tugas = " << YY1.Tugas << endl;
            cout << "YY1.UTS = " << YY1.UTS << endl;
            cout << "YY1.UAS = " << YY1.UAS << endl<< endl ;

   DataMHS  ZZ;
   DataNilaiMHS ZZ1;

   cout << "Inputkan NIM : " ; cin >> ZZ.NIM;
   cout << "Inputkan Nama : " ; cin >> ZZ.Nama;
   cout << "Inputkan Matakuliah : "; cin >> ZZ.MatKul;
            cout << "Inputkan Nilai Tugas : "; cin >>   ZZ1.Tugas;
   cout << "Inputkan Nilai UTS : "; cin >>   ZZ1.UTS ;
   cout << "Inputkan Nilai UAS : "; cin >>   ZZ1.UAS ;

   cout << "ZZ.NIM = " << ZZ.NIM << endl;
   cout << "ZZ.Nama = " << ZZ.Nama << endl;
   cout << "ZZ.Mata Kuliah = " << ZZ.MatKul << endl;
            cout << "ZZ.Tugas = " << ZZ1.Tugas << endl;
            cout << "ZZ.UTS = " << ZZ1.UTS << endl;
            cout << "ZZ.UAS = " << ZZ1.UAS << endl << endl;

   getch();
}


Program 13.

// ----------------------------------------
// Teknik penyusunan dan penulisan Multi-Class
//  dengan teknik Inheritance
//  membuat sebuah class dengan sebuah anak/turunan
//

#include    // dapat dituliskan sbg
                                    // conio.h dan iostream.h
#include

class DataMHS
{
   public :
              char NIM[10];
     char Nama[50];
     char MatKul[20];
};

class DataNilaiMHS : public DataMHS
{
   public :
     int Tugas;
     int UTS;
     int UAS;
};


void main()
{
   float NA;

   DataMHS  XX;
   DataNilaiMHS XX1;
   strcpy(XX.NIM,"123456");
   strcpy(XX.Nama,"Ronaldo");
   strcpy(XX.MatKul,"Pemrograman C++");
   XX1.Tugas=89;
   XX1.UTS = 100;
   XX1.UAS = 76;

   cout << "XX.NIM = " << XX.NIM << endl;
   cout << "XX.Nama = " << XX.Nama << endl;
   cout << "XX.Mata Kuliah = " << XX.MatKul << endl;
            cout << "XX1.Tugas = " << XX1.Tugas << endl;
            cout << "XX1.UTS = " << XX1.UTS << endl;
            cout << "XX1.UAS = " << XX1.UAS << endl << endl;

   DataMHS  YY;
   DataNilaiMHS YY1;
   strcpy(YY.NIM,"445566");
   strcpy(YY.Nama,"Lionel Messi");
   strcpy(YY.MatKul,"Logika Algoritma");
   YY1.Tugas=78;
   YY1.UTS = 87;
   YY1.UAS = 65;

   cout << "YY.NIM = " << YY.NIM << endl;
   cout << "YY.Nama = " << YY.Nama << endl;
   cout << "YY.Mata Kuliah = " << YY.MatKul << endl;
            cout << "YY1.Tugas = " << YY1.Tugas << endl;
            cout << "YY1.UTS = " << YY1.UTS << endl;
            cout << "YY1.UAS = " << YY1.UAS << endl<< endl ;

   DataMHS  ZZ;
   DataNilaiMHS ZZ1;

   cout << "Inputkan NIM : " ; cin >> ZZ.NIM;
   cout << "Inputkan Nama : " ; cin >> ZZ.Nama;
   cout << "Inputkan Matakuliah : "; cin >> ZZ.MatKul;
            cout << "Inputkan Nilai Tugas : "; cin >>   ZZ1.Tugas;
   cout << "Inputkan Nilai UTS : "; cin >>   ZZ1.UTS ;
   cout << "Inputkan Nilai UAS : "; cin >>   ZZ1.UAS ;

   cout << "ZZ.NIM = " << ZZ.NIM << endl;
   cout << "ZZ.Nama = " << ZZ.Nama << endl;
   cout << "ZZ.Mata Kuliah = " << ZZ.MatKul << endl;
            cout << "ZZ.Tugas = " << ZZ1.Tugas << endl;
            cout << "ZZ.UTS = " << ZZ1.UTS << endl;
            cout << "ZZ.UAS = " << ZZ1.UAS << endl << endl;

   getch();
}


Program 14.

//------------------------------------------------------
// Teknik penyusunan dan penulisan Multi-Class
//  dengan teknik Inheritance
//  membuat sebuah class dengan sebuah anak/turunan
//

#include    // dapat dituliskan sbg
                                    // conio.h dan iostream.h
#include

class DataMHS
{
   public :
     char NIM[10];
     char Nama[50];
     char MatKul[20];
};

class DataNilaiMHS : public DataMHS
{
   public :
     int Tugas;
     int UTS;
     int UAS;
};


void main()
{
   float NA;

   DataNilaiMHS XX;
   strcpy(XX.NIM,"123456");
   strcpy(XX.Nama,"Ronaldo");
   strcpy(XX.MatKul,"Pemrograman C++");
   XX.Tugas=89;
   XX.UTS = 100;
   XX.UAS = 76;

   cout << "XX.NIM = " << XX.NIM << endl;
   cout << "XX.Nama = " << XX.Nama << endl;
   cout << "XX.Mata Kuliah = " << XX.MatKul << endl;
   cout << "XX.Tugas = " << XX.Tugas << endl;
   cout << "XX.UTS = " << XX.UTS << endl;
   cout << "XX.UAS = " << XX.UAS << endl << endl;

   DataNilaiMHS YY;
   strcpy(YY.NIM,"445566");
   strcpy(YY.Nama,"Lionel Messi");
   strcpy(YY.MatKul,"Logika Algoritma");
   YY.Tugas=78;
   YY.UTS = 87;
   YY.UAS = 65;

   cout << "YY.NIM = " << YY.NIM << endl;
   cout << "YY.Nama = " << YY.Nama << endl;
   cout << "YY.Mata Kuliah = " << YY.MatKul << endl;
   cout << "YY.Tugas = " << YY.Tugas << endl;
   cout << "YY.UTS = " << YY.UTS << endl;
   cout << "YY.UAS = " << YY.UAS << endl<< endl ;

   DataNilaiMHS ZZ;

   cout << "Inputkan NIM : " ; cin >> ZZ.NIM;
   cout << "Inputkan Nama : " ; cin >> ZZ.Nama;
   cout << "Inputkan Matakuliah : "; cin >> ZZ.MatKul;
            cout << "Inputkan Nilai Tugas : "; cin >>   ZZ.Tugas;
   cout << "Inputkan Nilai UTS : "; cin >>   ZZ.UTS ;
   cout << "Inputkan Nilai UAS : "; cin >>   ZZ.UAS ;

   cout << "ZZ.NIM = " << ZZ.NIM << endl;
   cout << "ZZ.Nama = " << ZZ.Nama << endl;
   cout << "ZZ.Mata Kuliah = " << ZZ.MatKul << endl;
   cout << "ZZ.Tugas = " << ZZ.Tugas << endl;
   cout << "ZZ.UTS = " << ZZ.UTS << endl;
   cout << "ZZ.UAS = " << ZZ.UAS << endl << endl;

   getch();
}

Program 15.

//====================================
// Teknik penyusunan dan penulisan Multi-Class
//  dengan teknik Inheritance
//  membuat sebuah class dengan beberapa anak/turunan
//
#include    // dapat dituliskan sbg
                                                                                                // conio.h dan iostream.h
#include

class DataMHS
{
   public :
              char NIM[10];
     char Nama[50];
     char MatKul[20];
};

class DataNilaiMHS : public DataMHS
{
   public :
     int Tugas;
     int UTS;
     int UAS;
};

class DataAlamatMHS : public DataMHS
{
            public :
            char Jalan[50];
      char Kota[25];
};

void main()
{
   float NA;

   DataNilaiMHS XX;
   DataAlamatMHS XX1;
   strcpy(XX.NIM,"123456");
   strcpy(XX.Nama,"Ronaldo");
   strcpy(XX.MatKul,"Pemrograman C++");
   XX.Tugas=89;
   XX.UTS = 100;
   XX.UAS = 76;
   strcpy(XX1.Jalan,"Jl. Sultan Adam 234");
   strcpy(XX1.Kota,"Banjarmasin");

   cout << "XX.NIM = " << XX.NIM << endl;
   cout << "XX.Nama = " << XX.Nama << endl;
   cout << "XX.Mata Kuliah = " << XX.MatKul << endl;
            cout << "XX.Tugas = " << XX.Tugas << endl;
            cout << "XX.UTS = " << XX.UTS << endl;
            cout << "XX.UAS = " << XX.UAS << endl ;
            cout << "XX1.Jalan = " << XX1.Jalan << endl ;
   cout << "XX1.Kota = " << XX1.Kota << endl << endl;

   DataNilaiMHS YY;
   DataAlamatMHS YY1;
   strcpy(YY.NIM,"445566");
   strcpy(YY.Nama,"Lionel Messi");
   strcpy(YY.MatKul,"Logika Algoritma");
   YY.Tugas=78;
   YY.UTS = 87;
   YY.UAS = 65;
   strcpy(YY1.Jalan,"Jl. P.Hidayatullah 987");
   strcpy(YY1.Kota,"Banjarmasin");

   cout << "YY.NIM = " << YY.NIM << endl;
   cout << "YY.Nama = " << YY.Nama << endl;
   cout << "YY.Mata Kuliah = " << YY.MatKul << endl;
            cout << "YY.Tugas = " << YY.Tugas << endl;
            cout << "YY.UTS = " << YY.UTS << endl;
            cout << "YY.UAS = " << YY.UAS << endl ;
            cout << "YY1.Jalan = " << YY1.Jalan << endl ;
   cout << "YY1.Kota = " << YY1.Kota << endl << endl;

   DataNilaiMHS ZZ;
   DataAlamatMHS ZZ1;

   cout << "Inputkan NIM : " ; cin >> ZZ.NIM;
   cout << "Inputkan Nama : " ; cin >> ZZ.Nama;
   cout << "Inputkan Matakuliah : "; cin >> ZZ.MatKul;
            cout << "Inputkan Nilai Tugas : "; cin >>   ZZ.Tugas;
   cout << "Inputkan Nilai UTS : "; cin >>   ZZ.UTS ;
   cout << "Inputkan Nilai UAS : "; cin >>   ZZ.UAS ;
   cout << "Inputkan Alamat Jalan : "; cin >>   ZZ1.Jalan ;
   cout << "Inputkan Kota : "; cin >>   ZZ1.Kota;

   cout << "ZZ.NIM = " << ZZ.NIM << endl;
   cout << "ZZ.Nama = " << ZZ.Nama << endl;
   cout << "ZZ.Mata Kuliah = " << ZZ.MatKul << endl;
            cout << "ZZ.Tugas = " << ZZ.Tugas << endl;
            cout << "ZZ.UTS = " << ZZ.UTS << endl;
            cout << "ZZ.UAS = " << ZZ.UAS << endl ;
            cout << "ZZ1.Jalan = " << ZZ1.Jalan << endl ;
   cout << "ZZ1.Kota = " << ZZ1.Kota << endl << endl;
   getch();

Tidak ada komentar: