Untitled
carilah codingan yg memiliki fungsi treeunknown
c_cpp
a year ago
6.7 kB
13
Indexable
void tampilkanBarang() {
if (head == nullptr) {
cout << "Gudang kosong" << endl;
}
else {
Node* temp = head;
while (temp != nullptr) {
cout << "==================================" << endl;
cout << "Nama : " << temp->barang.nama << endl;
cout << "Jumlah : " << temp->barang.jumlah << endl;
cout << "==================================" << endl;
temp = temp->next;
}
}
}
void updateBarang() {
string nama;
cout << "Masukkan nama barang yang akan diupdate : ";
cin >> nama;
if (hashTable.find(nama) != hashTable.end()) {
Node* node = hashTable[nama];
cout << "Masukkan jumlah barang baru : ";
cin >> node->barang.jumlah;
cout << "Barang berhasil diupdate!" << endl;
}
else {
cout << "Barang tidak ditemukan" << endl;
}
}
void hapusBarang() {
string nama;
cout << "Masukkan nama barang yang akan dihapus : ";
cin >> nama;
if (hashTable.find(nama) != hashTable.end()) {
Node* node = hashTable[nama];
if (node == head) {
head = node->next;
}
else {
Node* temp = head;
while (temp->next != node) {
temp = temp->next;
}
temp->next = node->next;
}
hashTable.erase(nama);
cout << "Barang berhasil dihapus!" << endl;
}
else {
cout << "Barang tidak ditemukan" << endl;
}
}
void tampilkanBarang() {
if (head == nullptr) {
cout << "Gudang kosong" << endl;
}
else {
Node* temp = head;
while (temp != nullptr) {
cout << "==================================" << endl;
cout << "Nama : " << temp->barang.nama << endl;
cout << "Jumlah : " << temp->barang.jumlah << endl;
cout << "==================================" << endl;
temp = temp->next;
}
}
}
void updateBarang() {
string nama;
cout << "Masukkan nama barang yang akan diupdate : ";
cin >> nama;
if (hashTable.find(nama) != hashTable.end()) {
Node* node = hashTable[nama];
cout << "Masukkan jumlah barang baru : ";
cin >> node->barang.jumlah;
cout << "Barang berhasil diupdate!" << endl;
}
else {
cout << "Barang tidak ditemukan" << endl;
}
}
void hapusBarang() {
string nama;
cout << "Masukkan nama barang yang akan dihapus : ";
cin >> nama;
if (hashTable.find(nama) != hashTable.end()) {
Node* node = hashTable[nama];
if (node == head) {
head = node->next;
}
else {
Node* temp = head;
while (temp->next != node) {
temp = temp->next;
}
temp->next = node->next;
}
hashTable.erase(nama);
cout << "Barang berhasil dihapus!" << endl;
}
else {
cout << "Barang tidak ditemukan" << endl;
}
}
void tampilkanStack() {
stack<Barang> tempStack = stackData;
while (!tempStack.empty()) {
Barang barang = tempStack.top();
cout << "==================================" << endl;
cout << "Nama : " << barang.nama << endl;
cout << "Jumlah : " << barang.jumlah << endl;
cout << "==================================" << endl;
tempStack.pop();
}
}
void tampilkanQueue() {
queue<Barang> tempQueue = queueData;
while (!tempQueue.empty()) {
Barang barang = tempQueue.front();
cout << "==================================" << endl;
cout << "Nama : " << barang.nama << endl;
cout << "Jumlah : " << barang.jumlah << endl;
cout << "==================================" << endl;
tempQueue.pop();
}
}
void tampilkanTree(Node* root) {
if (root == nullptr) {
return;
}
tampilkanTree(root->left);
cout << "==================================" << endl;
cout << "Nama : " << root->barang.nama << endl;
cout << "Jumlah : " << root->barang.jumlah << endl;
cout << "==================================" << endl;
tampilkanTree(root->right);
}
void tampilkanTreeBarang() {
tampilkanTree(head);
}
};
int main() {
Gudang gudang;
int pilihan;
do {
cout << "====== Program Pengelolaan Gudang ======" << endl;
cout << " 1. Tambah Barang." << endl;
cout << " 2. Tampilkan Barang." << endl;
cout << " 3. Update Barang." << endl;
cout << " 4. Hapus Barang." << endl;
cout << " 5. Tampilkan Barang Dari Akhir." << endl;
cout << " 6. Tampilkan Barang Dari Awal." << endl;
cout << " 7. Tampilkan Barang Dalam Bentuk Tree." << endl;
cout << " 8. Keluar." << endl;
cout << "========================================" << endl;
cout << endl;
cout << "=>> Pilih menu : ";
cin >> pilihan;
switch (pilihan) {
case 1:
gudang.tambahBarang();
break;
case 2:
gudang.tampilkanBarang();
break;
case 3:
gudang.updateBarang();
break;
case 4:
gudang.hapusBarang();
break;
case 5:
gudang.tampilkanStack();
break;
case 6:
gudang.tampilkanQueue();
break;
case 7:
gudang.tampilkanTreeBarang();
break;
case 8:
cout << "Terima kasih!" << endl;
exit(0);
break;
default:
cout << "Pilihan tidak valid" << endl;
break;
}
cout << endl;
} while (pilihan != 0);
return 0;
Editor is loading...
Leave a Comment