# 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!
```