[cpp] Hotel.cpp

Viewer

copydownloadembedprintName: Hotel.cpp
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. // Node untuk menyimpan informasi hotel
  8. struct Hotel {
  9.     string nama;
  10.     int harga;
  11.  
  12.     Hotel(string n, int h) : nama(n), harga(h) {}
  13. };
  14.  
  15. // Kelas untuk mengelola daftar hotel
  16. class HotelList {
  17. private:
  18.     vector<Hotel> hotels;
  19.  
  20. public:
  21.     // Menambahkan hotel ke daftar
  22.     void addHotel(string nama, int harga) {
  23.         hotels.push_back(Hotel(nama, harga));
  24.     }
  25.  
  26.     // Menampilkan daftar hotel
  27.     void displayHotels() {
  28.         for (size_t i = 0; i < hotels.size(); ++i) {
  29.             cout << i + 1 << ". " << hotels[i].nama << ", Harga: " << hotels[i].harga << endl;
  30.         }
  31.     }
  32.  
  33.     // Mengambil hotel berdasarkan indeks
  34.     Hotel getHotel(int index) {
  35.         return hotels[index];
  36.     }
  37. };
  38.  
  39. int main() {
  40.     // Membuat list sederhana menggunakan std::vector
  41.     vector<string> ListHotel1;
  42.     vector<string> ListHotel2;
  43.     vector<string> BCA;
  44.     vector<string> Dana;
  45.     vector<string> OVO;
  46.  
  47.     // Menambahkan elemen ke dalam list
  48.     ListHotel1.push_back("Hotel A, Terletak di Jakarta Utara");
  49.     ListHotel1.push_back("Hotel B, Terletak di Jakarta Selatan");
  50.     ListHotel1.push_back("Hotel C, Terletak di Jakarta Pusat");
  51.  
  52.     ListHotel2.push_back("Hotel A, Terletak di Denpasar");
  53.     ListHotel2.push_back("Hotel B, Terletak di Kuta");  
  54.     ListHotel2.push_back("Hotel C, Terletak di Pesanggaran");
  55.  
  56.     BCA.push_back("1. AN: Aji. Nomor Rekening: 012948712");
  57.     BCA.push_back("2. AN: Haikal. Nomor Rekening: 012948712");
  58.     BCA.push_back("3. AN: Arvan. Nomor Rekening: 012948712");
  59.  
  60.     Dana.push_back("1. AN: Aji. Nomor Dana: 012948712");
  61.     Dana.push_back("2. AN: Haikal. Nomor Dana: 012948712");
  62.     Dana.push_back("3. AN: Arvan. Nomor Dana: 012948712");
  63.  
  64.     OVO.push_back("1. AN: Aji. Nomor OVO: 012948712");
  65.     OVO.push_back("2. AN: Haikal. Nomor OVO: 012948712");
  66.     OVO.push_back("3. AN: Arvan. Nomor OVO: 012948712");
  67.  
  68.     
  69.  
  70.  
  71.     HotelList Hotels;
  72.     Hotels.addHotel("Single"500000);
  73.     Hotels.addHotel("Queen"750000);
  74.     Hotels.addHotel("King"1000000);
  75.  
  76.     int choice, tgl, locationChoice;
  77.     vector<pair<Hotel, int>> cart; // Vektor untuk menyimpan pesanan
  78.  
  79.     do {
  80.         menu:
  81.         cout << "\n\nPusat Pemesanan Hotel" << endl;
  82.         cout << "Selamat datang, user." << endl;
  83.         cout << "1. Pesan Kamar" << endl;
  84.         cout << "2. Edit Pesanan (Jumlah dan Tanggal menginap)" << endl;
  85.         cout << "3. Batalkan Pesanan" << endl;
  86.         cout << "4. Pembayaran" << endl;
  87.         cout << "Masukkan pilihan: ";
  88.         cin >> choice;
  89.  
  90.         switch (choice) {
  91.             case 1: {
  92.                 cout << "\nPilih lokasi destinasi anda:" << endl;
  93.                 cout << "1. Jakarta" << endl;
  94.                 cout << "2. Bali" << endl;
  95.  
  96.                 cout << "Masukkan pilihan anda: ";
  97.                 cin >> locationChoice;
  98.                 
  99.                 if (locationChoice == 1) {
  100.                     cout << "\nHotel yang tersedia di Jakarta adalah:" << endl;
  101.                     for (size_t i = 0; i < ListHotel1.size(); ++i) {
  102.                         cout << i + 1 << ". " << ListHotel1[i] << endl;
  103.                     }
  104.                     int hotelChoice;
  105.                     cout << "Harap masukkan pilihan: ";
  106.                     cin >> hotelChoice;
  107.  
  108.                     cout << "\nHarap pilih tipe kamar: " << endl;
  109.                     Hotels.displayHotels();
  110.                     cout << "Masukkan pilihan anda: ";
  111.                     int roomChoice;
  112.                     cin >> roomChoice;
  113.                     
  114.                     cout << "\nMasukkan tanggal anda ingin menginap: ";
  115.                     cin >> tgl;
  116.  
  117.                     int jumlah;
  118.                     cout << "\nMasukkan jumlah kamar yang ingin anda pesan: ";
  119.                     cin >> jumlah;
  120.  
  121.                     // Menambahkan pesanan ke dalam keranjang (cart)
  122.                     cart.push_back(make_pair(Hotels.getHotel(roomChoice - 1), jumlah));
  123.  
  124.                     cout << "Pesanan anda akan kami proses." << endl;
  125.                     goto menu;
  126.                 } else if (locationChoice == 2) {
  127.                     cout << "\nHotel yang tersedia di Bali adalah:" << endl;
  128.                     for (size_t i = 0; i < ListHotel2.size(); ++i) {
  129.                         cout << i + 1 << ". " << ListHotel2[i] << endl;
  130.                     }
  131.                     int hotelChoice;
  132.                     cout << "Harap masukkan pilihan: ";
  133.                     cin >> hotelChoice;
  134.  
  135.                     cout << "\nHarap pilih tipe kamar: " << endl;
  136.                     Hotels.displayHotels();
  137.                     cout << "Masukkan pilihan anda: ";
  138.                     int roomChoice;
  139.                     cin >> roomChoice;
  140.                     
  141.                     cout << "\nMasukkan tanggal anda ingin menginap: ";
  142.                     cin >> tgl;
  143.  
  144.                     int jumlah;
  145.                     cout << "\nMasukkan jumlah kamar yang ingin anda pesan: ";
  146.                     cin >> jumlah;
  147.  
  148.                     // Menambahkan pesanan ke dalam keranjang (cart)
  149.                     cart.push_back(make_pair(Hotels.getHotel(roomChoice - 1), jumlah));
  150.  
  151.                     cout << "Pesanan anda akan kami proses." << endl;
  152.                     goto menu;
  153.                 } else {
  154.                     cout << "Pilihan tidak valid." << endl;
  155.                 }
  156.                 break;
  157.             }
  158.             case 2: {
  159.                 // Ubah Tanggal Menginap
  160.                 string Lokasi;
  161.                 if (locationChoice == 1) {
  162.                     Lokasi = "Jakarta";
  163.                 } else if (locationChoice == 2) {
  164.                     Lokasi = "Bali";
  165.                 }
  166.                 cout << "\nPilih pesanan yang ingin Anda edit: " << endl;
  167.                 for (size_t i = 0; i < cart.size(); ++i) {
  168.                     cout << "Pesanan " << i + 1 << ": " << "Tipe Kamar: "<< cart[i].first.nama << ", Lokasi: " << Lokasi <<", Jumlah: " << cart[i].second << ", Tanggal Masuk: " << tgl << endl;
  169.                 }
  170.                 int pesananUbah;
  171.                 cout << "Masukkan nomor pesanan yang ingin Anda ubah: ";
  172.                 cin >> pesananUbah;
  173.  
  174.                 int jumlahBaru;
  175.                 cout << "Masukkan jumlah kamar baru untuk pesanan ini: ";
  176.                 cin >> jumlahBaru;
  177.                 cart[pesananUbah - 1].second = jumlahBaru;
  178.                 cout << "Jumlah kamar untuk pesanan " << pesananUbah << " telah diubah menjadi " << jumlahBaru << endl;
  179.  
  180.                 cout << "Masukkan tanggal baru untuk pesanan ini: ";
  181.                 cin >> tgl;
  182.                 cout << "Tanggal menginap untuk pesanan " << pesananUbah << " telah diubah menjadi tanggal " << tgl << endl;
  183.                 goto menu;
  184.             }
  185.             case 3: {
  186.                 // Batalkan Pesanan
  187.                 string Lokasi;
  188.                 if (locationChoice == 1) {
  189.                     Lokasi = "Jakarta";
  190.                 } else if (locationChoice == 2) {
  191.                     Lokasi = "Bali";
  192.                 }
  193.                 cout << "\nPilih pesanan yang ingin Anda batalkan: " << endl;
  194.                 for (size_t i = 0; i < cart.size(); ++i) {
  195.                     cout << "Pesanan " << i + 1 << ": " << "Tipe Kamar: "<< cart[i].first.nama << ", Lokasi: " << Lokasi <<", Jumlah: " << cart[i].second << ", Tanggal Masuk: " << tgl << endl;
  196.                 }
  197.                 int pesananBatal;
  198.                 cout << "Masukkan nomor pesanan yang ingin Anda batalkan: ";
  199.                 cin >> pesananBatal;
  200.     
  201.                 // Hapus pesanan dari keranjang
  202.                 if (pesananBatal >= 1 && pesananBatal <= cart.size()) {
  203.                     cart.erase(cart.begin() + pesananBatal - 1);
  204.                     cout << "Pesanan berhasil dibatalkan." << endl;
  205.                 } else {
  206.                     cout << "Nomor pesanan tidak valid." << endl;
  207.                 }
  208.                 goto menu;
  209.             }
  210.             case 4: {
  211.                  // Menampilkan pesanan yang ada dalam keranjang
  212.                 string Lokasi;
  213.                 if (locationChoice == 1) {
  214.                     Lokasi = "Jakarta";
  215.                 } else if (locationChoice == 2) {
  216.                     Lokasi = "Bali";
  217.                 }
  218.                 int totalHarga = 0; // Variabel untuk menyimpan total harga pesanan
  219.                 cout << "Pesanan Anda:" << endl;
  220.                 for (size_t i = 0; i < cart.size(); ++i) {
  221.                     cout << "Pesanan " << i + 1 << ": " << "Tipe Kamar: "<< cart[i].first.nama << ", Lokasi: " << Lokasi <<", Jumlah: " << cart[i].second << ", Tanggal Masuk: " << tgl << endl;
  222.                     totalHarga += cart[i].first.harga * cart[i].second; // Menghitung total harga
  223.                 }
  224.                 
  225.                 cout << "\nTotal Harga: Rp. " << totalHarga << endl;
  226.                 // Menampilkan pilihan pembayaran
  227.                 cout << "\nPilih metode pembayaran" << endl;
  228.                 cout << "1. BCA" << endl;
  229.                 cout << "2. Dana" << endl;
  230.                 cout << "3. OVO" << endl;
  231.                 int paymentChoice;
  232.                 cout << "Masukkan pilihan anda: ";
  233.                 cin >> paymentChoice;
  234.  
  235.                 // Menangani pilihan pembayaran
  236.                 switch (paymentChoice) {
  237.                     case 1:
  238.                         cout << '\n';
  239.                         for (size_t i = 0; i < BCA.size(); ++i) {
  240.                             cout << BCA[i] << endl;
  241.                         }
  242.                         cout << "Transfer cukup 1 kali ke salah satu tujuan." << endl;
  243.                         intptr_t kontak;
  244.                         cout << "\nHarap masukkan nomor telepon anda: ";
  245.                         cin >> kontak;
  246.                         break;
  247.                     case 2:
  248.                         cout << '\n';
  249.                         for (size_t i = 0; i < Dana.size(); ++i) {
  250.                             cout << Dana[i] << endl;
  251.                         }
  252.                         cout << "Transfer cukup 1 kali ke salah satu tujuan." << endl;
  253.                         cout << "\nHarap masukkan nomor telepon anda: ";
  254.                         cin >> kontak;
  255.                         break;
  256.                     case 3:
  257.                         cout << '\n';
  258.                         for (size_t i = 0; i < OVO.size(); ++i) {
  259.                             cout << OVO[i] << endl;
  260.                         }
  261.                         cout << "Transfer cukup 1 kali ke salah satu tujuan." << endl;
  262.                         cout << "\nHarap masukkan nomor telepon anda: ";
  263.                         cin >> kontak;
  264.                         break;
  265.                     default:
  266.                         cout << "Metode pembayaran tidak valid." << endl;
  267.                 }
  268.                 break;
  269.             }
  270.             default:
  271.                 cout << "Pilihan tidak valid." << endl;
  272.         }
  273.     } while (choice != 1 && choice != 2);
  274.  
  275.     cout << "\nPesanan anda akan kami proses.\nTerima Kasih telah mempercayai kami. Silahkan menikmati liburan anda." << endl;
  276.  
  277.     return 0;
  278. }
  279.  

Editor

You can edit this paste and save as new:


File Description
  • Hotel.cpp
  • Paste Code
  • 19 Apr-2024
  • 11.11 Kb
You can Share it: