Label

Struktur Data (10) Data Mining (5) Etika Profesi (5) Nilai (3) PDK (2) SIM (2)

Minggu, 06 Mei 2018

Stack

Definisi Stack
  Stack = tumpukan
  Stack = tehnik pengambilan data ke dan dari memori
  Konsep stack
  FILO (first in last out)
  LIFO (last in first out)

Cara kerja stack
  CREATE (S)   = membuat stack
  PUSH              = menambah isi ke dalam stack
  POP                 = menghapus isi stack satu-persatu
  CLEAR (S)     = mengosongkan seluruh isi stack

Macam-macam stack
  1.         satu array untuk satu stack
  2.         satu array untuk 2 stack
                        a. kedua stack pada index terkecil
                        b. stack 1 pada index terkecil, stack 2 pada index terbesar
                        c. kedua stack berada di tengah

Satu array untuk satu stack
  Buatlah satu buah stack dengan satu array, lalu masukan data “R O M A N” ke dalam stack, kemudian hapus data tersebut secara satu-persatu, dengan maksimal jumlah elemen stack = 4, dan panjang elemen 1, serta alamat awal data adalah 1000.

  Cara membuat ???

Susunan :
  Buat stack
  Masukan kata “R O M A N”
  Hapus kata “R O M A N”
  






Masukan kata “R O M A N”
PUSH (“N”, S)

Pemasukan data “N” tidak dapat dilaksanakan, karena alokasi memori yang sudah penuh.
Kesalahan semacam ini dinamakan overflow error , yaitu pemasukan data kedalam stack yang telah penuh.



 




Ulangi hapus kata “R O M A”
POP (“A”, S)

Penghapusan data “A” tidak dapat dilaksanakan, karena stack sudah dalam keadaan kosong.
Kesalahan semacam ini dinamakan underflow error , yaitu penghapusan data di dalam stack yang sudah kosong.

 


Satu array untuk dua stack
  Dengan kedua stack berada pada index terkecil
  Ket : stack satu selalu berada diatas stack dua

  Ex : buatlah 2 buah stack dengan keduanya berada pada index terkecil, lalu masukan data berikut, serta hapus secara satu persatu :
  “1, 2, 3” untuk stack satu
  “4, 5, 6” untuk stack dua
  Dengan maksimal jumlah elemen = 7, panjang elemen = 3, dan alamat awal = 1000

Susunan :
  Buat 2 buah stack
  Masukan data “1, 2, 3” untuk stack 1
  Masukan data “4, 5, 6” untuk stack 2
  Hapus data “1, 2, 3” untuk stack 1
  Hapus data “4, 5, 6” untuk stack 2














Satu array untuk dua stack
  Stack  1 pada index terkecil, stack 2 pada index terbesar

  Ex : buatlah 2 buah stack, lalu masukan data berikut, serta hapus secara satu persatu :
  “1, 2, 3” untuk stack satu
  “4, 5, 6” untuk stack dua
  Dengan maksimal jumlah elemen = 7, panjang elemen = 3, dan alamat awal = 1000















Satu array untuk dua stack
  Kedua stack berada di tengah
  Ket : TOP 1 = (n/2) + 1 = (7/2) + 1 = 4
                           TOP 2 = (n/2) = (7/2) = 3

  Ex : buatlah 2 buah stack, lalu masukan data berikut, serta hapus secara satu persatu :
  “1, 2, 3” untuk stack satu
  “4, 5, 6” untuk stack dua
  Dengan maksimal jumlah elemen = 7, panjang elemen = 3, dan alamat awal = 1000
















Infix dan postfix

  Contoh bentuk infix : A + B
  Contoh bentuk postfix: A B +
  A, B, C, D, etc = operand
  +, -, *, /, ^ = operator





Bagaimana jika terdapat banyak operator???
Cara memudahkan : jadikan operand + operator sebagai bentuk lain.

Contoh…
   A + B           = P                   = A B +
   A * B           = Q                  = A B *



Ubah ekspresi infix berikut kedalam postfix :

( A + B ) / ( ( C – D ) * E ^ F )

( A + B ) / ( ( C – D ) * E ^ F )
= ( A + B ) / ( P * E ^ F )       = ( A + B ) / ( C D - * E ^ F )
= ( A + B ) / ( P * Q )             = ( A + B ) / ( C D - * E F ^ )
= ( A + B ) / R                         = ( A + B ) / C D - E F ^ *
= S / R                                     = A B + / C D - E F ^ *
= T                                          = A B + C D - E F ^ * /

Tugas 2

  Ex : buatlah 2 buah stack dengan :
a)      Keduanya berada pada index terkecil
b)      Stack  1 pada index terkecil, stack 2 pada index terbesar
c)      Kedua stack berada di tengah

lalu masukan data berikut, serta hapus secara satu persatu :
  stack satu : nama panggilan anda
  stack dua : nama depan ibu anda
  Dengan maksimal jumlah elemen = 15, panjang elemen = 5, dan alamat awal = 1000