Hati Ikhlas – Pikiran CerdasKompetensi 13, 14, 15 : Mempraktekan Penggunaan Method Function Pada Struktur List, Vector Hati Ikhlas - Pikiran Cerdas

Algoritma dan Struktur Data, Teknik Elektro Unsoed, Aetthea-----------------------1
Dokumen Pendukung Pembelajaran
Kompetensi : 13,14,15
Target :
 Mahasiswa mampu mempraktekkan penggunaan metode Searching di berbagai Struktur
Data, misalnya List, Vector.

(K1). Driver
class
gerbong dan
observer
gerbong

1.
2.
3.
4.
5.
6.
7.
8.

9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.

#ifndef GERBONG_H

#define GERBONG_H
#include
using namespace std;
class Gerbong
{
public :
typedef struct {
int nokursi;
int statuskursi; //0 = kursi kosong; 1=kursi terisi orang/barang
} InfoKursi;
InfoKursi Kursi[4][10];
int NoGerbong;
public :
Gerbong(void);
// Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99
// dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40
Gerbong IsiGerbong(int _nogb, InfoKursi* _kursi);
// Kondisi Awal (IS) : Gerbong telah terdefinisi
// Kondisi Akhir (FS) : Gerbong terisi InfoKursi;
void CetakGerbong(void);

// Metod untuk melihat nomor gerbong, no kursi beserta statusnya seluruh
// gerbong dalam rangkaian Kereta Api
void PesanMakan(int nomenu, int nokursi, int nogerbong);
};
#endif

K2.
Gerbong.h

Algoritma dan Struktur Data, Teknik Elektro Unsoed, Aetthea-----------------------2

1.
2.
3.
4.
5.
6.
7.
8.
9.

10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.

#include
using namespace std;
class gerbongobserver
{
public :

gerbongobserver(void);
// Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99
// dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40

K3. Gerbongobserver.h

list::iterator CariGerbong(list& cl, int No);
// Pre-Condition : list gerbong telah berisi gerbong sembarang,
//
variabel No telah berisi nilai integer sebagai no gerbong yang akan dicari
// Post Condition : alamat pos menunjuk ke suatu alamat.
int CariKursiBerdampinganKesampingOrDepan(list& cl, int JmlKursiPesan);
// Pre-Condition : list gerbong telah berisi gerbong sembarang,
//
variabel JmlKursiPesan telah berisi nilai integer sebagai jumlah kursi yang dipesan secara berdampingan
// Post Condition : return true jika kursi yang dipesan ada
list CariDaftarKursiKosongAllGerbong(list& cl);
//
// list DeteksiPenumpangTurunStasiun(list& cl, String Statsiun);
};


K4.Gerbongobserver.cpp
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.

#include
#include
#include "gerbong.h"
#include "gerbongobserver.h"
using namespace std;
gerbongobserver::gerbongobserver(void) { ;}
// Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99

// dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40
list::iterator gerbongobserver::CariGerbong(list& cl, int No)
{
list::iterator pos;
int found = false;
pos=cl.begin();
while ( (!found) && (pos!=cl.end()) ){
if ( pos->NoGerbong == No ){
found = true;
return pos; // Ketemu
}
else {
pos++;
}
}
if (!found)
{
return pos;
}
}


// tidak ketemu

Algoritma dan Struktur Data, Teknik Elektro Unsoed, Aetthea-----------------------3
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.

37.
38.
39.
40.
41.
42.

#include "gerbong.h"
#include "gerbongobserver.h"
using namespace std;
int main()
K5. Driver class gerbong
{
// CreateList Kereta Api
dan observer gerbong,
list L;
struktur Vector
list::iterator pos;
gerbongobserver ob;
vector vc;
vector::iterator posv;
for (int i=0; iCetakGerbong();
cout IsiGerbong(1); pos->IsiGerbong(10); pos->IsiGerbong(11); pos->IsiGerbong(15); pos->IsiGerbong(12);
pos->IsiGerbong(17); pos->IsiGerbong(18); pos->IsiGerbong(19); pos->CariKursiKosongGerbong(vc);
pos->CetakGerbong();
}
else
{ cout