Skip to content

Commit 0e769fe

Browse files
authored
Buku = using stack library, Kartu = Manual Stack
0 parents  commit 0e769fe

File tree

2 files changed

+102
-0
lines changed

2 files changed

+102
-0
lines changed

stackBuku.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
import java.io.BufferedReader;
3+
import java.io.IOException;
4+
import java.io.InputStreamReader;
5+
import java.util.Stack;
6+
7+
public class stackBuku {
8+
private static Stack<String> stack;
9+
private static int batas;
10+
11+
public static void main(String[] args) throws IOException {
12+
System.out.println("Berapa banyak buku yang ingin disimpan?");
13+
batas = inputBuku();
14+
buatStack(batas);
15+
taruhBuku();
16+
lihatData();
17+
}
18+
19+
public static void buatStack(int batas) {
20+
stack = new Stack<String>();
21+
}
22+
23+
public static void taruhBuku() throws IOException {
24+
String data;
25+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
26+
System.out.println("Saatnya menaruh buku!! ");
27+
for (int i = 0; i < batas; i++) {
28+
System.out.print("Buku ke-" + (i + 1) + " : ");
29+
data = br.readLine(); // Menggunakan nextLine() untuk membaca string
30+
stack.push(data);
31+
System.out.println("_______________________________");
32+
}
33+
}
34+
35+
private static void lihatData() {
36+
System.out.println("_______________________________");
37+
System.out.println("Buku yang ditumpuk dari bawah ke atas : ");
38+
String dataBuku;
39+
for (int i = 0; i < batas; i++) {
40+
// Mengeluarkan elemen dari stack
41+
dataBuku = stack.pop();
42+
System.out.println("Judul Buku = " + dataBuku);
43+
}
44+
}
45+
46+
private static int inputBuku() throws IOException {
47+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
48+
String angkaInput = br.readLine();
49+
int data = Integer.parseInt(angkaInput);
50+
return data;
51+
}
52+
}

stackKartu.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import java.util.Scanner;
2+
3+
public class stackKartu {
4+
private int batas;
5+
private String[] kartuStack;
6+
private int top;
7+
public static Scanner input = new Scanner(System.in);
8+
9+
public stackKartu(int s) {
10+
batas = s;
11+
kartuStack = new String[batas];
12+
top = -1;
13+
}
14+
public void push(String namaKartu) {
15+
kartuStack[++top] = namaKartu;
16+
}
17+
public String pop() {
18+
return kartuStack[top--];
19+
}
20+
public String peek() {
21+
return kartuStack[top];
22+
}
23+
public boolean isEmpty() {
24+
return (top == -1);
25+
}
26+
public boolean isFull() {
27+
return (top == batas - 1);
28+
}
29+
public static void main(String[] args) {
30+
System.out.println("Berapa kartu yang ingin ditumpuk?");
31+
int batas = input.nextInt();
32+
stackKartu kartu = new stackKartu(batas);
33+
input.nextLine();
34+
for (int i = 0; i < batas; i++) {
35+
System.out.print("Kartu ke-" + (i + 1) + " : ");
36+
String namaKartu = input.nextLine();
37+
kartu.push(namaKartu);
38+
}
39+
String atas = kartu.peek();
40+
System.out.println("Kartu yang paling atas : "+atas);
41+
while (!kartu.isEmpty()) {
42+
System.out.println("_________________________________");
43+
System.out.println("Daftar nama kartu yang ditumpuk (dari atas ke bawah)");
44+
String hasil = kartu.pop();
45+
System.out.println(hasil);
46+
System.out.print(" ");
47+
}
48+
input.close();
49+
}
50+
}

0 commit comments

Comments
 (0)