Aplikasi Penggunaan Stack

Tugas Pertemuan ke-6

Di bawah ini adalah dokumentasi code-code pengaplikasian dengan menggunakan stack dan terdapat penjelasan singkat mengenai code yang sudah dituliskan.

1. KONVERSI EKSPRESI INFIX KE POSTFIX MENGGUNAKAN STACK

Code program ini berfungsi untuk mengubah notasi matematika Infix (operator di antara operand) menjadi notasi Postfix (operator setelah operand) dengan memanfaatkan struktur data Stack untuk mengatur urutan prioritas operator.

Input:

Masukkan ekspresi infix: (a+b)*c^d-e

Output:

Postfix: ab+cd^*e-

Program ini mengimplementasikan algoritma Shunting-yard sederhana untuk mengonversi ekspresi matematika. Logika utama terletak pada fungsi precedence yang menentukan hirarki operator (pangkat tertinggi, diikuti perkalian/pembagian, lalu penjumlahan/pengurangan). Menggunakan pustaka <stack>, program menyimpan operator sementara sebelum dipindahkan ke string postfix berdasarkan aturan prioritas dan tanda kurung. Iterasi dilakukan pada setiap karakter input; operand langsung dicetak, sedangkan operator diatur melalui mekanisme push dan pop pada stack sesuai tingkat kepentingannya.

Link Github Repository

2. EVALUASI EKSPRESI POSTFIX MENGGUNAKAN STACK

Code program ini digunakan untuk menghitung hasil akhir dari sebuah ekspresi matematika dalam notasi Postfix (Reverse Polish Notation) dengan bantuan Stack untuk menyimpan nilai operan sementara.

Input:

Masukkan ekspresi postfix: 53+82/*

Output:

Hasil evaluasi: 32

Program ini mendemonstrasikan penerapan struktur data stack untuk melakukan kalkulasi aritmatika. Logika utamanya adalah memindai ekspresi dari kiri ke kanan; jika ditemukan angka (operand), program akan melakukan push ke dalam stack setelah dikonversi dari char ke int menggunakan operasi c - '0'. Jika ditemukan operator, program akan melakukan pop pada dua nilai teratas stack, mengoperasikannya sesuai simbol yang ditemukan (menggunakan switch-case), lalu memasukkan kembali hasilnya ke dalam stack. Hasil akhir perhitungan akan berada di posisi paling atas stack setelah seluruh karakter diproses.

Link Github Repository

3. EVALUASI EKSPRESI POSTFIX DENGAN MULTI-DIGIT (TOKENISASI)

Code program ini merupakan pengembangan dari evaluasi postfix sebelumnya, di mana program kini mampu menangani angka lebih dari satu digit (seperti 10, 100) dengan menggunakan teknik tokenisasi melalui spasi.

Input:

Masukkan postfix (pisahkan dengan spasi): 10 5 + 3 *

Output:

Hasil: 45

Program ini menggunakan objek stringstream untuk memecah string input menjadi satuan kata (token) berdasarkan spasi. Berbeda dengan versi sebelumnya yang hanya membaca karakter tunggal, penggunaan stoi() memungkinkan program mengonversi string berisi angka multi-digit menjadi tipe data integer secara otomatis. Mekanisme Stack tetap digunakan untuk menyimpan operan, di mana setiap kali ditemukan operator (+, -, *, /), dua nilai teratas akan diambil (pop), dihitung, dan hasilnya dimasukkan kembali (push). Penggunaan getline() memastikan seluruh baris input termasuk spasi dapat terbaca dengan sempurna.

Link Github Repository

Comments

Popular posts from this blog

Documentation C++ Programming