Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Queue (Antrian).
Advertisements

bentuknya, yang dapat berubah pada saat runtime.
STRUKTUR DATA array stack dan queue
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
STACK Budi arifitama.
Pertemuan 5 STACK atau TUMPUKAN 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)
Algorithm and Data Structures.
stack ==tumpukan== Tenia wahyuningrum st3 telkom purwokerto
PRAKTIKUM STRUKTUR DATA STACK SULIDAR FITRI, M.Sc MARCH, 2014.
STRUKTUR DATA (4) array stack dan queue
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.
STRUKTUR DATA Queue atau Antrian.
STACK.
Pertemuan 8 Stack dengan Array
Stack Pertemuan 11.
NAMA : siti hajar NIM : UNIT : b NO.hp : 0852 –
Universitas Budi Luhur
Stack.
Sapta Candra Miarsa,S.T.,M.T.
Stack (Tumpukan) Pertemuan 4 Season 1
Oleh : Agus Priyanto, M.Kom Norma Amalia, M.Eng
Defri Kurniawan ADT STACK Defri Kurniawan
STRUKTUR DATA STACK.
STRUKTUR DATA STACK.
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
ARRAY (Array Dimensi Satu) Pertemuan 15 Dasar Pemrograman
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
ARRAY (Array Dua Dimensi) Pertemuan 16 Dasar Pemrograman
Algoritma dan Struktur Data
STACK 6.3 & 7.3 NESTED LOOP.
STACK (Tumpukan).
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
STRUKTUR DATA array.
SWITCH Struktur Kendali Percabangan Pertemuan 6 Dasar Pemrograman
STRUKTUR DATA STACK.
STRUKTUR DATA STACK.
ARRAY Oleh : sgo.
SWITCH Struktur Kendali Percabangan Pertemuan 7 Dasar Pemrograman
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
STACK Yohana Nugraheni.
STRUKTUR DATA STACK.
Algoritme dan Stuktur Data
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
STRUKTUR DATA version STMIK AMIKOM YOGYAKARTA
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
Algoritma dan Struktur Data
STRUKTUR DATA PERTEMUAN 4
STRUKTUR DATA STACK.
STRUKTUR DATA Stack atau Tumpukan.
Double STACK 6.3 & 7.3 NESTED LOOP.
Algoritma dan Struktur Data
STACK (Tumpukan) Tumpukan Koin.
STRUKTUR DATA – TEKNIK INFORMATIKA S1
QUEUE (Antrian).
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Algoritma dan Struktur Data Praktikum 2 SKS Dosen: Muhammad Fachrie, M.Cs. Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 STACK Stack (tumpukan) adalah salah satu metode pengorganisasian data di dalam sebuah program yang menggunakan pola LIFO (Last In, First Out) Artinya, data yang terakhir kali dimasukkan ke dalam program, akan dikeluarkan pertama kali. Ibarat sebuah tumpukan buku di dalam kardus, buku yang pertama kali bisa diambil adalah buku yang paling atas (yang paling pertama masuk), sedangkan buku yang terakhir kali bisa diambil adalah buku yang paling bawah (yang terakhir kali masuk) Praktikum Alstrukdat - Pertemuan 2

Ilustasi Stack – Input Data Terakhir kali masuk, Pertama kali keluar N = batas maksimum tumpukan Buku N . Buku 4 Buku 3 Buku 2 Pertama kali masuk, Terakhir kali keluar Buku 1 Praktikum Alstrukdat - Pertemuan 2

Ilustasi Stack – Output Data Terakhir kali masuk, Pertama kali keluar N = batas maksimum tumpukan Buku N . Buku 4 Buku 3 Buku 2 Pertama kali masuk, Terakhir kali keluar Buku 1 Praktikum Alstrukdat - Pertemuan 2

Ilustasi Stack dalam Array Indeks array Buku 1 Buku 2 Buku 3 Buku 4 Buku N . Elemen ke-N N-1 . Elemen ke-4 3 Elemen ke-3 2 Elemen ke-2 1 Elemen ke-1 Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Stack – Proses Push Push di dalam stack adalah proses memasukkan sebuah data ke dalam stack. Data yang baru saja diinputkan akan berada pada bagian atas (top) stack. Setiap kali terjadi proses push (penambahan data ke dalam stack), maka nilai top akan bertambah 1 (top = top + 1). Variabel top berfungsi menunjukkan indeks dari elemen teratas, yakni elemen/nilai yang terakhir kali dimasukkan ke dalam stack. Praktikum Alstrukdat - Pertemuan 2

Stack – Ilustrasi Proses Push 4 3 2 1 4 3 2 1 80 4 3 2 100 1 80 Top Top Top Stack kosong Top = -1 Stack berisi 1 data Top = 0 Stack berisi 2 data Top = 1 Praktikum Alstrukdat - Pertemuan 2

Stack – Ilustrasi Proses Push STACK PENUH! Inisialisasi stack Max Tumpukan = 5 Push(80) Push(100) Push(75) Push(92) Push(85) NULL 1 2 3 4 top = 4 85 92 top = 3 top = 2 75 100 top = 1 80 top = 0 top = -1 NULL = kondisi dimana memori pada elemen array masih kosong Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Stack – Proses Push Stack hanya bisa membaca data yang berada pada posisi paling atas (top). Contoh: Element[top] = 75 Element[top] = 85 4 3 75 2 100 1 80 Top 85 4 92 3 75 2 100 1 80 Top Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Stack – Proses Pop Pop di dalam stack merupakan sebuah proses untuk mengeluarkan sebuah data dari dalam stack. Satu kali proses pop hanya mengeluarkan satu buah data, yakni data yang berada pada posisi paling atas (top). Setiap terjadi proses pop (pengeluaran satu data dari dalam stack), maka nilai top berkurang 1 (top = top - 1). Praktikum Alstrukdat - Pertemuan 2

Stack – Ilustrasi Proses Pop Top 85 4 92 3 75 2 100 1 80 4 92 3 75 2 100 1 80 4 3 75 2 100 1 80 Top Top Stack yang penuh Top = 4 Stack berisi 3 data Top = 3 Stack 2 data Top = 2 Praktikum Alstrukdat - Pertemuan 2

Stack – Ilustrasi Proses Pop STACK KOSONG! Stack tidak kosong Pop() NULL 1 2 3 4 top = 4 85 92 top = 3 top = 2 75 100 top = 1 80 top = 0 top = -1 NULL = kondisi dimana memori pada elemen array masih kosong Praktikum Alstrukdat - Pertemuan 2

Kode Program – Inisialisasi Stack Inisialiasi stack sebaiknya menggunakan record agar memudahkan programmer jika akan membuat lebih dari satu stack dalam satu program. Inisialisasi stack sebaiknya diletakkan di luar int main() (sebagai variabel global) agar dapat diakses oleh semua fungsi. //membuat record StackRecord struct StackRecord{ int top; int Element[MAX]; }; StackRecord stack1; //membuat variabel stack1 stack1.top = -1; //nilai top di awal program diset = -1 Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Kode Program – Push Proses push diawali dengan mengecek apakah stack dalam keadaan penuh atau tidak. Jika stack tidak penuh, maka nilai yang akan di-push diletakkan pada bagian paling atas (top). Nilai top bertambah 1. void push(int input, StackRecord &s){ //cek apakah stack PENUH atau tidak if (s.top == (MAX-1)){ //MAX = jumlah maksimum tumpukan cout<<"Stack penuh!"<<endl; } else { s.top = s.top + 1; //nilai top bertambah 1 s.Element[s.top] = input; //isi stack pd posisi top Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Kode Program – Pop Proses pop diawali dengan mengecek apakah stack dalam keadaan kosong atau tidak. Jika stack tidak kosong, maka nilai yang akan di-pop ditampung dalam variabel sementara (temp). Nilai top berkurang 1. void pop(StackRecord &s){ int temp; //variabel untuk menampung nilai yang di-pop //cek apakah stack KOSONG atau tidak if (s.top == -1){ cout<<"Stack kosong!"<<endl; } else { temp = s.Element[s.top]; //simpan nilai ke temp s.Element[s.top] = 0; //array pada posisi top = 0 s.top = s.top - 1; //top berkurang 1 cout<<"Nilai "<<temp<<" dikeluarkan."<<endl; Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include <iostream> #include <conio.h> using namespace std; int const MAX = 5; //nilai maksimum tumpukan struct StackRecord{ int top; int Element[MAX]; }; void push(int input, StackRecord &s){ //cek apakah stack PENUH atau tidak if (s.top == (MAX-1)){ cout<<"Stack penuh!"<<endl; } else { s.top = s.top + 1; s.Element[s.top] = input; //bersambung ke halaman berikutnya Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 int pop(StackRecord &s){ int temp; //cek apakah stack KOSONG atau tidak if (s.top == -1){ cout<<"Stack kosong!"<<endl; return 0; //kembalikan nilai 0 } else { temp = s.Element[s.top]; s.Element[s.top] = 0; s.top = s.top - 1; cout<<"Nilai "<<temp<<" dikeluarkan."<<endl; return temp; //mengembalikan nilai temp int main(){ StackRecord stack1; stack1.top = -1; char lanjut = 'y'; int nilai; //bersambung ke halaman berikutnya Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 //memasukkan nilai ke dalam stack (PUSH) while (lanjut != 'n'){ cout<<"=============================================="<<endl; cout<<"Masukkan sebuah nilai ke dalam stack = "; cin>>nilai; push(nilai,stack1); //tanya apakah ingin input nilai lagi atau tidak cout<<"Input nilai lagi (Y/N)?"; cin>>lanjut; } //mengeluarkan isi stack (POP) dan menampilkan nilainya lanjut = 'y'; int temp; //untuk menyimpan nilai yang di-pop cout<<endl<<"Mengeluarkan isi stack"<<endl; temp = pop(stack1); //tanya apakah ingin mengeluarkan isi stack lagi atau tidak cout<<"Keluarkan isi stack lagi (Y/N)?"; getch(); return 0; Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Tugas Buatlah program yang dapat menyimpan nilai-nilai di bawah ini ke dalam sebuah stack: Nilai = 80, 54, 24, 100, 70, 67, 89, 90, 88 Nilai-nilai di atas dimasukkan satu per satu oleh user (input keyboard) menggunakan proses push. Kemudian, nilai tersebut dikeluarkan satu per satu dari dalam stack menggunakan proses pop. Saat proses pengeluaran tersebut, hitunglah juga berapa jumlah nilai yang sudah dikeluarkan. Lebih lanjut, lihat contoh program “contohtugas.cpp” Praktikum Alstrukdat - Pertemuan 2

Praktikum Alstrukdat - Pertemuan 2 Tugas Aturan pengumpulan tugas: Kode program dicetak di kertas A4 Screenshot program yang berhasil jalan ditampilkan juga (dicetak). Tugas dikumpul pada Hari Senin 17 Oktober 2016, bersamaan dengan tugas array pekan lalu. Praktikum Alstrukdat - Pertemuan 2