# Case Study Modul 8 - Kamis ## Game Inventory Management System > Gunakan bahasa pemrograman C++ dan abstraction lewat header file. --- ### 1. **Buatlah class `Item` dengan atribut `name` dan `type`.** - Class ini memiliki dua atribut private: `name` dan `type` untuk menyimpan informasi nama dan tipe item (misalnya: Weapon atau Potion). - Buat **constructor** untuk menginisialisasi atribut tersebut. - Tambahkan **getter** (`getName()` dan `getType()`) untuk mengakses nilai atribut dari luar class. --- ### 2. **Buatlah class `Inventory` untuk menyimpan item dalam bentuk `vector`.** - Class ini memiliki atribut private yaitu `items`, sebuah `vector` yang menyimpan objek `Item`. - Buat method `addItem()` untuk menambahkan item ke dalam `vector`. - Buat method `showItems()` untuk menampilkan daftar item di dalam inventory. - Tambahkan method `getItems()` untuk mengembalikan seluruh item. --- ### 3. **Buatlah class `Game` untuk menjalankan menu interaktif bagi user.** - Class ini memiliki atribut private `Inventory` sebagai komposisi. - Tambahkan method: (**tipe void**) - `showMenu()` untuk menampilkan pilihan menu kepada user. - `handleAddItem()` untuk menangani input user dan menambahkan item. - `handleShowItems()` untuk menampilkan seluruh isi inventory. - `countItemTypes()` untuk menghitung jumlah item berdasarkan tipenya (Potion atau Weapon). - `run()` untuk menjalankan loop utama program. - Method `run()` merupakan loop utama program yang menjalankan menu sampai user memilih keluar. --- ### 4. **Buatlah file `main.cpp` untuk menjalankan program.** - Buat objek `Game` dan panggil method `run()` untuk memulai interaksi dengan user. --- ### 5. **Jalankan program dan pastikan output-nya sesuai dengan yang diharapkan.** Contoh output saat program dijalankan: ```bash ====Game Inventory Menu==== 1. Add Item 2. Show Inventory 3. Count Item Types 4. Exit Choose an option: 1 Enter item name: Sword Enter item type (Weapon/Potion): Weapon Item added! ====Game Inventory Menu==== 1. Add Item 2. Show Inventory 3. Count Item Types 4. Exit Choose an option: 2 Current Inventory: Sword (Weapon) ====Game Inventory Menu==== 1. Add Item 2. Show Inventory 3. Count Item Types 4. Exit Choose an option: 3 Item Types in Inventory: Potion: 0x Weapon: 1x ====Game Inventory Menu==== 1. Add Item 2. Show Inventory 3. Count Item Types 4. Exit Choose an option: 4 Exiting game! ```