340 likes | 602 Views
Stack (Tumpukan). Definisi Stack (Tumpukan). Stack adalah list linier yang: Dikenali elemen puncaknya (TOP) Aturan penyisipan dan penghapusan elemennya tertentu Penyisipan selalu dilakukan di “atas” (TOP) Penghapusan selalu dilakukan pada TOP
E N D
Definisi Stack (Tumpukan) Stack adalah list linier yang: • Dikenali elemen puncaknya (TOP) • Aturan penyisipan dan penghapusan elemennya tertentu • Penyisipan selalu dilakukan di “atas” (TOP) • Penghapusan selalu dilakukan pada TOP Stack tersusun secara LIFO (Last In First Out)
Definisi Stack TOP BOTTOM
Representasi Stack secara lojik digambarkan sebagai list linier yang setiap tipe elemennya adalah Type ElmtS : <Info : Infotype, Next : address> • Alamat elemen terbaru (TOP) dan alamat elemen terlama (BOTTOM) juga dicatat. Namun dalam implementasi belum tentu BOTTOM digunakan.
Sehingga jika S adalah sebuah stack, dan P adalah sebuah address maka: • Top(S) adalah alamat elemen TOP, dimana operasi penyisipan dan penghapusan dilakukan • Info(P) adalah informasi yang disimpan pada alamat P • Next(P) adalah alamat suksesor P
Traversal Pada Stack • Pada stack jarang sekali dilakukan operasi traversal, karena keunikan stack justru pada operasi yang hanya menyangkut elemen TOP. • Namun jika memang dibutuhkan traversal, misalnya untuk mencetak isi stack, maka skema traversal suatu stack persis sama dengan skema traversal list linier biasa, dengan mengganti First(L) menjadi TOP(S).
Operasi dan Fungsi dasar (Primitif) Pada Stack Diberikan S adalah Stack dengan elemenS, maka definisi fungsional stack adalah : • StackEmpty :S boolean {Test stack kosong, true jika kosong, false jika tidak} • CreateStack: S {Membuat sebuah stack kosong} • Push : Elmt x S S {Menambahkan sebuah ElmtS sebagai TOP. TOP berubah nilainya} • Pop : S S x ElmtS {Mengambil nilai elemen TOP, sehingga Top yang baru adalah elemen yang datang sebelum elemen TOP, mungkin Stack menjad i kosong}
Representasi kontigu • Karena kemudahan operasinya, biasanya stack lebih banyak direpresentasikan sebagai tabel kontigu, dengan TOP adalah salah satu nilai ekstrem indeks terdefinisi. • Stack direpresentasikan oleh sebuah tabel {1..Nmax} dengan NMax adalah kostanta yang diperkirakan sebagai jumlah maksimum elemen yang ditampung stack.
Studi Kasus Stack Ekspresi Matematika dengan notasi postfix (Polish) • Diberikan sebuah ekpresi matematika postfix dengan operator [‘ * ’, ’ / ’, ‘+’,’-’,’^’] • Operan dari ekspresi dapat berupa sebuah karakter abjad [‘A’..’Z’] atau sebuah nilai yang terdiri dari satu angka [‘0’..’9’]
Studi Kasus Stack Catatan • Dalam penulisan ekspresi yang tidak disederhanakan, tiap operan atau operator disebut token. • Didefinisikan token adalah sebuah ‘kata’ (deretan karakter yang tidak mengandung blank), dan diantara dua kata dipisahkan satu atau beberapa operator