Implementasi Stack di Java
STACK
Stack merupakan salah satu cara pengaturan data dalam topik struktur data. Stack (tumpukan) dapat diibaratkan sebagai sebuah tumpukan buku. Sebuah tumpukan buku hanya dapat ditambah bukunya dari atas dan hanya buku yang berada di paling atas yang dapat diambil jika tidak ingin merusak tumpukan buku tersebut. Hal ini sama seperti konsep stack, yaitu LIFO (Last In First Out) dimana buku terakhir masuk merupakan buku pertama keluar.
Berikut merupakan contoh method-method dari stack
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* | |
* @author Anggito Anju | |
* @ver 1.0 - 7 Apr 21 | |
*/ | |
import java.util.List; | |
import java.util.ArrayList; | |
public class stackBuku | |
{ | |
private List<Object> list = new ArrayList<Object>(); | |
private int currIndex = -1; | |
public void push(Object newData) { | |
list.add(newData); | |
currIndex++; | |
} | |
public Object pop() { | |
Object popData = list.remove(currIndex); | |
currIndex--; | |
return popData; | |
} | |
public Object top() { | |
return list.get(currIndex); | |
} | |
public void clearStack(Object newData) { | |
list.clear(); | |
currIndex = -1; | |
} | |
public int size() { | |
return list.size(); | |
} | |
} |
Beberapa method digunakan untuk mengakses stack. Method-method tersebut adalah :
- Push, untuk menambahkan data pada stack,
- Pop, untuk menghapus data teratas pada stack,
- Top, untuk melihat data teratas pada stack,
- Clear, untuk menghapus/ mengosongkan stack,
- Size, untuk mengetahui banyak data pada stack.
Dengan menggunakan method-method yang sudah ada, stack dapat diimplementasikan dalam berbagai permahsalahan menyimpan data yang bersifat (LIFO). Misalnya, menyimpan buku dalam sebuah tumpukan.
Berikut merupakan contoh implementasi stack dalam sebuah tumpukan buku
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* | |
* @author Anggito Anju | |
* @ver 1.0 - 7 Apr 21 | |
*/ | |
public class AppBuku | |
{ | |
public static void main(String[] args) { | |
stackBuku newStack = new stackBuku(); | |
//masukkan buku | |
newStack.push("Negeri 5 Menara"); | |
newStack.push("Harry Potter and The Cursed Child"); | |
newStack.push("The Midnight Library"); | |
newStack.push("Zero to One"); | |
newStack.push("The Lean StartUp"); | |
int size = newStack.size(); | |
Object TopData = newStack.top(); | |
System.out.println("Jumlah buku pada stack : " +size); | |
System.out.println("Judul buku teratas pada stack : " +TopData); | |
Object PoppedData = newStack.pop(); | |
System.out.println(); | |
System.out.println("Buku yang dikeluarkan : " +PoppedData); | |
size = newStack.size(); | |
System.out.println("Jumlah buku setelah di pop : " +size); | |
PoppedData = newStack.pop(); | |
System.out.println(); | |
System.out.println("Buku yang dikeluarkan : " +PoppedData); | |
size = newStack.size(); | |
System.out.println("Jumlah buku setelah di pop : " +size); | |
TopData = newStack.top(); | |
} | |
} |
Untuk memperjelas implementasi dari stack tersebut, berikut ouput yang didapatkan
Komentar
Posting Komentar