STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

dokumen-dokumen yang mirip
S TA C K Sunu Wibirama

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

STRUKTUR DATA Pertemuan 4

Struktur Data Array. Rijal Fadilah S.Si

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

BAB II STACK (TUMPUKAN)

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

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

Algoritma Dan Struktur Data II

Materi 8 : STACK (TUMPUKAN) Dosen:

ALGORITMA DAN STRUKTUR DATA

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

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

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

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

ARNA FARIZA YULIANA SETIOWATI

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

BAB II STACK Atau TUMPUKAN

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

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

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

Praktikum 4. Tumpukan (Stack)

A. TUJUAN PEMBELAJARAN

Algoritma dan Struktur Data. Ramos Somya

BAB 3 STACK (TUMPUKAN)

Modul Praktikum Algoritma dan Struktur Data

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

MODUL IV STACK A. TUJUAN

BAB II LANDASAN TEORI

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

1. Kompetensi Mengenal dan memahami struktur data Stack (tumpukan) dan Queue (antrian).

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Algoritma Pemrograman & Struktur Data

Algoritma dan Struktur Data STACK

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

4. STACK / TUMPUKAN TEORI PENUNJANG

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.

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

Algoritma Dan Struktur Data II. Queue

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

LAPORAN PRAKTIKUM RESMI QUEUE

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

BAB III METODE PENELITIAN / PERANCANGAN SISTEM. perancangan dan pembuatan program ini meliputi : dengan konversi notasi infix, prefix, dan postfix.

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

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

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

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

MODUL PRAKTIKUM STRUKTUR DATA

BAB III QUEUE (ANTRIAN)

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

BAB IV IMPLEMENTASI DAN EVALUASI

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

Gambar 2.1 Ilustrasi Stack

Gambar 1. Ilustrasi Stack

Antrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan.

TIPE, NAMA, DAN NILAI

PROJECT UJIAN AKHIR SEMESTER MATA KULIAH STRUKTUR DATA Program Kalkulator Scientific Sederhana

BAB 2 LANDASAN TEORI

STACK (TUMPUKAN) & QUEUE (ANTRIAN) Altien Jonathan Rindengan, S.Si., M.Kom.

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

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

Stack. Gambar 1.1 Stack

Pertemuan 7. REVIEW dan QUIS

Algoritma Pemrograman

Materi. Tipe, Variabel dan Operator Algoritma Pemrograman PENULISAN ALGORITMA PENULISAN ALGORITMA 15/03/2010 NAMA DAN EKSPRESI

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom

Pertemuan VI ANTRIAN (Queue)

Algoritma Dan Struktur Data II

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Algoritma Pemrograman

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

SATUAN ACARA PERKULIAHAN MATA KULIAH : STRUKTUR DATA KODE / SKS : IK410 / 2 SKS

Praktikum Stuktur Data [MODUL]

Operasi File. Chapter 13

Tipe Data dan Operator

INFIX, POSTFIX, dan PREFIX Bambang Wahyudi

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

BAB III. Stack. ( Tumpukan )

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

# NINE Queue dengan Array

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

STRUKTUR DATA Pertemuan 1 s.d 8

KONTRAK PRAKTIKUM. Gambaran Umum : Alur bagi peserta praktikum :

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

Algoritma Pemrograman

Lab. Teknik Informatika Struktur Data 1

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

Teori Algoritma TIPE DATA

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

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

Algoritma Pemrograman

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

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Algoritma Pemrograman

Pertemuan Ke-4 Urutan (sequence) Rahmady Liyantanto. liyantanto.wordpress.com. S1 Teknik Informatika-Unijoyo

BAB III STACK ATAU TUMPUKAN

Transkripsi:

STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak

Defenisi : Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakan diatas data yang lain. Satu hal yang perlu kita ingat adalah bahwa kita bisa menambah (menyisipkan) data, dan mengambil (menghapus) data lewat ujung yang sama, yang disebut sebagai ujung atas tumpukan (top of stack). Untuk menjelaskan pengertian diatas kita ambil contoh sebagai berikut. Misalnya kita mempunyai dua buah kotak yang kita tumpuk, sehingga kotak kita letakkan diatas kotak yang lain. Jika kemudian tumpukan duah buah kotak itu kita tambah dengan kotak ketiga, keempat dan seterusnya, maka akan kita peroleh sebuah tumpukan kotak yang terdiri dari N kotak.

D C B A Dari gambar ini kita bisa mengatakan bahwa kotak B ada diatas kotak A dan ada dibawah kotak C. Gambar dibawah ini hanya menunjukkan bahwa dalam tumpukan kita hanya bisa menambah atau mengambil sebuah kotak lewat satu ujung, yaitu ujung bagian atas

Pendefinisian Stack Cara mendefinisikan Stack dengan Array of Struct: 1. Definisikan Stack dengan menggunakan struct 2. Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi Stack 3. Buatlah variabel array data sebagai implementasi Stack 4. Deklarasikan operasi-operasi/function di atas dan buat implementasinya

Deklarasi Deklarasi MAX_STACK #define MAX_STACK 10 (C); Const Max_Stack = 10 Deklarasi STACK dengan struct dan array data Typedef struct STACK{ STACK = record int top; top: integer; char data[10][10]; data: array[1..10]; Of char; }; end; Deklarasi/buat variabel dari struct STACK tumpuk; tumpuk: STACK;

Inisialisasi Stack Pada mulanya isi top dengan -1, karena array dimulai dari 0, yang berarti stack adalah KOSONG Ilustrasi

Top of stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!

Maximum 5 4 3 2 1 0 Isi [5] Isi [4] Isi [3] Isi [2] Isi [1] Deklarasi Struktur Data Stack = Record Isi : array[1..n] of Tipe Data Atas : integer End Stack S

Operasi Operasi dasar yang dilakukan Dalam Stack ada dua yaitu : 1. Menambah Komponen (Push) 2. Menghapus Komponen (Pop) Operasi Push Operasi Push adalah Menambah elemen kedalam stack S, dimana penambahan dapat dilakukan jika stack itu belum penuh. Stack dikatakan penuh Jika posisi atas sudah berada pada posisi N (If S.atas = n then stack penuh) Push( x,s) adalah Memasukkan x kedalam Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then s.atas= s.atas+1 s.isi[s.atas] = x Else stack sudah penuh fi Atas = 0 Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.Atas = s.atas + 1 s.isi[s.atas] = x Else stack sudah penuh fi Atas = 1 Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.atas= s.atas+1 S.isi[S.atas] = k Else stack sudah penuh fi Atas = 1 Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.Atas = s.atas + 1 s.isi[s.atas] = x Else stack sudah penuh fi Atas = 2 Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.atas= s.atas+1 Atas = 2 S.isi[S.atas] = k Else stack sudah penuh fi Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.Atas = s.atas + 1 s.isi[s.atas] = x Else stack sudah penuh fi Atas = 3 Stack S

Push(x,s) Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.atas= s.atas+1 Atas = 3 S.isi[S.atas] = k Else stack sudah penuh fi Stack S

Push(x,s) Atas = 5 Procedure Push(x :Tipe data, S : Stack) If s.atas< n then S.atas= s.atas+1 S.isi[S.atas] = k Else fi stack sudah penuh Stack S

POP(S) Pop(s) adalah menghapus elemen dari stack, dimana elemen yang dihapus adalah elemen yang terakhir Masuk (LIFO Last In First Out) atau elemen penghapusan, dimana proses penghapusan dapat dilakukan jika stack tidak dalam keadaan Kosong If S.Atas > 0 then stack tidak kosong Dimana Setiap melakukan penghapusan, maka posisi yang paling atas akan berkurang 1 (S.Atas = S.Atas -1) Procedure Pop( S: Stack) If S.atas>0 then Else Stack Kosong Fi Write S.isi[S.atas] S.Atas= S.Atas 1

Pop(s) Atas = 5 Procedure Pop( S: Stack) If S.atas>0 then Write S.isi[S.atas] S.Atas= S.Atas 1 Else Stack Kosong Fi Stack S

Pop(s) Procedure Pop( S: Stack) If S.atas>0 then Write S.isi[S.atas] S.Atas= S.Atas 1 Else Stack Kosong Fi Atas = 4 Stack S

Pop(s) Procedure Pop( S: Stack) If S.atas>0 then Write S.isi[S.atas] S.Atas= S.Atas 1 Else Stack Kosong Fi Atas = 4 Stack S

Pop(s) Procedure Pop( S: Stack) If S.atas>0 then Write S.isi[S.atas] S.Atas= S.Atas 1 Else Stack Kosong Fi Atas = 3 Stack S

Pop(s) Procedure Pop( S: Stack) If S.atas>0 then Write S.isi[S.atas] S.Atas= S.Atas 1 Else Stack Kosong Fi Atas = 0 Stack S

Operasi Lain Operasi lain yang biasa digunakan pada Stack yaitu: Clear: digunakan untuk mengosongkan Stack IsEmpty: fungsi yang digunakan untuk mengecek apakah stack sudah kosong IsFull: fungsi yang digunakan untuk mengecek apakah stack sudah penuh

IsEmpty Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong

IsFull Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full Ilustrasi

Print Untuk menampilkan semua elemen-elemen stack Dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil

Print

Contoh Penggunaan Stack 1. Untuk mencek kalimat Polindrom 2. Untuk Mengubah Desimal ke Biner

Mencek Kalimat Polindrom Kalimat : KAKAK K A A K K K A A A A K K K K K Operasi Push

Operasi Pop K Hasil = A K A K A K A K K A K A K K Hasil = K Hasil = KA Hasil = KAK Hasil = KAKA Hasil = KAKAK Operasi POP Kalimat = hasil Polindrom

Algoritma Inisialisasi Struktur Data Stack = record isi : Array[1..255] of char atas : integer End Kalimat, Hasil : string Procedure push( x : Char, s : Stack) If s.atas < 255 Then s.atas = s.atas+1 s.isi[s.atas] = x Else stack sudah penuh fi

Procedure Pop(S:Stack) If S.atas>0 then Write s.isi[s.atas] Hasil = hasil +s.isi[s.atas] s.atas= s.atas-1 Else Stack Kosong Fi //modul utama i=1 While i<= length(kalimat) Do Push(Kalimat[i],s) i=i+1 E-while While S.atas>0 do pop(s) E-while If kalimat = hasil Then Polindrom Else Tidak polindrom fi

Tugas Buat Algoritma dan Program Untuk Mengkonversi Bilangan desimal menjadi bilangan Biner.

Ungkapan Aritmatika Untuk menuliskan ungkapan aritmatika dapat dilakukan dengan tiga metode Infix Operan Operator Operan A + B Prefix Operator Operan Operan + A B Postfix Operan Operan Operator A B +

Contoh : 1. Infix A + B + C Prefix +AB + C ++ABC Postfix AB+ + C AB+C+ 2. Infix A+B * C Prefix A+*BC +A*BC Postfix A+ BC* ABC*+ Hierarki Operator 1. ( ) Operator Logika: 2. ^ (pangkat) 1. NOT 3. /, *, DIV, MOD 2. AND 4. +, - 3. OR

Contoh 3: Infix A*B + C*D Prefix *AB + C * D *AB + *CD +*AB*CD Postfix AB* + C*D AB* + CD* AB*CD*+ Contoh 4 : Infix (4 3) * (12 / 3) Prefix *, -,4, 3, /, 12, 3 Postfix 4, 3, -, 12, 3, /, * Tentukan hasil dari : 1. 12, 7, 3, -, /, 2, 1, 5, +, *, + 2. 5 + 3 ^ 2 8 / 4 + 3 + 6 3. 3, 1, + 2, ^, 7, 4, -, 2, *, +, 5, - 4. (A * (( B + D) / E)) - (F * (G + (H / K)))

Infix : A + B * (C D) / E Prefix A + B * -CD / E A + *B-CD / E A + /*B-CDE +A/*B-CDE Postfix A + B * CD- / E A + BCD-* / E A + BCD-*E/ ABCD-*E/+ Contoh : 1. Infix (A+B)*C^D/E-F+G 2. Infix (A+B*C)*(D+E)/F*G

Stack Untuk Konversi Infix ke postfix Algoritma PostFix(Q, P) {Q=Infix, P=Postfix} 1. Masukkan ( ke dalam Stack dan ) ke akhir infix. 2. Telusuri Q sampai elemen yang terakhir 3. Jika menemukan Operand, maka masukkan ke P. 4. Jika menemukan (, maka masukkan ke dalam Stack. 5. Jika menemukan operator, maka : a. Ulangi POP(S) setiap Operator yang sama atau lebih tinggi hirarkinya dan masukkan ke P b. Masukkan operator tadi ke Stack. 6. Jika menemukan ), maka : a. Ulangi POP(S) setiap Operator sampai menemukan ( dan masukkan ke dalam P. b. Hapus ( 7. Selesai Contoh