SlideShare a Scribd company logo
1 of 24
1




                         Stack
Nurdiansah PTIK 09 UNM               10/12/2012
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
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
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
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
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
Deklarasi stack
                          7


#define MAXSTACK 100
typedef 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
Operasi pada stack
                           8
Operasi-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 dalam
kondisi kosong
      int Empty(Stack *S)
      {
             return (S -> Count ==0);
      }
Nurdiansah PTIK 09 UNM                          10/12/2012
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
Cont‟…
                           10

5. 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
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
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
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 tersebut

Nurdiansah PTIK 09 UNM                         10/12/2012
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
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^DE
Nurdiansah PTIK 09 UNM                          10/12/2012
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
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
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
Algoritma konversi infix ke postfix
                         19

1. Baca ungkapan dalam notasi infix, misalnya S
2. Tentukan panjang ungkapan tersebut, misalnya N
   karakter
3. 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
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-push
Nurdiansah PTIK 09 UNM        20                     10/12/2012
Cont‟…
                           21

c. Jika akhir notasi infix telah tercapai, dan tumpukan
    masih belum kosong, pop semua isi tumpukan dan
    tulis hasilnya

Contoh : (A+B)/ ((C-D) * E^F) -------notasi infix
           menjadi
           AB+CD-EF^*/ ------- notasi postfix




Nurdiansah PTIK 09 UNM                              10/12/2012
Ilustrasi
                                            22
                                                                Hasil Notasi
    Karakter yang                                Karakter
                             Isi tumpukan                       Postfix yang
       dibaca                                    tercetak
                                                                 terbentuk
(                        (
A                        (                   A              A
+                        (+                                 A
B                                            B              AB
)                                            +              AB+
/                        /
(                        /(
(                        /((
C                        /((                 C              AB+C
-                        /((-
D                        /((-                D              AB + CD
)                        /(                  -              AB + CD -
Nurdiansah PTIK 09 UNM                                                  10/12/2012
Cont‟…
                                23

*                        /(*
E                        /(*     E   AB + CD – E
^                        /(*^        AB + CD – E
F                        /(*^    F   AB + CD - EF
)                        /(*     ^   AB + CD – EF ^
                         /(      *   AB + CD – EF ^ *
                         /
                                 /   AB + CD – EF ^ *
                                     /




Nurdiansah PTIK 09 UNM                        10/12/2012
24



                   TO BE CONTINUE…




Nurdiansah PTIK 09 UNM               10/12/2012

More Related Content

What's hot

Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahBraga Rezpect
 
Push Down Automata (PDA)
Push Down Automata (PDA)Push Down Automata (PDA)
Push Down Automata (PDA)dhea zafarina
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanGeorgius Rinaldo
 
Logika algoritma
Logika algoritmaLogika algoritma
Logika algoritmairwanhs
 
Context Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOContext Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOahmad haidaroh
 
Materi kuliah 10 stack
Materi kuliah 10   stackMateri kuliah 10   stack
Materi kuliah 10 stackBudi Yono
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stackIcha Dicaprio
 
Tata bahasa-bebas-konteks
Tata bahasa-bebas-konteksTata bahasa-bebas-konteks
Tata bahasa-bebas-konteksrenoskop
 
Bab 8-stack-dan-queue
Bab 8-stack-dan-queueBab 8-stack-dan-queue
Bab 8-stack-dan-queueRazik Akamal
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasiahmad haidaroh
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackKuliahKita
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianKuliahKita
 
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd555560
 
Materi kuliah 10 stack
Materi kuliah 10   stackMateri kuliah 10   stack
Materi kuliah 10 stackBudi Yono
 

What's hot (20)

Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Stack atau tumpukan
Stack atau tumpukanStack atau tumpukan
Stack atau tumpukan
 
Push Down Automata (PDA)
Push Down Automata (PDA)Push Down Automata (PDA)
Push Down Automata (PDA)
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Bab viii stack
Bab viii   stackBab viii   stack
Bab viii stack
 
Logika algoritma
Logika algoritmaLogika algoritma
Logika algoritma
 
Context Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOContext Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBO
 
Materi kuliah 10 stack
Materi kuliah 10   stackMateri kuliah 10   stack
Materi kuliah 10 stack
 
Pushdown Automata
Pushdown Automata Pushdown Automata
Pushdown Automata
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Tata bahasa-bebas-konteks
Tata bahasa-bebas-konteksTata bahasa-bebas-konteks
Tata bahasa-bebas-konteks
 
Bab 8-stack-dan-queue
Bab 8-stack-dan-queueBab 8-stack-dan-queue
Bab 8-stack-dan-queue
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasi
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
 
Instruksi Aritmatika
Instruksi AritmatikaInstruksi Aritmatika
Instruksi Aritmatika
 
8 Data Record
8 Data Record8 Data Record
8 Data Record
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
 
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd
 
Materi kuliah 10 stack
Materi kuliah 10   stackMateri kuliah 10   stack
Materi kuliah 10 stack
 

Viewers also liked

Evidence of development 3
Evidence of development 3Evidence of development 3
Evidence of development 3GS6142
 
Analisis desain sistem informasi ppt.8
Analisis desain sistem informasi ppt.8Analisis desain sistem informasi ppt.8
Analisis desain sistem informasi ppt.8Ical Militanmannojack
 
Evidence of development 2
Evidence of development 2 Evidence of development 2
Evidence of development 2 GS6142
 
Evidence of development 4
Evidence of development 4Evidence of development 4
Evidence of development 4GS6142
 
Tuitele - One Year of Social TV in Spain
Tuitele - One Year of Social TV in SpainTuitele - One Year of Social TV in Spain
Tuitele - One Year of Social TV in Spaintuiteletv
 
Passenger Let Her Go Chords
Passenger Let Her Go ChordsPassenger Let Her Go Chords
Passenger Let Her Go ChordsRp95
 
DELFI turinio projektas "Judėk!"
DELFI turinio projektas "Judėk!"DELFI turinio projektas "Judėk!"
DELFI turinio projektas "Judėk!"Karolina Jarmalytė
 
Use of applications!
Use of applications!Use of applications!
Use of applications!GS6142
 
Titles for blog
Titles for blogTitles for blog
Titles for blogGS6142
 
Editing our teaser trailer, poster and magazine
Editing our teaser trailer, poster and magazineEditing our teaser trailer, poster and magazine
Editing our teaser trailer, poster and magazineGS6142
 
How to Drop shadow
How to Drop shadowHow to Drop shadow
How to Drop shadowRp95
 
Tugasan multimedia individu
Tugasan multimedia individuTugasan multimedia individu
Tugasan multimedia individuasmaupsi
 

Viewers also liked (20)

Evidence of development 3
Evidence of development 3Evidence of development 3
Evidence of development 3
 
Analisis desain sistem informasi ppt.8
Analisis desain sistem informasi ppt.8Analisis desain sistem informasi ppt.8
Analisis desain sistem informasi ppt.8
 
Pert.4 record
Pert.4 recordPert.4 record
Pert.4 record
 
Evidence of development 2
Evidence of development 2 Evidence of development 2
Evidence of development 2
 
ConnectIn
ConnectInConnectIn
ConnectIn
 
Sidney Debaque Portfolio
Sidney Debaque PortfolioSidney Debaque Portfolio
Sidney Debaque Portfolio
 
Bab 3
Bab 3Bab 3
Bab 3
 
SESI UJI MINDA
SESI UJI MINDASESI UJI MINDA
SESI UJI MINDA
 
Evidence of development 4
Evidence of development 4Evidence of development 4
Evidence of development 4
 
Tema 11
Tema 11Tema 11
Tema 11
 
Company profile
Company profileCompany profile
Company profile
 
Tuitele - One Year of Social TV in Spain
Tuitele - One Year of Social TV in SpainTuitele - One Year of Social TV in Spain
Tuitele - One Year of Social TV in Spain
 
Passenger Let Her Go Chords
Passenger Let Her Go ChordsPassenger Let Her Go Chords
Passenger Let Her Go Chords
 
DELFI turinio projektas "Judėk!"
DELFI turinio projektas "Judėk!"DELFI turinio projektas "Judėk!"
DELFI turinio projektas "Judėk!"
 
Use of applications!
Use of applications!Use of applications!
Use of applications!
 
Pert.1 pengenalan analisis desain
Pert.1 pengenalan analisis desainPert.1 pengenalan analisis desain
Pert.1 pengenalan analisis desain
 
Titles for blog
Titles for blogTitles for blog
Titles for blog
 
Editing our teaser trailer, poster and magazine
Editing our teaser trailer, poster and magazineEditing our teaser trailer, poster and magazine
Editing our teaser trailer, poster and magazine
 
How to Drop shadow
How to Drop shadowHow to Drop shadow
How to Drop shadow
 
Tugasan multimedia individu
Tugasan multimedia individuTugasan multimedia individu
Tugasan multimedia individu
 

Similar to Pert.6 stack

Materi kuliah 10 stack
Materi kuliah 10   stackMateri kuliah 10   stack
Materi kuliah 10 stackkua
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Setia Juli Irzal Ismail
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data StructuresNoval C. Kesuma
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)Sunarya Marwah
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viiiDevi Apriansyah
 
Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Fahuda E
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan biedoen
 
Unas rpl 2009 2010 paket a
Unas rpl 2009 2010 paket aUnas rpl 2009 2010 paket a
Unas rpl 2009 2010 paket adhidhin
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circularHitesh Wagle
 
SQL (Structured query language).pptx
SQL (Structured query language).pptxSQL (Structured query language).pptx
SQL (Structured query language).pptxBagusSantoso44
 

Similar to Pert.6 stack (19)

5 STACK
5 STACK5 STACK
5 STACK
 
Materi kuliah 10 stack
Materi kuliah 10   stackMateri kuliah 10   stack
Materi kuliah 10 stack
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)
 
Project akhir asd
Project akhir asdProject akhir asd
Project akhir asd
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
Ifc modul 6 (stack)
Ifc   modul 6 (stack)Ifc   modul 6 (stack)
Ifc modul 6 (stack)
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
 
M12_tif305_sns_ubb
M12_tif305_sns_ubbM12_tif305_sns_ubb
M12_tif305_sns_ubb
 
4.untai logika178
4.untai logika1784.untai logika178
4.untai logika178
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 
Kompilasi13 ka p (2)
Kompilasi13 ka p (2)Kompilasi13 ka p (2)
Kompilasi13 ka p (2)
 
Kompilasi13 ka p
Kompilasi13 ka pKompilasi13 ka p
Kompilasi13 ka p
 
Kompilasi13 ka p (1)
Kompilasi13 ka p (1)Kompilasi13 ka p (1)
Kompilasi13 ka p (1)
 
Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Unas rpl 2009 2010 paket a
Unas rpl 2009 2010 paket aUnas rpl 2009 2010 paket a
Unas rpl 2009 2010 paket a
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circular
 
SQL (Structured query language).pptx
SQL (Structured query language).pptxSQL (Structured query language).pptx
SQL (Structured query language).pptx
 

More from Ical Militanmannojack (20)

Pert.11 linux
Pert.11 linuxPert.11 linux
Pert.11 linux
 
Pert.10 manajemen disk
Pert.10 manajemen diskPert.10 manajemen disk
Pert.10 manajemen disk
 
Pert.9 input output
Pert.9 input outputPert.9 input output
Pert.9 input output
 
Pert.8 memori virtual
Pert.8 memori virtualPert.8 memori virtual
Pert.8 memori virtual
 
Pert.7 memori
Pert.7 memoriPert.7 memori
Pert.7 memori
 
Pert.6 deadlock lanjutan
Pert.6 deadlock lanjutanPert.6 deadlock lanjutan
Pert.6 deadlock lanjutan
 
Pert.5 sinkronisasi dan deadlock
Pert.5 sinkronisasi dan deadlockPert.5 sinkronisasi dan deadlock
Pert.5 sinkronisasi dan deadlock
 
Pert.12 modul kernel linux
Pert.12 modul kernel linuxPert.12 modul kernel linux
Pert.12 modul kernel linux
 
Pert.4 proses dan thread lanjutan
Pert.4 proses dan thread lanjutanPert.4 proses dan thread lanjutan
Pert.4 proses dan thread lanjutan
 
Pert.2 proteksi perangkat keras
Pert.2 proteksi perangkat kerasPert.2 proteksi perangkat keras
Pert.2 proteksi perangkat keras
 
Pert.1 pengantar sistem operasi
Pert.1 pengantar sistem operasiPert.1 pengantar sistem operasi
Pert.1 pengantar sistem operasi
 
Pert.3 proses dan thread
Pert.3 proses dan threadPert.3 proses dan thread
Pert.3 proses dan thread
 
12
1212
12
 
11
1111
11
 
10
1010
10
 
8
88
8
 
7
77
7
 
9
99
9
 
Pert.5 linked list
Pert.5 linked listPert.5 linked list
Pert.5 linked list
 
Pert.3 array
Pert.3  arrayPert.3  array
Pert.3 array
 

Pert.6 stack

  • 1. 1 Stack Nurdiansah PTIK 09 UNM 10/12/2012
  • 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. 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. 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. 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. 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. Deklarasi stack 7 #define MAXSTACK 100 typedef 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. Operasi pada stack 8 Operasi-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 dalam kondisi kosong int Empty(Stack *S) { return (S -> Count ==0); } Nurdiansah PTIK 09 UNM 10/12/2012
  • 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. Cont‟… 10 5. 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. 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. 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. 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 tersebut Nurdiansah PTIK 09 UNM 10/12/2012
  • 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. 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^DE Nurdiansah PTIK 09 UNM 10/12/2012
  • 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. 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. 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. Algoritma konversi infix ke postfix 19 1. Baca ungkapan dalam notasi infix, misalnya S 2. Tentukan panjang ungkapan tersebut, misalnya N karakter 3. 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. 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-push Nurdiansah PTIK 09 UNM 20 10/12/2012
  • 21. Cont‟… 21 c. Jika akhir notasi infix telah tercapai, dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya Contoh : (A+B)/ ((C-D) * E^F) -------notasi infix menjadi AB+CD-EF^*/ ------- notasi postfix Nurdiansah PTIK 09 UNM 10/12/2012
  • 22. Ilustrasi 22 Hasil Notasi Karakter yang Karakter Isi tumpukan Postfix yang dibaca tercetak terbentuk ( ( A ( A A + (+ A B B AB ) + AB+ / / ( /( ( /(( C /(( C AB+C - /((- D /((- D AB + CD ) /( - AB + CD - Nurdiansah PTIK 09 UNM 10/12/2012
  • 23. Cont‟… 23 * /(* E /(* E AB + CD – E ^ /(*^ AB + CD – E F /(*^ F AB + CD - EF ) /(* ^ AB + CD – EF ^ /( * AB + CD – EF ^ * / / AB + CD – EF ^ * / Nurdiansah PTIK 09 UNM 10/12/2012
  • 24. 24 TO BE CONTINUE… Nurdiansah PTIK 09 UNM 10/12/2012