Tugas 04
Tugas 04
Kode di dalam berkas `package.json` berikut tidak boleh diubah:
.{
"tipe": "modul"
}
Bantu menyelesaikan tugas pafa Inventory.js berikut ini:
/**
* TODO
* Selesaikan kode pembuatan class Inventory dengan ketentuan:
* - Memiliki properti `items` untuk menampung daftar item dalam bentuk array.
* - Memiliki metode `addItem` untuk menambahkan item ke properti `items`.
* - Memiliki metode `removeItem` untuk menghapus item berdasarkan `id`.
* - Memiliki metode `listItems` untuk mengembalikan string yang merupakan informasi detail barang (dipanggil dari fungsi `item.displayDetails()`).
*/
kelas Inventaris {}
// Jangan hapus kode di bawah ini!
ekspor default Inventaris;
Jawaban :
Berikut adalah penyelesaian untuk kelasInventory sesuai dengan instruksi yang diberikan. Silakan salin kode ini ke dalam berkas JavaScript Anda:
class Inventory {
constructor() {
this.items = [];
}
addItem(item) {
this.items.push(item);
}
removeItem(id) {
this.items = this.items.filter((item) => item.id !== id);
}
listItems() {
return this.items.map((item) => item.displayDetails()).join('\n');
}
}
// Jangan hapus kode di bawah ini!
export default Inventory;
constructor: Inisialisasi propertithis.itemssebagai array kosong saat objek kelas dibuat.addItem(item): Menggunakan.push()untuk menambahkan objek item baru ke dalam array.removeItem(id): Menggunakan.filter()untuk membuat array baru yang berisi semua item kecuali item yang memilikiidyang ingin dihapus.listItems(): Mengambil detail dari setiap item dengan memanggilitem.displayDetails(). Saya menggunakan.join('\n')agar setiap informasi item dipisahkan oleh baris baru (opsional, tergantung kebutuhan tampilan string Anda).
Item di berkas item.jssesuai dengan instruksi:class Item {
constructor(id, name, quantity, price) {
this.id = id;
this.name = name;
this.quantity = quantity;
this.price = price;
}
updateDetails(name, quantity, price) {
this.name = name;
this.quantity = quantity;
this.price = price;
}
displayDetails() {
return `ID: ${this.id}, Name: ${this.name}, Quantity: ${this.quantity}, Price: ${this.price}`;
}
}
// Jangan hapus kode di bawah ini!
export default Item;
constructor: Mendefinisikan propertiid,name,quantity, danpricesaat objekItempertama kali dibuat.updateDetails: Metode ini menerima tiga parameter baru untuk memperbarui nilai properti yang sudah ada.displayDetails: Menggunakan template literal (tanda backtick`) untuk mengembalikan string sesuai format yang diminta.
Itemini dengan kelas Inventoryyang tadi kita buat?Item dan Inventoryyang telah kita buat sebelumnya. Tugas Anda main.jsadalah memastikan alur pemanggilan metodenya berjalan sesuai harapan.main.jsyang sudah disesuaikan agar menghasilkan output yang diminta:import Item from './Item.js';
import Inventory from './Inventory.js';
const inventory = new Inventory();
const item1 = new Item(1, 'Laptop', 10, 1000);
const item2 = new Item(2, 'Mouse', 50, 20);
// Menambahkan item ke inventory
inventory.addItem(item1);
inventory.addItem(item2);
console.log('Initial Inventory:');
console.log(inventory.listItems());
/**
* Output:
* Initial Inventory:
* ID: 1, Name: Laptop, Quantity: 10, Price: 1000
* ID: 2, Name: Mouse, Quantity: 50, Price: 20
*/
// Memperbarui detail item1
item1.updateDetails('Laptop', 8, 950);
console.log('\nInventory after update:');
console.log(inventory.listItems());
/**
* Output:
* Inventory after update:
* ID: 1, Name: Laptop, Quantity: 8, Price: 950
* ID: 2, Name: Mouse, Quantity: 50, Price: 20
*/
// Menghapus item dengan ID 2
inventory.removeItem(2);
console.log('\nInventory after removal:');
console.log(inventory.listItems());
/**
* Output:
* Inventory after removal:
* ID: 1, Name: Laptop, Quantity: 8, Price: 950
*/
- Pastikan Nama File Sesuai : Perhatikan huruf kapital pada
import Item from './Item.js'danimport Inventory from './Inventory.js'. Pastikan file Anda bernamaItem.js(I kapital) danInventory.js(I kapital). - Cara membatasi : Jika Anda menggunakan StackBlitz atau terminal, jalankan dengan perintah:pesta
node main.jsGunakan kode dengan hati-hati.
index.jssebagai titik masuk utama (entry point) jika diperlukan oleh sistem Dicoding?
Comments
Post a Comment