1                         StackNurdiansah PTIK 09 UNM               10/12/2012
Deskripsi stack                                2 Salah satu konsep yang efektif untuk menyimpan  dan mengambil data adala...
Cont‟…                         3 Elemen terakhir yang disimpan dalam stack menjadi  elemen pertama yang diambil. Dalam p...
Contoh                                 4 Ada dua buah kotak yang             Ilustrasi sebuah stack  kita tumpuk, sehing...
Penyajian stack                          5 Stack dapat diuraikan dengan menggunakan array,  dengan anggapan bahwa banyakn...
Cont‟…                            6 Stack dapat disajikan dengan menggunakan tipe  data struktur (struct) yang terdiri da...
Deklarasi stack                          7#define MAXSTACK 100typedef int ItemType;/*defenisi struktur stack*/typedef stru...
Operasi pada stack                           8Operasi-operasi dasar pada stack sbb :1. Operasi menciptakan T sebagai stack...
3. Fungsi yang melakukan pengecekan apakah stack dalam kondisi penuh        int Full (Stack *S)        {                  ...
Cont‟…                           105. Operasi mengambil elemen puncak stack T, (pop(T,x))   void Pop (Stack *S, ItemType *...
Operasi Push                         11 Fungsi tersebut menyiapkan tempat untuk x yang  akan dipush ke dalam tumpukan, ya...
Operasi Pop                          12 Operasi POP adalah operasi untuk menghapus  elemen yang terletak pada posisi pali...
Notasi Infix                          13 Notasi Infix adalah cara penulisan ungkapan dimana  operator ditulis di antara d...
Cont‟…                           14 Bandingkan dengan ungkapan : A+B*C-D    Pada ungkapan ini B*C akan dikerjakan terlebi...
Notasi Polish (Prefix)                          15 Dikembangkan oleh ahli matematika, Jan  Lukasiewicz. Notasi Polish at...
Notasi Postfix (Suffix)                           16 Dikenal juga dengan istilah notasi Polish Terbalik  (Reverse Polish ...
Contoh                           17 Ungkapan : (A+B) * (C-D)               (AB+)*(CD-)   dengan memisalkan (AB+) sebagai ...
Cont‟…                           18 Contoh Lain :           A+B–C         AB + C-           (A+B)*(C-D)   AB + CD-*      ...
Algoritma konversi infix ke postfix                         191. Baca ungkapan dalam notasi infix, misalnya S2. Tentukan p...
a. R = S[1]b. Test nilai R. Jika R adalah :          operand : langsung ditulis          kurung buka : push ke dalam tumpu...
Cont‟…                           21c. Jika akhir notasi infix telah tercapai, dan tumpukan    masih belum kosong, pop semu...
Ilustrasi                                            22                                                                Has...
Cont‟…                                23*                        /(*E                        /(*     E   AB + CD – E^     ...
24                   TO BE CONTINUE…Nurdiansah PTIK 09 UNM               10/12/2012
Upcoming SlideShare
Loading in …5
×

Pert.6 stack

297
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
297
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pert.6 stack

  1. 1. 1 StackNurdiansah PTIK 09 UNM 10/12/2012
  2. 2. Deskripsi stack 2 Salah satu konsep yang efektif untuk menyimpan dan mengambil data adalah LIFO (Last In First Out) dimana pengambilan data akan berkebalikan urutannya dengan penyimpanan data. Stack adalah kumpulan data dimana data yang diletakkan di atas data yang lain. Stack adalah struktur data yang menggunakan konsep LIFO.Nurdiansah PTIK 09 UNM 10/12/2012
  3. 3. Cont‟… 3 Elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil. Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas dari stack, maka kita melakukan PUSH. Sebaliknya, untuk memindahkan dari tempat yang di atas tersebut kita melakukan POP.Nurdiansah PTIK 09 UNM 10/12/2012
  4. 4. Contoh 4 Ada dua buah kotak yang  Ilustrasi sebuah stack kita tumpuk, sehingga kotak diletakkan di atas kotak yang lain. Jika kemudian stack dua buah kotak tersebut kita tambah dengan kotak ketiga dan seterusnya, maka akan kita peroleh sebuah stack kotak, yang terdiri dari N kotak. Stack merupakan kumpulan data yang bersifat dinamis artinya bisa dilakukan penambahan atau pengambilan data darinya.Nurdiansah PTIK 09 UNM 10/12/2012
  5. 5. Penyajian stack 5 Stack dapat diuraikan dengan menggunakan array, dengan anggapan bahwa banyaknya elemen maksimum dari stack tersebut tidak akan melebihi batas maksimum banyaknya elemen dalam array. Penambahan data pada stack harus dibatasi berdasarkan ukuran stack untuk menghindari overflow. Perlu data tambahan untuk mencatat posisi ujung stack.Nurdiansah PTIK 09 UNM 10/12/2012
  6. 6. Cont‟… 6 Stack dapat disajikan dengan menggunakan tipe data struktur (struct) yang terdiri dari dua field. Field pertama bertipe array untuk menyimpan elemen stack. Field kedua bertipe integer untuk mencatat posisi ujung stack.Nurdiansah PTIK 09 UNM 10/12/2012
  7. 7. Deklarasi stack 7#define MAXSTACK 100typedef int ItemType;/*defenisi struktur stack*/typedef struct { int Item[MAXSTAXK];/*Array yang berisi data tumpukan*/ int Count;/*menunjukkan indeks data paling atas dari stack */} Stack;Nurdiansah PTIK 09 UNM 10/12/2012
  8. 8. Operasi pada stack 8Operasi-operasi dasar pada stack sbb :1. Operasi menciptakan T sebagai stack kosong void InitializeStack (Stack *S) { S -> Count = 0; }2. Fungsi yang melakukan pengecekan apakah stack dalamkondisi kosong int Empty(Stack *S) { return (S -> Count ==0); }Nurdiansah PTIK 09 UNM 10/12/2012
  9. 9. 3. Fungsi yang melakukan pengecekan apakah stack dalam kondisi penuh int Full (Stack *S) { return (S ->Count == MAXSTACK); } 4. Operasi menyisipkan elemen x ke stack T dan mengembalikan stack baru void Push(ItemType x, Stack *S) { if (Full) printf(“Stack penuh! Data tidak dapat masuk!”); else { S -> Item[S-> Count] = x; ++ (S -> Count); } }Nurdiansah PTIK 09 UNM 9 10/12/2012
  10. 10. Cont‟… 105. Operasi mengambil elemen puncak stack T, (pop(T,x)) void Pop (Stack *S, ItemType *x) { if (Empty)// stack kosong printf (“Stack masih kosong!”); else { -- (S -> Count); * x = S -> Item [S -> Count]; S -> Item[S -> Count] = 0; } }Nurdiansah PTIK 09 UNM 10/12/2012
  11. 11. Operasi Push 11 Fungsi tersebut menyiapkan tempat untuk x yang akan dipush ke dalam tumpukan, yaitu dengan menambah nilai S ->Count dengan 1 dan kemudian menyisipkan x ke dalam S-> Item. Cara memanggil prosedur di atas adalah sbb : x=5; Push(x, &tum);Nurdiansah PTIK 09 UNM 10/12/2012
  12. 12. Operasi Pop 12 Operasi POP adalah operasi untuk menghapus elemen yang terletak pada posisi paling atas dari sebuah tumpukan. Cara pemanggilan satu data prosedur POP adalah sbb : /*mengambil satu data dari tumpukan*/ hasil= pop (&tum); printf(„Data %d hasil pengambilan dari tumpukan : “, hasil);Nurdiansah PTIK 09 UNM 10/12/2012
  13. 13. Notasi Infix 13 Notasi Infix adalah cara penulisan ungkapan dimana operator ditulis di antara dua operand. Contoh Notasi Infix : Penulisan ungkapan numeris dimana tanda kurung digunakan untuk mengelompokkan bagian mana yang akan dikerjakan terlebih dahulu. Contoh : (A+B) * (C-D) Suku (A+B) akan dikerjakan terlebih dahulu, kemudian suku (C-D), dan terakhir mengalikan hasil yang diperoleh dari kedua suku tersebutNurdiansah PTIK 09 UNM 10/12/2012
  14. 14. Cont‟… 14 Bandingkan dengan ungkapan : A+B*C-D Pada ungkapan ini B*C akan dikerjakan terlebih dahulu, diikuti yang lain. Dapat disimpulkan bahwa pemakaian tanda kurung mempengaruhi hasil akhir. Semakin rumit suatu ungkapan maka semakin banyak dibutuhkan tanda kurung. Hal ini membawa suatu konsekuensi bahwa penulisan tanda kurung itupun harus benar-benar terhindar dari kesalahan.Nurdiansah PTIK 09 UNM 10/12/2012
  15. 15. Notasi Polish (Prefix) 15 Dikembangkan oleh ahli matematika, Jan Lukasiewicz. Notasi Polish atau notasi prefix adalah penulisan ungkapan dimana operator ditulis sebelum kedua operand disajikan Contoh : A+B +AB A+B-C -+ABC (A+B)*(C-D) *+AB – CD A-B/ (C*D^E) -A/B*C^DENurdiansah PTIK 09 UNM 10/12/2012
  16. 16. Notasi Postfix (Suffix) 16 Dikenal juga dengan istilah notasi Polish Terbalik (Reverse Polish Notation /RPN). Pada notasi ini, operator ditulis sesudah operand. Sama halnya dengan notasi prefix maka pada notasi ini tidak diperlukan adanya tanda kurung pengelompokan.Nurdiansah PTIK 09 UNM 10/12/2012
  17. 17. Contoh 17 Ungkapan : (A+B) * (C-D) (AB+)*(CD-) dengan memisalkan (AB+) sebagai p dan (CD-) sebagai q, maka dengan notasi postfix diperoleh : AB +CD-* Dalam hal ini penulisan operator menentukan operasi mana yang harus dikerjakan terlebih dahulu.Nurdiansah PTIK 09 UNM 10/12/2012
  18. 18. Cont‟… 18 Contoh Lain : A+B–C AB + C- (A+B)*(C-D) AB + CD-* A-B/(C*D^E) ABCDE^*/-Nurdiansah PTIK 09 UNM 10/12/2012
  19. 19. Algoritma konversi infix ke postfix 191. Baca ungkapan dalam notasi infix, misalnya S2. Tentukan panjang ungkapan tersebut, misalnya N karakter3. Siapkan sebuah stack kosong dan siapkan derajat masing-masing operator, misalnya ^ berderajat 3, * dan / berderajat 2, + dan – berderajat 1 dan ( berderajat 0.4. Dimulai dari i = 1 sampai N kerjakan langkah- langkah sebagai berikut :Nurdiansah PTIK 09 UNM 10/12/2012
  20. 20. a. R = S[1]b. Test nilai R. Jika R adalah : operand : langsung ditulis kurung buka : push ke dalam tumpukan kurung tutup : pop dan tulis semua isi tumpukan sampai ujung tumpukan =„(„. Pop juga tanda „(„ ini tetapi tidak usah ditulis. operator : jika tumpukan kosong atau derajat R lebih tinggi dibanding derajat ujung tumpukan, push operator ke dalam tumpukan. Jika tidak, pop ujung tumpukan dan tulis. Kemudian ulangi pembandingan R dengan ujung tumpukan. Kemudian R di-pushNurdiansah PTIK 09 UNM 20 10/12/2012
  21. 21. Cont‟… 21c. Jika akhir notasi infix telah tercapai, dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnyaContoh : (A+B)/ ((C-D) * E^F) -------notasi infix menjadi AB+CD-EF^*/ ------- notasi postfixNurdiansah PTIK 09 UNM 10/12/2012
  22. 22. Ilustrasi 22 Hasil Notasi Karakter yang Karakter Isi tumpukan Postfix yang dibaca tercetak terbentuk( (A ( A A+ (+ AB B AB) + AB+/ /( /(( /((C /(( C AB+C- /((-D /((- D AB + CD) /( - AB + CD -Nurdiansah PTIK 09 UNM 10/12/2012
  23. 23. Cont‟… 23* /(*E /(* E AB + CD – E^ /(*^ AB + CD – EF /(*^ F AB + CD - EF) /(* ^ AB + CD – EF ^ /( * AB + CD – EF ^ * / / AB + CD – EF ^ * /Nurdiansah PTIK 09 UNM 10/12/2012
  24. 24. 24 TO BE CONTINUE…Nurdiansah PTIK 09 UNM 10/12/2012
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×