/** * Praktikum 10 - Kalkulator Stack * * Kelas ini digunakan untuk mempermudah kegiatan praktikum mata kuliah * Struktur Data dan Algoritma di Program Studi Teknik Informatika, * Fakultas Teknologi Informasi, Universitas YARSI. * * Berbeda dengan kuliah pendahulunya, Dasar-Dasar Pemrograman, pada kuliah ini * fokus pada mengembangkan kemampuan mahasiswa untuk menggunakan struktur data * dan berbagai algoritma. Mahasiswa diasumsikan sudah memiliki pengetahuan * dasar untuk membuat program, sehingga memberikan berkas untuk mereka * ubah-ubah selama kegiatan Praktikum, tidak akan menghambat mahasiswa dalam * mencapai tujuan kuliah. * * Untuk menyelesaikan kegiatan Praktikum ini dengan baik, pastikan Anda * membaca instruksi Praktikum dengan baik dan benar. */ // diperlukan untuk sebagai struktur penyimpanan data utama import java.util.Stack; /** * @author [tulis nama Anda disini] * @version 1.00 * * Praktikum ini bertujuan untuk memperkenalkan Anda dengan karakteristik * dan pemanfaatan struktur data stack dengan membuat sebuah kalkulator * sederhana yang mengabaikan prioritas operator. Artinya, operator yang * pertama muncul adalah operator yang dikerjakan terlebih dahulu. Asumsikan * data yang diberikan selalu dalam format dan urutan yang benar. * * Pastikan nama berkas dan kelas sesuai dengan instruksi Praktikum. */ public class Praktikum8 { /** * Jangan ubah method ini kecuali ketika Anda menyesuaikan nama kelas! * * Method yang pertama kali dipanggil ketika kelas ini eksekusi. * @param args Argumen yang diberikan pengguna saat menjalankan program */ public static void main(String[] args) { // membuat object stack yang akan menyimpan tipe String Stack data = new Stack<>(); data.push("-"); // operator aritmatika data.push("3.0"); // operan kedua data.push("5.0"); // operan pertama // operasikan data di atas dan cetak hasilnya // data akan diterjemahkan menjadi: 5 - 3 System.out.println("Hasil operasi: " + Praktikum8.calculate(data)); // keluaran yang diharapkan System.out.println("Keluaran yang diharapkan: 2.0\n"); // kosongkan stack dengan membuat instance baru data = new Stack<>(); data.push("*"); // operator aritmatika kedua data.push("3.3"); // operan ketiga data.push("+"); // operator aritmatika pertama data.push("5.1"); // operan kedua data.push("2.2"); // operan pertama // operasikan data di atas dan cetak hasilnya // data akan diterjemahkan menjadi: (2 + 5) * 3 System.out.println("Hasil operasi: " + Praktikum8.calculate(data)); // keluaran yang diharapkan System.out.println("Keluaran yang diharapkan: 24.09\n"); } /** * Selama Praktikum Anda hanya perlu mengubah method ini * * Method ini akan menerjemahkan dan mengeksekusi data yang diberikan. * Setiap operator aritmatika memiliki prioritas yang sama. Artinya, * operator yang pertama kali muncul yang akan dikerjakan terlebih dahulu. * Operator yang harus dihandle adalah: +, -, *, /, dan %. * @param data Daftar operasi dan operan yang harus dieksekusi. * @return Hasil eksekusi dari data yang diberikan. * Jika tidak ada data yang diberikan, maka akan mengembalikan nol. * Jika hanya ada satu operan dalam data, maka akan mengembalikan nilai * dari operan tersebut. */ public static double calculate(Stack data) { return 0; // agar tidak error ketika dikompilasi } }