Selasa, 15 Maret 2011

STACK

PENGERTIAN STACK

Secara sederhana diartikan dengan :
  •  sebagai tumpukan dari benda
  •   sekumpulan data yang seolah-olah diletakkan di atas data yang lain
  •  koleksi dari objek-objek homogen

OPERASI PADA STACK :

2 operasi dasar yang bisa dilaksanakan  pada sebuah stack, yaitu: 
  •    Operasi Push (menyisipkan data)  memasukkan data ke dalam stack
  •  Operasi Pop (menghapus data)
            menghapus elemen yang terletak pada posisi paling atas dari sebuah stack


OPERASI PADA STACK – Cont.
  •  Operasi Push
             void Push (NOD **T, char item)                               
{
                        NOD *n;
                        n=NodBaru (item);
                        n->next=*T;
                        *T=n;
            }

  •  Operasi Pop
char Pop (NOD **T)
            {
                        NOD *n; char item;
                        if (!StackKosong(*T)) {
                                    P=*T;
                                    *T=(*T)->next;
                                    item=P->data;
                                    free(P);
                        }
                        return item;
            }


1. buat stack (stack) - create

  •   membuat sebuah stack baru yang masih kosong
  • spesifikasi:
tujuan : mendefinisikan stack yang kosong
input : stack
syarat awal : tidak ada
output stack : - (kosong)
syarat akhir : stack dalam keadaan kosong

            2. stack kosong (stack) - empty

  •  fungsi untuk menentukan apakah stack dalam keadaan kosong atau tidak
  • spesifikasi:
tujuan : mengecek apakah stack dalam keadaan kosong
input : stack
syarat awal : tidak ada
output : boolean
syarat akhir : stack kosong bernilai true jika stack dalam keadaan kosong

             3. stack penuh (stack) - full

  •  fungsi untuk memeriksa apakah stack yang ada sudah penuh
  • spesifikasi:
tujuan : mengecek apakah stack dalam keadaan penuh
input : stack
syarat awal : tidak ada
output : boolean
syarat akhir : stack penuh bernilai true jika stack dalam keadaan penuh

             4. push (stack, info baru)

  • menambahkan sebuah elemen kedalam stack.
  • spesifikasi:
tujuan : menambahkan elemen, info baru pada stack pada posisi paling atas
input : stack dan Info baru
syarat awal : stack tidak penuh
output : stack
syarat akhir : stack bertambah satu elemen

             5. pop (stack, info pop)

  • mengambil elemen teratas dari stack
  •  spesifikasi:
tujuan : mengeluarkan elemen dari stack yang berada pada posisi paling atas
input : stack
syarat awal : stack tidak kosong
output : stack dalam info pop
syarat akhir : stack berkurang satu elemen 


CONTOH PEMANFAATAN STACK :

  • Notasi Infix Prefix
  • Notasi Infix Postfix
Pemanfaatan stack antara lain untuk menulis ungkapan dengan menggunakan notasi tertentu.
Contoh :
( A + B ) * ( C – D )
Tanda kurung selalu digunakan dalam penulisan ungkapan numeris untuk mengelompokkan bagian mana yang akan dikerjakan terlebih dahulu.
Dari contoh ( A + B ) akan dikerjakan terlebih dahulu, kemudian baru ( C – D ) dan terakhir hasilnya akan dikalikan.
A + B * C – D
B * C akan dikerjakan terlebih dahulu, hasil yang didapat akan berbeda dengan hasil notasi dengan tanda kurung.



Notasi Infix Prefix :
Cara penulisan ungkapan yaitu dengan menggunakan notasi infix, yang artinya operator ditulis diantara 2 operator.
Seorang ahli matematika bernama Jan Lukasiewiccz mengembangkan suatu cara penulisan ungkapan numeris yang disebut prefix, yang artinya operator ditulis sebelum kedua operand yang akan disajikan.
Contoh :
           
Proses konversi
dari infix ke prefix :                                                   
= ( A + B ) * ( C – D )
= [ + A B ] * [ - C D ]
= * [ + A B ] [ - C D ]
= * + A B - C D

Notasi Infix Postfix:
Cara penulisan ungkapan yaitu dengan menggunakan notasi postfix, yang artinya operator ditulis sesudah operand.
Contoh :
Proses konversi                                                          
dari infix ke postfix :
= ( 6 - 2 ) * ( 5 + 4 )
= [ 6 2 - ] * [ 5 4 + ]
= [ 6 2 - ] [ 5 4 + ] *
= 6 2 - 5 4 + *

Contoh :
Penggunaan notasi postfix dalam stack, misal :
            2 14 + 5 * = 80


 









Tidak ada komentar:

Posting Komentar

give me your comment