Algoritme dan Stuktur Data

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Queue (Antrian).
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
LINKED LIST.
STRUKTUR DATA array stack dan queue
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
STACK (TUMPUKAN).
Algoritma dan Struktur Data
STACK (Tumpukan).
STRUKTUR DATA version STMIK AMIKOM YOGYAKARTA
STACK.
STACK.
Struktur Data (Data Structure) – IS 2313
Pointer dalam Stack.
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
STACK.
Queue.
Queue.
Struktur Data List Linear : Linked List (Double Linkedlist)
STRUKTUR DATA (4) array stack dan queue
Struktur Data List Linear : Linked List (Single Linkedlist)
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Struktur Data (Data Structure) – IS 2313
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
STACK.
Pertemuan 8 Stack dengan Array
Stack Pertemuan 11.
NAMA : siti hajar NIM : UNIT : b NO.hp : 0852 –
Chapt 04 : Stack Oleh : Yuli Praptomo PHS, S.Kom
Stack.
Sapta Candra Miarsa,S.T.,M.T.
Defri Kurniawan ADT STACK Defri Kurniawan
STRUKTUR DATA STACK.
Abstract Data Type (ADT) and Stack Array
STRUKTUR DATA QUIZ.
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Defri Kurniawan QUEUE Defri Kurniawan
Struktur Organisasi Data 2
STACK (Tumpukan).
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
Algoritma dan Struktur Data
STRUKTUR DATA STACK.
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
Stack.
STACK Yohana Nugraheni.
STRUKTUR DATA STACK.
Stack.
Algoritma dan Struktur Data
STRUKTUR DATA version STMIK AMIKOM YOGYAKARTA
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
STRUKTUR DATA STACK.
STRUKTUR DATA Stack atau Tumpukan.
STRUKTUR DATA (3) STACK.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
QUEUE (Antrian).
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Algoritme dan Stuktur Data Kuliah #5 Stack / Tumpukan

Tujuan Instruksional Mahasiswa mampu : Memahami tentang konsep stack Mengetahui mekanisme pengoperasian sebuah stack Mengimplementasikan stack dengan array Mengimplementasikan stack dengan linked list

Topik Pengertian stack Operasi pada stack Implementasi stack dengan array Implementasi stack dengan linked list

Pengertian Stack (tumpukan) adalah struktur data dimana proses pengambilan dan penambahan element dilakukan pada satu ujung yang sama. Stack mengikuti konsep LIFO. LIFO (Last In First Out) : elemen yang terakhir kali masuk akan menjadi elemen yang pertama kali keluar. Stack dapat dibuat dengan menggunakan array maupun linked list.

Stack (Tumpukan) “Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack

Ilustrasi Stack TV VCD Compo penambahan pengambilan Karena Compo ditumpuk di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan. Sebaliknya, karena Televisi ditumpuk pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika dilakukan pengambilan elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo.

PUSH dan POP Ada 2 operasi paling dasar dari stack yang dapat dilakukan, yaitu : Operasi push yaitu operasi menambahkan elemen pada urutan terakhir (paling atas). 2. Operasi pop yaitu operasi mengambil sebuah elemen data pada urutan terakhir dan menghapus elemen tersebut dari stack. 3. Pop dan push sama-sama dilakukan pada item yang terakhir kali ditambahkan pada stack. 4. Sedangkan pointer TOP akan menunjuk pada element yang paling atas (yang paling akhir ditambahkan) pada stack.

Proses Operasi Stack Contoh lain adalah ada sekumpulan perintah stack yaitu push(5), push(7), pop, push(3), pop, pop. Jika dijalankan, maka yang akan terjadi adalah :

Latihan Misal L adalah list linier. Gambarkan proses Stack untuk tiap operasi berikut dan tuliskan hasil akhirnya jika top menunjuk pada data f : L = {a,b,c,d,e,f} pop(); push(z); push(y); push(w);

Representasi Stack dalam Program Representasi stack dalam pemrograman, dapat dilakukan dengan 2 cara yaitu : 1. Representasi stack dengan array 2. Representasi stack dengan single linked list Banyak bahasa pemrograman yang tidak mempunyai type data stack secara built-in. Pemrogram harus memanipulasi sendiri untuk merepresentasikan stack. Yaitu dengan array dan single linked list. Array berbeda dengan stack: satu hal yang membedakan keduanya adalah banyaknya elemen stack dapat bertambah atau berkurang, sedangkan array elemnnya tetap.

Ilustrasi Stack dengan Array Representasi stack dengan menggunakan array dengan maksimal data 5 adalah

Ilustrasi Stack dengan Linked List Representasi stack dengan menggunakan single linked list

Pointer Top Digunakan untuk menunjuk element paling akhir yang dimasukkan kedalam stack. Jika top tidak menunjuk pada element manapun hal ini menunjukkan bahwa stack dalam kondisi kosong (empty). Pada array : top akan menyimpan index element paling akhir masuk. Pada linked list : top akan menyimpan alamat node yang paling akhir ditambahkan.

Operasi pada Stack Deklarasi Inisialisasi Cek kosong Cek penuh Penambahan Pengambilan Pengaksesan

(1) Deklarasi Proses pendeklarasian stack adalah proses pembuatan struktur stack dalam memori. Karena stack dapat direpresentasikan dalam 2 cara, maka pendeklarasian stack pun ada 2 yaitu : a. Pendeklarasian stack yang menggunakan array. Suatu stack memiliki beberapa bagian yaitu top yang menunjuk posisi data terakhir (top) elemen yang berisi data yang ada dalam stack. Bagian ini lah yang berbentuk array. maks_elemen yaitu variable yang menunjuk maksimal banyaknya elemen dalam stack.

Deklarasi Stack dengan Array Dalam bahasa C, pendeklarasiannya adalah : #define maks 100 //pendeklarasian struktur stack struct tstack { int top; int maks_elemen; int elemen[maks]; }; //pendeklarasian stack tstack stack;

Deklarasi Stack dengan Array b. Pendeklarasian stack yang menggunakan single linked list Adapun stack yang menggunakan single linked list, hanya memerlukan suatu pointer yang menunjuk ke data terakhir. Setiap elemen linked list mempunyai 2 field yaitu elemen datanya dan pointer bawah yang menunjuk posisi terakhir sebelum proses push. typedef struct TStack *PStack; typedef struct TStack { int elemen; PStack bawah; }; // contoh pendeklarasian variable stack PStack stack;//variable stack akan selalu menunjuk top

(2) Inisialisasi Merupakan proses pemberian nilai awal. Pada Array : Pembentukan obyek array beserta ukurannya. tumpukan = new int[10]; (pembentukan obyek array yang memiliki 10 element, dan alamat obyek akan disimpan pada variabel bernama tumpukan) Pemberian nilai awal pada variabel top=-1. int top=-1;

Program Inisialisasi (Array)

(2) Inisialisasi...........(lanjutan) Pada Linked List: Proses inisialisasi dilakukan dengan memberikan nilai awal pada variabel head, tail dan top dengan nilai null. head = tail = top = null;

(3) Cek Kosong Operasi yang digunakan untuk mengecek kondisi stack dalam keadaan kosong. Caranya : melihat nilai top. Jika nilainya sama seperti ketika inisialisasi berarti stack dalam kondisi kosong (top =-1 atau top=null). Operasi ini harus dapat mengembalikan nilai true jika stack kosong dan false jika sebaliknya.

Program “isEmpty” (Array) Implementasi dalam bahasa C adalah : int isempty(tstack stack) { if (stack.top==-1) return 1; else return 0; } Jika top bernilai 0 atau top bernilai -1 maka berarti stack dalam keadaan empty (kosong) yang akan me-return-kan true (1) dan jika tidak berarti stack mempunyai isi dan me-return-kan nilai false (0)

Program “isEmpty” (Linked List) int isempty (PStack stack) { if (stack==NULL) return 1; else return 0; } Jika stack bernilai NULL maka menandakan stack sedang keadaan empty (kosong) dan akan me-return-kan nilai 1 dan jika tidak NULL maka menandakan stack mempunyai isi (tidak kosong) sehingga operasi tersebut akan me-return-kan nilai false (0).

(4) Cek Penuh (IsFull) Operasi yang hanya dapat diterapkan pada stack yang menggunakan array. Operasi ini digunakan untuk mengecek kondisi stack dalam keadaan penuh. Caranya : melihat nilai top. Jika nilai top sudah menunjuk n-1 (dimana n adalah ukuran array) maka dapat diindikasikan stack sudah dalam kondisi penuh. Kenapa? Operasi ini harus dapat mengembalikan nilai true jika stack penuh dan false jika sebaliknya.

Program “isFull” (Array) int isfull(tstack stack) { if (stack.top==(stack.maks_elemen-1)) return 1; else return 0; } Operasi ini akan memberikan nilai true (1) jika field top sama dengan field maks_elemen (untuk array yang elemennya dimulai dari posisi 1) atau top sama dengan maks_elemen-1 (unauk array yang elemennya dimulai dari posisi 0).

Program “isFull” (Linked List) int isfull() { PStack test; test=(PStack)malloc(sizeof(TStack)); if(test==NULL)//jika alokasi gagal return 1; else free(test); return 0; }