pertemuan 7 stackc2a0
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
Pertemuan 7
Waktu
:
5 menit
Tujuan Pembelajaran
: Mahasiswa mampu menjelaskan teknik pemrograman
Substansi Materi
: Stack
menggunakan Stack.
Tabulasi Kegiatan Perkuliahan
No
Tahap
Kegiatan Pengajar
Kegiatan
Pendahuluan . Membuka pertemuan
. Mengulang materi pertemuan
sebelumnya
Penyajian
. Pengertian stack
Materi
. Jenis‐jenis stack
. Stack dengan Array
Penutup
. Menyimpulkan materi
pertemuan
. Memberikan tugas kecil
. Menutup pertemuan
Kegiatan
Media &
Waktu
Mahasiswa
Alat
Menyimak
Papan Tulis
Bertanya
Menit
Menyimak
Bertanya
Menjawab
Pertanyaan
Menyimak
Papan Tulis 8
Menit
Papan tulis
5
Menit
M A T E R I K U L I A H
STACK
Stack adalah suatu tumpukan. Konsep utama dari stack adalah L)FO Last )n First Out ,
yaitu benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang
dikeluarkan dari tumpukan. Dalam pascal ada dua cara penerapan stack, yaitu dengan
array dan linked list.
V3/2009‐2010 1
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
Single Stack dengan Array
Sesuai dengan sifat stack, maka pengambilan/penghapusan elemen dalam stack harus
dimulai dari elemen teratas. Deklarasi konstanta, tipe, dan variable yang akan dipakai
dalam penjelasan operasi‐operasi stack dengan array adalah :
Const
Type
Max = {jumlah tumpukan}
Var
TipeData = { };
Stack = array [ ..Max] of TipeData;
Top : TipeData;
Operasioperasi pada Single Stack dengan Array
•
Create : Membuat stack baru yang masih kosong
Procedure Create;
Begin
End;
•
Top := ;
Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh
Function Full : Boolean;
Begin
End;
Full := False;
)f top = max then Full := True;
V3/2009‐2010 2
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan
lagi jika stack sudah penuh.
Procedure Push elemen:TipeData ;
Begin
Begin
End;
•
)f not Full then
End;
Top := Top+ ; { atau )nc Top }
Stack[Top] := elemen;
Empty : Fungsi untuk menentukan apakah stack kosong atau tidak.
Function Empty : Boolean;
Begin
Empty := False;
)f Top = then Empty := True;
End;
•
Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong.
Procedure Pop elemen:TipeData ;
Begin
)f not Empty then
End;
Begin
End;
Elemen := stack[Top];
Top := Top‐ ; { atau Dec Top }
V3/2009‐2010 3
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Clear : Mengosongkan stack Jika top = , maka stack dianggap kosong
Procedure Clear;
Begin
End;
Top := ;
Double Stack dengan Array
Merupakan teknik yang dikembangkan untuk menghemat pemakaian memory dalam
pembuatan dua stack dengan array. )ntinya adalah menggunakan sebuah array untuk
menampung dua stack.
Contoh deklarasi konstanta, tipe, dan variable yang akan dipakai dalam operasi‐operasi
double stack array.
Const
Type
Max = {jumlah tumpukan}
TipeData = { };
Stack = array [ ..Max] of Byte;
Top : array[ .. ] of Byte;
Var
Operasioperasi pada Double Stack dengan Array
•
Create : Membuat stack baru yang masih kosong
Procedure Create;
Begin
Top[ ] := ;
Top[ ] := max + ;
V3/2009‐2010 4
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
End;
•
Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh
Function Full : Boolean;
Begin
End;
•
Full := False;
)f top[ ]+ > = top[ ] then Full := True;
Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan
lagi jika stack sudah penuh.
Procedure Push elemen:TipeData; NoStack : Byte ;
Begin
)f not Full then
Begin
End;
Case NoStack of
: Top[ ] := Top[ ] + ;
: Top[ ] := Top[ ] ‐ ;
Stack[Top[NoStack]] := elemen;
End;
V3/2009‐2010 5
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Empty : Fungsi untuk menentukan apakah stack kosong atau tidak.
Function Empty NoStack : Byte : Boolean;
Begin
Empty := False;
Case NoStack of
: if Top[ ]= then
Empty := True;
Empty := True;
End;
: if Top[ ] = Max + then
End;
•
Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong.
Procedure Pop var elemen:TipeData; NoStack:Byte ;
Begin
)f not Empty NoStack then
Begin
Case NoStack of
: Top[ ] := Top[ ] + ;
End;
End;
Elemen := stack[Top[NoStack]];
: Top[ ] := Top[ ] ‐ ;
End;
V3/2009‐2010 6
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Clear : Mengosongkan stack Jika top = , maka stack dianggap kosong
Procedure Clear NoStack:Byte ;
Begin
Case NoStack Of
: Top[ ]:= Max + ;
End;
: Top[ ] := ;
End;
V3/2009‐2010 7
ALGORITMA dan STRUKTUR DATA II
STACK
Pertemuan 7
Waktu
:
5 menit
Tujuan Pembelajaran
: Mahasiswa mampu menjelaskan teknik pemrograman
Substansi Materi
: Stack
menggunakan Stack.
Tabulasi Kegiatan Perkuliahan
No
Tahap
Kegiatan Pengajar
Kegiatan
Pendahuluan . Membuka pertemuan
. Mengulang materi pertemuan
sebelumnya
Penyajian
. Pengertian stack
Materi
. Jenis‐jenis stack
. Stack dengan Array
Penutup
. Menyimpulkan materi
pertemuan
. Memberikan tugas kecil
. Menutup pertemuan
Kegiatan
Media &
Waktu
Mahasiswa
Alat
Menyimak
Papan Tulis
Bertanya
Menit
Menyimak
Bertanya
Menjawab
Pertanyaan
Menyimak
Papan Tulis 8
Menit
Papan tulis
5
Menit
M A T E R I K U L I A H
STACK
Stack adalah suatu tumpukan. Konsep utama dari stack adalah L)FO Last )n First Out ,
yaitu benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang
dikeluarkan dari tumpukan. Dalam pascal ada dua cara penerapan stack, yaitu dengan
array dan linked list.
V3/2009‐2010 1
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
Single Stack dengan Array
Sesuai dengan sifat stack, maka pengambilan/penghapusan elemen dalam stack harus
dimulai dari elemen teratas. Deklarasi konstanta, tipe, dan variable yang akan dipakai
dalam penjelasan operasi‐operasi stack dengan array adalah :
Const
Type
Max = {jumlah tumpukan}
Var
TipeData = { };
Stack = array [ ..Max] of TipeData;
Top : TipeData;
Operasioperasi pada Single Stack dengan Array
•
Create : Membuat stack baru yang masih kosong
Procedure Create;
Begin
End;
•
Top := ;
Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh
Function Full : Boolean;
Begin
End;
Full := False;
)f top = max then Full := True;
V3/2009‐2010 2
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan
lagi jika stack sudah penuh.
Procedure Push elemen:TipeData ;
Begin
Begin
End;
•
)f not Full then
End;
Top := Top+ ; { atau )nc Top }
Stack[Top] := elemen;
Empty : Fungsi untuk menentukan apakah stack kosong atau tidak.
Function Empty : Boolean;
Begin
Empty := False;
)f Top = then Empty := True;
End;
•
Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong.
Procedure Pop elemen:TipeData ;
Begin
)f not Empty then
End;
Begin
End;
Elemen := stack[Top];
Top := Top‐ ; { atau Dec Top }
V3/2009‐2010 3
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Clear : Mengosongkan stack Jika top = , maka stack dianggap kosong
Procedure Clear;
Begin
End;
Top := ;
Double Stack dengan Array
Merupakan teknik yang dikembangkan untuk menghemat pemakaian memory dalam
pembuatan dua stack dengan array. )ntinya adalah menggunakan sebuah array untuk
menampung dua stack.
Contoh deklarasi konstanta, tipe, dan variable yang akan dipakai dalam operasi‐operasi
double stack array.
Const
Type
Max = {jumlah tumpukan}
TipeData = { };
Stack = array [ ..Max] of Byte;
Top : array[ .. ] of Byte;
Var
Operasioperasi pada Double Stack dengan Array
•
Create : Membuat stack baru yang masih kosong
Procedure Create;
Begin
Top[ ] := ;
Top[ ] := max + ;
V3/2009‐2010 4
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
End;
•
Full : Fungsi untuk memeriksa apakah stack yang ada sudah penuh
Function Full : Boolean;
Begin
End;
•
Full := False;
)f top[ ]+ > = top[ ] then Full := True;
Push : Menambahkan sebuah elemen‐elemen ke dalam stack. Tidak bisa dilakukan
lagi jika stack sudah penuh.
Procedure Push elemen:TipeData; NoStack : Byte ;
Begin
)f not Full then
Begin
End;
Case NoStack of
: Top[ ] := Top[ ] + ;
: Top[ ] := Top[ ] ‐ ;
Stack[Top[NoStack]] := elemen;
End;
V3/2009‐2010 5
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Empty : Fungsi untuk menentukan apakah stack kosong atau tidak.
Function Empty NoStack : Byte : Boolean;
Begin
Empty := False;
Case NoStack of
: if Top[ ]= then
Empty := True;
Empty := True;
End;
: if Top[ ] = Max + then
End;
•
Pop : Mengambil elemen teratas dari stack. Stack tidak boleh kosong.
Procedure Pop var elemen:TipeData; NoStack:Byte ;
Begin
)f not Empty NoStack then
Begin
Case NoStack of
: Top[ ] := Top[ ] + ;
End;
End;
Elemen := stack[Top[NoStack]];
: Top[ ] := Top[ ] ‐ ;
End;
V3/2009‐2010 6
DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II
STACK
•
Clear : Mengosongkan stack Jika top = , maka stack dianggap kosong
Procedure Clear NoStack:Byte ;
Begin
Case NoStack Of
: Top[ ]:= Max + ;
End;
: Top[ ] := ;
End;
V3/2009‐2010 7