Anda di halaman 1dari 5

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA

BAB : ADT STACK


NAMA : MAYSCE
CHRISTI NIM : 185150701111009
TANGGAL : 22/10/2019
ASISTEN : FRANKLID GUNAWAN

LATIHAN 1
A. Soal

1. Buatlah file percobaan stack_array.java berikut….


2. Tambahkan kode berikut pada baris 20 sampai 22
3. Tambahkan kode berikut pada baris 32 dan33
4. Jalankan program dan
◦ pilih menu push dan masukkan “A”
◦ pilih menu push dan masukkan “B”
◦ pilih menu push dan masukkan “C”
◦ pilih menu print
◦ pilih menu pop
◦ pilih menu print
◦ pilih menu push dan masukkan “D”
◦ pilih menu print

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

Pada program tersebut, terdapat method push yang digunakan untuk


memasukkan data. Jika kita memasukkan data melebihi maksimal size nya, maka
datanya tidak akan dimasukkan dan data penuh akan ditampilkan. Namun jika
tidak melebihi, maka data dapat dimasukkan. Jika kita ingin mengambil data,
kita bisa menggunakan method pop. Method pop() pada program tersebut yang
digunakan untuk mengambil data. Jika isi dari list kosong, maka method pop ini
akan menampilkan stack kosong. Namun jika masih terdapat datanya, maka
method pop ini berfungsi untuk mengambil(mengurangi) data dari terakhir kali
kita memasukkan data. Method PrintAll() digunakan untuk menampilkan data
dari list. Method menu digunakan untuk membuat menu listnya, lalu method
main digunakan untuk menjalankan program dan memanggil method menu.

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 }
…… ……

Anda mungkin juga menyukai