TM 03 : ADT Array danStruct
Array adalahsuatuADT.Sepertihalnya ADT lain, arraymempunyai data anggotadanoperasi, metodeataufungsianggota.Elemenarraydiaksesberdasarkanposisinya di dalamarrayrelatifterhadapelemenpertama.Operasiutamaarrayadalahstoredanretrieve. Operassistoreuntukmenyimpanelemen e di indeks i array A[] adalah A[i] = e sedangkanoperasiretrieveuntukmengambilsuatuelemendari array A[] di indeks i dandisimpan di elemen e adalahe = A[i].
- Desainclass ArrayberdasarkanuraianADT Array di atasdenganketentuan level akses data anggotaadalahprivatedan level aksesfungsianggotaadalahpublic. Selainitujanganlupauntukmenambahkanconstructordandestructorpadaclasstersebut. Dalamdesainini, semuafungsianggotakecualiconstructordandestructor, harusberbentukprototype.
constint MAX =10;
class Array {
private :
int A[MAX};
int i, e;
public :
Array() { for ( i =0; i < MAX; i++) A[i] = 0; }
~Array();
void store( int, int );
int retrieve (int, int);
};
- Selanjutnyadefinisikansemuafungsianggota di luarclass Array. Ingatjanganlupauntukmenggunakanscope resolution operator ::
void Array :: store (int i, int e) { A[i] = e; }
int Array :: retrieve (int i, int e) { e = A[i]; }
- Terakhir, tulisfungsimain()sebagaidriveruntukmengujidesainkamu.
void main() {
int e;
Array a;
a.store(1,11);
a.store(2,22);
a.store(3,33);
cout<<endl<<a,retrieve (3,e);
cout<<endi<<a.retrieve(2,e);
cout<<endl<<a.retrieve(1,e);
}
Sepertihalnyaarray, structadalahsuatuADT yangmempunyai data anggotadanoperasi, metodeataufungsianggota. Elemen, memberataufieldstructdiaksesmenggunakan operator dotataupointer ->. Bentukumumnyaadalahsebagaiberikut:
<structure_variabel>.<field_name>
<structure_pointer>®<field_name>
Operasiutamadistructadalahstore(e)danretrieve(). Operassistore(e)untukmenyimpanelemen e di field istruct s adalahs.i = e sedangkanoperasiretrieve()untukmengambilsuatuelemendaristruct s di field i dandisimpan di elemen e adalahe = s.i.
- DiketahuistrukturdtMhsdengantiga data anggota :nim, namadan IPK sertafungsianggotastore()danretrieve().Desainclass dtMhsberdasarkanuraian diatasdenganketentuanlevelakses data anggotaadalahprivatedanlevelaksesfungsianggotaadalahpublic. Selainitujanganlupauntukmenambahkanconstructordandestructorpadaclasstersebut. Dalamdesainini, semuafungsianggotakecualiconstructordandestructor, harusberbentukprototype.
Class dtMhs{
Private:
Int i;
Int nim;
Char nama[100];
Float ipk;
Public:
Void store(int e);
Int retrieve();
DtMhs(){
Int nim=170000000;
nama = andi;
ipk=0;
}
~dtMhs(){}
}
- Selanjutnyadefinisikansemuafungsianggota di luarclass StructIngatjanganlupauntukmenggunakanscope resolution operator ::
Void dtMhs :: store(int e){ ipk= e; }
Int dtMhs :: retrieve(){ return ipk ; }
- Terakhir, tulisfungsimain()sebagaidriveruntukmengujidesainkamu.
Int main(){
dtMhs e;
e.store(4);
cout<<”IPK andi : “<<retrieve()<<endl;
line.get();
Return 0;
}