Tugas 4
STACK
Stack adalah salah satu struktur data yang memiliki sistem kerja Last In First Out (LIFO), yang terakhir masuk pertama keluar. Dapat di ilustrasikan seperti sebuah tumpukan buku, ketika mengambil sebuah buku di dalam tumpukan itu maka harus diambil satu persatu dari buku yang paling atas dari tumpukan buku tersebut. Sebuah stack hanya dapat ditambahkan dan dikurangi elemennya hanya dari satu sisi yakni elemen atasnya atau biasa disebut Top Of Stack.
Operasi pada Stack
- Push : Untuk menambahkan elemen atau data, dimana data paling akhir akan diletakkan di paling atas
- Pop : untuk mengambil atau mengeluarkan data dimana data yang diambil adalah data terakhir atau paling atas.
- Clear : digunakan untuk mengosongkan stack
- IsEmpty : untuk memeriksa apakah stack sudah kosong
- IsFull : untuk memeriksa apakah stack dalam keadaan penuh
This file contains hidden or 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
package struktur_data; | |
import java.util.Scanner; | |
/** | |
* | |
* @author Nabila Zakiyah | |
*/ | |
public class Stack { | |
int stack[]; | |
int indek; | |
//Memesan Panjang Stack | |
public Stack(int a){ | |
stack = new int [a]; | |
} | |
//Menghitung Panjang Stack | |
public void Count(){ | |
int hasil = stack.length; | |
System.out.println("Jumlah Stak \t:\t"+hasil); | |
} | |
//Mengisi Nilai dalam Stack | |
public void push(int isi){ | |
stack[indek] = isi; | |
indek++; | |
} | |
//Untuk Melihat Elemen Paling Atas | |
public void Peek(){ | |
int hasil = 0; | |
hasil+=stack.length-1; | |
System.out.println("Peek Stack Adalah\t:\t"+stack[hasil]); | |
} | |
public void Print(){ | |
for(int i = stack.length-1 ;i>=0 ; i--){ | |
System.out.println(stack[i]); | |
} | |
} | |
public void pop(int angka){ | |
for(int i = 0; i<stack.length ; i++){ | |
if(stack[i]==angka){ | |
stack[i]=0; | |
} | |
} | |
} | |
public static void main(String[]args){ | |
Scanner ir = new Scanner(System.in); | |
System.out.print("Masukan Batas \t:\t"); | |
int batas = ir.nextInt(); | |
Stack irin = new Stack(batas); | |
for(int i = 0; i<batas ; i++){ | |
System.out.print("Masukan Isi "+(i+1)+"\t:\t"); | |
int isi = ir.nextInt(); | |
irin.push(isi); | |
} | |
System.out.print("______________________________________\n"); | |
irin.Count(); | |
System.out.print("______________________________________\n"); | |
irin.Print(); | |
System.out.print("______________________________________\n"); | |
irin.Peek(); | |
System.out.print("______________________________________\n"); | |
System.out.print("Berapa Kali Anda Melakukan POP\t:\t"); | |
int bts = ir.nextInt(); | |
int angka; | |
for(int i = 1 ; i<=bts ; i++){ | |
System.out.print("Masukan Angka POP\t:\t"); | |
angka = ir.nextInt(); | |
irin.pop(angka); | |
System.out.print("______________________________________\n"); | |
} | |
irin.Print(); | |
} | |
} |
Komentar
Posting Komentar