STRUKTUR DATA DAN
ALGORITMA
STACK
TUJUAN PEMBELAJARAN
Mahasiswa dapat memahami prinsip atau konsep
Stack (Tumpukan) dan double stack serta dapat
mempraktekannya.
MATERI
Pengertian stack dan penggunaannya pada array satu
dimensi.
Proses single stack : proses awal, proses push, proses pop.
Kondisi single stack.
Algoritma push dan pop.
Contoh Program
Pointer sebagai penunjuk stack.
Representasi menggunakan structure.
Double stack (representasi dan proses : illustrasi, prinsip
proses, kondisi stack dan algoritma)
STACK
Stack merupakan sekumpulan data yang strukturnya
bersifat tumpukan.
Dalam struktur STACK, digunakan istilah :
[Link] untuk : Simpan, atau Masuk, atau Insert,
atau Tulis.
[Link] untuk : Ambil, atau Keluar, atau Delete, atau
Baca, atau Hapus.
[Link] prosesnya disebut : L I F O ( Last In First
Out )
REPRESENTASI SINGLE
STACK
Data merepresentasikan sebuah stack. Yang paling
sederhana adalah dengan menggunakan struktur array
satu dimensi yang dapat diilustrasikan seperti :
PROSES SINGLE STACK
Data merepresentasikan sebuah stack,yang paling
sederhana adalah dengan menggunakan struktur array
satu dimensi yang dapat diilustrasikan seperti :
Ada tiga macam proses pada Stack yaitu:
a. AWAL (Inisialisasi)
b. PUSH ( Insert, Masuk, Simpan, Tulis )
c. POP ( Delete, Keluar, Ambil, Baca/Hapus )
PROSES SINGLE STACK -
AWAL
Top = -1;
Dasar = -1;
Puncak = n-1;
PROSES SINGLE STACK -
PUSH
Misal isi X = 10, ingin di PUSH ke stack,
Maka hasilnya dapat digambarkan seperti :
PROSES SINGLE STACK - POP
Bila ingin mengambil atau mengeluarkan (POP) isi
stack, maka tentu saja yang akan dikeluarkan adalah
isi stack yang sedang ditunjuk oleh Top, yaitu nilai 15
yang akan disimpan di variabel X. Setelah POP maka
isi stack dapat digambarkan seperti
KONDISI SINGLE STACK
Kondisi Stack ditentukan oleh posisi atau isi Top.
Ada 4 macam kondisi stack, yaitu : KOSONG, PENUH,
BISA DIISI atau ADA ISINYA yang cirinya tergantung
posisi Top seperti yang dijelaskan pada tabel berikut
ini :
ALGORITMA PUSH DAN POP
if ( Top < n-1 ) if ( Top > -1 )
{ Top = Top + 1; { X = S[Top];
S[Top] = X; Top = Top - 1;
} }
else else
printf( “Stack Penuh”); printf( “Stack Kosong”);
PUSH POP
POINTER PADA STACK
CONTOH PROGRAM STACK
#include<stdio.h>
#define n 10
void main()
{ int S[n], Top, X;
Top = -1;
scanf("%i", &X);
while(X !=999 )
{ if(X >= 60)
{
if(Top < n-1)
{ Top = Top + 1; S[Top] = X;
}
else { printf(“Stack Penuh”);
break;
}
}
else
{ if( Top > -1)
{
X = S[Top]; Top = Top – 1;
printf("Diambil : %i\n", X);
}
else { printf("Stack Kosong”);
break;
}
}
scanf(“%i”, &X);
}
printf("\nS e l e s a i ");
}
STACK DAN STRUCTURE
KESIMPULAN
[Link] terdiri dari satu collection.
[Link] single stack ada tiga yaitu : awal (inisialisasi), push
(insert, masuk, simpan, tulis).
[Link] single stack : “kosong” tidak ada isinya (empty),
“Penuh” tak bisa diisi lagi (full), “bisa diisi” kebalikan dari
penuh / not full, “ada isinya” kebalikan dari kosong / not
empty.
[Link] stcak menggunakan struktur , langkahnya
sebagai berikut : menyiapkan stack, function untuk proses
inisialisasi, function untuk proses push, function untuk
proses pop.
TERIMA KASIH