Celoteh Ania

Setitik Ilmu yang Aku Peroleh


Belajar UAP PBO

Nih buat yang males belajar buat UAP PBO, saya kasih cara bikin inheritance + array of class.
Klo mau dihapal silahkan, tapi sesuain dengan soal ya. Intinya InsyaAllah udah memenuhi kriteria untuk soal09D dari LAB.

Ga tau nih di Binus masih pake C++ aja buat pembelajaran PBO (OOP). Padahal bahasa yang lebih Object-Oriented kan ada beberapa. Sebut aja python, smalltalk, dan yang menurut gw paling keren… Ruby!!!
Loh kok jadi curhat gini, dah ah langsung aja, nih:


#include <constrea .h>
constream o;

//bikin class induk, inget data member jadiin protected
class induk{
protected:
char kata[16];
public:
void set_isi(char *isi){
strcpy(kata, isi);
}
char *get_isi(){
return kata;
}
int jum_vokal();
};

//ngitung jumlah vokal
int induk::jum_vokal(){
char vokal[] = "aiueoAIUEO";
int count=0;
for(int i=0; i<strlen(kata); i++){
if(strchr(vokal, kata[i]))
count++;
}
return count;
}

//bikin class anak turunan induk dgn atribut public
class anak : public induk {
public:
//rotate a char to left
void movel();
//rotate a char to right
void mover();
};

void anak::movel(){
char temp[17];
int i;
for(i=1; i<strlen(kata); i++){
temp[i-1] = kata[i];
}
temp[i-1] = kata[0];
temp[i] = 0;
strcpy(kata, temp);
}

void anak::mover(){
char temp[17];
int i;
for(i=1; i<strlen(kata); i++){
temp[i] = kata[i-1];
}
temp[0] = kata[i-1];
temp[i] = 0;
strcpy(kata, temp);
}

void main(){
//array of object dgn static allocation
induk mak;
anak k[2];
o.clrscr();

o << "Ini induk : ";
mak.set_isi("kiye mbok objek k[]");
o << "Jumlah vokal : " << mak.jum_vokal() << "\n\n";

o << "Ini anak pertama : " << endl;
k[0].set_isi("mbuh bae lah");
o << "Jumlah vokal : " << k[0].jum_vokal() << endl;
k[0].movel();
o << "Geser kanan : " << k[0].get_isi() << "\n\n";

o << "Ini anak kedua : ";
k[1].set_isi("mbuh maning bae");
o << "Jumlah vokal : " << k[1].jum_vokal() << endl;
k[1].mover();
o << "Geser ke kanan : " << k[1].get_isi();

getch();
}