Stack in Java
Hello there!
Welcome back with me, Angela Oryza! Well, okay, I don't have any ideas to not show up in a cringe way, so yea, my deepest apologies. For today, I'm going to write about stack and how it works in Java. In order to make it more understandable, since its origin purpose is as one of my college assignment, I'm going to write this blog in bahasa. For the english one, you are welcome to click the link I've included below this blog. Enjoy!!
STACK
Stack adalah struktur data dinamis yang mengikuti prinsip Last In First Out (LIFO). Pada LIFO, Elemen terakhir yang dimasukkan pada stack akan menjadi elemen yang pertama dihapus. Sebagai contoh dari Stack adalah tumpukan piring, dimana piring baru diletakkan pada tumpukan paling atas dan dikeluarkan juga dari paling atas.
Operasi dasar pada Stack ada beberapa, antara lain :
- size – untuk mendapatkan data size pada stack.
- push – operasi untuk menambahkan data pada tumpukan paling atas.
- pop – operasi untuk menghapus data pada tumpukan paling atas.
- top/peek – untuk mendapatkan data pada tumpukan paling atas.
- Count – digunakan untuk mengetahui jumlah isi data pada Stack
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.Scanner; | |
class Stack { | |
private List<Object> list = new ArrayList<Object>(); | |
private int currentIndex=-1; | |
public void push(Object object){ | |
list.add(object); | |
currentIndex++; | |
} | |
public Object pop(){ | |
Object object=list.remove(currentIndex); | |
currentIndex--; | |
return object; | |
} | |
public int count(){ | |
return list.size(); | |
} | |
public Object peek(){ | |
return list.get(currentIndex); | |
} | |
public void clear(){ | |
list.clear(); | |
currentIndex=-1; | |
} | |
} | |
public class App | |
{ | |
public static void main(String[] args){ | |
Scanner myScanner = new Scanner(System.in); | |
Stack stackAku = new Stack(); | |
System.out.print("Lagu Favorit 1 : "); | |
stackAku.push(myScanner.nextLine()); | |
System.out.print("Lagu Favorit 2 : "); | |
stackAku.push(myScanner.nextLine()); | |
System.out.print("Lagu Favorit 3 : "); | |
stackAku.push(myScanner.nextLine()); | |
System.out.print("Lagu Favorit 4 : "); | |
stackAku.push(myScanner.nextLine()); | |
int count = stackAku.count(); | |
Object object = stackAku.peek(); | |
System.out.println("Jumlah Data Pada Stack : " + count); | |
System.out.println("Data Teratas Pada Stack : " +object); | |
System.out.println("======================================"); | |
object = stackAku.pop(); | |
System.out.println("Objek yang dikeluarkan (Pop) : "+object); | |
count=stackAku.count(); | |
System.out.println("Jumlah Data Pada Stack setelah Pop: "+count); | |
object = stackAku.peek(); | |
System.out.println("Data Teratas Pada Stack setelah Pop: " +object); | |
} | |
} |
Salah satu contoh penerapan Stack adalah bagaimana mengubah notasi infix menjadi postfix. Notasi infix adalah notasi yang biasa dibaca dan diselesaikan oleh manusia dalam persoalan matematika, contoh ‘x + y / (10 + z)’ namun komputer tidak dapat membedakan operator dan tanda kurung (parentheses) dengan mudah sehingga komputer akan mengubah notasi infix menjadi postfix, contoh ‘x y + 10 z + /’. Untuk mengubah notasi infix menjadi postfix digunakanlah struktur data stack
Comments
Post a Comment