Untitled

carilah codingan yg memiliki fungsi tree
mail@pastecode.io avatar
unknown
c_cpp
a month ago
6.7 kB
2
Indexable
Never
    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;
Leave a Comment