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.
1. #ifndef GERBONG_H 2. #define GERBONG_H 3. #include <iostream> 4. using namespace std; 5. class Gerbong 6. {
7. public : 8. typedef struct { 9. int nokursi;
10. int statuskursi; //0 = kursi kosong; 1=kursi terisi orang/barang 11. } InfoKursi;
12. InfoKursi Kursi[4][10]; 13. int NoGerbong; 14. public : 15. Gerbong(void);
16. // Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99 17. // dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40 18. Gerbong IsiGerbong(int _nogb, InfoKursi* _kursi);
19. // Kondisi Awal (IS) : Gerbong telah terdefinisi 20. // Kondisi Akhir (FS) : Gerbong terisi InfoKursi; 21. void CetakGerbong(void);
22. // Metod untuk melihat nomor gerbong, no kursi beserta statusnya seluruh 23. // gerbong dalam rangkaian Kereta Api
24. void PesanMakan(int nomenu, int nokursi, int nogerbong); 25. };
26. #endif
K2.
Gerbong.h
(K1). Driver
class
gerbong dan
Algoritma dan Struktur Data, Teknik Elektro Unsoed, Aetthea---2
1. #include <list> 2. using namespace std; 3. class gerbongobserver 4. {
5. public :
6. gerbongobserver(void);
7. // Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99 8. // dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40 9.
10. list<Gerbong>::iterator CariGerbong(list<Gerbong>& cl, int No); 11. // Pre-Condition : list gerbong telah berisi gerbong sembarang,
12. // variabel No telah berisi nilai integer sebagai no gerbong yang akan dicari 13. // Post Condition : alamat pos menunjuk ke suatu alamat.
14.
15. int CariKursiBerdampinganKesampingOrDepan(list<Gerbong>& cl, int JmlKursiPesan); 16. // Pre-Condition : list gerbong telah berisi gerbong sembarang,
17. // variabel JmlKursiPesan telah berisi nilai integer sebagai jumlah kursi yang dipesan secara berdampingan 18. // Post Condition : return true jika kursi yang dipesan ada
19. list<int> CariDaftarKursiKosongAllGerbong(list<Gerbong>& cl); 20. //
21.
22. // list<int> DeteksiPenumpangTurunStasiun(list<Gerbong>& cl, String Statsiun); 23. };
1. #include <list> 2. #include <iostream> 3. #include "gerbong.h" 4. #include "gerbongobserver.h" 5. using namespace std; 6.
7. gerbongobserver::gerbongobserver(void) { ;}
8. // Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99 9. // dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40 10.
11. list<Gerbong>::iterator gerbongobserver::CariGerbong(list<Gerbong>& cl, int No) 12. {
13. list<Gerbong>::iterator pos; 14. int found = false;
15. pos=cl.begin();
16. while ( (!found) && (pos!=cl.end()) ){ 17.
18. if ( pos->NoGerbong == No ){ 19. found = true;
20. return pos; // Ketemu 21. }
22. else { 23. pos++; 24. } 25. } 26. if (!found) 27. {
28. return pos; // tidak ketemu 29. }
30. }
K3. Gerbongobserver.h
Algoritma dan Struktur Data, Teknik Elektro Unsoed, Aetthea---3
1. #include "gerbong.h" 2. #include "gerbongobserver.h" 3. using namespace std; 4. int main()
5. {
6. // CreateList Kereta Api 7. list<Gerbong> L;
8. list<Gerbong>::iterator pos; 9. gerbongobserver ob;
19. // Cetak isi rangkaian gerbong dengan menggunakan pointer pos sebagai penunjuk gerbong 20. pos = L.begin();
30. pos->IsiGerbong(1); pos->IsiGerbong(10); pos->IsiGerbong(11); pos->IsiGerbong(15); pos->IsiGerbong(12); 31. pos->IsiGerbong(17); pos->IsiGerbong(18); pos->IsiGerbong(19); pos->CariKursiKosongGerbong(vc); 32. pos->CetakGerbong();
5. #include <cstdlib> #include <iostream> using namespace std; 6. class Gerbong
15. // Contructor Class Gerbong, melakukan inisialisasi no gerbong dengan -99 16. // dan menomori kursi setiap gerbong sejumlah 40 kursi dari no 1 sd 40 17. void IsiGerbong(int nokursi);
18. // Kondisi Awal (IS) : Gerbong telah terdefinisi
19. // Proses : Mengisi satu buah kursi yang masih kosong sesuai nokursi yang dipesan 20. // Kondisi Akhir (FS) : Gerbong terisi InfoKursi;
21. void CariKursiKosongGerbong(vector<int> &v); 22. // Kondisi Awal (IS) : Gerbong telah terdefinisi 23. // Kondisi Akhir (FS) : Vector V terisi no kursi kosong. 24. void CetakGerbong(void);
25. // Metod untuk menampilkan nomor gerbong, no kursi beserta statusnya seluruh 26. // gerbong dalam rangkaian Kereta Api
27. }; 28. #endif