PENUGASAN 4 -- STACK
S T A C K
Stack merupakan suatu struktur data yang berbentuk tumpukan di mana proses memasukkan dan mengeluarkan data dilakukan pada satu “pintu” yang sama. Hal ini berbeda dengan struktur data Queue/antrian yang menggunakan dua “pintu”, satu pintu untuk masuk antrian dan pintu lainnya untuk keluar dari antrian. Struktur data Stack merupakan struktur data yang bersifat LIFO (Last in First Out) artinya data yang masuk terakhir adalah data yang bisa keluar terlebih dahulu.
Metode dalam Stack
1. Push, digunakan untuk memasukkan data ke dalam Stack
public void push(Object object){
list.add(object);
currentIndex++;
}
2. Pop, digunakan untuk mengeluarkan data teratas dari Stack
public Object pop(){
Object object=list.remove(currentIndex);
currentIndex--;
return object;
}
3. Peek, digunakan untuk melihat data yang berada di posisi paling atas
public Object peek(){
return list.get(currentIndex);
}4. Count, digunakan untuk mengetahui jumlah isi data pada Stack
public int count(){
return list.size();
}
5. Clear, digunakan untuk menghapus seluruh data yang ada pada Stack
public void clear(){
list.clear();
currentIndex=-1;
}
Contoh Implementasi Stack pada Program
Source:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* Write a description of class stack here.
*
* @author Adelia Hasna Surya Putri
* @version 07/04/2021
*/
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 StackApp
{
public static void main( String[] args ){
Stack stack=new Stack();
Scanner input = new Scanner(System.in);
System.out.print("Masukkan angka pertama: ");
stack.push(input.nextLine());
System.out.print("Masukkan angka kedua: ");
stack.push(input.nextLine());
System.out.print("Masukkan angka ketiga: ");
stack.push(input.nextLine());
System.out.print("Masukkan angka keempat: ");
stack.push(input.nextLine());
System.out.print("Masukkan angka kelima: ");
stack.push(input.nextLine());
int count=stack.count();
Object object=stack.peek();
System.out.println("Jumlah Data Pada Stack : "+count);
System.out.println("Data Teratas Pada Stack : "+object);
System.out.println("===================================");
object=stack.pop();
System.out.println("Objek yang dikeluarkan (Pop) : "+object);
count=stack.count();
System.out.println("Jumlah Data Pada Stack setelah Pop: "+count);
object=stack.peek();
System.out.println("Data Teratas Pada Stack setelah Pop: "+object);
System.out.println("===================================");
stack.clear();
count = stack.count();
System.out.println("Menghapus seluruh data pada stack");
System.out.println("Size data pada stack sekarang : " + count);
}
}
Output:
Referensi:
https://unydevelopernetwork.com/index.php/2020/04/01/tutorial-struktur-data-membuat-implementasi-stack-sederhana-dengan-java/
https://agung-setiawan.com/implementasi-struktur-data-stack-java/
Adelia Hasna Surya Putri/5025201200

Comments
Post a Comment