LOGIKA ALGORITMA DAN STRUKTUR DATA
STACK
Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di atas“ TOP dan Penghapusan selalu dilakukan pada TOP.
STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA
Stack karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus.Dikatakan bahwa elemen Stack akan tersusun secara LIFO (Last In First Out).
karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan.
Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo juga.
OPERASI-OPERASI/FUNGSI STACK
INISIALISASI STACK
Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG.!
Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!
CONTOH SOAL-SOAL STACK
A. S adalah stack kosong. Tentukan kondisi akhir stack setelah operasi berikut :
1. push A, push B, push C, push D, pop, pop, push A, push D, pop, push F, pop, pop
Script :
public class stackdemo1 {
public static void main(String[] args) {
Stack S = new Stack();// implementasi stack
S.push("A");//masukkan A
S.push("B");//masukkan B
S.push("C");//masukkan C
S.push("D");//masukkan D
S.pop();// keluar C
S.pop();// keluar D
S.push("A");//masukkan A
S.push("D");//masukkan D
S.pop();//keluar D
S.push("F");//masukkan F
S.pop();//keluar A
S.pop();//keluar f
System.out.println("Tumpukan : " + S);// mencetak akhir dari tumpukan
}
}
Tampilan :
STACK
Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di atas“ TOP dan Penghapusan selalu dilakukan pada TOP.
STACK ATAU TUMPUKAN PADA MATAKULIAH STRUKTUR DATA
Stack karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan menjadi elemen yang akan dihapus.Dikatakan bahwa elemen Stack akan tersusun secara LIFO (Last In First Out).
karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan.
Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo juga.
OPERASI-OPERASI/FUNGSI STACK
- Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
- Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
- Clear : digunakan untuk mengosongkan stack
- IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
- IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
INISIALISASI STACK
Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG.!
Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!
CONTOH SOAL-SOAL STACK
A. S adalah stack kosong. Tentukan kondisi akhir stack setelah operasi berikut :
1. push A, push B, push C, push D, pop, pop, push A, push D, pop, push F, pop, pop
Script :
public class stackdemo1 {
public static void main(String[] args) {
Stack S = new Stack();// implementasi stack
S.push("A");//masukkan A
S.push("B");//masukkan B
S.push("C");//masukkan C
S.push("D");//masukkan D
S.pop();// keluar C
S.pop();// keluar D
S.push("A");//masukkan A
S.push("D");//masukkan D
S.pop();//keluar D
S.push("F");//masukkan F
S.pop();//keluar A
S.pop();//keluar f
System.out.println("Tumpukan : " + S);// mencetak akhir dari tumpukan
}
}
Tampilan :
2. push M, pop, push M, push N, push P, push R, pop, pop, push T, push P, pop, pop, pop
Script :
public class stackdemo2 {
public static void main(String[] args) {
Stack S = new Stack();// implementasi stack
S.push("M");//masuk M
S.pop();//keluar M
S.push("M");//masuk M
S.push("N");//masuk N
S.push("P");//masuk P
S.push("R");//masuk R
S.pop();//keluar P
S.pop();//keluar R
S.push("T");//masuk T
S.push("P");//masuk P
S.pop();//keluar N
S.pop();// keluar T
S.pop();//keluar P
System.out.println("Tumpukan : " + S);// mencetak hasil akhir tumpukan
}
}
Tampilan :
3. push john, push elle, push bob, pop, push rick, push anne, push alex, pop, pop
Script :
public class stackdemo3 {
public static void main(String[] args) {
Stack S = new Stack();// implementasi
S.push("john");//masuk john
S.push("elle");//masuk elle
S.push("bob");//masuk bob
S.pop();// keluar bob
S.push("rick");//masuk rick
S.push("anne");//masuk anne
S.push("alex");//masuk alex
S.pop();//keluar alex
S.pop();//keluar popi
System.out.println("Tumpukan : " + S);// mencetak akhir
}
}
Tampilan :
B. Jika S adalah stack yang berisi himpunan {1, 3, 5, 7}. Tentukan operasi push & pop yang tepat untuk mengubahnya menjadi :
1. S = {1,3,5}
Script :
public class stackdemo4 {
public static void main(String[] args) {
Stack s = new Stack();// implementasi
s.push("1");//masuk 1
s.push("3");//masuk 3
s.push("5");//masuk 5
s.push("7");//masuk 7
s.pop();//keluar 7
System.out.println("hasil : "+s);// mencetak hasil dari stack
}
}
Tampilan :
2. S = {1,3,7, 5}
Script :
public class stackdemo5 {
public static void main(String[] args) {
Stack s = new Stack();//implementasi
s.push("1");//masuk 1
s.push("3");//masuk 3
s.push("5");//masuk 5
s.pop();// keluar 5
s.push("7");//masuk 7
s.push("5");//masuk 5
System.out.println("hasil : " + s);// mencetak hasil dari stack
}
}
Tampilan :
3. S = {3, 7}
Script :
public class stackdemo6 {
public static void main(String[] args) {
Stack s = new Stack();// implementasi
s.push("1");//masuk 1
s.pop();// keluar 1
s.push("3");//masuk 3
s.push("5");//masuk 5
s.pop();//keluar 5
s.push("7");//masuk 7
System.out.println("hasil : " + s);// mencetak hasil dari stack
}
}
Tampilan :
4. S = {3,7,11,12}
Script :
public class stackdemo7 {
public static void main(String[] args) {
Stack s = new Stack();// implementasi
s.push("1");//masuk 1
s.pop();// keluar 1
s.push("3");//masuk 3
s.push("5");//masuk 5
s.pop();// keluar 5
s.push("7");//masuk 7
s.push("11");//masuk 11
s.push("12");//masuk 12
System.out.println("hasil : " + s);// mencetak hasil dari stack
}
}
Tampilan :
5. S = {7, 11, 12}
Script :
public class stackdemo8 {
public static void main(String[] args) {
Stack s = new Stack();// implementasi
s.push("1");//masuk 1
s.pop();// keluar 1
s.push("3");//masuk 3
s.pop();//keluar 3
s.push("5");//masuk 5
s.pop();// keluar 5
s.push("7");//masuk 7
s.push("11");//masuk 11
s.push("12");//masuk12
System.out.println("hasil : " + s);// mencetak hasil dari stack
}
}
Tampilan :
C. Jika S adalah stack yang berisi himpunan {a, d, e}. Tentukan operasi push & pop yang tepat untuk mengubahnya menjadi :
1. = {a}
Script :
public class stackdemo9 {
public static void main(String[] args) {
Stack s = new Stack();// implementasi
s.push("a");//masuk a
s.push("d");//masuk d
s.pop();// keluar d
s.push("e");//masuk e
s.pop();//keluar e
System.out.println("hasil : " + s);// mencetak hasil dari stack
}
}
Tampilan :
2. S = {a, b, c, d}
Script :
public class stackdemo10 {
public static void main(String[] args) {
Stack s = new Stack();// implemantasi
s.push("a");//masuk a
s.push("d");//masuk d
s.pop();// keluar d
s.push("e");//masuk e
s.pop();// keluar e
s.push("b");//masuk b
s.push("c");//masuk c
s.push("d");//masuk d
System.out.println("hasil : " + s);// mencetak nilai dari stack
}
}
Tampilan :
3. S = {a, c}
Script :
public class stackdemo11 {
public static void main(String[] args) {
Stack s = new Stack();// implentasi
s.push("a");//masuk a
s.push("d");//masuk d
s.pop();// keluar d
s.push("e");//masuk e
s.pop();//keluar e
s.push("c");//masuk c
System.out.println("hasil : " + s);// menctak hasil dari stack
}
}
Tampilan :
4. S = {c}
Script :
public class stackdemo12 {
public static void main(String[] args) {
Stack s = new Stack();// implementasi
s.push("a");//masuk a
s.pop();// keluar a
s.push("d");//masuk d
s.pop();// keluar d
s.push("e");//masuk e
s.pop();// keluar e
s.push("c");//masuk c
System.out.println("hasil : " + s);// mencetak hasil daristack
}
}
Tampilan :
5. S = {c, f, g, h}
Script :
public class stackdemo13 {
public static void main(String[] args) {
Stack s = new Stack();
s.push("a");//masuk a
s.pop();//keluar a
s.push("d");//masuk d
s.pop();//keluar d
s.push("e");//masuk e
s.pop();//keluar e
s.push("c");// masuk c
s.push("f");// masuk f
s.push("g");// masuk g
s.push("h");// masuk h
System.out.println("hasil : " + s);// mencetak nilai stack terakhir
}
}
Tampilan :
IIS DAHLIA
1200631047
MI A
Tidak ada komentar:
Posting Komentar