Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
2
Stack (Tumpukan) Pertemuan 4 Season 1
TI 014 – STRUKTUR DATA Stack (Tumpukan) Pertemuan 4 Season 1
3
Definisi STACK / TUMPUKAN ?
4
Tumpukan (stack) adalah struktur data yang memungkinakn penyisipan dan pengambilan data dilakukan dari satu ujung yang disebut puncak. Cara yang paling mudah untuk meletakkan data ke dalam tumpukan adalah dengan menaruhnya di bagian puncak.
5
Ilustrasi stack
6
Teori Tumpukan Teori tumpukan sebenarnya sangat mudah. Kita bisa membayangkan bahwa tumpukan itu diibaratkan dengan sebuah keranjang pakaian. Pakaian yang pertama kali dimasukkan kedalam keranjang akan berada di posisi bawah, sedangkan pakaian yang terakhir dimasukkan berada di posisi paling atas. Dengan demikian, ketika pakaian dalam keranjang tersebut dikeluarkan, pakaian yang pertama kali masuk adalah yang paling terakhir keluar
7
Dengan pemahaman tersebut dapar disimpulkan bahwa tumpukan adalah struktur data yang menggunakan konsep first come last served (FCLS) atau Last-in First-out (LIFO). Yang artinya elemen/data terakhir yang disimpan dalam tumpukan menjadi elemen/data pertama yang akan diambil
8
Metode dalam Stack Metode Keterangan Push(arg)
Menyisipkan data arg di puncak tumpukan Pop() Mengambil data yang ada di puncak tumpukan. Jika tumpukan kosong, akan terjadi eksepsi EmptyStackException Peek() Memberikan nilai balik berupa elemen yang ada di puncak tanpa menghapusnya. Jika tumpukan kosong, akan terjadi eksepsi EmptyStackException Empty() isEmpty() Menghasilkan nilai true kalau tumpukan kosong, dan false kalau tumpukan berisi data Get(indeks) Menghasilkan elemen yang posisinya sama dengan indeks firstElemen()) Menghasilkan elemen pertama lastElemen() Menghasilkan elemen terakhir Clear() Menghapus semua elemen ditumpukan Remove(indeks) Menghapus elemen yang posisinya sama dengan indeks
9
Conoth program tumpukan
tumpukan.push("Karman Julia"); tumpukan.push("Dani Adipta"); tumpukan.push("Kartika Putri"); // Kosongkan isi tumpukan dan tampilkan System.out.println("Isi tumpukan:"); while (! tumpukan.empty()) { String nama = tumpukan.pop(); System.out.println(nama); } import java.util.Stack; public class ContohTumpukan2 { public static void main(String[] args) { // Buat objek Stack<String> tumpukan = new Stack<String>(); // Masukkan 9 nama tumpukan.push("Aminudin"); tumpukan.push("Zaskia"); tumpukan.push("Rina Melati"); tumpukan.push("Farhan"); tumpukan.push("Agnes Monica"); tumpukan.push("Dian Susilo");
10
Hasil Running Program
11
Tumpukan dengan Array Tumpukan dapat dibuat menggunakan berbagai cara, salah satunya dengan menggunakan array. Contoh implementasinya dalah : jumlah elemen array dibatasi hanya 8 data saja. Dapat dilihat penggunaan stack dengan array nya seperti berikut :
12
public class ContohTumpukan { public static void main(String[] args) { Tumpukan tumpukan = new Tumpukan(); // Buat objek // Masukkan 9 nama tumpukan.push("Aminudin"); tumpukan.push("Zaskia"); tumpukan.push("Rina Melati"); tumpukan.push("Farhan"); tumpukan.push("Agnes Monica"); tumpukan.push("Dian Susilo"); tumpukan.push("Karman Julia"); tumpukan.push("Dani Adipta"); tumpukan.push("Kartika Putri"); // Kosongkan isi tumpukan dan tampilkan System.out.println("Isi tumpukan:"); while (! tumpukan.empty()) { String nama = tumpukan.pop(); System.out.println(nama); } // Lakukan pop() sewaktu tumpukan kosong System.out.println("Mencoba pop() pada tumpukan kosong:"); System.out.println(tumpukan.pop()); class Tumpukan { final int MAKSDATA = 8; private String[] tumpukan = new String[MAKSDATA]; private int puncak; // Konstruktor public Tumpukan() { puncak = -1; } // Memasukkan data ke tumpukan // Nilai balik berupa false // kalau tumpukan sudah penuh public boolean push(String data) { // Periksa kalau tumpukan penuh if (puncak == (MAKSDATA - 1)) { System.out.print("Tumpukan penuh! "); System.out.println(data + " tidak dimasukkan."); return false; // Masukkan data ke tumpukan puncak++; tumpukan[puncak] = data; return true;
13
Lanjutan… public String pop() { if (! empty()) return tumpukan[puncak--]; else return "**error**"; // menyatakan // tumpukan sudah habis } public boolean empty() { return (puncak == -1);
15
Memahami kode pada kelas Tumpukan
Konstruktor kelas berupa : Public Tumpukan(){ puncak = -1; } Pada kode diatas, puncak diisi dengan -1, yang menyatakan bahwa tumpukan tidak berisi data sama sekali. Diluar konstruktor, kelas Tumpukan memiliki tiga metode anggota yaitu push(), pop() dan empty()
16
Metode anggota push() public boolean push(String data) { // Periksa kalau tumpukan penuh if (puncak == (MAKSDATA - 1)) { System.out.print("Tumpukan penuh! "); System.out.println(data + " tidak dimasukkan."); return false; } // Masukkan data ke tumpukan puncak++; tumpukan[puncak] = data; return true;
17
Pada metode anggota push(), data yang menjadi argumen tidak jadi dimasukkan ke dalam array sekiranya isi puncak sudah sama dengan MAKSDATA - 1. Kalau tumpukan belum penuh, mula mula isi puncak dinaikkan sebesar satu. Selanjutnya, data diletakkan pada Tumpukan[Puncak]
18
Metode Anggota empty()
Metode anggota empty() berguna untuk mengetahui tumpukan dalam keadaan kosong atau tidak. Metode tersebut menghasilkan nilai true kalau tumpukan dalam keadaan kosong. Pada program kodenya adalah : public boolean empty() { return (puncak == -1); }
19
Apabila isi puncak berupa -1 (berarti tidak ada data dalam tumpukan), metode anggota empty() menghasilkan nilai berupa true. Untuk keaadaan sebaliknya, nilai balik berupa false
20
Metode anggota pop() Metode anggota pop() merupakan metode yang ditujukan untuk mengambil sebuah data dari tumpukan . Kode program implementasinya adalah : public String pop() { if (! empty()) return tumpukan[puncak--]; else return "**error**"; //menyatakan tumpukan sudah habis }
21
Nilai balik berupa string “. error
Nilai balik berupa string “**error**” jika tumpukan sudah kosong ketika pop() dipanggil. Kalau tidak kosong, nilai balik berupa isi tumpukan [puncak] dan sesudah itu nilai puncak diturunkan sebesar satu. Pengujian kosong tidaknya suatu tumpukan dilakukan dengan memanfaatkan metode anggota empty()
22
Memahami kode pada main()
Kode pada main() digunakan untuk menguji ketiga metode anggota dalam kelas Tumpukan. Pengujian dilakukan dengan mula-mula melaksanakan pembuatan objek bernama tumpukan melalui perintah : Tumpukan tumpukan = new Tumpukan ();
23
Dalam keadaan awal, tumpukan dalam keadaan kosong. Pernyataan :
tumpukan.push("Aminudin"); tumpukan.push("Zaskia"); tumpukan.push("Rina Melati"); tumpukan.push("Farhan"); tumpukan.push("Agnes Monica"); tumpukan.push("Dian Susilo"); tumpukan.push("Karman Julia"); tumpukan.push("Dani Adipta"); tumpukan.push("Kartika Putri");
24
Memasukkan sembilan data ke dalam tumpukan
Memasukkan sembilan data ke dalam tumpukan. Penyisipan data yang kesembilan digunakan untuk menguji efek kalau tumpukan sudah penuh (mengingat jumlah elemen yang dapat ditampilkan ditumpukan adalah 8). Selanjutnya isi tumpukan dikeluarkan melalui :
25
Kode di atas menyatakan bahwa selama isi tumpukan tidak kosong maka :
while (! tumpukan.empty()) { String nama = tumpukan.pop(); System.out.println(nama); } Kode di atas menyatakan bahwa selama isi tumpukan tidak kosong maka : Sebuah data dikeluarkan melalui pop() dan meletakkan ke variabel nama; Isi variabel nama ditampilkan melalu System.out.println() Pernyataan : System.out.println(tumpukan.pop()); digunakan untuk menguji pop() sewaktu tumpukan dalam keadaan kosong.
26
Perwujudan Tumpukan dengan Stack
Untuk memudahkan perwujudan tumpukan, java menyediakan kelas bernama Stack. Penggunaan kelas ini memerlukan pernyataan : import java.util.Stack; Dengan menggunaak kelas tersebut, tidak perlu algi membuat kelas khusus untuk mewujudkan tumpukan. Sebagai gantinya dilakukan dengan menulis perintah : Stack<String> tumpukan = new Stack<String>();
27
SEKIAN dan TERIMA KASIH
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.