Hello, World!

Hello, there!

This blog was originally made in purpose of fulfilling the Data Structure class' assignment. Despite the primary purpose, this blog is also meant to be a personal place for me to upload tasks or materials while tracking the improvement of my programming skills.

Once again, I welcome you to a bit inane but breathtaking world, My Personal World.

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
    Berikut merupakan salah satu implementasi dari operasi dasar 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);
}
}
view raw Stack.java hosted with ❤ by GitHub

    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

Popular Posts