Stack.

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA Struktur Data - Gerlan A. Manu, ST.,MKom 1.
Advertisements

Queue (Antrian).
bentuknya, yang dapat berubah pada saat runtime.
STRUKTUR DATA array stack dan queue
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Rahmat Deddy Rianto Dako, ST, M.Eng
QUEUE II. IMPLEMENTASI QUEUE
STRUKTUR DATA PERTEMUAN 6
QUEUE.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
STACK (Tumpukan).
STRUKTUR DATA version STMIK AMIKOM YOGYAKARTA
STACK.
Struktur Data (Data Structure) – IS 2313
Pointer dalam Stack.
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Queue.
Queue.
Circular Queue.
STRUKTUR DATA (4) array stack dan queue
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
STRUKTUR DATA QUEUE.
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
BAB 3 STACK (TUMPUKAN).
STACK.
Stack Pertemuan 11.
NAMA : siti hajar NIM : UNIT : b NO.hp : 0852 –
Stack.
Defri Kurniawan ADT STACK Defri Kurniawan
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
Defri Kurniawan QUEUE Defri Kurniawan
STRUKTUR DATA – Pertemuan 6
Struktur Organisasi Data 2
STRUKTUR DATA QUEUE (Antrian)
Tugas Kelompok 1 stack.
STACK (Tumpukan).
QUEUE (ANTRIAN ) Disusun Oleh : Kelompok 2 Siti Hajar ( )
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
NAMA : SITI HAJAR NIM : UNIT : B NO.HP : 0852 – 2000 – 3786.
Pertemuan 5 Review Berbagai Struktur Data
Nama : Siti Hajar Nim : Unit : B/III No.Hp : 0852 –
STRUKTUR DATA STACK.
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
STACK Yohana Nugraheni.
Algoritme dan Stuktur Data
Queue(Antrian).
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
STRUKTUR DATA PERTEMUAN 7
STRUKTUR DATA PERTEMUAN 4
3.
STACK.
Algoritma dan Struktur Data
Kode MK/ Pemrograman Terstruktur 2
STRUKTUR DATA Teknik Informatika S1
STACK (Tumpukan) Tumpukan Koin.
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Stack

Last In First Out (LIFO) Operasi Stack PUSH penambahan elemen baru POP STACK / TUMPUKAN Struktur data Last In First Out (LIFO) Operasi Stack PUSH penambahan elemen baru POP pengapusan elemen

STACK REPRESENTASI STATIS Implementasi menggunakan ARRAY Kondisi OVER FLOW kondisi UNDER FLOW

PSEUDOCODE STACK Algoritma Stack Deskripsi {algoritma stack / tumpukan} Deklarasi type NilaiKuliah = record < nama : string nilai : integer > const MAX = 10 type stack = record < top : integer data : array [1 .. MAX] of NilaiKuliah St : stack procedure createEmpty(input/output s : stack) function isEmpty (input s : stack)  boolean function isFull(input s : stack)  boolean procedure push(input nama : string, input nilai :integer , input/output s : stack) procedure pop (input/output s: stack) procedure printStack (input s: stack) Deskripsi createEmpty(St) printStack(St) write(‘-------------------’) push(‘Hendra’,90,st) push(‘Mikael’,50,st) pop(St)

PSEUDOCODE STACK procedure createEmpty(input/output s : stack) Deklarasi {tidak ada} Deskripsi s.top  -1 function isEmpty (input s : stack)  boolean Deklarasi hasil : boolean Deskripsi hasil  false if s.top=-1 then hasil true end if return hasil function isFull(input s : stack)  boolean Deklarasi hasil : boolean Deskripsi hasil  false if s.top=MAXthen hasil true end if return hasil

PSEUDOCODE STACK procedure push(input nama : string, input nilai :integer , input/output s : stack) {menambah elemen di dalam stack} Deklarasi {tidak ada} Deskripsi if isFull(S) =TRUE then write(‘STACK PENUH’) else if isEmpty (S) =TRUE then s.top  1 s.nama[1]  nama s.nilai[1]  nilai s.top  s.top + 1 s.nama[s.top]  nama s.nilai[s.top]  nilai endif end if

PSEUDOCODE STACK procedure pop (input/output s: stack) {menghapus elemen di dalam stack} Deklarasi {tidak ada} Deskripsi if s.top = 1 then s.top  -1 else if s.top <> -1 then s.top  s.top – 1 write(‘Stack Kosong’) endif end if procedure printStack (input s: stack) {Menampilkan isi Stack ke layar} Deklarasi i : integer Deskripsi if s.top = -1 then write (‘STACK KOSONG’) else for i1 to s.top do write(‘elemen ke- ’,i) write(‘NAMA’ , s.data[i].nama) write(‘NILAI’ , s.data[i].nilai) endfor end if

Queue

Queue Dengan Array Bersifat FIFO Elemen yang pertama masuk ke antrian akan keluar pertama kalinya DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian Antrian dapat dibuat dengan menggunakan: Liniear Array dan Circular Array

Queue Linier Array Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya Sehingga membutuhkan 2 variabel: Head dan Tail

Queue (2) Operasi-operasi: Create() Untuk menciptakan dan menginisialisasi Queue Dengan cara membuat Head dan Tail = -1

Queue (3)

Queue (4) IsEmpty() Untuk memeriksa apakah Antrian sudah penuh atau belum Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail

Queue (5)

Queue (6) Fungis IsFull Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara mengecek nilai Tail, jika Tail = MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh

Queue (7) Enqueue Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu

Queue (8)

Queue (9) Dequeue() Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1 Penggeseran dilakukan dengan menggunakan looping

Queue (10)

Queue (11) Clear() Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1 Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca

Queue (12)

Tampil() Queue (13) Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping dari head s/d tail

Algoritma Queue Deklarasi const MAX = 10 type queue = record < head,tail : integer nama : array[1..MAX] of string > q : queue procedure createEmpty(input/output q : queue) function isEmpty (input q : queue)  boolean function isFull (input q : queue)  boolean procedure enqueue(input nama : string, input/output q:queue) procedure dequeue(input/output q:queue) procedure printQueue (input q: queue)

procedure createEmpty(input/output q : queue) Deklarasi {tidak ada} deskripsi q.head  -1 q.tail  -1 function isEmpty (input q : queue)  boolean deklarasi hasil:boolean if q.tail=-1 then hasil  true else hasil  false endif

function isFull (input q : queue)  boolean deklarasi hasil:boolean deskripsi if q.tail=MAX then hasil  true else hasil  false endif

procedure enqueue(input nama : string, input/output q:queue) deklarasi deskripsi if isFull(q)=TRUE then write(‘QUEUE PENUH’) else if isEmpty(q)=TRUE then q.head  1 q.tail  1 q.nama[1]  nama q.tail  q.tail + 1 q.nama[q.tail]  nama endif end if

procedure dequeue(input/output q:queue) deklarasi i : integer Deskripsi if isEmpty(q)=TRUE then write(‘QUEUE KOSONG) else if q.head = q.tail then q.head  -1 q.tail  -1 for iq.head to q.tail-1 q.nama[i] = q.nama[i+1] endfor q.tail  q.tail -1 endif

procedure printQueue (input q: queue) deklarasi Deskripsi if isEmpty(q)=TRUE then write(‘Queue Kosong’) else for iq.head to q.tail do write(q.nama[i] ) endfor endif