Stack STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 5 : 6 Juli 2015

dokumen-dokumen yang mirip
Queue Priority Queue STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 6 : 7 Juli 2015

Manage Sort STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 4 : 30 Juni 2015

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Algoritma Pemrograman & Struktur Data

Algoritma Dan Struktur Data II

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

STL DLL STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 3 : 29 Juni 2015

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

STL DLL STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 3 : 27 Juni 2016

STACK. Sistem penyimpanan data dengan mekanisme Last In First Out( LIFO).

BAB II STACK Atau TUMPUKAN

BAB II STACK (TUMPUKAN)

Struktur Data Array. Rijal Fadilah S.Si

Penggunaan Private dan Public dalam C++

INF-103 Pemrograman II VECTOR & STRING. Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc. Program Studi Informatika FMIPA UNIVERSITAS KUALA

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Bahasa Pemrograman :: Object Oriented Programming

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

DIG1G3 Implementasi Struktur Data

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Stack.

Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI.

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Stack using Array. Alfa Faridh Suni, S.T., M.T. PTIK

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

Membuat Binary Search Tree Menggunakan STL Vector C++

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

REVIEW ARRAY. Institut Teknologi Sumatera

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Gambar 1. Ilustrasi Stack

MODUL IV STACK A. TUJUAN

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

LAPORAN PRAKTIKUM IV. Oleh:

LATIHAN SOAL (FUNGSI & PROSEDUR)

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

STACK/TUMPUKAN. R. Denny Ari Wibowo, S.Kom STMIK BINA NUSANTARA JAYA LUBUKLINGGAU

S T A C K ( T U M P U K A N )

Modul Praktikum Algoritma dan Struktur Data

Chapter 9 Operator Types dan Operator Overloading

Stack. Gambar 1.1 Stack

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

Algoritma dan Struktur Data. Ramos Somya

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

ARNA FARIZA YULIANA SETIOWATI

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

PENGANTAR KOMPUTER & SOFTWARE II

BAB 3 STACK (TUMPUKAN)

Array dan Vector Linked List STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2 : 23 Juni 2015

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

BAB VIII QUEUE (ANTRIAN)

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

Aplikasi Rekursif dalam Analisis Sintaks Program

PERULANGAN P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

STRUKTUR DASAR PEMROGRAMAN

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

SENARAI BERANTAI (LINK LIST)

Subprogram (dalam Bahasa C++ + Flowchart)

Pertemuan 7. REVIEW dan QUIS

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016

A. TUJUAN PEMBELAJARAN

Algoritma dan Struktur Data STACK

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

STRUKTUR DATA Pertemuan 1 s.d 8

S TA C K Sunu Wibirama

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

LAPORAN PRAKTIKUM RESMI QUEUE

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Praktikum 4. Tumpukan (Stack)

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

Stack. Pointer ke node pertama dari stack. Bagian deklarasi di atas kita asumsikan disimpan menjadi sebuah header file dengan nama stack.

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

P3 Dasar Struktur Data TIF42/SIF42

ALGORITMA RINTA KRIDALUKMANA SISKOM UNDIP

Struktur Data dan Algoritma

ARNA FARIZA YULIANA SETIOWATI

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN

//Kelas ini berisi data yang hendak disimpan ke dalam database

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

Tumpukan (Stack) Stack bersifat LIFO (Last In First Out) LIFO Data yang terakhir masuk ke dalam stack menjadi data yang pertama keluar dari stack

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game

Praktikum Exception Handling

Function. Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :

Lab. Teknik Informatika Struktur Data 1

Struktur Data. Stack STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

File I/O in C++ Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

Transkripsi:

JULIO ADISANTOSO Departemen Ilmu Komputer IPB Pertemuan 5 : 6 Juli 2015

S T A C K

Stack Beberapa pengertian Stack pada Struktur Data: tumpukan dari objek sekumpulan data yang seolah-olah diletakkan di atas data yang lain urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja.

Sifat Stack Stack LIFO : Last In First Out Objek yang terakhir masuk ke dalam Stack akan menjadi yang pertama keluar dari Stack Beberapa contoh penggunaan Stack: Membalik urutan Pemanggilan fungsi rekursif Beberapa algoritme Search, misal DFS

Operasi dasar Stack Spesifikasi PRIMITIF push(objek) : menambah objek ke dalam Stack pop() : menghapus objek paling atas top() : akses objek paling atas empty() : memeriksa Stack kosong size() : ukuran stack full() : memeriksa Stack penuh (in array)

Stack Stack Stack dapat diimplementasikan dengan menggunakan tipe data apa pun, asalkan memenuhi sifat dan kaidah Stack, yaitu LIFO. Contoh implementasi: Array Linked List Tiap implementasi memiliki plus dan minus. Apa saja?

Stack Menggunakan Array (p05a.cpp) #include <iostream> #define SIZE 100 using namespace std; class Stack { int stack[size]; int atas; public: Stack() { atas=size; bool empty() { return atas==size; bool full() { return atas==0; void push(int value); void pop(); int top(); int size() { return SIZE-atas; int getatas() {return atas; int *getstack() {return stack; ;

Stack Menggunakan Array Contoh Driver int main() { Stack st; st.push(50); st.push(15); st.push(20); cout << "Stack Awal\n"; cout << st; int nilai=st.top(); st.pop(); cout << "\nhasil pop(): " << nilai << endl; cout << "\nstack Akhir\n"; cout << st; return 0;

Stack Menggunakan Array Fungsi push(value) void Stack::push(int value) { if (full()) cout << "Stack is full\n"; else stack[--atas]=value; Fungsi pop() void Stack::pop() { if (empty()) cout << "Stack is empty\n"; else ++atas; Fungsi pop() tidak mengambil nilai dari Stack, tetapi hanya membuang nilai paling atas dari Stack.

Stack Menggunakan Array Fungsi top() hanya meng-copy nilai paling atas dari Stack. Fungsi top() int Stack::top() { if (empty()) { cout << "Stack is empty\n"; return 0; else return stack[atas];

Stack Menggunakan Array Dalam driver terdapat pernyataan cout<<st; yang menimbulkan error. Kenapa? Oleh karena itu harus dibuat fungsi yang meng-overload operator <<. Fungsi operator<< ostream& operator<< (ostream &out, Stack s) { if (s.empty()) out << "Stack is empty\n"; else for (int i=s.getatas(); i<s.getatas()+s.size(); ++i) out << s.getstack()[i] << endl; return out;

Stack Menggunakan DLL (p05b.cpp) #include <iostream> #include <list> using namespace std; class Stack { list<int> stack; list<int>::iterator atas; public: Stack() { atas=stack.begin(); bool empty() { return (atas==stack.end()); int size() { return stack.size(); void push(int nilai); void pop(); int top(); list<int>::iterator getatas() {return atas; list<int> getstack() {return stack; ;

Stack Menggunakan DLL Fungsi push(value) void Stack::push(int value) { stack.push_front(value); atas=stack.begin(); Fungsi pop() void Stack::pop() { if (empty()) cout << "Stack is empty\n"; else {++atas; stack.pop_front(); Fungsi pop() tidak mengambil nilai dari Stack, tetapi hanya membuang nilai paling atas dari Stack.

Stack Menggunakan DLL Fungsi top() int Stack::top() { return (*atas); Fungsi operator<< ostream& operator<< (ostream &out, Stack s) { if (s.empty()) out << "Stack is empty\n"; else { list<int>::iterator it=s.getatas(); for (int i=0; i<s.size(); ++it, ++i) out << (*it) << endl; return out;

Stack Menggunakan STL Stack Spesifikasi TYPE #include <stack> typedef stack<int> Stack; Fungsi operator<< ostream& operator<< (ostream &out, Stack s) { if (s.empty()) out << "Stack is empty\n"; else { while(!(s.empty())) { int t = s.top(); out << t << endl; s.pop(); return out;

Latihan Stack Buat program mengevaluasi eksresi postfix seperti contoh Asumsikan bahwa ekspresi input selalu valid. Contoh Input 45+3-2* Contoh Output 12

Latihan Stack Algoritme: begin foreach ch string do if ch is number then push(ch) end else Ambil dua node teratas Lakukan operasi yang sesuai Masukkan ke stack end end return (NilaiStack) end

Latihan Stack Spesifikasi Type #include <iostream> #include <iomanip> #include <string> #include <cctype> #include <stack> using namespace std;

Latihan Stack Program Utama int main() { stack<int> st; string str; getline(cin, str); for (int i=0; i<str.size(); i++) { char ch=str.at(i); if (isdigit(ch)) { int t = (int)ch-48; st.push(t); else { // ambil 2 node dan lakukan operasi // simpan hasilnya ke stack cout << st.top() << endl; return 0;