Modul BSI Struktur Data
STACK atau TUMPUKAN
STACK atau TUMPUKAN
Merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top)
Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO).
Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO).
OPERASI STACK
- ISEMPTY
- ISFULL
- PUSH
- POP
- CLEAR
STACK PADA ARRAY
Deklarasi MAX_STACK
#define MAX_STACK 5
Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
int data[5];
};
Deklarasi variabel stack dari struct
STACK tumpuk;
#define MAX_STACK 5
Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
int data[5];
};
Deklarasi variabel stack dari struct
STACK tumpuk;
Inisialisasi
- Pada mulanya isi top dengan -1, karena array dalam C/C++ dimulai dari 0, berarti stack adalah KOSONG
- TOP adalah variabel penanda dalam STACK yang menunjukkan elemen teratas Stack.
- TOP of STACK akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH
- Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong
- Dengan cara memeriksa TOP of STACK.
- Jika TOP masih = -1 maka berarti stack masih kosong
Fungsi IsFull
- Digunakan untuk memeriksa apakah kondisi stack sudah penuh
- Dengan cara memeriksa TOP of Stack.
Jika TOP of STACK = MAX_STACK-1 maka FULL (Penuh).
Jika TOP of STACK < MAX_STACK-1 maka belum penuh
Jika TOP of STACK < MAX_STACK-1 maka belum penuh
int IsFull ()
{
if (tumpuk.top == MAX_STACK-1
return 1;
else
return 0;
}
{
if (tumpuk.top == MAX_STACK-1
return 1;
else
return 0;
}
Fungsi PUSH
- Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack
- Dengan cara :
2. Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah ditambah satu (diincrement)
void push (char d[5])
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
Fungsi POP
2. Tampilkan nilai yang akan diambil.
3. Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
- Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack.
- Dengan cara :
2. Tampilkan nilai yang akan diambil.
3. Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
void pop ()
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
Fungsi CLEAR
- Digunakan untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada kembali di posisi Top = -1
Latihan I Struktur Data (Pertemuan 5)
Diketahui suatu stack dgn max_stack = 6
- Bila dilakukan PUSH 3 elemen kedalam stack, kemudian di PUSH lagi 2 elemen dan di POP 3 elemen. Maka dimana posisi Top of Stack ?
- IsEmpty pada kondisi terakhir adalah ?
- Dari kondisi diatas, Berapa elemen yg hrs di PUSH unt mencapai kondisi penuh Top of Stack = max_stack ?
- Berapa elemen yg hrs di POP unt mencapai kondisi IsEmpty = True
Modul BSI Struktur Data Pertemuan 5
Untuk Download Latihan Soal dan Kunci Jawaban BSI klik Disini
Ketika membuka link klik "SKIP AD" pada pojok kanan atas
0 Response to "Modul BSI Struktur Data Pertemuan 5"
Posting Komentar