LATIHAN 1
A. Soal
B. Screenshot
Gambar screenshot hasil run dari program
C. Syntax
stack_array.java
1 package Bab7stack;
2 import java.util.Scanner;
3 public class stack_array {
4 Scanner masuk = new Scanner(System.in);
5 public int choice, i;
6 char item;
7 int MAX_SIZE = 999;
8 char[] arr_stack = new char[MAX_SIZE];
9 int count = 0;
10 int keluar = 0;
11
12 public void push(char item) {
13 if (count == MAX_SIZE) {
14 System.out.print("\n# Stack Penuh");
15 } else {
16 arr_stack[count] = item;
17 System.out.print("\n# PUSH No
urut/index : " + count + ", Push :" + item);
18 count++;
19 }
20 }
21
22 public void pop()
23 { if (count == 0)
24 {
25 System.out.print("\n## Stack kosong");
26 } else {
27 --count;
System.out.print("\n##POP No urut/index
28 : " + count + ", Value :" + arr_stack[count]);
29 }
30 }
31 public void printAll()
32 { System.out.print("\n## Stack Size : "
+
33 count);
34 for (i = (count - 1); i >= 0; i--)
{ System.out.print("\n## No Urut/index
35 :
36 " + i + ", Value :" + arr_stack[i]);
37 }
38 }
39
public void menu() {
40 System.out.print("\nMasukkan operasi yang
41 akan dilakukan (1:push, 2:pop, 3:print) : ");
42 choice = masuk.nextInt();
43 switch (choice) {
case 1:
44 System.out.print("\nMasukkan huruf
45 yang akan dipush : ");
46 String bantu = masuk.next();
47 item = bantu.charAt(0);
48 push(item);
49 break;
50 case 2:
51 pop();
52 break;
53 case 3:
54 printAll();
55 break;
default:
56 System.out.print("\n1:push, 2:pop,
57 3:print\n");
58 keluar = 1;
59 break;
60 }
61 }
62
63 public static void main(String[] args)
64 { stack_array coba = new
65 stack_array(); do {
66 coba.menu();
67 } while (coba.keluar == 0);
}
}
D. Penjelasan
KESIMPULAN
Stack adalah sebuah koleksii objek yang menggunakan prinsip LIFO
(Last In First Out), yaitu item terakhir yang masuk pada stack menjadi item
pertama yang akan dikeluarkan dari stack.
Stack berdasarkan penyusunannya terdapat dua macam stack dengan
array dan stack linked list. Stack array setiap elemen array hanya berisi data. Dan
datanya terbatas pada ruang yang telah dideklarasikan. Sedangkan stack linked
list setiap elemennya bergantung pada 2 bagian. Yaitu data dan pointer. Datanya
tidak terbatas dan tidak memerlukan deklarasi untuk menentukan ruangannya.
Method pada stack yaitu push, pop, peek, count, clear, print all. Push
digunakan untuk memasukkan data kedalam stack. Pop digunakan untuk
mengeluarkan data teratas dari stack. Peek digunakan untuk melihat data dari
posisi teratas. Count digunakan untuk mengetahui jumlah isi dari stack. Clear
digunakan untuk menghapus data yang ada pada stack. PrintAll digunakan untuk
mencetak data pada stack.
Penerapan dari struktur data stack
stack.java
1 public class stack
2 { int stack[]=new
3 int[3];
4 public void push(int value){
5 if(stack[0]==0)
6 { stack[0]=value;
7 }else if(stack[1]==0){
8 stack[1]=value;
9 }else if(stack[2]==0){
10 stack[2]=value;
11 }
12 else{ isF
13 ull();
14 }
15 }
16 public void isFull()
{ System.out.println("STACK IS
FULL");
}
17 public void pop(){
18 if(stack[2]!=0)
19 { stack[2]=0;
20 }else if(stack[1]!=0){
21 stack[1]=0;
22 }else if(stack[0]!=0){
23 stack[0]=0;
24 }
25 else{ isEm
26 pty();
27 }
28 }
…… ……