Anda di halaman 1dari 3

Nama : Fadhil Muhammad Yusuf Ibrahim

NIM : 19410100091

Materi Slide 1
1. Operator (A + B) * (C - D) ^ E dalam notasi awalan adalah sebagai berikut:

^-CDE(*+AB)

Sedangkan dalam notasi akhiran adalah sebagai berikut:

AB+CD-E^*

2. Operator A * B - (C + D) / (E * (F - G)) dalam notasi awalan adalah sebagai berikut:

AB/+CD*E-FG

Sedangkan dalam notasi akhiran adalah sebagai berikut:

AB*CD+EFG-*/-

Materi Slide 2
1. Tumpukan atau stack adalah salah satu konsep struktur data yang memiliki sistem kerja yang
terakhir masuk adalah yang pertama keluar (LIFO =Last In FirstOut).
2. Stack dikatakan LIFO karena LIFO singkatan dari "Last In, First Out". Konsep ini mengacu
pada cara kerja stack, di mana elemen terakhir yang dimasukkan ke dalam stack (last in)
adalah elemen pertama yang dihapus dari stack saat operasi Pop() dilakukan (first out).

Ketika sebuah elemen ditambahkan ke dalam stack menggunakan operasi Push(), maka
elemen tersebut akan menjadi elemen teratas (top) dari stack. Kemudian, ketika operasi
Pop() dilakukan, elemen teratas dihapus dari stack dan elemen yang berada di bawahnya
akan menjadi elemen teratas selanjutnya.

Konsep LIFO ini sering digunakan dalam situasi di mana elemen yang terakhir dimasukkan ke
dalam suatu struktur data adalah yang paling penting atau yang perlu diproses terlebih
dahulu, seperti dalam kasus penggunaan stack pada pemrosesan ekspresi matematika atau
dalam implementasi algoritma DFS (Depth-First Search) pada graf.
3.

T
A
A
S

public class ContohTumpukan {


public static void main(String[] args) {
// inisialisasi Array
Tumpukan tumpukan = new Tumpukan();
// Masukkan 6 nama
tumpukan.push("x");
tumpukan.push("y");
tumpukan.push("z");
tumpukan.push("-");
tumpukan.push("-");
System.out.println("Isi tumpukan:");
while (! tumpukan.empty()) {
String nama = tumpukan.pop();
System.out.println(nama);
}
// Lakukan push() sewaktu tumpukan penuh
System.out.println("Mencoba push() pada tumpukan penuh:");
tumpukan.push("x");
tumpukan.push("y");
tumpukan.push("r");
tumpukan.push("s");
tumpukan.push("t");
System.out.println("Isi tumpukan setelah push() lagi:");
while (! tumpukan.empty()) {
String nama = tumpukan.pop();
System.out.println(nama);
}
}
}

class Tumpukan {
final int MAKSDATA = 5;
private String[] tumpukan = new String[MAKSDATA];
private int puncak;

public Tumpukan() {
puncak = -1;
}

public boolean push(String data) {


// Periksa kalau tumpukan penuh
if (puncak == (MAKSDATA - 1)) {
System.out.println("Tumpukan penuh! " + data + " tidak dimasukkan.");
return false;
}
puncak++;
tumpukan[puncak] = data;
return true;
}

public String pop() {


if (! empty()) {
return tumpukan[puncak--];
} else {
return "**error" ;
}
}

public boolean empty() {


return (puncak == -1);
}
}
3. a. AB^-CDE

Jadi, notasi prefix untuk ekspresi (A + B) * (C – D) ^ E adalah * + A B ^ - C D E.

b. A*B–(C+D)/(E*(F–G)

maka penyelesaian sebagai berikut: A B / + C D * E - F G

Anda mungkin juga menyukai